diff options
Diffstat (limited to 'external/common/rules.mk')
-rw-r--r-- | external/common/rules.mk | 26 |
1 files changed, 18 insertions, 8 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 $@ |