xref: /freebsd/contrib/bmake/make-bootstrap.sh.in (revision 548bfc56eb0b2cefa0fb8dc2478240bfef610309)
13955d011SMarcel Moolenaar#!/bin/sh
23955d011SMarcel Moolenaar
33955d011SMarcel Moolenaarset -e
43955d011SMarcel Moolenaar
598875883SSimon J. Gerratyprefix=@prefix@
63955d011SMarcel Moolenaarsrcdir=@srcdir@
73955d011SMarcel Moolenaar
83955d011SMarcel MoolenaarDEFAULT_SYS_PATH="@default_sys_path@"
93955d011SMarcel Moolenaar
103955d011SMarcel Moolenaarcase "@use_meta@" in
113955d011SMarcel Moolenaaryes) XDEFS="-DUSE_META ${XDEFS}";;
123955d011SMarcel Moolenaaresac
133955d011SMarcel Moolenaar
143955d011SMarcel MoolenaarCC="@CC@"
150dede8b0SSimon J. GerratyCFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@"
163955d011SMarcel Moolenaar
17e22fef7dSSimon J. GerratyMAKE_VERSION=@_MAKE_VERSION@
183955d011SMarcel Moolenaar
193955d011SMarcel MoolenaarMDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \
20e2eeea75SSimon J. Gerraty-D@force_machine@MACHINE=\"@machine@\" \
21e2eeea75SSimon J. Gerraty-D@force_machine_arch@MACHINE_ARCH=\"@machine_arch@\" \
22*548bfc56SSimon J. Gerraty-D@force_make_os@MAKE_OS=\"@make_os@\" \
233955d011SMarcel Moolenaar-D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\""
243955d011SMarcel Moolenaar
253955d011SMarcel Moolenaar
263955d011SMarcel MoolenaarLDFLAGS="@LDFLAGS@"
273955d011SMarcel MoolenaarLIBS="@LIBS@"
283955d011SMarcel Moolenaar
2949caa483SSimon J. GerratytoUpper() {
3049caa483SSimon J. Gerraty    ${TR:-tr} abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
3149caa483SSimon J. Gerraty}
3249caa483SSimon J. Gerraty
333955d011SMarcel Moolenaardo_compile2() {
343955d011SMarcel Moolenaar	obj="$1"; shift
353955d011SMarcel Moolenaar	src="$1"; shift
363955d011SMarcel Moolenaar	echo ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
373955d011SMarcel Moolenaar	${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
383955d011SMarcel Moolenaar}
393955d011SMarcel Moolenaar
403955d011SMarcel Moolenaardo_compile() {
413955d011SMarcel Moolenaar	obj="$1"; shift
4249caa483SSimon J. Gerraty	case "$1" in
4349caa483SSimon J. Gerraty	*.c) src=$1; shift;;
4449caa483SSimon J. Gerraty	*) src=`basename "$obj" .o`.c;;
4549caa483SSimon J. Gerraty	esac
463955d011SMarcel Moolenaar
473955d011SMarcel Moolenaar	for d in "$srcdir" "$srcdir/lst.lib"
483955d011SMarcel Moolenaar	do
493955d011SMarcel Moolenaar		test -s "$d/$src" || continue
503955d011SMarcel Moolenaar
513955d011SMarcel Moolenaar		do_compile2 "$obj" "$d/$src" "$@" || exit 1
523955d011SMarcel Moolenaar		return
533955d011SMarcel Moolenaar	done
543955d011SMarcel Moolenaar	echo "Unknown object file '$obj'" >&2
553955d011SMarcel Moolenaar	exit 1
563955d011SMarcel Moolenaar}
573955d011SMarcel Moolenaar
583955d011SMarcel Moolenaardo_link() {
593955d011SMarcel Moolenaar	output="$1"; shift
603955d011SMarcel Moolenaar	echo ${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
613955d011SMarcel Moolenaar	${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
623955d011SMarcel Moolenaar}
633955d011SMarcel Moolenaar
6412904384SSimon J. GerratyBASE_OBJECTS="arch.o buf.o compat.o cond.o dir.o for.o hash.o \
65956e45f6SSimon J. Gerratylst.o make.o make_malloc.o metachar.o parse.o sigcompat.o str.o \
663955d011SMarcel Moolenaarsuff.o targ.o trace.o var.o util.o"
673955d011SMarcel Moolenaar
683955d011SMarcel MoolenaarLIB_OBJECTS="@LIBOBJS@"
693955d011SMarcel Moolenaar
703955d011SMarcel Moolenaardo_compile main.o ${MDEFS}
713955d011SMarcel Moolenaar
72956e45f6SSimon J. Gerratyfor o in ${BASE_OBJECTS} ${LIB_OBJECTS}
733955d011SMarcel Moolenaardo
743955d011SMarcel Moolenaar	do_compile "$o"
753955d011SMarcel Moolenaardone
763955d011SMarcel Moolenaar
773955d011SMarcel Moolenaarcase "@use_meta@" in
783955d011SMarcel Moolenaaryes)
7949caa483SSimon J. Gerraty	case "@use_filemon@" in
8049caa483SSimon J. Gerraty	no) MDEFS=;;
8149caa483SSimon J. Gerraty	*)
8249caa483SSimon J. Gerraty		MDEFS="-DUSE_FILEMON -DUSE_FILEMON_`echo @use_filemon@ | toUpper`"
8349caa483SSimon J. Gerraty		case "@use_filemon@,@filemon_h@" in
8449caa483SSimon J. Gerraty		dev,*/filemon.h) FDEFS="-DHAVE_FILEMON_H -I`dirname @filemon_h@`";;
8549caa483SSimon J. Gerraty		*) FDEFS=;;
863955d011SMarcel Moolenaar		esac
8749caa483SSimon J. Gerraty		do_compile filemon_@use_filemon@.o filemon/filemon_@use_filemon@.c ${FDEFS}
8849caa483SSimon J. Gerraty		BASE_OBJECTS="filemon_@use_filemon@.o $BASE_OBJECTS"
8949caa483SSimon J. Gerraty		;;
9049caa483SSimon J. Gerraty	esac
9149caa483SSimon J. Gerraty	do_compile meta.o ${MDEFS}
923955d011SMarcel Moolenaar	BASE_OBJECTS="meta.o ${BASE_OBJECTS}"
933955d011SMarcel Moolenaar	;;
943955d011SMarcel Moolenaaresac
9549caa483SSimon J. Gerratydo_compile job.o ${MDEFS}
963955d011SMarcel Moolenaar
9749caa483SSimon J. Gerratydo_link bmake main.o job.o ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}
98