diff options
-rw-r--r-- | external/common/rules.mk | 26 | ||||
-rw-r--r-- | external/pflash/Makefile | 23 | ||||
-rw-r--r-- | external/pflash/rules.mk | 13 |
3 files changed, 40 insertions, 22 deletions
diff --git a/external/common/rules.mk b/external/common/rules.mk index 7ebf485..4d94fe8 100644 --- a/external/common/rules.mk +++ b/external/common/rules.mk @@ -17,19 +17,29 @@ endif endif endif -.PHONY: arch_links -arch_links: - ln -sf ../../hw/ast-bmc/ast-sf-ctrl.c common/ast-sf-ctrl.c - ln -sf ../../include/ast.h common/ast.h - ln -sf arch_flash_$(arch)_io.h common/io.h + +# Arch links are like this so we can have dependencies work (so that we don't +# run the rule when the links exist), pretty build output (knowing the target +# name) and a list of the files so we can clean them up. +ARCH_LINKS = common/ast-sf-ctrl.c common/ast.h common/io.h + +arch_links: $(ARCH_LINKS) +common/ast.h : ../../include/ast.h | common + $(Q_LN)ln -sf ../../include/ast.h common/ast.h + +common/io.h : ../common/arch_flash_$(arch)_io.h | common + $(Q_LN)ln -sf arch_flash_$(arch)_io.h common/io.h + +common/ast-sf-ctrl.c : ../../hw/ast-bmc/ast-sf-ctrl.c | common + $(Q_LN)ln -sf ../../hw/ast-bmc/ast-sf-ctrl.c common/ast-sf-ctrl.c .PHONY: arch_clean arch_clean: - rm -rf $(ARCH_OBJS) + rm -rf $(ARCH_OBJS) $(ARCH_LINKS) $(ARCH_OBJS): common-%.o: common/%.c - $(CROSS_COMPILE)gcc $(CFLAGS) -c $< -o $@ + $(Q_CC)$(CROSS_COMPILE)gcc $(CFLAGS) -c $< -o $@ common-arch_flash.o: $(ARCH_OBJS) - $(CROSS_COMPILE)ld $(LDFLAGS) -r $(ARCH_OBJS) -o $@ + $(Q_LD)$(CROSS_COMPILE)ld $(LDFLAGS) -r $(ARCH_OBJS) -o $@ diff --git a/external/pflash/Makefile b/external/pflash/Makefile index f0c3773..e2aa33d 100644 --- a/external/pflash/Makefile +++ b/external/pflash/Makefile @@ -1,3 +1,11 @@ +# Use make V=1 for a verbose build. +ifndef V + Q_CC= @echo ' CC ' $@; + Q_LD= @echo ' LD ' $@; + Q_LN= @echo ' LN ' $@; + Q_MKDIR=@echo ' MKDIR ' $@; +endif + include rules.mk GET_ARCH = ../../external/common/get_arch.sh include ../../external/common/rules.mk @@ -5,19 +13,16 @@ include ../../external/common/rules.mk all: $(EXE) .PHONY: links -links: libflash ccan common make_version.sh +links: libflash ccan common libflash: - ln -sf ../../libflash . + $(Q_LN)ln -sf ../../libflash . ccan: - ln -sf ../../ccan . + $(Q_LN)ln -sf ../../ccan . common: - ln -sf ../common . - -make_version.sh: - ln -sf ../../make_version.sh + $(Q_LN)ln -sf ../common . $(OBJS): | links arch_links @@ -38,9 +43,11 @@ dist: links .version ../pflash/.version ../pflash/make_version.sh \ ../pflash/common/* +.PHONY: clean clean: arch_clean rm -f $(OBJS) $(EXE) *.o *.d libflash/test/test_flash libflash/test/*.o +.PHONY: distclean distclean: clean rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~ libflash/*.c~ libflash/*.h~ rm -f libflash ccan .version .version.tmp - rm -f common io.h make_version.sh + rm -f common io.h diff --git a/external/pflash/rules.mk b/external/pflash/rules.mk index 96f6a4f..f49e438 100644 --- a/external/pflash/rules.mk +++ b/external/pflash/rules.mk @@ -2,16 +2,17 @@ override CFLAGS += -O2 -Wall -I. OBJS = pflash.o progress.o version.o -LIBFLASH_OBJS += libflash-libflash.o libflash-libffs.o libflash-ecc.o libflash-blocklevel.o libflash-file.o +LIBFLASH_OBJS += libflash-libflash.o libflash-libffs.o libflash-ecc.o \ + libflash-blocklevel.o libflash-file.o OBJS += $(LIBFLASH_OBJS) OBJS += common-arch_flash.o EXE = pflash CC = $(CROSS_COMPILE)gcc -PFLASH_VERSION ?= $(shell ./make_version.sh $(EXE)) +PFLASH_VERSION ?= $(shell ../../make_version.sh $(EXE)) -version.c: make_version.sh .version +version.c: .version @(if [ "a$(PFLASH_VERSION)" = "a" ]; then \ echo "#error You need to set PFLASH_VERSION environment variable" > $@ ;\ else \ @@ -19,11 +20,11 @@ version.c: make_version.sh .version fi) > $@ %.o : %.c - $(CC) $(CFLAGS) -c $< -o $@ + $(Q_CC)$(CC) $(CFLAGS) -c $< -o $@ $(LIBFLASH_OBJS): libflash-%.o : libflash/%.c - $(CC) $(CFLAGS) -c $< -o $@ + $(Q_CC)$(CC) $(CFLAGS) -c $< -o $@ $(EXE): $(OBJS) - $(CC) $(CFLAGS) $^ -lrt -o $@ + $(Q_CC)$(CC) $(CFLAGS) $^ -lrt -o $@ |