# # 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. # ################################################################### # IMPORTANT NOTE # ################################################################### # Before you try to run the Makefile, make sure you have two # # environment variables set. # # # # export XALANCROOT= # # export XERCESCROOT= # # # # # # 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 # # export LOADSAMP=USERID.SAMP # # # # to specify your LOADMOD, the definition sidedeck dataset, and # # the testXSLT/Xalan executable destination. # # # ################################################################### INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ DEPFILE=depends # Output directory OUTDIR := ../.. ifndef XALANCROOT noxalanroot: @echo XALANCROOT must be defined endif ifndef XERCESCROOT noxercesroot: @echo XERCESCROOT must be defined endif XALANDOM_DIR = $(XALANCROOT)/src/xalanc/XalanDOM DOMSUPPORT_DIR = $(XALANCROOT)/src/xalanc/DOMSupport INCLUDE_DIR = $(XALANCROOT)/src/xalanc/Include ICUBRIDGE_DIR = $(XALANCROOT)/src/xalanc/ICUBridge PLATFORMSUPPORT_DIR = $(XALANCROOT)/src/xalanc/PlatformSupport XALANSOURCETREE_DIR = $(XALANCROOT)/src/xalanc/XalanSourceTree TESTXPATH_DIR = $(XALANCROOT)/src/xalanc/TestXPath XALANEXE_DIR = $(XALANCROOT)/src/xalanc/XalanExe TESTXSLT_DIR = $(XALANCROOT)/src/xalanc/TestXSLT XMLSUPPORT_DIR = $(XALANCROOT)/src/xalanc/XMLSupport XPATH_DIR = $(XALANCROOT)/src/xalanc/XPath XPATHCAPI_DIR = $(XALANCROOT)/src/xalanc/XPathCAPI XSLT_DIR = $(XALANCROOT)/src/xalanc/XSLT XALANEXTENSIONS_DIR = $(XALANCROOT)/src/xalanc/XalanExtensions XERCESPARSERLIAISON_DIR = $(XALANCROOT)/src/xalanc/XercesParserLiaison DEPRECATED_XERCESPARSERLIAISON_DIR = $(XALANCROOT)/src/xalanc/XercesParserLiaison/Deprecated XALANEXSLT_DIR = $(XALANCROOT)/src/xalanc/XalanEXSLT XALANTRANSFORMER_DIR = $(XALANCROOT)/src/xalanc/XalanTransformer HARNESS_DIR = $(XALANCROOT)/src/xalanc/Harness SAMPLES_DIR = ${XALANCROOT}/samples TESTS_DIR = ${XALANCROOT}/Tests ALL_VPATH_CPP = \ $(XALANDOM_DIR):$(PLATFORMSUPPORT_DIR):$(DOMSUPPORT_DIR):$(XMLSUPPORT_DIR): \ $(XPATH_DIR):$(XERCESPARSERLIAISON_DIR):$(DEPRECATED_XERCESPARSERLIAISON_DIR):$(XALANSOURCETREE_DIR):$(XPATHCAPI_DIR): \ $(XSLT_DIR):$(XALANEXTENSIONS_DIR):$(XALANEXSLT_DIR):$(XALANTRANSFORMER_DIR):$(HARNESS_DIR): \ $(TESTXPATH_DIR):$(TESTXSLT_DIR) \ ALLSOURCE = \ $(wildcard $(XALANDOM_DIR)/*.cpp) \ $(wildcard $(PLATFORMSUPPORT_DIR)/*.cpp) \ $(wildcard $(DOMSUPPORT_DIR)/*.cpp) \ $(wildcard $(XMLSUPPORT_DIR)/*.cpp) \ $(wildcard $(XPATH_DIR)/*.cpp) \ $(wildcard $(XERCESPARSERLIAISON_DIR)/*.cpp) \ $(wildcard $(DEPRECATED_XERCESPARSERLIAISON_DIR)/*.cpp) \ $(wildcard $(XALANSOURCETREE_DIR)/*.cpp) \ $(wildcard $(XPATHCAPI_DIR)/*.cpp) \ $(wildcard $(XSLT_DIR)/*.cpp) \ $(wildcard $(XALANEXTENSIONS_DIR)/*.cpp) \ $(wildcard $(XALANTRANSFORMER_DIR)/*.cpp) \ $(wildcard $(XALANEXSLT_DIR)/*.cpp) \ $(wildcard $(HARNESS_DIR)/*.cpp) \ ALL_HEADERS_DIRS = \ DOMSupport \ Include \ PlatformSupport \ XMLSupport \ XPath \ XSLT \ XalanDOM \ XalanEXSLT \ XalanExtensions \ XalanSourceTree \ XercesParserLiaison \ XercesParserLiaison/Deprecated \ XalanTransformer \ Harness \ XPathCAPI ALL_BINARIES = Xalan$(EXT) include $(XALANCROOT)/version.incl include ../../Makefile.incl # Using ICUBridge ifdef XALAN_USE_ICU ALL_VPATH_CPP+=:$(ICUBRIDGE_DIR) ALLSOURCE += $(wildcard $(ICUBRIDGE_DIR)/*.cpp) ALL_HEADERS_DIRS += ICUBridge XSL_INCL += -I${ICUROOT}/include XSL_BUILD_OPTIONS += -DXALAN_USE_ICU ICU_LIBI18N_LIB=$(shell cd $(ICUROOT)/lib; ls libicui18n*[0-9][0-9].[0-9]*) ICU_LIBI18N_SO_NAME=$(shell cd $(ICUROOT)/lib; ls libicui18n*[0-9][0-9] libicui18n[0-9][0-9].? 2>/dev/null) ICU_LIBI18N_LINK_NAME=libicui18n$(SHLIBSUFFIX) endif ALL_OBJECTS = $(addprefix $(XSL_OBJ_DIR)/,$(addsuffix .o,$(basename $(notdir $(ALLSOURCE))))) vpath %.cpp \ $(ALL_VPATH_CPP) ${XSL_OBJ_DIR}/%.o:%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< ${XSL_OBJ_DIR}/%.o:%.hpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $(patsubst .hpp,.cpp,$<) all: lib testXSLT testXPath XalanExe prepare: @echo Preparing the directory structure for a build ... -${MKDIR} -p ${XSL_OBJ_DIR} -${MKDIR} -p ${XSL_LIB_DIR} -${MKDIR} -p $(XSL_BIN_DIR) $(MAKE) -C Utils $@ # Create header dependencies file -- this must be run before any objects are # built depend: $(MAKE) -f makedepends DEPFILE=$(DEPFILE) -include $(DEPFILE) compile: $(ALL_OBJECTS) ifeq (${OS390BATCH},1) XalanExe: lib "//'$(LOADSAMP)(${BATCH_XALAN_UTIL_NAME})'" "//'$(LOADSAMP)(${BATCH_XALAN_UTIL_NAME})'": ${XSL_OBJ_DIR}/XalanExe.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS) ${XSL_OBJ_DIR}/XalanExe.o: $(XALANEXE_DIR)/XalanExe.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< testXSLT: lib "//'$(LOADSAMP)(${BATCH_TEST_UTIL_NAME})'" "//'$(LOADSAMP)(${BATCH_TEST_UTIL_NAME})'": ${XSL_OBJ_DIR}/process.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS) ${XSL_OBJ_DIR}/process.o: $(TESTXSLT_DIR)/process.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< else # Not OS390BATCH XalanExe: lib $(XSL_BIN_DIR)/Xalan $(XSL_BIN_DIR)/Xalan: ${XSL_OBJ_DIR}/XalanExe.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS) $(OTHER_LINK_PARAMETERS) ${XSL_OBJ_DIR}/XalanExe.o: $(XALANEXE_DIR)/XalanExe.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< endif testXSLT: lib $(XSL_BIN_DIR)/testXSLT $(XSL_BIN_DIR)/testXSLT: ${XSL_OBJ_DIR}/process.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS) $(OTHER_LINK_PARAMETERS) ${XSL_OBJ_DIR}/process.o: $(TESTXSLT_DIR)/process.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< testXPath: lib $(XSL_BIN_DIR)/testXPath $(XSL_BIN_DIR)/testXPath: ${XSL_OBJ_DIR}/TestXPath.o ${XSL_OBJ_DIR}/NodeNameTreeWalker.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $(OTHER_LINK_PARAMETERS) ${XSL_OBJ_DIR}/%.o:$(TESTXPATH_DIR)/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< ## OS390BATCH ifeq (${OS390BATCH},1) lib: prepare locale compile ${BATCH_TARGET} locale: $(MAKE) -C Utils $@ ${BATCH_TARGET}: $(ALL_OBJECTS) @echo Building ${BATCH_TARGET} $(MAKE_SHARED) $^ -o $@ $(ALLLIBS) else lib: prepare locale compile $(XSL_LIB_DIR)/$(LIB) locale: $(MAKE) -C Utils $@ $(XSL_LIB_DIR)/$(LIB): $(ALL_OBJECTS) $(MAKE_SHARED) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(LINK_SONAME) $^ -o $@ $(ALLLIBS) $(OTHER_LINK_LIB_PARAMERES) ifeq ($(PLATFORM), OS390) mv *.x ${XSL_LIB_DIR} else rm -f $(XSL_LIB_DIR)/$(LINK_NAME) && \ $(LN) -fs $(LIB) $(XSL_LIB_DIR)/$(LINK_NAME) rm -f $(XSL_LIB_DIR)/$(SO_NAME) && \ $(LN) -fs $(LIB) $(XSL_LIB_DIR)/$(SO_NAME) endif ## OS390 endif ## OS390BATCH install: lib XalanExe $(MAKE) -C Utils $@ $(MKINSTALLDIRS) $(DESTDIR)/$(bindir) for bin in $(ALL_BINARIES); do \ $(INSTALL_PROGRAM) $(XSL_BIN_DIR)/$$bin \ $(DESTDIR)/$(bindir); \ done $(MKINSTALLDIRS) $(DESTDIR)/$(libdir) $(INSTALL_PROGRAM) $(XSL_LIB_DIR)/$(LIB) $(DESTDIR)/$(libdir) ifneq ($(PLATFORM), OS390) rm -f $(DESTDIR)/$(libdir)/$(LINK_NAME) && \ $(LN) -fs $(LIB) $(DESTDIR)/$(libdir)/$(LINK_NAME) rm -f $(DESTDIR)/$(libdir)/$(SO_NAME) && \ $(LN) -fs $(LIB) $(DESTDIR)/$(libdir)/$(SO_NAME) endif ## OS390 $(MKINSTALLDIRS) $(DESTDIR)/$(includedir)/xalanc for hdir in $(ALL_HEADERS_DIRS); do \ $(MKINSTALLDIRS) $(DESTDIR)/$(includedir)/xalanc/$$hdir; \ cp $(XALANCROOT)/src/xalanc/$$hdir/*.h* \ $(DESTDIR)/$(includedir)/xalanc/$$hdir \ 2> /dev/null; \ done ifdef XALAN_USE_ICU $(INSTALL_PROGRAM) $(ICUROOT)/lib/$(ICU_LIBI18N_LIB) \ $(DESTDIR)/$(libdir) ifneq ($PLATFORM), OS390) rm -f $(DESTDIR)/$(libdir)/$(ICU_LIBI18N_LINK_NAME) && \ $(LN) -fs $(ICU_LIBI18N_LIB) \ $(DESTDIR)/$(libdir)/$(ICU_LIBI18N_LINK_NAME) rm -f $(DESTDIR)/$(libdir)/$(ICU_LIBI18N_SO_NAME) && \ $(LN) -fs $(ICU_LIBI18N_LIB) \ $(DESTDIR)/$(libdir)/$(ICU_LIBI18N_SO_NAME) endif ## OS390 endif clean: prepare doClean doClean: $(MAKE) -C Utils $@ (cd $(XSL_OBJ_DIR); rm -rf *) rm -rf $(OUTDIR)/so_locations rm -rf $(XSL_BIN_DIR)/SunWS_cache rm -rf $(XSL_LIB_DIR)/SunWS_cache rm -f $(XSL_LIB_DIR)/$(LIB) rm -f $(XSL_LIB_DIR)/$(LINK_NAME) rm -f $(XSL_LIB_DIR)/$(SO_NAME) rm -f $(XSL_LIB_DIR)/$(LIB).map1 rm -f $(XSL_BIN_DIR)/testXSLT$(EXT) rm -f $(XSL_BIN_DIR)/testXPath$(EXT) rm -f $(XSL_BIN_DIR)/Xalan$(EXT) ifeq ($(PLATFORM), OS390) rm -f $(LIBRARY_LINK_NAME) endif ## OS390 install-package: install