@@ -94,7 +94,7 @@ ifneq ($(BUILD_MODULE),y)
94
94
endif
95
95
96
96
ifneq ($(strip $(PROGNAME ) ) ,)
97
- PROGOBJ := $(MAINCOBJ ) $(MAINCXXOBJ ) $(MAINRUSTOBJ )
97
+ PROGOBJ := $(MAINCOBJ ) $(MAINCXXOBJ ) $(MAINRUSTOBJ ) $( MAINZIGOBJ )
98
98
PROGLIST := $(addprefix $(BINDIR )$(DELIM ) ,$(PROGNAME ) )
99
99
REGLIST := $(addprefix $(BUILTIN_REGISTRY )$(DELIM ) ,$(addsuffix .bdat,$(PROGNAME ) ) )
100
100
@@ -168,9 +168,9 @@ define ELFCOMPILERUST
168
168
$(ECHO_END )
169
169
endef
170
170
171
+ # Remove target suffix here since zig compiler add .o automatically
171
172
define ELFCOMPILEZIG
172
173
$(ECHO_BEGIN ) "ZIG: $1 "
173
- # Remove target suffix here since zig compiler add .o automatically
174
174
$(Q ) $(ZIG ) build-obj $(ZIGELFFLAGS ) $($(strip $1) _ZIGELFFLAGS) --name $(basename $2) $1
175
175
$(ECHO_END )
176
176
endef
@@ -181,6 +181,13 @@ define ELFLD
181
181
$(ECHO_END )
182
182
endef
183
183
184
+ # rename "main()" in $1 to "xxx_main()" and save to $2
185
+ define RENAMEMAIN
186
+ $(ECHO_BEGIN ) "Rename main() in $1 and save to $2"
187
+ $(Q ) ${shell cat $1 | sed -e "s/fn[ ]\+main/fn $(addsuffix _main,$(PROGNAME_$@ ) ) /" > $2}
188
+ $(ECHO_END )
189
+ endef
190
+
184
191
$(RAOBJS ) : % .s$(SUFFIX )$(OBJEXT ) : % .s
185
192
$(if $(and $(CONFIG_BUILD_LOADABLE ) ,$(AELFFLAGS ) ) , \
186
193
$(call ELFASSEMBLE, $< , $@ ) , $(call ASSEMBLE, $< , $@ ) )
@@ -235,9 +242,13 @@ $(MAINCOBJ): %.c$(SUFFIX)$(OBJEXT): %.c
235
242
$(if $(and $(CONFIG_BUILD_LOADABLE ) ,$(CELFFLAGS ) ) , \
236
243
$(call ELFCOMPILE, $< , $@ ) , $(call COMPILE, $< , $@ ) )
237
244
238
- $(PROGLIST ) : $(MAINCOBJ ) $(MAINCXXOBJ ) $(MAINRUSTOBJ )
245
+ $(MAINZIGOBJ ) : % $(ZIGEXT )$(SUFFIX )$(OBJEXT ) : % $(ZIGEXT )
246
+ $(if $(and $(CONFIG_BUILD_LOADABLE ) ,$(CELFFLAGS ) ) , \
247
+ $(call ELFCOMPILEZIG, $< , $@ ) , $(call COMPILEZIG, $< , $@ ) )
248
+
249
+ $(PROGLIST ) : $(MAINCOBJ ) $(MAINCXXOBJ ) $(MAINRUSTOBJ ) $(MAINZIGOBJ )
239
250
$(Q ) mkdir -p $(BINDIR )
240
- $(call ELFLD,$(PROGOBJ_$@ ) ,$(call CONVERT_PATH,$@ ) )
251
+ $(call ELFLD, $(PROGOBJ_$@ ) , $(call CONVERT_PATH,$@ ) )
241
252
$(Q ) chmod +x $@
242
253
ifneq ($(CONFIG_DEBUG_SYMBOLS ) ,y)
243
254
$(Q) $(STRIP) $@
@@ -265,8 +276,10 @@ $(MAINRUSTOBJ): %$(RUSTEXT)$(SUFFIX)$(OBJEXT): %$(RUSTEXT)
265
276
$(call ELFCOMPILERUST, $< , $@ ) , $(call COMPILERUST, $< , $@ ) )
266
277
267
278
$(MAINZIGOBJ ) : % $(ZIGEXT )$(SUFFIX )$(OBJEXT ) : % $(ZIGEXT )
279
+ $(Q ) $(call RENAMEMAIN, $< , $(basename $< ) _tmp.zig)
268
280
$(if $(and $(CONFIG_BUILD_LOADABLE ) ,$(CELFFLAGS ) ) , \
269
- $(call ELFCOMPILEZIG, $< , $@ ) , $(call COMPILEZIG, $< , $@ ) )
281
+ $(call ELFCOMPILEZIG, $(basename $< ) _tmp.zig, $@ ) , $(call COMPILEZIG, $(basename $< ) _tmp.zig, $@ ) )
282
+ $(Q ) rm -f $(basename $< ) _tmp.zig
270
283
271
284
install ::
272
285
@:
0 commit comments