blob: 6b87ab5f074fcd200fb69fa625ecc9f2cb43144e [file] [log] [blame]
#
# 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: Makefile.in 570159 2007-08-27 15:43:48Z amassari $
#
###################################################################
# IMPORTANT NOTE #
###################################################################
# Before you try to run the Makefile, make sure you have two #
# environment variables set. #
# #
# export XERCESCROOT=<the directory where you installed XERCES-C> #
# export ICUROOT=<the directory where you installed ICU> #
# #
###################################################################
#all these setting come from the arguments passed in to runConfigure.
PLATFORM = @platform@
CC = @cc@
CXX = @cxx@
CXXVER = @cxxver@
PREFIX = @prefix@
MESSAGELOADER=@messageloader@
TRANSCODER=@transcoder@
THREADS = @threads@
LIBTYPE = @libtype@
ARCH = @host_cpu@
GCC = @GCC@
GXX = @GXX@
#MACROS defining commands
MKDIR=mkdir
CP=cp
CD=cd
RM=rm
CHMODE=chmod
include ../../version.incl
include Makefile.incl
UTIL_DIR = util
SAX_DIR = sax
SAX2_DIR = sax2
INTERNAL_DIR = internal
FRAMEWORK_DIR = framework
DOM_DIR = dom
PARSERS_DIR = parsers
VALIDATORS_DIR = validators
PRODUCTNAME=xerces
PRODUCTVERSION=${VER}
BINTARGETNAME=${PRODUCTNAME}-c-${PLATFORM}-${CXX}-${PRODUCTVERSION}
BINTARGETDIR=${HOME}/${BINTARGETNAME}
all:: lib
compile:: Prepare Util Sax Internal Framework Parsers Sax2 Dom Validators
ifeq (${LIBTYPE},shared)
ifeq (${PLATFORM},CYGWIN)
lib:: ${FQ_SO_NAME}
else
lib:: ${FQ_REAL_NAME}
endif
else # static
lib:: ${FQ_A_NAME}
endif
Prepare::
@echo Preparing the directory structure for a build ...
$Q${MKDIR} -p ${XML_OBJ_DIR}
$Q${MKDIR} -p ${XML_OBJ_DEPDOM_DIR}
$Q${MKDIR} -p ${XML_LIB_DIR}
$Q${MAKE} -s -C $(UTIL_DIR) includes
$Q${MAKE} -s -C $(SAX_DIR) includes
$Q${MAKE} -s -C $(SAX2_DIR) includes
$Q${MAKE} -s -C $(INTERNAL_DIR) includes
$Q${MAKE} -s -C $(FRAMEWORK_DIR) includes
$Q${MAKE} -s -C $(PARSERS_DIR) includes
$Q${MAKE} -s -C $(VALIDATORS_DIR) includes
$Q${MAKE} -s -C $(DOM_DIR) includes
Util::
@echo Building "util"
$Q${MAKE} -s -C $(UTIL_DIR) $(MAKE_FLAGS)
Sax::
@echo Building "sax"
$Q${MAKE} -s -C $(SAX_DIR) $(MAKE_FLAGS)
Internal::
@echo Building "internal"
$Q${MAKE} -s -C $(INTERNAL_DIR) $(MAKE_FLAGS)
Framework::
@echo Building "framework"
$Q${MAKE} -s -C $(FRAMEWORK_DIR) $(MAKE_FLAGS)
Parsers::
@echo Building "parsers"
$Q${MAKE} -s -C $(PARSERS_DIR) $(MAKE_FLAGS)
Sax2::
@echo Building "sax2"
$Q${MAKE} -s -C $(SAX2_DIR) $(MAKE_FLAGS)
Dom::
@echo Building "dom"
$Q${MAKE} -s -C $(DOM_DIR) $(MAKE_FLAGS)
Validators::
@echo Building "validators"
$Q${MAKE} -s -C $(VALIDATORS_DIR) $(MAKE_FLAGS)
ifeq (${LIBTYPE},shared)
ifeq (${PLATFORM},CYGWIN)
${FQ_SO_NAME}:: compile
@echo Building ${FQ_SO_NAME}
$Q${MAKE} -C $(XML_OBJ) -k $(MAKE_FLAGS)
else
${FQ_REAL_NAME}:: compile
@echo toplevel Building ${FQ_REAL_NAME}
$Q${MAKE} -C $(XML_OBJ) -k $(MAKE_FLAGS)
endif
else # static
${FQ_A_NAME}:: compile
@echo Building ${FQ_A_NAME}
$Q${MAKE} -C $(XML_OBJ) -k $(MAKE_FLAGS)
endif
install::
${MAKE} -C $(UTIL_DIR) $@
${MAKE} -C $(SAX_DIR) $@
${MAKE} -C $(SAX2_DIR) $@
${MAKE} -C $(INTERNAL_DIR) $@
${MAKE} -C $(FRAMEWORK_DIR) $@
${MAKE} -C $(PARSERS_DIR) $@
${MAKE} -C $(DOM_DIR) $@
${MAKE} -C $(VALIDATORS_DIR) $@
${MAKE} -C $(XML_OBJ) $@
clean::
${MAKE} -C $(UTIL_DIR) $@
${MAKE} -C $(SAX_DIR) $@
${MAKE} -C $(SAX2_DIR) $@
${MAKE} -C $(INTERNAL_DIR) $@
${MAKE} -C $(FRAMEWORK_DIR) $@
${MAKE} -C $(PARSERS_DIR) $@
${MAKE} -C $(DOM_DIR) $@
${MAKE} -C $(VALIDATORS_DIR) $@
${MAKE} -C $(XML_OBJ) $@
distclean::
${MAKE} -C $(UTIL_DIR) $@
${MAKE} -C $(SAX_DIR) $@
${MAKE} -C $(SAX2_DIR) $@
${MAKE} -C $(INTERNAL_DIR) $@
${MAKE} -C $(FRAMEWORK_DIR) $@
${MAKE} -C $(PARSERS_DIR) $@
${MAKE} -C $(DOM_DIR) $@
${MAKE} -C $(VALIDATORS_DIR) $@
${MAKE} -C $(XML_OBJ) $@
rm -f Makefile config.cache config.log config.status
find . -name Makefile -print -exec rm -f {} \;
rm -Rf ${XML_OBJ_DIR} ${XML_OBJ_DEPDOM_DIR} ${XML_LIB_DIR} ../../include
rm -f *~ core
#docs::
samples::
${MAKE} -C ../../samples
copy:: lib samples
@echo Make the target directory and its main subdirectories
-${MKDIR} ${BINTARGETDIR}
-${MKDIR} ${BINTARGETDIR}/bin
-${MKDIR} ${BINTARGETDIR}/etc
-${MKDIR} ${BINTARGETDIR}/lib
ifeq (${MESSAGELOADER},ICU)
-${MKDIR} ${BINTARGETDIR}/msg
endif
ifeq (${MESSAGELOADER},ICONV)
-${MKDIR} ${BINTARGETDIR}/msg
endif
-${MKDIR} ${BINTARGETDIR}/include
-${MKDIR} ${BINTARGETDIR}/samples
-${MKDIR} ${BINTARGETDIR}/doc
-${MKDIR} ${BINTARGETDIR}/doc/html
@echo Populate the include output directory
@echo Copying headers files ...
-${CP} -Rf ${XERCESCROOT}/include/* ${BINTARGETDIR}/include
-${RM} -rf ${BINTARGETDIR}/include/xercesc/dom/impl
ifeq (${TRANSCODER},ICU)
-${CP} -Rf ${ICUROOT}/include/* ${BINTARGETDIR}/include
else
ifeq (${MESSAGELOADER},ICU)
-${CP} -Rf ${ICUROOT}/include/* ${BINTARGETDIR}/include
endif
endif
@echo Populate the binary output directory
@echo Copying binary outputs ...
-${CP} -Rf ${XERCESCROOT}/bin/* ${BINTARGETDIR}/bin
-${CP} -Rf ${XERCESCROOT}/src/xercesc/config.status ${BINTARGETDIR}/etc
-${CP} -Rf ${XERCESCROOT}/bin/obj/*.map ${BINTARGETDIR}/etc
-${CP} -Rf ${XERCESCROOT}/lib/${REAL_NAME} ${BINTARGETDIR}/lib
-${CD} ${BINTARGETDIR}/lib; ln -s ${REAL_NAME} ${SO_NAME}; ln -s ${REAL_NAME} ${LINK_NAME}
ifeq (${TRANSCODER},ICU)
-${CP} -Rf ${ICUROOT}/lib/libicudata32.0.so ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicudata.so.32.0 ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.32.0 ${BINTARGETDIR}/lib
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata32.0.so' -exec ln -s {} libicudata.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata32.0.so' -exec ln -s {} libicudata32.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.32.0' -exec ln -s {} libicudata.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.32.0' -exec ln -s {} libicudata.so.32 \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.32.0' -exec ln -s {} libicudata.sl \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.32.0' -exec ln -s {} libicudata.sl.32 \;
-${CP} -Rf ${ICUROOT}/lib/libicuuc32.0.so ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.32.0 ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.32.0 ${BINTARGETDIR}/lib
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc32.0.so' -exec ln -s {} libicuuc.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc32.0.so' -exec ln -s {} libicuuc32.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.32.0' -exec ln -s {} libicuuc.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.32.0' -exec ln -s {} libicuuc.so.32 \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.32.0' -exec ln -s {} libicuuc.sl \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.32.0' -exec ln -s {} libicuuc.sl.32 \;
else
ifeq (${MESSAGELOADER},ICU)
-${CP} -Rf ${ICUROOT}/lib/libicudata32.0.so ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicudata.so.32.0 ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicudata.sl.32.0 ${BINTARGETDIR}/lib
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata32.0.so' -exec ln -s {} libicudata.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata32.0.so' -exec ln -s {} libicudata32.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.32.0' -exec ln -s {} libicudata.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.so.32.0' -exec ln -s {} libicudata.so.32 \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.32.0' -exec ln -s {} libicudata.sl \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicudata.sl.32.0' -exec ln -s {} libicudata.sl.32 \;
-${CP} -Rf ${ICUROOT}/lib/libicuuc32.0.so ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicuuc.so.32.0 ${BINTARGETDIR}/lib
-${CP} -Rf ${ICUROOT}/lib/libicuuc.sl.32.0 ${BINTARGETDIR}/lib
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc32.0.so' -exec ln -s {} libicuuc.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc32.0.so' -exec ln -s {} libicuuc32.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.32.0' -exec ln -s {} libicuuc.so \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.so.32.0' -exec ln -s {} libicuuc.so.32 \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.32.0' -exec ln -s {} libicuuc.sl \;
-${CD} ${BINTARGETDIR}/lib; find . -name 'libicuuc.sl.32.0' -exec ln -s {} libicuuc.sl.32 \;
endif
endif
ifeq (${MESSAGELOADER},ICU)
-${CP} -f ${XERCESCROOT}/msg/*.res ${BINTARGETDIR}/msg
endif
ifeq (${MESSAGELOADER},ICONV)
-${CP} -f ${XERCESCROOT}/msg/*.cat ${BINTARGETDIR}/msg
endif
-${RM} -rf ${BINTARGETDIR}/bin/obj
@echo Populate the samples directory
@echo Copying sample files ...
-${CP} -Rf ${XERCESCROOT}/samples/* ${BINTARGETDIR}/samples
-${RM2} `find ${BINTARGETDIR}/samples -name Makefile`
@echo Populate the docs directory
@echo Copying documentation ..
-${CP} -f ${XERCESCROOT}/doc/index.html ${BINTARGETDIR}/doc
-${CP} -Rf ${XERCESCROOT}/doc/html/* ${BINTARGETDIR}/doc/html
-${CP} -f ${XERCESCROOT}/*.html ${BINTARGETDIR}
-${CP} -f ${XERCESCROOT}/*.txt ${BINTARGETDIR}
-${CP} -f ${XERCESCROOT}/version.incl ${BINTARGETDIR}
@echo Change the directory permissions
-${CHMODE} 644 `find ${BINTARGETDIR} -type f`
-${CHMODE} 755 ${BINTARGETDIR}/bin/* ${BINTARGETDIR}/lib/*
-${CHMODE} +x ${BINTARGETDIR}/samples/runConfigure ${BINTARGETDIR}/samples/configure ${BINTARGETDIR}/samples/install-sh
-${CHMODE} +x ${BINTARGETDIR}/samples/config.sub ${BINTARGETDIR}/samples/config.guess ${BINTARGETDIR}/samples/config.status
-${CHMODE} 755 `find ${BINTARGETDIR} -type d`
tarball:: copy
@echo Now package it all up using tar
@echo TARing up all files ...
cd ${BINTARGETDIR}/..; tar -cvf ${BINTARGETDIR}.tar ${BINTARGETNAME}/
@echo Finally compress the files
@echo Compressing ${BINTARGETDIR}.tar ...
gzip ${BINTARGETDIR}.tar
zip:: copy
${CD} ${BINTARGETDIR}/..
@echo ZIPping up all files ...
zip -r ${BINTARGETDIR}.zip ${BINTARGETDIR}
package_bin:: zip tarball