xref: /freebsd/lib/libc/regex/grot/Makefile (revision c98c98a8223bc8adeb36a3fa3be52e0c137dc1c9)
1# $FreeBSD$
2# You probably want to take -DREDEBUG out of CFLAGS, and put something like
3# -O in, *after* testing (-DREDEBUG strengthens testing by enabling a lot of
4# internal assertion checking).  Take -Dconst= out for an ANSI compiler.
5# Do not take -DPOSIX_MISTAKE out.  REGCFLAGS isn't important to you (it's
6# for my use in some special contexts).
7
8PATHS= ${.CURDIR}/.. ${.CURDIR}/../../locale ${.CURDIR}/../../../../include
9.PATH: ${PATHS}
10
11CFLAGS+= -DPOSIX_MISTAKE -DREDEBUG $(REGCFLAGS)
12.for incpath in ${PATHS}
13CFLAGS+= -I${incpath}
14.endfor
15
16# If you have an ANSI compiler, take -o out of MKHFLAGS.  If you want
17# the Berkeley __P macro, put -b in.
18MKHFLAGS =
19
20LDFLAGS =
21
22# If you have an ANSI environment, take limits.h and stdlib.h out of
23# HMISSING and take memmove out of SRCMISSING and OBJMISSING.
24HMISSING =
25SRCMISSING = split.c
26OBJMISSING = split.o
27H = cclass.h cname.h regex2.h utils.h $(HMISSING)
28REGSRC = regcomp.c regerror.c regexec.c regfree.c engine.c
29SRC = $(REGSRC) debug.c main.c $(SRCMISSING)
30
31# Internal stuff, should not need changing.
32OBJPRODN = regcomp.o regexec.o regerror.o regfree.o
33OBJS = $(OBJPRODN) debug.o main.o $(OBJMISSING)
34
35# Stuff that matters only if you're trying to lint the package.
36LINTFLAGS = -I. -Dstatic= -Dconst= -DREDEBUG
37LINTC = regcomp.c regexec.c regerror.c regfree.c debug.c main.c $(SRCMISSING)
38JUNKLINT =possible pointer alignment|null effect
39
40.SUFFIXES:	.ih .h
41.c.ih:
42	./mkh $(MKHFLAGS) -p $< >$@
43
44default:	r
45
46re:	$(OBJS)
47	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@
48
49o:	$(OBJPRODN)
50
51REGEXHSRC = regex2.h reg*.c
52h:	$(REGEXHSRC)
53	./mkh $(MKHFLAGS) -i _REGEX_H_ $(REGEXHSRC) >regex.tmp
54	cmp -s regex.tmp regex.h 2>/dev/null || cp regex.tmp regex.h
55	rm -f regex.tmp
56
57regcomp.o regexec.o regfree.o debug.o:	utils.h regex.h regex2.h
58regcomp.o:	cclass.h cname.h regcomp.ih
59regexec.o:	engine.c engine.ih
60regerror.o:	regerror.ih
61regerror.o:	utils.h
62debug.o:	debug.ih
63main.o:	main.ih
64
65r:	re tests
66	./re <tests
67	./re -el <tests
68	./re -er <tests
69
70ra:	./re tests
71	-./re <tests
72	-./re -el <tests
73	-./re -er <tests
74
75rx:	./re tests
76	./re -x <tests
77	./re -x -el <tests
78	./re -x -er <tests
79
80t:	./re tests
81	-time ./re <tests
82	-time ./re -cs <tests
83	-time ./re -el <tests
84	-time ./re -cs -el <tests
85
86e:	echeck re tests
87	./re -d <tests | awk -f echeck
88
89l:	$(LINTC)
90	lint $(LINTFLAGS) -h $(LINTC) 2>&1 | egrep -v '$(JUNKLINT)' | tee lint
91
92fullprint:
93	ti README WHATSNEW notes todo | hplist
94	ti *.h | hplist
95	hplist *.c
96	hplist regex.3 regex.7
97
98print:
99	ti README WHATSNEW notes todo | hplist
100	ti *.h | hplist
101	hplist reg*.c engine.c
102
103clean:	tidy
104	rm -f *.o *.s *.ih re
105
106tidy:
107	rm -f junk* core dtr regex.tmp lint
108
109spotless:	clean
110	rm -f mkh regex.h
111
112mkh:	/usr/henry/bin/mkh
113	cp $? $@
114
115DTRH = cclass.h cname.h regex2.h utils.h limits.h stdlib.h
116DTR = README WHATSNEW Makefile Makefile.44bsd mkh regex.3 regex.7 tests $(DTRH) $(SRC)
117dtr:	$(DTR)
118	makedtr $(DTR) >$@
119
120cio:	$(DTR)
121	cio $(DTR)
122
123rdf:	$(DTR)
124	rcsdiff -c $(DTR) 2>&1 | p
125