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
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
80 install: xmlwf/xmlwf@EXEEXT@ installlib
81 $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
82 $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf@EXEEXT@ $(DESTDIR)$(bindir)/xmlwf
83 $(INSTALL_DATA) $(MANFILE) $(DESTDIR)$(man1dir)
85 installlib: $(LIBRARY) $(APIHEADER) expat.pc
86 $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) $(DESTDIR)$(pkgconfigdir)
87 $(LIBTOOL) --mode=install $(INSTALL) $(LIBRARY) $(DESTDIR)$(libdir)/$(LIBRARY)
88 for FN in $(APIHEADER) ; do $(INSTALL_DATA) $$FN $(DESTDIR)$(includedir) ; done
89 $(INSTALL_DATA) expat.pc $(DESTDIR)$(pkgconfigdir)/expat.pc
91 uninstall: uninstalllib
92 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(bindir)/xmlwf@EXEEXT@
93 rm -f $(DESTDIR)$(man1dir)/xmlwf.1
96 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(LIBRARY)
97 rm -f $(DESTDIR)$(includedir)/expat.h
98 rm -f $(DESTDIR)$(includedir)/expat_external.h
99 rm -f $(DESTDIR)$(pkgconfigdir)/expat.pc
101 # for VPATH builds (invoked by configure)
103 @for d in lib xmlwf examples tests ; do \
104 (mkdir $$d 2> /dev/null || test 1) ; \
111 INCLUDES = -I$(srcdir)/lib -I.
113 CPPFLAGS = @CPPFLAGS@ -DHAVE_EXPAT_CONFIG_H
115 CXXFLAGS = @CXXFLAGS@
116 VSNFLAG = -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@
117 CFLAG_VISIBILITY=@CFLAG_VISIBILITY@
122 COMPILE = $(CC) $(CLFAG_VISIBILITY) $(INCLUDES) $(CFLAGS) $(DEFS) $(CPPFLAGS)
123 CXXCOMPILE = $(CXX) $(INCLUDES) $(CXXFLAGS) $(DEFS) $(CPPFLAGS)
124 LTCOMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE)
125 LINK_LIB = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) -no-undefined $(VSNFLAG) -rpath $(libdir) $(LDFLAGS) -o $@
126 LINK_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) $(LDFLAGS) -o $@
127 LINK_CXX_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CXXCOMPILE) $(LDFLAGS) -o $@
129 LIB_OBJS = lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo
130 $(LIBRARY): $(LIB_OBJS)
131 $(LINK_LIB) $(LIB_OBJS)
133 expat.pc: $(top_builddir)/config.status
134 cd $(top_builddir) && $(SHELL) ./config.status $@
136 lib/xmlparse.lo: lib/xmlparse.c lib/expat.h lib/xmlrole.h lib/xmltok.h \
137 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
139 lib/xmlrole.lo: lib/xmlrole.c lib/ascii.h lib/xmlrole.h \
140 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
142 lib/xmltok.lo: lib/xmltok.c lib/xmltok_impl.c lib/xmltok_ns.c \
143 lib/ascii.h lib/asciitab.h lib/iasciitab.h lib/latin1tab.h \
144 lib/nametab.h lib/utf8tab.h lib/xmltok.h lib/xmltok_impl.h \
145 $(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
148 XMLWF_OBJS = xmlwf/xmlwf.@OBJEXT@ xmlwf/xmlfile.@OBJEXT@ xmlwf/codepage.@OBJEXT@ xmlwf/@FILEMAP@.@OBJEXT@
149 xmlwf/xmlwf.@OBJEXT@: xmlwf/xmlwf.c
150 xmlwf/xmlfile.@OBJEXT@: xmlwf/xmlfile.c
151 xmlwf/codepage.@OBJEXT@: xmlwf/codepage.c
152 xmlwf/@FILEMAP@.@OBJEXT@: xmlwf/@FILEMAP@.c
153 xmlwf/xmlwf@EXEEXT@: $(XMLWF_OBJS) $(LIBRARY)
154 $(LINK_EXE) $(XMLWF_OBJS) $(LIBRARY)
156 examples/elements.@OBJEXT@: examples/elements.c
157 examples/elements: examples/elements.@OBJEXT@ $(LIBRARY)
158 $(LINK_EXE) $< $(LIBRARY)
160 examples/outline.@OBJEXT@: examples/outline.c
161 examples/outline: examples/outline.@OBJEXT@ $(LIBRARY)
162 $(LINK_EXE) $< $(LIBRARY)
164 tests/chardata.@OBJEXT@: tests/chardata.c tests/chardata.h
165 tests/minicheck.@OBJEXT@: tests/minicheck.c tests/minicheck.h
166 tests/runtests.@OBJEXT@: tests/runtests.c tests/chardata.h
167 tests/runtests: tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
168 $(LINK_EXE) tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
169 tests/runtestspp.@OBJEXT@: tests/runtestspp.cpp tests/runtests.c tests/chardata.h
170 tests/runtestspp: tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
171 $(LINK_CXX_EXE) tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
173 tests/benchmark/benchmark.@OBJEXT@: tests/benchmark/benchmark.c
174 tests/benchmark/benchmark: tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
175 $(LINK_EXE) tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
177 run-benchmark: tests/benchmark/benchmark
178 tests/benchmark/benchmark@EXEEXT@ -n $(top_srcdir)/../testdata/largefiles/recset.xml 65535 3
181 wget --output-document=tests/xmlts.zip \
182 http://www.w3.org/XML/Test/xmlts20080827.zip
184 tests/XML-Test-Suite: tests/xmlts.zip
185 cd tests && unzip -q xmlts.zip
187 run-xmltest: xmlwf/xmlwf@EXEEXT@ tests/XML-Test-Suite
190 .SUFFIXES: .c .cpp .lo .@OBJEXT@
193 $(CXXCOMPILE) -o $@ -c $<
195 $(COMPILE) -o $@ -c $<
197 $(LTCOMPILE) -o $@ -c $<
199 .PHONY: buildlib all \
200 clean distclean extraclean maintainer-clean \