# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # # $Id$ # ################################################################### # IMPORTANT NOTE # ################################################################### # Before you try to run the Makefile, make sure you have set # # the following environment variables properly. # # # # export XERCESCROOT= # # # # In case you intend to use either the ICU transcoder or the # # ICU message loader, you must set ICUROOT correctly. # # export ICUROOT= # # # # For netaccessor, if you intend to use libwww, then you must # # also set another environment variable called LIBWWWROOT # # export LIBWWWROOT= # ################################################################### ################################################################### # SPECIAL INSTRUCTIONS FOR OS/390 BATCH MODE # ################################################################### # If you are going to do the OS390BATCH build, make sure you have # # the OS390BATCH environment variable set. # # # # export OS390BATCH=1 # # # # Also, # # # # export LOADMOD=USERID.LOAD # # export LOADEXP=USERID.EXP # # # # to specify your LOADMOD and the definition sidedeck dataset. # ################################################################### ALL: all XML_BUILD_OPTIONS = ${CXXFLAGS} XML_LIB_DIR = $(XERCESCROOT)/lib XML_INC_DIR = $(XERCESCROOT)/include/xercesc XML_OBJ_DIR = ${XERCESCROOT}/obj/${PLATFORM} XML_OBJ_DEPDOM_DIR = ${XERCESCROOT}/obj/${PLATFORM}/depdom XML_OBJ = ${XERCESCROOT}/obj XML_INCL = -I$(XERCESCROOT)/include ifeq (${SYSOVR},OS400) PLATFORM = OS400 endif TO = o RM2 = rm -f MV = mv ## Compiler switch to embed a library name ## default value empty LD_SONAME = LD_SODEPDOM = # Default AR and RANLIB setting if we are building static libraries. # ifeq (${LIBTYPE},static) AR = ar ARFLAGS = -rc RANLIB = ranlib STLIBSUFFIX = .a endif ####################### PLATFORM DEPENDENCIES ##################### #=============== SOLARIS SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, SOLARIS) ifeq (${GXX}, yes) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lm -lgen else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -lm -lgen endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lXercesMessages -lm -lgen endif ## Compiler switch to embed a library name LD_SONAME = -Wl,-h,${SO_NAME} LD_SODEPDOM = -Wl,-h,${SO_DEPDOM} else PLATFORM_COMPILE_OPTIONS = -xs -ptr$(XML_OBJ_DIR) -features=rtti \ -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -mt -D_REENTRANT ALLLIBS = -mt endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -KPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -G -ptr$(XML_OBJ_DIR) ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS += ${LIBS} -licuuc -licudata else ALLLIBS += ${LIBS} endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS += ${LIBS} -licuuc -licudata -lXercesMessages endif ## Compiler switch to embed a library name LD_SONAME = -h ${SO_NAME} LD_SODEPDOM = -h ${SO_DEPDOM} endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #=============== UNIXWARE SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, UNIXWARE) ifeq (${GXX}, yes) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lm -lw -lgen else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -lm -lw -lgen endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lXercesMessages -lm -lw -lgen endif else PLATFORM_COMPILE_OPTIONS = -xs -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -mt -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -KPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lm -lw -lC -lc -lgen else ALLLIBS = ${LIBS} -L/usr/local/lib -L/usr/ccs/lib \ -lm -lw -lC -lc -lgen endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lXercesMessages -lm -lw -lC -lc -lgen endif endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #=============== OPENSERVER SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, OPENSERVER) ifeq (${GXX}, yes) COMMON_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) COMMON_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS} EXTRA_LINK_OPTIONS = -Wl,-h,${LIBNAME}${VER}${SHLIBSUFFIX} DEPDOM_LINK_OPTIONS = -Wl,-h,${LIBDEPDOM}${VER}${SHLIBSUFFIX} endif else PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -belf ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -KPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -belf -G ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -belf -G ${LDFLAGS} endif endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata else ALLLIBS = ${LIBS} endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #================= PTX SPECIFIC OPTIONS =========================== ifeq (${PLATFORM}, PTX) PLATFORM_CPP_COMPILER = c++ PLATFORM_C_COMPILER = cc PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -Kthread endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L${ICUROOT}/lib -lm -lgen -licuuc else ALLLIBS = ${LIBS} -lm -lgen endif OBJ_OUT=${ALL_OBJECTS_DIR}/ ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -KPIC MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -G ${LDFLAGS} MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -G ${LDFLAGS} EXTRA_LINK_OPTIONS = -lm -lgen DEPDOM_LINK_OPTIONS = -lm -lgen endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #================= AIX SPECIFIC OPTIONS =========================== ifeq (${PLATFORM}, AIX) ifeq (${GXX}, yes) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib \ -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib \ -licuuc -licudata -lXercesMessages endif else ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata -lXercesMessages endif ifeq (${CXXVER}, v5compat) PLATFORM_COMPILE_OPTIONS = -qnotempinc -qnamemangling=v5 else PLATFORM_COMPILE_OPTIONS = -qnotempinc -qnamemangling=ansi endif ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_THREAD_SAFE endif ifeq (${LIBTYPE},shared) ifeq (${BITSTOBUILD}, 64) MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS} -X64 MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS} -X64 else MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS} MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS} endif EXTRA_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map DEPDOM_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBDEPDOM}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map endif endif SHLIBSUFFIX=.a ICUSHLIBSUFFIX=.a ## Compiler switch to embed a library name LD_SONAME = LD_SODEPDOM = ifeq (${LIBTYPE},static) ifeq (${BITSTOBUILD}, 64) ARFLAGS += -X64 endif endif endif #================= OS400 SPECIFIC OPTIONS ========================== ifeq (${PLATFORM}, OS400) ifeq (${SYSOVR},OS400) MYCC = /afs/rchland.ibm.com/usr2/phkramer/bin/tvcc.pl else MYCC = icc endif CXX = $(MYCC) CC = $(MYCC) JUSTCC = $(MYCC) XML_INCL += -I${ICUROOT}/include ifeq (${SYSOVR},OS400) PLATFORM_COMPILE_OPTIONS = -qnotempinc ifeq (${LIBTYPE},shared) MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS} MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS} endif TO = qwobj SHLIBSUFFIX=.a ICUSHLIBSUFFIX=.a else PLATFORM_COMPILE_OPTIONS = -qnotempinc -D${PLATFORM} PLATFORM_C_COMPILE_OPTIONS = -v -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_MULTI_THREADED PLATFORM_C_COMPILE_OPTIONS += -D_MULTI_THREADED endif ifeq (${LIBTYPE},shared) MAKE_SHARED = ld -v ${LDFLAGS} MAKE_SHARED_C = ld -v ${LDFLAGS} endif SHLIBSUFFIX=.o ICUSHLIBSUFFIX=.o endif ifeq (${TRANSCODER}, ICU) ifeq (${SYSOVR},OS400) EXTRA_LINK_OPTIONS = -licuuc -licudata -lbsd DEPDOM_LINK_OPTIONS = -licuuc -licudata -lbsd else EXTRA_LINK_OPTIONS = -lQZUUC DEPDOM_LINK_OPTIONS = -lQZUUC endif endif EXTRA_COMPILE_OPTIONS = -I. -g EXTRA_LINK_OPTIONS = -q OPTION='*DUPVAR *DUPPROC' DEPDOM_LINK_OPTIONS = -q OPTION='*DUPVAR *DUPPROC' RM2 = -del MV = mv endif #=============== BEOS SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, BEOS) ifneq (${THREADS},none) $(error Xerces-C++ on BE OS can only be built as a single-threaded library) endif PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -DAPP_NO_THREADS ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -nostart -fPIC ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -nostart -fPIC ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe -licuuc -licudata else ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe endif EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map DEPDOM_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_DEPDOM}.map SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} endif #=============== INTERIX SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, INTERIX) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -D_ALL_SOURCE ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} endif ALLLIBS = ${LIBS} SHLIBSUFFIX=.so endif #=============== MINGW SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, MINGW) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -fexceptions -D__GNUWIN32__ -DWIN32 -D_WINDOWS -DNDEBUG -DPLATFORM_WIN32 ifeq (${LIBTYPE},shared) MAKE_SHARED = dllwrap --export-all-symbols --driver-name ${CXX} ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} ${LDFLAGS} else PLATFORM_COMPILE_OPTIONS += -DXML_LIBRARY # switch off import/export endif ALLLIBS = ${LIBS} SHLIBSUFFIX=.dll endif #=============== LINUX SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, LINUX) ifneq ($(filter xlC%,${CXX}),) PLATFORM_COMPILE_OPTIONS = -qnotempinc -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -qpic MAKE_SHARED = ${CXX} -D${PLATFORM} -qpic -qmkshrobj -G ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -qpic -qmkshrobj -G ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages endif ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} else #non xlC_r # PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS} endif ifeq (${BITSTOBUILD}, 64) ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib64 -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib64 -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib64 -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lXercesMessages endif else ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lXercesMessages endif endif EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map DEPDOM_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_DEPDOM}.map ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #=============== QNX SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, QNX) ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS = -shared MAKE_SHARED = ${CXX} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -licudata else ALLLIBS = ${LIBS} endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -licudata -lXercesMessages endif EXTRA_LINK_OPTIONS = DEPDOM_LINK_OPTIONS = SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} endif #=============== FREEBSD SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, FREEBSD) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) PLATFORM_COMPILE_OPTIONS += -I/usr/local/include ALLLIBS = ${LIBS} -L/usr/local/lib -L${ICUROOT} -licuuc -licudata -lgcc else ALLLIBS = ${LIBS} endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} endif #=============== NETBSD SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, NETBSD) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) PLATFORM_COMPILE_OPTIONS += -I/usr/local/include ALLLIBS = ${LIBS} -L/usr/local/lib -L${ICUROOT} -licuuc -licudata -lgcc else ALLLIBS = ${LIBS} endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname,${SO_NAME} LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM} endif #=============== IRIX SPECIFIC OPTIONS ============================ ifeq (${PLATFORM}, IRIX) PLATFORM_COMPILE_OPTIONS = -LANG:pch -LANG:std -O2 \ -D${PLATFORM} -no_auto_include \ -I/usr/local/include ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -lC -licuuc -licudata else ALLLIBS = ${LIBS} -lC endif SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so endif #=============== OS2 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, OS/2) PLATFORM_LIBRARIES= CPPOM30.LIB os2386.lib mmpm2.lib PLATFORM_COMPILE_OPTIONS = /C+ /Gd- /Ge- /Gm+ /Gs- /Re /J+ /Ms /Sm /Sn /Ss+ MAKE_SHARED = ilink /nofree ${LDFLAGS} MAKE_SHARED_C = ilink /nofree ${LDFLAGS} EXTRA_LINK_OPTIONS = /map /nod /noe /noi /packcode /packdata /exepack /align:4 DEPDOM_LINK_OPTIONS = /map /nod /noe /noi /packcode /packdata /exepack /align:4 SHLIBSUFFIX= .dll ICUSHLIBSUFFIX= .dll ifneq (${DEBUG}, 1) XML_BUILD_OPTIONS += -2 endif endif #================= HP SPECIFIC OPTIONS =========================== ifeq (${PLATFORM}, HPUX) OSVERDEFINE=HPUX11 ifeq (${OSVER}, HPUX10) OSVERDEFINE=HPUX10 endif ifeq (${GXX}, yes) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED = ${CXX} -D${PLATFORM} -fPIC -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -fPIC -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib \ -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib \ -licuuc -licudata -lXercesMessages endif else ifeq (${CXX}, aCC) ifeq (${CXXVER}, aCC05) PLATFORM_COMPILE_OPTIONS = -D_HP_UX -DHPaCC -D${OSVERDEFINE} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -mt endif else PLATFORM_COMPILE_OPTIONS = -D_HP_UX -DHPaCC -D${OSVERDEFINE} +DAportable endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += +Z MAKE_SHARED = ${CXX} ${PLATFORM_COMPILE_OPTIONS} -D${PLATFORM} ${LDFLAGS} MAKE_SHARED_C = ${CC} ${PLATFORM_COMPILE_OPTIONS} -D${PLATFORM} ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata else ALLLIBS = ${LIBS} endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages endif ifeq (${CXXVER}, aCC05) EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. DEPDOM_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. ifneq (${THREADS},none) EXTRA_LINK_OPTIONS += -mt DEPDOM_LINK_OPTIONS += -mt endif else EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. DEPDOM_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. endif else TEMPLATESREPOSITORY = ${XML_OBJ_DIR}/ptrepository COMMON_COMPILE_OPTIONS = -D_HP_UX -DXERCES_TMPLSINC \ -D${OSVERDEFINE} +DAportable +eh -Z +a1 +d ifeq ($(MODULE), dom) PLATFORM_COMPILE_OPTIONS = -DDOM_PROJ $(COMMON_COMPILE_OPTIONS) else PLATFORM_COMPILE_OPTIONS = $(COMMON_COMPILE_OPTIONS) -ptr${TEMPLATESREPOSITORY} endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += +Z MAKE_SHARED = $(CXX) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS} MAKE_SHARED_C = $(CC) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata else ALLLIBS = ${LIBS} endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages endif EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. -Wl,-a,shared DEPDOM_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. -Wl,-a,shared endif endif # GXX # HP-UX on IA64 uses .so and on PA-RISC -- .sl. # ifeq (${ARCH},ia64) SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so else SHLIBSUFFIX=.sl ICUSHLIBSUFFIX=.sl endif ## Compiler switch to embed a library name LD_SONAME = -Wl,+h,${SO_NAME} LD_SODEPDOM = -Wl,+h,${SO_DEPDOM} endif #================ OS/390 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, OS390) PLATFORM_CPP_COMPILER = _CXX_CXXSUFFIX="cpp" c++ PLATFORM_C_COMPILER = _CXX_CXXSUFFIX="cpp" cc PLATFORM_LIBRARIES= ## OS390BATCH ifeq (${OS390BATCH},1) PLATFORM_COMPILE_OPTIONS = -2 -Wc,dll -W0,"langlvl(extended)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -D_XOPEN_SOURCE_EXTENDED -DXML_ALLOW_NELWS -I${ICUROOT}/include -DOS390BATCH else PLATFORM_COMPILE_OPTIONS = -2 -Wc,dll -W0,"langlvl(extended)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -D_XOPEN_SOURCE_EXTENDED -DXML_ALLOW_NELWS -I${ICUROOT}/include endif MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -W l,dll ${LDFLAGS} MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -W l,dll ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ## OS390BATCH ifeq (${OS390BATCH},1) ALLLIBS = "//'${LOADEXP}(IXMI32UC)'" else ALLLIBS = ${ICUROOT}/lib/libicuuc32.0.x endif else ifeq (${TRANSCODER}, Uniconv390) ## OS390BATCH ifeq (${OS390BATCH},1) ALLLIBS = "//'${LOADEXP}(IXMI32UC)'" else ALLLIBS = ${ICUROOT}/lib/libicuuc32.0.x endif else ALLLIBS = endif endif EXTRA_LINK_OPTIONS = DEPDOM_LINK_OPTIONS = SHLIBSUFFIX=.dll ICUSHLIBSUFFIX=.dll OS390SIDEDECK=.x endif #=============== TRU64 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, TRU64) SHLIBSUFFIX=.so ICUSHLIBSUFFIX=.so ifeq (${GXX}, yes) PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) PLATFORM_COMPILE_OPTIONS += -fPIC MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lrt else ALLLIBS = ${LIBS} -lrt endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages -lrt endif else PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -ptr ${XERCESCROOT}/.cxx_repository ifeq (${LIBTYPE},shared) MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -ptr ${XERCESCROOT}/.cxx_repository ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lc -lrt else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc -lrt endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lXercesMessages -lc -lrt endif endif endif #=============== MacOS SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, MACOSX) PLATFORM_LIBRARIES = -framework CoreServices PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} ifneq (${THREADS},none) PLATFORM_COMPILE_OPTIONS += -D_REENTRANT endif ifeq (${LIBTYPE},shared) MAKE_SHARED = ${CXX} -D${PLATFORM} -dynamiclib ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -dynamiclib ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib \ -licuuc -licudata -lXercesMessages endif SHLIBSUFFIX=.dylib ICUSHLIBSUFFIX=.dylib LD_SONAME = -install_name ${PREFIX}/lib/${SO_NAME} LD_SODEPDOM = -install_name ${PREFIX}/lib/${SO_DEPDOM} endif #=============== CygWin SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, CYGWIN) PLATFORM_COMPILE_OPTIONS = \ -D__${PLATFORM}__ \ -I/usr/include \ -I/usr/include/w32api ifeq (${LIBTYPE},shared) MAKE_SHARED = ${CXX} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -shared ${LDFLAGS} endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lib endif ifeq (${MESSAGELOADER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages endif EXTRA_LINK_OPTIONS = \ -Xlinker --warn-once \ -Xlinker -Map \ -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.map \ -Xlinker --output-def \ -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.def \ -Xlinker --out-implib \ -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.dll.a DEPDOM_LINK_OPTIONS = \ -Xlinker --warn-once \ -Xlinker -Map \ -Xlinker $(XML_LIB_DIR)/${LIBDEPDOM}${SO_TARGET_VERSION}.map \ -Xlinker --output-def \ -Xlinker $(XML_LIB_DIR)/${LIBDEPDOM}${SO_TARGET_VERSION}.def \ -Xlinker --out-implib \ -Xlinker $(XML_LIB_DIR)/${LIBDEPDOM}${SO_TARGET_VERSION}.dll.a SHLIBSUFFIX=.dll ICUSHLIBSUFFIX=.dll endif ###################### LIBNAME #################################### # # ifneq (${PLATFORM}, OS400) ifeq (${PLATFORM}, CYGWIN) CYGNAME=cygxerces-c CYGDEPDOM=cygxerces-depdom endif LIBNAME=libxerces-c LINK_LIBNAME=xerces-c LIBDEPDOM=libxerces-depdom else LIBNAME=libxercesc LINK_LIBNAME=xercesc LIBDEPDOM=libxercesdepdom endif ###################### A_NAME #################################### # # ifeq (${LIBTYPE},static) A_NAME = ${LIBNAME}${STLIBSUFFIX} A_DEPDOM = ${LIBDEPDOM}${STLIBSUFFIX} FQ_A_NAME = ${XML_LIB_DIR}/${A_NAME} FQ_A_DEPDOM = ${XML_LIB_DIR}/$(A_DEPDOM) RESLIB_REAL_NAME = ${RESLIBNAME}${STLIBSUFFIX} FQ_RESLIB_REAL_NAME=${XML_LIB_DIR}/${RESLIB_REAL_NAME} else # dynamic ###################### SO_NAME #################################### # # ifeq (${PLATFORM}, AIX) # # LINK_NAME=libxerces-c.so # SO_NAME =libxerces-c20.so # REAL_NAME=libxerces-c20.0.so # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_NAME=${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_DEPDOM=${LIBDEPDOM}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX} RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX} RESLIB_SO_NAME =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} RESLIB_REAL_NAME=${RESLIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX} endif ifeq (${PLATFORM}, OS390) # # LINK_NAME=libxerces-c.dll # SO_NAME =libxerces-c20.dll # REAL_NAME=libxerces-c2_0_0.dll # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_DEPDOM=${LIBDEPDOM}${VER}${SHLIBSUFFIX} RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX} RESLIB_SO_NAME =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} RESLIB_REAL_NAME=${RESLIBNAME}${VER}${SHLIBSUFFIX} endif ifeq (${PLATFORM}, CYGWIN) # # LINK_NAME=libxerces-c.dll # SO_NAME =cygxerces-c20.dll # REAL_NAME=libxerces-c2_0_0.dll # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${CYGNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${CYGDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_DEPDOM=${LIBDEPDOM}${VER}${SHLIBSUFFIX} endif ifeq (${PLATFORM}, MINGW) # # LINK_NAME=libxerces-c.dll # SO_NAME =libxerces-c20.dll # REAL_NAME=libxerces-c2_0_0.dll # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_DEPDOM=${LIBDEPDOM}${VER}${SHLIBSUFFIX} endif ifeq (${PLATFORM}, MACOSX) # # LINK_NAME=libxerces-c.{suffix} # SO_NAME =libxerces-c.20.{suffix} # REAL_NAME=libxerces-c.20.0.{suffix} # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}.${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_NAME=${LIBNAME}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}.${SO_TARGET_VERSION}${SHLIBSUFFIX} REAL_DEPDOM=${LIBDEPDOM}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX} endif ifeq (${PLATFORM}, QNX) # # LINK_NAME=libxerces-c.{suffix} # SO_NAME =libxerces-c.20.{suffix} # REAL_NAME=libxerces-c.20.{suffix} # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION} REAL_NAME=$(SO_NAME) LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}${SHLIBSUFFIX}.${SO_TARGET_VERSION} REAL_DEPDOM=$(SO_DEPDOM) endif # Default naming (if no special cases above) ifeq ($(SO_NAME),) # # LINK_NAME=libxerces-c.so # SO_NAME =libxerces-c.so.20 # REAL_NAME=libxerces-c.so.20.0 # LINK_NAME=${LIBNAME}${SHLIBSUFFIX} SO_NAME =${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION} REAL_NAME=${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR} LINK_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX} SO_DEPDOM =${LIBDEPDOM}${SHLIBSUFFIX}.${SO_TARGET_VERSION} REAL_DEPDOM=${LIBDEPDOM}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR} RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX} RESLIB_SO_NAME =${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION} RESLIB_REAL_NAME=${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR} endif FQ_LINK_NAME=${XML_LIB_DIR}/${LINK_NAME} FQ_SO_NAME =${XML_LIB_DIR}/${SO_NAME} FQ_REAL_NAME=${XML_LIB_DIR}/${REAL_NAME} FQ_LINK_DEPDOM=${XML_LIB_DIR}/${LINK_DEPDOM} FQ_SO_DEPDOM =${XML_LIB_DIR}/${SO_DEPDOM} FQ_REAL_DEPDOM=${XML_LIB_DIR}/${REAL_DEPDOM} FQ_RESLIB_LINK_NAME=${XML_LIB_DIR}/${RESLIB_LINK_NAME} FQ_RESLIB_SO_NAME =${XML_LIB_DIR}/${RESLIB_SO_NAME} FQ_RESLIB_REAL_NAME=${XML_LIB_DIR}/${RESLIB_REAL_NAME} endif # dynamic ###################### STANDARD TOOLS ############################# ifeq (${PLATFORM}, OS400) CP = -cp -fph else CP = -cp -fp endif ifeq (${PLATFORM}, FREEBSD) CP = -cp -p endif RM = -rm -f CAT = cat CD = cd CC1 = ${CXX} ${PLATFORM_COMPILE_OPTIONS} JUST_CC = ${CC} -D${PLATFORM} ECHO = echo CREATE_DEPENDS_FILE = echo "" > depends MAKE_DEPEND = ${CC1} -E -xM ##################### HELPER MACROS ############################### DEPFILE = depends LINKLIB = $(XML_LIB_DIR) ######################### SUFFIX RULES ############################ .SUFFIXES: .SUFFIXES: .cpp .c .$(TO) .s # Tell make where the object files are for proper resolution of suffix rules vpath %.$(TO) $(XML_OBJ_DIR) .cpp.$(TO): ifndef VERBOSE $Qecho " (C++) $@" else $Qecho "$(CC1) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<)" endif $Q$(CC1) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<) .c.$(TO): $(JUST_CC) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<) .C.$(TO): $(JUST_CC) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<) .s.$(TO): $(JUST_CC) -c -o $(XML_OBJ_DIR)/$(@) $(<)