[PATCH 4/4] tools: Remove install-if-change program

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Jun 15 06:22:00 UTC 2018


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.
---
 Makefile.am                      |   2 +-
 c/src/make/README                |  21 +-----
 c/src/make/host.cfg.in           |   6 +-
 configure.ac                     |  15 -----
 tools/build/Makefile.am          |   5 --
 tools/build/README               |   6 --
 tools/build/config.h.in          |  67 -------------------
 tools/build/configure.ac         |  18 -----
 tools/build/install-if-change.in | 139 ---------------------------------------
 9 files changed, 8 insertions(+), 271 deletions(-)
 delete mode 100644 tools/build/Makefile.am
 delete mode 100644 tools/build/README
 delete mode 100644 tools/build/config.h.in
 delete mode 100644 tools/build/configure.ac
 delete mode 100644 tools/build/install-if-change.in

diff --git a/Makefile.am b/Makefile.am
index ad65c1e565..5e9489db28 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 : ; \
diff --git a/c/src/make/README b/c/src/make/README
index e2b96d9928..f3491c2577 100644
--- a/c/src/make/README
+++ b/c/src/make/README
@@ -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:
-
-      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_CHANGE  - set to host "install" program by default
+
+                    INSTALL_VARIANT - set to host "install" program by default
 
             Special Directory Makefile Targets
             ----------------------------------
diff --git a/c/src/make/host.cfg.in b/c/src/make/host.cfg.in
index 04bc04a6fb..caedc2ee9e 100644
--- a/c/src/make/host.cfg.in
+++ b/c/src/make/host.cfg.in
@@ -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
 #
diff --git a/configure.ac b/configure.ac
index d88964fca2..2de9af56a4 100644
--- a/configure.ac
+++ b/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])
diff --git a/tools/build/Makefile.am b/tools/build/Makefile.am
deleted file mode 100644
index a00a450e58..0000000000
--- a/tools/build/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-ACLOCAL_AMFLAGS = -I ../../aclocal
-
-bin_SCRIPTS = install-if-change
-
-include $(top_srcdir)/../../automake/host.am
diff --git a/tools/build/README b/tools/build/README
deleted file mode 100644
index 93de488b85..0000000000
--- a/tools/build/README
+++ /dev/null
@@ -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.
diff --git a/tools/build/config.h.in b/tools/build/config.h.in
deleted file mode 100644
index 9aa5c43023..0000000000
--- a/tools/build/config.h.in
+++ /dev/null
@@ -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
diff --git a/tools/build/configure.ac b/tools/build/configure.ac
deleted file mode 100644
index 7af73a2684..0000000000
--- a/tools/build/configure.ac
+++ /dev/null
@@ -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
diff --git a/tools/build/install-if-change.in b/tools/build/install-if-change.in
deleted file mode 100644
index 9db1927044..0000000000
--- a/tools/build/install-if-change.in
+++ /dev/null
@@ -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: ***
-- 
2.13.7



More information about the devel mailing list