aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2022-02-03 17:23:34 -0500
committerKevin O'Connor <kevin@koconnor.net>2022-02-03 17:39:57 -0500
commit0143199175cd69d34ed1e832cf94dfbbd467de2a (patch)
tree5e44c177ccd221c0aa5e314e8bb458d5461f7edf
parent427f4b456ef64dd3571661a7df3d8a34a0ec9c90 (diff)
downloadkutter-0143199175cd69d34ed1e832cf94dfbbd467de2a.tar.gz
kutter-0143199175cd69d34ed1e832cf94dfbbd467de2a.tar.xz
kutter-0143199175cd69d34ed1e832cf94dfbbd467de2a.zip
Makefile: Improve handling of board symbolic link creation
Running "make" directly after a "make distclean" can lead to a corrupt out/board symbolic link. Rework the make rules so that the board symbolic link is created in a new make instance that has the updated definition of CONFIG_BOARD_DIRECTORY. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--Makefile12
1 files changed, 8 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index af74951a..1bdcd155 100644
--- a/Makefile
+++ b/Makefile
@@ -85,17 +85,21 @@ $(OUT)compile_time_request.o: $(patsubst %.c, $(OUT)src/%.o.ctr,$(src-y)) ./scri
################ Auto generation of "board/" include file link
-$(OUT)board-link: $(KCONFIG_CONFIG)
+create-board-link:
@echo " Creating symbolic link $(OUT)board"
$(Q)mkdir -p $(addprefix $(OUT), $(dirs-y))
- $(Q)echo "#$(CONFIG_BOARD_DIRECTORY)" > $@.temp
- $(Q)if ! cmp -s $@.temp $@; then rm -f $(OUT)*.d $(patsubst %,$(OUT)%/*.d,$(dirs-y)) ; mv $@.temp $@ ; fi
+ $(Q)rm -f $(OUT)*.d $(patsubst %,$(OUT)%/*.d,$(dirs-y))
$(Q)rm -f $(OUT)board
$(Q)ln -sf $(CURDIR)/src/$(CONFIG_BOARD_DIRECTORY) $(OUT)board
$(Q)mkdir -p $(OUT)board-generic
$(Q)rm -f $(OUT)board-generic/board
$(Q)ln -sf $(CURDIR)/src/generic $(OUT)board-generic/board
+# Hack to rebuild OUT directory and reload make dependencies on Kconfig change
+$(OUT)board-link: $(KCONFIG_CONFIG)
+ $(Q)mkdir -p $(OUT)
+ $(Q)echo "# Makefile board-link rule" > $@
+ $(Q)$(MAKE) create-board-link
include $(OUT)board-link
################ Kconfig rules
@@ -114,7 +118,7 @@ menuconfig:
################ Generic rules
# Make definitions
-.PHONY : all clean distclean olddefconfig menuconfig FORCE
+.PHONY : all clean distclean olddefconfig menuconfig create-board-link FORCE
.DELETE_ON_ERROR:
all: $(target-y)