mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[build] Work around command-line length limitation on windows
This commit is contained in:
12
Makefile
12
Makefile
@@ -190,10 +190,22 @@ $(eval $(call rule_for, \
|
||||
$$(CC) $$(SFLAGS) $$(CFLAGS) -c $$< -o $$@ \
|
||||
))
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
# Work around command-line length limit
|
||||
# On Msys2 the max command line is 32 000 characters. Our standard LD command
|
||||
# can be longer than that because we have quite a lot of object files. To work
|
||||
# around this issue, we write the object list in a "target.objs" file, and tell
|
||||
# the linker to read its arguments from this file.
|
||||
$(eval $(call rule_for, \
|
||||
LD, %.$$(EXE), , \
|
||||
echo $$^ > $$@.objs && $$(LD) @$$@.objs $$(LDFLAGS) -o $$@ && rm $$@.objs \
|
||||
))
|
||||
else
|
||||
$(eval $(call rule_for, \
|
||||
LD, %.$$(EXE), , \
|
||||
$$(LD) $$^ $$(LDFLAGS) -o $$@ \
|
||||
))
|
||||
endif
|
||||
|
||||
.PHONY: workshop_python_emulator
|
||||
workshop_python_emulator:
|
||||
|
||||
@@ -5,14 +5,3 @@ EXE = exe
|
||||
|
||||
SFLAGS += -D_USE_MATH_DEFINES
|
||||
LDFLAGS += -static -mwindows
|
||||
|
||||
# Work around command-line length limit
|
||||
# On Msys2 the max command line is 32 000 characters. Our standard LD command
|
||||
# can be longer than that because we have quite a lot of object files. To work
|
||||
# around this issue, we write the object list in a "target.objs" file, and tell
|
||||
# the linker to read its arguments from this file.
|
||||
$(BUILD_DIR)/%.$(EXE):
|
||||
$(Q) echo $^ > $@.objs
|
||||
@echo "LD $(@:$(BUILD_DIR)/%=%)"
|
||||
$(Q) $(LD) @$@.objs $(LDFLAGS) -o $@
|
||||
$(Q) rm $@.objs
|
||||
|
||||
Reference in New Issue
Block a user