Blame src/cmd/INIT/Makefile

Packit 992a25
/*
Packit 992a25
 * initialization for all packages
Packit 992a25
 */
Packit 992a25
Packit 992a25
ID = ast
Packit 992a25
SILENT = /* this component builds silent -- this prevents us from using it while building it */
Packit 992a25
Packit 992a25
:PACKAGE: license=$(ID)
Packit 992a25
Packit 992a25
LICENSE = since=1994,author=gsf
Packit 992a25
Packit 992a25
PACKAGEROOT = $(INSTALLROOT:T=F:P=L*:O=n)
Packit 992a25
Packit 992a25
hurl :: hurl.sh LICENSE=since=2003,author=gsf
Packit 992a25
Packit 992a25
iffe :: iffe.sh LICENSE=since=1994,author=gsf+kpv
Packit 992a25
Packit 992a25
mktest :: mktest.sh LICENSE=since=2005,author=gsf
Packit 992a25
Packit 992a25
package :: package.sh
Packit 992a25
Packit 992a25
regress :: regress.sh LICENSE=since=1995,author=gsf
Packit 992a25
Packit 992a25
rt :: rt.sh LICENSE=since=2005,author=gsf
Packit 992a25
Packit 992a25
$(PACKAGEROOT)/bin :INSTALLDIR: execrate ignore mamprobe package silent
Packit 992a25
Packit 992a25
crossexec :: crossexec.sh
Packit 992a25
Packit 992a25
ditto :: ditto.sh LICENSE=since=2001,author=gsf+ek
Packit 992a25
Packit 992a25
execrate :: execrate.sh LICENSE=since=2002,author=gsf
Packit 992a25
Packit 992a25
filter :: filter.sh
Packit 992a25
Packit 992a25
ignore :: ignore.sh
Packit 992a25
Packit 992a25
silent :: silent.sh
Packit 992a25
Packit 992a25
$(PACKAGEROOT)/lib/package :INSTALLDIR: package.mk CONVERT.mk
Packit 992a25
Packit 992a25
$(LIBDIR)/make :INSTALLDIR: package.mk PROBE.mk TEST.mk WWW.mk \
Packit 992a25
	MSGFUN.mk MSGKEY.mk MAPLIB.mk
Packit 992a25
Packit 992a25
:TEST: iffe mamake
Packit 992a25
Packit 992a25
cc ld ldd :PACKAGE_INIT: mamake.c proto.c ratz.c release.c
Packit 992a25
Packit 992a25
:: RELEASE hosttype.tst p.c hello.c \
Packit 992a25
	ar.ibm.risc \
Packit 992a25
	cc.specialize cc.pentium4 \
Packit 992a25
	ldd.cygwin.i386 \
Packit 992a25
	cc.darwin.i386 cc.darwin.i386-64 cc.darwin ldd.darwin \
Packit 992a25
	cc.hp.ia64 cc.hp.pa cc.hp.pa64 ld.hp.pa ldd.hp.pa \
Packit 992a25
	cc.ibm.risc cc.ibm.risc.gcc ldd.ibm.risc \
Packit 992a25
	cc.linux.ia64-icc cc.linux.i386-icc cc.linux.i386-64-icc \
Packit 992a25
	cc.lynxos.i386 cc.lynxos.ppc ldd.lynxos \
Packit 992a25
	cc.mvs.390 cc.next.i386 cc.next.m68k ldd.mvs.390 \
Packit 992a25
	cc.osf.alpha \
Packit 992a25
	cc.sco.i386 \
Packit 992a25
	cc.sgi.mips2 cc.sgi.mips3 cc.sgi.mips3-o32 cc.sgi.mips4 \
Packit 992a25
	cc.sgi.mips4-n32 ldd.sgi \
Packit 992a25
	cc.unix.mc68k
Packit 992a25
Packit 992a25
LICENSE : .DONTCARE
Packit 992a25
Packit 992a25
if ! CC.HOSTTYPE
Packit 992a25
	CC.HOSTTYPE := $(_hosttype_|HOSTTYPE)
