diff options
Diffstat (limited to 'ACE/bin/MakeProjectCreator')
88 files changed, 2830 insertions, 0 deletions
diff --git a/ACE/bin/MakeProjectCreator/README b/ACE/bin/MakeProjectCreator/README new file mode 100644 index 00000000000..697fee1691c --- /dev/null +++ b/ACE/bin/MakeProjectCreator/README @@ -0,0 +1,37 @@ +This directory contains ACE- and TAO-specific extensions of MPC. All +the base projects in the config directory are ACE- and TAO-specific, +along with the perl modules for the gnuace and borland types and the +templates that go along with those implementations. + +GNUACE-specific aspects of project keywords +------------------------------------------- + +requires Specifies which features should be enabled in order to + generate the project file. Under the GNUACE type, it also + specifies which tao macros should be set to build the + target. + +avoids Specifies which features should be disabled in order to + generate the project file. Under the GNUACE type, it also + specifies which tao macros should not be set to build the + target. + +The following keywords are GNUACE only: + +tagname Specifies the make macro to check before building the target +tagchecks Specifies the values for tagname to check + +NOTE: Within the GNUACE project type, setting sharedname to empty and +setting staticname to the static library name will result in a project +that will generate only static libraries. + +The default generation mode for the GNUACE project type is named targets. +The environment variable MPC_GNUACE_DIRECTORY_DEPS can be set to get the +directory based build that was used up until April of 2006. + +For more information about MPC, see the README and USAGE files in the +MPC docs directory. + +You can anonymously check-out MPC using Subversion: + +svn co svn://svn.dre.vanderbilt.edu/DOC/MPC/trunk MPC diff --git a/ACE/bin/MakeProjectCreator/config/MPC.cfg b/ACE/bin/MakeProjectCreator/config/MPC.cfg new file mode 100644 index 00000000000..f155b2b5ba5 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/MPC.cfg @@ -0,0 +1,2 @@ +includes = $TAO_ROOT/MPC/config, $CIAO_ROOT/MPC/config, $DDS_ROOT/MPC/config +dynamic_types = $ACE_ROOT/bin/MakeProjectCreator diff --git a/ACE/bin/MakeProjectCreator/config/ace_athena.mpb b/ACE/bin/MakeProjectCreator/config/ace_athena.mpb new file mode 100644 index 00000000000..c9dad81dc77 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_athena.mpb @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +project: ace_xt { + requires += athena + lit_libs += Xaw +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb new file mode 100644 index 00000000000..fd7f56695aa --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb @@ -0,0 +1,29 @@ +// -*- MPC -*- +// $Id$ + +project : ace_x11, ace_gl { + requires += fl + + // Depends on configuration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_FL_CPPFLAGS) + CPPFLAGS += $(PLATFORM_GL_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS) + LIBS += $(PLATFORM_FL_LIBS) $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS) + LDFLAGS += $(PLATFORM_FL_LDFLAGS) $(PLATFORM_GL_LDFLAGS) + LDFLAGS += $(PLATFORM_GL_LDFLAGS) + } + specific(vc9,vc8,vc71,vc7,vc6) { + libs += fltkdll + } + + specific(automake) { + // ACE_FLTK_* macros contain X11 settings + compile_flags -= $(ACE_X11_CPPFLAGS) + linkflags -= $(ACE_X11_LDFLAGS) + pure_libs -= $(ACE_X11_LIBS) + + compile_flags += $(ACE_FLTK_CPPFLAGS) + linkflags += $(ACE_FLTK_LDFLAGS) + pure_libs += $(ACE_FLTK_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_flreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_flreactor.mpb new file mode 100644 index 00000000000..63289cbac3a --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_flreactor.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, ace_fl { + requires += ace_flreactor + after += ACE_FlReactor + libs += ACE_FlReactor +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb b/ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb new file mode 100644 index 00000000000..36b8309f1fc --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb @@ -0,0 +1,11 @@ +// -*- MPC -*- +// +// $Id$ + +feature(ace_for_tao) { + macros += ACE_LACKS_ACE_TOKEN ACE_LACKS_MSG_WFMO + + after += ACE_FOR_TAO + libs += ACE_FOR_TAO + +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_fox.mpb b/ACE/bin/MakeProjectCreator/config/ace_fox.mpb new file mode 100644 index 00000000000..cc8c2f967f6 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_fox.mpb @@ -0,0 +1,19 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += fox + // Depends on configration from include/makeinclude/platform_*.GNU + + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_FOX_CPPFLAGS) + LIBS += $(PLATFORM_FOX_LIBS) + LDFLAGS += $(PLATFORM_FOX_LDFLAGS) + } + + specific(automake) { + compile_flags += $(ACE_FOX_CPPFLAGS) + linkflags += $(ACE_FOX_LDFLAGS) + pure_libs += $(ACE_FOX_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_foxreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_foxreactor.mpb new file mode 100644 index 00000000000..d18642408eb --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_foxreactor.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, ace_fox { + requires += ace_foxreactor + after += ACE_FoxReactor + libs += ACE_FoxReactor +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb new file mode 100644 index 00000000000..645fd0104aa --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb @@ -0,0 +1,16 @@ +// -*- MPC -*- +// $Id$ + +project : ace_x11 { + requires += gl + + // Depends on configration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_GL_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS) + LIBS += $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS) + LDFLAGS += $(PLATFORM_GL_LDFLAGS) $(PLATFORM_GL_LDFLAGS) + } + specific(vc6,vc7,vc71,vc8,vc9) { + lit_libs += OpenGL32 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb b/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb new file mode 100644 index 00000000000..c1235d4633f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb @@ -0,0 +1,13 @@ +// -*- MPC -*- +// $Id$ + +project { + macros += ACE_HAS_GTK + + // Depends on configration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_GTK_CPPFLAGS) + LIBS += $(PLATFORM_GTK_LIBS) + LDFLAGS += $(PLATFORM_GTK_LDFLAGS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_mfc.mpb b/ACE/bin/MakeProjectCreator/config/ace_mfc.mpb new file mode 100644 index 00000000000..3339a9220eb --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_mfc.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project: mfc { + macros += ACE_HAS_MFC=1 +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_motif.mpb b/ACE/bin/MakeProjectCreator/config/ace_motif.mpb new file mode 100644 index 00000000000..350291b8e52 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_motif.mpb @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +project: ace_xt { + requires += motif + lit_libs += Xm +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_openssl.mpb b/ACE/bin/MakeProjectCreator/config/ace_openssl.mpb new file mode 100644 index 00000000000..208de546c19 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_openssl.mpb @@ -0,0 +1,30 @@ +// -*- MPC -*- +// $Id$ + +project : openssl { + // For both automake and gnuace, we want to use built-in macros instead of + // the values provided by the openssl base project. + specific (automake, gnuace) { + lit_libs -= ssl crypto + includes -= $(SSL_ROOT)/include + includes -= /usr/kerberos/include + libpaths -= $(SSL_ROOT)/lib + } + + // The ACE/TAO configure scripts set ace_TLS_CFLAGS and ace_TLS_LIBS + // instead of $(SSL_ROOT)/include and $(SSL_ROOT)/lib as set by MPC's + // openssl.mpb. + specific (automake) { + compile_flags += @ACE_TLS_CPPFLAGS@ + linkflags += @ACE_TLS_LDFLAGS@ + pure_libs += @ACE_TLS_LIBS@ + } + + // These values get set in platform_macros.GNU or defaulted + // in wrapper_macros.GNU if the GNU make variable ssl is set to 1. + specific (gnuace) { + compile_flags += $(PLATFORM_SSL_CPPFLAGS) + linkflags += $(PLATFORM_SSL_LDFLAGS) + pure_libs += $(PLATFORM_SSL_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_output.mpb b/ACE/bin/MakeProjectCreator/config/ace_output.mpb new file mode 100644 index 00000000000..8c3c7337a61 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_output.mpb @@ -0,0 +1,12 @@ +// -*- MPC -*- +// $Id$ + +project { + libout = $(ACE_ROOT)/lib + + specific(automake) { + libout -= $(ACE_ROOT)/lib + libout += $(top_builddir)/lib + } +} + diff --git a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb new file mode 100644 index 00000000000..3c8635caaf2 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb @@ -0,0 +1,28 @@ +// -*- MPC -*- +// $Id$ + + +project: qt { + // Depends on configration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_QT_CPPFLAGS) + LIBS += $(PLATFORM_QT_LIBS) + LDFLAGS += $(PLATFORM_QT_LDFLAGS) + } + + specific(automake) { + includes -= $(QTDIR)/include + libpaths -= $(QTDIR)/lib + macros -= QT_THREAD_SUPPORT + lit_libs -= qt-mt$(QT_VERSION) + + compile_flags += $(ACE_QT_CPPFLAGS) + linkflags += $(ACE_QT_LDFLAGS) + pure_libs += $(ACE_QT_LIBS) + } + + specific(vc6, vc7, vc71, vc8, vc9, nmake) { + lit_libs -= qt-mt$(QT_VERSION) + pure_libs += $(PLATFORM_QT_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb new file mode 100644 index 00000000000..5aafe14fdb7 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, ace_qt { + requires += ace_qtreactor + after += ACE_QtReactor + libs += ACE_QtReactor +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_tk.mpb b/ACE/bin/MakeProjectCreator/config/ace_tk.mpb new file mode 100644 index 00000000000..10493bbf4ea --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_tk.mpb @@ -0,0 +1,19 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += tk + // Depends on configration from include/makeinclude/platform_*.GNU + + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_TCL_CPPFLAGS) $(PLATFORM_TK_CPPFLAGS) + LIBS += $(PLATFORM_TCL_LIBS) $(PLATFORM_TK_LIBS) + LDFLAGS += $(PLATFORM_TCL_LDFLAGS) $(PLATFORM_TK_LDFLAGS) + } + + specific(automake) { + compile_flags += $(ACE_TK_CPPFLAGS) $(ACE_TCL_CPPFLAGS) + linkflags += $(ACE_TK_LDFLAGS) $(ACE_TCL_LDFLAGS) + pure_libs += $(ACE_TK_LIBS) $(ACE_TCL_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_tkreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_tkreactor.mpb new file mode 100644 index 00000000000..1694ea6fc98 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_tkreactor.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, ace_tk { + requires += ace_tkreactor + after += ACE_TkReactor + libs += ACE_TkReactor +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb new file mode 100644 index 00000000000..38164eb093f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb @@ -0,0 +1,22 @@ +// -*- MPC -*- +// $Id$ + +project { + specific(vc6,vc7,vc71,vc8,vc9) { + } else { + requires += x11 + } + + // Depends on configration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_X11_CPPFLAGS) + LIBS += $(PLATFORM_X11_LIBS) + LDFLAGS += $(PLATFORM_X11_LDFLAGS) + } + + specific(automake) { + compile_flags += $(ACE_X11_CPPFLAGS) + linkflags += $(ACE_X11_LDFLAGS) + pure_libs += $(ACE_X11_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_xt.mpb b/ACE/bin/MakeProjectCreator/config/ace_xt.mpb new file mode 100644 index 00000000000..78152e14cc1 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_xt.mpb @@ -0,0 +1,20 @@ +// -*- MPC -*- +// $Id$ + +project: ace_x11 { + // this feature by default is set to 1 as projects dependent on Xt has their own features + requires += xt + + // Depends on configration from include/makeinclude/platform_*.GNU + verbatim(gnuace,local) { + CPPFLAGS += $(PLATFORM_XT_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS) + LIBS += $(PLATFORM_XT_LIBS) $(PLATFORM_X11_LIBS) + LDFLAGS += $(PLATFORM_XT_LDFLAGS) $(PLATFORM_X11_LDFLAGS) + } + + specific(automake) { + compile_flags += $(ACE_XT_CPPFLAGS) + linkflags += $(ACE_XT_LDFLAGS) + pure_libs += $(ACE_XT_LIBS) + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_xtreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_xtreactor.mpb new file mode 100644 index 00000000000..148d4c55556 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_xtreactor.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, ace_xt { + requires += ace_xtreactor + after += ACE_XtReactor + libs += ACE_XtReactor +} diff --git a/ACE/bin/MakeProjectCreator/config/ace_zzip.mpb b/ACE/bin/MakeProjectCreator/config/ace_zzip.mpb new file mode 100644 index 00000000000..726758cd81d --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ace_zzip.mpb @@ -0,0 +1,15 @@ +// $Id$ + +feature(zzip): zzip { + specific(automake) { + // Undo everything that comes from zzip and zlib + includes -= $(ZLIB_ROOT)/include $(ZZIP_ROOT)/include + libpaths -= $(ZLIB_ROOT)/lib $(ZZIP_ROOT)/lib + lit_libs -= zzip z + macros -= ZLIB USE_ZZIP + + compile_flags += $(ACE_ZZIP_CPPFLAGS) $(ACE_ZLIB_CPPFLAGS) + linkflags += $(ACE_ZZIP_LDFLAGS) $(ACE_ZLIB_LDFLAGS) + pure_libs += $(ACE_ZZIP_LIBS) $(ACE_ZLIB_LIBS) + } +}
\ No newline at end of file diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb new file mode 100644 index 00000000000..93098d974ca --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb @@ -0,0 +1,21 @@ +// -*- MPC -*- +// $Id$ + +project: ipv6, vc_warnings, build_files, test_files { + staticflags += ACE_AS_STATIC_LIBS + includes += $(ACE_ROOT) + libpaths += $(ACE_ROOT)/lib + + // Support the alternative Borland Make project type + specific(bmake) { + unicode_flags += -DACE_USES_WCHAR + macros += ACE_LD_DECORATOR_STR=ACE_LIB_TEXT(\\"$(ILIBMODIFIER)\\") + debug_macros += ACE_NO_INLINE=1 + } + + specific(automake) { + am_release = @ACE_VERSION_NAME@ + includes += $(ACE_BUILDDIR) + libpaths -= $(ACE_ROOT)/lib + } +} diff --git a/ACE/bin/MakeProjectCreator/config/aceexe.mpb b/ACE/bin/MakeProjectCreator/config/aceexe.mpb new file mode 100644 index 00000000000..cfd59d40b8d --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/aceexe.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project: acedefaults, acenosubsets, ace_for_tao, versioned_namespace { + +} diff --git a/ACE/bin/MakeProjectCreator/config/acelib.mpb b/ACE/bin/MakeProjectCreator/config/acelib.mpb new file mode 100644 index 00000000000..7a547f12320 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/acelib.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project: acedefaults, acenosubsets, ace_for_tao, versioned_namespace, pkgconfig { + +} diff --git a/ACE/bin/MakeProjectCreator/config/acenosubsets.mpb b/ACE/bin/MakeProjectCreator/config/acenosubsets.mpb new file mode 100644 index 00000000000..8ca2ce57d2e --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/acenosubsets.mpb @@ -0,0 +1,10 @@ +// -*- MPC -*- +// +// $Id$ + +feature(!ace_for_tao) { + + after += ACE + libs += ACE + +} diff --git a/ACE/bin/MakeProjectCreator/config/acexml.mpb b/ACE/bin/MakeProjectCreator/config/acexml.mpb new file mode 100644 index 00000000000..07ca8a17356 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/acexml.mpb @@ -0,0 +1,10 @@ +// -*- MPC -*- +// $Id$ + +project: ace_zzip { + avoids += ace_for_tao + after += ACEXML_Parser ACEXML + libs += ACEXML_Parser ACEXML + includes += $(ACE_ROOT)/ACEXML/common + requires += acexml +} diff --git a/ACE/bin/MakeProjectCreator/config/automake.features b/ACE/bin/MakeProjectCreator/config/automake.features new file mode 100644 index 00000000000..77109ba3a07 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/automake.features @@ -0,0 +1,38 @@ +// $Id$ + +// Ideally this file should enable all features, and the configure script +// would enable or disable the cooresponding automake conditionals. More +// work is required to make this a reality. + +automake=1 +ssl=1 +qos=0 + +gl=1 +x11=1 +athena=1 +motif=1 + +fl=1 +ace_flreactor=1 +tao_flresource=1 + +qt=1 +ace_qtreactor=1 +tao_qtresource=1 + +tk=1 +ace_tkreactor=1 +tao_tkresource=1 + +xt=1 +ace_xtreactor=1 +tao_xtresource=1 + +wxWindows=1 + +stl=1 +boost=1 +java=1 +zlib=1 +zzip=1 diff --git a/ACE/bin/MakeProjectCreator/config/avoids_ace_for_tao.mpb b/ACE/bin/MakeProjectCreator/config/avoids_ace_for_tao.mpb new file mode 100644 index 00000000000..d9a8a0a7fd9 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/avoids_ace_for_tao.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +feature(ace_for_tao) { + avoids += ace_for_tao +} diff --git a/ACE/bin/MakeProjectCreator/config/bmake.features b/ACE/bin/MakeProjectCreator/config/bmake.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/bmake.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/borland.features b/ACE/bin/MakeProjectCreator/config/borland.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/borland.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/conv_lib.mpb b/ACE/bin/MakeProjectCreator/config/conv_lib.mpb new file mode 100644 index 00000000000..e20d7f88f9e --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/conv_lib.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project { + specific(!automake) { + install_this_target = 1 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/core.mpb b/ACE/bin/MakeProjectCreator/config/core.mpb new file mode 100644 index 00000000000..020ea646f80 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/core.mpb @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +project : install { +} diff --git a/ACE/bin/MakeProjectCreator/config/crosscompile.mpb b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb new file mode 100644 index 00000000000..ff7a21a96ba --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb @@ -0,0 +1,14 @@ +// -*- MPC -*- +// $Id$ + +project { + verbatim(gnuace, circuit) { + ifneq ($(CROSS-COMPILE),) + all clean realclean idl_stubs depend lib_warning require_warning avoid_warning: + " @echo This project will not build on CROSS-COMPILE platforms." + else + } + verbatim(gnuace, bottom) { + endif # CROSS-COMPILE + } +} diff --git a/ACE/bin/MakeProjectCreator/config/default.rel b/ACE/bin/MakeProjectCreator/config/default.rel new file mode 100644 index 00000000000..6e61b7555f6 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/default.rel @@ -0,0 +1,8 @@ +// This is the default relative definitions. Wildcards are acceptable. +// +// The first column is the name for which we create a relative definition. +// The second (optional) column is the value to build up if it isn't defined +// as an environmenment variable. +*_ROOT +TAO_ROOT, $ACE_ROOT/TAO +CIAO_ROOT, $TAO_ROOT/CIAO diff --git a/ACE/bin/MakeProjectCreator/config/em3.features b/ACE/bin/MakeProjectCreator/config/em3.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/em3.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/exceptions.mpb b/ACE/bin/MakeProjectCreator/config/exceptions.mpb new file mode 100644 index 00000000000..912530f5cfb --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/exceptions.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += exceptions +} diff --git a/ACE/bin/MakeProjectCreator/config/global.features b/ACE/bin/MakeProjectCreator/config/global.features new file mode 100644 index 00000000000..84c5245e0a8 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/global.features @@ -0,0 +1,121 @@ +// $Id$ +// The global features file contains the default feature settings. +// By default, if a feature isn't listed here then it is enabled. +// If it is listed, then the value assigned to the feature is interpreted +// as a boolean value. You really shouldn't have to edit this file except +// to change the defaults. If you want to override these values you can do +// one of two things. +// +// 1) Create a default.features in this directory with the features you +// want enabled or disabled. +// 2) Create a feature file anywhere you like with the features you want and +// use the -feature_file option to specify where it is located. +// +// Feature definitions from this file are always overwritten by -features +// command option of mwc.pl. +// +// This file is somewhat akin to the platform_macros.GNU file in that build +// settings can be set here. + +// Enable these by default. +acexml = 1 +ace_svcconf = 1 +ace_token = 1 + +// By default we disable these. +ace_for_tao = 0 +ssl = 0 +qos = 0 +rapi = 0 +repo = 0 +minimum_corba = 0 +java = 0 +zlib = 0 +zzip = 0 +ipv6 = 0 +mfc = 0 +rpc = 0 +sctp = 0 +boost = 0 +dummy_label = 0 +cidl = 0 +wince = 0 +uses_wchar = 0 +gen_ostream = 0 +ziparchive = 0 +negotiate_codesets = 0 +versioned_namespace = 0 +vcl = 0 +stl = 0 +xsc = 0 +mcpp = 0 + +// Features for various GUI libraries + +// Some of features are switched on because they are also controlled +// by higher level features eg. gl is 1 because it is necessary for fl, +// but if someone turns on fl, we may assume gl is available. This way makefile +// generation is simplified. Moreover all internal ACE features like ace_qtreactor +// and tao_qtresource are also turn on, because we want to build every component +// related with qt if qt is provided. It is proposed to not remove +// switched on features from global.features just because features are available +// by default. This file is also a kind of ACE capabilities documentation, hence +// it is better to enumerate here all features recognized by ACE. + +// 1 - wxWindows (wxWidgets) libraries are avalaible +wxWindows = 0 +// 1 - Motif (Lestif) libraries are avalaible +motif = 0 +// 1 - Athena widgets libraries are avalaible +athena = 0 +// 1 - X11 libraries are avalaible +x11 = 1 +// 1 - X Toolkit libraries are avalaible +xt = 0 +// 1 - Tk libraries are avalaible +tk = 0 +// 1 - Fast Light toolkit libraries are avalaible (assume lowercase h in header files) +fl = 0 +// 1 - Qt libraries are avalaible +qt = 0 +// 1 - Fox libraries are avalaible +fox = 0 +// 1 - OpenGL libraries are avalaible +gl = 1 + +// Features for ACE support for various GUI libraries +// Use QtReactor +ace_qtreactor = 1 +// Use XtReactor +ace_xtreactor = 1 +// Use TkReactor +ace_tkreactor = 1 +// Use FlReactor +ace_flreactor = 1 + +// Features for TAO support for various GUI libraries +// Use QtResources for TAO +tao_qtresource = 1 +// Use XtResources for TAO +tao_xtresource = 1 +// Use TkResources for TAO +tao_tkresource = 1 +// Use FlResources for TAO +tao_flresource = 1 + +//Use the ZIP_Wrapper feature for when using the ZIP wrapper classes +ZIP_Wrapper = 0 + +// Feature for CORBA subsets +corba_e_compact = 0 +corba_e_micro = 0 + +// Footprint feature +optimize_collocated_invocations = 1 + +// Option to disable iiop +tao_no_iiop = 0 + +// Option to enable the linking of the TAO_CodecFactory library +// whenever TAO is linked in +link_codecfactory = 0 diff --git a/ACE/bin/MakeProjectCreator/config/gnuace.features b/ACE/bin/MakeProjectCreator/config/gnuace.features new file mode 100644 index 00000000000..8fccc7fad7b --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/gnuace.features @@ -0,0 +1,10 @@ +// $Id$ + +ssl=1 +qt=1 +fl=1 +tk=1 +xt=1 +cidl=1 +sctp=1 + diff --git a/ACE/bin/MakeProjectCreator/config/htbp.mpb b/ACE/bin/MakeProjectCreator/config/htbp.mpb new file mode 100644 index 00000000000..2a4fd8b12de --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/htbp.mpb @@ -0,0 +1,10 @@ +// -*- MPC -*- +// $Id$ + +project : acelib { + avoids += ace_for_tao // Requires ACE_Configuration_Heap + requires += ace_uuid + after += HTBP + libs += ACE_HTBP + includes += $(ACE_ROOT)/protocols +} diff --git a/ACE/bin/MakeProjectCreator/config/install.mpb b/ACE/bin/MakeProjectCreator/config/install.mpb new file mode 100644 index 00000000000..7dee217a245 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/install.mpb @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +project : install_bin, install_lib, install_headers { +} diff --git a/ACE/bin/MakeProjectCreator/config/install_bin.mpb b/ACE/bin/MakeProjectCreator/config/install_bin.mpb new file mode 100644 index 00000000000..3a5b9e934d5 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/install_bin.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project { + specific { + install_this_target = 1 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/install_headers.mpb b/ACE/bin/MakeProjectCreator/config/install_headers.mpb new file mode 100644 index 00000000000..0c459166ab3 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/install_headers.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project { + specific { + install_headers = 1 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/install_lib.mpb b/ACE/bin/MakeProjectCreator/config/install_lib.mpb new file mode 100644 index 00000000000..3a5b9e934d5 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/install_lib.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project { + specific { + install_this_target = 1 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ipv6.mpb b/ACE/bin/MakeProjectCreator/config/ipv6.mpb new file mode 100644 index 00000000000..291cee4960b --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ipv6.mpb @@ -0,0 +1,14 @@ +// -*- MPC -*- +// $Id$ + +feature(ipv6) { + specific(vc6, vc7, vc71, vc8, vc9, nmake, borland, bmake, bds4) { + lit_libs += iphlpapi + } + + specific(em3) { + lit_libs += iphlpapi ccrtrtti + } + + macros += ACE_HAS_IPV6 +} diff --git a/ACE/bin/MakeProjectCreator/config/kokyu.mpb b/ACE/bin/MakeProjectCreator/config/kokyu.mpb new file mode 100644 index 00000000000..af5719518dd --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/kokyu.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +project : acelib { + after += Kokyu + libs += Kokyu + includes += $(ACE_ROOT)/Kokyu +}
\ No newline at end of file diff --git a/ACE/bin/MakeProjectCreator/config/labviewrt_dll.mpb b/ACE/bin/MakeProjectCreator/config/labviewrt_dll.mpb new file mode 100644 index 00000000000..3294cf8669e --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/labviewrt_dll.mpb @@ -0,0 +1,17 @@ +// $Id$ +// +// This base project changes all projects to generate DLLs regardless of +// whether it's an exe or a dll project. The DLLs still go in the place the +// exe would have been generated, just as a DLL, not an EXE. +// This is needed when generating projects to build LabVIEW RT "programs" +// that must be loaded as DLLs. + +project { + macros += ACE_BUILD_LABVIEW_EXE_AS_DLL + specific(vc71) { + configuration_type = 2 + exe_ext = .dll + common_defines -= _CONSOLE + common_defines += _WINDOWS + } +} diff --git a/ACE/bin/MakeProjectCreator/config/man.mpb b/ACE/bin/MakeProjectCreator/config/man.mpb new file mode 100644 index 00000000000..ee5b1be7be3 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/man.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project { + Define_Custom(Man) { + automatic = 1 + inputext = .1 .2 .3 .4 .5 .6 .7 .8 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/nmake.features b/ACE/bin/MakeProjectCreator/config/nmake.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/nmake.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb b/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb new file mode 100644 index 00000000000..e48f56242b6 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project { + Define_Custom(pkgconfig) { + automatic = 0 + inputext = .in + } +} diff --git a/ACE/bin/MakeProjectCreator/config/qos.mpb b/ACE/bin/MakeProjectCreator/config/qos.mpb new file mode 100644 index 00000000000..5e938dd3e6f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/qos.mpb @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +feature(qos) { + after += QoS + libs += ACE_QoS + macros += ACE_HAS_QOS +} diff --git a/ACE/bin/MakeProjectCreator/config/rmcast.mpb b/ACE/bin/MakeProjectCreator/config/rmcast.mpb new file mode 100644 index 00000000000..ac9427c3d2a --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/rmcast.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project : acelib, threads { + avoids += ace_for_tao + after += RMCast + libs += ACE_RMCast + includes += $(ACE_ROOT)/protocols +} diff --git a/ACE/bin/MakeProjectCreator/config/script.mpb b/ACE/bin/MakeProjectCreator/config/script.mpb new file mode 100644 index 00000000000..ea4def84cdd --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/script.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project { + Define_Custom(Script) { + automatic = 1 + inputext = .sh + } +} diff --git a/ACE/bin/MakeProjectCreator/config/ssl.mpb b/ACE/bin/MakeProjectCreator/config/ssl.mpb new file mode 100644 index 00000000000..859fda7d3d4 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ssl.mpb @@ -0,0 +1,12 @@ +// -*- MPC -*- +// $Id$ + +// In the future, other ssl libraries could be supported +// by creating a new xyzssl.mpb similar to openssl.mpb. +// You would then derive the following project from this base. +project : acelib, ssl_full, ssl_for_tao, ace_openssl { + + requires += ssl + macros += ACE_HAS_SSL=1 + +} diff --git a/ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb b/ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb new file mode 100644 index 00000000000..63e363ffade --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb @@ -0,0 +1,12 @@ +// -*- MPC -*- +// +// $Id$ + +feature(ace_for_tao) { + +// Does not include ACE_SSL asynch stream support. + + after += SSL_FOR_TAO + libs += ACE_SSL_FOR_TAO + +} diff --git a/ACE/bin/MakeProjectCreator/config/ssl_full.mpb b/ACE/bin/MakeProjectCreator/config/ssl_full.mpb new file mode 100644 index 00000000000..6a64081cd16 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/ssl_full.mpb @@ -0,0 +1,12 @@ +// -*- MPC -*- +// +// $Id$ + +feature(!ace_for_tao) { + +// Includes ACE_SSL asynch stream support. + + after += SSL + libs += ACE_SSL + +} diff --git a/ACE/bin/MakeProjectCreator/config/stl.mpb b/ACE/bin/MakeProjectCreator/config/stl.mpb new file mode 100644 index 00000000000..0036507dd28 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/stl.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += stl +} diff --git a/ACE/bin/MakeProjectCreator/config/support_ostream.mpb b/ACE/bin/MakeProjectCreator/config/support_ostream.mpb new file mode 100644 index 00000000000..870e0ee1516 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/support_ostream.mpb @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +feature(gen_ostream) { + requires += gen_ostream + macros += GEN_OSTREAM_OPS +} diff --git a/ACE/bin/MakeProjectCreator/config/test_files.mpb b/ACE/bin/MakeProjectCreator/config/test_files.mpb new file mode 100644 index 00000000000..94d3d035da3 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/test_files.mpb @@ -0,0 +1,10 @@ +// $Id$ +project { + Define_Custom(Test) { + automatic=0 + } + Test_Files { + run_test*.pl + } +} + diff --git a/ACE/bin/MakeProjectCreator/config/threads.mpb b/ACE/bin/MakeProjectCreator/config/threads.mpb new file mode 100644 index 00000000000..8d3b8648ca5 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/threads.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += threads +} diff --git a/ACE/bin/MakeProjectCreator/config/tmcast.mpb b/ACE/bin/MakeProjectCreator/config/tmcast.mpb new file mode 100644 index 00000000000..4283f27902f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/tmcast.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project: acelib, exceptions, threads { + avoids += ace_for_tao + after += TMCast + libs += ACE_TMCast + includes += $(ACE_ROOT)/protocols +} diff --git a/ACE/bin/MakeProjectCreator/config/vc71.features b/ACE/bin/MakeProjectCreator/config/vc71.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc71.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/vc8.features b/ACE/bin/MakeProjectCreator/config/vc8.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc8.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/vc8nmake.mpb b/ACE/bin/MakeProjectCreator/config/vc8nmake.mpb new file mode 100644 index 00000000000..98e2d9ca3da --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc8nmake.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +project { +} + diff --git a/ACE/bin/MakeProjectCreator/config/vc9.features b/ACE/bin/MakeProjectCreator/config/vc9.features new file mode 100644 index 00000000000..16181dc6293 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc9.features @@ -0,0 +1,7 @@ +// $Id$ + +ssl=0 +qos=1 +cidl=0 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb b/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb new file mode 100644 index 00000000000..3e1cd845bde --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +project { + specific(nmake) { + addcompile -= /Wp64 + } +} + diff --git a/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb new file mode 100644 index 00000000000..32e49922a7b --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb @@ -0,0 +1,31 @@ +// -*- MPC -*- +// $Id$ + +// This file contains a number of optional features that disable VC +// warnings regarding various items that VC turned into warnings that were +// not present in earlier versions. Some people may consider these superfluous +// or have already checked code to be sure it causes no trouble. So these +// warnings are disabled by default. To enable them, generate your projects +// with the feature set to 0. + + +feature(vc_avoid_crt_secure_warnings) { + specific(vc8, vc9, nmake) { + macros += _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE + } +} + +feature(!vc_scl_secure_warnings) { + specific(vc8, vc9, nmake) { + macros += _SCL_SECURE_NO_WARNINGS + } +} + +feature(vc_avoid_this_in_initializer_warnings) { + specific(vc8, vc9) { + DisableSpecificWarnings += 4355 + } + specific(nmake) { + compile_flags += /wd4355 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt b/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt new file mode 100644 index 00000000000..a3bb4b1bbd1 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt @@ -0,0 +1,14 @@ +// -*- MPC -*- +// $Id$ + +// ACE specific macros for nmake, vc6, vc7 and em3 + +Static MFC Release { + defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER +} + +Static MFC Debug { + defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER +} + +conditional_include "vcpartialmacros" diff --git a/ACE/bin/MakeProjectCreator/config/vcl.mpb b/ACE/bin/MakeProjectCreator/config/vcl.mpb new file mode 100644 index 00000000000..ba81ff4002f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vcl.mpb @@ -0,0 +1,16 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += vcl + macros += ACE_HAS_VCL=1 + specific(bmake, borland, bds4) { + use_vcl = 1 + lit_libs += rtl vcl + compile_flags += -tW -tWV + linkflags += -aa + } + verbatim(borland,macros) { + VCL=1 + } +} diff --git a/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt b/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt new file mode 100644 index 00000000000..1105c25cd39 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt @@ -0,0 +1,12 @@ +// -*- MPC -*- +// $Id$ + +// ACE specific macros for nmake, vc6, vc7 and em3 + +MFC Release { + defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER +} + +MFC Debug { + defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER +} diff --git a/ACE/bin/MakeProjectCreator/config/versioned_namespace.mpb b/ACE/bin/MakeProjectCreator/config/versioned_namespace.mpb new file mode 100644 index 00000000000..502c8139ceb --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/versioned_namespace.mpb @@ -0,0 +1,13 @@ +// -*- MPC -*- +// +// $Id$ + +feature(versioned_namespace) { + + macros += ACE_HAS_VERSIONED_NAMESPACE=1 + + // Users, define the ACE_VERSIONED_NAMESPACE_NAME preprocessor + // symbol in your ace/config.h to override the default versioned + // namespace name of the form ACE_5_4_7. + +} diff --git a/ACE/bin/MakeProjectCreator/config/wfmo.mpb b/ACE/bin/MakeProjectCreator/config/wfmo.mpb new file mode 100644 index 00000000000..788d9905583 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/wfmo.mpb @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +feature(wfmo) { + requires += wfmo +} diff --git a/ACE/bin/MakeProjectCreator/config/winregistry.mpb b/ACE/bin/MakeProjectCreator/config/winregistry.mpb new file mode 100644 index 00000000000..4ccdb55836f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/winregistry.mpb @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +feature(winregistry) { + avoids += ace_for_tao + requires += winregistry +} diff --git a/ACE/bin/MakeProjectCreator/config/wxwindows.mpb b/ACE/bin/MakeProjectCreator/config/wxwindows.mpb new file mode 100644 index 00000000000..8931ea36712 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/wxwindows.mpb @@ -0,0 +1,21 @@ +// -*- MPC -*- +// $Id$ + +project { + requires += wxWindows + verbatim(gnuace,local) { + # work based on the configuration of the wxWindows installation + # PLATFORM_WX_* defined in includes/makeincludes/*_macros.GNU + CPPFLAGS += $(PLATFORM_WX_CPPFLAGS) + LDFLAGS += $(PLATFORM_WX_LDFLAGS) + LDLIBS += $(PLATFORM_WX_LIBS) + } + + specific(automake) { + compile_flags += $(ACE_WX_CPPFLAGS) + linkflags += $(ACE_WX_LDFLAGS) + pure_libs += $(ACE_WX_LIBS) + } + + // TBD - support other platforms +} diff --git a/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt b/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt new file mode 100644 index 00000000000..9d16b357afb --- /dev/null +++ b/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt @@ -0,0 +1,25 @@ +// Current as of 2/27/2007 +// This defines the role of all the template variables specific to the +// 'gnuace' project type. +// +// Please try to keep this alphabetically sorted. +// +ciao = Indicates whether or not this project contains CIAO code. +cidlc = The full path to the cidl compiler. +cidlc_dep = The full path to the cidl compiler as a dependency. +cidlc_flags = The default flags for the cidl compiler. +dds = Indicates whether or not this project contains DDS code. +idl_files = When a Define_Custom(IDL) is used, they will be accessible through this variable name. +install = This is a synonym for exeout. +tao = Indicates whether or not this project contains TAO code. +tao_idl = The full path to the idl compiler. +tao_idl3_to_idl2 = The full path to the idl3 to idl2 compiler. +tao_idl3_to_idl2_dep = The full path to the idl3 to idl2 compiler as a dependency. +tao_idl_dep = The full path to the idl compiler as a dependency. +tao_idlflags = The default flags for the idl compiler. +targetoutdir = Specifies a location for all targets and intermediaries within the makefile. It should always end in a slash. +vpath = The value will be used as the VPATH setting within the makefile. +xerceslib = The name of the Xerces library. +xsc_bin = The full path of the XSC executable. +xsc_dep = The full path of the XSC executable as a dependency. +xsc_flags = The default flags to the XSC executable. diff --git a/ACE/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm b/ACE/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm new file mode 100644 index 00000000000..7b7b30a0186 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm @@ -0,0 +1,209 @@ +package AutomakeWorkspaceHelper; + +# ************************************************************ +# Description : An Automake Workspace Helper +# Author : Chad Elliott +# Create Date : 9/01/2004 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use FileHandle; +use File::Basename; + +use WorkspaceHelper; + +use vars qw(@ISA); +@ISA = qw(WorkspaceHelper); + +# ************************************************************ +# Data Section +# ************************************************************ + +my(%vals) = ('ACE_ROOT' => '$(top_srcdir)', + 'TAO_ROOT' => '$(top_srcdir)', + 'CIAO_ROOT' => '$(top_srcdir)', + 'ACE_BUILDDIR' => '$(top_builddir)', + 'TAO_BUILDDIR' => '$(top_builddir)', + 'CIAO_BUILDDIR' => '$(top_builddir)', + 'TAO_IDL' => 'ACE_ROOT=$(ACE_ROOT) TAO_ROOT=$(TAO_ROOT) $(TAO_BUILDDIR)/TAO_IDL/tao_idl' . "\n" . + 'TAO_IDL_DEP = $(TAO_BUILDDIR)/TAO_IDL/tao_idl' . "\n" . + 'TAO_IDLFLAGS = -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) -I$(srcdir) -g $(ACE_BUILDDIR)/apps/gperf/src/gperf', + ); + +my(%addon) = ('ACE_ROOT' => {'CIAO_ROOT' => '/../..', + 'TAO_ROOT' => '/..', + 'CIAO_BUILDDIR' => '/../..', + 'TAO_BUILDDIR' => '/..'}, + 'ACE_BUILDDIR' => {'CIAO_ROOT' => '/../..', + 'TAO_ROOT' => '/..', + 'CIAO_BUILDDIR' => '/../..', + 'TAO_BUILDDIR' => '/..'}, + 'TAO_ROOT' => {'CIAO_ROOT' => '/..', + 'CIAO_BUILDDIR' => '/..'}, + 'TAO_BUILDDIR' => {'CIAO_ROOT' => '/..', + 'CIAO_BUILDDIR' => '/..'}, + ); + +## These are required when processing the TAO workspace +my(%libdirs) = ('libACE_SSL.la' => 'ace/SSL', + 'libACEXML.la' => 'ACEXML/common', + 'libACEXML_Parser.la' => 'ACEXML/parser/parser', + 'libACE_TMCast.la' => 'protocols/ace/TMCast', + 'libACE_RMCast.la' => 'protocols/ace/RMCast', + 'libACE_HTBP.la' => 'protocols/ace/HTBP', + 'libKokyu.la' => 'Kokyu', + ); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub modify_value { + my($self) = shift; + my($name) = shift; + my($value) = shift; + + if ($name eq 'includedir') { + ## TAO/orbsvcs and TAO are like separate projects, so first + ## remove the TAO/orbsvcs part and if that doesn't work try + ## removing the TAO part. The ACE related values don't need + ## any modification. + if (!($value =~ s/^\/orbsvcs\/orbsvcs$/\/orbsvcs/)) { + if (!($value =~ s/^\/TAO\/orbsvcs//)) { + if (!($value =~ s/^\/TAO//)) { + ## These ACE related libraries need fixing too. + $value =~ s/^\/protocols(\/ace)/$1/; + } + } + } + } + elsif ($name eq 'amflags') { + if (basename(Cwd::getcwd()) eq 'TAO') { + $value .= ' -I ../m4'; + } + } + elsif ($name eq 'extra') { + if (basename(Cwd::getcwd()) eq 'TAO') { + $value .= "EXTRA_DIST = \\\n" . + " PROBLEM-REPORT-FORM \\\n" . + " VERSION \\\n" . + " COPYING.sun \\\n" . + " LICENSE.sun \\\n" . + " README.sun\n\n" . + "release:\n" . + "\t\$(MAKE) dist\n\n". + "TAO_EXTRA_DIST = docs\n\n" . + "dist-hook:\n" . + "\t(cd \$(top_srcdir); tar cf - \$(TAO_EXTRA_DIST)) | (cd \$(distdir); \\\n" . + "\t tar xfBp -)\n" . + "\tlist=`find \$(distdir) -type d -name .svn -print`; for p in \$\$list; do \\\n" . + "\t rm -rf \$\$p; done\n"; + } + } + + return $value; +} + +sub modify_libpath { + my($self) = shift; + my($str) = shift; + my($reldir) = shift; + my($libname) = shift; + + if ($libname =~ /^lib(ace)/i) { + if (!defined $reldir || $reldir eq '') { + if (defined $libdirs{$libname}) { + $reldir = $libdirs{$libname}; + } + else { + $reldir = 'ace'; + } + } + $str =~ s!$libname!\$(ACE_BUILDDIR)/$reldir/$libname!; + return $str; + } + elsif ($libname =~ /^lib(kokyu\.)/i) { + if (!defined $reldir || $reldir eq '') { + if (defined $libdirs{$libname}) { + $reldir = $libdirs{$libname}; + } + else { + $reldir = 'Kokyu'; + } + } + $str =~ s!$libname!\$(top_builddir)/$reldir/$libname!; + return $str; + } + elsif ($libname =~ /^lib(tao|kokyu)/i) { + if (defined $reldir) { + $reldir =~ s!TAO/!!; + $str =~ s!$libname!\$(TAO_BUILDDIR)/$reldir/$libname!; + return $str; + } + } + elsif ($libname =~ /^libciao/i) { + if (defined $reldir) { + $reldir =~ s!TAO/CIAO/!!; + $str =~ s!$libname!\$(CIAO_BUILDDIR)/$reldir/$libname!; + return $str; + } + } + + return undef; +} + +sub write_settings { + my($self) = shift; + my($wsc) = shift; + my($fh) = shift; + my(@locals) = @_; + my($status) = 1; + my($error) = undef; + my($crlf) = $wsc->crlf(); + my($pfh) = new FileHandle(); + my(%seen) = (); + my($outdir) = $wsc->get_outdir(); + + foreach my $local (reverse @locals) { + if (open($pfh, "$outdir/$local")) { + while(<$pfh>) { + foreach my $key (keys %vals) { + if (/\$\($key\)/) { + $seen{$key} = $vals{$key}; + } + } + } + close($pfh); + } + else { + $status = 0; + $error = "Unable to open $local for reading."; + } + } + + foreach my $key (sort keys %seen) { + print $fh "$key = $seen{$key}"; + if (defined $addon{$key}) { + foreach my $add ( + sort { length($addon{$key}->{$b}) <=> + length($addon{$key}->{$a}) } keys %{$addon{$key}}) { + if ($seen{$add}) { + print $fh $addon{$key}->{$add}; + last; + } + } + } + print $fh $crlf; + } + + print $fh $crlf; + + return $status, $error; +} + + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm b/ACE/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm new file mode 100644 index 00000000000..167c91ac295 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm @@ -0,0 +1,126 @@ +package BorlandProjectCreator; + +# ************************************************************ +# Description : A Borland Project Creator +# Author : Chad Elliott +# Create Date : 3/14/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use ProjectCreator; +use WinProjectBase; +use File::Basename; + +use vars qw(@ISA); +@ISA = qw(WinProjectBase ProjectCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub dollar_special { + #my($self) = shift; + return 1; +} + + +sub fill_value { + my($self) = shift; + my($name) = shift; + my($value) = undef; + my(%names) = ('cppdir' => 'source_files', + 'rcdir' => 'resource_files', + ); + + if (defined $names{$name}) { + my(%dirnames) = (); + foreach my $file ($self->get_component_list($names{$name}, 1)) { + my($dirname) = $self->mpc_dirname($file); + if ($dirname eq '') { + $dirname = '.'; + } + elsif ($self->convert_slashes()) { + $dirname = $self->slash_to_backslash($dirname); + } + $dirnames{$dirname} = 1; + } + + ## Sort the directories to ensure that '.' comes first + $value = join(';', sort keys %dirnames); + } + elsif ($name eq 'relwd') { + my($useenv) = $self->get_use_env(); + my($rel) = ($useenv ? \%ENV : $self->get_relative()); + $value = $self->getcwd(); + + foreach my $key (keys %$rel) { + ## Do not use PWD or CD if we are expanding environment variables. + ## They could conflict with the "real" values we're looking for. + if ($useenv && ($key eq 'PWD' || $key eq 'CD')) { + next; + } + + ## Get the relative replacement value and convert back-slashes + my($val) = $$rel{$key}; + $val =~ s/\\/\//g; + + ## We only need to check for reverse replacement if the length + ## of the string is less than or equal to the length of our + ## replacement value or the string has a slash at the position + ## of the length of the replacement value + my($vlen) = length($val); + if (length($value) <= $vlen || substr($value, $vlen, 1) eq '/') { + ## Cut the string down by the length of the replacement value + my($lval) = substr($value, 0, $vlen); + + ## Here we make an assumption that we + ## have a case-insensitive file system. + if (lc($lval) eq lc($val)) { + substr($value, 0, length($val) + 1) = ''; + last; + } + } + } + $value = $self->slash_to_backslash($value); + } + + return $value; +} + + +sub project_file_name { + my($self) = shift; + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return $self->get_modified_project_file_name($name, '.bor'); +} + + +sub get_dll_exe_template_input_file { + #my($self) = shift; + return 'borexe'; +} + + +sub get_dll_template_input_file { + #my($self) = shift; + return 'bordll'; +} + + +sub get_template { + #my($self) = shift; + return 'bor'; +} + + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm new file mode 100644 index 00000000000..5b4eab604d1 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm @@ -0,0 +1,166 @@ +package BorlandWorkspaceCreator; + +# ************************************************************ +# Description : A Borland Workspace (Makefile.bor) creator +# Author : Chad Elliott +# Create Date : 7/02/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use BorlandProjectCreator; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WorkspaceCreator); + +# ************************************************************ +# Data Section +# ************************************************************ + +my($max_line_length) = 32767; ## Borland Make's maximum line length +my(@targets) = ('clean', 'realclean', 'install'); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub workspace_file_name { + my($self) = shift; + return $self->get_modified_workspace_name('Makefile', '.bor'); +} + + +sub workspace_per_project { + #my($self) = shift; + return 1; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh '#----------------------------------------------------------------------------', $crlf, + '# Borland Workspace', $crlf, + '#', $crlf, + '# $Id$', $crlf, + '#', $crlf, + '# This file was generated by MPC. Any changes made directly to', $crlf, + '# this file will be lost the next time it is generated.', $crlf, + '#', $crlf, + '# MPC Command:', $crlf, + "# $0 @ARGV", $crlf, + '#----------------------------------------------------------------------------', $crlf, + $crlf; +} + + +sub write_project_targets { + my($self) = shift; + my($fh) = shift; + my($target) = shift; + my($list) = shift; + my($crlf) = $self->crlf(); + + foreach my $project (@$list) { + my($dir) = $self->mpc_dirname($project); + my($chdir) = 0; + my($back) = ''; + my($cwd) = $self->getcwd(); + + ## If the directory isn't '.' then we need + ## to figure out how to get back to our starting point + if ($dir ne '.') { + $chdir = 1; + my($count) = ($dir =~ tr/\///) + 1; + if ($dir =~ /^\.\.\//) { + ## Find out how many directories we went down + my($rel) = $dir; + while($rel =~ s/^\.\.\///) { + } + my($down) = ($rel =~ tr/\///) + 1; + + ## Get $count - $down parts of the base of the current directory + $rel = $cwd; + my($index) = length($rel); + for(my $i = $down; $i < $count; $i++) { + $index = rindex($rel, '/', $index - 1); + } + if ($index > -1) { + $rel = substr($rel, $index + 1); + } + $back = ('../' x $down) . $rel; + } + else { + $back = ('../' x $count); + } + } + + print $fh ($chdir ? "\t\@cd $dir$crlf" : '') . + "\t\$(MAKE) -\$(MAKEFLAGS) \$(MAKE_FLAGS) -f " . basename($project) . " $target$crlf" . + ($chdir ? "\t\@cd $back$crlf" : ''); + } +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($projects) = $self->get_projects(); + my($pjs) = $self->get_project_info(); + my(%targnum) = (); + my(@list) = $self->number_target_deps($projects, $pjs, \%targnum, 0); + my($crlf) = $self->crlf(); + my(@ltargets) = @targets; + + print $fh "!include <\$(ACE_ROOT)\\include\\makeinclude\\make_flags.bor>$crlf"; + + ## Construct the "all" target + my($all) = $crlf . 'all:'; + foreach my $project (@list) { + $all .= " $$pjs{$project}->[0]"; + } + if (length($all) < $max_line_length) { + print $fh $all, $crlf; + } + else { + unshift(@ltargets, 'all'); + } + + ## Print out all other targets here + foreach my $target (@ltargets) { + print $fh $crlf . + "$target\:$crlf"; + $self->write_project_targets($fh, $target, \@list); + } + + ## Print out each target separately + foreach my $project (@list) { + print $fh $crlf . $$pjs{$project}->[0] . ':'; + if (defined $targnum{$project}) { + foreach my $number (@{$targnum{$project}}) { + print $fh " $$pjs{$list[$number]}->[0]"; + } + } + + print $fh $crlf; + $self->write_project_targets($fh, 'all', [ $project ]); + } + + ## Print out the project_name_list target + print $fh $crlf . "project_name_list:$crlf"; + foreach my $project (sort @list) { + print $fh "\t\@echo $$pjs{$project}->[0]$crlf"; + } +} + + + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm new file mode 100644 index 00000000000..47ef47cb3d2 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm @@ -0,0 +1,101 @@ +package GNUACEProjectCreator; + +# ************************************************************ +# Description : A GNU Project Creator for ACE +# Author : Chad Elliott +# Create Date : 3/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use MakeProjectBase; +use ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(MakeProjectBase ProjectCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub expand_variables_from_template_values { + #my($self) = shift; + return 0; +} + + +sub convert_slashes { + #my($self) = shift; + return 0; +} + + +sub fill_value { + my($self) = shift; + my($name) = shift; + + if ($name eq 'vpath') { + my(%vpath) = (); + foreach my $item ($self->get_component_list('source_files')) { + my($dname) = $self->relative($self->mpc_dirname($item)); + if ($dname ne '.') { + $vpath{$dname} = 1; + } + } + my($str) = join(':', keys %vpath); + if ($str ne '') { + return 'VPATH = .:' . $str . $self->crlf(); + } + } + elsif ($name eq 'tao') { + my($incs) = $self->get_assignment('includes'); + my($libs) = $self->get_assignment('libpaths'); + return ((defined $incs && $incs =~ /tao/i) || + (defined $libs && $libs =~ /tao/i)); + } + elsif ($name eq 'ciao') { + my($incs) = $self->get_assignment('includes'); + my($libs) = $self->get_assignment('libpaths'); + return ((defined $incs && $incs =~ /ciao/i) || + (defined $libs && $libs =~ /ciao/i)); + } + elsif ($name eq 'dds') { + my($incs) = $self->get_assignment('includes'); + my($libs) = $self->get_assignment('libpaths'); + return ((defined $incs && $incs =~ /dds/i) || + (defined $libs && $libs =~ /dds/i)); + } + + return undef; +} + + +sub project_file_prefix { + #my($self) = shift; + return 'GNUmakefile.'; +} + + +sub get_dll_exe_template_input_file { + #my($self) = shift; + return 'gnuexe'; +} + + +sub get_dll_template_input_file { + #my($self) = shift; + return 'gnudll'; +} + + +sub get_template { + #my($self) = shift; + return 'gnu'; +} + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm new file mode 100644 index 00000000000..45a8c37dcca --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm @@ -0,0 +1,223 @@ +package GNUACEWorkspaceCreator; + +# ************************************************************ +# Description : A GNU Workspace (GNUmakefile) creator for ACE +# Author : Chad Elliott +# Create Date : 5/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use GNUACEProjectCreator; +use MakeWorkspaceBase; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(MakeWorkspaceBase WorkspaceCreator); + +# ************************************************************ +# Data Section +# ************************************************************ + +my($base) = 'GNUmakefile'; + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub targets { + return 'clean depend idl_stubs realclean'; +} + + +sub generate_implicit_project_dependencies { + #my($self) = shift; + return 1; +} + + +sub workspace_file_prefix { + #my($self) = shift; + return $base; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh '# -*- makefile -*-', $crlf; + $self->workspace_preamble($fh, $crlf, 'GNU ACE Workspace', + '$Id$'); + print $fh 'MAKEFILE = ', $self->get_modified_workspace_name($base, '', 1), + $crlf; +} + + +sub write_project_targets { + my($self) = shift; + my($fh) = shift; + my($crlf) = shift; + my($target) = shift; + my($list) = shift; + + foreach my $project (@$list) { + my($dname) = $self->mpc_dirname($project); + my($chdir) = ($dname ne '.'); + print $fh "\t\@", + ($chdir ? "cd $dname && " : ''), + "\$(MAKE) -f ", + ($chdir ? $self->mpc_basename($project) : $project), + " $target$crlf"; + } +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + my(%targnum) = (); + my($pjs) = $self->get_project_info(); + my($named) = !defined $ENV{MPC_GNUACE_DIRECTORY_DEPS}; + my(@list) = $self->number_target_deps($self->get_projects(), + $pjs, \%targnum, + $named ? 0 : 1); + + ## Print out some preliminary information + print $fh $crlf, + "ifeq (\$(findstring k,\$(MAKEFLAGS)),k)$crlf", + " KEEP_GOING = -$crlf", + "endif$crlf$crlf", + "include \$(ACE_ROOT)/include/makeinclude/macros.GNU$crlf"; + + if ($named) { + $self->write_named_targets($fh, $crlf, \%targnum, \@list, + 'REMAINING_TARGETS := ' . + '$(subst all, , $(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' . + "$crlf$crlf\$(REMAINING_TARGETS)", '', '', + $self->project_target_translation(1), 1); + } + else { + ## Determine the ordering of the sub-directories + my(@dirs) = (); + my(%found) = (); + foreach my $file (reverse @list) { + my($dir) = $self->get_first_level_directory($file); + if ($dir ne '.') { + if (!defined $found{$dir}) { + $found{$dir} = 1; + unshift(@dirs, $dir); + } + } + } + my($need_dirs) = ($#dirs > -1); + + ## Store the local projects in a separate list + my(@lprj) = (); + my(%dirprj) = (); + foreach my $project (@list) { + if ($project !~ /\//) { + push(@lprj, $project); + if ($need_dirs && defined $targnum{$project}) { + foreach my $number (@{$targnum{$project}}) { + if ($list[$number] =~ /\//) { + ## If any local project depends on a project that is not + ## in this directory, we can not rely on the directory + ## recursion to get the correct dependencies. We will do + ## all projects as local targets. + @lprj = (); + foreach my $prj (@list) { + push(@lprj, $prj); + if ($prj =~ /\//) { + $dirprj{$prj} = 1; + } + } + $need_dirs = 0; + last; + } + } + if (!$need_dirs) { + last; + } + } + } + } + + if ($#lprj >= 0) { + ## Print out the all target first. This will allow multiple projects + ## within the same directory to build in parallel. + print $fh 'all:'; + foreach my $project (@lprj) { + print $fh ' ', $$pjs{$project}->[0]; + } + print $fh $crlf; + if ($need_dirs) { + foreach my $dir (@dirs) { + print $fh "\t\$(KEEP_GOING)\@cd $dir && ", + "\$(MAKE) -f \$(MAKEFILE) \$(\@)$crlf"; + } + } + + ## Print out each target separately. Make can decide on which + ## targets can be built in parallel because we add the local + ## dependencies. + foreach my $project (@lprj) { + print $fh $crlf, '.PHONY: ', $$pjs{$project}->[0], + $crlf, $$pjs{$project}->[0], ':'; + if (defined $targnum{$project}) { + foreach my $number (@{$targnum{$project}}) { + print $fh ' ', $$pjs{$list[$number]}->[0]; + } + } + print $fh $crlf, + "\t\$(KEEP_GOING)\@"; + if (defined $dirprj{$project}) { + print $fh "cd ", $self->mpc_dirname($project), + " && \$(MAKE) -f ", $self->mpc_basename($project), + $crlf; + } + else { + print $fh "\$(MAKE) -f $project$crlf"; + } + } + print $fh $crlf, + 'REMAINING_TARGETS := ', + '$(subst all, , $(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)', + $crlf; + } + else { + print $fh 'REMAINING_TARGETS := $(TARGETS_NESTED:.nested=) ', + '$(CUSTOM_TARGETS)', $crlf; + } + + ## Print out the remaing targets. + ## They will be handled serially by make. + print $fh "\$(REMAINING_TARGETS):$crlf"; + foreach my $project (@lprj) { + print $fh "\t\$(KEEP_GOING)\@"; + if (defined $dirprj{$project}) { + print $fh "cd ", $self->mpc_dirname($project), + " && \$(MAKE) -f ", $self->mpc_basename($project), + " \$(\@)", $crlf; + } + else { + print $fh "\$(MAKE) -f $project \$(\@)$crlf"; + } + } + if ($need_dirs) { + foreach my $dir (@dirs) { + print $fh "\t\$(KEEP_GOING)\@cd $dir && ", + "\$(MAKE) -f \$(MAKEFILE) \$(\@)$crlf"; + } + } + print $fh $crlf; + } +} + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm new file mode 100644 index 00000000000..aa24f83075c --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm @@ -0,0 +1,27 @@ +package GNUAutobuildProjectCreator; + +# ************************************************************ +# Description : A Project creator for the GNUAutobuild project type +# Author : Chad Elliott +# Create Date : 3/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use GNUACEProjectCreator; +use MakeProjectBase; +use ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(GNUACEProjectCreator MakeProjectBase ProjectCreator); + +sub extractType { + return 'gnuace'; +} + +1; diff --git a/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm new file mode 100644 index 00000000000..faf10e6277f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm @@ -0,0 +1,58 @@ +package GNUAutobuildWorkspaceCreator; + +# ************************************************************ +# Description : A GNU Workspace (GNUmakefile) creator that +# collates build results for a single makefile +# before outputting to stdout. +# Author : Chad Elliott, minor modifications by Will Otte +# Create Date : 3/22/07 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use GNUACEWorkspaceCreator; +use GNUAutobuildProjectCreator; +use MakeWorkspaceBase; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(GNUACEWorkspaceCreator MakeWorkspaceBase WorkspaceCreator); + +# ************************************************************ +# Data Section +# ************************************************************ + +my($base) = 'GNUmakefile'; + +# ************************************************************ +# Subroutine Section +# ************************************************************ +sub extractType { + return 'gnuace'; +} + +sub write_project_targets { + my($self) = shift; + my($fh) = shift; + my($crlf) = shift; + my($target) = shift; + my($list) = shift; + + foreach my $project (@$list) { + my($dname) = $self->mpc_dirname($project); + my($chdir) = ($dname ne '.'); + my($output_project) = ($chdir ? $self->mpc_basename($project) : $project); + + print $fh "\t\@", + ($chdir ? "cd $dname && " : ''), + "\$(MAKE) -f ", + $output_project, + " $target &> $output_project.log ; cat $output_project.log ; rm $output_project.log $crlf"; + } +} + +1; diff --git a/ACE/bin/MakeProjectCreator/templates/bor.mpd b/ACE/bin/MakeProjectCreator/templates/bor.mpd new file mode 100644 index 00000000000..d2d85bedf59 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/bor.mpd @@ -0,0 +1,219 @@ +# Makefile for building the <%if(exename)%><%exename%> exe<%endif%><%if(sharedname)%><%sharedname%> library<%else%><%if(staticname)%><%staticname%> library<%endif%><%endif%> with Borland C++ Make + +<%marker(top)%> +<%if(exename)%> +NAME = <%exename%> +<%else%> +<%if(sharedname || staticname)%> +NAME = <%if(sharedname)%><%sharedname%><%else%><%staticname%><%endif%> +<%endif%> +<%endif%> + +NO_FULL_PATH=1 +<%if(exename || sharedname || staticname)%> +<%if(source_files)%> + +OBJFILES = \ +<%foreach(source_files)%> + $(OBJDIR)\<%basenoextension(source_file)%>.$(OBJ_EXT)<%fornotlast(" \\")%> +<%endfor%> +<%endif%> +<%endif%> +<%if(libpaths)%> + +LFLAGS = \ +<%if(linkflags)%> + <%linkflags%> \ +<%endif%> +<%if(StackReserveSize)%> + /S:<%StackReserveSize%> \ +<%endif%> +<%if(StackCommitSize)%> + /Sc:<%StackCommitSize%> \ +<%endif%> +<%foreach(libpaths)%> + -L"<%libpath%>" \ + -j"<%libpath%>" <%fornotlast(" \\")%> +<%endfor%> +<%endif%> +<%if(libs || lit_libs || pure_libs)%> + +LIBFILES = \ +<%foreach(pure_libs)%> + <%pure_lib%> \ +<%endfor%> +<%foreach(lit_libs)%> + <%lit_lib%>.lib \ +<%endfor%> +<%foreach(reverse(libs))%> + <%lib%>$(LIB_DECORATOR).lib \ +<%endfor%> + $(DUMMY_VALUE_NOT_ENDING_IN_BACKSLASH) +<%endif%> +<%if(rcdir)%> + +RESDIR = <%rcdir%> +<%endif%> +<%if(resource_files)%> + +RESOURCE =<%foreach(resource_files)%> $(OBJDIR)\<%basenoextension(resource_file)%>.res<%endfor%> + +<%if(includes)%> +RC_FLAGS = \ +<%foreach(includes)%> + -i"<%include%>"<%fornotlast(" \\")%> +<%endfor%> +<%endif%> + +<%endif%> + +!ifdef STATIC +<%if(staticflags)%> +LIB_FLAGS = \ +<%foreach(staticflags)%> + -D<%staticflag%><%fornotlast(" \\")%> +<%endfor%> +<%endif%> +!else +<%if(dynamicflags)%> +DLL_FLAGS = \ +<%foreach(dynamicflags)%> + -D<%dynamicflag%><%fornotlast(" \\")%> +<%endfor%> +<%endif%> +!endif + +CFLAGS = \ +<%if(pch_header)%> +<%foreach(pch_defines)%> +# Borland precompiled headers choke on several tao header files. +# For example, any place that uses ACE_LIB_TEXT(). +# -D<%pch_define%> \ +<%endfor%> +<%endif%> +<%if(compile_flags)%> + <%compile_flags%> \ +<%endif%> +<%foreach(macros)%> + -D<%macro%> \ +<%endfor%> +<%foreach(includes)%> + -I"<%include%>" \ +<%endfor%> + $(LIB_FLAGS) \ + $(DLL_FLAGS) +<%if(pch_header)%> + +# Borland precompiled headers choke on several tao header files. +# For example, any place that uses ACE_LIB_TEXT(). +#PCH_HEADER=<%pch_header%> +<%endif%> +<%if(cppdir)%> + +CPPDIR = <%cppdir%> +CDIR = <%cppdir%> +<%endif%> +<%if(header_files || template_files || inline_files || idl_files)%> + +INCDIR_NAME = <%relwd%> +<%endif%> +<%foreach(custom_types)%> + +# <%custom_type%> rules + +<%if(custom_type->libpath)%> +PATH := $(PATH);<%custom_type->libpath%> + +<%endif%> +<%foreach(custom_type->input_files)%> +<%if(custom_type->input_file->output_files)%> + +<%custom_type%>_<%forcount(custom_type->input_files)%>=<%foreach(custom_type->input_file->output_files)%> <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%endfor%> +$(<%custom_type%>_<%forcount(custom_type->input_files)%>): <%custom_type->input_file%> +<%if(flag_overrides(custom_type->input_file, gendir))%> + -if not exist <%flag_overrides(custom_type->input_file, gendir)%> mkdir <%flag_overrides(custom_type->input_file, gendir)%> 2> nul +<%endif%> + <%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> <%custom_type->input_file%> <%if(custom_type->output_option)%><%custom_type->output_option%> $@<%endif%> +<%if(flag_overrides(custom_type->input_file, postcommand))%> +<%foreach(custom_type->input_file->output_files)%> + <%flag_overrides(custom_type->input_file, postcommand)%> +<%endfor%> +<%else%> +<%if(custom_type->postcommand)%> +<%foreach(custom_type->input_file->output_files)%> + <%custom_type->postcommand%> +<%endfor%> +<%endif%> +<%endif%> +<%if(pch_header)%> +<%if(custom_type->pch_postrule)%> +<%foreach(custom_type->input_file->source_output_files)%> + @echo #include "<%pch_header%>" > temporary.src + @type <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%> >> temporary.src + @move /y temporary.src <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%> +<%endfor%> +<%endif%> +<%endif%> + +all: $(<%custom_type%>_<%forcount(custom_type->input_files)%>) + +customclean_<%custom_type%>_<%forcount(custom_type->input_files)%>: + @del $(<%custom_type%>_<%forcount(custom_type->input_files)%>) 2>nul + +clean: customclean_<%custom_type%>_<%forcount(custom_type->input_files)%> + +realclean: customclean_<%custom_type%>_<%forcount(custom_type->input_files)%> + +<%endif%> +<%endfor%> +<%endfor%> + +# Override defaults in outputdir.bor +<%if(INSTALL_THIS_TARGET)%> +INSTALL_THIS_TARGET = 1 + +<%endif%> +<%marker(macros)%> +INCLUDES_INSTALL=1 +<%if(exename)%> + +<%if(install)%> +# We use BINDIR for install instead of BASE_BINDIR, because +# this is the location for all scripts too. +BINDIR = <%install%> +<%else%> +BASE_BINDIR = . +<%endif%> + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> +<%else%> +<%if(sharedname || staticname)%> +BINDIR = <%if(dllout)%><%dllout%><%else%><%libout%><%endif%> + +!include <$(ACE_ROOT)\include\makeinclude\build_library.bor> +<%else%> +INSTALL_TYPES = includes + +!include <$(ACE_ROOT)\include\makeinclude\install.bor> + +all: + @-rem +<%endif%> +<%endif%> +<%if(header_files || template_files || inline_files || idl_files || pidl_files)%> + +includes_install: $(INCLUDES) +<%foreach(header_files template_files inline_files idl_files pidl_files)%> + -@if not exist $(INSTALL_DIR)\include\$(INCDIR_NAME)\<%dirname(header_file)%> mkdir $(INSTALL_DIR)\include\$(INCDIR_NAME)\<%dirname(header_file)%> + -© /Y <%header_file%> $(INSTALL_DIR)\include\$(INCDIR_NAME)\<%header_file%> 1> NUL +<%endfor%> +<%else%> + +includes_install: + @echo Nothing to install. +<%endif%> + +realclean: + @-rem + +<%marker(bottom)%> diff --git a/ACE/bin/MakeProjectCreator/templates/bordll.mpt b/ACE/bin/MakeProjectCreator/templates/bordll.mpt new file mode 100644 index 00000000000..c6ff3fc925f --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/bordll.mpt @@ -0,0 +1,8 @@ +// -*- MPC -*- +// $Id$ + +conditional_include "common" + +type_is_binary = 1 +type_is_dynamic = 1 +common_defines = WIN32 diff --git a/ACE/bin/MakeProjectCreator/templates/borexe.mpt b/ACE/bin/MakeProjectCreator/templates/borexe.mpt new file mode 100644 index 00000000000..da49b919bc7 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/borexe.mpt @@ -0,0 +1,7 @@ +// -*- MPC -*- +// $Id$ + +conditional_include "common" + +type_is_binary = 1 +common_defines = WIN32 diff --git a/ACE/bin/MakeProjectCreator/templates/gnu.mpd b/ACE/bin/MakeProjectCreator/templates/gnu.mpd new file mode 100644 index 00000000000..89556b25636 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/gnu.mpd @@ -0,0 +1,669 @@ +# -*- Makefile -*- +#---------------------------------------------------------------------------- +# GNU Makefile +# +# @file <%project_file%> +# +# $Id$ +# +# This file was automatically generated by MPC. Any changes made directly to +# this file will be lost the next time it is generated. +# +#---------------------------------------------------------------------------- +<%marker(top)%> +MAKEFILE = <%project_file%> +DEPENDENCY_FILE = .depend.<%project_name%> +<%if(exename)%> +BIN_UNCHECKED = <%exename%> +<%endif%> +<%if(staticname)%> + +## LIB may be set to empty later on in this file +LIB_UNCHECKED = lib<%libname_prefix%><%staticname%>.a +LIB = $(LIB_UNCHECKED) +LIB_NAME = lib<%libname_prefix%><%staticname%> +<%if(!sharedname)%> +static_libs_only = 1 +<%endif%> +<%endif%> +<%if(sharedname)%> + +## SHLIB may be set to empty later on in this file +SHLIB_UNCHECKED = lib<%libname_prefix%><%sharedname%>.$(SOEXT) +SHLIB = $(SHLIB_UNCHECKED) +<%endif%> +<%if(tao || ciao)%> + +TAO_ROOT ?= $(ACE_ROOT)/TAO +<%if(ciao)%> +CIAO_ROOT ?= $(TAO_ROOT)/CIAO +<%endif%> +<%endif%> + +<%if(grouped_source_files)%> +<%foreach(grouped_source_files)%> +<%grouped_source_file%> = \ +<%foreach(grouped_source_file->files)%> + <%grouped_source_file->file%><%fornotlast(" \\")%> +<%endfor%> + +<%endfor%> +FILES += \ +<%foreach(grouped_source_files)%> + $(<%grouped_source_file%>)<%fornotlast(" \\")%> +<%endfor%> + +<%else%> +FILES = \ +<%foreach(source_files)%> + <%source_file%><%fornotlast(" \\")%> +<%endfor%> + +<%endif%> +<%vpath%> +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- +<%marker(macros)%> +<%if(xerceslib)%> +XERCESLIB ?= <%xerceslib%> +<%endif%> +<%if(exename)%> +LDLIBS =<%foreach(libs)%> -l<%libname_prefix%><%lib%><%endfor%><%foreach(lit_libs)%> -l<%lit_lib%><%endfor%><%foreach(pure_libs)%> <%pure_lib%><%endfor%> +<%else%> +<%if(sharedname)%> +ACE_SHLIBS =<%foreach(libs)%> -l<%libname_prefix%><%lib%><%endfor%><%foreach(lit_libs)%> -l<%lit_lib%><%endfor%><%foreach(pure_libs)%> <%pure_lib%><%endfor%> +<%endif%> +<%endif%> +<%if(tao_idl)%> +TAO_IDL = <%tao_idl%> +<%endif%> +<%if(tao_idl_dep)%> +TAO_IDL_DEP = <%tao_idl_dep%>$(EXEEXT) +<%endif%> +<%if(tao_idlflags)%> +TAO_IDLFLAGS = <%tao_idlflags%> +<%endif%> +<%if(cidlc)%> +CIDLC = <%cidlc%> +<%endif%> +<%if(cidlc_dep)%> +CIDLC_DEP = <%cidlc_dep%>$(EXEEXT) +<%endif%> +<%if(cidlc_flags)%> +CIDLC_FLAGS = <%cidlc_flags%> +<%endif%> +<%if(xsc_bin)%> +XSC_BIN = <%xsc_bin%> +<%endif%> +<%if(xsc_dep)%> +XSC_DEP = <%xsc_dep%>$(EXEEXT) +<%endif%> +<%if(xsc_flags)%> +XSC_FLAGS = <%xsc_flags%> +<%endif%> +<%if(tao_idl3_to_idl2)%> +TAO_IDL3_TO_IDL2 = <%tao_idl3_to_idl2%> +<%endif%> +<%if(tao_idl3_to_idl2_dep)%> +TAO_IDL3_TO_IDL2_DEP = <%tao_idl3_to_idl2_dep%>$(EXEEXT) +<%endif%> + +<%if(exename)%> +PRJ_TYPE = rtp +<%else%> +PRJ_TYPE = library +<%endif%> + +<%if(exename)%> +<%if(install)%> +INSBIN ?= <%install%> +<%endif%> +ifeq ($(INSBIN),.) + ifeq ($(PWD),) + PWD=$(shell pwd) + endif + INSBIN = $(PWD)<%if(targetoutdir)%>/<%targetoutdir%><%endif%> +<%if(targetoutdir)%> +else + ifneq ($(INSBIN),) + INSBIN := $(INSBIN)/<%targetoutdir%> + endif +<%endif%> +endif +OUTPUT_DIRECTORY = $(INSBIN) +<%else%> +<%if(dllout || libout)%> +INSLIB ?= <%if(dllout)%><%dllout%><%else%><%libout%><%endif%> +<%endif%> +ifeq ($(INSLIB),.) + ifeq ($(PWD),) + PWD=$(shell pwd) + endif + INSLIB = $(PWD)<%if(targetoutdir)%>/<%targetoutdir%><%endif%> +<%if(targetoutdir)%> +else + INSLIB := $(INSLIB)/<%targetoutdir%> +<%endif%> +endif +OUTPUT_DIRECTORY = $(INSLIB) +<%endif%> + +<%if(targetoutdir)%> +VDIR = <%targetoutdir%>.obj/ +VSHDIR = <%targetoutdir%>.shobj/ + +<%endif%> +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +<%if(!dds && version)%> + +ifeq ($(versioned_so),1) + SOVERSION = .<%version%> +endif # versioned_so + +<%endif%> +<%if(dds)%> +include $(DDS_ROOT)/rules.dds.GNU +<%endif%> +<%if(ciao)%> +include $(CIAO_ROOT)/rules.ciao.GNU +<%endif%> +<%if(tao)%> +include $(TAO_ROOT)/rules.tao.GNU +<%endif%> + +<%if(resource_files)%> +ifneq (,$(RC)) +RESOURCES += \ +<%foreach(resource_files)%> + <%resource_file%><%fornotlast(" \\")%> +<%endfor%> +<%if(includes)%> + +RCFLAGS = \ +<%foreach(includes)%> + --include-dir=<%include%><%fornotlast(" \\")%> +<%endfor%> +<%endif%> +endif + +<%endif%> +# To build multiple targets in the same directory on AIX, it works +# best to have a template directory per project. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +TEMPINCDIR := $(TEMPINCDIR)/<%project_name%> +all: $(TEMPINCDIR) +endif + +ifneq ($(OUTPUT_DIRECTORY),) +all: $(OUTPUT_DIRECTORY) +$(OUTPUT_DIRECTORY): + -@$(MKDIR) "$(OUTPUT_DIRECTORY)" +endif + +<%if(sharedname || staticname || exename)%> +<%if(libs && libpaths)%> +# turn off libcheck if doing a dry run +ifeq ($(findstring n, $(MAKEFLAGS)),n) + LIBCHECK = 1 +else + # turn off libcheck if keep going was passed too + ifeq ($(findstring k, $(MAKEFLAGS)),k) + LIBCHECK = 1 + else + LIBCHECK ?= $(filter-out $(foreach lib,<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>,$(findstring $(lib),$(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%><%libpath%>/<%targetoutdir%> <%endif%><%libpath%> <%endfor%>/usr/lib $(INSLIB),$(wildcard $(libpath)/lib$(lib).* $(libpath)/$(lib).lib)))),<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>) + ifeq ($(LIBCHECK),) + LIBCHECK = 1 + endif + endif +endif +<%else%> +LIBCHECK = 1 +<%endif%> +<%else%> +LIBCHECK = 1 +<%endif%> +<%if(!exename)%> +<%foreach(requires)%> +ifeq ($(<%require%>),1) +<%endfor%> +<%foreach(avoids)%> +ifneq ($(<%avoid%>),1) +<%endfor%> +ifneq ($(LIBCHECK), 1) +<%if(staticname)%> + LIB = +<%endif%> +<%if(sharedname)%> + SHLIB = +<%endif%> + all: lib_warning +endif +<%foreach(avoids)%> +else +<%if(staticname)%> + LIB = +<%endif%> +<%if(sharedname)%> + SHLIB = +<%endif%> + all: avoid_warning +endif +<%endfor%> +<%foreach(requires)%> +else +<%if(staticname)%> + LIB = +<%endif%> +<%if(sharedname)%> + SHLIB = +<%endif%> + all: require_warning +endif +<%endfor%> + +<%if(tagname)%> +ifeq (,$(<%tagname%>)) +<%endif%> +<%foreach(requires)%> +ifeq ($(<%require%>),1) +<%endfor%> +<%foreach(avoids)%> +ifneq ($(<%avoid%>),1) +<%endfor%> +<%foreach(avoids)%> +else +<%if(staticname)%> + LIB = +<%endif%> +<%if(sharedname)%> + SHLIB = +<%endif%> + all: avoid_warning +endif +<%endfor%> +<%foreach(requires)%> +else +<%if(staticname)%> + LIB = +<%endif%> +<%if(sharedname)%> + SHLIB = +<%endif%> + all: require_warning +endif +<%endfor%> +<%if(tagname)%> +else +<%foreach(requires)%> +ifeq ($(<%require%>),1) +<%endfor%> +<%foreach(avoids)%> +ifneq ($(<%avoid%>),1) +<%endfor%> +<%foreach(tagchecks)%> + ifeq (<%tagcheck%>, $(findstring <%tagcheck%>, $(<%tagname%>))) +<%endfor%> +<%foreach(tagchecks)%> + else + LIB = + SHLIB = + endif +<%endfor%> +<%foreach(avoids)%> +else + LIB = + SHLIB = + all: avoid_warning +endif +<%endfor%> +<%foreach(requires)%> +else + LIB = + SHLIB = + all: require_warning +endif +<%endfor%> +endif +<%endif%> +<%endif%> +<%if(exename)%> +<%foreach(requires)%> +ifeq ($(<%require%>),1) +<%endfor%> +<%foreach(avoids)%> +ifneq ($(<%avoid%>),1) +<%endfor%> +ifeq ($(LIBCHECK), 1) +BIN = $(BIN_UNCHECKED)$(EXEEXT) +else + all: lib_warning +endif +<%foreach(avoids)%> +else + all: avoid_warning +endif +<%endfor%> +<%foreach(requires)%> +else + all: require_warning +endif +<%endfor%> + +# If it contains ../ at all use notdir. +OBJS = $(foreach var, $(addsuffix .$(OBJEXT), $(basename $(FILES)) $(RESOURCES)), $(if $(findstring ../,$(var)),$(notdir $(var)),$(var))) +SRC = $(FILES) +<%endif%> +<%if(sharedname || staticname)%> +LSRC = $(FILES) +<%endif%> + +<%marker(circuit)%> +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +<%if(exename)%> + +ifneq ($(OUTPUT_DIRECTORY),) +ifneq ($(OUTPUT_DIRECTORY),.) + INSTALL = $(VBIN:%=$(INSBIN)/%) + CLEANUP_INSTALL += $(CLEANUP_BIN:%=$(INSBIN)/%$(VAR)$(EXEEXT)) +endif +endif + +<%endif%> +<%if(sharedname || staticname)%> +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +<%endif%> +<%if(pch_source)%> + +ACE_PCH_SOURCE = <%pch_source%> +ACE_PCH_FILE = <%basename(pch_header)%>.gch + +ifeq ($(pchsupport),1) +<%if(pch_defines)%> +CPPFLAGS +=<%foreach(pch_defines)%> -D<%pch_define%><%endfor%> +<%endif%> + +$(addprefix $(VDIR), $(OBJS)): $(VDIR)$(ACE_PCH_FILE) +$(VSHOBJS): $(VSHDIR)$(ACE_PCH_FILE) +endif + +<%endif%> +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU +ifeq ($(VXWORKSLINK),1) +include $(TGT_DIR)/h/make/rules.$(PRJ_TYPE) +endif + +<%foreach(source_files)%> +<%if(flag_overrides(source_file, buildflags))%> +$(VDIR)<%noextension(source_file)%>.$(OBJEXT): <%source_file%> + @$(MKDIR) $(VDIR)<%dirname(source_file)%> + <%if(ends_with(source_file, \.c))%>$(COMPILE.c)<%else%>$(COMPILE.cc)<%endif%> <%flag_overrides(source_file, buildflags)%> $(ACE_USE_PCH_OPT) $(CC_OUTPUT_FLAG) $@ $< + ${MVCMD} + +ifneq ($(VSHDIR), $(VDIR)) +$(VSHDIR)<%noextension(source_file)%>.$(OBJEXT): <%source_file%> + @$(MKDIR) $(VSHDIR)<%dirname(source_file)%> + <%if(ends_with(source_file, \.c))%>$(COMPILE.c)<%else%>$(COMPILE.cc)<%endif%> <%flag_overrides(source_file, buildflags)%> $(ACE_USE_PCH_OPT) $(PIC) $(CC_OUTPUT_FLAG) $@ $< +endif + +<%else%> +<%if(dirname(source_file) && !contains(source_file, \.\./))%> +<%if(starts_with(source_file, \$) || !ends_with(source_file, \.cpp))%> +$(VDIR)<%noextension(source_file)%>.$(OBJEXT): <%source_file%> + @$(MKDIR) $(VDIR)<%dirname(source_file)%> + <%if(ends_with(source_file, \.c))%>$(COMPILE.c)<%else%>$(COMPILE.cc)<%endif%> <%if(flag_overrides(source_file, buildflags))%><%flag_overrides(source_file, buildflags)%> <%endif%>$(ACE_USE_PCH_OPT) $(CC_OUTPUT_FLAG) $@ $< + ${MVCMD} + +ifneq ($(VSHDIR), $(VDIR)) +$(VSHDIR)<%noextension(source_file)%>.$(OBJEXT): <%source_file%> + @$(MKDIR) $(VSHDIR)<%dirname(source_file)%> + <%if(ends_with(source_file, \.c))%>$(COMPILE.c)<%else%>$(COMPILE.cc)<%endif%> <%if(flag_overrides(source_file, buildflags))%><%flag_overrides(source_file, buildflags)%> <%endif%>$(ACE_USE_PCH_OPT) $(PIC) $(CC_OUTPUT_FLAG) $@ $< +endif + +<%endif%> +<%endif%> +<%endif%> +<%endfor%> +<%if(libpaths)%> +ifeq ($(VXWORKSLINK),1) +LDLIBPATH =<%foreach(libpaths)%> <%if(targetoutdir)%>-L<%libpath%>/<%targetoutdir%> <%endif%>-L<%libpath%><%endfor%><%if(linkflags)%> <%linkflags%><%endif%> +else +LDFLAGS +=<%foreach(libpaths)%> <%if(targetoutdir)%>-L<%libpath%>/<%targetoutdir%> <%endif%>-L<%libpath%><%endfor%><%if(linkflags)%> <%linkflags%><%endif%> +endif +<%endif%> +<%if(includes)%> +CPPFLAGS +=<%foreach(includes)%> -I<%include%><%endfor%> +<%endif%> +<%if(macros)%> +CPPFLAGS +=<%foreach(macros)%> -D<%macro%><%endfor%> +<%endif%> +<%if(compile_flags)%> +CPPFLAGS += <%compile_flags%> +<%endif%> +<%if(dynamicflags)%> +ifeq ($(shared_libs),1) + ifneq ($(SHLIB),) + CPPFLAGS +=<%foreach(dynamicflags)%> -D<%dynamicflag%><%endfor%> + endif +endif +<%endif%> +<%if(staticflags)%> +ifeq ($(static_libs),1) + CPPFLAGS +=<%foreach(staticflags)%> -D<%staticflag%><%endfor%> +<%if(exename)%> + ifeq ($(link_groups), 1) + LDLIBS := -Wl,--start-group $(LDLIBS) -Wl,--end-group + endif +<%endif%> +endif +<%endif%> + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- +<%marker(local)%> +lib_warning: + @echo <%project_name%> will not be built due to the following missing library: + @echo $(LIBCHECK) + +<%if(requires)%> +require_warning: + @echo <%project_name%> will not be built due to one of the following disabled make macros: + @echo<%foreach(requires)%> <%require%><%endfor%> + +<%endif%> +<%if(avoids)%> +avoid_warning: + @echo <%project_name%> will not be built due to one of the following enabled make macros: + @echo<%foreach(avoids)%> <%avoid%><%endfor%> + +<%endif%> +<%if(custom_types)%> +## Some OS's have /bin/test others only have /usr/bin/test +ifeq ($(wildcard /bin/test), /bin/test) + TEST_EXE = /bin/test +else +ifeq ($(wildcard /usr/bin/test), /usr/bin/test) + TEST_EXE = /usr/bin/test +endif +endif + +<%foreach(custom_types)%> +<%if(custom_type->libpath)%> +DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):<%custom_type->libpath%> +LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):<%custom_type->libpath%> +SHLIB_PATH := $(SHLIB_PATH):<%custom_type->libpath%> +LIBPATH := $(LIBPATH):<%custom_type->libpath%> +PATH := $(PATH):<%custom_type->libpath%> + +<%endif%> +<%foreach(custom_type->input_files)%> +<%if(custom_type->input_file->output_files)%> +GENERATED_DIRTY +=<%foreach(custom_type->input_file->output_files)%> <%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%endfor%> +<%if(custom_type->input_file->non_source_output_files)%> +OBJS_DEPEND_ON_GENERATED = 1 +<%endif%> +<%foreach(custom_type->input_file->output_files)%> +<%if(forlast && !forfirst)%> +## More than one file is generated by the command and therefore +## it can not be run in parallel. Unfortunately, there is no way to +## say that only this rule can't be run in parallel. However, we can +## determine if the generated files have already been generated. If that's +## the case, then we don't need this special rule. +ifeq ($(wildcard $(GENERATED_DIRTY)), $(GENERATED_DIRTY)) + ## If we can find /bin/test, then we will continue + ifneq ($(TEST_EXE),) + ## If all of the generated files are there, then we need to check + ## and make sure that the generated files are up-to-date. If they are not + ## then we need the special rule. + ifneq ($(shell<%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%custom_type->input_file%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%> echo 0),) + .NOTPARALLEL: +<%if(flag_overrides(custom_type->input_file, dependent))%> + else + ## By this point, all of the generated files are here and up-to-date + ## with respect to the source file. Now we need to make sure that + ## they are up-to-date with respect to the generation tool. If the tool + ## is newer than the generated files, then we need the special rule. + ifneq ($(shell<%foreach(dep, flag_overrides(custom_type->input_file, dependent))%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%dep%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%><%endfor%> echo 0),) + .NOTPARALLEL: + endif +<%else%> +<%if(custom_type->dependent)%> + else + ## By this point, all of the generated files are here and up-to-date + ## with respect to the source file. Now we need to make sure that + ## they are up-to-date with respect to the generation tool. If the tool + ## is newer than the generated files, then we need the special rule. + ifneq ($(shell<%foreach(custom_type->dependent)%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%custom_type->dependent%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%><%endfor%> echo 0),) + .NOTPARALLEL: + endif +<%endif%> +<%endif%> + endif + else + .NOTPARALLEL: + endif +else +.NOTPARALLEL: +endif +<%endif%> +<%endfor%> +<%foreach(custom_type->input_file->output_files)%><%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%fornotlast(" ")%><%endfor%>: <%custom_type->input_file%><%if(custom_type->input_file->dependencies)%> <%custom_type->input_file->dependencies%><%endif%><%if(flag_overrides(custom_type->input_file, dependent))%> <%flag_overrides(custom_type->input_file, dependent)%><%else%><%if(custom_type->dependent)%> <%custom_type->dependent%><%endif%><%endif%> +<%if(flag_overrides(custom_type->input_file, gendir))%> +<%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%> + $(MKDIR) <%flag_overrides(custom_type->input_file, gendir)%> +<%endif%> +<%endif%> + <%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> <%if(custom_type->output_option)%><%custom_type->input_file%> <%custom_type->output_option%> $@<%else%><%custom_type->input_file%><%endif%> +<%if(flag_overrides(custom_type->input_file, postcommand))%> +<%foreach(custom_type->input_file)%> + <%flag_overrides(custom_type->input_file, postcommand)%> +<%endfor%> +<%else%> +<%if(custom_type->postcommand)%> +<%foreach(custom_type->input_file)%> + <%custom_type->postcommand%> +<%endfor%> +<%endif%> +<%endif%> +<%if(pch_header)%> +<%if(custom_type->pch_postrule)%> +<%foreach(custom_type->input_file->source_output_files)%> + @echo '#include "<%pch_header%>"' > temp.$$$$ && cat <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%> >> temp.$$$$ && mv temp.$$$$ <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%> +<%endfor%> +<%endif%> +<%endif%> + +<%endif%> +<%endfor%> +<%endfor%> +ifneq ($(GENERATED_DIRTY),) +.PRECIOUS: $(GENERATED_DIRTY) +<%if(source_files)%> +## If the generated files are anything but source files, we need to +## ensure that those files are generated before we attempt to build anything +## else. +ifeq ($(OBJS_DEPEND_ON_GENERATED),1) +$(VDIR)$(ACE_PCH_FILE) $(addprefix $(VDIR), $(OBJS)): $(GENERATED_DIRTY) +$(VSHDIR)$(ACE_PCH_FILE) $(VSHOBJS): $(GENERATED_DIRTY) +endif +<%else%> +<%foreach(requires)%> +ifeq ($(<%require%>),1) +<%endfor%> +<%foreach(avoids)%> +ifneq ($(<%avoid%>),1) +<%endfor%> +all: $(GENERATED_DIRTY) +<%foreach(avoids)%> +endif +<%endfor%> +<%foreach(requires)%> +endif +<%endfor%> +<%endif%> +endif + +<%endif%> +<%if(idl_files)%> +ADDITIONAL_IDL_TARGETS +=<%foreach(idl_files)%> <%if(flag_overrides(idl_file, gendir))%><%if(!compares(flag_overrides(idl_file, gendir),.))%><%flag_overrides(idl_file, gendir)%>/<%endif%><%basenoextension(idl_file)%>$(IDL_CLIENT_HDR_EXT)<%else%><%noextension(idl_file)%>$(IDL_CLIENT_HDR_EXT)<%endif%><%endfor%> +idl_stubs: $(ADDITIONAL_IDL_TARGETS) +<%if(source_files)%> + +# This assignment forces make to run the idl_stubs +# target before building any of the source files. +FORCED_IDL_STUBS = <%source_files%> <%if(pch_source)%>$(ACE_PCH_SOURCE)<%endif%> +<%foreach(custom_types)%> +<%foreach(custom_type->input_files)%> +<%if(custom_type->input_file->source_output_files)%> +<%foreach(custom_type->input_file->source_output_files)%> +FORCED_IDL_STUBS := $(FORCED_IDL_STUBS:<%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->source_output_file)%><%else%><%custom_type->input_file->source_output_file%><%endif%>=) +<%endfor%> +<%endif%> +<%endfor%> +<%endfor%> + +ifneq ($(FORCED_IDL_STUBS),) +$(FORCED_IDL_STUBS): idl_stubs +endif +<%endif%> +<%endif%> +<%if(exename)%> + +ifneq ($(VXWORKSLINK),1) +<%if(libs && libpaths)%> +ifeq ($(static_libs_only), 1) + ifeq ($(use_dep_libs), 1) + DEPLIBS = $(foreach lib,<%foreach(libs)%> <%libname_prefix%><%lib%><%endfor%> <%lit_libs%>, $(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%> <%libpath%>/<%targetoutdir%><%endif%> <%libpath%><%endfor%>, $(wildcard $(libpath)/lib$(lib).a))) + endif +endif + +<%endif%> +$(BIN): $(addprefix $(VDIR), $(OBJS)) $(DEPLIBS) + $(LINK.cc) $(LDFLAGS) $(CC_OUTPUT_FLAG) $@ $^ $(VLDLIBS) $(POSTLINK) +endif +<%endif%> + +realclean: clean +ifneq ($(GENERATED_DIRTY),) + -$(RM) -r $(GENERATED_DIRTY) +endif + +__prebuild__: +<%if(prebuild)%> + @<%eval(prebuild)%> +<%else%> + @-: +<%endif%> + +<%if(postbuild)%> +all: __postbuild__ + +__postbuild__: + @<%eval(postbuild)%> + +<%endif%> +<%marker(bottom)%> diff --git a/ACE/bin/MakeProjectCreator/templates/gnudll.mpt b/ACE/bin/MakeProjectCreator/templates/gnudll.mpt new file mode 100644 index 00000000000..c5fa1017803 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/gnudll.mpt @@ -0,0 +1,6 @@ +// -*- MPC -*- +// $Id$ + +conditional_include "common" + +targetoutdir = diff --git a/ACE/bin/MakeProjectCreator/templates/gnuexe.mpt b/ACE/bin/MakeProjectCreator/templates/gnuexe.mpt new file mode 100644 index 00000000000..2b595402d86 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/templates/gnuexe.mpt @@ -0,0 +1,4 @@ +// -*- MPC -*- +// $Id$ + +conditional_include "gnudll" |