# # The Apache Software License, Version 1.1 # # Copyright (c) 1999 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 "Xalan", "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 # . # # # $Log$ # Revision 1.19 2000/10/10 16:34:56 auriemma # Update version number. # # Revision 1.18 2000/10/03 14:58:14 auriemma # Added Xerces include to the include path. # # Revision 1.17 2000/10/02 13:38:39 auriemma # Added Solaris GCC support to makefile. This update was provided by Andrei Smirnov. # # Revision 1.16 2000/09/27 16:44:55 dbertoni # Output transcoding support. # # Revision 1.15 2000/09/25 14:37:06 auriemma # Clean up. # # Revision 1.14 2000/09/22 18:21:48 auriemma # Resolve issues for AIX . # # Revision 1.13 2000/09/21 16:54:07 auriemma # Clean up. # # Revision 1.12 2000/09/20 18:21:21 auriemma # Fixed problem on Linux. # # Revision 1.11 2000/09/20 14:11:54 auriemma # Reduced the size of library and executables on AIX by explicitly instantiating templates. # # Revision 1.10 2000/08/31 19:41:49 dbertoni # Updated Xerces library version number. # # Revision 1.9 2000/08/25 21:13:38 auriemma # Added support for building samples. # # Revision 1.8 2000/08/24 17:23:44 auriemma # Added support for AIX and ICU support for Linux and AIX. # # Revision 1.7 2000/07/07 15:04:23 dbertoni # Updated library name. # # Revision 1.6 2000/06/23 22:04:48 dbertoni # Bumped up revision numbers for new Xerces version, and for the next Xalan version. # # Revision 1.5 2000/06/01 17:44:23 dbertoni # New source directory. # # Revision 1.4 2000/04/10 20:25:06 dbertoni # Changes to remove absolute path to shared library when linking executable. # # Revision 1.3 2000/02/10 13:08:55 jdonohue # Added make for dependencies # # Revision 1.2 2000/02/03 20:13:12 jdonohue # Linux changes # PR: # Obtained from: # Submitted by: # Reviewed by: # # Revision 1.1 2000/01/27 20:30:27 jdonohue # no message # # Revision 1.10 2000/01/11 16:22:06 jdonohue # General cleanup # # Revision 1.9 2000/01/10 17:40:39 jdonohue # Added CXXFLAGS to make executables so that debugging info created # # Revision 1.8 2000/01/04 22:08:12 jdonohue # Added clean target, make of testXPath, fixed other macros # # Revision 1.7 1999/12/27 18:31:18 jdonohue # Fixed * for #, cpp instead of hpp # # Revision 1.6 1999/12/23 20:59:57 jdonohue # Added XERCESCROOT as macro # Uncomment ifdef LINUX -- need to fix this # # Revision 1.5 1999/12/23 18:06:02 jdonohue # Changes for linux # # Revision 1.4 1999/12/22 21:05:30 jdonohue # Changes for linux # # Revision 1.3 1999/12/22 17:49:22 jdonohue # Consolidated making into one file, eliminated copying of includes, etc # # Revision 1.1 1999/12/21 01:13:49 jdonohue # Make for linux, etc # # # #all these setting come from the arguments passed in to runConfigure. PLATFORM =@platform@ CC = @cc@ CXX = @cxx@ CXXFLAGS = @cxxflags@ PREFIX = @prefix@ #=============== LINUX SPECIFIC OPTIONS ========================= ifeq ($(PLATFORM), LINUX) SUPPORTED = TRUE PLATFORM_COMPILE_OPTIONS = -fpic -instances=static -D${PLATFORM} -D_REENTRANT #ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib SHLIBSUFFIX=.so # We need the ICU library if we are using the ICUBridge ifdef XALAN_USE_ICU LD_RPATH_PRE= -Wl,-rpath, PLATFORM_LIB_LINK_OPTIONS=$(LD_RPATH_PRE)/usr/lib $(LD_RPATH_PRE)/usr/local/lib endif EXTRA_LINK_OPTIONS=-lc CC1 = $(CXX) $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS) MAKE_SHARED = ${CXX} $(CXXFLAGS) -D${PLATFORM} -shared -fpic LINK = g++ -D${PLATFORM} -fpic endif #=============== SOLARIS SPECIFIC OPTIONS ========================= ifeq ($(PLATFORM), SOLARIS) SUPPORTED = TRUE PLATFORM_COMPILE_OPTIONS = -fPIC -instances=static -D${PLATFORM} -D_REENTRANT PLATFORM_COMPILE_OPTIONS += -DXALAN_CANNOT_MUTATE_ANONYMOUS_OBJECT ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -lc SHLIBSUFFIX=.so # We need the ICU library if we are using the ICUBridge ifdef XALAN_USE_ICU LD_RPATH_PRE= -Wl,-rpath, PLATFORM_LIB_LINK_OPTIONS=$(LD_RPATH_PRE)/usr/lib $(LD_RPATH_PRE)/usr/local/lib endif EXTRA_LINK_OPTIONS=-lc CC1 = $(CXX) $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS) MAKE_SHARED = ${CXX} $(CXXFLAGS) -D${PLATFORM} -shared -fPIC LINK = g++ -D${PLATFORM} -fPIC endif #=============== AIX SPECIFIC OPTIONS ========================= ifeq ($(PLATFORM), AIX) ifndef STLPORTROOT nostlportroot: @echo STLPORTROOT must be defined endif SUPPORTED = TRUE PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -D_THREAD_SAFE -I ${STLPORTROOT}/stlport ALLLIBS = ${LIBS} -L/usr/lib SHLIBSUFFIX=.a CC1 = $(CXX) $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS) CC2 = $(CXX) $(PLATFORM_COMPILE_OPTIONS) MAKE_SHARED = makeC++SharedLib_r -p 5000 LINK = $(CXX) -qnotempinc $(CXXFLAGS) $(PLATFORM_COMPILE_OPTIONS) endif ifndef SUPPORTED nogood: @echo Linux Solaris and AIX are the only unix platforms supported. endif # We need the Xerces library ALLLIBS += -L$(XERCESCROOT)/lib -lxerces-c1_3 # We need the ICU library if we are using the ICUBridge ifdef XALAN_USE_ICU ALLLIBS += -L/usr/local/lib -licu-uc ALLLIBS += -L/usr/local/lib -licu-i18n endif # We have to use the includes from the source distribution, since we use # headers that others normally wouldn't XSL_INCL = -I . -I $(XERCESCROOT)/src/ -I $(XERCESCROOT)/include/ # We need the ICU library if we are using the ICUBridge ifdef XALAN_USE_ICU XSL_INCL += -I /usr/local/include/ XSL_BUILD_OPTIONS += -DXALAN_USE_ICU endif ################################################################### # IMPORTANT NOTE # ################################################################### # Before you try to run the Makefile, make sure you have two # # environment variables set. # # # # export XALANCROOT= # # export XERCESCROOT= # # # ################################################################### DEPFILE=depends #MACROS defining commands MKDIR=mkdir ifndef XALANCROOT noxalanroot: @echo XALANCROOT must be defined endif ifndef XERCESCROOT noxercesroot: @echo XERCESCROOT must be defined endif XALANDOM_DIR = XalanDOM DOMSUPPORT_DIR = DOMSupport INCLUDE_DIR = Include ICUBRIDGE_DIR = ICUBridge PLATFORMSUPPORT_DIR = PlatformSupport TESTXPATH_DIR = TestXPath TESTXSLT_DIR = TestXSLT XMLSUPPORT_DIR = XMLSupport XPATH_DIR = XPath XSLT_DIR = XSLT XERCESINIT_DIR = XercesInit XERCESPARSERLIAISON_DIR = XercesParserLiaison ALL_OBJECTS_DIR = ${XALANCROOT}/obj LIB_DIR = ${XALANCROOT}/lib SAMPLES_DIR = ${XALANCROOT}/samples PROJECT_NAME = xalan-c LIBNAME = lib${PROJECT_NAME} THISLIB = ${LIB_DIR}/${LIBNAME} VER = 1_0 PRODUCTNAME=xalan PRODUCTVERSION=${VER} BINTARGETDIR=${XALANCROOT}/bin ALL_VPATH_CPP = \ $(XALANDOM_DIR):$(DOMSUPPORT_DIR):$(PLATFORMSUPPORT_DIR):$(TESTXPATH_DIR):$(TESTXSLT_DIR):\ $(XMLSUPPORT_DIR):$(XPATH_DIR):$(XSLT_DIR):$(XERCESINIT_DIR):\ $(XERCESPARSERLIAISON_DIR) # Using ICUBridge ifdef XALAN_USE_ICU ALL_VPATH_CPP+=:$(ICUBRIDGE_DIR) endif vpath %.cpp \ $(ALL_VPATH_CPP) ${ALL_OBJECTS_DIR}/%.o:%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< ${ALL_OBJECTS_DIR}/%.o:%.hpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $(patsubst .hpp,.cpp,$<) ALLSOURCE = \ $(wildcard $(XALANDOM_DIR)/*.cpp) \ $(wildcard $(DOMSUPPORT_DIR)/*.cpp) \ $(wildcard $(PLATFORMSUPPORT_DIR)/*.cpp) \ $(wildcard $(XMLSUPPORT_DIR)/*.cpp) \ $(wildcard $(XPATH_DIR)/*.cpp) \ $(wildcard $(XSLT_DIR)/*.cpp) \ $(wildcard $(XERCESINIT_DIR)/*.cpp) \ $(wildcard $(XERCESPARSERLIAISON_DIR)/*.cpp) \ # Using ICUBridge ifdef XALAN_USE_ICU ALLSOURCE += \ $(wildcard $(ICUBRIDGE_DIR)/*.cpp) endif ALL_OBJECTS = $(addprefix $(ALL_OBJECTS_DIR)/,$(addsuffix .o,$(basename $(notdir $(ALLSOURCE))))) all: lib testXSLT testXPath prepare: @echo Preparing the directory structure for a build ... -${MKDIR} -p ${ALL_OBJECTS_DIR} -${MKDIR} -p ${LIB_DIR} -${MKDIR} -p $(BINTARGETDIR) # 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 ($(PLATFORM), AIX) templates: ${ALL_OBJECTS_DIR}/XalanTemplate.o ${ALL_OBJECTS_DIR}/XalanTemplate.o:$(XSLT_DIR)/XalanTemplate.cpp $(CC2) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) -o $@ $< endif testXSLT: lib $(BINTARGETDIR)/testXSLT $(BINTARGETDIR)/testXSLT: ${ALL_OBJECTS_DIR}/process.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $^ -o $@ ${ALL_OBJECTS_DIR}/process.o: $(TESTXSLT_DIR)/process.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< testXPath: lib $(BINTARGETDIR)/testXPath $(BINTARGETDIR)/testXPath: ${ALL_OBJECTS_DIR}/TestXPath.o ${ALL_OBJECTS_DIR}/NodeNameTreeWalker.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(TESTXPATH_DIR)/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< Samples: lib CompileStylesheet ExternalFunction SimpleTransform TraceListen UseStylesheetParam XPathWrapper # ThreadSafe CompileStylesheet: lib $(SAMPLES_DIR)/CompileStylesheet/CompileStylesheet $(SAMPLES_DIR)/CompileStylesheet/CompileStylesheet: ${ALL_OBJECTS_DIR}/CompileStylesheet.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/CompileStylesheet/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< ExternalFunction: lib $(SAMPLES_DIR)/ExternalFunction/ExternalFunction $(SAMPLES_DIR)/ExternalFunction/ExternalFunction: ${ALL_OBJECTS_DIR}/ExternalFunction.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/ExternalFunction/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< SimpleTransform: lib $(SAMPLES_DIR)/SimpleTransform/SimpleTransform $(SAMPLES_DIR)/SimpleTransform/SimpleTransform: ${ALL_OBJECTS_DIR}/SimpleTransform.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/SimpleTransform/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< TraceListen: lib $(SAMPLES_DIR)/TraceListen/TraceListen $(SAMPLES_DIR)/TraceListen/TraceListen: ${ALL_OBJECTS_DIR}/TraceListen.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/TraceListen/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< UseStylesheetParam: lib $(SAMPLES_DIR)/UseStylesheetParam/UseStylesheetParam $(SAMPLES_DIR)/UseStylesheetParam/UseStylesheetParam: ${ALL_OBJECTS_DIR}/UseStylesheetParam.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/UseStylesheetParam/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< XPathWrapper: lib $(SAMPLES_DIR)/XPathWrapper/XPathWrapper $(SAMPLES_DIR)/XPathWrapper/XPathWrapper: ${ALL_OBJECTS_DIR}/XPathWrapper.o ${ALL_OBJECTS_DIR}/TestDriver.o ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \ ${EXTRA_LINK_OPTIONS} -L$(LIB_DIR) -l$(PROJECT_NAME)$(VER) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ ${ALL_OBJECTS_DIR}/%.o:$(SAMPLES_DIR)/XPathWrapper/%.cpp $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $< lib: prepare compile $(THISLIB)$(VER)$(SHLIBSUFFIX) $(THISLIB)$(VER)$(SHLIBSUFFIX): $(ALL_OBJECTS) $(MAKE_SHARED) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS) $^ -o $@ clean: rm -f $(ALL_OBJECTS_DIR)/*.o rm -f $(THISLIB)$(VER)$(SHLIBSUFFIX) rm -f $(BINTARGETDIR)/testXSLT rm -f $(BINTARGETDIR)/testXPath rm -f $(SAMPLES_DIR)/CompileStylesheet/CompileStylesheet rm -f $(SAMPLES_DIR)/ExternalFunction/ExternalFunction rm -f $(SAMPLES_DIR)/SimpleTransform/SimpleTransform rm -f $(SAMPLES_DIR)/TraceListen/TraceListen rm -f $(SAMPLES_DIR)/UseStylesheetParam/UseStylesheetParam rm -f $(SAMPLES_DIR)/XPathWrapper/XPathWrapper