blob: 75b860de185eeba9273a8f787c7e62c016721326 [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 570129 2007-08-27 14:10:51Z amassari $
#
###################################################################
# IMPORTANT NOTE #
###################################################################
# If you are going to do the OS390BATCH build, make sure you have #
# the OS390BATCH environment variable set. #
# #
# export OS390BATCH=1 #
# #
###################################################################
PLATFORM = @platform@
CC = @cc@
CXX = @cxx@
CXXVER = @cxxver@
GCC = @GCC@
GXX = @GXX@
PREFIX = @prefix@
LDFLAGS = @ldflags@
LIBS = @libs@
OSVER = @osver@
TRANSCODER = @transcoder@
MESSAGELOADER = @messageloader@
LIBTYPE = @libtype@
ARCH = @host_cpu@
BITSTOBUILD = @bitstobuild@
include ../version.incl
include ../src/xercesc/Makefile.incl
LIB=${XERCESCROOT}/lib
## OS390BATCH
ifeq (${OS390BATCH},1)
BATCH_TARGET = "//'${LOADMOD}(IXM4C56)'"
BATCH_EXP = "//'${LOADEXP}(IXM4C56)'"
DEPDOM_TARGET = "//'${LOADMOD}(IXMDD56)'"
endif
ALL_OBJECTS=$(wildcard $(PLATFORM)/*.o)
# obj/<platform>/depdom/*.o
DEPDOM_OBJECTS=$(wildcard $(PLATFORM)/depdom/*.o)
DEPDOM_OBJS_REF=${DEPDOM_OBJECTS}
# obj/<platform>/*.o
DEPDOM_OBJS=$(subst depdom/,,${DEPDOM_OBJS_REF})
#######################################################
# HP-UX with CC compiler is awkward since it does #
# not instantiate templates automatically. To do so #
# you need to invoke the linker. So, just for this #
# compiler, we try to create a dummy executable #
# before we create the shared library. This will #
# force all templates to be instantiated and the #
# shared library is created with all template #
# instantiations in place. #
#######################################################
ifeq (${LIBTYPE},shared)
ifeq (${PLATFORM},HPUX)
ifeq (${CXX},CC)
###### Start HP-UX CC compiler specific stuff #######
DUMMYEXE=$(XML_LIB_DIR)/dummyExe
TEMPLATESOBJS=$(wildcard $(TEMPLATESREPOSITORY)/*.o)
all: $(DUMMYEXE) ${FQ_REAL_NAME} ${FQ_REAL_DEPDOM}
\rm -f $(DUMMYEXE)
$(DUMMYEXE): $(ALL_OBJECTS)
${MAKE_SHARED} -o ${@} $^ $(PLATFORM_LIBRARIES) $(ALLLIBS)
###### End HP-UX CC compiler specific stuff #######
else
all: ${FQ_REAL_NAME} ${FQ_REAL_DEPDOM}
endif
else
## Start OS390BATCH ##
ifeq (${OS390BATCH},1)
all: ${BATCH_TARGET} ${DEPDOM_TARGET}
## End OS390BATCH ##
else
ifeq (${PLATFORM},CYGWIN)
all: ${FQ_SO_NAME} ${FQ_SO_DEPDOM}
else
all: ${FQ_REAL_NAME} ${FQ_REAL_DEPDOM}
endif
endif
endif
else # static
all: ${FQ_A_NAME} ${FQ_A_DEPDOM}
endif
########################################################
# #
# OS/390 works pretty much the same way as Windows NT #
# as far as linking goes. The runtime library is #
# called .dll, and the link-time libraries have a .x #
# extension. You need the .x files to link #
# your application at build time and need the .dll #
# file to run it. So, we need to copy over the .x #
# file to the lib directory as well, so that you can #
# link your application. #
########################################################
ifeq (${LIBTYPE},shared)
ifeq (${PLATFORM},CYGWIN)
${FQ_SO_NAME}: $(ALL_OBJECTS)
@echo Building ${FQ_SO_NAME}
${MAKE_SHARED} ${LD_SONAME} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS)
@echo symlink ${FQ_REAL_NAME}.a
rm -rf ${FQ_REAL_NAME}.a && ln -s ${XML_LIB_DIR}/${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${FQ_REAL_NAME}.a
@echo symlink ${FQ_LINK_NAME}.a
rm -rf ${FQ_LINK_NAME}.a && ln -s ${FQ_REAL_NAME}.a ${FQ_LINK_NAME}.a
## DepDOM ##
${FQ_SO_DEPDOM}: $(DEPDOM_OBJECTS)
@echo Building ${FQ_SO_DEPDOM}
${MAKE_SHARED} ${LD_SODEPDOM} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(DEPDOM_LINK_OPTIONS) $(ALLLIBS) -L${LIB} -l${LINK_LIBNAME}
@echo symlink ${FQ_REAL_DEPDOM}.a
rm -rf ${FQ_REAL_DEPDOM}.a && ln -s ${XML_LIB_DIR}/${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${FQ_REAL_DEPDOM}.a
@echo symlink ${FQ_LINK_DEPDOM}.a
rm -rf ${FQ_LINK_DEPDOM}.a && ln -s ${FQ_REAL_DEPDOM}.a ${FQ_LINK_DEPDOM}.a
endif
${FQ_REAL_NAME}: $(ALL_OBJECTS)
@echo Building ${FQ_REAL_NAME}
${MAKE_SHARED} ${LD_SONAME} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS)
ifeq (${PLATFORM},OS390)
$(CP) ${LIBNAME}${VER}${OS390SIDEDECK} ${LIB}
endif
ifneq (${FQ_SO_NAME},${FQ_REAL_NAME})
@echo symlink ${FQ_SO_NAME}
rm -rf ${FQ_SO_NAME} && ln -s ${FQ_REAL_NAME} ${FQ_SO_NAME}
endif
@echo symlink ${FQ_LINK_NAME}
rm -rf ${FQ_LINK_NAME} && ln -s ${FQ_SO_NAME} ${FQ_LINK_NAME}
## DepDOM ##
${FQ_REAL_DEPDOM}: $(DEPDOM_OBJECTS)
@echo Building ${FQ_REAL_DEPDOM}
ifeq (${PLATFORM},SOLARIS)
cp $(DEPDOM_OBJECTS) $(PLATFORM)
${MAKE_SHARED} ${LD_SODEPDOM} -o ${@} ${DEPDOM_OBJS} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(DEPDOM_LINK_OPTIONS) $(ALLLIBS) -L${LIB} -l${LINK_LIBNAME}
rm ${DEPDOM_OBJS}
else
ifeq (${PLATFORM},OS390)
${MAKE_SHARED} ${LD_SODEPDOM} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(DEPDOM_LINK_OPTIONS) $(ALLLIBS) ${LIB}/${LIBNAME}${VER}${OS390SIDEDECK}
$(CP) ${LIBDEPDOM}${VER}${OS390SIDEDECK} ${LIB}
else
${MAKE_SHARED} ${LD_SODEPDOM} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(DEPDOM_LINK_OPTIONS) $(ALLLIBS) -L${LIB} -l${LINK_LIBNAME}
endif
endif
ifneq (${FQ_SO_DEPDOM},${FQ_REAL_DEPDOM})
@echo symlink ${FQ_SO_DEPDOM}
rm -rf ${FQ_SO_DEPDOM} && ln -s ${FQ_REAL_DEPDOM} ${FQ_SO_DEPDOM}
endif
@echo symlink ${FQ_LINK_DEPDOM}
rm -rf ${FQ_LINK_DEPDOM} && ln -s ${FQ_SO_DEPDOM} ${FQ_LINK_DEPDOM}
## Start OS390 ##
ifeq (${PLATFORM},OS390)
## Start OS390BATCH ##
ifeq (${OS390BATCH},1)
${BATCH_TARGET}: $(ALL_OBJECTS)
@echo Building ${BATCH_TARGET}
${MAKE_SHARED} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS)
${DEPDOM_TARGET}: $(DEPDOM_OBJECTS)
@echo Building ${DEPDOM_TARGET}
${MAKE_SHARED} -o ${@} ${^} $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(DEPDOM_LINK_OPTIONS) $(ALLLIBS) $(BATCH_EXP)
endif
endif
## End OS390 and OS390BATCH
else # static
${FQ_A_NAME}: $(ALL_OBJECTS)
@echo Building ${FQ_A_NAME}
${AR} $(ARFLAGS) ${@} ${^}
ifneq ($(RANLIB),)
$(RANLIB) ${@}
endif
${FQ_A_DEPDOM}: $(DEPDOM_OBJECTS)
@echo Building ${FQ_A_DEPDOM}
${AR} $(ARFLAGS) ${@} ${^}
ifneq ($(RANLIB),)
$(RANLIB) ${@}
endif
endif
clean:
@echo "Making clean in obj ..."
-rm -f $(ALL_OBJECTS) $(DEPDOM_OBJECTS)
ifneq ($(strip $(TEMPLATESREPOSITORY)),)
-rm -f $(TEMPLATESREPOSITORY)/*.o
-rm -f $(TEMPLATESREPOSITORY)/*.c
-rm -f $(TEMPLATESREPOSITORY)/*.cs
-rm -f $(TEMPLATESREPOSITORY)/*.he
endif
ifeq (${LIBTYPE},shared)
-rm -f ${FQ_REAL_NAME} ${FQ_REAL_DEPDOM}
ifeq (${PLATFORM}, CYGWIN)
-rm -f ${XML_LIB_DIR}/${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a
-rm -f ${FQ_LINK_NAME}.a
-rm -f ${FQ_REAL_NAME}.a
-rm -f ${XML_LIB_DIR}/${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a
-rm -f ${FQ_LINK_DEPDOM}.a
-rm -f ${FQ_REAL_DEPDOM}.a
else
-rm -f ${FQ_SO_NAME}
-rm -f ${FQ_LINK_NAME}
-rm -f ${FQ_SO_DEPDOM}
-rm -f ${FQ_LINK_DEPDOM}
endif
else # static
-rm -f ${FQ_A_NAME} ${FQ_A_DEPDOM}
endif
-rm -f *.map
distclean: clean
-rm -f Makefile
-rm -Rf $(XML_OBJ_DIR)
ifneq ($(strip $(TEMPLATESREPOSITORY)),)
-rm -Rf $(TEMPLATESREPOSITORY)
endif
install:
ifeq (${OS390BATCH},1)
@echo "Nothing to do for OS390BATCH ..."
else
-mkdir -p ${DESTDIR}${PREFIX}/lib
ifeq (${LIBTYPE},shared)
ifeq (${PLATFORM}, CYGWIN)
-mkdir -p ${DESTDIR}${PREFIX}/bin
$(CP) ${FQ_SO_NAME} ${DESTDIR}${PREFIX}/bin
$(CP) $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${DESTDIR}${PREFIX}/lib
(cd ${DESTDIR}$(PREFIX)/lib; rm -f ${LINK_NAME}.a libxerces.dll.a; ln -s ${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${LINK_NAME}.a; rm -f libxerces.dll.a; ln -s ${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a libxerces.dll.a)
$(CP) ${FQ_SO_DEPDOM} ${DESTDIR}${PREFIX}/bin
$(CP) $(XML_LIB_DIR)/${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${DESTDIR}${PREFIX}/lib
(cd ${DESTDIR}$(PREFIX)/lib; rm -f ${LINK_DEPDOM}.a libxercesdepdom.dll.a; ln -s ${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a ${LINK_DEPDOM}.a; rm -f libxercesdepdom.dll.a; ln -s ${LIBDEPDOM}${SO_TARGET_VERSION}${SHLIBSUFFIX}.a libxercesdepdom.dll.a)
else
$(CP) ${FQ_REAL_NAME} ${DESTDIR}$(PREFIX)/lib
(cd ${DESTDIR}$(PREFIX)/lib; rm -f ${SO_NAME}; ln -s ${REAL_NAME} ${SO_NAME}; rm -f ${LINK_NAME}; ln -s ${REAL_NAME} ${LINK_NAME})
$(CP) ${FQ_REAL_DEPDOM} ${DESTDIR}$(PREFIX)/lib
(cd ${DESTDIR}$(PREFIX)/lib; rm -f ${SO_DEPDOM}; ln -s ${REAL_DEPDOM} ${SO_DEPDOM}; rm -f ${LINK_DEPDOM}; ln -s ${REAL_DEPDOM} ${LINK_DEPDOM})
endif
ifeq (${PLATFORM},OS390)
$(CP) ${LIBNAME}${VER}${OS390SIDEDECK} ${DESTDIR}$(PREFIX)/lib
$(CP) ${LIBDEPDOM}${VER}${OS390SIDEDECK} ${DESTDIR}$(PREFIX)/lib
endif
else # shared
$(CP) ${FQ_A_NAME} ${DESTDIR}$(PREFIX)/lib
$(CP) ${FQ_A_DEPDOM} ${DESTDIR}$(PREFIX)/lib
endif
endif