# # The Apache Software License, Version 1.1 # # Copyright (c) 1999-2000 The Apache Software Foundation. All rights # reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # # 3. The end-user documentation included with the redistribution, # if any, must include the following acknowledgment: # "This product includes software developed by the # Apache Software Foundation (http://www.apache.org/)." # Alternately, this acknowledgment may appear in the software itself, # if and wherever such third-party acknowledgments normally appear. # # 4. The names "Xerces" and "Apache Software Foundation" must # not be used to endorse or promote products derived from this # software without prior written permission. For written # permission, please contact apache\@apache.org. # # 5. Products derived from this software may not be called "Apache", # nor may "Apache" appear in their name, without prior written # permission of the Apache Software Foundation. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # ==================================================================== # # This software consists of voluntary contributions made by many # individuals on behalf of the Apache Software Foundation, and was # originally based on software copyright (c) 1999, International # Business Machines, Inc., http://www.ibm.com . For more information # on the Apache Software Foundation, please see # . # # # $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 XML_OBJ_DIR = ${XERCESCROOT}/obj/${PLATFORM} XML_OBJ = ${XERCESCROOT}/obj XML_INCL = -I$(XML_INC_DIR) ifeq (${SYSOVR},OS400) PLATFORM = OS400 endif TO = o RM2 = rm -f ####################### PLATFORM DEPENDENCIES ##################### #=============== SOLARIS SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, SOLARIS) ifeq (${CXX}, g++) PLATFORM_COMPILE_OPTIONS = -fPIC -instances=static -D${PLATFORM} -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} 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 else PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs -ptr$(XML_OBJ_DIR) \ -features=rtti -D${PLATFORM} -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -G -ptr$(XML_OBJ_DIR) ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = -mt -licuuc -licudata ${LIBS} else ALLLIBS = -mt ${LIBS} endif endif SHLIBSUFFIX=.so endif #=============== UNIXWARE SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, UNIXWARE) ifeq (${CXX}, g++) PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} 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 else PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs -instances=static \ -D${PLATFORM} -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS} 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 endif SHLIBSUFFIX=.so endif #================= PTX SPECIFIC OPTIONS =========================== ifeq (${PLATFORM}, PTX) PLATFORM_CPP_COMPILER = c++ PLATFORM_C_COMPILER = cc ifeq (${TRANSCODER}, ICU) PLATFORM_COMPILE_OPTIONS = -KPIC -Kthread -D${PLATFORM} ALLLIBS = ${LIBS} -L${ICUROOT}/lib -lm -lgen -licuuc else PLATFORM_COMPILE_OPTIONS = -KPIC -Kthread -D${PLATFORM} ALLLIBS = ${LIBS} -lm -lgen endif OBJ_OUT=${ALL_OBJECTS_DIR}/ MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -G ${LDFLAGS} MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -G ${LDFLAGS} EXTRA_LINK_OPTIONS = -lm -lgen SHLIBSUFFIX=.so endif #================= AIX SPECIFIC OPTIONS =========================== ifeq (${PLATFORM}, AIX) #PLATFORM_CPP_COMPILER = xlC_r #PLATFORM_C_COMPILER = xlc_r #ifdef ICUROOT # ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -L${ICUROOT}/lib -licuuc -licudata -lbsd #else # ALLLIBS = -L/usr/lpp/xlC/lib -lbsd #endif ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata else ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib endif PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS} MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS} SHLIBSUFFIX=.a 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 MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS} MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS} TO = qwobj SHLIBSUFFIX=.a else PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_MULTI_THREADED -D${PLATFORM} PLATFORM_C_COMPILE_OPTIONS = -v -D_MULTI_THREADED -D${PLATFORM} MAKE_SHARED = ld -v ${LDFLAGS} MAKE_SHARED_C = ld -v ${LDFLAGS} SHLIBSUFFIX=.o endif ifeq (${TRANSCODER}, ICU) ifeq (${SYSOVR},OS400) EXTRA_LINK_OPTIONS = -licuuc -licudata -lbsd else EXTRA_LINK_OPTIONS = -lQZUUC endif endif EXTRA_COMPILE_OPTIONS = -I. -g EXTRA_LINK_OPTIONS = -q OPTION='*DUPVAR *DUPPROC' RM2 = -del endif #=============== LINUX SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, LINUX) PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lc else ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc endif SHLIBSUFFIX=.so endif #=============== IRIX SPECIFIC OPTIONS ============================ ifeq (${PLATFORM}, IRIX) PLATFORM_COMPILE_OPTIONS = -LANG:pch -LANG:std -O2 \ -D${PLATFORM} -D_REENTRANT \ -I/usr/local/include MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -lC -licuuc -licudata else ALLLIBS = ${LIBS} -lC endif SHLIBSUFFIX=.so endif #=============== OS2 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, OS/2) #PLATFORM_CPP_COMPILER = icc #PLATFORM_C_COMPILER = icc 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 SHLIBSUFFIX= .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 (${CXX}, aCC) PLATFORM_COMPILE_OPTIONS = -D_HP_UX -DHPaCC \ -D${OSVERDEFINE} +DAportable +Z MAKE_SHARED = ${CXX} -D${PLATFORM} -b ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -b ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lCsup -lstream else ALLLIBS = ${LIBS} -lCsup -lstream endif SHLIBSUFFIX=.sl else TEMPLATESREPOSITORY = ${XML_OBJ_DIR}/ptrepository COMMON_COMPILE_OPTIONS = -D_HP_UX -DXERCES_TMPLSINC \ -D${OSVERDEFINE} +DAportable +eh +z -z +a1 +d ifeq ($(MODULE), dom) PLATFORM_COMPILE_OPTIONS = -DDOM_PROJ $(COMMON_COMPILE_OPTIONS) else PLATFORM_COMPILE_OPTIONS = $(COMMON_COMPILE_OPTIONS) -ptr${TEMPLATESREPOSITORY} endif MAKE_SHARED = $(CXX) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS} MAKE_SHARED_C = $(CC) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata else ALLLIBS = ${LIBS} endif EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,-a,shared SHLIBSUFFIX=.sl endif endif #================ OS/390 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, OS390) PLATFORM_CPP_COMPILER = _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" c++ PLATFORM_C_COMPILER = _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" cc PLATFORM_LIBRARIES= ## OS390BATCH ifeq (${OS390BATCH},1) PLATFORM_COMPILE_OPTIONS =-Wc,dll -W0,"langlvl(extended)" -D${PLATFORM} -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DOS390BATCH else PLATFORM_COMPILE_OPTIONS =-Wc,dll -W0,"langlvl(extended)" -D${PLATFORM} -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED 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}(IXMICUUC)'" else ALLLIBS = ${ICUROOT}/lib/libicuuc.x endif else ALLLIBS = endif EXTRA_LINK_OPTIONS = SHLIBSUFFIX=.dll OS390SIDEDECK=.x endif #=============== TRU64 SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, TRU64) SHLIBSUFFIX=.so MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS} ifeq (${CXX}, g++) MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS} PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -licuuc -licudata -lc -lrt else ALLLIBS = ${LIBS} -lc -lrt endif else MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -ptr ${XERCESCROOT}/.cxx_repository ${LDFLAGS} PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -ptr ${XERCESCROOT}/.cxx_repository 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 endif endif #=============== MacOS SPECIFIC OPTIONS ========================= ifeq (${PLATFORM}, MACOSX) PLATFORM_LIBRARIES = \ -framework Carbon \ -framework CoreFoundation \ -framework CoreServices PLATFORM_COMPILE_OPTIONS = \ -D${PLATFORM} \ -D_REENTRANT MAKE_SHARED = ${CXX} -D${PLATFORM} -dynamiclib ${LDFLAGS} MAKE_SHARED_C = ${CC} -D${PLATFORM} -dynamiclib ${LDFLAGS} ifeq (${TRANSCODER}, ICU) ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licu-uc -licud ata -lc else ALLLIBS = ${LIBS} -L/usr/lib endif SHLIBSUFFIX=.dylib endif ###################### STANDARD TOOLS ############################# ifeq (${PLATFORM}, OS400) CP = -cp -fph else CP = -cp -fp endif RM = -rm -f CAT = cat AR = ar -cqv 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) # Tell make where the object files are for proper resolution of suffix rules vpath %.$(TO) $(XML_OBJ_DIR) .cpp.$(TO): $(CC1) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<) .c.$(TO): $(JUST_CC) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<) .C.$(TO): $(JUST_CC) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<)