mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
tools: Remove install-if-change program
The last installed tool in RTEMS repository is the install-if-change script. It is not used to build/install BSPs. This script does the same as the standard "install" program with an additional feature to install variants via the -V command line option. This script is used by the standard Makefile support: c/src/make/host.cfg.in:INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change The INSTALL_CHANGE is used by: c/src/make/host.cfg.in:ifndef INSTALL_CHANGE c/src/make/host.cfg.in:INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change c/src/make/host.cfg.in:INSTALL_VARIANT=$(INSTALL_CHANGE) -V "$(LIB_VARIANT)" Remove the support for variant installation and instead use the standard "install" program. This breaks application Makefiles using the standard Makefile support of RTEMS. Close #3455.
This commit is contained in:
@@ -11,7 +11,7 @@ noinst_SCRIPTS = bootstrap
|
||||
|
||||
|
||||
dist-hook:
|
||||
@files=`(cd $(srcdir); find cpukit c testsuites tools \
|
||||
@files=`(cd $(srcdir); find cpukit c testsuites \
|
||||
-name configure.ac -print | sed 's,/configure.ac,,' | sort)`; \
|
||||
for i in $$files; do \
|
||||
if test -f $(distdir)/$$i/configure.ac; then : ; \
|
||||
|
||||
@@ -426,24 +426,9 @@
|
||||
the installation of libraries, executables, header files,
|
||||
and other things that need to be installed:
|
||||
|
||||
INSTALL_CHANGE - install a file only if the source
|
||||
file is actually different than
|
||||
the installed copy or if there is
|
||||
no installed copy. USAGE:
|
||||
INSTALL_CHANGE - set to host "install" program by default
|
||||
|
||||
usage: install-if-change [ -vmV ] file [ file ... ] dest-directory-or-file
|
||||
-v -- verbose
|
||||
-V suffix -- suffix to append to targets (before any . suffix)
|
||||
eg: -V _g would change 'foo' to 'foo_g' and
|
||||
'libfoo.a' to 'libfoo_g.a'
|
||||
-m mode -- mode for new file(s)
|
||||
|
||||
INSTALL_VARIANT - installs the built file using the
|
||||
proper variant suffix (e.g. _g
|
||||
for debug turns libmine.a into libmine_g.a)
|
||||
This is implemented as a macro that
|
||||
invokes install-if-change with the
|
||||
appropriate -V argument setting.
|
||||
INSTALL_VARIANT - set to host "install" program by default
|
||||
|
||||
Special Directory Makefile Targets
|
||||
----------------------------------
|
||||
|
||||
@@ -28,9 +28,11 @@ BIN2C=rtems-bin2c
|
||||
endif
|
||||
|
||||
ifndef INSTALL_CHANGE
|
||||
INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change
|
||||
INSTALL_CHANGE=install
|
||||
endif
|
||||
ifndef INSTALL_VARIANT
|
||||
INSTALL_VARIANT=install
|
||||
endif
|
||||
INSTALL_VARIANT=$(INSTALL_CHANGE) -V "$(LIB_VARIANT)"
|
||||
|
||||
# ksh (or bash) is used by some shell scripts; ref build-tools/scripts/Makefile
|
||||
#
|
||||
|
||||
15
configure.ac
15
configure.ac
@@ -32,21 +32,6 @@ RTEMS_ENABLE_RTEMS_DEBUG
|
||||
RTEMS_ENABLE_PARAVIRT
|
||||
RTEMS_ENABLE_DRVMGR
|
||||
|
||||
## Check if there are valid tools install and in the path.
|
||||
RTEMS_CHECK_TOOL(RTEMS_CC,gcc)
|
||||
test -z "$RTEMS_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
|
||||
## NOTES:
|
||||
## * tools/build are host-native tools to be installed on the host.
|
||||
## * tools/cpu are host-native or host-cross-target-tools
|
||||
|
||||
RTEMS_BUILD_CONFIG_SUBDIRS([tools/build])
|
||||
|
||||
# Some BSPs carelessly apply these tools as build-tools
|
||||
AS_IF([test $host != $build],[
|
||||
RTEMS_HOST_CONFIG_SUBDIRS([tools/build])
|
||||
])
|
||||
|
||||
RTEMS_TARGET_CONFIG_SUBDIRS([c])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
ACLOCAL_AMFLAGS = -I ../../aclocal
|
||||
|
||||
bin_SCRIPTS = install-if-change
|
||||
|
||||
include $(top_srcdir)/../../automake/host.am
|
||||
@@ -1,6 +0,0 @@
|
||||
Misc. support tools for RTEMS workspaces.
|
||||
|
||||
install-if-change
|
||||
Smart install script that also can append suffixes as it
|
||||
installs (suffixes used for debug and profile variants).
|
||||
Requires bash or ksh.
|
||||
@@ -1,67 +0,0 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the `basename' function. */
|
||||
#undef HAVE_BASENAME
|
||||
|
||||
/* Define to 1 if you have the <getopt.h> header file. */
|
||||
#undef HAVE_GETOPT_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#undef HAVE_LIBGEN_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strnlen' function. */
|
||||
#undef HAVE_STRNLEN
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#undef HAVE_STRTOL
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
@@ -1,18 +0,0 @@
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([rtems-tools-build],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
|
||||
AC_CONFIG_SRCDIR([install-if-change.in])
|
||||
RTEMS_TOP(../..)
|
||||
RTEMS_SOURCE_TOP
|
||||
RTEMS_BUILD_TOP
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AM_INIT_AUTOMAKE([no-define foreign subdir-objects 1.12.2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_PATH_KSH
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([install-if-change],[chmod +x install-if-change])
|
||||
AC_OUTPUT
|
||||
@@ -1,139 +0,0 @@
|
||||
#!@KSH@ -p
|
||||
#
|
||||
# Either bash or ksh will be ok for this; requires (( )) arithmetic
|
||||
# (-p above just says to not parse $ENV file; makes it faster for
|
||||
# those of us who set $ENV)
|
||||
#
|
||||
# install files if they have changed by running 'cmp', then 'install'
|
||||
# as necessary.
|
||||
#
|
||||
# Optionally, can append a suffix before last existing suffix (if any)
|
||||
#
|
||||
# NOTE
|
||||
# We avoid using typical install(1M) programs since they have
|
||||
# large variability across systems and we also need to support ou
|
||||
# -V option.
|
||||
# So we just copy and chmod by hand.
|
||||
|
||||
progname=`basename $0`
|
||||
#progname=${0##*/} # fast basename hack for ksh, bash
|
||||
|
||||
USAGE=\
|
||||
"usage: $progname [ -vmV ] file [ file ... ] dest-directory-or-file
|
||||
-v -- verbose
|
||||
-V suffix -- suffix to append to targets (before any . suffix)
|
||||
eg: -V _g would change 'foo' to 'foo_g' and
|
||||
'libfoo.a' to 'libfoo_g.a'
|
||||
-m mode -- mode for new file(s)"
|
||||
|
||||
fatal() {
|
||||
if [ "$1" ]
|
||||
then
|
||||
echo $* >&2
|
||||
fi
|
||||
echo "$USAGE" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# process the options
|
||||
#
|
||||
|
||||
verbose=""
|
||||
suffix=""
|
||||
mode=""
|
||||
|
||||
while getopts vm:V: OPT
|
||||
do
|
||||
case "$OPT" in
|
||||
v)
|
||||
verbose="yes";;
|
||||
V)
|
||||
eval suffix=$OPTARG;;
|
||||
m)
|
||||
mode="$OPTARG";;
|
||||
*)
|
||||
fatal
|
||||
esac
|
||||
done
|
||||
|
||||
shiftcount=`expr $OPTIND - 1`
|
||||
shift $shiftcount
|
||||
|
||||
args=$*
|
||||
|
||||
#
|
||||
# Separate source file(s) from dest directory or file
|
||||
#
|
||||
|
||||
files=""
|
||||
dest=""
|
||||
for d in $args
|
||||
do
|
||||
files="$files $dest"
|
||||
dest=$d
|
||||
done
|
||||
|
||||
if [ ! "$files" ] || [ ! "$dest" ]
|
||||
then
|
||||
fatal "missing files or invalid destination"
|
||||
fi
|
||||
|
||||
#
|
||||
# Process the arguments
|
||||
#
|
||||
|
||||
targets=""
|
||||
for f in $files
|
||||
do
|
||||
# leaf=`basename $f`
|
||||
leaf=${f##*/} # fast basename hack for ksh, bash
|
||||
|
||||
target=$dest
|
||||
if [ -d $dest ]
|
||||
then
|
||||
# if we were given a suffix, then add it as appropriate
|
||||
if [ "$suffix" ]
|
||||
then
|
||||
case $f in
|
||||
*.*)
|
||||
# leaf=`echo $leaf |
|
||||
# /bin/sed "s/\([~\.]*\)\.\(.*\)$/\1$suffix.\2/"`
|
||||
# ksh,bash hack for above sed script
|
||||
leaf=${leaf%%.*}$suffix.${leaf#*.}
|
||||
|
||||
[ "$verbose" = "yes" ] &&
|
||||
echo "$progname: $f will be installed as $leaf"
|
||||
;;
|
||||
*)
|
||||
leaf=$leaf$suffix;;
|
||||
esac
|
||||
fi
|
||||
target=$target/$leaf
|
||||
fi
|
||||
|
||||
[ ! -r $f ] && fatal "can not read $f"
|
||||
|
||||
if cmp -s $f $target
|
||||
then
|
||||
[ "$verbose" = "yes" ] && echo "'$f' not newer than '$target'"
|
||||
else
|
||||
[ "$verbose" = "yes" ] && echo "rm -f $target"
|
||||
rm -f $target
|
||||
echo "cp -p $f $target"
|
||||
cp -p $f $target || exit 1
|
||||
targets="$targets $target" # keep list for chmod below
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$mode" -a "$targets" ]
|
||||
then
|
||||
[ "$verbose" = "yes" ] && echo "chmod $mode $targets"
|
||||
chmod $mode $targets
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables: ***
|
||||
# mode:ksh ***
|
||||
# End: ***
|
||||
Reference in New Issue
Block a user