#---------------------------------------------------------------------------- # $Id$ # # Top-level Makefile for the ACE toolkit libraries, tests, and # applications #---------------------------------------------------------------------------- #### 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 #### 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= \ #### INSTALL_KIT= ZIP_FILES=-z CONTROLLED_FILES = \ ACE-INSTALL.html \ ACE-install.sh \ ASNMP \ AUTHORS \ COPYING \ ChangeLog* \ FAQ \ Release \ NEWS \ ACE.mwc \ Makefile.am \ PROBLEM-REPORT-FORM \ README \ THANKS \ VERSION \ ACEXML \ ace \ ace-config.1.in \ ace-config.in \ apps \ bin \ configure.ac \ lib \ MPC \ docs \ etc \ examples \ include \ m4 \ netsvcs \ performance-tests \ tests \ Kokyu \ protocols \ websvcs RELEASE_FILES = \ $(addprefix ACE_wrappers/,$(CONTROLLED_FILES)) \ ACE_wrappers/ACE-INSTALL \ ACE_wrappers/GNUmake* \ ACE_wrappers/*.dsw \ ACE_wrappers/*.sln \ ACE_wrappers/*.bor \ ACE_wrappers/Makefile.in \ ACE_wrappers/configure \ ACE_wrappers/aclocal.m4 \ ACE_wrappers/aux_config ALL_RELEASE_FILES = \ $(RELEASE_FILES) \ ACE_wrappers/TAO RELEASE_LIB_FILES = \ ACE_wrappers/VERSION \ ACE_wrappers/ace \ ACE_wrappers/bin \ ACE_wrappers/lib \ 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: tag ACE TAO CIAO acesources taosources ciaosources .PHONY: allsources manpages all # Some useful defines which are used to create the release bundle. 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) CIAO_TAG_VALUE = $(shell head -1 TAO/CIAO/VERSION | perl -ne \ 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "CIAO-$$_";') CIAO_TAG = -tc $(CIAO_TAG_VALUE) APPLY_NEW_TAG = tag CHECK = INSTALL_KIT = -i REL = beta MAKE = make -f Release ZIP_FILES = tag: @$(ACE_ROOT)/bin/make_release $(CHECK) -k ace -v $(REL) -u #### The allsources target: allsources: $(APPLY_NEW_TAG) @cd TAO && $(MAKE) -s allsources REL=$(REL) ### Generate man pages manpages: @$(ACE_ROOT)/bin/generate_rel_manpages #### Generate everything in one shot -- not recommended all: allsources manpages ################################################################# #### The following targets in the following block are used by the #### targets defined above. Please do not invoke them directly. ################################################################# #### The release target creates the ACE (only) kit. This is not supposed #### to be used directly. Use make -f Release ACE instead. acesources: $(APPLY_NEW_TAG) @$(ACE_ROOT)/bin/make_release -k ace $(ACE_TAG) \ $(INSTALL_KIT) $(ZIP_FILES) $(CHECK) #### The following target is for use by the TAO Release target. It #### should not be called directly from the command line. This is #### invoked by the TAO target this Release file. taosources: @$(ACE_ROOT)/bin/make_release -k ace+tao $(ACE_TAG) $(TAO_TAG) \ $(INSTALL_KIT) $(ZIP_FILES) $(CHECK) #### The following target is for use by the TAO Release target. It #### should not be called directly from the command line. This is #### invoked by the TAO target this Release file. ciaosources: @$(ACE_ROOT)/bin/make_release -k ace+tao+ciao $(ACE_TAG) $(TAO_TAG) $(CIAO_TAG) \ $(INSTALL_KIT) $(ZIP_FILES) $(CHECK) ######################################################################### ## The following targets are a matter of convinience. We don't ## believe that we ever will release ACE+TAO+CIAO seperately. If that ## happens then we have these to help us out. ######################################################################### # First, CIAO standalone CIAO: $(allsources) # TAO standalone TAO: $(APPLY_NEW_TAG) @cd TAO && $(MAKE) -s TAO REL=$(REL) # ACE standalone ACE: $(APPLY_NEW_TAG) $(MAKE) -s acesources 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 $< > $@