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> 7d9ca85fcSRuslan ErmilovMK_SSP= no 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 \ 74585ca1e1SWarner Losh pkill ps pwd realpath rm rmdir setfacl sh stty sync test 7584bee0d7SEd SchoutenCRUNCH_LIBS+= -lcrypt -ledit -lkvm -ll -ltermcap -lutil 76884c25d1SGordon Tetlow 77884c25d1SGordon Tetlow# Additional options for specific programs 78884c25d1SGordon TetlowCRUNCH_ALIAS_test= [ 79884c25d1SGordon TetlowCRUNCH_ALIAS_sh= -sh 80884c25d1SGordon Tetlow# The -sh alias shouldn't appear in /rescue as a hard link 81884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-sh= 1 82884c25d1SGordon TetlowCRUNCH_ALIAS_ln= link 83884c25d1SGordon TetlowCRUNCH_ALIAS_rm= unlink 84884c25d1SGordon TetlowCRUNCH_ALIAS_ed= red 85eb4e4048SYaroslav TykhiyCRUNCH_ALIAS_pkill= pgrep 86eb4e4048SYaroslav Tykhiy 87e1fe3dbaSRuslan Ermilov.if ${MK_RCMDS} != "no" 88d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= rcp 89884c25d1SGordon Tetlow.endif 90884c25d1SGordon Tetlow 91e1fe3dbaSRuslan Ermilov.if ${MK_TCSH} != "no" 92d60d0f81SGordon TetlowCRUNCH_PROGS_bin+= csh 93884c25d1SGordon TetlowCRUNCH_ALIAS_csh= -csh tcsh -tcsh 94884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-csh= 1 95884c25d1SGordon TetlowCRUNCH_SUPPRESS_LINK_-tcsh= 1 96884c25d1SGordon Tetlow.endif 97884c25d1SGordon Tetlow 98884c25d1SGordon Tetlow################################################################### 99884c25d1SGordon Tetlow# Programs from standard /sbin 100884c25d1SGordon Tetlow# 101884c25d1SGordon Tetlow# WARNING: Changing this list may require adjusting 102884c25d1SGordon Tetlow# /usr/include/paths.h as well! You were warned! 103884c25d1SGordon Tetlow# 10439ae372dSDavid E. O'Brien# Note that mdmfs have their own private 'pathnames.h' 105884c25d1SGordon Tetlow# headers in addition to the standard 'paths.h' header. 106884c25d1SGordon Tetlow# 107d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= sbin 1082f161397SMarcel MoolenaarCRUNCH_PROGS_sbin= atacontrol badsect \ 109513b02ffSHartmut Brandt camcontrol ccdconfig clri devfs dmesg dump \ 110cc795cb4SMarius Strobl dumpfs dumpon fsck fsck_ffs fsck_msdosfs fsdb \ 1112f161397SMarcel Moolenaar fsirand gbde geom ifconfig init \ 11239ae372dSDavid E. O'Brien kldconfig kldload kldstat kldunload ldconfig \ 113c89454cbSCraig Rodrigues md5 mdconfig mdmfs mknod mount mount_cd9660 \ 114a3367e4fSGordon Tetlow mount_msdosfs mount_nfs mount_ntfs mount_nullfs \ 115534046e3SRong-En Fan mount_udf mount_unionfs newfs \ 116043fc269SPoul-Henning Kamp newfs_msdos nos-tun ping reboot \ 11739ae372dSDavid E. O'Brien restore rcorder route routed rtquery rtsol savecore \ 118d2a0bb08SEd Schouten spppcontrol swapon sysctl tunefs umount 11940353969SPoul-Henning Kamp 120e1fe3dbaSRuslan Ermilov.if ${MK_ATM} != "no" 1212b851aebSRobert WatsonCRUNCH_PROGS_sbin+= atmconfig 12240353969SPoul-Henning Kamp.endif 12340353969SPoul-Henning Kamp 124e1fe3dbaSRuslan Ermilov.if ${MK_INET6_SUPPORT} != "no" 12540353969SPoul-Henning KampCRUNCH_PROGS_sbin+= ping6 12640353969SPoul-Henning Kamp.endif 12740353969SPoul-Henning Kamp 128e1fe3dbaSRuslan Ermilov.if ${MK_IPFILTER} != "no" 129cf4ee2c9SDarren ReedCRUNCH_PROGS_sbin+= ipf 1305433713cSDavid E. O'Brien.endif 13187820315SKip Macy.if ${MK_ZFS} != "no" 13287820315SKip MacyCRUNCH_PROGS_sbin+= zfs 13387820315SKip MacyCRUNCH_PROGS_sbin+= zpool 13487820315SKip Macy.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 14387820315SKip Macy.if ${MK_ZFS} != "no" 14487820315SKip MacyCRUNCH_LIBS+= -lzfs -lnvpair -luutil -lavl 14587820315SKip Macy.endif 1465061de23SJamie GrittonCRUNCH_LIBS+= -lgeom -lbsdxml -ljail -lkiconv -lmd -lreadline -lsbuf -lufs -lz 147884c25d1SGordon Tetlow 148884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "i386" 1492f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel sconfig fdisk 1509b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 151cea557adSRuslan Ermilov#.if ${MK_NCP} != "no" 152cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_nwfs 153cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lncp 154cea557adSRuslan Ermilov#.endif 155cea557adSRuslan Ermilov#CRUNCH_PROGS+= mount_smbfs 156cea557adSRuslan Ermilov#CRUNCH_LIBS+= -lsmb 157884c25d1SGordon Tetlow.endif 158884c25d1SGordon Tetlow 159884c25d1SGordon Tetlow.if ${MACHINE} == "pc98" 1602f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel 161107e6cdaSGordon TetlowCRUNCH_SRCDIR_fdisk= $(.CURDIR)/../../sbin/fdisk_pc98 162884c25d1SGordon Tetlow.endif 163884c25d1SGordon Tetlow 164884c25d1SGordon Tetlow.if ${MACHINE_ARCH} == "ia64" 1652f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= mca 166884c25d1SGordon Tetlow.endif 167884c25d1SGordon Tetlow 16858824dccSGordon Tetlow.if ${MACHINE_ARCH} == "sparc64" 1692f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel sunlabel 170884c25d1SGordon Tetlow.endif 171884c25d1SGordon Tetlow 1729b6e332fSGordon Tetlow.if ${MACHINE_ARCH} == "amd64" 1732f161397SMarcel MoolenaarCRUNCH_PROGS_sbin+= bsdlabel fdisk 1749b6e332fSGordon TetlowCRUNCH_ALIAS_bsdlabel= disklabel 175884c25d1SGordon Tetlow.endif 176884c25d1SGordon Tetlow 177884c25d1SGordon TetlowCRUNCH_SRCDIR_atm= $(.CURDIR)/../../sbin/atm/atm 178513b02ffSHartmut BrandtCRUNCH_SRCDIR_atmconfig= $(.CURDIR)/../../sbin/atm/atmconfig 179884c25d1SGordon TetlowCRUNCH_SRCDIR_fore_dnld= $(.CURDIR)/../../sbin/atm/fore_dnld 180884c25d1SGordon TetlowCRUNCH_SRCDIR_ilmid= $(.CURDIR)/../../sbin/atm/ilmid 181884c25d1SGordon TetlowCRUNCH_SRCDIR_rtquery= $(.CURDIR)/../../sbin/routed/rtquery 182cf4ee2c9SDarren ReedCRUNCH_SRCDIR_ipf= $(.CURDIR)/../../sbin/ipf/ipf 18387820315SKip Macy.if ${MK_ZFS} != "no" 18487820315SKip MacyCRUNCH_SRCDIR_zfs= ${.CURDIR}/../../cddl/sbin/zfs 18587820315SKip MacyCRUNCH_SRCDIR_zpool= ${.CURDIR}/../../cddl/sbin/zpool 18687820315SKip Macy.endif 187884c25d1SGordon TetlowCRUNCH_ALIAS_reboot= fastboot halt fasthalt 188884c25d1SGordon TetlowCRUNCH_ALIAS_restore= rrestore 189884c25d1SGordon TetlowCRUNCH_ALIAS_dump= rdump 190884c25d1SGordon TetlowCRUNCH_ALIAS_fsck_ffs= fsck_4.2bsd fsck_ufs 19108910321SRuslan ErmilovCRUNCH_ALIAS_geom= glabel gpart 192884c25d1SGordon Tetlow 193884c25d1SGordon Tetlow# dhclient has historically been troublesome... 194d4208689SBrooks DavisCRUNCH_PROGS_sbin+= dhclient 195d4208689SBrooks DavisCRUNCH_BUILDOPTS_dhclient= -DRELEASE_CRUNCH -Dlint 196884c25d1SGordon Tetlow 197884c25d1SGordon Tetlow################################################################## 198884c25d1SGordon Tetlow# Programs from stock /usr/bin 199884c25d1SGordon Tetlow# 200d60d0f81SGordon TetlowCRUNCH_SRCDIRS+= usr.bin 201884c25d1SGordon Tetlow 202eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.bin= head mt sed tail tee 203eb4e4048SYaroslav Tykhiy 2049a9ea25fSXin LICRUNCH_PROGS_usr.bin+= gzip 205884c25d1SGordon TetlowCRUNCH_ALIAS_gzip= gunzip gzcat zcat 206884c25d1SGordon Tetlow 207d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= bzip2 208884c25d1SGordon TetlowCRUNCH_ALIAS_bzip2= bunzip2 bzcat 209884c25d1SGordon TetlowCRUNCH_LIBS+= -lbz2 210884c25d1SGordon Tetlow 2117fbeb03eSMartin MatuskaCRUNCH_PROGS_usr.bin+= xz 2127fbeb03eSMartin MatuskaCRUNCH_ALIAS_xz= unxz lzma unlzma xzcat lzcat 2137fbeb03eSMartin MatuskaCRUNCH_LIBS+= -llzma 2147fbeb03eSMartin Matuska 215cc7f9762SDavid E. O'BrienCRUNCH_PROGS_usr.bin+= tar 2163b495423STim KientzleCRUNCH_LIBS+= -larchive -lmd 2173b495423STim Kientzle.if ${MK_OPENSSL} != "no" 2183b495423STim KientzleCRUNCH_LIBS+= -lcrypto 2193b495423STim Kientzle.endif 220cc7f9762SDavid E. O'Brien 221d60d0f81SGordon TetlowCRUNCH_PROGS_usr.bin+= vi 222884c25d1SGordon TetlowCRUNCH_ALIAS_vi= ex 223884c25d1SGordon Tetlow 2247ad67863SDag-Erling SmørgravCRUNCH_PROGS_usr.bin+= id 2257ad67863SDag-Erling SmørgravCRUNCH_ALIAS_id= groups whoami 2267ad67863SDag-Erling Smørgrav 227884c25d1SGordon Tetlow################################################################## 228ad02aba6SDag-Erling Smørgrav# Programs from stock /usr/sbin 229ad02aba6SDag-Erling Smørgrav# 230ad02aba6SDag-Erling SmørgravCRUNCH_SRCDIRS+= usr.sbin 231ad02aba6SDag-Erling Smørgrav 232eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.sbin= chroot 233eb4e4048SYaroslav Tykhiy 234eb4e4048SYaroslav TykhiyCRUNCH_PROGS_usr.sbin+= chown 235eb4e4048SYaroslav TykhiyCRUNCH_ALIAS_chown= chgrp 23687820315SKip Macy################################################################## 23787820315SKip MacyCRUNCH_LIBS+= -lm 238ad02aba6SDag-Erling Smørgrav 239ad02aba6SDag-Erling Smørgrav################################################################## 240884c25d1SGordon Tetlow# The following is pretty nearly a generic crunchgen-handling makefile 241884c25d1SGordon Tetlow# 242884c25d1SGordon Tetlow 243884c25d1SGordon TetlowCONF= $(PROG).conf 244884c25d1SGordon TetlowOUTMK= $(PROG).mk 245884c25d1SGordon TetlowOUTC= $(PROG).c 246884c25d1SGordon TetlowOUTPUTS=$(OUTMK) $(OUTC) $(PROG).cache 247884c25d1SGordon TetlowCRUNCHOBJS= ${.OBJDIR} 248884c25d1SGordon Tetlow.if defined(MAKEOBJDIRPREFIX) 249884c25d1SGordon TetlowCANONICALOBJDIR:= ${MAKEOBJDIRPREFIX}${.CURDIR} 250884c25d1SGordon Tetlow.else 251884c25d1SGordon TetlowCANONICALOBJDIR:= /usr/obj${.CURDIR} 252884c25d1SGordon Tetlow.endif 253884c25d1SGordon Tetlow 254884c25d1SGordon TetlowCLEANFILES+= $(CONF) *.o *.lo *.c *.mk *.cache *.a *.h 255884c25d1SGordon Tetlow 256884c25d1SGordon Tetlow# Program names and their aliases contribute hardlinks to 'rescue' executable, 257884c25d1SGordon Tetlow# except for those that get suppressed. 258d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 259d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 2602cf24569SRuslan Ermilov.ifdef CRUNCH_SRCDIR_${P} 2612cf24569SRuslan Ermilov$(OUTPUTS): $(CRUNCH_SRCDIR_${P})/Makefile 2622cf24569SRuslan Ermilov.else 2632cf24569SRuslan Ermilov$(OUTPUTS): $(.CURDIR)/../../$(D)/$(P)/Makefile 2642cf24569SRuslan Ermilov.endif 265884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${P} 266884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(P) 267884c25d1SGordon Tetlow.endif 268884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 269884c25d1SGordon Tetlow.ifndef CRUNCH_SUPPRESS_LINK_${A} 270884c25d1SGordon TetlowLINKS+= $(BINDIR)/$(PROG) $(BINDIR)/$(A) 271884c25d1SGordon Tetlow.endif 272884c25d1SGordon Tetlow.endfor 273884c25d1SGordon Tetlow.endfor 274d60d0f81SGordon Tetlow.endfor 275884c25d1SGordon Tetlow 276884c25d1SGordon Tetlowall: $(PROG) 277884c25d1SGordon Tetlowexe: $(PROG) 278884c25d1SGordon Tetlow 279884c25d1SGordon Tetlow$(CONF): Makefile 280884c25d1SGordon Tetlow echo \# Auto-generated, do not edit >$(.TARGET) 281884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS 282884c25d1SGordon Tetlow echo buildopts $(CRUNCH_BUILDOPTS) >>$(.TARGET) 283884c25d1SGordon Tetlow.endif 284884c25d1SGordon Tetlow.ifdef CRUNCH_LIBS 285884c25d1SGordon Tetlow echo libs $(CRUNCH_LIBS) >>$(.TARGET) 286884c25d1SGordon Tetlow.endif 287d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 288d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 289884c25d1SGordon Tetlow echo progs $(P) >>$(.TARGET) 290884c25d1SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 291884c25d1SGordon Tetlow echo special $(P) srcdir $(CRUNCH_SRCDIR_${P}) >>$(.TARGET) 292665d6246STim Kientzle.else 293665d6246STim Kientzle echo special $(P) srcdir $(.CURDIR)/../../$(D)/$(P) >>$(.TARGET) 294884c25d1SGordon Tetlow.endif 295884c25d1SGordon Tetlow.ifdef CRUNCH_BUILDOPTS_${P} 2969efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ \ 2979efddb06SRuslan Ermilov $(CRUNCH_BUILDOPTS_${P}) >>$(.TARGET) 2989efddb06SRuslan Ermilov.else 2999efddb06SRuslan Ermilov echo special $(P) buildopts DIRPRFX=${DIRPRFX}${P}/ >>$(.TARGET) 300884c25d1SGordon Tetlow.endif 301884c25d1SGordon Tetlow.for A in $(CRUNCH_ALIAS_$(P)) 302884c25d1SGordon Tetlow echo ln $(P) $(A) >>$(.TARGET) 303884c25d1SGordon Tetlow.endfor 304884c25d1SGordon Tetlow.endfor 305d60d0f81SGordon Tetlow.endfor 306884c25d1SGordon Tetlow 30760c3f103SRuslan Ermilov# XXX Make sure we don't pass -P to crunchgen(1). 30860c3f103SRuslan Ermilov.MAKEFLAGS:= ${.MAKEFLAGS:N-P} 30944dde923SGordon Tetlow.ORDER: $(OUTPUTS) objs 310884c25d1SGordon Tetlow$(OUTPUTS): $(CONF) 31160c3f103SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} crunchgen -fq -m $(OUTMK) \ 312b7ca2f28SGordon Tetlow -c $(OUTC) $(CONF) 313884c25d1SGordon Tetlow 31444dde923SGordon Tetlow$(PROG): $(OUTPUTS) objs 3154a17c736SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) exe 316884c25d1SGordon Tetlow 31744dde923SGordon Tetlowobjs: $(OUTMK) 3184e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) objs 319884c25d1SGordon Tetlow 3204d938af0SGordon Tetlow# <sigh> Someone should replace the bin/csh and bin/sh build-tools with 3214d938af0SGordon Tetlow# shell scripts so we can remove this nonsense. 3224d938af0SGordon Tetlowbuild-tools: 3234d938af0SGordon Tetlow.for _tool in bin/csh bin/sh 324d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${_tool}; \ 3258b0bf216SColin Percival MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} obj; \ 3269efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} build-tools 3274d938af0SGordon Tetlow.endfor 3284d938af0SGordon Tetlow 329884c25d1SGordon Tetlow# Use a separate build tree to hold files compiled for this crunchgen binary 330884c25d1SGordon Tetlow# Yes, this does seem to partly duplicate bsd.subdir.mk, but I can't 331884c25d1SGordon Tetlow# get that to cooperate with bsd.prog.mk. Besides, many of the standard 332884c25d1SGordon Tetlow# targets should NOT be propagated into the components. 333884c25d1SGordon Tetlowcleandepend cleandir obj objlink: 334884c25d1SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 335d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 336d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 337d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3389efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 339428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 340d60d0f81SGordon Tetlow.else 341d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3429efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 343428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 344d60d0f81SGordon Tetlow.endif 345d60d0f81SGordon Tetlow.endfor 346884c25d1SGordon Tetlow.endfor 347884c25d1SGordon Tetlow 348884c25d1SGordon Tetlowclean: 349884c25d1SGordon Tetlow rm -f ${CLEANFILES} 350884c25d1SGordon Tetlow if [ -e ${.OBJDIR}/$(OUTMK) ]; then \ 3514e923ac5SRuslan Ermilov MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} -f $(OUTMK) clean; \ 352884c25d1SGordon Tetlow fi 353d60d0f81SGordon Tetlow.for D in $(CRUNCH_SRCDIRS) 354d60d0f81SGordon Tetlow.for P in $(CRUNCH_PROGS_$(D)) 355d60d0f81SGordon Tetlow.ifdef CRUNCH_SRCDIR_${P} 356d60d0f81SGordon Tetlow cd ${CRUNCH_SRCDIR_$(P)} && \ 3579efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 358428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 359d60d0f81SGordon Tetlow.else 360d60d0f81SGordon Tetlow cd $(.CURDIR)/../../${D}/${P} && \ 3619efddb06SRuslan Ermilov MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \ 362428d65f1SRuslan Ermilov DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${.TARGET} 363d60d0f81SGordon Tetlow.endif 364d60d0f81SGordon Tetlow.endfor 365884c25d1SGordon Tetlow.endfor 366884c25d1SGordon Tetlow 367884c25d1SGordon Tetlow.include <bsd.prog.mk> 368