Makefile revision 1.1
1# $Id: Makefile,v 1.1 2006/10/14 04:46:30 yamt Exp $
2
3CPROGS=		lirs
4HPROGS=		lfu lru nbsd opt rand
5HPROGS+=	genpat5
6HPROGS+=	renumber
7PROGS+=		linux
8
9C_COMPILE=	cc -O2 -Wall -Werror
10
11all:	_mkall
12
13
14# clock-pro
15
16CPRO_CFLAGS.x=	-DNOCLRINITREF
17CPRO_CFLAGS.t=	-DCOLDREF2TEST
18CPRO_CFLAGS.useonce_t=	-DCOLDREF2TEST -DUSEONCE
19CPRO_CFLAGS.useonce=	-DUSEONCE
20CPRO_CFLAGS.nohash=	-DNOHASH
21CPRO_CFLAGS.nomove=	-DCOLDNOMOVE
22CPRO_CFLAGS.nomove_t=	-DCOLDNOMOVE -DCOLDREF2TEST
23CPRO_CFLAGS.nomove_useonce_t=	-DCOLDNOMOVE -DCOLDREF2TEST -DUSEONCE
24CPRO_CFLAGS.iwamoto=	-DIWAMOTO
25CPRO_CFLAGS.iwamoto_t=	-DIWAMOTO -DCOLDREF2TEST
26CPRO_CFLAGS.idealirr=	-DIDEALIRR
27CPRO_CFLAGS.listq=	-DLISTQ
28CPRO_CFLAGS.listq_t=	-DLISTQ -DCOLDREF2TEST
29CPRO_CFLAGS.listq_useonce_t=	-DLISTQ -DCOLDREF2TEST -DUSEONCE
30CPRO_CFLAGS.listq_useonce=	-DLISTQ -DUSEONCE
31CPRO_CFLAGS.default=
32
33CPRO_CFLAGS.listq_adaptive=	-DADAPTIVE -DLISTQ
34CPRO_CFLAGS.listq_useonce_adaptive=	-DADAPTIVE -DLISTQ -DUSEONCE
35CPRO_CFLAGS.useonce_adaptive=	-DADAPTIVE -DUSEONCE
36CPRO_CFLAGS.adaptive=	-DADAPTIVE
37
38PDSIM_CPRO_VARIANTS+=	default
39PDSIM_CPRO_VARIANTS+=	listq
40PDSIM_CPRO_VARIANTS+=	useonce
41PDSIM_CPRO_VARIANTS+=	listq_useonce
42
43PDSIM_CPRO_VARIANTS+=	listq_adaptive
44PDSIM_CPRO_VARIANTS+=	useonce_adaptive
45PDSIM_CPRO_VARIANTS+=	listq_useonce_adaptive
46PDSIM_CPRO_VARIANTS+=	adaptive
47
48PDSIM_PROGS+=	${PDSIM_CPRO_VARIANTS:S/^/pdsim.cpro_/}
49PDSIM_PROGS.DBG+=	${PDSIM_CPRO_VARIANTS:S/^/pdsim.dbg.cpro_/}
50PDPOL=		uvm_pdpolicy_clockpro.c
51SYSSRC=		${NETBSDSRC}/sys
52.PATH:		${SYSSRC}/uvm
53
54.for _V in ${PDSIM_CPRO_VARIANTS}
55_P=pdsim.cpro_${_V}
56${_P}:	pdsim.c ${PDPOL}
57	${C_COMPILE} -I. -I${SYSSRC} -DPDSIM ${CPRO_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC}
58pdsim.dbg.cpro_${_V}:	pdsim.c ${PDPOL}
59	${C_COMPILE} -I. -I${SYSSRC} -DPDSIM -DDEBUG ${CPRO_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC}
60.endfor
61
62
63# clock
64
65CLOCK_CFLAGS.defult=
66CLOCK_CFLAGS.inact90=	-DCLOCK_INACTIVEPCT=90
67
68PDSIM_CLOCK_VARIANTS+=	default
69PDSIM_CLOCK_VARIANTS+=	inact90
70
71PDSIM_PROGS+=	${PDSIM_CLOCK_VARIANTS:S/^/pdsim.clock_/}
72PDSIM_PROGS.DBG+=	${PDSIM_CLOCK_VARIANTS:S/^/pdsim.dbg.clock_/}
73PDPOL=		uvm_pdpolicy_clock.c
74SYSSRC=		/sys
75.PATH:		${SYSSRC}/uvm
76.for _V in ${PDSIM_CLOCK_VARIANTS}
77_P=pdsim.clock_${_V}
78${_P}:	pdsim.c ${PDPOL}
79	${C_COMPILE} -I. -I${SYSSRC} -DPDSIM ${CLOCK_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC}
80pdsim.dbg.clock_${_V}:	pdsim.c ${PDPOL}
81	${C_COMPILE} -I. -I${SYSSRC} -DPDSIM -DDEBUG ${CLOCK_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC}
82.endfor
83
84
85PROGS+=		${PDSIM_PROGS}
86PROGS+=		${PDSIM_PROGS.DBG}
87
88ALLPROGS=	${PROGS} ${CPROGS} ${HPROGS} ${TESTPROGS}
89.SUFFIXES:	.hs
90
91_mkall: ${ALLPROGS}
92
93clean:
94	rm -rf ${ALLPROGS}
95	rm -rf ${HPROGS:S/$/.hi/g}
96	rm -rf ${HPROGS:S/$/.o/g}
97
98.hs:
99	rm -rf ${.IMPSRC:S/.hs/.o/g}
100	ghc -cpp -O -o ${.TARGET} --make ${.TARGET}
101
102linux:	nbsd.hs
103	rm -rf ${.ALLSRC:S/.hs/.o/g}
104	ghc -cpp -O -DLINUX -o ${.TARGET} --make nbsd
105