xref: /freebsd/contrib/bmake/make-bootstrap.sh.in (revision e22fef7dc1daad9b476ecdba180445fd1af6ca1c)
13955d011SMarcel Moolenaar#!/bin/sh
23955d011SMarcel Moolenaar
33955d011SMarcel Moolenaarset -e
43955d011SMarcel Moolenaar
53955d011SMarcel Moolenaarsrcdir=@srcdir@
63955d011SMarcel Moolenaar
73955d011SMarcel MoolenaarDEFAULT_SYS_PATH="@default_sys_path@"
83955d011SMarcel Moolenaar
93955d011SMarcel Moolenaarcase "@use_meta@" in
103955d011SMarcel Moolenaaryes) XDEFS="-DUSE_META ${XDEFS}";;
113955d011SMarcel Moolenaaresac
123955d011SMarcel Moolenaar
133955d011SMarcel MoolenaarCC="@CC@"
140dede8b0SSimon J. GerratyCFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@"
153955d011SMarcel Moolenaar
16*e22fef7dSSimon J. GerratyMAKE_VERSION=@_MAKE_VERSION@
173955d011SMarcel Moolenaar
183955d011SMarcel MoolenaarMDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \
193955d011SMarcel Moolenaar-D@force_machine@MACHINE=\"@machine@\" -DMACHINE_ARCH=\"@machine_arch@\" \
203955d011SMarcel Moolenaar-D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\""
213955d011SMarcel Moolenaar
223955d011SMarcel Moolenaar
233955d011SMarcel MoolenaarLDFLAGS="@LDFLAGS@"
243955d011SMarcel MoolenaarLIBS="@LIBS@"
253955d011SMarcel Moolenaar
263955d011SMarcel Moolenaardo_compile2() {
273955d011SMarcel Moolenaar	obj="$1"; shift
283955d011SMarcel Moolenaar	src="$1"; shift
293955d011SMarcel Moolenaar	echo ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
303955d011SMarcel Moolenaar	${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
313955d011SMarcel Moolenaar}
323955d011SMarcel Moolenaar
333955d011SMarcel Moolenaardo_compile() {
343955d011SMarcel Moolenaar	obj="$1"; shift
353955d011SMarcel Moolenaar	src=`basename "$obj" .o`.c
363955d011SMarcel Moolenaar
373955d011SMarcel Moolenaar	for d in "$srcdir" "$srcdir/lst.lib"
383955d011SMarcel Moolenaar	do
393955d011SMarcel Moolenaar		test -s "$d/$src" || continue
403955d011SMarcel Moolenaar
413955d011SMarcel Moolenaar		do_compile2 "$obj" "$d/$src" "$@" || exit 1
423955d011SMarcel Moolenaar		return
433955d011SMarcel Moolenaar	done
443955d011SMarcel Moolenaar	echo "Unknown object file '$obj'" >&2
453955d011SMarcel Moolenaar	exit 1
463955d011SMarcel Moolenaar}
473955d011SMarcel Moolenaar
483955d011SMarcel Moolenaardo_link() {
493955d011SMarcel Moolenaar	output="$1"; shift
503955d011SMarcel Moolenaar	echo ${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
513955d011SMarcel Moolenaar	${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
523955d011SMarcel Moolenaar}
533955d011SMarcel Moolenaar
543955d011SMarcel MoolenaarBASE_OBJECTS="arch.o buf.o compat.o cond.o dir.o for.o getopt hash.o \
554c620fe5SSimon J. Gerratyjob.o make.o make_malloc.o metachar.o parse.o sigcompat.o str.o strlist.o \
563955d011SMarcel Moolenaarsuff.o targ.o trace.o var.o util.o"
573955d011SMarcel Moolenaar
583955d011SMarcel MoolenaarLST_OBJECTS="lstAppend.o lstDupl.o lstInit.o lstOpen.o \
593955d011SMarcel MoolenaarlstAtEnd.o lstEnQueue.o lstInsert.o lstAtFront.o lstIsAtEnd.o \
603955d011SMarcel MoolenaarlstClose.o lstFind.o lstIsEmpty.o lstRemove.o lstConcat.o \
613955d011SMarcel MoolenaarlstFindFrom.o lstLast.o lstReplace.o lstFirst.o lstDatum.o \
623955d011SMarcel MoolenaarlstForEach.o lstMember.o lstSucc.o lstDeQueue.o lstForEachFrom.o \
633955d011SMarcel MoolenaarlstDestroy.o lstNext.o lstPrev.o"
643955d011SMarcel Moolenaar
653955d011SMarcel MoolenaarLIB_OBJECTS="@LIBOBJS@"
663955d011SMarcel Moolenaar
673955d011SMarcel Moolenaardo_compile main.o ${MDEFS}
683955d011SMarcel Moolenaar
693955d011SMarcel Moolenaarfor o in ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}
703955d011SMarcel Moolenaardo
713955d011SMarcel Moolenaar	do_compile "$o"
723955d011SMarcel Moolenaardone
733955d011SMarcel Moolenaar
743955d011SMarcel Moolenaarcase "@use_meta@" in
753955d011SMarcel Moolenaaryes)
763955d011SMarcel Moolenaar        case "@filemon_h@" in
773955d011SMarcel Moolenaar	*/filemon.h) FDEFS="-DHAVE_FILEMON_H -I`dirname @filemon_h@`";;
783955d011SMarcel Moolenaar	esac
793955d011SMarcel Moolenaar        do_compile meta.o ${FDEFS}
803955d011SMarcel Moolenaar        BASE_OBJECTS="meta.o ${BASE_OBJECTS}"
813955d011SMarcel Moolenaar        ;;
823955d011SMarcel Moolenaaresac
833955d011SMarcel Moolenaar
843955d011SMarcel Moolenaardo_link bmake main.o ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}
85