1# $Id: Makefile,v 1.3 2023/08/24 14:53:02 andvar 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.useonce= -DUSEONCE 17CPRO_CFLAGS.listq= -DLISTQ 18CPRO_CFLAGS.listq_useonce= -DLISTQ -DUSEONCE 19CPRO_CFLAGS.default= 20 21CPRO_CFLAGS.listq_adaptive= -DADAPTIVE -DLISTQ 22CPRO_CFLAGS.listq_useonce_adaptive= -DADAPTIVE -DLISTQ -DUSEONCE 23CPRO_CFLAGS.useonce_adaptive= -DADAPTIVE -DUSEONCE 24CPRO_CFLAGS.adaptive= -DADAPTIVE 25 26PDSIM_CPRO_VARIANTS+= default 27PDSIM_CPRO_VARIANTS+= listq 28PDSIM_CPRO_VARIANTS+= useonce 29PDSIM_CPRO_VARIANTS+= listq_useonce 30 31PDSIM_CPRO_VARIANTS+= listq_adaptive 32PDSIM_CPRO_VARIANTS+= useonce_adaptive 33PDSIM_CPRO_VARIANTS+= listq_useonce_adaptive 34PDSIM_CPRO_VARIANTS+= adaptive 35 36PDSIM_PROGS+= ${PDSIM_CPRO_VARIANTS:S/^/pdsim.cpro_/} 37PDSIM_PROGS.DBG+= ${PDSIM_CPRO_VARIANTS:S/^/pdsim.dbg.cpro_/} 38PDPOL= uvm_pdpolicy_clockpro.c 39SYSSRC= ${NETBSDSRC}/sys 40.PATH: ${SYSSRC}/uvm 41 42.for _V in ${PDSIM_CPRO_VARIANTS} 43_P=pdsim.cpro_${_V} 44${_P}: pdsim.c ${PDPOL} 45 ${C_COMPILE} -I. -I${SYSSRC} -DPDSIM ${CPRO_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC} 46pdsim.dbg.cpro_${_V}: pdsim.c ${PDPOL} 47 ${C_COMPILE} -I. -I${SYSSRC} -DPDSIM -DDEBUG ${CPRO_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC} 48.endfor 49 50 51# clock 52 53CLOCK_CFLAGS.default= 54CLOCK_CFLAGS.inact90= -DCLOCK_INACTIVEPCT=90 55 56PDSIM_CLOCK_VARIANTS+= default 57PDSIM_CLOCK_VARIANTS+= inact90 58 59PDSIM_PROGS+= ${PDSIM_CLOCK_VARIANTS:S/^/pdsim.clock_/} 60PDSIM_PROGS.DBG+= ${PDSIM_CLOCK_VARIANTS:S/^/pdsim.dbg.clock_/} 61PDPOL= uvm_pdpolicy_clock.c 62SYSSRC= /sys 63.PATH: ${SYSSRC}/uvm 64.for _V in ${PDSIM_CLOCK_VARIANTS} 65_P=pdsim.clock_${_V} 66${_P}: pdsim.c ${PDPOL} 67 ${C_COMPILE} -I. -I${SYSSRC} -DPDSIM ${CLOCK_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC} 68pdsim.dbg.clock_${_V}: pdsim.c ${PDPOL} 69 ${C_COMPILE} -I. -I${SYSSRC} -DPDSIM -DDEBUG ${CLOCK_CFLAGS.${_V}} -o ${.TARGET} ${.ALLSRC} 70.endfor 71 72 73PROGS+= ${PDSIM_PROGS} 74PROGS+= ${PDSIM_PROGS.DBG} 75 76ALLPROGS= ${PROGS} ${CPROGS} ${HPROGS} ${TESTPROGS} 77.SUFFIXES: .hs 78 79_mkall: ${ALLPROGS} 80 81clean: 82 rm -rf ${ALLPROGS} 83 rm -rf ${HPROGS:S/$/.hi/g} 84 rm -rf ${HPROGS:S/$/.o/g} 85 86.hs: 87 rm -rf ${.IMPSRC:S/.hs/.o/g} 88 ghc -cpp -O -o ${.TARGET} --make ${.TARGET} 89 90linux: nbsd.hs 91 rm -rf ${.ALLSRC:S/.hs/.o/g} 92 ghc -cpp -O -DLINUX -o ${.TARGET} --make nbsd 93