aboutsummaryrefslogtreecommitdiff
path: root/external/common/rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'external/common/rules.mk')
-rw-r--r--external/common/rules.mk26
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 $@