make, scripts: Preserve modification time on installation

Implemented -p switch on pkg.sh log-install and used it on standard
installation rules.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-08-31 19:40:39 +00:00
commit 92040c66e7
12 changed files with 34 additions and 28 deletions

View file

@ -717,7 +717,7 @@ define make_subdirs_target
endef endef
define install_local_cfg define install_local_cfg
$(INSTALL) -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@ $(INSTALL) -p -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
endef endef
define cvs_files define cvs_files

View file

@ -76,7 +76,7 @@ install.done: doxygen.done inst-dir.done
touch $@ touch $@
install.doxygen: install.doxygen:
$(INSTALL) -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) \ $(INSTALL) -p -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) \
$(wildcard $(DX_OUTPUT_DIR)/*.html) \ $(wildcard $(DX_OUTPUT_DIR)/*.html) \
$(wildcard $(DX_OUTPUT_DIR)/*.gif) \ $(wildcard $(DX_OUTPUT_DIR)/*.gif) \
$(wildcard $(DX_OUTPUT_DIR)/*.png) \ $(wildcard $(DX_OUTPUT_DIR)/*.png) \

View file

@ -59,7 +59,7 @@ create-dirs.done:
$(INSTALL) -d -m $(LIBDIRMODE) -o $(LIBDIROWNER) -g $(LIBDIRGROUP) $(FC_INSTALL_DIRS) $(INSTALL) -d -m $(LIBDIRMODE) -o $(LIBDIROWNER) -g $(LIBDIRGROUP) $(FC_INSTALL_DIRS)
$(FC_INSTALL_PYDIR)/%.py: %.py create-dirs.done $(FC_INSTALL_PYDIR)/%.py: %.py create-dirs.done
$(INSTALL) -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@ $(INSTALL) -p -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
$(FC_INSTALL_LIBDIR)/%.so: %.so $(FC_INSTALL_LIBDIR)/%.so: %.so
$(INSTALL) -m $(LIBMODE) -o $(LIBOWNER) -g $(LIBGROUP) $< $@ $(INSTALL) -p -m $(LIBMODE) -o $(LIBOWNER) -g $(LIBGROUP) $< $@

View file

@ -24,7 +24,7 @@ install.done:
if [ -d $$f ]; then \ if [ -d $$f ]; then \
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\ $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\
else \ else \
$(INSTALL) -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $$f $(TARGET_DIR)/$$relpath ;\ $(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $$f $(TARGET_DIR)/$$relpath ;\
fi ;\ fi ;\
done done
touch $@ touch $@

View file

@ -33,11 +33,11 @@ test:
$(INSTALL_PCKG_DEPS_DIR)/$(PROJECT).mk: pckg-deps.mk $(INSTALL_PCKG_DEPS_DIR)/$(PROJECT).mk: pckg-deps.mk
mkdir -p $(dir $@) mkdir -p $(dir $@)
$(INSTALL) -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@ $(INSTALL) -p -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@
$(INSTALL_PCKG_DEFS_DIR)/$(PROJECT).mk: pckg-defs.mk $(INSTALL_PCKG_DEFS_DIR)/$(PROJECT).mk: pckg-defs.mk
mkdir -p $(dir $@) mkdir -p $(dir $@)
$(INSTALL) -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@ $(INSTALL) -p -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@
install-links: install-links:
DEVELOPMENT=false make do-install-links DEVELOPMENT=false make do-install-links

View file

@ -28,10 +28,10 @@ install-reg.done: install-dirs.done $(PY_INSTALLED_REG)
python -c "import py_compile; py_compile.compile(\"$<\")" python -c "import py_compile; py_compile.compile(\"$<\")"
$(PY_INSTALL_DIR)/%.py: %.py $(PY_INSTALL_DIR)/%.py: %.py
$(INSTALL) -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@ $(INSTALL) -p -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
$(PY_INSTALL_DIR)/%.pyc: %.pyc $(PY_INSTALL_DIR)/%.pyc: %.pyc
$(INSTALL) -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@ $(INSTALL) -p -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
__init__.py: $(PY_INIT_TMPL) $(filter-out __init__.py,$(PY_SRC_PY)) __init__.py: $(PY_INIT_TMPL) $(filter-out __init__.py,$(PY_SRC_PY))
if [ "$(PY_INIT_TMPL)" ]; then cat "$(PY_INIT_TMPL)" > $@.tmp; else > $@.tmp; fi if [ "$(PY_INIT_TMPL)" ]; then cat "$(PY_INIT_TMPL)" > $@.tmp; else > $@.tmp; fi

View file

@ -348,25 +348,25 @@ endef
# --- special installation rules, that the general rules farther down # --- special installation rules, that the general rules farther down
# below don't catch for whatever reason > # below don't catch for whatever reason >
$(INSTALL_INITDIR)/%: %.init | provide_dir_INIT $(INSTALL_INITDIR)/%: %.init | provide_dir_INIT
$(INSTALL) -o $(INITOWNER) -g $(INITGROUP) -m $(INITMODE) $< $@ $(INSTALL) -p -o $(INITOWNER) -g $(INITGROUP) -m $(INITMODE) $< $@
$(INSTALL_SYSTEMDDIR)/%.service: %.service | provide_dir_SYSTEMD $(INSTALL_SYSTEMDDIR)/%.service: %.service | provide_dir_SYSTEMD
$(INSTALL) -o $(SYSTEMDOWNER) -g $(SYSTEMDGROUP) -m $(SYSTEMDMODE) $< $@ $(INSTALL) -p -o $(SYSTEMDOWNER) -g $(SYSTEMDGROUP) -m $(SYSTEMDMODE) $< $@
$(INSTALL_LOGROTDIR)/%: %.logrotate | provide_dir_LOGROT $(INSTALL_LOGROTDIR)/%: %.logrotate | provide_dir_LOGROT
$(INSTALL) -o $(LOGROTOWNER) -g $(LOGROTGROUP) -m $(LOGROTMODE) $< $@ $(INSTALL) -p -o $(LOGROTOWNER) -g $(LOGROTGROUP) -m $(LOGROTMODE) $< $@
$(INSTALL_APACHE_CONFDIR)/%.conf: %.apache-conf | provide_dir_APACHE_CONF $(INSTALL_APACHE_CONFDIR)/%.conf: %.apache-conf | provide_dir_APACHE_CONF
$(INSTALL) -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@ $(INSTALL) -p -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@
$(INSTALL_RSYSLOGDIR)/%.conf: %.rsyslog | provide_dir_RSYSLOG $(INSTALL_RSYSLOGDIR)/%.conf: %.rsyslog | provide_dir_RSYSLOG
$(INSTALL) -o $(RSYSLOGOWNER) -g $(RSYSLOGGROUP) -m $(RSYSLOGMODE) $< $@ $(INSTALL) -p -o $(RSYSLOGOWNER) -g $(RSYSLOGGROUP) -m $(RSYSLOGMODE) $< $@
$(INSTALL_RSYSLOGDIR)/%.bprof: rsyslog-%.bprof | provide_dir_RSYSLOG $(INSTALL_RSYSLOGDIR)/%.bprof: rsyslog-%.bprof | provide_dir_RSYSLOG
$(INSTALL) -o $(RSYSLOGOWNER) -g $(RSYSLOGGROUP) -m $(RSYSLOGMODE) $< $@ $(INSTALL) -p -o $(RSYSLOGOWNER) -g $(RSYSLOGGROUP) -m $(RSYSLOGMODE) $< $@
$(INSTALL_SYSCFGDIR)/%: %.sysconf | provide_dir_SYSCFG $(INSTALL_SYSCFGDIR)/%: %.sysconf | provide_dir_SYSCFG
$(INSTALL) -o $(INITOWNER) -g $(INITGROUP) -m $(INITMODE) $< $@ $(INSTALL) -p -o $(INITOWNER) -g $(INITGROUP) -m $(INITMODE) $< $@
# --- special installation rules < # --- special installation rules <
@ -390,8 +390,8 @@ $$(TOPDIR)/dir_install_$(1).done:
$$(BUILD_$(1)DIR)/%: % $$(TOPDIR)/dir_build_$(1).done $$(BUILD_$(1)DIR)/%: % $$(TOPDIR)/dir_build_$(1).done
@if [ ! $$< -ef $$@ -a "`echo $$< | $(SED) 's/\..*//'`" != local ]; then \ @if [ ! $$< -ef $$@ -a "`echo $$< | $(SED) 's/\..*//'`" != local ]; then \
echo install -m $($(1)MODE) $$< $$@ ;\ echo install -p -m $($(1)MODE) $$< $$@ ;\
install -m $($(1)MODE) $$< $$@ ;\ install -p -m $($(1)MODE) $$< $$@ ;\
rm -f $$(TOPDIR)/dirs-*.done ;\ rm -f $$(TOPDIR)/dirs-*.done ;\
fi fi
@ -399,7 +399,7 @@ $$(INSTALL_$(1)DIR):
$$(INSTALL) -d -o $$($(1)DIROWNER) -g $$($(1)DIRGROUP) -m $$($(1)DIRMODE) $$(INSTALL_$(1)DIR) $$(INSTALL) -d -o $$($(1)DIROWNER) -g $$($(1)DIRGROUP) -m $$($(1)DIRMODE) $$(INSTALL_$(1)DIR)
$$(INSTALL_$(1)DIR)/%: % | $$(INSTALL_$(1)DIR) $$(INSTALL_$(1)DIR)/%: % | $$(INSTALL_$(1)DIR)
$$(INSTALL) -o $$($(1)OWNER) -g $$($(1)GROUP) -m $$($(1)MODE) $$< $$@ $$(INSTALL) -p -o $$($(1)OWNER) -g $$($(1)GROUP) -m $$($(1)MODE) $$< $$@
endef endef
#endef #endef
@ -418,7 +418,7 @@ endif
$(INSTALLED_PROFILE_PATH_SCRIPT): $(TOPDIR)/profiledir.done $(INSTALLED_PROFILE_PATH_SCRIPT): $(TOPDIR)/profiledir.done
echo "if [ -z \"\$$PATH\" ]; then PATH=$(shell echo $(INSTALL_EXEDIR) | $(SED) -e s%^$(ENV_PREFIX)/%/%)" > path_script.sh echo "if [ -z \"\$$PATH\" ]; then PATH=$(shell echo $(INSTALL_EXEDIR) | $(SED) -e s%^$(ENV_PREFIX)/%/%)" > path_script.sh
echo "else PATH=\$$PATH:$(shell echo $(INSTALL_EXEDIR) | $(SED) -e s%^$(ENV_PREFIX)/%/%); fi" >> path_script.sh echo "else PATH=\$$PATH:$(shell echo $(INSTALL_EXEDIR) | $(SED) -e s%^$(ENV_PREFIX)/%/%); fi" >> path_script.sh
$(INSTALL) -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) path_script.sh $@ $(INSTALL) -p -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) path_script.sh $@
find: find:
@bash $(MOD_SCRIPT_DIR)/list-cvs-files.sh @bash $(MOD_SCRIPT_DIR)/list-cvs-files.sh

