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