File: makefile

package info (click to toggle)
mathomatic 14.0.6-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 1,108 kB
  • ctags: 659
  • sloc: ansic: 16,067; makefile: 160; python: 77; sh: 74
file content (105 lines) | stat: -rw-r--r-- 3,378 bytes parent folder | download
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
# 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 # gcc specific flags
CFLAGS		+= -O -DUNIX -DVERSION=\"$(VERSION)\" # C compiler flags
LDFLAGS		+= # linker flags
LIBS		+= -lm # libraries to link

# "make READLINE=1" to include readline support:
CFLAGS		+= $(READLINE:1=-DREADLINE)
LIBS		+= $(READLINE:1=-lreadline -lncurses)

# Install directories:
prefix		?= /usr/local
bindir		?= $(prefix)/bin
mandir		?= $(prefix)/man
docdir		?= $(prefix)/share/doc

DOC		= doc/mathomatic.1.html doc/matho-primes.1.html doc/matho-pascal.1.html doc/matho-sumsq.1.html
AOUT		= mathomatic

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		= VERSION AUTHORS COPYING README.txt changes.txt mathomatic.ico

all: $(AOUT) $(DOC) # make these by default
	@echo Make completed.

doc: $(DOC)

check test:
	@echo Testing Mathomatic...
	cd tests && time ../$(AOUT) -t all 0<&- >test.out && diff -u all.out test.out
	@rm tests/test.out
	@echo All tests passed.

baseline:
	cd tests && ../$(AOUT) -t all 0<&- >all.out
	@rm -f tests/test.out
	@echo File tests/all.out updated with current test output.

$(OBJECTS): includes.h am.h externs.h complex.h proto.h VERSION

$(AOUT): $(OBJECTS)
	$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(AOUT)

# Here we convert the man pages to HTML docs:
doc/mathomatic.1.html: mathomatic.1
	@rman --version # display version number and test for existence
	rman -f HTML mathomatic.1 >doc/mathomatic.1.html

doc/matho-primes.1.html: primes/matho-primes.1
	@rman --version
	rman -f HTML primes/matho-primes.1 >doc/matho-primes.1.html

doc/matho-pascal.1.html: primes/matho-pascal.1
	@rman --version
	rman -f HTML primes/matho-pascal.1 >doc/matho-pascal.1.html

doc/matho-sumsq.1.html: primes/matho-sumsq.1
	@rman --version
	rman -f HTML primes/matho-sumsq.1 >doc/matho-sumsq.1.html

install:
	install -d $(bindir)
	install -d $(mandir)/man1
	install -d $(docdir)/mathomatic
	install -d $(docdir)/mathomatic/html
	install -d $(docdir)/mathomatic/m4
	install -d $(docdir)/mathomatic/tests
	install -d $(docdir)/mathomatic/factorial
	install -d $(prefix)/share/applications
	install -d $(prefix)/share/pixmaps
	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 m4/* $(docdir)/mathomatic/m4
	install -m 0644 tests/* $(docdir)/mathomatic/tests
	install -m 0644 factorial/* $(docdir)/mathomatic/factorial
	install -m 0644 mathomatic.desktop $(prefix)/share/applications
	install -m 0644 mathomatic.png $(prefix)/share/pixmaps
	@echo Install completed.
	@echo Documentation is installed in $(docdir)/mathomatic/html

uninstall:
	rm -f $(bindir)/$(AOUT)
	cd $(mandir)/man1 && rm -f $(MAN1)
	rm -rf $(docdir)/mathomatic
	rm -f $(prefix)/share/applications/mathomatic.desktop
	rm -f $(prefix)/share/pixmaps/mathomatic.png
	@echo Uninstall completed.

clean:
	rm -f *.o *.a
	rm -f lib/*.o lib/*.a
	rm -f tests/test.out

flush: clean
	rm -f $(AOUT)
	rm -f mathomatic_secure