View file

@ -26,7 +26,7 @@ clean.std-tools:
rm -f $(PROFILE_SH) *.done rm -f $(PROFILE_SH) *.done
install.std-tools.done: install.std-dir.done install.std-tools.done: install.std-dir.done
$(INSTALL) -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) $(PROFILE_SH) $(PROFILE_DIR) $(INSTALL) -p -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) $(PROFILE_SH) $(PROFILE_DIR)
touch $@ touch $@
install.std-dir.done: install.std-dir.done:

View file

@ -36,5 +36,5 @@ $(INSTALLED_SUBTREE_DIRS):
$(INSTALL) -d -o $(SUBTREE_DIROWNER) -g $(SUBTREE_DIRGROUP) -m $(SUBTREE_DIRMODE) $@ $(INSTALL) -d -o $(SUBTREE_DIROWNER) -g $(SUBTREE_DIRGROUP) -m $(SUBTREE_DIRMODE) $@
$(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/%: % $(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/%: %
$(INSTALL) -o $(SUBTREE_OWNER) -g $(SUBTREE_GROUP) -m $(SUBTREE_MODE) $< $@ $(INSTALL) -p -o $(SUBTREE_OWNER) -g $(SUBTREE_GROUP) -m $(SUBTREE_MODE) $< $@

View file

@ -28,7 +28,7 @@ ifeq ($(SWIG_TARGET),php)
all: all:
$(SWIG_PHP_MODULE_INI_DIR)/%.ini: %.ini $(SWIG_PHP_MODULE_INI_DIR)/%.ini: %.ini
$(INSTALL) -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@ $(INSTALL) -p -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@
%.ini: %.ini:
echo extension=$*.so > $@.tmp echo extension=$*.so > $@.tmp
@ -124,7 +124,7 @@ $(SWIG_MODULE_SO): $(SWIG_OBJ)
$(CPP) $^ -shared $(BUILD_LDFLAGS) -o $@ $(CPP) $^ -shared $(BUILD_LDFLAGS) -o $@
$(SWIG_MODULE_TARGET_DIR)/%: % $(SWIG_MODULE_TARGET_DIR)/%: %
$(INSTALL) -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) -m $(SWIG_TARGETMODE) $< $@ $(INSTALL) -p -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) -m $(SWIG_TARGETMODE) $< $@
clean.generated: clean.generated:
rm -f $(SWIG_MODULE_WRAP_C) $(SWIG_OBJ) $(SWIG_MODULE_SO) $(SWIG_MODULE_TARGET) $(SWIG_CLEAN) $(SWIG_WRAPPER_DEP_MK) rm -f $(SWIG_MODULE_WRAP_C) $(SWIG_OBJ) $(SWIG_MODULE_SO) $(SWIG_MODULE_TARGET) $(SWIG_CLEAN) $(SWIG_WRAPPER_DEP_MK)

