diff options
Diffstat (limited to 'xml/Makefile.in')
-rw-r--r-- | xml/Makefile.in | 434 |
1 files changed, 434 insertions, 0 deletions
diff --git a/xml/Makefile.in b/xml/Makefile.in new file mode 100644 index 0000000..cc5c34d --- /dev/null +++ b/xml/Makefile.in @@ -0,0 +1,434 @@ +# +# "$Id: Makefile.in 439 2011-04-13 15:43:32Z mike $" +# +# Makefile for Mini-XML, a small XML-like file parsing library. +# +# Copyright 2003-2011 by Michael R Sweet. +# +# These coded instructions, statements, and computer programs are the +# property of Michael R Sweet and are protected by Federal copyright +# law. Distribution and use rights are outlined in the file "COPYING" +# which should have been included with this file. If this file is +# missing or damaged, see the license at: +# +# http://www.minixml.org/ +# + +# +# Compiler tools definitions... +# + +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ARCHFLAGS = @ARCHFLAGS@ +CC = @CC@ +CFLAGS = $(OPTIM) $(ARCHFLAGS) @CFLAGS@ @CPPFLAGS@ @PTHREAD_FLAGS@ +CP = @CP@ +DSO = @DSO@ +DSOFLAGS = @DSOFLAGS@ +LDFLAGS = $(OPTIM) $(ARCHFLAGS) @LDFLAGS@ +INSTALL = @INSTALL@ +LIBMXML = @LIBMXML@ +LIBS = @LIBS@ @PTHREAD_LIBS@ +LN = @LN@ -s +MKDIR = @MKDIR@ +OPTIM = @OPTIM@ +RANLIB = @RANLIB@ +RM = @RM@ -f +SHELL = /bin/sh + + +# +# Configured directories... +# + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +datarootdir = @datarootdir@ +includedir = @includedir@ +libdir = @libdir@ +mandir = @mandir@ +docdir = @docdir@ +BUILDROOT = $(DSTROOT) + + +# +# Install commands... +# + +INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755 -s +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_DIR = $(INSTALL) -d +INSTALL_LIB = $(LIBTOOL) $(INSTALL) -m 755 +INSTALL_MAN = $(INSTALL) -m 644 +INSTALL_SCRIPT = $(INSTALL) -m 755 + + +# +# Rules... +# + +.SILENT: +.SUFFIXES: .c .man .o +.c.o: + echo Compiling $< + $(CC) $(CFLAGS) -c -o $@ $< + + +# +# Targets... +# + +DOCFILES = doc/0.gif doc/1.gif doc/2.gif doc/3.gif doc/4.gif \ + doc/A.gif doc/B.gif doc/C.gif doc/D.gif \ + doc/mxml.html doc/mxmldoc.xsd \ + README COPYING CHANGES +PUBLIBOBJS = mxml-attr.o mxml-entity.o mxml-file.o mxml-get.o \ + mxml-index.o mxml-node.o mxml-search.o mxml-set.o +LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o +OBJS = mxmldoc.o testmxml.o $(LIBOBJS) +TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man + + +# +# Make everything... +# + +all: Makefile config.h $(TARGETS) + + +# +# Clean everything... +# + +clean: + echo Cleaning build files... + $(RM) $(OBJS) $(TARGETS) + $(RM) mxmldoc-static libmxml.a libmxml.so.1.5 libmxml.sl.1 libmxml.1.dylib + + +# +# Really clean everything... +# + +distclean: clean + echo Cleaning distribution files... + $(RM) config.cache config.log config.status + $(RM) Makefile config.h + $(RM) -r autom4te*.cache + $(RM) *.bck *.bak + $(RM) -r clang + + +# +# Run the clang.llvm.org static code analysis tool on the C sources. +# + +.PHONY: clang clang-changes +clang: + echo Doing static code analysis of all code using CLANG... + $(RM) -r clang + scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) clean all +clang-changes: + echo Doing static code analysis of changed code using CLANG... + scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) all + + +# +# Install everything... +# + +install: $(TARGETS) install-$(LIBMXML) install-libmxml.a + echo Installing mxmldoc in $(BUILDROOT)$(bindir)... + $(INSTALL_DIR) $(BUILDROOT)$(bindir) + $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) + echo Installing documentation in $(BUILDROOT)$(docdir)... + $(INSTALL_DIR) $(BUILDROOT)$(docdir) + for file in $(DOCFILES); do \ + $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ + done + echo Installing header files in $(BUILDROOT)$(includedir)... + $(INSTALL_DIR) $(BUILDROOT)$(includedir) + $(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir) + echo Installing pkgconfig files in $(BUILDROOT)$(libdir)/pkgconfig... + $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig + $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig + echo Installing man pages in $(BUILDROOT)$(mandir)... + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1 + $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1 + $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3 + $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3 + +install-libmxml.a: + echo Installing libmxml.a to $(BUILDROOT)$(libdir)... + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.a $(BUILDROOT)$(libdir) + $(RANLIB) $(BUILDROOT)$(libdir)/libmxml.a + +install-libmxml.so.1.5: + echo Installing libmxml.so to $(BUILDROOT)$(libdir)... + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.so.1.5 $(BUILDROOT)$(libdir) + $(RM) $(BUILDROOT)$(libdir)/libmxml.so + $(LN) libmxml.so.1.5 $(BUILDROOT)$(libdir)/libmxml.so + $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1 + $(LN) libmxml.so.1.5 $(BUILDROOT)$(libdir)/libmxml.so.1 + +install-libmxml.sl.1: + echo Installing libmxml.sl to $(BUILDROOT)$(libdir)... + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.sl.1 $(BUILDROOT)$(libdir) + $(RM) $(BUILDROOT)$(libdir)/libmxml.so + $(LN) libmxml.sl.1 $(BUILDROOT)$(libdir)/libmxml.sl + +install-libmxml.1.dylib: + echo Installing libmxml.dylib to $(BUILDROOT)$(libdir)... + $(INSTALL_DIR) $(BUILDROOT)$(libdir) + $(INSTALL_LIB) libmxml.1.dylib $(BUILDROOT)$(libdir) + $(RM) $(BUILDROOT)$(libdir)/libmxml.dylib + $(LN) libmxml.1.dylib $(BUILDROOT)$(libdir)/libmxml.dylib + + +# +# Uninstall everything... +# + +uninstall: uninstall-$(LIBMXML) uninstall-libmxml.a + echo Uninstalling mxmldoc from $(BUILDROOT)$(bindir)... + $(RM) $(BUILDROOT)$(bindir)/mxmldoc + echo Uninstalling documentation from $(BUILDROOT)$(docdir)... + $(RM) -r $(BUILDROOT)$(docdir) + echo Uninstalling headers from $(BUILDROOT)$(includedir)... + $(RM) $(BUILDROOT)$(includedir)/mxml.h + echo Uninstalling pkgconfig files from $(BUILDROOT)$(libdir)/pkgconfig... + $(RM) $(BUILDROOT)$(libdir)/pkgconfig/mxml.pc + echo Uninstalling man pages from $(BUILDROOT)$(mandir)... + $(RM) $(BUILDROOT)$(mandir)/man1/mxmldoc.1 + $(RM) $(BUILDROOT)$(mandir)/man3/mxml.3 + +uninstall-libmxml.a: + echo Uninstalling libmxml.a from $(BUILDROOT)$(libdir)... + $(RM) $(BUILDROOT)$(libdir)/libmxml.a + +uninstall-libmxml.so.1.5: + echo Uninstalling libmxml.so from $(BUILDROOT)$(libdir)... + $(RM) $(BUILDROOT)$(libdir)/libmxml.so + $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1 + $(RM) $(BUILDROOT)$(libdir)/libmxml.so.1.4 + +uninstall-libmxml.sl.1: + echo Uninstalling libmxml.sl from $(BUILDROOT)$(libdir)... + $(RM) $(BUILDROOT)$(libdir)/libmxml.sl + $(RM) $(BUILDROOT)$(libdir)/libmxml.sl.1 + +uninstall-libmxml.1.dylib: + echo Uninstalling libmxml.dylib from $(BUILDROOT)$(libdir)... + $(RM) $(BUILDROOT)$(libdir)/libmxml.dylib + $(RM) $(BUILDROOT)$(libdir)/libmxml.1.dylib + + +# +# Make packages using EPM (http://www.epmhome.org/) +# + +epm: all + echo Creating distribution packages... + epm --output-dir dist -v -f native mxml + epm --output-dir dist -v -f portable mxml + + +# +# autoconf stuff... +# + +Makefile: configure Makefile.in + echo Updating makefile... + if test -f config.status; then \ + ./config.status --recheck; \ + ./config.status; \ + else \ + ./configure; \ + fi + touch config.h + + +config.h: configure config.h.in + echo Updating config.h... + autoconf + if test -f config.status; then \ + ./config.status --recheck; \ + ./config.status; \ + else \ + ./configure; \ + fi + touch config.h + + +# +# Figure out lines-of-code... +# + +.PHONY: sloc + +sloc: + echo "libmxml: \c" + sloccount $(LIBOBJS:.o=.c) mxml-private.c mxml.h 2>/dev/null | \ + grep "Total Physical" | awk '{print $$9}' + + +# +# libmxml.a +# + +libmxml.a: $(LIBOBJS) + echo Creating $@... + $(RM) $@ + $(AR) $(ARFLAGS) $@ $(LIBOBJS) + $(RANLIB) $@ + +$(LIBOBJS): mxml.h +mxml-entity.o mxml-file.o mxml-private.o: mxml-private.h + + +# +# libmxml.so.1.5 +# + +libmxml.so.1.5: $(LIBOBJS) + echo Creating $@... + $(DSO) $(DSOFLAGS) -o libmxml.so.1.5 $(LIBOBJS) + $(RM) libmxml.so libmxml.so.1 + $(LN) libmxml.so.1.5 libmxml.so + $(LN) libmxml.so.1.5 libmxml.so.1 + + +# +# libmxml.sl.1 +# + +libmxml.sl.1: $(LIBOBJS) + echo Creating $@... + $(DSO) $(DSOFLAGS) -o libmxml.sl.1 $(LIBOBJS) + $(RM) libmxml.sl + $(LN) libmxml.sl.1 libmxml.sl + + +# +# libmxml.1.dylib +# + +libmxml.1.dylib: $(LIBOBJS) + echo Creating $@... + $(DSO) $(DSOFLAGS) -o libmxml.1.dylib \ + -install_name $(libdir)/libmxml.dylib \ + -current_version 1.5.0 \ + -compatibility_version 1.0.0 \ + $(LIBOBJS) + $(RM) libmxml.dylib + $(LN) libmxml.1.dylib libmxml.dylib + + +# +# mxmldoc +# + +mxmldoc: $(LIBMXML) mxmldoc.o + echo Linking $@... + $(CC) -L. $(LDFLAGS) -o $@ mxmldoc.o -lmxml $(LIBS) + +mxmldoc-static: libmxml.a mxmldoc.o + echo Linking $@... + $(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a $(LIBS) + +mxmldoc.o: mxml.h + + +# +# testmxml +# + +testmxml: libmxml.a testmxml.o + echo Linking $@... + $(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS) + @echo Testing library... + ./testmxml test.xml >temp1.xml 2>temp1s.xml + ./testmxml temp1.xml >temp2.xml 2>temp2s.xml + @if cmp temp1.xml temp2.xml; then \ + echo Stdio file test passed!; \ + $(RM) temp2.xml temp2s.xml; \ + else \ + echo Stdio file test failed!; \ + fi + @if cmp temp1.xml temp1s.xml; then \ + echo String test passed!; \ + $(RM) temp1.xml temp1s.xml; \ + else \ + echo String test failed!; \ + fi + @if cmp test.xml test.xmlfd; then \ + echo File descriptor test passed!; \ + $(RM) test.xmlfd; \ + else \ + echo File descriptor test failed!; \ + fi + +testmxml-vg: $(LIBOBJS) testmxml.o + echo Linking $@... + $(CC) $(LDFLAGS) -o $@ testmxml.o $(LIBOBJS) $(LIBS) + +testmxml.o: mxml.h + + +# +# mxml.xml +# + +mxml.xml: mxmldoc-static mxml.h $(PUBLIBOBJS:.o=.c) + echo Generating API documentation... + $(RM) mxml.xml + ./mxmldoc-static --header doc/reference.heading mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html + if test "x`uname`" = xDarwin; then \ + ./mxmldoc-static --docset org.minixml.docset \ + --docversion @VERSION@ --feedname minixml.org \ + --feedurl http://www.minixml.org/org.minixml.atom \ + --header doc/docset.header --intro doc/docset.intro \ + --css doc/docset.css --title "Mini-XML API Reference" \ + mxml.xml || exit 1; \ + $(RM) org.minixml.atom; \ + /Developer/usr/bin/docsetutil package --output org.minixml.xar \ + --atom org.minixml.atom \ + --download-url http://www.minixml.org/org.minixml.xar \ + org.minixml.docset || exit 1; \ + fi + +valgrind: mxmldoc-static + echo Doing dynamic code analysis using Valgrind... + $(RM) valgrind.xml + valgrind --tool=memcheck --leak-check=yes ./mxmldoc-static \ + valgrind.xml mxml.h $(PUBLIBOBJS:.o=.c) \ + >valgrind.html 2>valgrind.out + + +# +# doc/mxml.man +# + +doc/mxml.man: mxmldoc-static mxml.xml + echo "Generating mxml(3) man page..." + $(RM) doc/mxml.man + ./mxmldoc-static --man mxml --title "Mini-XML API" \ + --intro doc/intro.man --footer doc/footer.man \ + mxml.xml >doc/mxml.man + + +# +# All object files depend on the makefile... +# + +$(OBJS): Makefile config.h + + +# +# End of "$Id: Makefile.in 439 2011-04-13 15:43:32Z mike $". +# |