summaryrefslogtreecommitdiff
path: root/ACE/include
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2008-11-14 22:29:43 +0000
committerSteve Huston <shuston@riverace.com>2008-11-14 22:29:43 +0000
commita120af7a988f81e051d803ba040f9ff559c367e8 (patch)
tree35eb846c984a1bd89820252ac85c55cf47a6ac65 /ACE/include
parent64e162367e75a8026a6f3f4ae939b8c05bfa410d (diff)
downloadATCD-a120af7a988f81e051d803ba040f9ff559c367e8.tar.gz
ChangeLogTag:Fri Nov 14 22:25:34 UTC 2008 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ACE/include')
-rw-r--r--ACE/include/makeinclude/rules.bin.GNU11
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU6
-rw-r--r--ACE/include/makeinclude/rules.local.GNU42
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU59
4 files changed, 85 insertions, 33 deletions
diff --git a/ACE/include/makeinclude/rules.bin.GNU b/ACE/include/makeinclude/rules.bin.GNU
index ab22f2e4975..fe6fb0a83b1 100644
--- a/ACE/include/makeinclude/rules.bin.GNU
+++ b/ACE/include/makeinclude/rules.bin.GNU
@@ -9,7 +9,7 @@
#----------------------------------------------------------------------------
ifdef BIN
- VBIN = $(BIN:%=%$(VAR))
+ VBIN = $(ARCH_BIN:%=%$(VAR))
# VBIN always depends on idl_stubs and libraries, if they exist.
ifdef IDL_SRC
$(VBIN): $(IDL_SRC)
@@ -39,14 +39,15 @@ VXWORKSLINK ?=
using_aix_vacpp ?=
ifeq ($(VXWORKSLINK),1)
-$(BIN): $(DEFAULTRULE)
+$(ARCH_BIN): $(DEFAULTRULE)
mv $(DEFAULTRULE) $@
else # !VXWORKSLINK
ifeq (1,$(using_aix_vacpp))
-$(BIN): %: %.icc $(SRC)
+$(ARCH_BIN): %: %.icc $(SRC)
vacbld_r $< -severitylevel=warning
else # !using_aix_vacpp
-$(BIN): %: $(VDIR)%.$(OBJEXT) $(VOBJS)
- $(LINK.cc) $(LDFLAGS) $(CC_OUTPUT_FLAG) $@ $(sort $(VDIR)$@.$(OBJEXT) $(VOBJS)) $(VLDLIBS) $(POSTLINK)
+# Since we add in the vdir, don't use arch_bin. use bin instead!
+$(ARCH_BIN): %: $(VDIR)$(BIN).$(OBJEXT) $(VOBJS)
+ $(LINK.cc) $(LDFLAGS) $(CC_OUTPUT_FLAG) $@ $(sort $(VDIR)$(BIN).$(OBJEXT) $(VOBJS)) $(VLDLIBS) $(POSTLINK)
endif # using_aix_vacpp
endif
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index 2eeb0633f14..6ad6890bdf3 100644
--- a/ACE/include/makeinclude/rules.lib.GNU
+++ b/ACE/include/makeinclude/rules.lib.GNU
@@ -36,7 +36,7 @@ endif # versioned_so
#----------------------------------------------------------------------------
LIB ?=
-VLIB = $(LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
+VLIB = $(ARCH_LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
CLEANUP_VLIB = $(CLEANUP_LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
# Add VLIB to VLIBS if building static_libs.
@@ -46,13 +46,13 @@ endif
SHLIB ?=
# Setup shared library variables, including versions.
-VSHLIB_NO_VER = $(SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
+VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
SHLIBA ?=
-VSHLIBA = $(SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
+VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
# Add VSHLIB if we're building shared_libs.
ifdef shared_libs
diff --git a/ACE/include/makeinclude/rules.local.GNU b/ACE/include/makeinclude/rules.local.GNU
index 6ef881c5424..1f5455113b0 100644
--- a/ACE/include/makeinclude/rules.local.GNU
+++ b/ACE/include/makeinclude/rules.local.GNU
@@ -64,7 +64,7 @@ IDL_SRC ?=
VLIBS ?=
BUILD ?=
BIN ?=
-VBIN ?= $(BIN:%=%$(VAR))
+VBIN ?= $(ARCH_BIN:%=%$(VAR))
ifneq ($(VBIN),)
$(VBIN): $(VLIBS)
endif
@@ -255,6 +255,14 @@ ifndef LN_S
endif # ! WIN32
endif # ! LN_S
+# Don't call shell/call directly below since we may need to
+# add the architecture specific suffix to the directory
+ifneq ($(mingw32),1)
+ARCH_SOURCE_DIR := $(patsubst /,,$(shell pwd)/$(ARCH))
+else
+ARCH_SOURCE_DIR := $(patsubst /,,$(call PWD)/$(ARCH))
+endif
+
$(INSBIN)/%$(VAR)$(EXEEXT) \
$(INSINC)/ace% \
$(INSLIB)/% \
@@ -272,57 +280,57 @@ ifeq ($(vxworks_ntbuild),1)
@if exist $@ echo "$(@F) already installed"
@if not exist $@ echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) to $(@D)" && \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
- $(LN_S) $(shell pwd)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
echo "Installing $(@F) to $(@D)" && \
$(RM) $@ && \
- $(LN_S) $(shell pwd)/$(@F) $@
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@
else #not vxworks_ntbuild
ifeq ($(mingw32),1)
#If we're actually copying instead of linking, pay attention to timestamps to know when to install
ifeq ($(firstword $(LN_S)),cp)
ifneq ($(SOVERSION),)
- @if test $(call PWD) != $(@D) ; then \
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
if test $(@F) -ot $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) ; then \
echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(call PWD)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
fi ; \
fi
endif #SOVERSION
- @if test $(call PWD) != $(@D) ; then \
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
if test $@ -nt $(@F) ; then \
echo "$(@F) already installed" ; \
else \
echo "Installing $(@F) -> $(@D)" ; \
$(RM) $@; \
- $(LN_S) $(call PWD)/$(@F) $@; \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi ; \
fi
else #firstword of LN_S is not cp, so we're using real symlinks
- @if test $(call PWD) != $(@D) -o -n "$(SOVERSION)" ; then \
+ @if test $(ARCH_SOURCE_DIR) != $(@D) -o -n "$(SOVERSION)" ; then \
if test -s $@ ; then \
echo "$(@F) already installed" ; \
else \
echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(call PWD)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
echo "Installing $(@F) -> $(@D)" ; \
$(RM) $@; \
- $(LN_S) $(call PWD)/$(@F) $@; \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi ; \
fi
endif #firstword
else #not mingw32
- @if test $(shell pwd) != $(@D) -o -n "$(SOVERSION)" ; then \
+ @if test $(ARCH_SOURCE_DIR) != $(@D) -o -n "$(SOVERSION)" ; then \
if test -s $@ ; then \
echo "$(@F) already installed" ; \
else \
echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(shell pwd)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
echo "Installing $(@F) -> $(@D)" ; \
$(RM) $@; \
- $(LN_S) $(shell pwd)/$(@F) $@; \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi ; \
fi
endif #mingw32
@@ -335,7 +343,7 @@ ifdef MVSLIB
echo "$(@F:.$(SOEXT)=.x) already installed" ; \
else \
echo "Installing $(@F:.$(SOEXT)=.x) -> $(@D)" ; \
- $(RM) $(@); $(LN_S) $(shell pwd)/$(@F:.$(SOEXT)=.x) $(@:.$(SOEXT)=.x) ; \
+ $(RM) $(@); $(LN_S) $(ARCH_SOURCE_DIR)/$(@F:.$(SOEXT)=.x) $(@:.$(SOEXT)=.x) ; \
fi \
fi
endif
@@ -386,7 +394,7 @@ ifdef OBJS
CLEANUP_OBJS += $(addprefix $(VDIR), $(OBJS))
endif # OBJS
ifneq ($(CLEANUP_BIN),)
- CLEANUP_OBJS += $(addsuffix .$(OBJEXT),$(addprefix $(VDIR),$(basename $(CLEANUP_BIN)))) $(VOBJS)
+ CLEANUP_OBJS += $(addsuffix .$(OBJEXT),$(addprefix $(VDIR),$(basename $(CLEANUP_BIN:$(ARCH)/%=%)))) $(VOBJS)
endif # CLEANUP_BIN
ifdef VSHOBJS
CLEANUP_OBJS += $(VSHOBJS)
@@ -521,8 +529,8 @@ SPLIT:
@echo "done."
svnignore.local:
- if [ "n$(BIN)" != "n" ]; then \
- (svn propget svn:ignore .; echo $(BIN)) | sort | uniq | sed '/^$$/d' >SvNiGnOrE; \
+ if [ "n$(ARCH_BIN)" != "n" ]; then \
+ (svn propget svn:ignore .; echo $(ARCH_BIN)) | sort | uniq | sed '/^$$/d' >SvNiGnOrE; \
svn propset svn:ignore -F SvNiGnOrE .; \
rm SvNiGnOrE; \
fi
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
index 01a527876ab..428d30a4af7 100644
--- a/ACE/include/makeinclude/wrapper_macros.GNU
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -192,6 +192,44 @@
# (link to the appropriate platform-specific config file).
#----------------------------------------------------------------------------
+# default to not using an architecture specific output directory
+ARCH ?=
+ARCH_BIN = $(BIN)
+ARCH_BIN2 = $(BIN2)
+ARCH_LIB = $(LIB)
+ARCH_LIB2 = $(LIB2)
+ARCH_SHLIB = $(SHLIB)
+ARCH_SHLIB2 = $(SHLIB2)
+ARCH_SHLIBA = $(SHLIBA)
+ARCH_SHLIBA2 = $(SHLIBA2)
+
+ifdef ARCH
+ifdef BIN
+ ARCH_BIN = $(ARCH)/$(BIN)
+endif
+ifdef BIN2
+ ARCH_BIN2 = $(ARCH)/$(BIN2)
+endif
+ifdef LIB
+ ARCH_LIB = $(ARCH)/$(LIB)
+endif
+ifdef LIB2
+ ARCH_LIB2 = $(ARCH)/$(LIB2)
+endif
+ifdef SHLIB
+ ARCH_SHLIB = $(ARCH)/$(SHLIB)
+endif
+ifdef SHLIB2
+ ARCH_SHLIB2 = $(ARCH)/$(SHLIB2)
+endif
+ifdef SHLIBA
+ ARCH_SHLIBA = $(ARCH)/$(SHLIBA)
+endif
+ifdef SHLIBA2
+ ARCH_HLIBA2 = $(ARCH)/$(SHLIBA2)
+endif
+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
@@ -205,10 +243,10 @@
BIN_UNCHECKED ?=
CLEANUP_BIN ?=
ifdef BIN
- CLEANUP_BIN = $(BIN)
+ CLEANUP_BIN = $(ARCH_BIN)
endif # !BIN
ifdef BIN2
- CLEANUP_BIN += $(BIN2)
+ CLEANUP_BIN += $(ARCH_BIN2)
endif # !BIN2
ifneq ($(BIN_UNCHECKED),)
CLEANUP_BIN += $(BIN_UNCHECKED)
@@ -217,10 +255,10 @@ endif # !BIN_UNCHECKED
LIB_UNCHECKED ?=
CLEANUP_LIB ?=
ifdef LIB
- CLEANUP_LIB = $(LIB)
+ CLEANUP_LIB = $(ARCH_LIB)
endif # !LIB
ifdef LIB2
- CLEANUP_LIB += $(LIB2)
+ CLEANUP_LIB += $(ARCH_LIB2)
endif # !LIB2
ifneq ($(LIB_UNCHECKED),)
CLEANUP_LIB = $(LIB_UNCHECKED)
@@ -229,10 +267,10 @@ endif # !LIB_UNCHECKED
SHLIB_UNCHECKED ?=
CLEANUP_SHLIB ?=
ifdef SHLIB
- CLEANUP_SHLIB = $(SHLIB)
+ CLEANUP_SHLIB = $(ARCH_SHLIB)
endif # !SHLIB
ifdef SHLIB2
- CLEANUP_SHLIB += $(SHLIB2)
+ CLEANUP_SHLIB += $(ARCH_SHLIB2)
endif # SHLIB2
ifneq ($(SHLIB_UNCHECKED),)
CLEANUP_SHLIB += $(SHLIB_UNCHECKED)
@@ -241,10 +279,10 @@ endif # ! SHLIB_UNCHECKED
SHLIBA_UNCHECKED ?=
CLEANUP_SHLIBA ?=
ifdef SHLIBA
- CLEANUP_SHLIBA = $(SHLIBA)
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA)
endif # SHLIBA
ifdef SHLIBA2
- CLEANUP_SHLIBA = $(SHLIBA2)
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA2)
endif # SHLIB2A
ifneq ($(SHLIBA_UNCHECKED),)
CLEANUP_SHLIBA = $(SHLIBA_UNCHECKED)
@@ -379,8 +417,13 @@ PCCFLAGS += #### set in platform_macros.GNU file, e.g., -p
VAR =
# 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.