software: run the assembler ourselves to prevent future time wastage due to breakage...
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Thu, 10 Jan 2013 16:20:31 +0000 (17:20 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Thu, 10 Jan 2013 16:20:31 +0000 (17:20 +0100)
software/bios/Makefile
software/common.mak
software/libbase/Makefile

index 827fe207ccdd8ccfe0257a310ffd4ac816f644cd..0e2fa364fcc7f6e46c0038108a5952079e3cb4b5 100644 (file)
@@ -27,6 +27,9 @@ bios-rescue.elf: linker-rescue.ld $(OBJECTS) libs
 %.o: %.c
        $(compile-dep)
 
+%.o: %.S
+       $(assemble)
+
 libs:
        make -C $(M2DIR)/software/libbase
 
index 498714be22a9cfdc415b5bb84894a44773efe0c3..76ea448ab6303c7edc832628f0f8dc63aa1ae4b7 100644 (file)
@@ -2,29 +2,33 @@ TARGET_PREFIX=lm32-elf
 CLANG=clang -target lm32
 
 CC_normal := $(CLANG)
+AS_normal := $(TARGET_PREFIX)-as
 AR_normal := $(TARGET_PREFIX)-ar
 LD_normal := $(TARGET_PREFIX)-ld
 OBJCOPY_normal := $(TARGET_PREFIX)-objcopy
 RANLIB_normal := $(TARGET_PREFIX)-ranlib
 
 CC_quiet = @echo " CC " $@ && $(CLANG)
+AS_quiet = @echo " AS " $@ && $(TARGET_PREFIX)-as
 AR_quiet = @echo " AR " $@ && $(TARGET_PREFIX)-ar
 LD_quiet = @echo " LD " $@ && $(TARGET_PREFIX)-ld
 OBJCOPY_quiet = @echo " OBJCOPY " $@ && $(TARGET_PREFIX)-objcopy
 RANLIB_quiet = @echo " RANLIB  " $@ && $(TARGET_PREFIX)-ranlib
 
 ifeq ($(V),1)
-    CC = $(CC_normal)
-    AR = $(AR_normal)
-    LD = $(LD_normal)
-    OBJCOPY = $(OBJCOPY_normal)
-    RANLIB = $(RANLIB_normal)
+       CC = $(CC_normal)
+       AS = $(AS_normal)
+       AR = $(AR_normal)
+       LD = $(LD_normal)
+       OBJCOPY = $(OBJCOPY_normal)
+       RANLIB = $(RANLIB_normal)
 else
-    CC = $(CC_quiet)
-    AR = $(AR_quiet)
-    LD = $(LD_quiet)
-    OBJCOPY = $(OBJCOPY_quiet)
-    RANLIB = $(RANLIB_quiet)
+       CC = $(CC_quiet)
+       AS = $(AS_quiet)
+       AR = $(AR_quiet)
+       LD = $(LD_quiet)
+       OBJCOPY = $(OBJCOPY_quiet)
+       RANLIB = $(RANLIB_quiet)
 endif
 
 # Toolchain options
@@ -37,12 +41,17 @@ LDFLAGS = -nostdlib -nodefaultlibs
 # compile and generate dependencies, based on
 # http://scottmcpeak.com/autodepend/autodepend.html
 
-define compile-dep =
-$(CC) -c $(CFLAGS) $< -o $*.o
+define compile-dep
+$(CC) -c $(CFLAGS) $< -o $*.ts -S
 @$(CC_normal) -MM $(CFLAGS) $< > $*.d
 @mv -f $*.d $*.d.tmp
 @sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
 @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
        sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
 @rm -f $*.d.tmp
+@$(AS_normal) -o $*.o $*.ts
+endef
+
+define assemble
+$(AS) -o $*.o $<
 endef
index 4c37fadb5e386428cd0e54582f00588ffab72a35..1d6436c37eeaf6e1e25d56ef37aad7b1d28f59fb 100644 (file)
@@ -15,6 +15,9 @@ libbase.a: $(OBJECTS)
 %.o: %.c
        $(compile-dep)
 
+%.o: %.S
+       $(assemble)
+
 .PHONY: clean
 
 clean: