summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile243
1 files changed, 243 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000000..83d5ffec178
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,243 @@
+#----------------------------------------------------------------------------
+# $Id$
+#
+# Top-level Makefile for the ACE toolkit libraries, tests, and
+# applications
+#----------------------------------------------------------------------------
+
+#### Please see ACE-INSTALL.html for build information.
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+INFO = README \
+ THANKS \
+ VERSION
+
+DIRS = ace \
+ netsvcs \
+ tests \
+ apps \
+ examples \
+ performance-tests \
+ websvcs \
+ XML
+
+CLONE = Makefile \
+ ace \
+ apps \
+ bin \
+ etc \
+ examples \
+ include \
+ netsvcs \
+ performance-tests \
+ TAO \
+ tests \
+ websvcs \
+ XML \
+ PACE
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
+
+# Optional TAO targets.
+-include $(ACE_ROOT)/TAO/tao_targets.GNU
+
+# For the following to work you need to compile the
+# $(ACE_ROOT)/bin/clone.cpp file and install it in your ~/bin
+# directory (or some place similar).
+
+.PHONY: clone
+clone:
+ @for dir in $(CLONE); \
+ do \
+ (clone -s $(ACE_ROOT)/$$dir $$dir) \
+ done
+
+CORE_DIRS= \
+ ace \
+ apps/gperf/src \
+ TAO/tao \
+ TAO/TAO_IDL \
+ TAO/orbsvcs/orbsvcs \
+ TAO/orbsvcs/Naming_Service
+
+.PHONY: Core
+Core:
+ @for dir in $(CORE_DIRS); \
+ do \
+ $(MAKE) -C $$dir; \
+ done
+
+#### NOTE: The following comments describe how to create kits.
+#### It's intended for use by ACE+TAO developers and
+#### maintainers only. ACE+TAO users need not be concerned
+#### with creating kits, just unpacking and using them.
+
+#### The "release" and "releaseall" targets can be used to create
+#### the ACE and ACE+TAO kits. By default, each creates a new beta
+#### release. To create a new minor or major release, add REL=minor
+#### or REL=major, respectively, to the make invocation.
+####
+#### NOTE: the REL modifier applies to _both_ ACE and TAO in
+#### releaseall!
+####
+#### To create a new ACE minor release and a TAO beta release:
+#### % make release REL=minor
+#### % cd TAO
+#### % make release
+####
+#### There are some other release/releaseall options [default value is in
+#### brackets]:
+#### ACE_TAG [ACE version in your workspace]: prepend tag with -ta
+#### TAO_TAG [TAO version in your workspace]: prepend tag with -tt
+####
+#### NOTE: the ACE and TAO versions will be updated automatically
+#### by release/releaseall. ACE_TAG and TAO_TAG can be overridden
+#### to kit a particular version.
+####
+#### APPLY_NEW_TAG [enabled]: set to null to disable
+#### CHECK [disabled]: set to -n to see what make_release will do, but not
+#### do it
+#### GENERATE_MAN_PAGES [enabled]: set to null to disable regeneration of
+#### the ACE_wrappers/man/ hierarchy
+#### INSTALL_KIT [enabled]: set to null to not install in public
+#### ftp/http directory on host ace
+#### REL [beta]: set to minor or major, optionally, when applying a new tag
+#### ZIP_FILES [enabled]: set to -z to disable creation of .zip files
+####
+#### Example creation of ACE-only kit, version ACE-5_0_1 from current
+#### workspace:
+#### make release ACE_TAG='-ta ACE-5_0_1' APPLY_NEW_TAG= \
+#### GENERATE_MAN_PAGES= INSTALL_KIT= ZIP_FILES=-z
+
+CONTROLLED_FILES = \
+ ACE-INSTALL.html \
+ ACE-install.sh \
+ ASNMP \
+ AUTHORS \
+ COPYING \
+ ChangeLog* \
+ FAQ \
+ Makefile \
+ Makefile.am \
+ PACE \
+ PROBLEM-REPORT-FORM \
+ README \
+ THANKS \
+ TODO \
+ VERSION \
+ XML \
+ acconfig.h \
+ ace \
+ ace-config.1.in \
+ ace-config.in \
+ aceConf.sh.in \
+ apps \
+ bin \
+ configure.in \
+ docs \
+ etc \
+ examples \
+ include \
+ m4 \
+ netsvcs \
+ os-patches \
+ performance-tests \
+ tests \
+ websvcs
+
+RELEASE_FILES = \
+ $(addprefix ACE_wrappers/,$(CONTROLLED_FILES)) \
+ ACE_wrappers/ACE-INSTALL \
+ ACE_wrappers/man
+
+ALL_RELEASE_FILES = \
+ $(RELEASE_FILES) \
+ ACE_wrappers/TAO
+
+RELEASE_LIB_FILES = \
+ ACE_wrappers/VERSION \
+ ACE_wrappers/PACE \
+ ACE_wrappers/ace \
+ ACE_wrappers/bin \
+ ACE_wrappers/etc \
+ ACE_wrappers/include \
+ ACE_wrappers/m4 \
+ ACE_wrappers/netsvcs \
+ ACE_wrappers/tests \
+ ACE_wrappers/websvcs
+
+# Files that should get tagged at release time but shouldn't be in any
+# of the release file lists since they may already be in a directory
+# found in those lists.
+RELEASE_TAG_FILES = \
+ html \
+ man/Makefile.am \
+ man/man3/Makefile.am
+
+.PHONY: release releasetao releaseall tag
+
+ACE_TAG_VALUE = $(shell head -1 VERSION | perl -ne \
+ 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "ACE-$$_";')
+ACE_TAG = -ta $(ACE_TAG_VALUE)
+TAO_TAG_VALUE = $(shell head -1 TAO/VERSION | perl -ne \
+ 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "TAO-$$_";')
+TAO_TAG = -tt $(TAO_TAG_VALUE)
+APPLY_NEW_TAG = tag
+CHECK =
+GENERATE_MAN_PAGES = -g
+INSTALL_KIT = -i
+REL = beta
+ZIP_FILES =
+
+#### The release target creates the ACE (only) kit.
+release: $(APPLY_NEW_TAG)
+ @$(ACE_ROOT)/bin/make_release -k ace $(ACE_TAG) \
+ $(INSTALL_KIT) $(GENERATE_MAN_PAGES) $(ZIP_FILES) $(CHECK)
+
+tag:
+ @$(ACE_ROOT)/bin/make_release $(CHECK) -k ace -v $(REL) -u
+
+#### The following target is for use by the TAO Makefile. It should not
+#### be called directly from the command line. The releasetao target
+#### creates the combined ACE-TAO kit.
+releasetao:
+ @$(ACE_ROOT)/bin/make_release -k ace+tao $(ACE_TAG) $(TAO_TAG) \
+ $(INSTALL_KIT) $(GENERATE_MAN_PAGES) $(ZIP_FILES) $(CHECK)
+
+#### The releaseall target:
+#### 1) Creates the ACE kit.
+#### 2) Updates the TAO release (VERSION, ChangeLog, and tag) by
+#### recursively invoking make release in the TAO directory.
+#### The make then recursively invokes make releasetao in this
+#### directory to create the combined ACE-TAO kit.
+releaseall: $(APPLY_NEW_TAG)
+ @cd TAO && $(MAKE) -s release REL=$(REL)
+
+.PHONY: show_controlled_files show_release_files show_release_lib_files
+.PHONY: show_release_tag_files
+
+show_controlled_files:
+ @echo $(CONTROLLED_FILES)
+
+show_release_files:
+ @echo $(RELEASE_FILES)
+
+show_release_lib_files:
+ @echo $(RELEASE_LIB_FILES)
+
+show_release_tag_files:
+ @echo $(RELEASE_TAG_FILES)
+
+ACE-INSTALL: ACE-INSTALL.html
+ @lynx -dump $< > $@