blob: 2bc2320157cb50253321aaad3eb05cfffb98e382 [file] [log] [blame]
#
# 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
# <http://www.apache.org/>.
#
#
# $Id$
#
###################################################################
# IMPORTANT NOTE #
###################################################################
# Before you try to run the Makefile, make sure you have set #
# the following environment variables properly. #
# #
# export XERCESCROOT=<the directory where you installed XRECES-C> #
# #
# In case you intend to use either the ICU transcoder or the #
# ICU message loader, you must set ICUROOT correctly. #
# export ICUROOT=<the directory where you installed ICU> #
# #
# For netaccessor, if you intend to use libwww, then you must #
# also set another environment variable called LIBWWWROOT #
# export LIBWWWROOT=<the directory where you installed libwww> #
###################################################################
###################################################################
# 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)/$(@) $(<)