diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 243 |
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 $< > $@ |