View file

@ -26,7 +26,7 @@ install-images.done: basedir.done generate.done $(INSTALLED_IMG)
$(INSTALL) -d -m $(IMGDIRMODE) -o $(IMGDIROWNER) -g $(IMGDIRGROUP) $(BASEDIR)/$$d ;\ $(INSTALL) -d -m $(IMGDIRMODE) -o $(IMGDIROWNER) -g $(IMGDIRGROUP) $(BASEDIR)/$$d ;\
done done
for f in `find . -name '*.png' -o -name '*.jpg' -o -name '*.gif'`; do \ for f in `find . -name '*.png' -o -name '*.jpg' -o -name '*.gif'`; do \
$(INSTALL) -m $(IMGMODE) -o $(IMGOWNER) -g $(IMGGROUP) $$f $(BASEDIR)/$$f ;\ $(INSTALL) -p -m $(IMGMODE) -o $(IMGOWNER) -g $(IMGGROUP) $$f $(BASEDIR)/$$f ;\
done done
touch $@ touch $@

View file

@ -420,7 +420,7 @@ build_pkg()
scm_files | scm_files |
grep -v VERSION | grep -v VERSION |
cpio -o -H newc | cpio -o -H newc |
( cd $src_tree; cpio --make-directories -i) ( cd $src_tree; cpio -m --make-directories -i)
echo $version > $src_tree/VERSION echo $version > $src_tree/VERSION
local pkgfmt local pkgfmt
@ -669,6 +669,7 @@ cmd_log_install()
local c_opmode=opmode_install local c_opmode=opmode_install
local c_absolute=0 local c_absolute=0
local c_wrap=0 local c_wrap=0
local install_opts
set -- `getopt 'DLWi:a:f:l:bg:cdm:o:psS:vA' $*` set -- `getopt 'DLWi:a:f:l:bg:cdm:o:psS:vA' $*`
@ -696,8 +697,10 @@ cmd_log_install()
;; ;;
-b) -b)
install_opts="$install_opts $1"
;; ;;
-c) -c)
install_opts="$install_opts $1"
;; ;;
-d) -d)
c_mode_dir=true;; c_mode_dir=true;;
@ -713,13 +716,16 @@ cmd_log_install()
c_owner=$2 c_owner=$2
shift;; shift;;
-p) -p)
install_opts="$install_opts $1"
;; ;;
-s) -s)
install_opts="$install_opts $1"
;; ;;
-S) -S)
c_suffix=$2 c_suffix=$2
shift;; shift;;
-v) -v)
install_opts="$install_opts $1"
;; ;;
-L) -L)
c_opmode=opmode_link;; c_opmode=opmode_link;;
@ -754,8 +760,8 @@ cmd_log_install()
check_create_parent $c_create_leading_dirs $c_target check_create_parent $c_create_leading_dirs $c_target
cp -d $c_source $c_target || exit $? cp -d $c_source $c_target || exit $?
else else
[ "$c_create_leading_dirs" ] && local opts=-D [ "$c_create_leading_dirs" ] && local install_opts="$install_opts -D"
install $opts $args || exit $? install $install_opts $args || exit $?
fi fi
;; ;;