1884c25d1SGordon Tetlow#$FreeBSD$ 2884c25d1SGordon Tetlow# @(#)Makefile 8.1 (Berkeley) 6/2/93 3884c25d1SGordon Tetlow 4e1fe3dbaSRuslan ErmilovNO_MAN= 5e1fe3dbaSRuslan Ermilov 6e1fe3dbaSRuslan Ermilov.include <bsd.own.mk> 7e1fe3dbaSRuslan Ermilov 8884c25d1SGordon TetlowPROG= rescue 9884c25d1SGordon TetlowBINDIR?=/rescue 10884c25d1SGordon Tetlow 11884c25d1SGordon Tetlow# Shell scripts need #! line to be edited from /bin/sh to /rescue/sh 12884c25d1SGordon TetlowSCRIPTS= nextboot_FIXED 1304ddb211SJohn BaldwinSCRIPTSNAME_nextboot_FIXED= nextboot 14884c25d1SGordon Tetlownextboot_FIXED: ../../sbin/reboot/nextboot.sh 15884c25d1SGordon Tetlow sed '1s/\/bin\//\/rescue\//' ${.ALLSRC} > ${.TARGET} 16884c25d1SGordon TetlowCLEANFILES+= nextboot_FIXED 17884c25d1SGordon Tetlow 18d4208689SBrooks DavisSCRIPTS+= dhclient_FIXED 19d4208689SBrooks DavisSCRIPTSNAME_dhclient_FIXED= dhclient-script 20d4208689SBrooks Davisdhclient_FIXED: ../../sbin/dhclient/dhclient-script 21d4208689SBrooks Davis sed '1s/\/bin\//\/rescue\//' ${.ALLSRC} > ${.TARGET} 22d4208689SBrooks DavisCLEANFILES+= dhclient_FIXED 23884c25d1SGordon Tetlow 24884c25d1SGordon Tetlow################################################################# 25884c25d1SGordon Tetlow# 26884c25d1SGordon Tetlow# General notes: 27884c25d1SGordon Tetlow# 28884c25d1SGordon Tetlow# A number of Make variables are used to generate the crunchgen config file. 29884c25d1SGordon Tetlow# 30884c25d1SGordon Tetlow# CRUNCH_SRCDIRS: lists directories to search for included programs 31884c25d1SGordon Tetlow# CRUNCH_PROGS: lists programs to be included 32884c25d1SGordon Tetlow# CRUNCH_LIBS: libraries to link with 33884c25d1SGordon Tetlow# CRUNCH_BUILDOPTS: generic build options to be added to every program 34884c25d1SGordon Tetlow# 35884c25d1SGordon Tetlow# Special options can be specified for individual programs 36884c25d1SGordon Tetlow# CRUNCH_SRCDIR_$(P): base source directory for program $(P) 37884c25d1SGordon Tetlow# CRUNCH_BUILDOPTS_$(P): additional build options for $(P) 38884c25d1SGordon Tetlow# CRUNCH_ALIAS_$(P): additional names to be used for $(P) 39884c25d1SGordon Tetlow# 40884c25d1SGordon Tetlow# By default, any name appearing in CRUNCH_PROGS or CRUNCH_ALIAS_${P} 41884c25d1SGordon Tetlow# will be used to generate a hard link to the resulting binary. 42884c25d1SGordon Tetlow# Specific links can be suppressed by setting 43884c25d1SGordon Tetlow# CRUNCH_SUPPRESS_LINK_$(NAME) to 1. 44884c25d1SGordon Tetlow# 45884c25d1SGordon Tetlow 46884c25d1SGordon Tetlow# Define Makefile variable RESCUE 47884c25d1SGordon TetlowCRUNCH_BUILDOPTS+= -DRESCUE 48884c25d1SGordon Tetlow# Define compile-time RESCUE symbol when compiling components 49884c25d1SGordon TetlowCRUNCH_BUILDOPTS+= CRUNCH_CFLAGS=-DRESCUE 50884c25d1SGordon Tetlow 514d938af0SGordon Tetlow# An experiment that failed: try overriding bsd.lib.mk and bsd.prog.mk 524d938af0SGordon Tetlow# rather than incorporating rescue-specific logic into standard files. 53884c25d1SGordon Tetlow#MAKEFLAGS= -m ${.CURDIR} ${.MAKEFLAGS} 54884c25d1SGordon Tetlow 55884c25d1SGordon Tetlow# Hackery: 'librescue' exists merely as a tool for appropriately 56884c25d1SGordon Tetlow# recompiling specific library entries. We _know_ they're needed, and 57884c25d1SGordon Tetlow# regular archive searching creates ugly library ordering problems. 58884c25d1SGordon Tetlow# Easiest fix: tell the linker to include them into the executable 59884c25d1SGordon Tetlow# first, so they are guaranteed to override the regular lib entries. 60884c25d1SGordon Tetlow# Note that if 'librescue' hasn't been compiled, we'll just get the 61884c25d1SGordon Tetlow# regular lib entries from libc and friends. 62884c25d1SGordon TetlowCRUNCH_LIBS+= ${.OBJDIR}/../librescue/*.o 63884c25d1SGordon Tetlow 64884c25d1SGordon Tetlow################################################################### 65884c25d1SGordon Tetlow# Programs from stock /bin 66884c25d1SGordon Tetlow# 67884c25d1SGordon Tetlow# WARNING: Changing this list may require adjusting 68884c25d1SGordon Tetlow# /usr/include/paths.h as well! You were warned! 69884c25d1SGordon Tetlow# 70d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= bin 7139ae372dSDavid E. O'BrienCRUNCH_PROGS_bin= cat chflags chio chmod cp date dd df echo \ 72d60d0f81SGordon Tetlow ed expr getfacl hostname kenv kill ln ls mkdir mv pax ps pwd \ 7339ae372dSDavid E. O'Brien realpath rm rmdir setfacl sh stty sync test 74bfa053a8SDavid E. O'BrienCRUNCH_LIBS+= -lcrypt -ledit -lkvm -ll -lm -ltermcap -lutil 75e1fe3dbaSRuslan Ermilov.if ${MK_OPENSSL} != "no" 76bfa053a8SDavid E. O'BrienCRUNCH_LIBS+= -lcrypto 77bfa053a8SDavid E. O'Brien.endif 78884c25d1SGordon Tetlow 79884c25d1SGordon Tetlow# Additional options for specific programs 80884c25d1SGordon TetlowCRUNCH_ALIAS_test= [ 81884c25d1SGordon TetlowCRUNCH_ALIAS_sh= -sh 82884c25d1SGordon Tetlow# The -sh alias shouldn't appear in /rescue as a hard link 83884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-sh= 1 84884c25d1SGordon TetlowCRUNCH_ALIAS_ln= link 85884c25d1SGordon TetlowCRUNCH_ALIAS_rm= unlink 86884c25d1SGordon TetlowCRUNCH_ALIAS_ed= red 87884c25d1SGordon Tetlow 88e1fe3dbaSRuslan Ermilov.if ${MK_RCMDS} != "no" 89d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= rcp 90884c25d1SGordon Tetlow.endif 91884c25d1SGordon Tetlow 92e1fe3dbaSRuslan Ermilov.if ${MK_TCSH} != "no" 93d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= csh 94884c25d1SGordon TetlowCRUNCH_ALIAS_csh= -csh tcsh -tcsh 95884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-csh= 1 96884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-tcsh= 1 97884c25d1SGordon Tetlow.endif 98884c25d1SGordon Tetlow 99884c25d1SGordon Tetlow################################################################### 100884c25d1SGordon Tetlow# Programs from standard /sbin 101884c25d1SGordon Tetlow# 102884c25d1SGordon Tetlow# WARNING: Changing this list may require adjusting 103884c25d1SGordon Tetlow# /usr/include/paths.h as well! You were warned! 104884c25d1SGordon Tetlow# 10539ae372dSDavid E. O'Brien# Note that mdmfs have their own private 'pathnames.h' 106884c25d1SGordon Tetlow# headers in addition to the standard 'paths.h' header. 107884c25d1SGordon Tetlow# 108d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= sbin 10940353969SPoul-Henning KampCRUNCH_PROGS_sbin= atacontrol badsect bsdlabel \ 110513b02ffSHartmut Brandt camcontrol ccdconfig clri devfs dmesg dump \ 111cc795cb4SMarius Strobl dumpfs dumpon fsck fsck_ffs fsck_msdosfs fsdb \ 11240353969SPoul-Henning Kamp fsirand gbde ifconfig init \ 11339ae372dSDavid E. O'Brien kldconfig kldload kldstat kldunload ldconfig \ 114c89454cbSCraig Rodrigues md5 mdconfig mdmfs mknod mount mount_cd9660 \ 115a3367e4fSGordon Tetlow mount_msdosfs mount_nfs mount_ntfs mount_nullfs \ 1166543fe0dSCraig Rodrigues mount_udf mount_umapfs mount_unionfs newfs \ 117043fc269SPoul-Henning Kamp newfs_msdos nos-tun ping reboot \ 11839ae372dSDavid E. O'Brien restore rcorder route routed rtquery rtsol savecore \ 11940353969SPoul-Henning Kamp slattach spppcontrol startslip swapon sysctl tunefs umount 12040353969SPoul-Henning Kamp 121e1fe3dbaSRuslan Ermilov.if ${MK_ATM} != "no" 122cc795cb4SMarius StroblCRUNCH_PROGS_sbin+= atm atmconfig fore_dnld ilmid 12340353969SPoul-Henning KampCRUNCH_LIBS+= -latm 12440353969SPoul-Henning Kamp.endif 12540353969SPoul-Henning Kamp 126e1fe3dbaSRuslan Ermilov.if ${MK_INET6_SUPPORT} != "no" 12740353969SPoul-Henning KampCRUNCH_PROGS_sbin+= ping6 12840353969SPoul-Henning Kamp.endif 12940353969SPoul-Henning Kamp 130e1fe3dbaSRuslan Ermilov.if ${MK_IPFILTER} != "no" 131cf4ee2c9SDarren ReedCRUNCH_PROGS_sbin+= ipf 1325433713cSDavid E. O'Brien.endif 1335433713cSDavid E. O'Brien 134884c25d1SGordon Tetlow# crunchgen does not like C++ programs; this should be fixed someday 135884c25d1SGordon Tetlow# CRUNCH_PROGS+= devd 136884c25d1SGordon Tetlow 1376e7fd77bSOlivier HouchardCRUNCH_LIBS+= -lalias -lcam -lcurses -ldevstat -lipsec 138cea557adSRuslan Ermilov.if ${MK_IPX} != "no" 139cea557adSRuslan ErmilovCRUNCH_LIBS+= -lipx 140cea557adSRuslan Ermilov.endif 1416e7fd77bSOlivier HouchardCRUNCH_LIBS+= -lgeom -lbsdxml -lkiconv -lmd -lreadline -lsbuf -lufs -lz 142884c25d1SGordon Tetlow 143884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "i386" 144e21833dcSWarner LoshCRUNCH_PROGS_sbin+= sconfig fdisk 1459b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 146cea557adSRuslan Ermilov#.if ${MK_NCP} != "no" 147cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_nwfs 148cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lncp 149cea557adSRuslan Ermilov#.endif 150cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_smbfs 151cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lsmb 152884c25d1SGordon Tetlow.endif 153884c25d1SGordon Tetlow 154884c25d1SGordon Tetlow.if ${MACHINE} == "pc98" 155107e6cdaSGordon TetlowCRUNCH_SRCDIR_fdisk= $(.CURDIR)/../../sbin/fdisk_pc98 156884c25d1SGordon Tetlow.endif 157884c25d1SGordon Tetlow 158884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "ia64" 159d60d0f81SGordon TetlowCRUNCH_PROGS_sbin+= mca gpt fdisk 160884c25d1SGordon Tetlow.endif 161884c25d1SGordon Tetlow 16258824dccSGordon Tetlow.if ${MACHINE_ARCH} == "sparc64" 163d60d0f81SGordon TetlowCRUNCH_PROGS_sbin+= sunlabel 164884c25d1SGordon Tetlow.endif 165884c25d1SGordon Tetlow 1669b6e332fSGordon Tetlow.if ${MACHINE_ARCH} == "amd64" 167d60d0f81SGordon TetlowCRUNCH_PROGS_sbin+= fdisk 1689b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 169884c25d1SGordon Tetlow.endif 170884c25d1SGordon Tetlow 171884c25d1SGordon TetlowCRUNCH_SRCDIR_atm= $(.CURDIR)/../../sbin/atm/atm 172513b02ffSHartmut BrandtCRUNCH_SRCDIR_atmconfig= $(.CURDIR)/../../sbin/atm/atmconfig 173884c25d1SGordon TetlowCRUNCH_SRCDIR_fore_dnld= $(.CURDIR)/../../sbin/atm/fore_dnld 174884c25d1SGordon TetlowCRUNCH_SRCDIR_ilmid= $(.CURDIR)/../../sbin/atm/ilmid 175884c25d1SGordon TetlowCRUNCH_SRCDIR_rtquery= $(.CURDIR)/../../sbin/routed/rtquery 176cf4ee2c9SDarren ReedCRUNCH_SRCDIR_ipf= $(.CURDIR)/../../sbin/ipf/ipf 177884c25d1SGordon TetlowCRUNCH_ALIAS_reboot= fastboot halt fasthalt 178884c25d1SGordon TetlowCRUNCH_ALIAS_restore= rrestore 179884c25d1SGordon TetlowCRUNCH_ALIAS_dump= rdump 180884c25d1SGordon TetlowCRUNCH_ALIAS_fsck_ffs= fsck_4.2bsd fsck_ufs 181884c25d1SGordon Tetlow 182884c25d1SGordon Tetlow# dhclient has historically been troublesome... 183d4208689SBrooks DavisCRUNCH_PROGS_sbin+= dhclient 184d4208689SBrooks DavisCRUNCH_BUILDOPTS_dhclient= -DRELEASE_CRUNCH -Dlint 185884c25d1SGordon Tetlow 186884c25d1SGordon Tetlow################################################################## 187884c25d1SGordon Tetlow# Programs from stock /usr/bin 188884c25d1SGordon Tetlow# 189d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= usr.bin 190884c25d1SGordon Tetlow 1919a9ea25fSXin LICRUNCH_PROGS_usr.bin+= gzip 192884c25d1SGordon TetlowCRUNCH_ALIAS_gzip= gunzip gzcat zcat 193884c25d1SGordon Tetlow 194d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= bzip2 195884c25d1SGordon TetlowCRUNCH_ALIAS_bzip2= bunzip2 bzcat 196884c25d1SGordon TetlowCRUNCH_LIBS+= -lbz2 197884c25d1SGordon Tetlow 198cc7f9762SDavid E. O'BrienCRUNCH_PROGS_usr.bin+= tar 199cc7f9762SDavid E. O'BrienCRUNCH_LIBS+= -larchive 200cc7f9762SDavid E. O'Brien 201d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= vi 202884c25d1SGordon TetlowCRUNCH_ALIAS_vi= ex 203884c25d1SGordon Tetlow 2047ad67863SDag-Erling SmørgravCRUNCH_PROGS_usr.bin+= id 2057ad67863SDag-Erling SmørgravCRUNCH_ALIAS_id= groups whoami 2067ad67863SDag-Erling Smørgrav 207884c25d1SGordon Tetlow################################################################## 208ad02aba6SDag-Erling Smørgrav# Programs from stock /usr/sbin 209ad02aba6SDag-Erling Smørgrav# 210ad02aba6SDag-Erling SmørgravCRUNCH_SRCDIRS+= usr.sbin 211ad02aba6SDag-Erling Smørgrav 212ad02aba6SDag-Erling SmørgravCRUNCH_PROGS_usr.sbin+= chroot 213ad02aba6SDag-Erling Smørgrav 214ad02aba6SDag-Erling Smørgrav################################################################## 215884c25d1SGordon Tetlow# The following is pretty nearly a generic crunchgen-handling makefile 216884c25d1SGordon Tetlow# 217884c25d1SGordon Tetlow 218884c25d1SGordon TetlowCONF= $(PROG).conf 219884c25d1SGordon TetlowOUTMK= $(PROG).mk 220884c25d1SGordon TetlowOUTC= $(PROG).c 221884c25d1SGordon TetlowOUTPUTS=$(OUTMK) $(OUTC) $(PROG).cache 222884c25d1SGordon TetlowCRUNCHOBJS= ${.OBJDIR} 223884c25d1SGordon Tetlow.if defined(MAKEOBJDIRPREFIX) 224884c25d1SGordon TetlowCANONICALOBJDIR:= ${MAKEOBJDIRPREFIX}${.CURDIR} 225884c25d1SGordon Tetlow.else 226884c25d1SGordon TetlowCANONICALOBJDIR:= /usr/obj${.CURDIR} 227884c25d1SGordon Tetlow.endif 228884c25d1SGordon Tetlow 229884c25d1SGordon TetlowCLEANFILES+= $(CONF) *.o *.lo *.c *.mk *.cache *.a *.h 230884c25d1SGordon Tetlow 231884c25d1SGordon Tetlow# Program names and their aliases contribute hardlinks to 'rescue' executable, 232884c25d1SGordon Tetlow# except for those that get suppressed. 233d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 234d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 2352cf24569SRuslan Ermilov.ifdef CRUNCH_SRCDIR_${P} 2362cf24569SRuslan Ermilov$(OUTPUTS): $(CRUNCH_SRCDIR_${P})/Makefile 2372cf24569SRuslan Ermilov.else 2382cf24569SRuslan Ermilov$(OUTPUTS): $(.CURDIR)/../../$(D)/$(P)/Makefile 2392cf24569SRuslan Ermilov.endif 240884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${P} 241884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(P) 242884c25d1SGordon Tetlow.endif 243884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 244884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${A} 245884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(A) 246884c25d1SGordon Tetlow.endif 247884c25d1SGordon Tetlow.endfor 248884c25d1SGordon Tetlow.endfor 249d60d0f81SGordon Tetlow.endfor 250884c25d1SGordon Tetlow 251884c25d1SGordon Tetlowall: $(PROG) 252884c25d1SGordon Tetlowexe: $(PROG) 253884c25d1SGordon Tetlow 254884c25d1SGordon Tetlow$(CONF): Makefile 255884c25d1SGordon Tetlow echo \# Auto-generated, do not edit >$(.TARGET) 256884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS 257884c25d1SGordon Tetlow echo buildopts $(CRUNCH_BUILDOPTS) >>$(.TARGET) 258884c25d1SGordon Tetlow.endif 259884c25d1SGordon Tetlow.ifdef CRUNCH_LIBS 260884c25d1SGordon Tetlow echo libs $(CRUNCH_LIBS) >>$(.TARGET) 261884c25d1SGordon Tetlow.endif 262d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 263d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 264884c25d1SGordon Tetlow echo progs $(P) >>$(.TARGET) 265884c25d1SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 266884c25d1SGordon Tetlow echo special $(P) srcdir $(CRUNCH_SRCDIR_${P}) >>$(.TARGET) 267665d6246STim Kientzle.else 268665d6246STim Kientzle echo special $(P) srcdir $(.CURDIR)/../../$(D)/$(P) >>$(.TARGET) 269884c25d1SGordon Tetlow.endif 270884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS_${P} 2719efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ \ 2729efddb06SRuslan Ermilov $(CRUNCH_BUILDOPTS_${P}) >>$(.TARGET) 2739efddb06SRuslan Ermilov.else 2749efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ >>$(.TARGET) 275884c25d1SGordon Tetlow.endif 276884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 277884c25d1SGordon Tetlow echo ln $(P) $(A) >>$(.TARGET) 278884c25d1SGordon Tetlow.endfor 279884c25d1SGordon Tetlow.endfor 280d60d0f81SGordon Tetlow.endfor 281884c25d1SGordon Tetlow 28260c3f103SRuslan Ermilov# XXX Make sure we don't pass -P to crunchgen(1). 28360c3f103SRuslan Ermilov.MAKEFLAGS:= ${.MAKEFLAGS:N-P} 28444dde923SGordon Tetlow.ORDER: $(OUTPUTS) objs 285884c25d1SGordon Tetlow$(OUTPUTS): $(CONF) 28660c3f103SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} crunchgen -fq -m $(OUTMK) \ 287b7ca2f28SGordon Tetlow -c $(OUTC) $(CONF) 288884c25d1SGordon Tetlow 28944dde923SGordon Tetlow$(PROG): $(OUTPUTS) objs 2904a17c736SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) exe 291884c25d1SGordon Tetlow 29244dde923SGordon Tetlowobjs: $(OUTMK) 2934e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) objs 294884c25d1SGordon Tetlow 2954d938af0SGordon Tetlow# <sigh> Someone should replace the bin/csh and bin/sh build-tools with 2964d938af0SGordon Tetlow# shell scripts so we can remove this nonsense. 2974d938af0SGordon Tetlowbuild-tools: 2984d938af0SGordon Tetlow.for _tool in bin/csh bin/sh 299d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${_tool}; \ 3008b0bf216SColin Percival MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} obj; \ 3019efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} build-tools 3024d938af0SGordon Tetlow.endfor 3034d938af0SGordon Tetlow 304884c25d1SGordon Tetlow# Use a separate build tree to hold files compiled for this crunchgen binary 305884c25d1SGordon Tetlow# Yes, this does seem to partly duplicate bsd.subdir.mk, but I can't 306884c25d1SGordon Tetlow# get that to cooperate with bsd.prog.mk. Besides, many of the standard 307884c25d1SGordon Tetlow# targets should NOT be propagated into the components. 308884c25d1SGordon Tetlowcleandepend cleandir obj objlink: 309884c25d1SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 310d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 311d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 312d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3139efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 314428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 315d60d0f81SGordon Tetlow.else 316d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3179efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 318428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 319d60d0f81SGordon Tetlow.endif 320d60d0f81SGordon Tetlow.endfor 321884c25d1SGordon Tetlow.endfor 322884c25d1SGordon Tetlow 323884c25d1SGordon Tetlowclean: 324884c25d1SGordon Tetlow rm -f ${CLEANFILES} 325884c25d1SGordon Tetlow if [ -e ${.OBJDIR}/$(OUTMK) ]; then \ 3264e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) clean; \ 327884c25d1SGordon Tetlow fi 328d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 329d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 330d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 331d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3329efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 333428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 334d60d0f81SGordon Tetlow.else 335d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3369efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 337428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 338d60d0f81SGordon Tetlow.endif 339d60d0f81SGordon Tetlow.endfor 340884c25d1SGordon Tetlow.endfor 341884c25d1SGordon Tetlow 342884c25d1SGordon Tetlow.include <bsd.prog.mk> 343