summaryrefslogtreecommitdiff
path: root/ACE/bin/MakeProjectCreator
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/bin/MakeProjectCreator')
-rw-r--r--ACE/bin/MakeProjectCreator/README37
-rw-r--r--ACE/bin/MakeProjectCreator/config/MPC.cfg2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_athena.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fl.mpb29
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_flreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb11
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fox.mpb19
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_foxreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gl.mpb16
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gtk.mpb13
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_mfc.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_motif.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_openssl.mpb30
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_output.mpb12
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt.mpb28
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_tk.mpb19
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_tkreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_x11.mpb22
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_xt.mpb20
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_xtreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_zzip.mpb15
-rw-r--r--ACE/bin/MakeProjectCreator/config/acedefaults.mpb21
-rw-r--r--ACE/bin/MakeProjectCreator/config/aceexe.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/acelib.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/acenosubsets.mpb10
-rw-r--r--ACE/bin/MakeProjectCreator/config/acexml.mpb10
-rw-r--r--ACE/bin/MakeProjectCreator/config/automake.features38
-rw-r--r--ACE/bin/MakeProjectCreator/config/avoids_ace_for_tao.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/bmake.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/borland.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/conv_lib.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/core.mpb5
-rw-r--r--ACE/bin/MakeProjectCreator/config/crosscompile.mpb14
-rw-r--r--ACE/bin/MakeProjectCreator/config/default.rel8
-rw-r--r--ACE/bin/MakeProjectCreator/config/em3.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/exceptions.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/global.features121
-rw-r--r--ACE/bin/MakeProjectCreator/config/gnuace.features10
-rw-r--r--ACE/bin/MakeProjectCreator/config/htbp.mpb10
-rw-r--r--ACE/bin/MakeProjectCreator/config/install.mpb5
-rw-r--r--ACE/bin/MakeProjectCreator/config/install_bin.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/install_headers.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/install_lib.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ipv6.mpb14
-rw-r--r--ACE/bin/MakeProjectCreator/config/kokyu.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/labviewrt_dll.mpb17
-rw-r--r--ACE/bin/MakeProjectCreator/config/man.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/nmake.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/pkgconfig.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/qos.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/rmcast.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/script.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/ssl.mpb12
-rw-r--r--ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb12
-rw-r--r--ACE/bin/MakeProjectCreator/config/ssl_full.mpb12
-rw-r--r--ACE/bin/MakeProjectCreator/config/stl.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/support_ostream.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/test_files.mpb10
-rw-r--r--ACE/bin/MakeProjectCreator/config/threads.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/tmcast.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc71.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc8.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc8nmake.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc9.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc9nmake.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc_warnings.mpb31
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt14
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcl.mpb16
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt12
-rw-r--r--ACE/bin/MakeProjectCreator/config/versioned_namespace.mpb13
-rw-r--r--ACE/bin/MakeProjectCreator/config/wfmo.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/winregistry.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/wxwindows.mpb21
-rw-r--r--ACE/bin/MakeProjectCreator/docs/templates/gnu.txt25
-rw-r--r--ACE/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm209
-rw-r--r--ACE/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm126
-rw-r--r--ACE/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm166
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm101
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm223
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm27
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm58
-rw-r--r--ACE/bin/MakeProjectCreator/templates/bor.mpd219
-rw-r--r--ACE/bin/MakeProjectCreator/templates/bordll.mpt8
-rw-r--r--ACE/bin/MakeProjectCreator/templates/borexe.mpt7
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnu.mpd669
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnudll.mpt6
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnuexe.mpt4
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)%>
+ -&copy /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"