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