1884c25d1SGordon Tetlow#$FreeBSD$ 2884c25d1SGordon Tetlow# @(#)Makefile 8.1 (Berkeley) 6/2/93 3884c25d1SGordon Tetlow 4e1fe3dbaSRuslan ErmilovNO_MAN= 5042df2e2SRuslan ErmilovWITHOUT_SSP= 6e1fe3dbaSRuslan Ermilov 7e1fe3dbaSRuslan Ermilov.include <bsd.own.mk> 8e1fe3dbaSRuslan Ermilov 9884c25d1SGordon TetlowPROG= rescue 10884c25d1SGordon TetlowBINDIR?=/rescue 11884c25d1SGordon Tetlow 12884c25d1SGordon Tetlow# Shell scripts need #! line to be edited from /bin/sh to /rescue/sh 13884c25d1SGordon TetlowSCRIPTS= nextboot_FIXED 1404ddb211SJohn BaldwinSCRIPTSNAME_nextboot_FIXED= nextboot 15884c25d1SGordon Tetlownextboot_FIXED: ../../sbin/reboot/nextboot.sh 16884c25d1SGordon Tetlow sed '1s/\/bin\//\/rescue\//' ${.ALLSRC} > ${.TARGET} 17884c25d1SGordon TetlowCLEANFILES+= nextboot_FIXED 18884c25d1SGordon Tetlow 19d4208689SBrooks DavisSCRIPTS+= dhclient_FIXED 20d4208689SBrooks DavisSCRIPTSNAME_dhclient_FIXED= dhclient-script 21d4208689SBrooks Davisdhclient_FIXED: ../../sbin/dhclient/dhclient-script 22d4208689SBrooks Davis sed '1s/\/bin\//\/rescue\//' ${.ALLSRC} > ${.TARGET} 23d4208689SBrooks DavisCLEANFILES+= dhclient_FIXED 24884c25d1SGordon Tetlow 25884c25d1SGordon Tetlow################################################################# 26884c25d1SGordon Tetlow# 27884c25d1SGordon Tetlow# General notes: 28884c25d1SGordon Tetlow# 29884c25d1SGordon Tetlow# A number of Make variables are used to generate the crunchgen config file. 30884c25d1SGordon Tetlow# 31884c25d1SGordon Tetlow# CRUNCH_SRCDIRS: lists directories to search for included programs 32884c25d1SGordon Tetlow# CRUNCH_PROGS: lists programs to be included 33884c25d1SGordon Tetlow# CRUNCH_LIBS: libraries to link with 34884c25d1SGordon Tetlow# CRUNCH_BUILDOPTS: generic build options to be added to every program 35884c25d1SGordon Tetlow# 36884c25d1SGordon Tetlow# Special options can be specified for individual programs 37884c25d1SGordon Tetlow# CRUNCH_SRCDIR_$(P): base source directory for program $(P) 38884c25d1SGordon Tetlow# CRUNCH_BUILDOPTS_$(P): additional build options for $(P) 39884c25d1SGordon Tetlow# CRUNCH_ALIAS_$(P): additional names to be used for $(P) 40884c25d1SGordon Tetlow# 41884c25d1SGordon Tetlow# By default, any name appearing in CRUNCH_PROGS or CRUNCH_ALIAS_${P} 42884c25d1SGordon Tetlow# will be used to generate a hard link to the resulting binary. 43884c25d1SGordon Tetlow# Specific links can be suppressed by setting 44884c25d1SGordon Tetlow# CRUNCH_SUPPRESS_LINK_$(NAME) to 1. 45884c25d1SGordon Tetlow# 46884c25d1SGordon Tetlow 47884c25d1SGordon Tetlow# Define Makefile variable RESCUE 48884c25d1SGordon TetlowCRUNCH_BUILDOPTS+= -DRESCUE 49884c25d1SGordon Tetlow# Define compile-time RESCUE symbol when compiling components 50884c25d1SGordon TetlowCRUNCH_BUILDOPTS+= CRUNCH_CFLAGS=-DRESCUE 51884c25d1SGordon Tetlow 524d938af0SGordon Tetlow# An experiment that failed: try overriding bsd.lib.mk and bsd.prog.mk 534d938af0SGordon Tetlow# rather than incorporating rescue-specific logic into standard files. 54884c25d1SGordon Tetlow#MAKEFLAGS= -m ${.CURDIR} ${.MAKEFLAGS} 55884c25d1SGordon Tetlow 56884c25d1SGordon Tetlow# Hackery: 'librescue' exists merely as a tool for appropriately 57884c25d1SGordon Tetlow# recompiling specific library entries. We _know_ they're needed, and 58884c25d1SGordon Tetlow# regular archive searching creates ugly library ordering problems. 59884c25d1SGordon Tetlow# Easiest fix: tell the linker to include them into the executable 60884c25d1SGordon Tetlow# first, so they are guaranteed to override the regular lib entries. 61884c25d1SGordon Tetlow# Note that if 'librescue' hasn't been compiled, we'll just get the 62884c25d1SGordon Tetlow# regular lib entries from libc and friends. 63884c25d1SGordon TetlowCRUNCH_LIBS+= ${.OBJDIR}/../librescue/*.o 64884c25d1SGordon Tetlow 65884c25d1SGordon Tetlow################################################################### 66884c25d1SGordon Tetlow# Programs from stock /bin 67884c25d1SGordon Tetlow# 68884c25d1SGordon Tetlow# WARNING: Changing this list may require adjusting 69884c25d1SGordon Tetlow# /usr/include/paths.h as well! You were warned! 70884c25d1SGordon Tetlow# 71d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= bin 7239ae372dSDavid E. O'BrienCRUNCH_PROGS_bin= cat chflags chio chmod cp date dd df echo \ 7321be3b31SYaroslav Tykhiy ed expr getfacl hostname kenv kill ln ls mkdir mv \ 7421be3b31SYaroslav Tykhiy pax pkill ps pwd \ 7539ae372dSDavid E. O'Brien realpath rm rmdir setfacl sh stty sync test 76bfa053a8SDavid E. O'BrienCRUNCH_LIBS+= -lcrypt -ledit -lkvm -ll -lm -ltermcap -lutil 77e1fe3dbaSRuslan Ermilov.if ${MK_OPENSSL} != "no" 78bfa053a8SDavid E. O'BrienCRUNCH_LIBS+= -lcrypto 79bfa053a8SDavid E. O'Brien.endif 80884c25d1SGordon Tetlow 81884c25d1SGordon Tetlow# Additional options for specific programs 82884c25d1SGordon TetlowCRUNCH_ALIAS_test= [ 83884c25d1SGordon TetlowCRUNCH_ALIAS_sh= -sh 84884c25d1SGordon Tetlow# The -sh alias shouldn't appear in /rescue as a hard link 85884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-sh= 1 86884c25d1SGordon TetlowCRUNCH_ALIAS_ln= link 87884c25d1SGordon TetlowCRUNCH_ALIAS_rm= unlink 88884c25d1SGordon TetlowCRUNCH_ALIAS_ed= red 89eb4e4048SYaroslav TykhiyCRUNCH_ALIAS_pkill= pgrep 90eb4e4048SYaroslav Tykhiy 91e1fe3dbaSRuslan Ermilov.if ${MK_RCMDS} != "no" 92d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= rcp 93884c25d1SGordon Tetlow.endif 94884c25d1SGordon Tetlow 95e1fe3dbaSRuslan Ermilov.if ${MK_TCSH} != "no" 96d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= csh 97884c25d1SGordon TetlowCRUNCH_ALIAS_csh= -csh tcsh -tcsh 98884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-csh= 1 99884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-tcsh= 1 100884c25d1SGordon Tetlow.endif 101884c25d1SGordon Tetlow 102884c25d1SGordon Tetlow################################################################### 103884c25d1SGordon Tetlow# Programs from standard /sbin 104884c25d1SGordon Tetlow# 105884c25d1SGordon Tetlow# WARNING: Changing this list may require adjusting 106884c25d1SGordon Tetlow# /usr/include/paths.h as well! You were warned! 107884c25d1SGordon Tetlow# 10839ae372dSDavid E. O'Brien# Note that mdmfs have their own private 'pathnames.h' 109884c25d1SGordon Tetlow# headers in addition to the standard 'paths.h' header. 110884c25d1SGordon Tetlow# 111d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= sbin 1122f161397SMarcel MoolenaarCRUNCH_PROGS_sbin= atacontrol badsect \ 113513b02ffSHartmut Brandt camcontrol ccdconfig clri devfs dmesg dump \ 114cc795cb4SMarius Strobl dumpfs dumpon fsck fsck_ffs fsck_msdosfs fsdb \ 1152f161397SMarcel Moolenaar fsirand gbde geom ifconfig init \ 11639ae372dSDavid E. O'Brien kldconfig kldload kldstat kldunload ldconfig \ 117c89454cbSCraig Rodrigues md5 mdconfig mdmfs mknod mount mount_cd9660 \ 118a3367e4fSGordon Tetlow mount_msdosfs mount_nfs mount_ntfs mount_nullfs \ 119534046e3SRong-En Fan mount_udf mount_unionfs newfs \ 120043fc269SPoul-Henning Kamp newfs_msdos nos-tun ping reboot \ 12139ae372dSDavid E. O'Brien restore rcorder route routed rtquery rtsol savecore \ 12240353969SPoul-Henning Kamp slattach spppcontrol startslip swapon sysctl tunefs umount 12340353969SPoul-Henning Kamp 124e1fe3dbaSRuslan Ermilov.if ${MK_ATM} != "no" 1252b851aebSRobert WatsonCRUNCH_PROGS_sbin+= atmconfig 12640353969SPoul-Henning Kamp.endif 12740353969SPoul-Henning Kamp 128e1fe3dbaSRuslan Ermilov.if ${MK_INET6_SUPPORT} != "no" 12940353969SPoul-Henning KampCRUNCH_PROGS_sbin+= ping6 13040353969SPoul-Henning Kamp.endif 13140353969SPoul-Henning Kamp 132e1fe3dbaSRuslan Ermilov.if ${MK_IPFILTER} != "no" 133cf4ee2c9SDarren ReedCRUNCH_PROGS_sbin+= ipf 1345433713cSDavid E. O'Brien.endif 1355433713cSDavid E. O'Brien 136884c25d1SGordon Tetlow# crunchgen does not like C++ programs; this should be fixed someday 137884c25d1SGordon Tetlow# CRUNCH_PROGS+= devd 138884c25d1SGordon Tetlow 1396e7fd77bSOlivier HouchardCRUNCH_LIBS+= -lalias -lcam -lcurses -ldevstat -lipsec 140cea557adSRuslan Ermilov.if ${MK_IPX} != "no" 141cea557adSRuslan ErmilovCRUNCH_LIBS+= -lipx 142cea557adSRuslan Ermilov.endif 1436e7fd77bSOlivier HouchardCRUNCH_LIBS+= -lgeom -lbsdxml -lkiconv -lmd -lreadline -lsbuf -lufs -lz 144884c25d1SGordon Tetlow 145884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "i386" 1462f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel sconfig fdisk 1479b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 148cea557adSRuslan Ermilov#.if ${MK_NCP} != "no" 149cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_nwfs 150cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lncp 151cea557adSRuslan Ermilov#.endif 152cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_smbfs 153cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lsmb 154884c25d1SGordon Tetlow.endif 155884c25d1SGordon Tetlow 156884c25d1SGordon Tetlow.if ${MACHINE} == "pc98" 1572f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel 158107e6cdaSGordon TetlowCRUNCH_SRCDIR_fdisk= $(.CURDIR)/../../sbin/fdisk_pc98 159884c25d1SGordon Tetlow.endif 160884c25d1SGordon Tetlow 161884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "ia64" 1622f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= mca 163884c25d1SGordon Tetlow.endif 164884c25d1SGordon Tetlow 16558824dccSGordon Tetlow.if ${MACHINE_ARCH} == "sparc64" 1662f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel sunlabel 167884c25d1SGordon Tetlow.endif 168884c25d1SGordon Tetlow 1699b6e332fSGordon Tetlow.if ${MACHINE_ARCH} == "amd64" 1702f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel fdisk 1719b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 172884c25d1SGordon Tetlow.endif 173884c25d1SGordon Tetlow 174884c25d1SGordon TetlowCRUNCH_SRCDIR_atm= $(.CURDIR)/../../sbin/atm/atm 175513b02ffSHartmut BrandtCRUNCH_SRCDIR_atmconfig= $(.CURDIR)/../../sbin/atm/atmconfig 176884c25d1SGordon TetlowCRUNCH_SRCDIR_fore_dnld= $(.CURDIR)/../../sbin/atm/fore_dnld 177884c25d1SGordon TetlowCRUNCH_SRCDIR_ilmid= $(.CURDIR)/../../sbin/atm/ilmid 178884c25d1SGordon TetlowCRUNCH_SRCDIR_rtquery= $(.CURDIR)/../../sbin/routed/rtquery 179cf4ee2c9SDarren ReedCRUNCH_SRCDIR_ipf= $(.CURDIR)/../../sbin/ipf/ipf 180884c25d1SGordon TetlowCRUNCH_ALIAS_reboot= fastboot halt fasthalt 181884c25d1SGordon TetlowCRUNCH_ALIAS_restore= rrestore 182884c25d1SGordon TetlowCRUNCH_ALIAS_dump= rdump 183884c25d1SGordon TetlowCRUNCH_ALIAS_fsck_ffs= fsck_4.2bsd fsck_ufs 18408910321SRuslan ErmilovCRUNCH_ALIAS_geom= glabel gpart 185884c25d1SGordon Tetlow 186884c25d1SGordon Tetlow# dhclient has historically been troublesome... 187d4208689SBrooks DavisCRUNCH_PROGS_sbin+= dhclient 188d4208689SBrooks DavisCRUNCH_BUILDOPTS_dhclient= -DRELEASE_CRUNCH -Dlint 189884c25d1SGordon Tetlow 190884c25d1SGordon Tetlow################################################################## 191884c25d1SGordon Tetlow# Programs from stock /usr/bin 192884c25d1SGordon Tetlow# 193d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= usr.bin 194884c25d1SGordon Tetlow 195eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.bin= head mt sed tail tee 196eb4e4048SYaroslav Tykhiy 1979a9ea25fSXin LICRUNCH_PROGS_usr.bin+= gzip 198884c25d1SGordon TetlowCRUNCH_ALIAS_gzip= gunzip gzcat zcat 199884c25d1SGordon Tetlow 200d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= bzip2 201884c25d1SGordon TetlowCRUNCH_ALIAS_bzip2= bunzip2 bzcat 202884c25d1SGordon TetlowCRUNCH_LIBS+= -lbz2 203884c25d1SGordon Tetlow 204cc7f9762SDavid E. O'BrienCRUNCH_PROGS_usr.bin+= tar 205cc7f9762SDavid E. O'BrienCRUNCH_LIBS+= -larchive 206cc7f9762SDavid E. O'Brien 207d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= vi 208884c25d1SGordon TetlowCRUNCH_ALIAS_vi= ex 209884c25d1SGordon Tetlow 2107ad67863SDag-Erling SmørgravCRUNCH_PROGS_usr.bin+= id 2117ad67863SDag-Erling SmørgravCRUNCH_ALIAS_id= groups whoami 2127ad67863SDag-Erling Smørgrav 213884c25d1SGordon Tetlow################################################################## 214ad02aba6SDag-Erling Smørgrav# Programs from stock /usr/sbin 215ad02aba6SDag-Erling Smørgrav# 216ad02aba6SDag-Erling SmørgravCRUNCH_SRCDIRS+= usr.sbin 217ad02aba6SDag-Erling Smørgrav 218eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.sbin= chroot 219eb4e4048SYaroslav Tykhiy 220eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.sbin+= chown 221eb4e4048SYaroslav TykhiyCRUNCH_ALIAS_chown= chgrp 222ad02aba6SDag-Erling Smørgrav 223ad02aba6SDag-Erling Smørgrav################################################################## 224884c25d1SGordon Tetlow# The following is pretty nearly a generic crunchgen-handling makefile 225884c25d1SGordon Tetlow# 226884c25d1SGordon Tetlow 227884c25d1SGordon TetlowCONF= $(PROG).conf 228884c25d1SGordon TetlowOUTMK= $(PROG).mk 229884c25d1SGordon TetlowOUTC= $(PROG).c 230884c25d1SGordon TetlowOUTPUTS=$(OUTMK) $(OUTC) $(PROG).cache 231884c25d1SGordon TetlowCRUNCHOBJS= ${.OBJDIR} 232884c25d1SGordon Tetlow.if defined(MAKEOBJDIRPREFIX) 233884c25d1SGordon TetlowCANONICALOBJDIR:= ${MAKEOBJDIRPREFIX}${.CURDIR} 234884c25d1SGordon Tetlow.else 235884c25d1SGordon TetlowCANONICALOBJDIR:= /usr/obj${.CURDIR} 236884c25d1SGordon Tetlow.endif 237884c25d1SGordon Tetlow 238884c25d1SGordon TetlowCLEANFILES+= $(CONF) *.o *.lo *.c *.mk *.cache *.a *.h 239884c25d1SGordon Tetlow 240884c25d1SGordon Tetlow# Program names and their aliases contribute hardlinks to 'rescue' executable, 241884c25d1SGordon Tetlow# except for those that get suppressed. 242d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 243d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 2442cf24569SRuslan Ermilov.ifdef CRUNCH_SRCDIR_${P} 2452cf24569SRuslan Ermilov$(OUTPUTS): $(CRUNCH_SRCDIR_${P})/Makefile 2462cf24569SRuslan Ermilov.else 2472cf24569SRuslan Ermilov$(OUTPUTS): $(.CURDIR)/../../$(D)/$(P)/Makefile 2482cf24569SRuslan Ermilov.endif 249884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${P} 250884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(P) 251884c25d1SGordon Tetlow.endif 252884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 253884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${A} 254884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(A) 255884c25d1SGordon Tetlow.endif 256884c25d1SGordon Tetlow.endfor 257884c25d1SGordon Tetlow.endfor 258d60d0f81SGordon Tetlow.endfor 259884c25d1SGordon Tetlow 260884c25d1SGordon Tetlowall: $(PROG) 261884c25d1SGordon Tetlowexe: $(PROG) 262884c25d1SGordon Tetlow 263884c25d1SGordon Tetlow$(CONF): Makefile 264884c25d1SGordon Tetlow echo \# Auto-generated, do not edit >$(.TARGET) 265884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS 266884c25d1SGordon Tetlow echo buildopts $(CRUNCH_BUILDOPTS) >>$(.TARGET) 267884c25d1SGordon Tetlow.endif 268884c25d1SGordon Tetlow.ifdef CRUNCH_LIBS 269884c25d1SGordon Tetlow echo libs $(CRUNCH_LIBS) >>$(.TARGET) 270884c25d1SGordon Tetlow.endif 271d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 272d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 273884c25d1SGordon Tetlow echo progs $(P) >>$(.TARGET) 274884c25d1SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 275884c25d1SGordon Tetlow echo special $(P) srcdir $(CRUNCH_SRCDIR_${P}) >>$(.TARGET) 276665d6246STim Kientzle.else 277665d6246STim Kientzle echo special $(P) srcdir $(.CURDIR)/../../$(D)/$(P) >>$(.TARGET) 278884c25d1SGordon Tetlow.endif 279884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS_${P} 2809efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ \ 2819efddb06SRuslan Ermilov $(CRUNCH_BUILDOPTS_${P}) >>$(.TARGET) 2829efddb06SRuslan Ermilov.else 2839efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ >>$(.TARGET) 284884c25d1SGordon Tetlow.endif 285884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 286884c25d1SGordon Tetlow echo ln $(P) $(A) >>$(.TARGET) 287884c25d1SGordon Tetlow.endfor 288884c25d1SGordon Tetlow.endfor 289d60d0f81SGordon Tetlow.endfor 290884c25d1SGordon Tetlow 29160c3f103SRuslan Ermilov# XXX Make sure we don't pass -P to crunchgen(1). 29260c3f103SRuslan Ermilov.MAKEFLAGS:= ${.MAKEFLAGS:N-P} 29344dde923SGordon Tetlow.ORDER: $(OUTPUTS) objs 294884c25d1SGordon Tetlow$(OUTPUTS): $(CONF) 29560c3f103SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} crunchgen -fq -m $(OUTMK) \ 296b7ca2f28SGordon Tetlow -c $(OUTC) $(CONF) 297884c25d1SGordon Tetlow 29844dde923SGordon Tetlow$(PROG): $(OUTPUTS) objs 2994a17c736SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) exe 300884c25d1SGordon Tetlow 30144dde923SGordon Tetlowobjs: $(OUTMK) 3024e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) objs 303884c25d1SGordon Tetlow 3044d938af0SGordon Tetlow# <sigh> Someone should replace the bin/csh and bin/sh build-tools with 3054d938af0SGordon Tetlow# shell scripts so we can remove this nonsense. 3064d938af0SGordon Tetlowbuild-tools: 3074d938af0SGordon Tetlow.for _tool in bin/csh bin/sh 308d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${_tool}; \ 3098b0bf216SColin Percival MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} obj; \ 3109efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} build-tools 3114d938af0SGordon Tetlow.endfor 3124d938af0SGordon Tetlow 313884c25d1SGordon Tetlow# Use a separate build tree to hold files compiled for this crunchgen binary 314884c25d1SGordon Tetlow# Yes, this does seem to partly duplicate bsd.subdir.mk, but I can't 315884c25d1SGordon Tetlow# get that to cooperate with bsd.prog.mk. Besides, many of the standard 316884c25d1SGordon Tetlow# targets should NOT be propagated into the components. 317884c25d1SGordon Tetlowcleandepend cleandir obj objlink: 318884c25d1SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 319d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 320d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 321d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3229efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 323428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 324d60d0f81SGordon Tetlow.else 325d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3269efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 327428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 328d60d0f81SGordon Tetlow.endif 329d60d0f81SGordon Tetlow.endfor 330884c25d1SGordon Tetlow.endfor 331884c25d1SGordon Tetlow 332884c25d1SGordon Tetlowclean: 333884c25d1SGordon Tetlow rm -f ${CLEANFILES} 334884c25d1SGordon Tetlow if [ -e ${.OBJDIR}/$(OUTMK) ]; then \ 3354e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) clean; \ 336884c25d1SGordon Tetlow fi 337d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 338d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 339d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 340d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3419efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 342428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 343d60d0f81SGordon Tetlow.else 344d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3459efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 346428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 347d60d0f81SGordon Tetlow.endif 348d60d0f81SGordon Tetlow.endfor 349884c25d1SGordon Tetlow.endfor 350884c25d1SGordon Tetlow 351884c25d1SGordon Tetlow.include <bsd.prog.mk> 352