From: Yann Collet Date: Fri, 23 Oct 2020 23:46:49 +0000 (-0700) Subject: make install only rebuild binaries if they don't exist X-Git-Tag: v1.4.7~41^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=456db0c3770856ea83de771b98fb6715fa4fb13a;p=thirdparty%2Fzstd.git make install only rebuild binaries if they don't exist Now `make` followed by `make install` doesn't rebuild binaries also : only generated target directories if they don't already exist --- diff --git a/lib/Makefile b/lib/Makefile index 39781ddd2..a549b82bd 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -320,11 +320,11 @@ lib : libzstd.a libzstd DEPFLAGS = -MT $@ -MMD -MP -MF $(ZSTD_DYNLIB_DIR)/%.o : %.c $(ZSTD_DYNLIB_DIR)/%.d | $(ZSTD_DYNLIB_DIR) - @echo $@ + @echo CC $@ $(COMPILE.c) $(DEPFLAGS) $(ZSTD_DYNLIB_DIR)/$*.d $(OUTPUT_OPTION) $< $(ZSTD_STATLIB_DIR)/%.o : %.c $(ZSTD_STATLIB_DIR)/%.d | $(ZSTD_STATLIB_DIR) - @echo $@ + @echo CC $@ $(COMPILE.c) $(DEPFLAGS) $(ZSTD_STATLIB_DIR)/$*.d $(OUTPUT_OPTION) $< MKDIR ?= mkdir @@ -421,24 +421,28 @@ install: install-pc install-static install-shared install-includes @echo zstd static and shared library installed install-pc: libzstd.pc - $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ + [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ $(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/ -install-static: libzstd.a +install-static: + # only generate libzstd.a if it's not already present + [ -e libzstd.a ] || $(MAKE) libzstd.a-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ @echo Installing static library - $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR) -install-shared: libzstd +install-shared: + # only generate libzstd.so if it's not already present + [ -e $(LIBZSTD) ] || $(MAKE) libzstd-release + [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ @echo Installing shared library - $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ $(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR) ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT) install-includes: + [ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/ @echo Installing includes - $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/ $(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR) $(INSTALL_DATA) common/zstd_errors.h $(DESTDIR)$(INCLUDEDIR) $(INSTALL_DATA) dictBuilder/zdict.h $(DESTDIR)$(INCLUDEDIR) diff --git a/programs/Makefile b/programs/Makefile index ce3c83ad0..e9ba02cd5 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -206,6 +206,7 @@ $(BUILD_DIR)/zstd : $(ZSTD_OBJ) @echo "$(ZLIB_MSG)" @echo "$(LZMA_MSG)" @echo "$(LZ4_MSG)" + @echo LINK $@ $(CC) $(FLAGS) $^ -o $@$(EXT) $(LDFLAGS) .PHONY: zstd # must always be run @@ -371,7 +372,7 @@ preview-man: clean-man man DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/%.o : %.c $(BUILD_DIR)/%.d | $(BUILD_DIR) - @echo $@ + @echo CC $@ $(COMPILE.c) $(DEPFLAGS) $(BUILD_DIR)/$*.d $(OUTPUT_OPTION) $< MKDIR ?= mkdir @@ -449,9 +450,12 @@ INSTALL_DATA ?= $(INSTALL) -m 644 INSTALL_MAN ?= $(INSTALL_DATA) .PHONY: install -install: zstd +install: + # generate zstd only if not already present + [ -e zstd ] || $(MAKE) zstd-release + [ -e $(DESTDIR)$(BINDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)/ + [ -e $(DESTDIR)$(MAN1DIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(MAN1DIR)/ @echo Installing binaries - $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)/ $(DESTDIR)$(MAN1DIR)/ $(INSTALL_PROGRAM) zstd$(EXT) $(DESTDIR)$(BINDIR)/zstd$(EXT) ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/zstdcat$(EXT) ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/unzstd$(EXT)