diff options
-rw-r--r-- | payloads/libpayload/Makefile | 21 | ||||
-rw-r--r-- | payloads/libpayload/Makefile.inc | 2 | ||||
-rw-r--r-- | payloads/libpayload/sample/Makefile | 2 |
3 files changed, 17 insertions, 8 deletions
diff --git a/payloads/libpayload/Makefile b/payloads/libpayload/Makefile index b5687c3859..0b08c70af7 100644 --- a/payloads/libpayload/Makefile +++ b/payloads/libpayload/Makefile @@ -118,6 +118,11 @@ NOCOMPILE:=1 endif endif +xcompile ?= $(obj)/xcompile +$(xcompile): $(top)/../../util/xcompile/xcompile + $< $(XGCCPATH) > $@.tmp + \mv -f $@.tmp $@ 2> /dev/null + ifeq ($(NOCOMPILE),1) include $(TOPLEVEL)/Makefile.inc real-all: config @@ -126,13 +131,17 @@ else # in addition to the dependency below, create the file if it doesn't exist # to silence stupid warnings about a file that would be generated anyway. -$(if $(wildcard .xcompile)$(NOCOMPILE),,$(eval $(shell $(top)/../../util/xcompile/xcompile $(XGCCPATH) > .xcompile))) +$(if $(wildcard $(xcompile)),,$(shell \ + mkdir -p $(dir $(xcompile)) && \ + $(top)/../../util/xcompile/xcompile $(XGCCPATH) > $(xcompile) || rm -f $(xcompile))) -.xcompile: $(top)/../../util/xcompile/xcompile - $< $(XGCCPATH) > $@.tmp - \mv -f $@.tmp $@ 2> /dev/null +include $(xcompile) --include .xcompile +ifneq ($(XCOMPILE_COMPLETE),1) +$(shell rm -f $(xcompile)) +$(error $(xcompile) deleted because it's invalid. \ + Restarting the build should fix that, or explain the problem) +endif CC := $(CC_$(ARCH-y)) AS := $(AS_$(ARCH-y)) @@ -294,7 +303,7 @@ doxygen-clean: rm -rf $(DOXYGEN_OUTPUT_DIR) clean-for-update: doxygen-clean clean-for-update-target - rm -f $(allobjs) .xcompile + rm -f $(allobjs) $(xcompile) rm -f $(DEPENDENCIES) rmdir -p $(alldirs) 2>/dev/null >/dev/null || true diff --git a/payloads/libpayload/Makefile.inc b/payloads/libpayload/Makefile.inc index 6188ddefa7..6835b84f09 100644 --- a/payloads/libpayload/Makefile.inc +++ b/payloads/libpayload/Makefile.inc @@ -121,7 +121,7 @@ install: real-target install -m 755 bin/lpas $(DESTDIR)/libpayload/bin install -m 644 bin/lp.functions $(DESTDIR)/libpayload/bin install -m 644 $(DOTCONFIG) $(DESTDIR)/libpayload/libpayload.config - install -m 755 .xcompile $(DESTDIR)/libpayload/libpayload.xcompile + install -m 755 $(xcompile) $(DESTDIR)/libpayload/libpayload.xcompile clean-for-update-target: rm -f $(addsuffix .a,$(addprefix $(obj)/,$(libraries))) $(obj)/libpayload.a diff --git a/payloads/libpayload/sample/Makefile b/payloads/libpayload/sample/Makefile index eb70af90b7..637e45dee1 100644 --- a/payloads/libpayload/sample/Makefile +++ b/payloads/libpayload/sample/Makefile @@ -28,7 +28,7 @@ # Sample libpayload Makefile. include ../.config -include ../.xcompile +include ../build/xcompile ARCH-$(CONFIG_LP_ARCH_ARM) := arm ARCH-$(CONFIG_LP_ARCH_X86) := x86_32 |