1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
|
# Makefile.in -- Makefile for libmaa
# Created: Sun Nov 19 13:32:41 1995 by faith@cs.unc.edu
# Revised: Wed May 21 00:28:08 1997 by faith@acm.org
# Copyright 1995, 1996, 1997 Rickard E. Faith (faith@acm.org)
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 1, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id: Makefile.in,v 1.36 1997/05/21 05:24:16 faith Exp $
#
ifneq (,)
This makefile requires GNU Make.
endif
MAA_MAJOR=@MAA_MAJOR@
MAA_MINOR=@MAA_MINOR@
VER=$(MAA_MAJOR).$(MAA_MINOR)
VERSION=$(VER).$(shell fgrep Revision version.c \
| head -1 \
| sed 's,^.*Revision: [^.]*.,,' \
| sed 's, $$.*$$,,')
.SUFFIXES:
.SUFFIXES: .c .o
srcdir= @srcdir@
VPATH= @srcdir@
prefix= @prefix@
exec_prefix= @exec_prefix@
libdir= @libdir@
includedir= @includedir@
subdirs= @subdirs@ doc
SHELL= /bin/sh
CC= @CC@
CPP= @CPP@
RANLIB= @RANLIB@
INSTALL= @INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA= @INSTALL_DATA@
CFLAGS= @CFLAGS@
LDFLAGS= @LDFLAGS@
VFLAGS= -DMAA_MAJOR=$(MAA_MAJOR) -DMAA_MINOR=$(MAA_MINOR)
XTRACFLAGS= @WCFLAGS@ @XTRACFLAGS@ @DEFS@ $(VFLAGS) @CPPFLAGS@ -I.
XTRALDFLAGS= @WLDFLAGS@ @XTRALDFLAGS@ -L.
RPATHFLAGS= @RPATHFLAGS@
LDLIBS= -lmaa @LIBS@ -lm
LDSHARED= @LDSHARED@
HEADERS= config.h maa.h maaP.h decl.h obstack.h @XTRAHEADERS@
LIBOBJS= @LIBOBJS@ obstack.o getopt.o getopt1.o \
hash.o set.o stack.o list.o error.o memory.o string.o \
debug.o flags.o maa.o prime.o bit.o timer.o version.o \
arg.o pr.o sl.o base64.o base26.o source.o parse.o parse-concrete.o \
text.o log.o
TESTS= settest hashtest stringtest debugtest \
primetest listtest bittest argtest sltest prtest basetest
EXES= memtest prtest
LIBS= @TARGETLIBS@
lib: $(LIBS)
all: $(LIBS) $(EXES) $(TESTS)
echo making $@ in doc; \
(cd doc && $(MAKE) $@) || exit 1;
install: $(LIBS)
install -m 644 libmaa.a $(libdir)
install -m 644 maa.h $(includedir)
if [ -e libmaa.so.$(VERSION) ]; then \
install -m 755 libmaa.so.$(VERSION) $(libdir); \
cd $(libdir); \
rm -f libmaa.so libmaa.so.$(VER); \
ln -s libmaa.so.$(VERSION) libmaa.so; \
ln -s libmaa.so.$(VERSION) libmaa.so.$(VER); \
fi
tests: $(TESTS)
@for i in $(TESTS); do \
./$$i | fgrep -v ' at ' > ./$$i.out.new; \
if cmp ./$$i.out $$i.out.new; \
then echo PASSED $$i; rm -f $$i.out.new; \
else echo FAILED $$i; \
fi; \
done
tests-update: $(TESTS)
@for i in $(TESTS); do \
echo Writing $$i.out; \
./$$i | fgrep -v ' at ' > $$i.out; \
done
%.o: %.c
$(CC) -c $(XTRACFLAGS) $(CFLAGS) $<
%: %.o
$(CC) $(XTRALDFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
ALLFLAGS=$(XTRACFLAGS) $(CFLAGS) $(XTRALDFLAGS) $(LDFLAGS)
%: %.c
$(CC) $(ALLFLAGS) -o $@ $< $(LDLIBS)
%test: %test.c rnd.o
$(CC) $(ALLFLAGS) $(RPATHFLAGS) -o $@ $< rnd.o $(LDLIBS)
dmalloc/dmalloc.h:
echo making all in dmalloc
(cd dmalloc && $(MAKE) all) || exit 1
libmaa.a: $(LIBOBJS)
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
-@ ($(RANLIB) $@ || true) 2> /dev/null
libmaa.so: $(LIBOBJS)
$(LDSHARED) -o libmaa.so.$(VERSION) $(LIBOBJS)
-rm -f libmaa.so libmaa.so.$(VER)
ln -s libmaa.so.$(VERSION) libmaa.so.$(VER)
ln -s libmaa.so.$(VERSION) libmaa.so
$(LIBOBJS): $(HEADERS) # version.stamp # don't automatically bump version
$(EXES): $(HEADERS) $(LIBS)
$(TESTS): $(HEADERS) $(LIBS) rnd.o
date := $(shell date)
version.stamp: version.c
cp version.c version.tmp
echo "/* Stamp: `date` */" > version.c
fgrep Revision < version.tmp | tail -1 >> version.c
touch version.stamp
-rm -f version.tmp
version.c:
echo "/* Stamp: `date` */" > version.c
echo 'const char *maa_revision_string = "XRevisionX";' | \
sed 's/X/$$/g' >> version.c
.PHONY: ChangeLog
ChangeLog:
(echo "***** Making new ChangeLog..."; \
rm -f ChangeLog; \
AWK=gawk rcs2log -i 2 > ChangeLog)
dist: ChangeLog
@( echo "Consider making version.stamp to bump version number"; \
CVSROOT=`cat CVS/Root`; \
export CVSROOT; \
VERSION=$(MAA_MAJOR).$(MAA_MINOR).`fgrep Revision version.c \
| head -1 \
| sed 's,^.*Revision: [^.]*.,,' \
| sed 's, $$.*$$,,'`; \
export VERSION; \
echo "***** Copying ChangeLog for libmaa-$${VERSION}..."; \
cp ChangeLog /tmp; \
echo "***** Exporting files for libmaa-$${VERSION}..."; \
cd /tmp; \
rm -rf /tmp/libmaa-$${VERSION}; \
cvs export -fNd libmaa-$${VERSION} -r HEAD libmaa; \
cd libmaa-$${VERSION}; \
autoconf; \
mv ../ChangeLog .; \
cd ..; \
echo "***** Taring and zipping libmaa-$${VERSION}.tar.gz..."; \
tar cvvf libmaa-$${VERSION}.tar libmaa-$${VERSION}; \
gzip -9 libmaa-$${VERSION}.tar; \
echo "***** Done making /tmp/libmaa-$${VERSION}.tar.gz")
.PHONY: clean cleandist tags
clean:
@for subdir in $(subdirs); do \
echo making $@ in $$subdir; \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
-rm -f *.o *.s *~ core a.out config.log $(TESTS) $(EXES)
-rm -f $(LIBS) libmaa.so.*
-rm -f *.log *.aux *.toc *.dvi *.ps *.out.new
-rm -f *.cfg *.dtk .inslog tca.map .pure
-rm -f version.stamp version.tmp mkrnd
distclean: clean
@for subdir in $(subdirs); do \
echo making $@ in $$subdir; \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
-rm -f config.h config.cache config.status stamp-h.in stamp-h
-rm -f Makefile
# -rm -f configure Makefile ## If configure is removed, autoconf is
# ## required after make distclean
tags:
etags: *.c
# The following is based on the "Automatic Remaking" node in the GNU
# Autoconf documentation:
$(srcdir)/configure: configure.in
cd $(srcdir) && autoconf
# autoheader might not change config.h.in, so touch a stamp file.
${srcdir}/config.h.in: stamp-h.in
${srcdir}/stamp-h.in: configure.in
cd ${srcdir} && autoheader
date > ${srcdir}/stamp-h.in
config.h: stamp-h
stamp-h: config.h.in config.status
./config.status
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
|