diff --git a/make/targets-tools.mk b/make/targets-tools.mk index 667dca28..1705fb4a 100644 --- a/make/targets-tools.mk +++ b/make/targets-tools.mk @@ -22,7 +22,8 @@ clean-link: clean.link #all.link: $(HDRDIR_SCOPE_SUFFIX) $(HDRDIR_SCOPE_SUFFIX): - ln -s . $@ + mkdir -p $(dir $(HDRDIR_SCOPE_SUFFIX)) + ln -s $(shell realpath -m . --relative-to $(dir $(HDRDIR_SCOPE_SUFFIX))) $@ ifeq ($(SCOPE_PREFIX),) #all.link: $(BUILD_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX) @@ -33,13 +34,17 @@ endif $(LIB_SO): $(OBJ) -all.done: $(PREREQ_DONE) $(BUILD_HDR) $(BUILD_EXE_SH) $(MEMBERS) $(LIB_A) $(LIB_SO) $(HDRDIR_SCOPE_SUFFIX) +all.done: $(PREREQ_DONE) $(BUILD_HDR) $(BUILD_EXE_SH) $(MEMBERS) $(LIB_A) $(LIB_SO) | $(HDRDIR_SCOPE_SUFFIX) endif clean: objclean textclean localclean profclean clean.link clean.link: - if [ -L "$(HDRDIR_SCOPE_SUFFIX)" -a "`readlink $(HDRDIR_SCOPE_SUFFIX) 2>/dev/null`" = . ]; then rm $(HDRDIR_SCOPE_SUFFIX); fi + if [ -L "$(HDRDIR_SCOPE_SUFFIX)" -a "`realpath --relative-to . $(HDRDIR_SCOPE_SUFFIX) 2>/dev/null`" = . ]; then \ + rm $(HDRDIR_SCOPE_SUFFIX) ;\ + rmdir -p $(dir $(HDRDIR_SCOPE_SUFFIX)) 2>/dev/null || : ;\ + fi + endif # ifndef TARGETS_TOOLS_MK_INCLUDED