summaryrefslogtreecommitdiff
path: root/extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch')
-rw-r--r--extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch148
1 files changed, 148 insertions, 0 deletions
diff --git a/extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch b/extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch
new file mode 100644
index 000000000..3a04a4b3e
--- /dev/null
+++ b/extra/gnu-efi-libs/gnu-efi-3.0v-revert-makefile-commit.patch
@@ -0,0 +1,148 @@
+commit 06744d69273de4945cf0ffcaa4a6abf7cec707b6
+Author: Nigel Croxon <nigel.croxon@hp.com>
+Date: Fri Mar 14 13:47:39 2014 -0400
+
+ From: Sylvain Gault <sylvain.gault@gmail.com>
+ Date: Wed, 19 Feb 2014 05:18:14 +0100
+ Subject: [PATCH] make install: Don't overwrite up-to-date files
+
+ make install used to copy files unconditionnally to their destination.
+ However, if the destination is used by another Makefile, it will always
+ see modified files. "install" target now only update the files when they
+ need to.
+
+ Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
+ Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
+
+diff --git a/gnuefi/Makefile b/gnuefi/Makefile
+index e99adbe..85a7db8 100644
+--- a/gnuefi/Makefile
++++ b/gnuefi/Makefile
+@@ -49,6 +49,19 @@ OBJS = $(FILES:%=%.o)
+
+ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
+
++INSTALLTARGETS = $(TARGETS)
++ifneq (,$(findstring FreeBSD,$(OS)))
++ ifeq ($(ARCH),x86_64)
++ INSTALLTARGETS += elf_$(ARCH)_fbsd_efi.lds
++ else
++ INSTALLTARGETS += elf_$(ARCH)_efi.lds
++ endif
++else
++ INSTALLTARGETS += elf_$(ARCH)_efi.lds
++endif
++
++LIBDIRINSTALL = $(INSTALLROOT)/$(LIBDIR)
++
+ all: $(TARGETS)
+
+ libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
+@@ -56,17 +69,14 @@ libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
+ clean:
+ rm -f $(TARGETS) *~ *.o $(OBJS)
+
+-install:
+- mkdir -p $(INSTALLROOT)/$(LIBDIR)
+- $(INSTALL) -m 644 $(TARGETS) $(INSTALLROOT)/$(LIBDIR)
+-ifneq (,$(findstring FreeBSD,$(OS)))
+- ifeq ($(ARCH),x86_64)
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)/$(LIBDIR)
+- else
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)/$(LIBDIR)
+- endif
+-else
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)/$(LIBDIR)
+-endif
++$(LIBDIRINSTALL):
++ mkdir -p $@
++
++.SECONDEXPANSION:
++
++$(LIBDIRINSTALL)/%: % | $$(dir $$@)
++ $(INSTALL) -m 644 $< $(dir $@)
++
++install: $(addprefix $(LIBDIRINSTALL)/,$(INSTALLTARGETS))
+
+ include $(SRCDIR)/../Make.rules
+diff --git a/inc/Makefile b/inc/Makefile
+index 273d303..297385b 100644
+--- a/inc/Makefile
++++ b/inc/Makefile
+@@ -8,20 +8,32 @@ TOPDIR = $(SRCDIR)/..
+
+ CDIR=$(TOPDIR)/..
+
++INCDIRINSTALL = $(INSTALLROOT)$(PREFIX)/include/efi
++
++SRCHEADERS = $(wildcard $(SRCDIR)/*.h) \
++ $(wildcard $(SRCDIR)/protocol/*.h) \
++ $(wildcard $(SRCDIR)/$(ARCH)/*.h)
++ifeq ($(ARCH),ia64)
++ SRCHEADERS += $(wildcard $(SRCDIR)/protocol/$(ARCH)/*.h)
++endif
++
++HEADERS = $(patsubst $(SRCDIR)/%,%,$(SRCHEADERS))
++
+ all:
+
+ clean:
+
+-install:
+- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi
+- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol
+- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH)
+- $(INSTALL) -m 644 $(SRCDIR)/*.h $(INSTALLROOT)$(PREFIX)/include/efi
+- $(INSTALL) -m 644 $(SRCDIR)/protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol
+- $(INSTALL) -m 644 $(SRCDIR)/$(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH)
+-ifeq ($(ARCH),ia64)
+- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64
+- $(INSTALL) -m 644 $(SRCDIR)/protocol/ia64/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64
+-endif
++$(INCDIRINSTALL) \
++$(INCDIRINSTALL)/protocol \
++$(INCDIRINSTALL)/$(ARCH) \
++$(INCDIRINSTALL)/protocol/$(ARCH):
++ mkdir -p $@
++
++.SECONDEXPANSION:
++
++$(INCDIRINSTALL)/%.h: %.h | $$(dir $$@)
++ $(INSTALL) -m 644 $< $(dir $@)
++
++install: $(addprefix $(INCDIRINSTALL)/,$(HEADERS))
+
+ include $(SRCDIR)/../Make.rules
+diff --git a/lib/Makefile b/lib/Makefile
+index e9f604e..d2635ad 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -61,8 +61,11 @@ OBJS = $(FILES:%=%.o)
+
+ SUBDIRS = ia32 x86_64 ia64 runtime
+
++LIBDIRINSTALL = $(INSTALLROOT)/$(LIBDIR)
++
+ all: libsubdirs libefi.a
+
++.PHONY: libsubdirs
+ libsubdirs:
+ for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
+
+@@ -71,9 +74,13 @@ libefi.a: $(patsubst %,libefi.a(%),$(OBJS))
+ clean:
+ rm -f libefi.a *~ $(OBJS) */*.o
+
+-install: libefi.a
+- mkdir -p $(INSTALLROOT)/$(LIBDIR)
+- $(INSTALL) -m 644 libefi.a $(INSTALLROOT)/$(LIBDIR)
++$(LIBDIRINSTALL):
++ mkdir -p $@
++
++$(LIBDIRINSTALL)/libefi.a: libefi.a | $(LIBDIRINSTALL)
++ $(INSTALL) -m 644 $< $(dir $@)
++
++install: $(LIBDIRINSTALL)/libefi.a
+
+ include $(SRCDIR)/../Make.rules
+