xref: /dflybsd-src/contrib/bmake/make-bootstrap.sh.in (revision 9e7ae5a0527a977cab412aede3a532cfe2903bbb)
101e196c8SJohn Marino#!/bin/sh
201e196c8SJohn Marino
301e196c8SJohn Marinoset -e
401e196c8SJohn Marino
501e196c8SJohn Marinosrcdir=@srcdir@
601e196c8SJohn Marino
701e196c8SJohn MarinoDEFAULT_SYS_PATH="@default_sys_path@"
801e196c8SJohn Marino
901e196c8SJohn Marinocase "@use_meta@" in
1001e196c8SJohn Marinoyes) XDEFS="-DUSE_META ${XDEFS}";;
1101e196c8SJohn Marinoesac
1201e196c8SJohn Marino
1301e196c8SJohn MarinoCC="@CC@"
146a91b982SJohn MarinoCFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@"
1501e196c8SJohn Marino
16ca58f742SDaniel FojtMAKE_VERSION=@_MAKE_VERSION@
1701e196c8SJohn Marino
1801e196c8SJohn MarinoMDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \
19a34d5fb1SAntonio Huete Jimenez-D@force_machine@MACHINE=\"@machine@\" \
20a34d5fb1SAntonio Huete Jimenez-D@force_machine_arch@MACHINE_ARCH=\"@machine_arch@\" \
2101e196c8SJohn Marino-D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\""
2201e196c8SJohn Marino
2301e196c8SJohn Marino
2401e196c8SJohn MarinoLDFLAGS="@LDFLAGS@"
2501e196c8SJohn MarinoLIBS="@LIBS@"
2601e196c8SJohn Marino
27ca58f742SDaniel FojttoUpper() {
28ca58f742SDaniel Fojt    ${TR:-tr} abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
29ca58f742SDaniel Fojt}
30ca58f742SDaniel Fojt
3101e196c8SJohn Marinodo_compile2() {
3201e196c8SJohn Marino	obj="$1"; shift
3301e196c8SJohn Marino	src="$1"; shift
3401e196c8SJohn Marino	echo ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
3501e196c8SJohn Marino	${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
3601e196c8SJohn Marino}
3701e196c8SJohn Marino
3801e196c8SJohn Marinodo_compile() {
3901e196c8SJohn Marino	obj="$1"; shift
40ca58f742SDaniel Fojt	case "$1" in
41ca58f742SDaniel Fojt	*.c) src=$1; shift;;
42ca58f742SDaniel Fojt	*) src=`basename "$obj" .o`.c;;
43ca58f742SDaniel Fojt	esac
4401e196c8SJohn Marino
4501e196c8SJohn Marino	for d in "$srcdir" "$srcdir/lst.lib"
4601e196c8SJohn Marino	do
4701e196c8SJohn Marino		test -s "$d/$src" || continue
4801e196c8SJohn Marino
4901e196c8SJohn Marino		do_compile2 "$obj" "$d/$src" "$@" || exit 1
5001e196c8SJohn Marino		return
5101e196c8SJohn Marino	done
5201e196c8SJohn Marino	echo "Unknown object file '$obj'" >&2
5301e196c8SJohn Marino	exit 1
5401e196c8SJohn Marino}
5501e196c8SJohn Marino
5601e196c8SJohn Marinodo_link() {
5701e196c8SJohn Marino	output="$1"; shift
5801e196c8SJohn Marino	echo ${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
5901e196c8SJohn Marino	${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
6001e196c8SJohn Marino}
6101e196c8SJohn Marino
62*6eef5f0cSAntonio Huete JimenezBASE_OBJECTS="arch.o buf.o compat.o cond.o dir.o for.o hash.o \
63a34d5fb1SAntonio Huete Jimenezlst.o make.o make_malloc.o metachar.o parse.o sigcompat.o str.o \
6401e196c8SJohn Marinosuff.o targ.o trace.o var.o util.o"
6501e196c8SJohn Marino
6601e196c8SJohn MarinoLIB_OBJECTS="@LIBOBJS@"
6701e196c8SJohn Marino
6801e196c8SJohn Marinodo_compile main.o ${MDEFS}
6901e196c8SJohn Marino
70a34d5fb1SAntonio Huete Jimenezfor o in ${BASE_OBJECTS} ${LIB_OBJECTS}
7101e196c8SJohn Marinodo
7201e196c8SJohn Marino	do_compile "$o"
7301e196c8SJohn Marinodone
7401e196c8SJohn Marino
7501e196c8SJohn Marinocase "@use_meta@" in
7601e196c8SJohn Marinoyes)
77ca58f742SDaniel Fojt	case "@use_filemon@" in
78ca58f742SDaniel Fojt	no) MDEFS=;;
79ca58f742SDaniel Fojt	*)
80ca58f742SDaniel Fojt		MDEFS="-DUSE_FILEMON -DUSE_FILEMON_`echo @use_filemon@ | toUpper`"
81ca58f742SDaniel Fojt		case "@use_filemon@,@filemon_h@" in
82ca58f742SDaniel Fojt		dev,*/filemon.h) FDEFS="-DHAVE_FILEMON_H -I`dirname @filemon_h@`";;
83ca58f742SDaniel Fojt		*) FDEFS=;;
8401e196c8SJohn Marino		esac
85ca58f742SDaniel Fojt		do_compile filemon_@use_filemon@.o filemon/filemon_@use_filemon@.c ${FDEFS}
86ca58f742SDaniel Fojt		BASE_OBJECTS="filemon_@use_filemon@.o $BASE_OBJECTS"
87ca58f742SDaniel Fojt		;;
88ca58f742SDaniel Fojt	esac
89ca58f742SDaniel Fojt	do_compile meta.o ${MDEFS}
9001e196c8SJohn Marino	BASE_OBJECTS="meta.o ${BASE_OBJECTS}"
9101e196c8SJohn Marino	;;
9201e196c8SJohn Marinoesac
93ca58f742SDaniel Fojtdo_compile job.o ${MDEFS}
9401e196c8SJohn Marino
95ca58f742SDaniel Fojtdo_link bmake main.o job.o ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}
96