Packit 992a25
end
Packit 992a25
Packit 992a25
$(BINDIR)/mkdir :INSTALL: mkdir.sh
Packit 992a25
	if	test ! -x $(<) -a -x /bin/mkdir
Packit 992a25
	then	mkdir -p 2>/dev/null || :
Packit 992a25
		if	test -d ./-p
Packit 992a25
		then	rmdir ./-p
Packit 992a25
			cp $(*) $(<)
Packit 992a25
			chmod +x $(<)
Packit 992a25
		fi
Packit 992a25
	fi
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * ksh93 function search on PATH
Packit 992a25
 * ksh93 builtin command library -lcmd
Packit 992a25
 * ksh93 ld library path search on PATH
Packit 992a25
 */
Packit 992a25
Packit 992a25
$(BINDIR)/.paths :INSTALL: (CC.DIALECT)
Packit 992a25
	if	test ! -f $(<) -o -w $(<)
Packit 992a25
	then	N='$("\n")'
Packit 992a25
		H=$(CC.HOSTTYPE)
Packit 992a25
		P="$(-mam:??$(.GETCONF LIBPATH:/:/ /G:/,/ : /G:Q)?)"
Packit 992a25
		b= f= h= l= n= p= u= B= L=
Packit 992a25
		set : $P
Packit 992a25
		while	:
Packit 992a25
		do	while	:
Packit 992a25
			do	case $1 in
Packit 992a25
				'')	break 2 ;;
Packit 992a25
				:)	shift; break ;;
Packit 992a25
				esac
Packit 992a25
				shift
Packit 992a25
			done
Packit 992a25
			case $# in
Packit 992a25
			0|1)	break ;;
Packit 992a25
			esac
Packit 992a25
			case $L in
Packit 992a25
			?*)	L="$L|" ;;
Packit 992a25
			esac
Packit 992a25
			L="$L$2=*"
Packit 992a25
			B=$1
Packit 992a25
		done
Packit 992a25
		if	test -f $(<)
Packit 992a25
		then	while	read x
Packit 992a25
			do	case $x in
Packit 992a25
				*\$\(\"*)	break # to fix 2012-06-18 edit botch #
Packit 992a25
						;;
Packit 992a25
				'#'?*)		case $h in
Packit 992a25
						'')	h=$x ;;
Packit 992a25
						esac
Packit 992a25
						;;
Packit 992a25
				$L)		l=$x
Packit 992a25
						;;
Packit 992a25
				*BUILTIN_LIB=*)	b=$x
Packit 992a25
						;;
Packit 992a25
				*FPATH=*)	f=$x
Packit 992a25
						;;
Packit 992a25
				*PLUGIN_LIB=*)	p=$x
Packit 992a25
						;;
Packit 992a25
				*)		case $u in
Packit 992a25
						?*)	u=$u$N ;;
Packit 992a25
						esac
Packit 992a25
						u=$u$x
Packit 992a25
						;;
Packit 992a25
				esac
Packit 992a25
			done < $(<)
Packit 992a25
		fi
Packit 992a25
		ifs=$IFS
Packit 992a25
		m=
Packit 992a25
		case $p in
Packit 992a25
		?*)	b=
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
		case $b in
Packit 992a25
		?*)	IFS='='
Packit 992a25
			set $b
Packit 992a25
			IFS=$ifs
Packit 992a25
			shift
Packit 992a25
			p="PLUGIN_LIB=$*"
Packit 992a25
			case $b in
Packit 992a25
			[Nn][Oo]*)	p=no$p ;;
Packit 992a25
			esac
Packit 992a25
			m=1
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
		case $f in
Packit 992a25
		'')	f="FPATH=../fun"
Packit 992a25
			m=1
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
		case $h in
Packit 992a25
		'')	h='# use { no NO } prefix to permanently disable #' ;;
Packit 992a25
		esac
