xref: /openbsd/usr.bin/make/Makefile (revision 8529ddd3)
1#	$OpenBSD: Makefile,v 1.59 2015/01/23 22:35:57 espie Exp $
2
3PROG=	make
4CFLAGS+= -I${.OBJDIR} -I${.CURDIR}
5HOSTCFLAGS+= -I${.OBJDIR} -I${.CURDIR}
6CDIAGFLAGS=-Wall -W -Wno-char-subscripts -Wstrict-prototypes -pedantic \
7	-Wmissing-prototypes -Wdeclaration-after-statement -std=c99
8
9CDEFS+=-DHAS_BOOL_H
10CDEFS+=-DHAS_PATHS_H
11CDEFS+=-DHAS_EXTENDED_GETCWD
12#CDEFS+=-DHAS_STATS
13
14DPADD += ${LIBUTIL}
15LDADD += -lutil
16CFLAGS+=${CDEFS}
17HOSTCFLAGS+=${CDEFS}
18
19SRCS=	arch.c buf.c cmd_exec.c compat.c cond.c dir.c direxpand.c dump.c \
20	engine.c \
21	error.c for.c init.c job.c lowparse.c main.c make.c memory.c parse.c \
22	parsevar.c str.c stats.c suff.c targ.c targequiv.c timestamp.c \
23	var.c varmodifiers.c varname.c
24
25.include "${.CURDIR}/lst.lib/Makefile.inc"
26
27CLEANFILES+=generate generate.o regress.o check
28
29CLEANFILES+= varhashconsts.h condhashconsts.h nodehashconsts.h
30
31beforedepend: varhashconsts.h condhashconsts.h nodehashconsts.h
32# may need tweaking if you add variable synonyms or change the hash function
33MAGICVARSLOTS=77
34MAGICCONDSLOTS=65
35
36varhashconsts.h: generate
37	${.OBJDIR}/generate 1 ${MAGICVARSLOTS} >$@.tmp && mv $@.tmp $@
38
39condhashconsts.h: generate
40	${.OBJDIR}/generate 2 ${MAGICCONDSLOTS} >$@.tmp && mv $@.tmp $@
41
42nodehashconsts.h: generate
43	${.OBJDIR}/generate 3 0 >$@.tmp && mv $@.tmp $@
44
45generate: generate.c stats.c memory.c ${DPADD}
46	${HOSTCC} ${HOSTCFLAGS} ${LDSTATIC} -o ${.TARGET} ${.ALLSRC} ${LDFLAGS} ${LDADD}
47
48CHECKOBJS = regress.o str.o memory.o buf.o
49
50check: ${CHECKOBJS} ${DPADD}
51	${CC} -o ${.TARGET} ${CFLAGS} ${CHECKOBJS} ${LDADD}
52
53regress: check
54	${.OBJDIR}/check
55
56# kludge for people who forget to make depend
57var.o: varhashconsts.h
58cond.o: condhashconsts.h
59targ.o parse.o: nodehashconsts.h
60
61.PHONY:		regress
62
63.include <bsd.prog.mk>
64