1# $MirOS: src/usr.bin/make/Makefile.boot,v 1.10 2008/02/17 15:43:12 bsiegert Exp $
2# $OpenPackages: Makefile.boot,v 1.5 2001/04/06 00:09:55 will Exp $
3# $OpenBSD: Makefile.boot,v 1.8 2001/05/29 12:41:18 espie Exp $
4#
5# a very simple makefile...
6#
7# You only want to use this if you aren't running MirOS.
8#
9# modify MACHINE and MACHINE_ARCH as appropriate for your target architecture
10
11#------------------------------
12# System dependencies
13#------------------------------
14
15#MACHINE=sun
16#MACHINE_ARCH=sparc
17MACHINE=i386
18MACHINE_ARCH=i386
19MACHINE_OS=BSD
20
21# set this to the true path of mirbsdksh
22MKSH=		/bin/mksh
23
24# some make(1)s don't support +=
25DEFS=		-DMAKE_BOOTSTRAP #-DNEED_VSNPRINTF
26#DEFS_RE=	-DNO_REGEX
27
28# paths
29LIBCDIR=	/usr/src/lib/libc
30INCLDIR=	/usr/src/include
31
32#==============================
33
34.c.o:
35	${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
36
37CFLAGS= -Iohash -I. ${DEFS} ${DEFS_RE} ${COPTS} -DMACHINE=\"${MACHINE}\" \
38	-DMACHINE_ARCH=\"${MACHINE_ARCH}\" -DMACHINE_OS=\"${MACHINE_OS}\" \
39	-D_PATH_MIRBSDKSH=\"${MKSH}\" -D_PATH_DEFSYSPATH=\"/usr/share/mk\" \
40	-DIN_MIRMAKE
41LIBS=	ohash/libohash.a
42
43# can be overridden
44getopt_long_o=getopt_long.o
45
46OBJ=	arch.o buf.o compat.o cond.o dir.o for.o job.o main.o make.o \
47	parse.o str.o suff.o targ.o var.o util.o error.o lowparse.o \
48	varmodifiers.o memory.o cmd_exec.o timestamp.o parsevar.o \
49	varname.o init.o strlfun.o ${getopt_long_o} fgetln.o
50
51LIBOBJ=	lst.lib/lstAddNew.o lst.lib/lstAppend.o \
52	lst.lib/lstConcat.o lst.lib/lstConcatDestroy.o lst.lib/lstDeQueue.o \
53	lst.lib/lstDestroy.o lst.lib/lstDupl.o lst.lib/lstFindFrom.o \
54	lst.lib/lstForEachFrom.o lst.lib/lstInsert.o \
55	lst.lib/lstMember.o lst.lib/lstRemove.o lst.lib/lstReplace.o \
56	lst.lib/lstSucc.o
57
58bmake: varhashconsts.h condhashconsts.h ${OBJ} ${LIBOBJ}
59#	@echo 'make of make and make.0 started.'
60	${CC} ${CFLAGS} ${OBJ} ${LIBOBJ} -o bmake ${LIBS}
61	@ls -l $@
62#	nroff -h -man make.1 >make.0
63#	@echo 'make of make and make.0 completed.'
64
65GENOBJ= generate.o stats.o memory.o ohash/libohash.a
66
67OHASHOBJ= ohash/ohash_create_entry.o ohash/ohash_delete.o ohash/ohash_do.o \
68	ohash/ohash_entries.o ohash/ohash_enum.o ohash/ohash_init.o \
69	ohash/ohash_interval.o ohash/ohash_lookup_interval.o \
70	ohash/ohash_lookup_memory.o ohash/ohash_qlookup.o \
71	ohash/ohash_qlookupi.o
72
73ohash/libohash.a: ${OHASHOBJ}
74	ar cq ohash/libohash.a ${OHASHOBJ}
75	ranlib ohash/libohash.a
76
77generate: ${GENOBJ}
78	${CC} ${CFLAGS} ${GENOBJ} -o generate ${LIBS}
79
80varhashconsts.h: generate
81	./generate 1 82 >varhashconsts.h
82
83condhashconsts.h: generate
84	./generate 2 65 >condhashconsts.h
85
86clean:
87	rm -f ${OBJ} ${LIBOBJ} ${PORTOBJ} ${GENOBJ} ${OHASHOBJ} bmake
88	rm -f varhashconsts.h condhashconsts.h generate
89