a13d856e8f
* use libtool to compile/link all programs * remove */Makefile.in and remove them from configure * remove autom4te.cache after running autoconf * remove .o from the FILEMAP logic in configure and the Make system; provides more flexibility in the Makefile to use it * for VPATH builds: create the build subdirs by running "make mkdir-init" from the configure script * adjust .cvsignore files to account for presence of .libs now
161 lines
4.6 KiB
Makefile
161 lines
4.6 KiB
Makefile
################################################################
|
|
# Process this file with top-level configure script to produce Makefile
|
|
#
|
|
# Copyright 2000 Clark Cooper
|
|
#
|
|
# This file is part of EXPAT.
|
|
#
|
|
# EXPAT is free software; you can redistribute it and/or modify it
|
|
# under the terms of the License (based on the MIT/X license) contained
|
|
# in the file COPYING that comes with this distribution.
|
|
#
|
|
# EXPAT 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 EXPAT.
|
|
#
|
|
# ---
|
|
# I started using automake, but
|
|
# 1) it seemed like overkill
|
|
# 2) I don't want all the GNU policies
|
|
# 3) I wanted more explicit control over what gets built
|
|
#
|
|
# So I'm doing my Makefile.in files manually. But a fair part is based
|
|
# on what I learned from perusing the Makefile.in's generated by automake,
|
|
# and the automake authors still get my kudos.
|
|
#
|
|
|
|
SHELL = @SHELL@
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
includedir = @includedir@
|
|
|
|
top_builddir = .
|
|
|
|
|
|
INSTALL = @INSTALL@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
mkinstalldirs = $(SHELL) $(top_srcdir)/conftools/mkinstalldirs
|
|
|
|
APIHEADER = expat.h
|
|
LIBRARY = libexpat.la
|
|
|
|
|
|
default: buildlib xmlwf/xmlwf
|
|
|
|
buildlib: lib/$(LIBRARY)
|
|
|
|
all: lib/$(LIBRARY) xmlwf/xmlwf examples/elements examples/outline
|
|
|
|
clean:
|
|
cd lib && rm -f $(LIBRARY) *.o *.lo && rm -rf .libs _libs
|
|
cd xmlwf && rm -f xmlwf *.o *.lo && rm -rf .libs _libs
|
|
cd examples && rm -f elements outline *.o *.lo && rm -rf .libs _libs
|
|
find . -name core | xargs rm -f
|
|
|
|
distclean: clean
|
|
rm -f config.h config.status config.log config.cache libtool
|
|
rm -f Makefile
|
|
|
|
extraclean: distclean
|
|
rm -f config.h.in configure
|
|
rm -f conftools/config.guess conftools/config.sub
|
|
rm -f conftools/ltconfig conftools/ltmain.sh
|
|
|
|
check: tests/runtests
|
|
@cd tests && ./runtests
|
|
|
|
install: xmlwf/xmlwf lib/$(LIBRARY) lib/$(APIHEADER)
|
|
$(mkinstalldirs) $(bindir) $(libdir) $(includedir)
|
|
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf $(bindir)/xmlwf
|
|
$(LIBTOOL) --mode=install $(INSTALL) lib/$(LIBRARY) $(libdir)/$(LIBRARY)
|
|
$(INSTALL_DATA) lib/$(APIHEADER) $(includedir)
|
|
|
|
uninstall:
|
|
$(LIBTOOL) --mode=uninstall rm -f $(bindir)/xmlwf
|
|
$(LIBTOOL) --mode=uninstall rm -f $(libdir)/$(LIBRARY)
|
|
rm -f $(libdir)/$(APIHEADER)
|
|
|
|
# for VPATH builds (invoked by configure)
|
|
mkdir-init:
|
|
@for d in lib xmlwf examples tests ; do \
|
|
(mkdir $$d 2> /dev/null || test 1) ; \
|
|
done
|
|
|
|
CC = @CC@
|
|
LIBTOOL = @LIBTOOL@
|
|
|
|
INCLUDES = -Ilib -I.
|
|
LDFLAGS = @LDFLAGS@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
CFLAGS = @CFLAGS@
|
|
VSNFLAG = -version-info @LIBCURRENT@:@LIBREVISION@:@LIBAGE@
|
|
|
|
### autoconf this?
|
|
LTFLAGS = --silent
|
|
|
|
COMPILE = $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $(INCLUDES)
|
|
LTCOMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE)
|
|
LINK_LIB = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) $(VSNFLAG) -rpath $(libdir) $(LDFLAGS) -o $@
|
|
LINK_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) $(LDFLAGS) -o $@
|
|
|
|
LIB_OBJS = lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo
|
|
lib/$(LIBRARY): $(LIB_OBJS)
|
|
$(LINK_LIB) $(LIB_OBJS)
|
|
|
|
lib/xmlparse.lo: lib/xmlparse.c lib/expat.h lib/xmlrole.h lib/xmltok.h \
|
|
$(top_builddir)/config.h
|
|
|
|
lib/xmlrole.lo: lib/xmlrole.c lib/ascii.h lib/xmlrole.h \
|
|
$(top_builddir)/config.h
|
|
|
|
lib/xmltok.lo: lib/xmltok.c lib/xmltok_impl.c lib/xmltok_ns.c \
|
|
lib/ascii.h lib/asciitab.h lib/iasciitab.h lib/latin1tab.h \
|
|
lib/nametab.h lib/utf8tab.h lib/xmltok.h lib/xmltok_impl.h \
|
|
$(top_builddir)/config.h
|
|
|
|
|
|
XMLWF_OBJS = xmlwf/xmlwf.o xmlwf/xmlfile.o xmlwf/codepage.o xmlwf/@FILEMAP@.o
|
|
xmlwf/xmlwf.o: xmlwf/xmlwf.c
|
|
xmlwf/xmlfile.o: xmlwf/xmlfile.c
|
|
xmlwf/codepage.o: xmlwf/codepage.c
|
|
xmlwf/@FILEMAP@.o: xmlwf/@FILEMAP@.c
|
|
xmlwf/xmlwf: $(XMLWF_OBJS)
|
|
$(LINK_EXE) $(XMLWF_OBJS) lib/$(LIBRARY)
|
|
|
|
examples/elements.o: examples/elements.c
|
|
examples/elements: examples/elements.o
|
|
$(LINK_EXE) $< lib/$(LIBRARY)
|
|
|
|
examples/outline.o: examples/outline.c
|
|
examples/outline: examples/outline.o
|
|
$(LINK_EXE) $< lib/$(LIBRARY)
|
|
|
|
tests/runtests.o: tests/runtests.c
|
|
tests/runtests: tests/runtests.o
|
|
$(LINK_EXE) $< lib/$(LIBRARY)
|
|
|
|
.SUFFIXES: .c .lo .o
|
|
|
|
.c.o:
|
|
$(COMPILE) -o $@ -c $<
|
|
.c.lo:
|
|
$(LTCOMPILE) -o $@ -c $<
|
|
|
|
.PHONY: buildlib all \
|
|
clean distclean extraclean maintainer-clean \
|
|
dist distdir \
|
|
install uninstall
|