summaryrefslogtreecommitdiff
path: root/ACE/bin/ace_components
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/bin/ace_components')
-rwxr-xr-xACE/bin/ace_components106
1 files changed, 106 insertions, 0 deletions
diff --git a/ACE/bin/ace_components b/ACE/bin/ace_components
new file mode 100755
index 00000000000..34cc45f2735
--- /dev/null
+++ b/ACE/bin/ace_components
@@ -0,0 +1,106 @@
+#! /bin/sh
+# $Id$
+#
+# Encapsulates set/access of a components file, which records set of
+# components that were built in a library. Intended to be used by
+# GNUmakefiles and scripts. See ACE_wrappers/ace/GNUmakefile for an
+# example.
+#
+usage="usage: $0 --ace | --orbsvcs | --tao \
+ [--remove | --set \" <components list> \"]"
+
+####
+#### Make sure that ACE_ROOT, and TAO_ROOT are set.
+####
+if [ ! "$ACE_ROOT" ]; then
+ echo $0': your ACE_ROOT environment variable is not set!' 1>&2
+ exit -1
+fi
+if [ ! "$TAO_ROOT" ]; then
+ TAO_ROOT=$ACE_ROOT/TAO
+ export TAO_ROOT
+fi
+
+####
+#### Process command line arguments.
+####
+if [ $# -ge 1 ]; then
+ case $1 in
+ --ace) components_file=$ACE_ROOT/ace/ACE_COMPONENTS.list ;;
+ --orbsvcs)
+ components_file=$TAO_ROOT/orbsvcs/orbsvcs/ORBSVCS_COMPONENTS.list ;;
+ --tao) components_file=$TAO_ROOT/tao/TAO_COMPONENTS.list ;;
+ *) echo $usage; exit -1 ;;
+ esac
+ shift
+else
+ echo $usage
+ exit -1
+fi
+
+set_components=0
+append_components=0
+if [ $# -ge 1 ]; then
+ if [ $1 = '--set' ]; then
+ set_components=1
+ shift
+ if [ $# -eq 1 ]; then
+ components=$1
+ shift
+ else
+ echo $usage
+ exit -1
+ fi
+ elif [ $1 = '--append' ]; then
+ append_components=1
+ shift
+ if [ $# -eq 1 ]; then
+ components=$1
+ shift
+ else
+ echo $usage
+ exit -1
+ fi
+ elif [ $1 = '--remove' ]; then
+ rm -f $components_file
+ else
+ echo $usage
+ exit -1
+ fi
+fi
+
+if [ $set_components -eq 1 ]; then
+ ####
+ #### Update the components file, if it has changed since last set.
+ ####
+ if [ -f $components_file ]; then
+ if echo "$components" | diff - $components_file > /dev/null; then
+ :
+ else
+ echo "$components" > $components_file
+ fi
+ else
+ echo "$components" > $components_file
+ fi
+elif [ $append_components -eq 1 ]; then
+ ####
+ #### Update the components file, if it has changed since last set.
+ ####
+ if [ -f $components_file ]; then
+ if cat $components_file | grep "$components" > /dev/null; then
+ :
+ else
+ (cat $components_file; echo "$components") | tr ' ' '\012' | sort -u > $components_file.$$
+ mv -f $components_file.$$ $components_file
+ fi
+ else
+ echo "$components" > $components_file
+ fi
+else
+ ####
+ #### Access the contents of the components file, if it exists.
+ ####
+ if [ -f $components_file ]; then
+ cat $components_file
+ fi
+fi