#
# The Apache Software License, Version 1.1
#
# Copyright (c) 1999-2001 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: Makefile.incl,v 1.34 2003/02/06 16:00:29 tng Exp $
#

###################################################################
#                    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/xercesc
XML_OBJ_DIR = ${XERCESCROOT}/obj/${PLATFORM}
XML_OBJ        = ${XERCESCROOT}/obj
XML_INCL = -I$(XERCESCROOT)/include
ifeq (${SYSOVR},OS400)
PLATFORM = OS400
endif
TO = o
RM2 = rm -f
## Compiler switch to embed a library name
## default value empty
LD_SONAME =

####################### PLATFORM DEPENDENCIES #####################

#=============== SOLARIS SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, SOLARIS)
  ifeq (${GXX}, yes)
    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 -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 -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

    ifeq (${MESSAGELOADER}, ICU)
        ALLLIBS = -mt -licuuc -licudata ${LIBS}
    endif

  endif
  SHLIBSUFFIX=.so
  ## Compiler switch to embed a library name
  LD_SONAME = -h ${SO_NAME}
endif

#=============== UNIXWARE SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, UNIXWARE)
  ifeq (${GXX}, yes)
    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 \
                               -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

#=============== OPENSERVER SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, OPENSERVER)
  ifeq (${GXX}, yes)
    COMMON_COMPILE_OPTIONS = -D${PLATFORM} -fPIC
    ifeq (${THREADS}, none)
      PLATFORM_COMPILE_OPTIONS = ${COMMON_COMPILE_OPTIONS}
    else
      PLATFORM_COMPILE_OPTIONS = ${COMMON_COMPILE_OPTIONS} -D_REENTRANT
    endif
    MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS}
    MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS}
    EXTRA_LINK_OPTIONS = -Wl,-h,${LIBNAME}${VER}${SHLIBSUFFIX}
  else
    PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -belf -KPIC
    MAKE_SHARED = ${CXX} -D${PLATFORM} -belf -G ${LDFLAGS}
    MAKE_SHARED_C = ${CC} -D${PLATFORM} -belf -G ${LDFLAGS}
  endif
  ifeq (${TRANSCODER}, ICU)
    ALLLIBS = ${LIBS} -licu-uc -licudata
  else
    ALLLIBS = ${LIBS}
  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

ifeq (${MESSAGELOADER}, ICU)
    ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc -licudata
endif

PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE

ifeq (${BITSTOBUILD}, 64)
    MAKE_SHARED = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS} -X64
    MAKE_SHARED_C = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS} -X64
else
    MAKE_SHARED = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS}
    MAKE_SHARED_C = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS}
endif

EXTRA_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map
SHLIBSUFFIX=.so
## Compiler switch to embed a library name
LD_SONAME =

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

#=============== BEOS SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, BEOS)
PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -DAPP_NO_THREADS
MAKE_SHARED = ${CXX} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
MAKE_SHARED_C = ${CC} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
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
SHLIBSUFFIX=.so
## Compiler switch to embed a library name
LD_SONAME = -Wl,-soname,${SO_NAME}
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
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
endif

EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map
SHLIBSUFFIX=.so
## Compiler switch to embed a library name
LD_SONAME = -Wl,-soname,${SO_NAME}
endif

#=============== FREEBSD SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, FREEBSD)
MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
ifeq (${TRANSCODER}, ICU)
    PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -I/usr/local/include
    ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -L${ICUROOT} -licudata -lgcc
else
    PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM}
    ALLLIBS = ${LIBS}
endif
SHLIBSUFFIX=.so
## Compiler switch to embed a library name
LD_SONAME = -Wl,-soname,${SO_NAME}
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} ${LDFLAGS}
    MAKE_SHARED_C = ${CC} -D${PLATFORM} ${LDFLAGS}
    ifeq (${TRANSCODER}, ICU)
        ALLLIBS = ${LIBS} -licuuc -licudata
    else
        ALLLIBS = ${LIBS}
    endif

    ifeq (${MESSAGELOADER}, ICU)
        ALLLIBS = ${LIBS} -licuuc -licudata
    endif

    EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,.
    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

    ifeq (${MESSAGELOADER}, ICU)
        ALLLIBS = ${LIBS} -licuuc -licudata
    endif

    EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. -Wl,-a,shared
    SHLIBSUFFIX=.sl
  endif
  ## Compiler switch to embed a library name
  LD_SONAME = -Wl,+h,${SO_NAME}
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)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -DXML_USE_UNICONV390_TRANSCODER -DXML_ALLOW_NELWS -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS -DOS390BATCH
else
PLATFORM_COMPILE_OPTIONS =-Wc,dll -W0,"langlvl(extended)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -DXML_USE_UNICONV390_TRANSCODER -DXML_ALLOW_NELWS -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS 
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}(IXM24UCX)'"
    else
    ALLLIBS = ${ICUROOT}/lib/libicuuc24.0.x
    endif
else
ifeq (${TRANSCODER}, Uniconv390)
## OS390BATCH
    ifeq (${OS390BATCH},1)
	 ALLLIBS = "//'${LOADEXP}(IXM24UCX)'"
    else
	 ALLLIBS = ${ICUROOT}/lib/libicuuc24.0.x
    endif
else
	 ALLLIBS =
endif
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 (${GXX}, yes)
    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 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

#=============== CygWin SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, CYGWIN)
      PLATFORM_COMPILE_OPTIONS = \
              -D__${PLATFORM}__ \
              -I/usr/include \
              -I/usr/include/w32api
      MAKE_SHARED = ${CXX} -shared ${LDFLAGS}
      MAKE_SHARED_C = ${CC} -shared ${LDFLAGS}
      ifeq (${TRANSCODER}, ICU)
              ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licu-uc -licudata -lc
      else
              ALLLIBS = ${LIBS} -L/usr/lib
      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
        SHLIBSUFFIX=.dll
endif


###################### 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}

else
    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}
    else
        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}
        else
            #
            # 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}
        endif
    endif
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}

###################### 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
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_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)/$(@) $(<)
