1 ################################################################
2 # Process this file with top-level configure script to produce Makefile
4 # Copyright 2000 Clark Cooper
6 # This file is part of EXPAT.
8 # EXPAT is free software; you can redistribute it and/or modify it
9 # under the terms of the License (based on the MIT/X license) contained
10 # in the file COPYING that comes with this distribution.
12 # EXPAT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15 # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
16 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
17 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
18 # SOFTWARE OR THE USE OR OTHER DEALINGS IN EXPAT.
24 top_srcdir = @top_srcdir@
28 exec_prefix = @exec_prefix@
32 includedir = @includedir@
33 man1dir = @mandir@/man1
34 pkgconfigdir = $(libdir)/pkgconfig
40 INSTALL_PROGRAM = @INSTALL_PROGRAM@
41 INSTALL_DATA = @INSTALL_DATA@
42 mkinstalldirs = $(SHELL) $(top_srcdir)/conftools/mkinstalldirs
44 MANFILE = $(srcdir)/doc/xmlwf.1
45 APIHEADER = $(srcdir)/lib/expat.h $(srcdir)/lib/expat_external.h expat_config.h
48 DESTDIR = $(INSTALL_ROOT)
50 default: buildlib xmlwf/xmlwf@EXEEXT@
52 buildlib: $(LIBRARY) expat.pc
54 all: $(LIBRARY) expat.pc xmlwf/xmlwf@EXEEXT@ examples/elements examples/outline $(MANFILE)
57 cd lib && rm -f $(LIBRARY) *.@OBJEXT@ *.lo && rm -rf .libs _libs
58 cd xmlwf && rm -f xmlwf *.@OBJEXT@ *.lo && rm -rf .libs _libs
59 cd examples && rm -f elements outline *.@OBJEXT@ *.lo && rm -rf .libs _libs
60 cd tests && rm -rf .libs runtests runtests.@OBJEXT@ runtestspp runtestspp.@OBJEXT@
61 cd tests && rm -f chardata.@OBJEXT@ minicheck.@OBJEXT@
62 rm -rf .libs libexpat.la
63 rm -f examples/core tests/core xmlwf/core
68 rm -f expat_config.h config.status config.log config.cache libtool
69 rm -f Makefile expat.pc
72 rm -f expat_config.h.in configure
74 rm -f conftools/ltmain.sh conftools/install-sh conftools/config.guess conftools/config.sub
76 check: tests/runtests tests/runtestspp
81 $(MAKE) -C doc xmlwf.1
83 install: xmlwf/xmlwf@EXEEXT@ installlib $(MANFILE)
84 $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
85 $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf@EXEEXT@ $(DESTDIR)$(bindir)/xmlwf
86 $(INSTALL_DATA) $(MANFILE) $(DESTDIR)$(man1dir)
88 installlib: $(LIBRARY) $(APIHEADER) expat.pc
89 $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) $(DESTDIR)$(pkgconfigdir)
90 $(LIBTOOL) --mode=install $(INSTALL) $(LIBRARY) $(DESTDIR)$(libdir)/$(LIBRARY)
91 for FN in $(APIHEADER) ; do $(INSTALL_DATA) $$FN $(DESTDIR)$(includedir) ; done
92 $(INSTALL_DATA) expat.pc $(DESTDIR)$(pkgconfigdir)/expat.pc
94 uninstall: uninstalllib
95 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(bindir)/xmlwf@EXEEXT@
96 rm -f $(DESTDIR)$(man1dir)/xmlwf.1
99 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(LIBRARY)
100 rm -f $(DESTDIR)$(includedir)/expat.h
101 rm -f $(DESTDIR)$(includedir)/expat_external.h
102 rm -f $(DESTDIR)$(pkgconfigdir)/expat.pc
104 # for VPATH builds (invoked by configure)
106 @for d in lib xmlwf examples tests ; do \
107 (mkdir $$d 2> /dev/null || test 1) ; \
114 INCLUDES = -I$(srcdir)/lib -I.
116 CPPFLAGS = @CPPFLAGS@ -DHAVE_EXPAT_CONFIG_H
118 CXXFLAGS = @CXXFLAGS@
119 VSNFLAG = -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@
124 COMPILE = $(CC) $(INCLUDES) $(CFLAGS) $(DEFS) $(CPPFLAGS)
125 CXXCOMPILE = $(CXX) $(INCLUDES) $(CXXFLAGS) $(DEFS) $(CPPFLAGS)
126 LTCOMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE)
127 LINK_LIB = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) -no-undefined $(VSNFLAG) -rpath $(libdir) $(LDFLAGS) -o $@
128 LINK_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) $(LDFLAGS) -o $@
129 LINK_CXX_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CXXCOMPILE) $(LDFLAGS) -o $@
131 LIB_OBJS = lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo
132 $(LIBRARY): $(LIB_OBJS)
133 $(LINK_LIB) $(LIB_OBJS)
135 expat.pc: $(top_builddir)/config.status
136 cd $(top_builddir) && $(SHELL) ./config.status $@
138 lib/xmlparse.lo: lib/xmlparse.c lib/expat.h lib/xmlrole.h lib/xmltok.h \
139 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
141 lib/xmlrole.lo: lib/xmlrole.c lib/ascii.h lib/xmlrole.h \
142 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
144 lib/xmltok.lo: lib/xmltok.c lib/xmltok_impl.c lib/xmltok_ns.c \
145 lib/ascii.h lib/asciitab.h lib/iasciitab.h lib/latin1tab.h \
146 lib/nametab.h lib/utf8tab.h lib/xmltok.h lib/xmltok_impl.h \
147 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
150 XMLWF_OBJS = xmlwf/xmlwf.@OBJEXT@ xmlwf/xmlfile.@OBJEXT@ xmlwf/codepage.@OBJEXT@ xmlwf/@FILEMAP@.@OBJEXT@
151 xmlwf/xmlwf.@OBJEXT@: xmlwf/xmlwf.c
152 xmlwf/xmlfile.@OBJEXT@: xmlwf/xmlfile.c
153 xmlwf/codepage.@OBJEXT@: xmlwf/codepage.c
154 xmlwf/@FILEMAP@.@OBJEXT@: xmlwf/@FILEMAP@.c
155 xmlwf/xmlwf@EXEEXT@: $(XMLWF_OBJS) $(LIBRARY)
156 $(LINK_EXE) $(XMLWF_OBJS) $(LIBRARY)
158 examples/elements.@OBJEXT@: examples/elements.c
159 examples/elements: examples/elements.@OBJEXT@ $(LIBRARY)
160 $(LINK_EXE) examples/elements.@OBJEXT@ $(LIBRARY)
162 examples/outline.@OBJEXT@: examples/outline.c
163 examples/outline: examples/outline.@OBJEXT@ $(LIBRARY)
164 $(LINK_EXE) examples/outline.@OBJEXT@ $(LIBRARY)
166 tests/chardata.@OBJEXT@: tests/chardata.c tests/chardata.h
167 tests/minicheck.@OBJEXT@: tests/minicheck.c tests/minicheck.h
168 tests/runtests.@OBJEXT@: tests/runtests.c tests/chardata.h
169 tests/runtests: tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
170 $(LINK_EXE) tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
171 tests/runtestspp.@OBJEXT@: tests/runtestspp.cpp tests/runtests.c tests/chardata.h
172 tests/runtestspp: tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
173 $(LINK_CXX_EXE) tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
175 tests/benchmark/benchmark.@OBJEXT@: tests/benchmark/benchmark.c
176 tests/benchmark/benchmark: tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
177 $(LINK_EXE) tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
179 run-benchmark: tests/benchmark/benchmark
180 tests/benchmark/benchmark@EXEEXT@ -n $(top_srcdir)/../testdata/largefiles/recset.xml 65535 3
183 wget --output-document=tests/xmlts.zip \
184 http://www.w3.org/XML/Test/xmlts20080827.zip
186 tests/xmlconf: tests/xmlts.zip
187 cd tests && unzip -q xmlts.zip
189 run-xmltest: xmlwf/xmlwf@EXEEXT@ tests/xmlconf
190 tests/xmltest.sh 2>&1 | tee tests/xmltest.log
191 diff -u tests/xmltest.log.expected tests/xmltest.log
200 .SUFFIXES: .c .cpp .lo .@OBJEXT@
203 $(CXXCOMPILE) -o $@ -c $<
205 $(COMPILE) -o $@ -c $<
207 $(LTCOMPILE) -o $@ -c $<
209 .PHONY: buildlib all \
210 clean distclean extraclean maintainer-clean \