summaryrefslogtreecommitdiff
path: root/devel/bmake/files/make-bootstrap.sh.in
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2010-04-20 13:32:15 +0000
committerjoerg <joerg@pkgsrc.org>2010-04-20 13:32:15 +0000
commit75156626a2b9871f49248f4d7653cef0267f9214 (patch)
treebfc75dd360e181f365d9d55eae81b6553d89b2ef /devel/bmake/files/make-bootstrap.sh.in
parent1869e779310e24b43754c694c616566fa8eca3d7 (diff)
downloadpkgsrc-75156626a2b9871f49248f4d7653cef0267f9214.tar.gz
Import bmake-20100414:
- Resolve argv[0] with realpath if needed - Add :tA to realpath(3)ify variables - Support for .info, .warning, .error, .ERROR - Unit tests for .ERROR / .error; never make .ERROR the default target - Fix for .ALLSRC being populated twice - Support for .MAKE_MODE, .MAKE.MAKEFILE_PREFERENCE, .MAKE_DEPENDFILE - Haiku support - Improved diagnostics for .for with multiple variables - Rewrite bootstrap to not use make - Fix for -m .../ - Add support for .unexport - Catch typoes in .el*if etc - Fix parsing of :S;...;...; applied to .for loop iterators appearing in dependency lines
Diffstat (limited to 'devel/bmake/files/make-bootstrap.sh.in')
-rw-r--r--devel/bmake/files/make-bootstrap.sh.in68
1 files changed, 68 insertions, 0 deletions
diff --git a/devel/bmake/files/make-bootstrap.sh.in b/devel/bmake/files/make-bootstrap.sh.in
new file mode 100644
index 00000000000..64cb9e4d308
--- /dev/null
+++ b/devel/bmake/files/make-bootstrap.sh.in
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+set -e
+
+srcdir=@srcdir@
+
+DEFAULT_SYS_PATH="@default_sys_path@"
+
+CC="@CC@"
+CFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} \
+ -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\""
+
+MAKE_VERSION=`sed -n '/^MAKE_VERSION=/s,.*=[^0-9]*,,p' Makefile`
+
+MDEFS="-D@force_machine@MACHINE=\"@machine@\" -DMACHINE_ARCH=\"@machine_arch@\" -DMAKE_VERSION=\"$MAKE_VERSION\""
+
+LDFLAGS="@LDFLAGS@"
+LIBS="@LIBS@"
+
+do_compile2() {
+ obj="$1"; shift
+ src="$1"; shift
+ echo ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
+ ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src"
+}
+
+do_compile() {
+ obj="$1"; shift
+ src=`basename "$obj" .o`.c
+
+ for d in "$srcdir" "$srcdir/lst.lib"
+ do
+ test -s "$d/$src" || continue
+
+ do_compile2 "$obj" "$d/$src" "$@" || exit 1
+ return
+ done
+ echo "Unknown object file '$1'" >&2
+ exit 1
+}
+
+do_link() {
+ output="$1"; shift
+ echo ${CC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
+ ${CC} ${LDFLAGS} -o "$output" "$@" ${LIBS}
+}
+
+BASE_OBJECTS="arch.o buf.o compat.o cond.o dir.o for.o getopt hash.o \
+job.o make.o make_malloc.o parse.o sigcompat.o str.o strlist.o \
+suff.o targ.o trace.o var.o util.o"
+
+LST_OBJECTS="lstAppend.o lstDupl.o lstInit.o lstOpen.o \
+lstAtEnd.o lstEnQueue.o lstInsert.o lstAtFront.o lstIsAtEnd.o \
+lstClose.o lstFind.o lstIsEmpty.o lstRemove.o lstConcat.o \
+lstFindFrom.o lstLast.o lstReplace.o lstFirst.o lstDatum.o \
+lstForEach.o lstMember.o lstSucc.o lstDeQueue.o lstForEachFrom.o \
+lstDestroy.o lstNext.o lstPrev.o"
+
+LIB_OBJECTS="@LIBOBJS@"
+
+do_compile main.o ${MDEFS}
+
+for o in ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}
+do
+ do_compile "$o"
+done
+
+do_link bmake main.o ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS}