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>
This commit is contained in:
parent
b32a578573
commit
06744d6927
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user