[omniORB] HP-UX 10.20 porting
Eric Lemoine
ele@silicomp.com
Fri, 22 Oct 1999 18:13:40 +0200
This is a multi-part message in MIME format.
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hello omniORBers,
I just finished compiling omniORB2 on HP-UX10.20 with gcc2.95.
To do that I'd encounted some difficulties...
-1- Most of dir.mk files know how work with gcc (compiling rules) but
not all.
* In particular, all dir.mk found in .../shaeredlib/ subdirectories
hadn't any gcc compiling rules defined (only aCC compiling rules). So
I'd completed these dir.mk.
* In omniORB2/orbcore/gatekeepers/tcpwrapper/sharedlib/ subdirectory, it
is the HP-UX compiling rules that wasn't define.
-2- omniORB seems not work well when compiling it with gcc2.8.1
-> encounted problems with signal handler
-3- I encounted problems with the HAS_Cplusplus_Bool flag.
* when compiling omniORB examples, linker failled with Unsatisfied
symbols. When I run nm on omniORB.sl and on other exampl .o files, I
find that the signature of methods differ. Methods found in .sl files
useed _CORBA_Boolean * type, and these found in .o example files used
unsigned char *.
To overide this, I added a -DHAS_Cplusplus_Bool flag in my plateform
compiling rules. I don't know if it is the good way, but it seems to
work...
Find in attachment all dir.mk files I have changed to work well with the
gcc2.95.1
each change is commented with '# _CHANGE_ :' pattern
each name (very long) of dir.mk reflect its position in omniORB
subdirectories.
Maybe somes compiling options are not useful, but I'm not a guru in
makefile (I'm not guru at all :-)) ).
software used:
gcc2.95.1,
ccs ld (92453-07 linker linker ld B.10.15 960517)
gnu binutls-2.9.1
Well, I think that all.
Regards,
Eric
--
+----------------------------------------------------------------------+
| G R O U P E S I L I C O M P
+----------------------------------------------------------------------+
| Eric Lemoine silicomp ingenierie
|
| Software Engineer
|
| 195, rue Lavoisier - ZIRST BP1 - 38330 Montbonnot St Martin
| Phone : +33 (0)4 76 41 66 66 - Fax : +33 (0)4 76 41 66 67
| e-mail: ele@silicomp.com - http://www.silicomp.com
+----------------------------------------------------------------------+
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii; name="omniORB_2.7.1-mk-platforms-hppa_hpux_10.20.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="omniORB_2.7.1-mk-platforms-hppa_hpux_10.20.mk"
#
# hppa_hpux_10.20.mk - make variables and rules specific to HPUX 10.20
#
HPUX = 1
HppaProcessor = 1
#
# Include general unix things
#
include $(THIS_IMPORT_TREE)/mk/unix.mk
#
# Replacements for implicit rules
#
%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
%.o: %.cc
$(CXX) -c $(CXXFLAGS) -ldir $< -o $@
# -ldir is for compiling templates
#
#
# C preprocessor macro definitions for this architecture
#
IMPORT_CPPFLAGS += -D__hppa__ -D__hpux__ -D__OSVERSION__=10
#
# Standard programs
#
AR = ar cq
RANLIB = ranlib
MKDIRHIER = mkdir -p
INSTALL = cp -f
INSTLIBFLAGS =
INSTEXEFLAGS =
CPP = /lib/cpp
#############################################################################
# To use aCC uncomment the following lines: #
#############################################################################
# Tested on:
# HP aC++ B3910B A.01.04
# HP aC++ B3910B A.01.01 Support Library
#
#CXX = aCC
#CXXMAKEDEPEND = $(TOP)/$(BINDIR)/omkdepend -D__cplusplus
#CXXDEBUGFLAGS = -g
#CXXOPTIONS += -I /opt/aCC/include +inst_v +DAportable -D_CMA_NOWRAPPERS_
#CXXLINK = $(CXX)
#CXXLINKOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) -Wl,+s
#CC = cc
#CMAKEDEPEND = $(TOP)/$(BINDIR)/omkdepend
#CDEBUGFLAGS = -g
#COPTIONS = -Aa -D_HPUX_SOURCE +DAportable
#CLINKOPTIONS = -Wl,+s
#CLINK = $(CC)
# In order to compile Templates
# Override the default StaticLinkLibrary in unix.mk
#
#define StaticLinkLibrary
#(set -x; \
# $(RM) $@; \
# $(CXX) -c +inst_close $^; \
# $(AR) $@ $^; \
# $(RANLIB) $@; \
#)
#endef
############################################################################
# To use gcc uncomment the following lines: #
############################################################################
CXX = g++
CXXMAKEDEPEND = $(TOP)/$(BINDIR)/omkdepend -D__cplusplus -D__GNUG__ -D__GNUC__
# _CHANGE_ : adding -g flag
CXXDEBUGFLAGS = -g
# -D_CMA_NOWRAPPERS_ is needed otherwise linking omniNames results in
# /opt/aCC/lbin/ld: Unsatisfied symbols:
# fstreambase::cma_close(void)(code)
# _CHANGE_ : Adding += (useful ?),
# _CHANGE_ : Adding -fPIC flag (Position-Independent Code),
# _CHANGE_ : Adding -DHAS_Cplusplus_Bool flag (supress unsatisfied symbols when compiling examples)
CXXOPTIONS += -fhandle-exceptions -Wall -Wno-unused \
-fPIC \
-D_CMA_NOWRAPPERS_ -DHAS_Cplusplus_Bool
CXXLINK = $(CXX)
#
# Is GCCEXTRALINKOPTIONS necessary in a normal gcc setup? - SLL
#
# _CHANGE_ : set -L/opt/gcc/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.95.1 path in accordance with gcc subdirectories path
# _CHANGE_ : put -lgcc in place of -lg++
# _CHANGE_ : Adding -lcma to compil omniidl2 (pthreadxxx are Unsatisfied in libgcc.sl, but are ok in libcma.sl)
GCCEXTRALINKOPTIONS = -L/opt/gcc/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.95.1 -lgcc -lcma
CXXLINKOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(GCCEXTRALINKOPTIONS) -Wl,+s
# _CHANGE_ : set -L/opt/gcc/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.95.1 in accordance with gcc subdirectories
# I don't know if this PURIFY line is useful, because I hadn't any gnu ld at this point and all
# has compiled ok, so ...
PURIFY = purify -g++ -collector=/opt/gcc/lib/igcc-lib/hppa1.1-hp-hpux10.20/2.95.1\ld \
-ignore-unknown-subspaces=yes -chain-length=18 \
-show-directory=yes -show-pc=yes -show-pc-offset=yes
CC = gcc
CMAKEDEPEND = $(TOP)/$(BINDIR)/omkdepend __GNUC__
# _CHANGE_ : Adding -g flag
CDEBUGFLAGS = -O -g
# _CHANGE_ : Suppress the reentrant $(COPTIONS)
# _CHANGE_ : Adding -D_HPUX_SOURCE flag as like in aCC Rules (useful ?)
COPTIONS = $(CDEBUGFLAGS) \
-D_HPUX_SOURCE \
$(patsubst %,-Wl$(comma)-rpath$(comma)%,$(IMPORT_LIBRARY_DIRS))
# _CHANGE_ : Adding -Wl,+s flag for linker (shared)
CLINKOPTIONS = -Wl,+s
CLINK = $(CC)
#
# Socket library
#
SOCKET_LIB =
THREAD_LIB =
#
# CORBA stuff
#
#omniORB2GatekeeperImplementation = OMNIORB2_TCPWRAPGK
omniORB2GatekeeperImplementation = OMNIORB2_DUMMYGK
CorbaImplementation = OMNIORB2
#
# OMNI thread stuff
#
ThreadSystem = Posix
OMNITHREAD_POSIX_CPPFLAGS = -DPthreadDraftVersion=4
OMNITHREAD_CPPFLAGS = -D_REENTRANT
OMNITHREAD_LIB = $(patsubst %,$(LibSearchPattern),omnithread) -lcma
lib_depend := $(patsubst %,$(LibPattern),omnithread)
OMNITHREAD_LIB_DEPEND := $(GENERATE_LIB_DEPEND)
#
# OMNI ParTcl stuff
#
TCLTK_CPPFLAGS = -I/usr/local/include/Tcl7.4Tk4.0
TCLTK_LIB = -L/usr/local/lib -ltk4.0 -ltcl7.4 -lm -R /usr/local/lib
X11_CPPFLAGS = -I/usr/openwin/include
X11_LIB = -L/usr/openwin/lib -lX11 -R /usr/openwin/lib
WISH4 = /usr/local/bin/wish4.0
OMNIPARTCL_CPPFLAGS = $(TCLTK_CPPFLAGS) $(X11_CPPFLAGS) $(OMNITHREAD_CPPFLAGS)
OMNIPARTCL_LIB = $(patsubst %,$(LibSearchPattern),omniParTcl) $(TCLTK_LIB) \
$(X11_LIB) $(OMNITHREAD_LIB)
lib_depend := $(patsubst %,$(LibPattern),omniParTcl)
OMNIPARTCL_LIB_DEPEND := $(GENERATE_LIB_DEPEND) $(OMNITHREAD_LIB_DEPEND)
# Default location of the omniORB2 configuration file [falls back to this if
# the environment variable OMNIORB_CONFIG is not set] :
OMNIORB_CONFIG_DEFAULT_LOCATION = \"/etc/omniORB.cfg\"
# Default directory for the omniNames log files.
OMNINAMES_LOG_DEFAULT_LOCATION = \"/var/omninames\"
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii; name="omniORB_2.7.1-src-lib-omniORB2-lifecycle-sharedlib-dir.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="omniORB_2.7.1-src-lib-omniORB2-lifecycle-sharedlib-dir.mk"
# dir.mk for omniORB2
#
# Build a shared library in this directory
# **** DO NOT forget to update the $(VERSION) number.
#
# The Version number is constructed as follows:
# <major version no.>.<minor version no.>.<micro version no.>
#
# The <major version no.> is always 2 for omniORB2.
#
# The <minor version no.> changes when:
# 1. Public interfaces have been extended but remains backward compatible
# with earlier minor version.
# 2. Internal interfaces have been changed.
#
# The <micro version no.> changes when the implementation has been changed
# but both the public and internal interfaces remain the same. This usually
# corresponds to a pure bug fix release.
#
#
VERSION = 2.7.1
major_version = $(word 1,$(subst ., ,$(VERSION)))
minor_version = $(word 2,$(subst ., ,$(VERSION)))
micro_version = $(word 3,$(subst ., ,$(VERSION)))
#
# Life cycle run time library version
LC_VERSION = 1.2.2
lc_major_version = $(word 1,$(subst ., ,$(LC_VERSION)))
lc_minor_version = $(word 2,$(subst ., ,$(LC_VERSION)))
lc_micro_version = $(word 3,$(subst ., ,$(LC_VERSION)))
#
#
# For each source tree we want to search the parent directory to get source
# files so we put these on VPATH. However we can't put the parent build
# directory ('..') on VPATH otherwise the .o files in there are used. So we
# need to do that as a special case with the vpath directive:
#
override VPATH := $(patsubst %,%/..,$(VPATH))
ifndef BuildWin32DebugLibraries
vpath %.cc ..
else
vpath %.cc ../..
endif
#############################################################################
# Make variables for Unix platforms #
#############################################################################
ifdef UnixPlatform
ifdef OMNIORB_CONFIG_DEFAULT_LOCATION
CONFIG_DEFAULT_LOCATION = $(OMNIORB_CONFIG_DEFAULT_LOCATION)
else
CONFIG_DEFAULT_LOCATION = \"/project/omni/var/omniORB_NEW.cfg\"
endif
#CXXDEBUGFLAGS = -g
DIR_CPPFLAGS += -DUnixArchitecture
DIR_CPPFLAGS += -DCONFIG_DEFAULT_LOCATION=$(CONFIG_DEFAULT_LOCATION)
endif
#############################################################################
# Make variables for Win32 platforms #
#############################################################################
ifdef Win32Platform
DIR_CPPFLAGS += -DNTArchitecture
ifndef BuildWin32DebugLibraries
# Temporary added micro version number to the name of the dll.
implib = $(patsubst %,$(DLLPattern),omniORB2$(minor_version)$(micro_version))
#implib = $(patsubst %,$(DLLPattern),omniORB2$(minor_version))
staticlib = ../$(patsubst %,$(LibPattern),omniORB2)
dynimplib = $(patsubst %,$(DLLPattern),omniDynamic2$(minor_version)$(micro_version))
#dynimplib = $(patsubst %,$(DLLPattern),omniDynamic2$(minor_version))
dynstaticlib = ../$(patsubst %,$(LibPattern),omniDynamic2)
lcimplib = $(patsubst %,$(DLLPattern),omniLC$(lc_minor_version)$(lc_micro_version))
#lcimplib = $(patsubst %,$(DLLPattern),omniLC$(lc_minor_version))
lcstaticlib = ../$(patsubst %,$(LibPattern),omniLC)
CXXOPTIONS = $(MSVC_DLL_CXXNODEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKNODEBUGOPTIONS)
SUBDIRS = debug
else
# Building the debug version of the library in the debug subdirectory.
# Notice that this dir.mk is recursively used in the debug directory to build
# this library. The BuildWin32DebugLibraries make variable is set to 1 in
# the dir.mk generated in the debug directory.
#
# Temporary added micro version number to the name of the dll.
implib = $(patsubst %,$(DLLDebugPattern),omniORB2$(minor_version)$(micro_version))
#implib = $(patsubst %,$(DLLDebugPattern),omniORB2$(minor_version))
staticlib = ../../debug/$(patsubst %,$(LibDebugPattern),omniORB2)
dynimplib = $(patsubst %,$(DLLDebugPattern),omniDynamic2$(minor_version)$(micro_version))
#dynimplib = $(patsubst %,$(DLLDebugPattern),omniDynamic2$(minor_version))
dynstaticlib = ../../debug/$(patsubst %,$(LibDebugPattern),omniDynamic2)
lcimplib = $(patsubst %,$(DLLDebugPattern),omniLC$(lc_minor_version)$(lc_micro_version))
#lcimplib = $(patsubst %,$(DLLDebugPattern),omniLC$(lc_minor_version))
lcstaticlib = ../../debug/$(patsubst %,$(LibDebugPattern),omniLC)
CXXDEBUGFLAGS =
CXXOPTIONS = $(MSVC_DLL_CXXDEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKDEBUGOPTIONS)
tempvar := $(OMNITHREAD_LIB)
OMNITHREAD_LIB = $(patsubst $(DLLNoDebugSearchPattern),$(DLLDebugSearchPattern),$(tempvar))
DIR_CPPFLAGS += -I./../.. -I./../../..
SUBDIRS =
endif
lib = $(patsubst %.lib,%.dll,$(implib))
libname = $(patsubst %.dll,%,$(lib))
dynlib = $(patsubst %.lib,%.dll,$(dynimplib))
dynlibname = $(patsubst %.dll,%,$(dynlib))
lclib = $(patsubst %.lib,%.dll,$(lcimplib))
lclibname = $(patsubst %.dll,%,$(lclib))
# Extra libraries required by NT
NT_EXTRA_LIBS = wsock32.lib advapi32.lib
endif
#############################################################################
# Make variables for ATMos #
#############################################################################
ifdef ATMos
DIR_CPPFLAGS = -DATMosArchitecture
endif
#############################################################################
# Make variables common to all platforms #
#############################################################################
LC_SRCS = omniLifeCycle.cc reDirect.cc omniLifeCycleSK.cc omniLifeCycleDynSK.cc
LC_OBJS = omniLifeCycle.o reDirect.o omniLifeCycleSK.o omniLifeCycleDynSK.o
DIR_CPPFLAGS += $(OMNITHREAD_CPPFLAGS)
DIR_CPPFLAGS += -I./.. -I./../..
DIR_CPPFLAGS += -DUSE_omniORB_logStream
CXXSRCS = $(LC_SRCS)
#############################################################################
# Make rules for Solaris 2.x #
#############################################################################
ifdef SunOS
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic$(major_version).so
dynsoname = $(dynlibname).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.so
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
CC -G -o $@ -h $(lcsoname) $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib); \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
endif
#############################################################################
# Make rules for Linux egcs
#
#############################################################################
ifdef Linux
ifdef EgcsMajorVersion
DIR_CPPFLAGS += -fPIC
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic$(major_version).so
dynsoname = $(dynlibname).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.so
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
$(CXX) -shared -Wl,-soname,$(lcsoname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib); \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
endif
#############################################################################
# Make rules for Digital Unix #
#############################################################################
ifdef OSF1
ifeq ($(notdir $(CXX)),cxx)
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic$(major_version).so
dynsoname = $(dynlibname).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.so
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
(rpath="$(RPATH)"; \
for arg in $(OMNITHREAD_LIB) /usr/lib/cmplrs/cxx; do \
if expr "$$arg" : "-L" >/dev/null; then \
rpath="$$rpath$${rpath+:}`expr $$arg : '-L\(.*\)'"; \
fi; \
done; \set -x; \
$(RM) $@; \
ld -shared -soname $(lcsoname) -set_version $(lcsoname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib) \
-lcxxstd -lcxx -lexc -lots -lc \
-rpath $$rpath; \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
endif
#############################################################################
# Make rules for IBM AIX #
#############################################################################
ifdef AIX
libcorename = omniORB$(major_version)$(minor_version)
libname = lib$(libcorename).a
soname = libomniORB$(major_version).so.$(minor_version).$(micro_version)
lib = $(libname).$(micro_version)
dynlibcorename = omniDynamic$(major_version)$(minor_version)
dynlibname = lib$(dynlibcorename).a
dynsoname = libomniDynamic$(major_version).so.$(minor_version).$(micro_version)
dynlib = $(dynlibname).$(micro_version)
lclibname = libomniLC$(lc_minor_version).a
lcsoname = libomniLC.so.$(lc_minor_version).$(lc_micro_version)
lclib = $(lclibname).$(lc_micro_version)
# We have a bootstrapping problem with building gatekeepers and this shared
# library. This library is built before gatekeeprs. Until we have
# how to tell the linker it is safe to have some undefined symbols, we
# have to disable the gatekeeper feature.
all:: $(lclib)
ifeq ($(notdir $(CXX)),xlC_r)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
/usr/lpp/xlC/bin/makeC++SharedLib_r \
-o $(lcsoname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
-L../../orbcore/sharedlib -l$(libcorename) \
-L../../dynamic/sharedlib -l$(dynlibcorename) \
-p 40; \
ar cq $(lclib) $(lcsoname); \
$(RM) $(lcsoname); \
)
endif
ifeq ($(notdir $(CXX)),g++)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
$(CXXLINK) -shared -mthreads \
-o $(lcsoname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib); \
ar cq $(lclib) $(lcsoname); \
$(RM) $(lcsoname); \
)
endif
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lclibname); \
ln -s $(lclib) $(lclibname); \
)
endif
#############################################################################
# Make rules for Win32 platforms #
#############################################################################
ifdef Win32Platform
ifndef BuildWin32DebugLibraries
# Prepare a debug directory for building the debug version of the library.
# Essentially, we create a debug directory in the current directory, create
# a dir.mk and optionally a GNUmakefile in that directory and then calling
# omake (GNU make) in that directory.
# The confusing bit is that this dir.mk is recursively used in the debug
# directory to build this library. The BuildWin32DebugLibraries make variable,
# which is set to 1 in the dir.mk generated in the debug directory,
# is used to identify this case.
#
all:: mkdebugdir
mkdebugdir:
@(if [ ! -f debug/dir.mk ]; then \
file=dir.mk; dirs='. $(VPATH:/..=)'; $(FindFileInDirs); \
case "$$fullfile" in /*) ;; *) fullfile=../$$fullfile;; esac; \
dir=debug; $(CreateDir); \
echo 'BuildWin32DebugLibraries = 1' > debug/dir.mk; \
echo 'override VPATH := $$(VPATH:/debug=)' >> debug/dir.mk; \
echo include $$fullfile >> debug/dir.mk; \
if [ -f GNUmakefile ]; then \
echo 'TOP=../../../../../..' > debug/GNUmakefile; \
echo 'CURRENT=src/lib/omniORB2/lifecycle/sharedlib/debug' >> debug/GNUmakefile; \
echo 'include $$(TOP)/config/config.mk' >> debug/GNUmakefile; \
fi \
fi \
)
export:: mkdebugdir
endif
all:: $(lclib)
all::
@$(MakeSubdirs)
$(lclib): $(LC_OBJS) omniLC.def
(libs="$(NT_EXTRA_LIBS) $(OMNITHREAD_LIB) $(implib) $(dynimplib)"; \
$(RM) $@; \
$(CXXLINK) -out:$@ -DLL $(CXXLINKOPTIONS) -def:omniLC.def \
-IMPLIB:$(lcimplib) $(IMPORT_LIBRARY_FLAGS) $(LC_OBJS) $$libs; \
)
# omniORB2.def
# - This file contains all the functions and static class variables
# exported by the DLL. The symbols are extracted from the output of
# dumpbin.
#
# The function symbols are extracted using the following template:
# ... ........ SECT.. notype () External | ?..................
#
# The static class variable symbols are extracted using the following
# template:
# ... ........ SECT.. notype External | ?[^?]..............
#
# Default destructors generated by the compiler are excluded.
#
# It looks like class variable and function symbols start with two ??
# and class static variable and static function symbols start with one ?.
# - SLL
#
omniLC.def: $(lcstaticlib)
(set -x; \
echo "LIBRARY $(lclibname)" > omniLC.def; \
echo "VERSION $(minor_version).$(micro_version)" >> omniLC.def; \
echo "EXPORTS" >> omniLC.def; \
DUMPBIN.EXE /SYMBOLS $(lcstaticlib) | \
egrep '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ ]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\
egrep -v 'deleting destructor[^(]+\(unsigned int\)' | \
cut -d'|' -f2 | \
cut -d' ' -f2 | $(SORT) -u >> omniLC.def; )
clean::
$(RM) *.lib *.def *.dll *.exp
# NT treats DLLs more like executables -- the .dll file needs to go in the
# bin/x86... directory so that it's on your PATH:
export:: $(lclib)
@$(ExportExecutable)
export:: $(lcimplib)
@$(ExportLibrary)
export::
@$(MakeSubdirs)
endif
#############################################################################
# Make rules for HPUX #
#############################################################################
ifdef HPUX
ifeq ($(notdir $(CXX)),aCC)
DIR_CPPFLAGS += +z
libname = libomniORB$(major_version).sl
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic$(major_version).sl
dynsoname = $(dynlibname).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.sl
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
aCC -b -Wl,+h$(lcsoname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-L %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib) \
-ldce -lcma; \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
# _CHANGE_ : Adding all g++ compiling Rules from ifeq(..) ... #endif below
ifeq ($(notdir $(CXX)),g++)
DIR_CPPFLAGS += -fPIC -shared
libname = libomniORB.sl
soname = $(libname).$(major_version).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic.sl
dynsoname = $(dynlibname).$(major_version).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.sl
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -fPIC -shared -Wl-b,+h$(lcsoname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
$(EXPORT_TREE)/$(LIBDIR)/$(libname) $(EXPORT_TREE)/$(LIBDIR)/$(dynlibname) \
-ldce -lcma; \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
# _CHANGE_ : end of change
endif
#############################################################################
# Make rules for to Reliant Unix #
#############################################################################
ifdef SINIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
dynlibname = libomniDynamic$(major_version).so
dynsoname = $(dynlibname).$(minor_version)
dynlib = $(dynsoname).$(micro_version)
lclibname = libomniLC.so
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
$(lclib): $(LC_OBJS)
(set -x; \
$(RM) $@; \
CC -G -z text -Kthread -KPIC -o $@ -h $(lcsoname) \
$(IMPORT_LIBRARY_FLAGS) $($(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) \
../../orbcore/sharedlib/$(lib) ../../dynamic/sharedlib/$(dynlib); \
)
all:: $(lclib)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
endif
#############################################################################
# Make rules for SGI Irix 6.2 #
#############################################################################
ifdef IRIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -KPIC
ifdef IRIX_n32
ADD_CPPFLAGS = -n32
endif
ifdef IRIX_64
ADD_CPPFLAGS = -64
endif
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
lclibname = libomniLC.so
lcsoname = $(lclibname).$(lc_minor_version)
lclib = $(lcsoname).$(lc_micro_version)
all:: $(lclib)
$(lclib): $(LC_OBJS)
($(RM) $@; \
$(LINK.cc) -KPIC -shared -Wl,-h,$(lclibname) \
-Wl,-set_version,$(lcsoname) -Wl,-rpath,$(LIBDIR) \
-o $@ $(IMPORT_LIBRARY_FLAGS) $^ $(LDLIBS); \
)
clean::
$(RM) $(lclib)
export:: $(lclib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(lcsoname); \
ln -s $(lclib) $(lcsoname); \
$(RM) $(lclibname); \
ln -s $(lcsoname) $(lclibname); \
)
endif
endif
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii; name="omniORB_2.7.1-src-lib-omniORB2-orbcore-gatekeepers-tcpwrapper-sharedlib-dir.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="omniORB_2.7.1-src-lib-omniORB2-orbcore-gatekeepers-tcpwrapper-sharedlib-dir.mk"
#
# Build a shared library in this directory
# **** DO NOT forget to update the $(VERSION) number.
#
# The Version number is constructed as follows:
# <major version no.>.<minor version no.>.<micro version no.>
#
# The <major version no.> is always 2 for omniORB2.
#
# The <minor version no.> changes when:
# 1. Public interfaces have been extended but remains backward compatible
# with earlier minor version.
# 2. Internal interfaces have been changed.
#
# The <micro version no.> changes when the implementation has been changed
# but both the public and internal interfaces remain the same. This usually
# corresponds to a pure bug fix release.
#
#
VERSION = 1.1.0
#
#
#
# For each source tree we want to search the parent directory to get source
# files so we put these on VPATH. However we can't put the parent build
# directory ('..') on VPATH otherwise the .o files in there are used. So we
# need to do that as a special case with the vpath directive:
#
override VPATH := $(patsubst %,%/..,$(VPATH))
vpath %.cc ..
vpath %.c ..
#############################################################################
# Make variables common to all platforms #
#############################################################################
#
# LIBRARY_OPTIONS, enable library features
# For meaning of these options, see the comments in Makefile.orig
LIBRARY_OPTIONS = \
-DLIBC_CALLS_STRTOK \
-DBROKEN_FGETS \
-DHOSTS_DENY=\"/etc/hosts.deny\" \
-DHOSTS_ALLOW=\"/etc/hosts.allow\" \
-DRFC931_TIMEOUT=10
ifndef OSR5
ifndef IRIX
LIBRARY_OPTIONS += -DSOLARIS_24_GETHOSTBYNAME_BUG
endif
endif
ifndef AIX
LIBRARY_OPTIONS += -DGETPEERNAME_BUG
endif
DIR_CPPFLAGS = -DHOSTS_ACCESS $(LIBRARY_OPTIONS) -D_REENTRANT
SRCS = hosts_access.c options.c shell_cmd.c rfc931.c eval.c \
hosts_ctl.c refuse.c percent_x.c clean_exit.c $(AUX_SRCS) \
fix_options.c socket.c workarounds.c \
update.c misc.c diag.c percent_m.c setenv.c fakelog2.c
# update.c misc.c diag.c percent_m.c environ.c fakelog2.c
CXXSRCS = gatekeeper.cc
OBJS = hosts_access.o options.o shell_cmd.o rfc931.o eval.o \
hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJS) \
fix_options.o socket.o workarounds.o \
update.o misc.o diag.o percent_m.o setenv.o fakelog2.o
# update.o misc.o diag.o percent_m.o environ.o fakelog2.o
CXXOBJS = gatekeeper.o
DIR_CPPFLAGS += -I.. $(patsubst %,-I%/.,$(VPATH)) \
-I../../.. $(patsubst %,-I%/../..,$(VPATH))
major_version = $(word 1,$(subst ., ,$(VERSION)))
minor_version = $(word 2,$(subst ., ,$(VERSION)))
micro_version = $(word 3,$(subst ., ,$(VERSION)))
#############################################################################
# Make rules for Solaris 2.x #
#############################################################################
ifdef SunOS
ifeq ($(notdir $(CXX)),CC)
CXXOPTIONS += -Kpic
ifeq ($(notdir $(CC)),gcc)
COPTIONS += -fpic
else
COPTIONS += -Kpic
endif
libname = libtcpwrapGK.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(OBJS) $(CXXOBJS)
(set -x; \
$(RM) $@; \
CC -G -o $@ -h $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB); \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Digital Unix #
#############################################################################
ifdef OSF1
ifeq ($(notdir $(CXX)),cxx)
libname = libtcpwrapGK.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(OBJS) $(CXXOBJS)
(rpath="$(RPATH)"; \
for arg in $(OMNITHREAD_LIB) /usr/lib/cmplrs/cxx; do \
if expr "$$arg" : "-L" >/dev/null; then \
rpath="$$rpath$${rpath+:}`expr $$arg : '-L\(.*\)'"; \
fi; \
done; \set -x; \
$(RM) $@; \
ld -shared -soname $(soname) -set_version $(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
-expect_unresolved '*' \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) -lcxxstd -lcxx -lexc -lots -lc -rpath $$rpath; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Linux egcs #
#############################################################################
ifdef Linux
ifdef EgcsMajorVersion
DIR_CPPFLAGS += -fPIC
libname = libtcpwrapGK.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS) $(CXXOBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -shared -Wl,-soname,$(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for SGI Irix 6.2 #
#############################################################################
ifdef IRIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -KPIC
ifdef IRIX_n32
ADD_CPPFLAGS = -n32
endif
ifdef IRIX_64
ADD_CPPFLAGS = -64
endif
libname = libtcpwrapGK.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS) $(CXXOBJS)
(set -x; \
$(RM) $@; \
$(LINK.cc) -KPIC -shared -Wl,-h,$(libname) -Wl,-set_version,$(soname) \
-Wl,-rpath,$(LIBDIR) -o $@ $(IMPORT_LIBRARY_FLAGS) $^ $(LDLIBS); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
# _CHANGE_ : Adding Rules for HPUX gcc
#############################################################################
# Make rules for HPUX gcc #
#############################################################################
ifdef HPUX
ifeq ($(notdir $(CXX)),g++)
DIR_CPPFLAGS += -fPIC -shared
libname = libtcpwrapGK.sl
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS) $(CXXOBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -shared -Wl-b,+h$(libname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii; name="omniORB_2.7.1-src-lib-omniORB2-orbcore-sharedlib-dir.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="omniORB_2.7.1-src-lib-omniORB2-orbcore-sharedlib-dir.mk"
# dir.mk for omniORB2
#
# Build a shared library in this directory
# **** DO NOT forget to update the $(VERSION) number.
#
# The Version number is constructed as follows:
# <major version no.>.<minor version no.>.<micro version no.>
#
# The <major version no.> is always 2 for omniORB2.
#
# The <minor version no.> changes when:
# 1. Public interfaces have been extended but remains backward compatible
# with earlier minor version.
# 2. Internal interfaces have been changed.
#
# The <micro version no.> changes when the implementation has been changed
# but both the public and internal interfaces remain the same. This usually
# corresponds to a pure bug fix release.
#
#
VERSION = 2.7.1
major_version = $(word 1,$(subst ., ,$(VERSION)))
minor_version = $(word 2,$(subst ., ,$(VERSION)))
micro_version = $(word 3,$(subst ., ,$(VERSION)))
#
# For each source tree we want to search the parent directory to get source
# files so we put these on VPATH. However we can't put the parent build
# directory ('..') on VPATH otherwise the .o files in there are used. So we
# need to do that as a special case with the vpath directive:
#
override VPATH := $(patsubst %,%/..,$(VPATH))
ifndef BuildWin32DebugLibraries
vpath %.cc ..
else
vpath %.cc ../..
endif
#############################################################################
# Make variables for Unix platforms #
#############################################################################
ifdef UnixPlatform
ifdef OMNIORB_CONFIG_DEFAULT_LOCATION
CONFIG_DEFAULT_LOCATION = $(OMNIORB_CONFIG_DEFAULT_LOCATION)
else
CONFIG_DEFAULT_LOCATION = \"/project/omni/var/omniORB_NEW.cfg\"
endif
#CXXDEBUGFLAGS = -g
NETLIBSRCS = relStream.cc tcpSocket.cc tcpSocketMTfactory.cc
NETLIBOBJS = relStream.o tcpSocket.o tcpSocketMTfactory.o
DIR_CPPFLAGS += -DUnixArchitecture
DIR_CPPFLAGS += -DCONFIG_DEFAULT_LOCATION=$(CONFIG_DEFAULT_LOCATION)
endif
#############################################################################
# Make variables for Win32 platforms #
#############################################################################
ifdef Win32Platform
NETLIBSRCS = relStream.cc tcpSocket.cc tcpSocketMTfactory.cc
NETLIBOBJS = relStream.o tcpSocket.o tcpSocketMTfactory.o gatekeeper.o
# See the extra comments on gatekeeper.o at the end of this file
DIR_CPPFLAGS += -DNTArchitecture
ifndef BuildWin32DebugLibraries
# Temporary added micro version number to the name of the dll.
implib = $(patsubst %,$(DLLPattern),omniORB2$(minor_version)$(micro_version))
#implib = $(patsubst %,$(DLLPattern),omniORB2$(minor_version))
staticlib = ../$(patsubst %,$(LibPattern),omniORB2)
CXXOPTIONS = $(MSVC_DLL_CXXNODEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKNODEBUGOPTIONS)
SUBDIRS = debug
else
# Building the debug version of the library in the debug subdirectory.
# Notice that this dir.mk is recursively used in the debug directory to build
# this library. The BuildWin32DebugLibraries make variable is set to 1 in
# the dir.mk generated in the debug directory.
#
# Temporary added micro version number to the name of the dll.
implib = $(patsubst %,$(DLLDebugPattern),omniORB2$(minor_version)$(micro_version))
#implib = $(patsubst %,$(DLLDebugPattern),omniORB2$(minor_version))
staticlib = ../../debug/$(patsubst %,$(LibDebugPattern),omniORB2)
CXXDEBUGFLAGS =
CXXOPTIONS = $(MSVC_DLL_CXXDEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKDEBUGOPTIONS)
tempvar := $(OMNITHREAD_LIB)
OMNITHREAD_LIB = $(patsubst $(DLLNoDebugSearchPattern),$(DLLDebugSearchPattern),$(tempvar))
DIR_CPPFLAGS += -I./../.. -I./../../..
SUBDIRS =
endif
lib = $(patsubst %.lib,%.dll,$(implib))
libname = $(patsubst %.dll,%,$(lib))
# Extra libraries required by NT
NT_EXTRA_LIBS = wsock32.lib advapi32.lib
endif
#############################################################################
# Make variables for ATMos #
#############################################################################
ifdef ATMos
NETLIBSRCS = relStream.cc tcpATMos.cc tcpATMosMTfactory.cc
NETLIBOBJS = relStream.o tcpATMos.o tcpATMosMTfactory.o
DIR_CPPFLAGS = -DATMosArchitecture
endif
#############################################################################
# Make variables common to all platforms #
#############################################################################
ORB2_SRCS = bootstrap_i.cc bootstrapSK.cc \
constants.cc corbaBoa.cc corbaObject.cc corbaOrb.cc \
corbaString.cc \
exception.cc giopClient.cc giopServer.cc initFile.cc ior.cc \
libcWrapper.cc mbufferedStream.cc nbufferedStream.cc \
object.cc objectKey.cc objectRef.cc ropeFactory.cc \
strand.cc scavenger.cc exceptn.cc proxyCall.cc \
$(NETLIBSRCS) $(LOG_SRCS) NamingSK.cc
ORB2_OBJS = bootstrap_i.o bootstrapSK.o \
constants.o corbaBoa.o corbaObject.o corbaOrb.o \
corbaString.o \
exception.o giopClient.o giopServer.o initFile.o ior.o \
libcWrapper.o mbufferedStream.o nbufferedStream.o \
object.o objectRef.o objectKey.o ropeFactory.o \
strand.o scavenger.o exceptn.o proxyCall.o \
$(NETLIBOBJS) $(LOG_OBJS) NamingSK.o
LOG_SRCS = logIOstream.cc
LOG_OBJS = logIOstream.o
DIR_CPPFLAGS += $(patsubst %,-I%/..,$(VPATH))
DIR_CPPFLAGS += $(OMNITHREAD_CPPFLAGS)
DIR_CPPFLAGS += -I./.. -I./../..
DIR_CPPFLAGS += -DUSE_omniORB_logStream
DIR_CPPFLAGS += -D_OMNIORB2_LIBRARY
CXXSRCS = $(ORB2_SRCS) $(LOG_SRCS)
#############################################################################
# Make rules for Solaris 2.x #
#############################################################################
ifdef SunOS
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
CC -G -o $@ -h $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB); \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Linux egcs
#
#############################################################################
ifdef Linux
ifdef EgcsMajorVersion
DIR_CPPFLAGS += -fPIC
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
$(CXX) -shared -Wl,-soname,$(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB); \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Digital Unix #
#############################################################################
ifdef OSF1
ifeq ($(notdir $(CXX)),cxx)
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(ORB2_OBJS)
(rpath="$(RPATH)"; \
for arg in $(OMNITHREAD_LIB) /usr/lib/cmplrs/cxx; do \
if expr "$$arg" : "-L" >/dev/null; then \
rpath="$$rpath$${rpath+:}`expr $$arg : '-L\(.*\)'"; \
fi; \
done; \set -x; \
$(RM) $@; \
ld -shared -soname $(soname) -set_version $(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
-expect_unresolved denyFile__10gateKeeper \
-expect_unresolved allowFile__10gateKeeper \
-expect_unresolved checkConnect__10gateKeeperXP15tcpSocketStrand \
-expect_unresolved version__10gateKeeperXv \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) -lcxxstd -lcxx -lexc -lots -lc -rpath $$rpath; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for IBM AIX #
#############################################################################
ifdef AIX
libname = libomniORB$(major_version)$(minor_version).a
soname = libomniORB$(major_version).so.$(minor_version).$(micro_version)
lib = $(libname).$(micro_version)
# We have a bootstrapping problem with building gatekeepers and this shared
# library. This library is built before gatekeeprs. Until we have
# how to tell the linker it is safe to have some undefined symbols, we
# have to disable the gatekeeper feature.
NETLIBOBJS += gatekeeper.o
all:: $(lib)
ifeq ($(notdir $(CXX)),xlC_r)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
/usr/lpp/xlC/bin/makeC++SharedLib_r \
-o $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
-p 40; \
ar cq $(lib) $(soname); \
$(RM) $(soname); \
)
endif
ifeq ($(notdir $(CXX)),g++)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
$(CXXLINK) -shared -mthreads \
-o $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) ; \
ar cq $(lib) $(soname); \
$(RM) $(soname); \
)
endif
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(libname); \
ln -s $(lib) $(libname); \
)
gatekeeper.o: gatekeepers/dummystub/gatekeeper.cc
$(CXX) -c $(CXXFLAGS) -o$@ $<
endif
#############################################################################
# Make rules for Win32 platforms #
#############################################################################
ifdef Win32Platform
ifndef BuildWin32DebugLibraries
# Prepare a debug directory for building the debug version of the library.
# Essentially, we create a debug directory in the current directory, create
# a dir.mk and optionally a GNUmakefile in that directory and then calling
# omake (GNU make) in that directory.
# The confusing bit is that this dir.mk is recursively used in the debug
# directory to build this library. The BuildWin32DebugLibraries make variable,
# which is set to 1 in the dir.mk generated in the debug directory,
# is used to identify this case.
#
all:: mkdebugdir
mkdebugdir:
@(if [ ! -f debug/dir.mk ]; then \
file=dir.mk; dirs='. $(VPATH:/..=)'; $(FindFileInDirs); \
case "$$fullfile" in /*) ;; *) fullfile=../$$fullfile;; esac; \
dir=debug; $(CreateDir); \
echo 'BuildWin32DebugLibraries = 1' > debug/dir.mk; \
echo 'override VPATH := $$(VPATH:/debug=)' >> debug/dir.mk; \
echo include $$fullfile >> debug/dir.mk; \
if [ -f GNUmakefile ]; then \
echo 'TOP=../../../../../..' > debug/GNUmakefile; \
echo 'CURRENT=src/lib/omniORB2/orbcore/sharedlib/debug' >> debug/GNUmakefile; \
echo 'include $$(TOP)/config/config.mk' >> debug/GNUmakefile; \
fi \
fi \
)
export:: mkdebugdir
endif
all:: $(lib)
all::
@$(MakeSubdirs)
$(lib): $(ORB2_OBJS) omniORB2.def
(libs="$(NT_EXTRA_LIBS) $(OMNITHREAD_LIB)"; \
$(RM) $@; \
$(CXXLINK) -out:$@ -DLL $(CXXLINKOPTIONS) -def:omniORB2.def -IMPLIB:$(implib) $(IMPORT_LIBRARY_FLAGS) $(ORB2_OBJS) $$libs; \
)
# omniORB2.def
# - This file contains all the functions and static class variables
# exported by the DLL. The symbols are extracted from the output of
# dumpbin.
#
# The function symbols are extracted using the following template:
# ... ........ SECT.. notype () External | ?..................
#
# The static class variable symbols are extracted using the following
# template:
# ... ........ SECT.. notype External | ?[^?]..............
#
# Default destructors generated by the compiler are excluded.
#
# It looks like class variable and function symbols start with two ??
# and class static variable and static function symbols start with one ?.
# - SLL
#
omniORB2.def: $(staticlib)
(set -x; \
echo "LIBRARY $(libname)" > omniORB2.def; \
echo "VERSION $(minor_version).$(micro_version)" >> omniORB2.def; \
echo "EXPORTS" >> omniORB2.def; \
DUMPBIN.EXE /SYMBOLS $(staticlib) | \
egrep '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ ]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\
egrep -v 'deleting destructor[^(]+\(unsigned int\)' | \
cut -d'|' -f2 | \
cut -d' ' -f2 | $(SORT) -u >> omniORB2.def; )
clean::
$(RM) *.lib *.def *.dll *.exp
# NT treats DLLs more like executables -- the .dll file needs to go in the
# bin/x86... directory so that it's on your PATH:
export:: $(lib)
@$(ExportExecutable)
export:: $(implib)
@$(ExportLibrary)
export::
@$(MakeSubdirs)
# Ideally, we would like to build the dummy gatekeeper stub just like other
# platforms, i.e. as a separate static library. However, it proves to be quite
# tricky because the omniORB2 DLL needs the symbols provided by gatekeeper.o
# to be resolved when the DLL is build. For the moment, just workaround the
# problem by building the stub directly into the library.
#
gatekeeper.o: gatekeepers/dummystub/gatekeeper.cc
$(CXX) -c $(CXXFLAGS) -Fo$@ $<
endif
#############################################################################
# Make rules for HPUX #
#############################################################################
ifdef HPUX
ifeq ($(notdir $(CXX)),aCC)
DIR_CPPFLAGS += +z
libname = libomniORB$(major_version).sl
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
# For the moment, disable the use of gatekeeper in shared library. Other
# platforms have a bootstrapping problem with building gatekeepers and this
# shared library. This library is built before gatekeepers so the linker
# may complain about undefined symbols when it tries to link the shared
# libaries below. Further testing is needed.
#
NETLIBOBJS += gatekeeper.o
all:: $(lib)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
aCC -b -Wl,+h$(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-L %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
-ldce -lcma ; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
gatekeeper.o: gatekeepers/dummystub/gatekeeper.cc
$(CXX) -c $(CXXFLAGS) -o$@ $<
endif
# _CHANGE_ : Adding gcc compiling rules
#
# GNU Compiling rules
#
ifeq ($(notdir $(CXX)),g++)
DIR_CPPFLAGS += -fPIC -shared
libname = libomniORB.sl
soname = $(libname).$(major_version).$(minor_version)
lib = $(soname).$(micro_version)
# For the moment, disable the use of gatekeeper in shared library. Other
# platforms have a bootstrapping problem with building gatekeepers and this
# shared library. This library is built before gatekeepers so the linker
# may complain about undefined symbols when it tries to link the shared
# libaries below. Further testing is needed.
#
NETLIBOBJS += gatekeeper.o
all:: $(lib)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -fPIC -shared -Wl-b,+h$(libname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
-ldce ; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
gatekeeper.o: gatekeepers/dummystub/gatekeeper.cc
$(CXX) -c $(CXXFLAGS) -o$@ $<
endif
endif
#############################################################################
# Make rules for to Reliant Unix #
#############################################################################
ifdef SINIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
# For the moment, disable the use of gatekeeper in shared library. Other
# platforms have a bootstrapping problem with building gatekeepers and this
# shared library. This library is built before gatekeepers so the linker
# may complain about undefined symbols when it tries to link the shared
# libaries below. Further testing is needed.
#
NETLIBOBJS += gatekeeper.o
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
CC -G -z text -Kthread -KPIC -o $@ -h $(soname) \
$(IMPORT_LIBRARY_FLAGS) $($(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
gatekeeper.o: gatekeepers/dummystub/gatekeeper.cc
$(CXX) -c $(CXXFLAGS) -o$@ $<
endif
endif
#############################################################################
# Make rules for SGI Irix 6.2 #
#############################################################################
ifdef IRIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -KPIC
ifdef IRIX_n32
ADD_CPPFLAGS = -n32
endif
ifdef IRIX_64
ADD_CPPFLAGS = -64
endif
libname = libomniORB$(major_version).so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(ORB2_OBJS)
(set -x; \
$(RM) $@; \
$(LINK.cc) -KPIC -shared -Wl,-h,$(libname) \
-Wl,-set_version,$(soname) -Wl,-rpath,$(LIBDIR) \
-o $@ $(IMPORT_LIBRARY_FLAGS) $^ $(LDLIBS); \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
--------------145B752CA7F
Content-Type: text/plain; charset=us-ascii; name="omniORB_2.7.1-src-lib-omnithread-sharedlib-dir.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="omniORB_2.7.1-src-lib-omnithread-sharedlib-dir.mk"
# dir.mk for omnithread shared library
#
# Build a shared library in this directory
# **** DO NOT forget to update the $(VERSION) number.
#
# The Version number is constructed as follows:
# <major version no.>.<minor version no.>.<micro version no.>
#
# The <minor version no.> changes when:
# 1. Public interfaces have been extended but remains backward compatible
# with earlier minor version.
# 2. Internal interfaces have been changed.
#
# The <micro version no.> changes when the implementation has been changed
# but both the public and internal interfaces remain the same. This usually
# corresponds to a pure bug fix release.
#
#
VERSION = 1.2.0
major_version = $(word 1,$(subst ., ,$(VERSION)))
minor_version = $(word 2,$(subst ., ,$(VERSION)))
micro_version = $(word 3,$(subst ., ,$(VERSION)))
#
# For each source tree we want to search the parent directory to get source
# files so we put these on VPATH. However we can't put the parent build
# directory ('..') on VPATH otherwise the .o files in there are used. So we
# need to do that as a special case with the vpath directive:
#
override VPATH := $(patsubst %,%/..,$(VPATH))
ifndef BuildWin32DebugLibraries
vpath %.cc ..
else
vpath %.cc ../..
endif
ifeq ($(ThreadSystem),Solaris)
CXXSRCS = solaris.cc
OBJS = solaris.o
DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
endif
ifeq ($(ThreadSystem),Posix)
CXXSRCS = posix.cc
OBJS = posix.o
DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS) $(OMNITHREAD_POSIX_CPPFLAGS)
endif
ifeq ($(ThreadSystem),NT)
CXXSRCS = nt.cc
OBJS = nt.o
DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS) -D "_OMNITHREAD_DLL"
endif
ifeq ($(ThreadSystem),Mach)
CXXSRCS = mach.cc
OBJS = mach.o
DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
endif
#############################################################################
# Make variables for Win32 platforms #
#############################################################################
ifdef Win32Platform
ifndef BuildWin32DebugLibraries
implib = $(patsubst %,$(DLLPattern),omnithread$(minor_version))
staticlib = ../$(patsubst %,$(LibPattern),omnithread)
CXXOPTIONS = $(MSVC_DLL_CXXNODEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKNODEBUGOPTIONS)
SUBDIRS = debug
else
# Building the debug version of the library in the debug subdirectory.
# Notice that this dir.mk is recursively used in the debug directory to build
# this library. The BuildWin32DebugLibraries make variable is set to 1 in
# the dir.mk generated in the debug directory.
#
implib = $(patsubst %,$(DLLDebugPattern),omnithread$(minor_version))
staticlib = ../../debug/$(patsubst %,$(LibDebugPattern),omnithread)
CXXDEBUGFLAGS =
CXXOPTIONS = $(MSVC_DLL_CXXDEBUGFLAGS)
CXXLINKOPTIONS = $(MSVC_DLL_CXXLINKDEBUGOPTIONS)
SUBDIRS =
endif
lib = $(patsubst %.lib,%.dll,$(implib))
libname = $(patsubst %.dll,%,$(lib))
endif
#############################################################################
# Make rules for Solaris 2.x #
#############################################################################
ifdef SunOS
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomnithread.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
CC -G -o $@ -h $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) -lpthread -lposix4; \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Digital Unix #
#############################################################################
ifdef OSF1
ifeq ($(notdir $(CXX)),cxx)
libname = libomnithread.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS)
(rpath="$(RPATH)"; \
for arg in $(OMNITHREAD_LIB) /usr/lib/cmplrs/cxx; do \
if expr "$$arg" : "-L" >/dev/null; then \
rpath="$$rpath$${rpath+:}`expr $$arg : '-L\(.*\)'"; \
fi; \
done; \set -x; \
$(RM) $@; \
ld -shared -soname $(soname) -set_version $(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) -lcxxstd -lcxx -lexc -lots -lc -rpath $$rpath; \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for Linux egcs #
#############################################################################
ifdef Linux
ifdef EgcsMajorVersion
DIR_CPPFLAGS += -fPIC
libname = libomnithread.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -shared -Wl,-soname,$(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for IBM AIX #
#############################################################################
ifdef AIX
libname = libomnithread$(minor_version).a
soname = libomnithread.so.$(minor_version).$(micro_version)
lib = $(libname).$(micro_version)
all:: $(lib)
ifeq ($(notdir $(CXX)),xlC_r)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
/usr/lpp/xlC/bin/makeC++SharedLib_r \
-o $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) \
-p 40; \
ar cq $(lib) $(soname) ; \
$(RM) $(soname) ; \
)
endif
ifeq ($(notdir $(CXX)),g++)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
$(CXXLINK) -shared -mthreads \
-o $(soname) $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) \
-lpthreads; \
ar cq $(lib) $(soname); \
$(RM) $(soname); \
)
endif
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(libname); \
ln -s $(lib) $(libname); \
)
endif
#############################################################################
# Make rules for to Win32 platforms #
#############################################################################
ifdef Win32Platform
ifndef BuildWin32DebugLibraries
# Prepare a debug directory for building the debug version of the library.
# Essentially, we create a debug directory in the current directory, create
# a dir.mk and optionally a GNUmakefile in that directory and then calling
# omake (GNU make) in that directory.
# The confusing bit is that this dir.mk is recursively used in the debug
# directory to build this library. The BuildWin32DebugLibraries make variable,
# which is set to 1 in the dir.mk generated in the debug directory,
# is used to identify this case.
#
all:: mkdebugdir
mkdebugdir:
@(if [ ! -f debug/dir.mk ]; then \
file=dir.mk; dirs='. $(VPATH:/..=)'; $(FindFileInDirs); \
case "$$fullfile" in /*) ;; *) fullfile=../$$fullfile;; esac; \
dir=debug; $(CreateDir); \
echo 'BuildWin32DebugLibraries = 1' > debug/dir.mk; \
echo 'override VPATH := $$(VPATH:/debug=)' >> debug/dir.mk; \
echo include $$fullfile >> debug/dir.mk; \
if [ -f GNUmakefile ]; then \
echo 'TOP=../../../../..' > debug/GNUmakefile; \
echo 'CURRENT=src/lib/omnithread/sharedlib/debug' >> debug/GNUmakefile; \
echo 'include $$(TOP)/config/config.mk' >> debug/GNUmakefile; \
fi \
fi \
)
export:: mkdebugdir
endif
all:: $(lib)
all::
@$(MakeSubdirs)
$(lib): $(OBJS)
($(RM) $@; \
$(CXXLINK) -out:$@ -DLL $(CXXLINKOPTIONS) -IMPLIB:$(implib) $(IMPORT_LIBRARY_FLAGS) $(OBJS) $$libs; \
)
clean::
$(RM) *.lib *.def *.dll *.exp
# NT treats DLLs more like executables -- the .dll file needs to go in the
# bin/x86... directory so that it's on your PATH:
export:: $(lib)
@$(ExportExecutable)
export:: $(implib)
@$(ExportLibrary)
export::
@$(MakeSubdirs)
endif
#############################################################################
# Make rules for HPUX #
#############################################################################
ifdef HPUX
ifeq ($(notdir $(CXX)),aCC)
DIR_CPPFLAGS += +z
libname = libomnithread.sl
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
aCC -b -Wl,+h$(soname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(patsubst %,-L %,$(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^) -ldce -lcma ; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
# _CHANGE_ : Adding g++ compiling rules
ifeq ($(notdir $(CXX)),g++)
DIR_CPPFLAGS += -fPIC -shared
libname = libomnithread.sl
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
all:: $(lib)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
$(CXX) $(CXXOPTIONS) -fPIC -shared -Wl-b,+h$(libname) -o $@ $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) -ldce -lcma ; \
)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for to Reliant Unix #
#############################################################################
ifdef SINIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -Kpic
libname = libomnithread.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
CC -G -z text -Kthread -KPIC -o $@ -h $(soname) $(IMPORT_LIBRARY_FLAGS) \
$($(IMPORT_LIBRARY_DIRS)) \
$(filter-out $(LibSuffixPattern),$^); \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
#############################################################################
# Make rules for SGI Irix 6.2 #
#############################################################################
ifdef IRIX
ifeq ($(notdir $(CXX)),CC)
DIR_CPPFLAGS += -KPIC
libname = libomnithread.so
soname = $(libname).$(minor_version)
lib = $(soname).$(micro_version)
$(lib): $(OBJS)
(set -x; \
$(RM) $@; \
$(LINK.cc) -KPIC -shared -Wl,-h,$(libname) -Wl,-set_version,$(soname) \
-o $@ $(IMPORT_LIBRARY_FLAGS) $^; \
)
all:: $(lib)
clean::
$(RM) $(lib)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
endif
endif
--------------145B752CA7F--