From 4df4192f41c078099fddbbad68d212263137184f Mon Sep 17 00:00:00 2001
From: Adam Mitz
@@ -329,7 +329,7 @@ An alternative to directly running Synopsis
Using the Traditional ACE/GNU Configuration
source tree. The ACE recursive Makefile scheme needs this information.
There are several ways to set the ACE_ROOT variable. For example:
- TSCH/CSH:
+ TCSH/CSH:
setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
@@ -427,6 +427,9 @@
Using the Traditional ACE/GNU Configuration
+ % make install
make install is to use
$ACE_ROOT/bin/install_proj.sh
+ which will only install projects that are built (instead of trying to build each one during make install
).
+ ace/Svc_Conf_y.cpp
file,
you'll need to
@@ -2469,7 +2472,7 @@ Compiling ACE with GNU g++
If you use the GNU GCC g++ compiler please note the following:
-
+
config.status
file. This file is produced when installing gcc; it specifies
diff --git a/ACE/bin/install_proj.mk b/ACE/bin/install_proj.mk
new file mode 100644
index 0000000000000..7884d811be2a6
--- /dev/null
+++ b/ACE/bin/install_proj.mk
@@ -0,0 +1,15 @@
+include $(PROJECT_MAKEFILE)
+
+POTENTIAL_FILES = $(BIN_UNCHECKED) $(SHLIB_UNCHECKED) $(LIB_UNCHECKED)
+ACTUAL_FILES := $(wildcard $(POTENTIAL_FILES))
+
+.PHONY: checked-install
+ifeq ($(ACTUAL_FILES),)
+checked-install:
+ @echo Skipping $(PROJECT_MAKEFILE:GNUmakefile.%=%), not built
+else
+.PHONY: checked-install-message
+checked-install-message:
+ @echo Installing $(ACTUAL_FILES)
+checked-install: checked-install-message install
+endif
diff --git a/ACE/bin/install_proj.sh b/ACE/bin/install_proj.sh
new file mode 100755
index 0000000000000..468dfe10f76bb
--- /dev/null
+++ b/ACE/bin/install_proj.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# ACE's "make install" for an MPC-generated workspace will build all targets that aren't yet built
+# This script looks for projects that have been built and installs just those projects
+this_dir=$(realpath $(dirname $0))
+for makefile in $(find . -type f -name 'GNUmakefile.*'); do
+ if grep -q 'GNU Makefile' $makefile; then
+ echo Checking $makefile
+ cd $(dirname $makefile)
+ make -f $this_dir/install_proj.mk PROJECT_MAKEFILE=$(basename $makefile) checked-install "$@"
+ cd - >/dev/null
+ fi
+done