Packit 992a25
		case $l in
Packit 992a25
		'')	set x x : $P
Packit 992a25
			l=
Packit 992a25
			while	:
Packit 992a25
			do	while	:
Packit 992a25
				do	case $# in
Packit 992a25
					0)	break ;;
Packit 992a25
					esac
Packit 992a25
					x=$1
Packit 992a25
					shift
Packit 992a25
					case $x in
Packit 992a25
					:)	break ;;
Packit 992a25
					esac
Packit 992a25
				done
Packit 992a25
				case $# in
Packit 992a25
				0|1)	break
Packit 992a25
					;;
Packit 992a25
				2)	l=$2
Packit 992a25
					;;
Packit 992a25
				*)	case "$H" in
Packit 992a25
					$3)	l=$2; break ;;
Packit 992a25
					esac
Packit 992a25
					;;
Packit 992a25
				esac
Packit 992a25
			done
Packit 992a25
			case $l in
Packit 992a25
			'')	if	test -x /lib/dld.sl
Packit 992a25
				then	l=SHLIB_PATH
Packit 992a25
				elif	test -x /usr/lib/dyld
Packit 992a25
				then	l=DYLD_LIBRARY_PATH
Packit 992a25
				else	case "$H" in
Packit 992a25
					ibm.*|mvs.*)
Packit 992a25
						l=LIBPATH
Packit 992a25
						;;
Packit 992a25
					sgi.mips3)	
Packit 992a25
						l=LD_LIBRARYN32_PATH
Packit 992a25
						;;
Packit 992a25
					sgi.mips4)	
Packit 992a25
						l=LD_LIBRARYN64_PATH
Packit 992a25
						;;
Packit 992a25
					*)	l=LD_LIBRARY_PATH
Packit 992a25
						;;
Packit 992a25
					esac
Packit 992a25
				fi
Packit 992a25
				;;
Packit 992a25
			esac
Packit 992a25
			case $l in
Packit 992a25
			?*)	case $B in
Packit 992a25
				'')	B=lib ;;
Packit 992a25
				esac
Packit 992a25
				l="$l=../$B"
Packit 992a25
				m=1
Packit 992a25
				;;
Packit 992a25
			esac
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
		case $p in
Packit 992a25
		'')	p="PLUGIN_LIB=cmd"
Packit 992a25
			case '$(CC.DIALECT:N=*EXPORT=[AD]LL*)' in
Packit 992a25
			'')	p=no$p ;;
Packit 992a25
			esac
Packit 992a25
			m=1
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
		case $m in
Packit 992a25
		1)	case $u in
Packit 992a25
			?*)	u=$N$u ;;
Packit 992a25
			esac
Packit 992a25
			echo "$h$N$p$N$f$N$l$u" > $(<)
Packit 992a25
			;;
Packit 992a25
		esac
Packit 992a25
	fi
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * probe initialization
Packit 992a25
 */
Packit 992a25
Packit 992a25
for T C+probe C+make+probe.lcl C+pp+probe.lcl
Packit 992a25
	if T == "*.lcl"
Packit 992a25
		$(T) : .DONTCARE
Packit 992a25
	end
Packit 992a25
	$(LIBDIR)/probe/$(T:C,+,/,G) :INSTALL: $(T)
Packit 992a25
end
Packit 992a25
Packit 992a25
$(LIBDIR)/probe/C/mam/probe :INSTALL: mprobe
Packit 992a25
Packit 992a25
mprobe :: mprobe.sh
Packit 992a25
Packit 992a25
$(LIBDIR)/probe/C/make :INSTALLDIR: probe probe.ini
Packit 992a25
Packit 992a25
probe.sh : C+probe make.probe
Packit 992a25
	cat $(*) > $(<)
Packit 992a25
Packit 992a25
probe :: probe.sh
Packit 992a25
Packit 992a25
probe.ini : (CC.HOSTTYPE) probe.win32
Packit 992a25
	t=$(CC.HOSTTYPE)
