# Makefile for e4XML, an extension to input XML with the e4Graph package. # # Copyright (c) 2000-2003, JYL Software Inc. # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE, EVEN IF # JYL SOFTWARE INC. IS MADE AWARE OF THE POSSIBILITY OF SUCH DAMAGE. # Include the parameters determined at configure time: include ../../all/makefile.include # Which libraries to link with. We use the assigment syntax (rather # than +=) to make this work for HPUX and Tru64 make. ALLLIBS = \ -L${PRODUCT_DIR}/libs -le4graph \ -L${METAKIT_LIB} -lmk4 \ -L${EXPAT_LIB} -lexpat \ ${LIBS} # Where to find source and include files: SRC = ./../src INCLUDE = ./../include E4GRAPHINCLUDE = ./../../main/include # Where to put object files: PRODOBJDIR = ${PRODUCT_DIR}/objects/xml # Where to put libraries: PRODLIBDIR = ${PRODUCT_DIR}/libs # Where to put include files: PRODINCDIR = ${PRODUCT_DIR}/include # The source, include and object files for the e4XML package: SOURCE = \ $(SRC)/e4base64.c \ $(SRC)/e4xmlparser.cpp \ $(SRC)/e4xmlinputprocessor.cpp \ $(SRC)/e4xmlnvg.cpp \ $(SRC)/e4xmlgenerator.cpp \ $(SRC)/e4xmloutputstream.cpp \ $(SRC)/e4xmloutputprocessor.cpp OBJECTS = \ ${PRODOBJDIR}/e4base64.o \ ${PRODOBJDIR}/e4xmlparser.o \ ${PRODOBJDIR}/e4xmlinputprocessor.o \ ${PRODOBJDIR}/e4xmlnvg.o \ ${PRODOBJDIR}/e4xmlgenerator.o \ ${PRODOBJDIR}/e4xmloutputstream.o \ ${PRODOBJDIR}/e4xmloutputprocessor.o INCLUDES = -I${INCLUDE} -I${E4GRAPHINCLUDE} -I${EXPAT_INC} # Compile flags. Collect all the flags specified in the makefile.include # and by users on the command line, e.g. 'make CPPFLAGS=...'. ALLCPPFLAGS = $(CPPFLAGS) ${INCLUDES} -DE4_XMLDLL # Main target: all: ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} includes # Install this package: install: all -mkdir -p $(includedir) cp -p ../include/e4xml.h $(includedir)/e4xml.h -mkdir -p $(libdir) cp -p ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} \ $(libdir)/libe4xml${SHLIB_SUFFIX}.0.0.0 -/bin/rm -f $(libdir)/libe4xml${SHLIB_SUFFIX} \ $(libdir)/libe4xml${SHLIB_SUFFIX}.0 -ln -s libe4xml${SHLIB_SUFFIX}.0.0.0 \ $(libdir)/libe4xml${SHLIB_SUFFIX} -ln -s libe4xml${SHLIB_SUFFIX}.0.0.0 \ $(libdir)/libe4xml${SHLIB_SUFFIX}.0 # Uninstall this package: uninstall: /bin/rm -f $(includedir)/e4xml.h /bin/rm -f $(libdir)/libe4xml${SHLIB_SUFFIX}.0.0.0 /bin/rm -f $(libdir)/libe4xml${SHLIB_SUFFIX} /bin/rm -f $(libdir)/libe4xml${SHLIB_SUFFIX}.0 # Release engineering: release: all mkdir -p $(release_tmp_dir)/include cp -p ../include/e4xml.h $(release_tmp_dir)/include/e4xml.h mkdir -p $(release_tmp_dir)/lib cp -p ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} \ $(release_tmp_dir)/lib/libe4xml${SHLIB_SUFFIX}.0.0.0 cp -p ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} \ $(release_tmp_dir)/lib/libe4xml${SHLIB_SUFFIX} cp -p ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} \ $(release_tmp_dir)/lib/libe4xml${SHLIB_SUFFIX}.0 # Create the library: ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX}: ${OBJECTS} -@mkdir -p ${PRODLIBDIR} ${SHLIB_LD} -o ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} \ ${OBJECTS} ${ALLLIBS} # Produce the include files: includes: -@mkdir -p ${PRODINCDIR} -@cp ${INCLUDE}/*.h ${PRODINCDIR} # Individual file targets: ${PRODOBJDIR}/e4xmlparser.o: ${SRC}/e4xmlparser.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmlparser.cpp -o $@ ${PRODOBJDIR}/e4xmlinputprocessor.o: ${SRC}/e4xmlinputprocessor.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmlinputprocessor.cpp \ -o $@ ${PRODOBJDIR}/e4xmlnvg.o: ${SRC}/e4xmlnvg.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmlnvg.cpp -o $@ ${PRODOBJDIR}/e4xmlgenerator.o: ${SRC}/e4xmlgenerator.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmlgenerator.cpp -o $@ ${PRODOBJDIR}/e4xmloutputstream.o: ${SRC}/e4xmloutputstream.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmloutputstream.cpp -o $@ ${PRODOBJDIR}/e4xmloutputprocessor.o: ${SRC}/e4xmloutputprocessor.cpp -@mkdir -p ${PRODOBJDIR} ${CXX} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4xmloutputprocessor.cpp \ -o $@ ${PRODOBJDIR}/e4base64.o: ${SRC}/e4base64.c -@mkdir -p ${PRODOBJDIR} ${CC} -c $(CXXFLAGS) $(ALLCPPFLAGS) ${SRC}/e4base64.c -o $@ # Clean: clean: -/bin/rm -f ${PRODLIBDIR}/libe4xml${SHLIB_SUFFIX} -/bin/rm -f ${OBJECTS} -/bin/rm -f *~ #*