build: Allow generating dependencies as a side-effect of assembling
authorDiego Biurrun <diego@biurrun.de>
Thu, 13 Oct 2016 00:45:09 +0000 (02:45 +0200)
committerDiego Biurrun <diego@biurrun.de>
Wed, 1 Mar 2017 09:18:15 +0000 (10:18 +0100)
Makefile
configure

index d140ac3..6ea8359 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ CCFLAGS     = $(CPPFLAGS) $(CFLAGS)
 OBJCFLAGS  += $(EOBJCFLAGS)
 OBJCCFLAGS  = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)
 ASFLAGS    := $(CPPFLAGS) $(ASFLAGS)
-X86ASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm
+X86ASMFLAGS += $(IFLAGS:%=%/) -I$(<D)/ -Pconfig.asm
 HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
 LDFLAGS    := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
 
@@ -42,6 +42,7 @@ endef
 COMPILE_C = $(call COMPILE,CC)
 COMPILE_S = $(call COMPILE,AS)
 COMPILE_M = $(call COMPILE,OBJCC)
+COMPILE_X86ASM = $(call COMPILE,X86ASM)
 COMPILE_HOSTC = $(call COMPILE,HOSTCC)
 
 %.o: %.c
@@ -57,8 +58,7 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
        $(COMPILE_HOSTC)
 
 %.o: %.asm
-       $(DEPX86ASM) $(X86ASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d)
-       $(X86ASM) $(X86ASMFLAGS) -I $(<D)/ -o $@ $<
+       $(COMPILE_X86ASM)
        -$(STRIP) $(STRIPFLAGS) $@
 
 %.i: %.c
index 969f71d..cdeae9a 100755 (executable)
--- a/configure
+++ b/configure
@@ -2628,6 +2628,7 @@ CC_O='-o $@'
 OBJCC_C='-c'
 OBJCC_E='-E -o $@'
 OBJCC_O='-o $@'
+X86ASM_O='-o $@'
 LD_O='-o $@'
 LD_LIB='-l%'
 LD_PATH='-L'
@@ -4476,9 +4477,11 @@ EOF
         if check_cmd $x86asmexe --version; then
             enabled x86_64 && x86asm_extra="-m amd64"
             x86asm_debug="-g dwarf2"
+            X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)'
         elif check_cmd nasm -v; then
             x86asmexe=nasm
             x86asm_debug="-g -F dwarf"
+            X86ASM_DEPFLAGS='-MD $(@:.o=.d)'
             enabled x86_64 && test "$objformat" = elf && objformat=elf64
         fi
 
@@ -5335,6 +5338,7 @@ DEPAS=$as
 DEPASFLAGS=$DEPASFLAGS \$(CPPFLAGS)
 X86ASM=$x86asmexe
 DEPX86ASM=$x86asmexe
+DEPX86ASMFLAGS=\$(X86ASMFLAGS)
 AR=$ar
 ARFLAGS=$arflags
 AR_O=$ar_o
@@ -5353,6 +5357,7 @@ OBJCC_O=$OBJCC_O
 CC_C=$CC_C
 CC_E=$CC_E
 CC_O=$CC_O
+X86ASM_O=$X86ASM_O
 LD_O=$LD_O
 LD_LIB=$LD_LIB
 LD_PATH=$LD_PATH
@@ -5373,8 +5378,11 @@ CCDEP=$CCDEP
 CCDEP_FLAGS=$CCDEP_FLAGS
 ASDEP=$ASDEP
 ASDEP_FLAGS=$ASDEP_FLAGS
+X86ASMDEP=$X86ASMDEP
+X86ASMDEP_FLAGS=$X86ASMDEP_FLAGS
 CC_DEPFLAGS=$CC_DEPFLAGS
 AS_DEPFLAGS=$AS_DEPFLAGS
+X86ASM_DEPFLAGS=$X86ASM_DEPFLAGS
 HOSTCC=$host_cc
 HOSTLD=$host_ld
 HOSTCFLAGS=$host_cflags