From 748b77ad9c51537ad635c8c51236bda157080849 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Mon, 17 Jul 2017 19:17:19 +0100 Subject: [PATCH] Allow parallel build --- Makefile | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 949fac2..8411fc0 100644 --- a/Makefile +++ b/Makefile @@ -108,9 +108,11 @@ else #--------------------------------------------------------------------------------- endif #--------------------------------------------------------------------------------- +export HFILES := $(addsuffix .h,$(subst .,_,$(BINFILES))) -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) +export OFILES_BIN := $(addsuffix .o,$(BINFILES)) +export OFILES_SOURCES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) +export OFILES := $(OFILES_BIN) $(OFILES_SOURCES) export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ @@ -131,7 +133,7 @@ submodules: @-git submodule update --init --recursive binary: common - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile firm: binary @firmtool build $(OUTPUT).firm -n 0x23F00000 -e 0 -D $(OUTPUT).elf -A 0x23F00000 -C NDMA -i @@ -141,11 +143,11 @@ gateway: binary @dd if=$(OUTPUT).bin of=$(OUTPUT_D)/Launcher.dat bs=1497296 seek=1 conv=notrunc cakehax: submodules binary - @make dir_out=$(OUTPUT_D) name=$(TARGET).dat -C CakeHax bigpayload + @$(MAKE) dir_out=$(OUTPUT_D) name=$(TARGET).dat -C CakeHax bigpayload @dd if=$(OUTPUT).bin of=$(OUTPUT).dat bs=512 seek=160 cakerop: cakehax - @make DATNAME=$(TARGET).dat DISPNAME=$(TARGET) GRAPHICS=../resources/CakesROP -C CakesROP + @$(MAKE) DATNAME=$(TARGET).dat DISPNAME=$(TARGET) GRAPHICS=../resources/CakesROP -C CakesROP @mv CakesROP/CakesROP.nds $(OUTPUT_D)/$(TARGET).nds brahma: submodules binary @@ -153,14 +155,14 @@ brahma: submodules binary @cp $(OUTPUT).bin BrahmaLoader/data/payload.bin @cp resources/BrahmaAppInfo BrahmaLoader/resources/AppInfo @cp resources/BrahmaIcon.png BrahmaLoader/resources/icon.png - @make --no-print-directory -C BrahmaLoader APP_TITLE=$(TARGET) + @$(MAKE) --no-print-directory -C BrahmaLoader APP_TITLE=$(TARGET) @mv BrahmaLoader/output/*.3dsx $(OUTPUT_D) @mv BrahmaLoader/output/*.smdh $(OUTPUT_D) release: @rm -fr $(BUILD) $(OUTPUT_D) $(RELEASE) - @make --no-print-directory binary - @make --no-print-directory firm + @$(MAKE) --no-print-directory binary + @$(MAKE) --no-print-directory firm #@-make --no-print-directory cakerop #@-make --no-print-directory brahma @[ -d $(RELEASE) ] || mkdir -p $(RELEASE) @@ -179,9 +181,9 @@ release: #--------------------------------------------------------------------------------- clean: @echo clean ... - @-make clean --no-print-directory -C CakeHax - @-make clean --no-print-directory -C CakesROP - @-make clean --no-print-directory -C BrahmaLoader + @-$(MAKE) clean --no-print-directory -C CakeHax + @-$(MAKE) clean --no-print-directory -C CakesROP + @-$(MAKE) clean --no-print-directory -C BrahmaLoader @rm -fr $(BUILD) $(OUTPUT_D) $(RELEASE) @@ -194,9 +196,9 @@ DEPENDS := $(OFILES:.o=.d) # main targets #--------------------------------------------------------------------------------- $(OUTPUT).bin : $(OUTPUT).elf +$(OFILES_SOURCES) : $(HFILES) $(OUTPUT).elf : $(OFILES) - #--------------------------------------------------------------------------------- %.bin: %.elf @$(OBJCOPY) --set-section-flags .bss=alloc,load,contents -O binary $< $@ @@ -205,7 +207,7 @@ $(OUTPUT).elf : $(OFILES) #--------------------------------------------------------------------------------- # you need a rule like this for each extension you use as binary data #--------------------------------------------------------------------------------- -%.qlz.o: %.qlz +%_qlz.h %.qlz.o: %.qlz #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o)