summaryrefslogtreecommitdiff
path: root/ACE/include/makeinclude/wrapper_macros.GNU
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/include/makeinclude/wrapper_macros.GNU')
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU961
1 files changed, 961 insertions, 0 deletions
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
new file mode 100644
index 00000000000..f86b0a6bdf7
--- /dev/null
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -0,0 +1,961 @@
+# -*- Makefile -*-
+
+#----------------------------------------------------------------------------
+# $Id$
+#----------------------------------------------------------------------------
+#
+# ACE supports the following flags. They can be enabled either on
+# the command line, e.g., "make purify=1", or added to your
+# platform_macros.GNU. To disable the option, set the flag to null,
+# e.g., "make debug=". Some flags support setting to 0 disable,
+# e.g., "make debug=0". debug=1 is enabled in the platform files
+# that are released with ACE.
+#
+# Please note that the effects of a flag may be platform specific.
+# Also, combinations of certain flags may or may not be allowed on
+# specific platforms, e.g., debug=1 opt=1 is supported by g++ but
+# not all other C++ compilers.
+#
+# Flag Description
+# ---- -----------
+# ace_for_tao Build "ace_for_tao" subset. Primarily useful for
+# reducing the size of the ACE shared library when
+# using TAO.
+# debug Enable debugging; see DCFLAGS and DCCFLAGS.
+# dmalloc Indicate build with dmalloc; adds PLATFORM_DMALLOC_CPPFLAGS
+# to CPPFLAGS, PLATFORM_DMALLOC_LDFLAGS to LDFLAGS, and
+# PLATFORM_DMALLOC_LIBS to LIBS. For more information on
+# dmalloc, see http://dmalloc.com.
+# fast Enable -fast option, e.g., with Sun C++.
+# inline Enable ACE inlining. Some platforms enable inlining by
+# default, others do not. If platform_macros.GNU does not
+# set this, inline is enabled.
+# minimum_corba Enable minimumCORBA support. (Documented here, but
+# implemented in TAO/rules.TAO.GNU.)
+# mtrace Indicate build with mtrace; adds PLATFORM_MTRACE_CPPFLAGS
+# to CPPFLAGS. Mtrace is an extension in GNU libc.
+# optimize Enable optimization; see OCFLAGS and OCCFLAGS.
+# probe Enable ACE_Timeprobes.
+# profile Enable profiling; see PCFLAGS and PCCFLAGS.
+# purify Purify all executables. purify must be in user's PATH!
+# quantify Quantify all executables. quantify must be in user's PATH!
+# repo Use GNU template repository (g++ with repo patches and
+# egcs only).
+# shared_libs Build shared libraries. Ignored if static_libs_only is set.
+# static_libs Build static libraries. Ignored if shared_libs_only is set.
+# shared_libs_only Only build shared libraries. Ignored if no SHLIBs are
+# specified by the Makefile, as in performance-tests/Misc.
+# static_libs_only Only build static libraries.
+# static_link Link only static libs to executables, e.g., uses "-static"
+# flag with the GNU ld linker.
+# symlinks Make symbolic links (on appropriate platforms) in the lib
+# directory be either "absolute" or "relative".
+# templates Type of template instantiation to perform. Can be one of
+# automatic, used. Defaults to automatic.
+# threads Build with thread support.
+# trio Indicate build with trio; adds PLATFORM_TRIO_CPPFLAGS
+# to CPPFLAGS, PLATFORM_TRIO_LDFLAGS to LDFLAGS, and
+# PLATFORM_TRIO_LIBS to LIBS. For more information on
+# trio, see http://sourceforge.net/projects/ctrio/
+# xt Build with Xt (X11 Toolkit) support.
+# fl Build with FlTk (Fast Light Toolkit) support.
+# fox Build with Fox Toolkit support.
+# tk Build with Tk (Tcl/Tk) support.
+# qt Build with Qt (Trolltech Qt) support.
+# ssl Build with OpenSSL support.
+# rapi Build with RAPI
+# stlport Build with STLPort support
+# rwho Build with rwho, this results in building apps/drwho
+# pipes Build with pipe support, resulting in adding -pipe to the
+# compiler options.
+# sctp Build support for TAO SCIOP and for ACE SCTP
+# wrapper-facades. The sctp macro should be set to a string
+# value representing a particular SCTP implementation.
+# Recognized values include: openss7 lksctp
+#
+# versioned_so Add versioning to libraries. Defaults to 1 (true). If 0,
+# no version number is appended to shared library names.
+# If versioned_so is 1 (enabled), the SOVERSION make
+# variable can also be set to specify the version info
+# to append to the name - it should have a leading '.' -
+# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA.
+# wfmo Build with wfmo support (Win32 only)
+# winregistry Build with windows registry support (Win32 only)
+# winnt Build WinNT-specific projects (Win32 only)
+# link_groups This indicates that statically linked executable library
+# names will be surrounded by -Wl,--start-group and
+# -Wl,--end-group for the GNU compiler only.
+#
+# Usually, users do not need to be concerned with make targets.
+# Just enter "make" on the command line to build. A few notable
+# targets are listed below.
+#
+# Target Description
+# ------ -----------
+# show_statics Lists all static objects in object files built for
+# current directory. Only supported for g++.
+# show_uninit Lists all uninitialized in object files built for
+# current directory. Only supported for g++.
+#
+# The following describes the ACE wrapper macros:
+#
+# Variable Description
+# -------- -----------
+# ARFLAGS Flags for the archive utility (ar)
+# CC C compiler command
+# CXX C++ compiler command
+# RC Resource compiler command
+# COMPILE.c Flags for compiling with C
+# COMPILE.cc Flags for compiling with C++
+# COMPILE.rc Flags for compiling with the resource compiler
+# CPPFLAGS C pre-processor flags
+# CFLAGS C compilation flags
+# CCFLAGS C++ compilation flags
+# DCFLAGS C compilation flags for debugging
+# DCCFLAGS C++ compilation flags for debugging
+# DEFFLAGS C++ preprocessor flag for defining symbols
+# DLD Name of dynamic linker
+# LD Name of linker
+# IDL Name of the CORBA IDL compiler
+# TEMPLATES_FLAG
+# Flag to pass to the compiler to control the instantiation of
+# templates.
+# INSBIN Binary (executable) installation directory
+# INSINC Include file installation directory
+# INSMAN Manpage installation directory
+# INSLIB Library installation directory
+# LDFLAGS ld linker flags
+# LINK.c Flags for linking with C
+# LINK.cc Flags for linking with C++
+# MAKEFLAGS Flags that are passed into the compilation from the commandline
+# OCFLAGS Optimizing C compilation flags
+# OCCFLAGS Optimizing C++ compilation flags
+# PCFLAGS C compilation flags for profiling
+# PCCFLAGS C++ compilation flags for profiling
+# PLATFORM_XT_CPPFLAGS
+# Platform CPP options for X11 (some require -I...)
+# PLATFORM_XT_LDFLAGS
+# Platform LD options for X11 (some require -L...)
+# PLATFORM_XT_LIBS
+# Platform libraries require with X11
+# PLATFORM_SSL_CPPFLAGS
+# Platform CPP options for OpenSSL (may need -I...)
+# PLATFORM_SSL_LDFLAGS
+# Platform LD options for OpenSSL (may need -L...)
+# PLATFORM_SSL_LIBS
+# Platform libraries required with OpenSSL
+# PLATFORM_RAPI_CPPFLAGS
+# Platform CPP options for RAPI
+# PLATFORM_RAPI_LDFLAGS
+# Platform LD options for RAPI
+# PLATFORM_RAPI_LIBS
+# Platform libraries required with RAPI
+# PLATFORM_SCTP_CPPFLAGS
+# Platform CPP options required for SCTP
+# PLATFORM_SCTP_LDFLAGS
+# Platform LD options required for SCTP
+# PLATFORM_SCTP_LIBS
+# Platform libraries required for SCTP
+# PRELINK Executable to precede linking, such as quantify
+# PREPROCESS.c Command to preprocess C
+# PREPROCESS.cc
+# Command to preprocess C++
+# PURELINK If set, contains purify executable as well as all options
+# PURE_CACHE_BASE_DIR
+# The base directory in which Pure products will produce
+# instrumented libraries. If you don't want that to be below
+# /tmp, set this variable in your environment or on the make
+# command line.
+# PURE_CACHE_DIR
+# The full name of the directory in which Pure produces will
+# produce instrumented libraries.
+# PWD Command to get the current working directory
+# PTDIRS Pathnames of directories containing template code
+# RM Name of program to use to remove files
+# ACE_MKDIR Name of program to (recursively) create directories
+# SOFLAGS Flags used to build a shared library
+# SOLINK.cc Link line necessary to build a share library
+# VAR Variant identifier suffix
+# VDIR Directory for object code
+# VSHDIR Directory for shared object code
+# ACE_ROOT Pathname for the root of the build tree
+#
+#----------------------------------------------------------------------------
+# Platform-dependent macro definitions
+# (link to the appropriate platform-specific config file).
+#----------------------------------------------------------------------------
+
+#### Default to building shared libraries only. Set it here to give the
+#### platform a chance to override.
+ifndef shared_libs
+ shared_libs = 1
+endif # shared_libs
+ifndef static_libs
+ static_libs = 0
+endif # static_libs
+
+#### Set up the build ACE version in case the platform_macros.GNU wants it.
+ifeq (cmd,$(findstring cmd,$(SHELL)))
+ACE_MAJOR_VERSION := $(shell awk "/ACE_MAJOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+ACE_MINOR_VERSION := $(shell awk "/ACE_MINOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+ACE_BETA_VERSION := $(shell awk "/ACE_BETA_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+else
+ACE_MAJOR_VERSION := $(shell awk '/ACE_MAJOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+ACE_MINOR_VERSION := $(shell awk '/ACE_MINOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+ACE_BETA_VERSION := $(shell awk '/ACE_BETA_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+endif
+
+ACE_VERSION = $(ACE_MAJOR_VERSION).$(ACE_MINOR_VERSION).$(ACE_BETA_VERSION)
+
+# Define some variables to silence warnings
+SHR_FILTER ?=
+
+# Include this before the below variables to make it possible for
+# platform_macros.GNU to set default values for them.
+ifneq ($(alternate_platform_macros),)
+ include $(alternate_platform_macros)
+else
+ include $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
+endif # alternate_platform_macros
+
+# Define some variables to silence warnings
+GHS ?=
+CHORUS ?=
+AIX_TEMPLATE_HACK ?=
+
+# $(ACE_PLATFORM_CONFIG) is used in dependency rules and corresponds to the
+# platform dependent config-*.h file included in config.h, and can be set
+# in your platform_*.GNU file or platform_macros.GNU.
+ACE_PLATFORM_CONFIG ?= config.h
+
+ifeq ($(threads),0)
+ ifneq ($(findstring -DACE_MT_SAFE=0,$(CPPFLAGS)),-DACE_MT_SAFE=0)
+ CPPFLAGS += -DACE_MT_SAFE=0
+ endif # -DACE_MT_SAFE=0
+endif # threads
+
+####
+#### Defaults are fast off (0), threads on (1)
+#### and versioned_so on (1).
+####
+fast ?= 0
+versioned_so ?= 1
+use_dep_libs ?= 1
+threads ?= 1
+symlinks ?= relative
+link_groups ?= 0
+mcpp ?= 0
+
+SOVERSION ?=
+SONAME ?=
+
+ifeq ($(PWD),)
+ PWD=$(shell pwd)
+endif
+
+ifeq ($(ACE_MKDIR),)
+ MKDIR = mkdir -p
+else
+ MKDIR = $(ACE_MKDIR)
+endif
+
+#----------------------------------------------------------------------------
+# Platform-independent macro definitions
+#----------------------------------------------------------------------------
+
+INCLDIRS ?=
+DEFFLAGS ?=
+
+ifeq ($(debug),0)
+ DEFFLAGS += -DNDEBUG
+endif
+
+ifeq (,$(findstring -I$(ACE_ROOT),$(INCLDIRS)))
+ INCLDIRS += -I$(ACE_ROOT)
+endif
+
+CPPFLAGS += $(DEFFLAGS) $(INCLDIRS)
+
+# Define default extensions for IDL-generated files
+IDL_CLIENT_HDR_EXT ?= C.h
+IDL_CLIENT_INL_EXT ?= C.inl
+IDL_CLIENT_SRC_EXT ?= C.cpp
+IDL_SERVER_HDR_EXT ?= S.h
+IDL_SERVER_INL_EXT ?= S.inl
+IDL_SERVER_SRC_EXT ?= S.cpp
+IDL_SERVER_THDR_EXT ?= S_T.h
+IDL_SERVER_TINL_EXT ?= S_T.inl
+IDL_SERVER_TSRC_EXT ?= S_T.cpp
+
+ifeq (default,$(origin LEX))
+LEX = flex
+endif
+
+EXEEXT ?=
+
+ifndef COMSPEC
+ ifdef ComSpec
+ #### ACE+TAO use COMSPEC, but ComSpec is defined.
+ COMSPEC = $(ComSpec)
+ endif # ComSpec
+endif # ! COMPSPEC
+
+ifdef COMSPEC
+ #### Assume we're on a WIN32 host.
+ ACE_NUL = nul
+else # ! WIN32
+ ACE_NUL = /dev/null
+endif # ! WIN32
+
+#### Redirect stderr to nul device, and mask exit status.
+ACE_NUL_STDERR = 2>$(ACE_NUL) || true
+PCFLAGS += #### set in platform_macros.GNU file, e.g., -p
+PCCFLAGS += #### set in platform_macros.GNU file, e.g., -p
+VAR ?=
+
+# User-written makefiles that are not MPC-generated often use LIB to specify
+# what to build. This is in contrast to MPC-generated files that use
+# LIB_CHECKED for this purpose. LIB causes conflicts on Windows with gmake
+# and Visual Studio which uses the LIB environment variable as a search path
+# for libraries to link. So, to allow non-MPC makefiles to keep working, set
+# LIB_CHECKED based on LIB if the former is not set and the latter is.
+ifndef COMSPEC
+ LIB_CHECKED ?= $(LIB)
+endif # ! COMPSPEC (and, therefore, assumed !Windows
+
+# default to not using an architecture-specific output directory
+ARCH ?=
+
+ifdef ARCH
+ INSLIB := $(INSLIB:%=%/$(ARCH))
+
+ # ADD_ARCH is a function used with $(call) to "ARCHIFY" a variable which
+ # contains the name and path of an executable or library. If the file is not
+ # located in the ARCH subdir, the non-ARCH location is used. First we need
+ # some helper functions to deal with quoting/protecting spaces.
+ # ADD_ARCH can return a path containing a space, the caller must quote it or
+ # escape the space, depending on the context.
+ PROT_SPC = $(subst $(SPACE),?,$(1))
+ UNPROT_SPC = $(subst ?,$(SPACE),$(1))
+ FILE_EXISTS = $(wildcard $(subst $(SPACE),\$(SPACE),$(1)))
+ ADD_ARCH_HLP = $(call UNPROT_SPC,$(dir $(1))$(ARCH)/$(notdir $(1)))
+ ARCH_FILE = $(call FILE_EXISTS,$(call ADD_ARCH_HLP,$(call PROT_SPC,$(1))))
+ ADD_ARCH = $(if $(call ARCH_FILE,$(1)),$(call ARCH_FILE,$(1)),$(call FILE_EXISTS,$(1)))
+
+ ARCH_BIN = $(if $(BIN),$(ARCH)/$(BIN))
+ ARCH_BIN2 = $(if $(BIN2),$(ARCH)/$(BIN2))
+ ARCH_LIB = $(if $(LIB_CHECKED),$(ARCH)/$(LIB_CHECKED))
+ ARCH_LIB2 = $(if $(LIB2),$(ARCH)/$(LIB2))
+ ARCH_SHLIB = $(if $(SHLIB),$(ARCH)/$(SHLIB))
+ ARCH_SHLIB2 = $(if $(SHLIB2),$(ARCH)/$(SHLIB2))
+ ARCH_SHLIBA = $(if $(SHLIBA),$(ARCH)/$(SHLIBA))
+ ARCH_SHLIBA2 = $(if $(SHLIBA2),$(ARCH)/$(SHLIBA2))
+
+else #ARCH is not defined
+
+ ADD_ARCH = $(1)
+
+ ARCH_BIN = $(BIN)
+ ARCH_BIN2 = $(BIN2)
+ ARCH_LIB = $(LIB_CHECKED)
+ ARCH_LIB2 = $(LIB2)
+ ARCH_SHLIB = $(SHLIB)
+ ARCH_SHLIB2 = $(SHLIB2)
+ ARCH_SHLIBA = $(SHLIBA)
+ ARCH_SHLIBA2 = $(SHLIBA2)
+
+endif #ARCH
+
+# for use with the result of ADD_ARCH
+ADD_QUOTE = $(if $(findstring $(SPACE),$(1)),"$(1)",$(1))
+
+
+INSINC ?= $(ACE_ROOT)/ace
+INSLIB ?= $(ACE_ROOT)/lib
+INSMAN ?= $(ACE_ROOT)/man
+
+ifeq (,$(findstring -L$(INSLIB),$(LDFLAGS)))
+ LDFLAGS += -L$(INSLIB)
+endif
+
+#ifdef ARCH
+# LDFLAGS_ARCH := $(LDFLAGS:-L%=-L%/$(ARCH))
+# LDFLAGS += $(LDFLAGS_ARCH)
+#endif
+
+# Set the cleanup targets. These targets are used by realclean even if
+# the component isn't being built, i.e., the decision to build it was based
+# on components built in another makefile and written a file (that might no
+# longer be available) and accessed by $(ACE_ROOT)/bin/ace_components.
+#
+# If a component should always be built, just use the normal BIN, LIB, or
+# SHLIB variables. If it's dependent on a component, use the BIN2 or
+# BIN_UNCHECKED variety, then assign that to BIN if the required component
+# is available.
+
+BIN_UNCHECKED ?=
+CLEANUP_BIN ?=
+ifdef BIN
+ CLEANUP_BIN = $(ARCH_BIN)
+endif # !BIN
+ifdef BIN2
+ CLEANUP_BIN += $(ARCH_BIN2)
+endif # !BIN2
+ifneq ($(BIN_UNCHECKED),)
+ CLEANUP_BIN += $(BIN_UNCHECKED)
+endif # !BIN_UNCHECKED
+
+LIB_UNCHECKED ?=
+CLEANUP_LIB ?=
+ifdef LIB_CHECKED
+ CLEANUP_LIB = $(ARCH_LIB)
+endif # !LIB_CHECKED
+ifdef LIB2
+ CLEANUP_LIB += $(ARCH_LIB2)
+endif # !LIB2
+ifneq ($(LIB_UNCHECKED),)
+ CLEANUP_LIB = $(LIB_UNCHECKED)
+endif # !LIB_UNCHECKED
+
+SHLIB_UNCHECKED ?=
+CLEANUP_SHLIB ?=
+ifdef SHLIB
+ CLEANUP_SHLIB = $(ARCH_SHLIB)
+endif # !SHLIB
+ifdef SHLIB2
+ CLEANUP_SHLIB += $(ARCH_SHLIB2)
+endif # SHLIB2
+ifneq ($(SHLIB_UNCHECKED),)
+ CLEANUP_SHLIB += $(SHLIB_UNCHECKED)
+endif # ! SHLIB_UNCHECKED
+
+SHLIBA_UNCHECKED ?=
+CLEANUP_SHLIBA ?=
+ifdef SHLIBA
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA)
+endif # SHLIBA
+ifdef SHLIBA2
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA2)
+endif # SHLIB2A
+ifneq ($(SHLIBA_UNCHECKED),)
+ CLEANUP_SHLIBA = $(SHLIBA_UNCHECKED)
+endif # SHLIBA_UNCHECKED
+
+# Let users override the default VDIR directories
+ifdef ARCH
+VDIR ?= $(ARCH)/.obj/
+VSHDIR ?= $(ARCH)/.shobj/
+else
+VDIR ?= .obj/
+VSHDIR ?= .shobj/
+endif
+
+# NOTE: VLDLIBS is defined below, in case it is overridden for static-
+# or shared-only builds.
+ifeq (default,$(origin YACC))
+YACC = bison
+endif
+
+#----------------------------------------------------------------------------
+# Platform-dependent macros that require platform_macros.GNU.
+#----------------------------------------------------------------------------
+
+OBJEXT ?= o
+SOEXT ?= so
+LIBEXT ?= a
+LIB_PREFIX ?= lib
+
+CC_OUTPUT_FLAG ?= -o
+SO_OUTPUT_FLAG ?= -o
+LINK_OUTPUT_FLAG ?= -o
+
+#----------------------------------------------------------------------------
+# make flags
+#----------------------------------------------------------------------------
+
+ifeq ($(optimize),0)
+ override optimize =
+endif # optimize
+
+ifneq ($(optimize),)
+ CFLAGS += $(OCFLAGS)
+ CCFLAGS += $(OCCFLAGS)
+endif # optimize
+
+ifeq ($(debug),0)
+ override debug =
+endif # debug
+
+ifeq ($(debug),)
+ CPPFLAGS += -DACE_NDEBUG
+# Disable the RCSID for release/non-debug builds.
+ ifeq (,$(findstring ACE_USE_RCSID,$(CPPFLAGS)))
+ CPPFLAGS += -DACE_USE_RCSID=0
+ endif
+else
+ CFLAGS += $(DCFLAGS)
+ CCFLAGS += $(DCCFLAGS)
+endif # debug
+
+dmalloc ?=
+ifeq ($(dmalloc),0)
+ override dmalloc =
+endif # dmalloc
+
+ifdef dmalloc
+ CPPFLAGS += $(PLATFORM_DMALLOC_CPPFLAGS)
+ LDFLAGS += $(PLATFORM_DMALLOC_LDFLAGS)
+ LIBS += $(PLATFORM_DMALLOC_LIBS)
+endif # dmalloc
+
+mtrace ?=
+ifeq ($(mtrace),0)
+ override mtrace =
+endif # mtrace
+
+ifdef mtrace
+ CPPFLAGS += $(PLATFORM_MTRACE_CPPFLAGS)
+endif # mtrace
+
+ifeq ($(threads),0)
+ override threads =
+endif # threads
+
+trio ?=
+ifeq ($(trio),0)
+ override trio =
+endif # trio
+
+ifdef trio
+ CPPFLAGS += -DACE_HAS_TRIO $(PLATFORM_TRIO_CPPFLAGS)
+ LDFLAGS += $(PLATFORM_TRIO_LDFLAGS)
+ LIBS += -ltrio $(PLATFORM_TRIO_LIBS)
+ ACE_MAKE_OPTIONS += trio
+endif # trio
+
+# ace_for_tao subsetting is disabled by default.
+ace_for_tao ?=
+ifeq ($(ace_for_tao),0)
+ override ace_for_tao =
+endif # ace_for_tao
+
+ifneq ($(ace_for_tao),)
+ ACE_MAKE_OPTIONS += ace_for_tao
+endif # ace_for_tao
+
+
+ifeq ($(xt),0)
+ override xt =
+endif # xt
+
+ifneq ($(xt),)
+ override x11=1
+ override xt=1
+ override ace_xtreactor=1
+ override tao_xtresource=1
+ ACE_MAKE_OPTIONS += xt
+endif # xt
+
+fl ?=
+ifeq ($(fl),0)
+ override fl =
+endif # fl
+
+ifneq ($(fl),)
+ override x11=1
+ override gl=1
+ override ace_flreactor=1
+ override tao_flresource=1
+ ACE_MAKE_OPTIONS += fl
+endif # fl
+
+tk ?=
+ifeq ($(tk),0)
+ override tk =
+endif # tk
+
+ifneq ($(tk),)
+ override x11=1
+ override tk=1
+ override ace_tkreactor=1
+ override tao_tkresource=1
+ ACE_MAKE_OPTIONS += tk
+endif # tk
+
+qt ?=
+ifeq ($(qt),0)
+ override qt =
+endif # qt
+
+ifneq ($(qt),)
+ override qt=1
+ override ace_qtreactor=1
+ override tao_qtresource=1
+ ACE_MAKE_OPTIONS += qt
+endif # qt
+gtk_reactor ?=
+
+ifeq ($(gtk_reactor),0)
+ override gtk_reactor =
+endif # gtk_reactor
+
+ifneq ($(gtk_reactor),)
+ override ace_with_gtk=1
+ CPPFLAGS += -DACE_HAS_GTK $(PLATFORM_GTK_CPPFLAGS)
+ LIBS += $(PLATFORM_GTK_LIBS)
+ LDFLAGS += $(PLATFORM_GTK_LDFLAGS)
+ ACE_MAKE_OPTIONS += gtk_reactor
+endif # gtk_reactor
+
+fox ?=
+ifeq ($(fox),0)
+ override fox =
+endif # fox
+
+ifneq ($(fox),)
+ override x11=1
+ override gl=1
+ override ace_foxreactor=1
+ override tao_foxresource=1
+ ACE_MAKE_OPTIONS += fox
+endif #fox
+
+QTDIR ?=
+ifneq ($(QTDIR),)
+ MOC = ${QTDIR}/bin/moc
+else
+ MOC = moc
+endif
+
+rapi ?=
+ifeq ($(rapi),0)
+ override rapi =
+endif #rapi
+
+ifneq ($(rapi),)
+ CPPFLAGS += -DACE_HAS_RAPI $(PLATFORM_RAPI_CPPFLAGS)
+ LIBS += $(PLATFORM_RAPI_LIBS)
+ LDFLAGS += $(PLATFORM_RAPI_LDFLAGS)
+ ACE_MAKE_OPTIONS += rapi
+endif # rapi
+
+sctp ?=
+ifeq ($(sctp),0)
+ override sctp =
+endif #rapi
+
+# if any sctp implementation is present then add
+ifneq ($(sctp),)
+ CPPFLAGS += -DACE_HAS_SCTP $(PLATFORM_SCTP_CPPFLAGS)
+ LDFLAGS += $(PLATFORM_SCTP_LDFLAGS)
+ LIBS += $(PLATFORM_SCTP_LIBS)
+ ACE_MAKE_OPTIONS += sctp
+endif
+
+gl ?=
+ifeq ($(gl),0)
+ override gl =
+endif # gl
+
+ifneq ($(gl),)
+ ACE_MAKE_OPTIONS += gl
+endif # gl
+
+ssl ?= 0
+ifeq ($(ssl),0)
+ override ssl =
+else
+ ifneq ($(SSL_ROOT), /usr)
+ ifneq ($(SSL_ROOT),)
+ PLATFORM_SSL_CPPFLAGS += -I$(SSL_ROOT)/include
+ PLATFORM_SSL_LDFLAGS += -L$(SSL_ROOT)/lib
+ endif
+ endif
+ PLATFORM_SSL_LIBS ?= -lssl -lcrypto
+ ACE_MAKE_OPTIONS += ssl
+endif
+
+## These are related to MPC. When 'requires' is used in a project
+## it controls whether or not the project is generated. There is also
+## a second level of control in platform macros and thus requires
+## some features to be set here as well.
+ec_typed_events ?= 1
+zlib ?= 1
+
+valgrind ?=
+ifeq ($(valgrind),1)
+ CPPFLAGS += -DACE_HAS_VALGRIND
+endif
+
+profile ?=
+ifeq ($(profile),0)
+ override profile =
+endif # profile
+
+ifneq ($(profile),)
+ CFLAGS += $(PCFLAGS)
+ CCFLAGS += $(PCCFLAGS)
+endif # profile
+
+inline ?= 1
+ifeq ($(inline),0)
+ CPPFLAGS += -DACE_NO_INLINE
+else
+ifeq ($(inline),1)
+ CPPFLAGS += -D__ACE_INLINE__
+endif # inline eq 1
+endif # inline eq 0
+
+ifeq ($(shared_libs),0)
+ override shared_libs =
+endif # shared_libs
+ifeq ($(static_libs),0)
+ override static_libs =
+endif # static_libs
+
+shared_libs_only ?=
+ifeq ($(shared_libs_only),0)
+ override shared_libs_only =
+endif # shared_libs_only
+
+static_libs_only ?=
+ifeq ($(static_libs_only),0)
+ override static_libs_only =
+endif # static_libs_only
+
+ifdef shared_libs_only
+ ifdef static_libs_only
+ $(error Both static_libs_only and shared_libs_only defined.)
+ else
+ override shared_libs = 1
+ override static_libs =
+ endif
+endif # shared_libs_only
+ifdef static_libs_only
+ override shared_libs =
+ override static_libs = 1
+endif # static_libs_only
+
+ifdef shared_libs
+ ifndef static_libs
+ override shared_libs_only = 1
+ endif
+ ACE_MAKE_OPTIONS += shared_libs
+endif
+
+ifdef static_libs
+ ifndef shared_libs
+ override static_libs_only = 1
+ endif
+ ACE_MAKE_OPTIONS += static_libs
+endif
+
+ACE_SHLIBS ?=
+
+ifdef shared_libs
+ ifdef SHLIBA
+ LDLIBS := $(LDLIBS:-l%=-l%shr)
+ ACE_SHLIBS := $(ACE_SHLIBS:-l%=-l%shr)
+ endif # SHLIBA
+else # ! shared_libs
+ ifdef static_libs
+ #### Don't build shared libs.
+ PIC =
+ SHLIB =
+ SOEXT = o
+ VSHDIR = $(VDIR)
+ VLDLIBS = $(LDLIBS:%.so=%.o)
+ endif # static_libs
+endif # shared_libs
+
+VLDLIBS = $(LDLIBS) $(LIBS)
+
+probe ?=
+ifeq ($(probe),0)
+ override probe =
+endif # probe
+
+ifeq ($(probe),1)
+ CPPFLAGS += -DACE_COMPILE_TIMEPROBES
+endif # probe
+
+purify ?=
+ifeq ($(purify),0)
+ override purify =
+endif # purify
+
+ifdef purify
+PURE_CACHE_BASE_DIR = /tmp/purifycache
+PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(notdir $(CXX) )
+
+ #### Pick up Purify directory from the users PATH.
+ ACE_PURIFY_DIR := \
+ $(shell type purify | sed -e 's/.* is //' -e 's%/purify$$%%')
+
+ #### You might want to adjust the Purify options below.
+ #### -best-effort is undocumented but supported, and seems
+ #### to help avoid occasional link failure.
+ PURELINK += purify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
+ -chain-length=20 -fds-inuse-at-exit=no \
+ -inuse-at-exit -max_threads=100 $(PLATFORM_PURIFY_OPTIONS)
+ CPPFLAGS += -DACE_HAS_PURIFY -I$(ACE_PURIFY_DIR)
+endif # purify
+
+quantify ?=
+ifeq ($(quantify),0)
+ override quantify =
+endif # quantify
+
+ifdef quantify
+ #### Pick up Quantify directory from the users PATH.
+ ACE_QUANTIFY_DIR := \
+ $(shell type quantify | sed -e 's/.* is //' -e 's%/quantify$$%%')
+
+ #### You might want to adjust the Quantify options below.
+ #### -best-effort is undocumented but supported, and seems
+ #### to help avoid occasional link failure.
+ PURELINK += quantify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
+ -max_threads=100 $(PLATFORM_QUANTIFY_OPTIONS)
+ CPPFLAGS += -DACE_HAS_QUANTIFY -I$(ACE_QUANTIFY_DIR)
+
+ ifeq ($(shell uname -p),sparc)
+ PURELINK += -record-register-window-traps
+ endif # sparc
+endif # quantify
+
+repo ?=
+ifeq ($(repo),0)
+ override repo =
+endif # repo
+
+ifdef repo
+ #### Remove -fno-implicit-templates from, and add -frepo to, CCFLAGS.
+ CCFLAGS := $(strip $(subst -fno-implicit-templates,,$(CCFLAGS)))
+ CCFLAGS += -frepo
+ CPPFLAGS += -DACE_HAS_GNU_REPO
+# ace_lib_prelink := 1
+endif # repo
+
+# If pipes is not set, we default to 0
+pipes ?= 0
+
+# If pipes is set to 1 then add the compiler flag -pipe. This uses pipe instead
+# of intermediate files. This can be disabled by setting pipes to 0 in the
+# platform_macros.GNU file.
+ifeq ($(pipes),1)
+ CFLAGS += -pipe
+ CCFLAGS += -pipe
+endif # pipes
+
+# RMCast is turned on by default
+rmcast ?= 1
+ifeq ($(rmcast),1)
+ ACE_MAKE_OPTIONS += rmcast
+endif
+
+# If not explicitly is set that we don't have rwho, assume we have it.
+rwho ?= 1
+
+# If not explicitly is set that we don't have stlport, assume we
+# don't have it.
+stlport ?= 0
+ifeq ($(stlport),1)
+ CPPFLAGS += -DACE_HAS_STLPORT $(PLATFORM_STLPORT_CPPFLAGS)
+ CCFLAGS += $(PLATFORM_STLPORT_CCFLAGS)
+ LDFLAGS += $(PLATFORM_STLPORT_LDFLAGS)
+ LIBS += $(PLATFORM_STLPORT_LIBS)
+endif
+
+# If not explicitly is set that we have wfmo, assume we don't have it.
+wfmo ?= 0
+
+# If not explicitly is set that we have winregistry, assume we don't have it.
+winregistry ?= 0
+
+# If not explicitly is set that we have winnt, assume we don't have it.
+winnt ?= 0
+
+# In MPC, these are now features that are enabled by default.
+ace_other ?= 1
+ace_codecs ?= 1
+ace_token ?= 1
+ace_svcconf ?= 1
+ace_uuid ?= 1
+ace_filecache ?= 1
+acexml ?= 1
+
+# Icecream distributed compilation support
+ifeq ($(icecream),1)
+ # check availability of icecc
+ ifneq ($(ICECC_ROOT),)
+ ICECC_PROG := $(ICECC_ROOT)/icecc
+ else
+ ICECC_PROG := $(shell which icecc 2>/dev/null)
+ endif
+ ICECC_VERTEST := $(shell test -x "$(ICECC_PROG)" && $(ICECC_PROG) --version)
+ ifneq (ICECC,$(findstring ICECC,$(ICECC_VERTEST)))
+ # not good, try alternative install location
+ ICECC_PROG := /opt/icecream/bin/icecc
+ ICECC_VERTEST := $(shell test -x "$(ICECC_PROG)" && $(ICECC_PROG) --version)
+ ifneq (ICECC,$(findstring ICECC,$(ICECC_VERTEST)))
+ override icecream := 0
+ $(error Cannot locate valid Icecream compiler.)
+ endif
+ endif
+ ifeq ($(icecream),1)
+ # force LD and DLD to be 'normal' tools
+ override LD := $(LD)
+ override DLD := $(DLD)
+ # define tools that icecc should call for local jobs
+ ICECC_CC := $(CC)
+ ICECC_CXX := $(CXX)
+ export ICECC_CC ICECC_CXX
+ # let all compilation go through icecc
+ CC := $(ICECC_PROG)
+ CXX := $(ICECC_PROG)
+ endif
+endif
+
+#----------------------------------------------------------------------------
+# Conditional macro definitions
+#----------------------------------------------------------------------------
+
+PTDIRS ?=
+PRELINK ?=
+POSTLINK ?=
+PURELINK ?=
+TEMPLATES_FLAG ?=
+MVCMD ?=
+PREPROCESS_OPT ?= -E
+PREPROCESS_SUFFIX ?= i
+
+COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
+COMPILE.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) -c
+PREPROCESS.c ?= $(CC) $(PREPROCESS_OPT) $(CFLAGS) $(CPPFLAGS)
+PREPROCESS.cc ?= $(CXX) $(PREPROCESS_OPT) $(CCFLAGS) $(CPPFLAGS)
+RC ?=
+
+COMPILE.rc = $(RC) $(RCFLAGS)
+COMPILE-NO_DASH_G.cc = `echo $(COMPILE.cc) | sed 's/-g //'`
+# 960905 Marius Kjeldahl <marius@funcom.com>
+# Added the line below to be used for compiling executable shared objects
+COMPILEESO.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
+
+ifeq ($(LINK.c),override)
+ LINK.c = $(LINK.c.override)
+else
+ LINK.c = $(PURELINK) $(PRELINK) $(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
+ $(LDLIBS) $(LIBS)
+endif # LINK.c.override
+
+ifeq ($(LINK.cc),override)
+ LINK.cc = $(LINK.cc.override)
+else
+ LINK.cc = $(PURELINK) $(PRELINK) $(LD) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
+endif # LINK.cc.override
+
+ifeq ($(SOLINK.cc),override)
+ SOLINK.cc = $(SOLINK.cc.override)
+else
+ SOLINK.cc = $(PRELINK) $(DLD) $(SOFLAGS)
+endif # SOLINK.cc.override