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
|
# Makefile for compiling, testing, and installing Mathomatic under any UNIX like OS.
# Currently uses gcc only options in CFLAGS, just remove them for other C compilers.
VERSION = `cat VERSION`
CFLAGS += -Wuninitialized -Wunused -Wshadow -Wformat -Wparentheses -Wcast-align
CFLAGS += -O -DUNIX -DVERSION=\"$(VERSION)\"
LDFLAGS += -s
LIBS += -lm
CFLAGS += $(READLINE:1=-DREADLINE)
LIBS += $(READLINE:1=-lreadline -lncurses)
prefix ?= /usr/local
bindir ?= $(prefix)/bin
mandir ?= $(prefix)/man
docdir ?= $(prefix)/share/doc
AOUT = mathomatic
TARGETS = $(AOUT) doc/manpage.html
OBJECTS = main.o globals.o am.o solve.o help.o parse.o cmds.o simplify.o \
factor.o super.o unfactor.o poly.o diff.o integrate.o \
complex.o complex_lib.o list.o gcd.o factor_int.o
MAN1 = mathomatic.1
DOCS = COPYING README.txt changes.txt
all: $(TARGETS)
@echo Make completed.
check test: $(TARGETS)
cd tests && time ../$(AOUT) -t all >test.out && diff -u all.out test.out
@rm tests/test.out
@echo All tests passed.
baseline: $(TARGETS)
cd tests && time ../$(AOUT) -t all >all.out
@rm -f tests/test.out
$(OBJECTS): includes.h am.h externs.h complex.h proto.h VERSION
$(AOUT): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(AOUT)
doc/manpage.html: mathomatic.1
groff -Thtml -man mathomatic.1 >doc/manpage.html
install:
install -d $(bindir)
install -d $(mandir)/man1
install -d $(docdir)/mathomatic
install -d $(docdir)/mathomatic/html
install -d $(docdir)/mathomatic/tests
install -d $(docdir)/mathomatic/fact
install -m 0755 $(AOUT) $(bindir)
install -m 0644 $(MAN1) $(mandir)/man1
install -m 0644 $(DOCS) $(docdir)/mathomatic
install -m 0644 doc/* $(docdir)/mathomatic/html
install -m 0644 tests/* $(docdir)/mathomatic/tests
install -m 0644 fact/* $(docdir)/mathomatic/fact
@echo Install completed.
uninstall:
rm -f $(bindir)/$(AOUT)
cd $(mandir)/man1 && rm -f $(MAN1)
rm -rf $(docdir)/mathomatic
@echo Uninstall completed.
clean:
rm -f *.o *.a
rm -f lib/*.o lib/*.a
flush: clean
rm -f $(AOUT)
|