Packit 992a25
	ifs=$IFS
Packit 992a25
	IFS=.
Packit 992a25
	set x $t
Packit 992a25
	IFS=$ifs
Packit 992a25
	t=$2
Packit 992a25
	set x $(*)
Packit 992a25
	while	:
Packit 992a25
	do	shift
Packit 992a25
		case $# in
Packit 992a25
		0)	break ;;
Packit 992a25
		esac
Packit 992a25
		case $1 in
Packit 992a25
		*probe.$t)
Packit 992a25
			break
Packit 992a25
		esac
Packit 992a25
	done
Packit 992a25
	case $1 in
Packit 992a25
	?*)	cmp -s $1 $(<) || cp $1 $(<) ;;
Packit 992a25
	*)	: > $(<)
Packit 992a25
	esac
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * proto initialization
Packit 992a25
 */
Packit 992a25
Packit 992a25
$(INCLUDEDIR)/$(ID) :INSTALLDIR: prototyped.h
Packit 992a25
Packit 992a25
prototyped.h : $(BINDIR)/proto
Packit 992a25
	proto -f /dev/null > h.$(tmp).h
Packit 992a25
	if	$(CMP) -s h.$(tmp).h $(<)
Packit 992a25
	then	$(RM) -f h.$(tmp).h
Packit 992a25
	else	$(MV) h.$(tmp).h $(<)
Packit 992a25
	fi
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * check if -ldl is required
Packit 992a25
 * this allows makefiles to use -ldl on all systems
Packit 992a25
 *
Packit 992a25
 * NOTE: this works around the sgi botch:
Packit 992a25
 *	 (1) irix 5.* made -ldl optional but warned
Packit 992a25
 *	 (2) irix 6.* has no -ldl
Packit 992a25
 *	 (3) dynamic progs built on irix 5.* and using -ldl fail
Packit 992a25
 *           at runtime on irix 6.* because -ldl is not there
Packit 992a25
 */
Packit 992a25
Packit 992a25
dl :MAPLIB: dl.c
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * requiring these is a botch
Packit 992a25
 */
Packit 992a25
Packit 992a25
iconv :MAPLIB: iconv.c
Packit 992a25
Packit 992a25
w :MAPLIB: w.c w2.c
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * miscellaneous -l* checks
Packit 992a25
 */
Packit 992a25
Packit 992a25
intl :MAPLIB: intl.c
Packit 992a25
Packit 992a25
m :MAPLIB: m.c m2.c m3.c m4.c m5.c m6.c
Packit 992a25
Packit 992a25
nsl :MAPLIB: nsl.c
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * what was sco smoking
Packit 992a25
 * almost all of gethost* are in -lnsl except gethostbyname which
Packit 992a25
 * is in -lsocket which isn't needed to resolve socket() but seems
Packit 992a25
 * to do the -lnsl job
Packit 992a25
 */
Packit 992a25
Packit 992a25
socket :MAPLIB: socket.c nsl.c
Packit 992a25
Packit 992a25
/*
Packit 992a25
 * more substance abuse
Packit 992a25
 * gdbm's ndbm "compatibility" doesn't supply <ndbm.h>, instead supplies
Packit 992a25
 * <gdbm/ndbm.h> which provides K&R prototypes *and* it requires -lgdbm
Packit 992a25
 * some <ndbm.h> implementations use -lndbm, others -ldbm, still others -lc
Packit 992a25
 * this is why unix is starting to look like windows
Packit 992a25
 * this map allows makefiles to use -ldbm on all systems
Packit 992a25
 *
Packit 992a25
 * and this just in: sometimes its <gdbm-ndbm.h> and possibly -lgdbm_compat
Packit 992a25
 *
Packit 992a25
 * at least the -l* buck stops here
Packit 992a25
 */
Packit 992a25
Packit 992a25
dbm db - gdbm_compat - gdbm - ndbm - dbm :MAPLIB: db.c gdbm.c gdbm1.c gdbm2.c