yf13 commented on code in PR #2260:
URL: https://github.com/apache/nuttx-apps/pull/2260#discussion_r1455419263


##########
examples/hello_zig/Makefile:
##########
@@ -22,7 +22,7 @@ include $(APPDIR)/Make.defs
 
 # Hello, Zig! Example
 
-MAINSRC = hello_zig_main.zig
+MAINSRC = $(if $(CONFIG_BUILD_KERNEL), hello_zig.zig, hello_zig_main.zig)

Review Comment:
   Kernel mode apps expect "main()" function, not sure why the existing source 
doesn't have it.  The C hello app has "main()" defined and  I remembered for 
non-KERNEL builds preprocessor macro redefines it to avoid collisions. 
   
   Please teach if there are better ways.



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@
+
+$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ) $(MAINZIGOBJ)
        $(Q) mkdir -p $(BINDIR)
-       $(call ELFLD,$(PROGOBJ_$@),$(call CONVERT_PATH,$@))
+       $(if $(PROGOBJ_$@), \

Review Comment:
   By adding debugging "echo $(PROGLIST)", I can see  
"/home/yf/Projects/Nuttx/apps/bin/hello_zig" here. 



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@

Review Comment:
   When this is removed, got errors like `*** No rule to make target 
'hello_zig.zig.home.yf.Projects.Nuttx.apps.examples.hello_zig.o', needed by 
'/home/yf/Projects/Nuttx/apps/bin/hello_zig'.  Stop`



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@

Review Comment:
   When this is removed, got errors like `*** No rule to make target 
'hello_zig.zig.home.yf.Projects.Nuttx.apps.examples.hello_zig.o', needed by 
'/home/yf/Projects/Nuttx/apps/bin/hello_zig'.  Stop`



##########
examples/hello_zig/Makefile:
##########
@@ -22,7 +22,7 @@ include $(APPDIR)/Make.defs
 
 # Hello, Zig! Example
 
-MAINSRC = hello_zig_main.zig
+MAINSRC = $(if $(CONFIG_BUILD_KERNEL), hello_zig.zig, hello_zig_main.zig)

Review Comment:
   Kernel mode apps expect "main()" function, not sure why the existing source 
doesn't have it.  The C hello app has "main()" defined and  I remembered for 
non-KERNEL builds preprocessor macro redefines it to avoid collisions. 
   
   Please teach if there are better ways.



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@

Review Comment:
   When this is removed, got errors like `*** No rule to make target 
'hello_zig.zig.home.yf.Projects.Nuttx.apps.examples.hello_zig.o', needed by 
'/home/yf/Projects/Nuttx/apps/bin/hello_zig'.  Stop`



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@
+
+$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ) $(MAINZIGOBJ)
        $(Q) mkdir -p $(BINDIR)
-       $(call ELFLD,$(PROGOBJ_$@),$(call CONVERT_PATH,$@))
+       $(if $(PROGOBJ_$@), \

Review Comment:
   By adding debugging "echo $(PROGLIST)", I can see  
"/home/yf/Projects/Nuttx/apps/bin/hello_zig" here. 



##########
examples/hello_zig/Makefile:
##########
@@ -22,7 +22,7 @@ include $(APPDIR)/Make.defs
 
 # Hello, Zig! Example
 
-MAINSRC = hello_zig_main.zig
+MAINSRC = $(if $(CONFIG_BUILD_KERNEL), hello_zig.zig, hello_zig_main.zig)

Review Comment:
   Kernel mode apps expect "main()" function, not sure why the existing source 
doesn't have it.  The C hello app has "main()" defined and  I remembered for 
non-KERNEL builds preprocessor macro redefines it to avoid collisions. 
   
   Please teach if there are better ways.



##########
Application.mk:
##########
@@ -235,9 +235,16 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
        $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
                $(call ELFCOMPILE, $<, $@), $(call COMPILE, $<, $@))
 
-$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ)
+$(MAINZIGOBJ): %$(ZIGEXT)$(SUFFIX)$(OBJEXT): %$(ZIGEXT)
+       $(if $(and $(CONFIG_BUILD_LOADABLE),$(CELFFLAGS)), \
+               $(call ELFCOMPILEZIG,$<,$@), $(call COMPILEZIG, $<, $@))
+       $(Q) echo $(MAINZIGOBJ) $@
+
+$(PROGLIST): $(MAINCOBJ) $(MAINCXXOBJ) $(MAINRUSTOBJ) $(MAINZIGOBJ)
        $(Q) mkdir -p $(BINDIR)
-       $(call ELFLD,$(PROGOBJ_$@),$(call CONVERT_PATH,$@))
+       $(if $(PROGOBJ_$@), \

Review Comment:
   By adding debugging "echo $(PROGLIST)", I can see  
"/home/yf/Projects/Nuttx/apps/bin/hello_zig" here. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to