1#!/bin/sh 2 3set -e 4 5prefix=@prefix@ 6srcdir=@srcdir@ 7 8DEFAULT_SYS_PATH="@default_sys_path@" 9 10case "@use_meta@" in 11yes) XDEFS="-DUSE_META ${XDEFS}";; 12esac 13 14CC="@CC@" 15CFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@" 16 17MAKE_VERSION=@_MAKE_VERSION@ 18 19MDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \ 20-D@force_machine@MACHINE=\"@machine@\" \ 21-D@force_machine_arch@MACHINE_ARCH=\"@machine_arch@\" \ 22-D@force_make_os@MAKE_OS=\"@make_os@\" \ 23-D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" \ 24-DMAKE_SAVE_DOLLARS_DEFAULT=\"@save_dollars@\" \ 25" 26 27 28LDFLAGS="@LDFLAGS@" 29LIBS="@LIBS@" 30 31toUpper() { 32 ${TR:-tr} abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 33} 34 35do_compile2() { 36 obj="$1"; shift 37 src="$1"; shift 38 echo ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src" 39 ${CC} -c ${CFLAGS} "$@" -o "$obj" "$src" 40} 41 42do_compile() { 43 obj="$1"; shift 44 case "$1" in 45 *.c) src=$1; shift;; 46 *) src=`basename "$obj" .o`.c;; 47 esac 48 49 for d in "$srcdir" "$srcdir/lst.lib" 50 do 51 test -s "$d/$src" || continue 52 53 do_compile2 "$obj" "$d/$src" "$@" || exit 1 54 return 55 done 56 echo "Unknown object file '$obj'" >&2 57 exit 1 58} 59 60do_link() { 61 output="$1"; shift 62 echo ${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS} 63 ${CC} ${LDSTATIC} ${LDFLAGS} -o "$output" "$@" ${LIBS} 64} 65 66BASE_OBJECTS="arch.o buf.o compat.o cond.o dir.o for.o hash.o \ 67lst.o make.o make_malloc.o metachar.o parse.o sigcompat.o str.o \ 68suff.o targ.o trace.o var.o util.o" 69 70LIB_OBJECTS="@LIBOBJS@" 71 72do_compile main.o ${MDEFS} 73 74for o in ${BASE_OBJECTS} ${LIB_OBJECTS} 75do 76 do_compile "$o" 77done 78 79case "@use_meta@" in 80yes) 81 case "@use_filemon@" in 82 no) MDEFS=;; 83 *) 84 MDEFS="-DUSE_FILEMON -DUSE_FILEMON_`echo @use_filemon@ | toUpper`" 85 case "@use_filemon@,@filemon_h@" in 86 dev,*/filemon.h) FDEFS="-DHAVE_FILEMON_H -I`dirname @filemon_h@`";; 87 *) FDEFS=;; 88 esac 89 do_compile filemon_@use_filemon@.o filemon/filemon_@use_filemon@.c ${FDEFS} 90 BASE_OBJECTS="filemon_@use_filemon@.o $BASE_OBJECTS" 91 ;; 92 esac 93 do_compile meta.o ${MDEFS} 94 BASE_OBJECTS="meta.o ${BASE_OBJECTS}" 95 ;; 96esac 97do_compile job.o ${MDEFS} 98 99do_link bmake main.o job.o ${BASE_OBJECTS} ${LST_OBJECTS} ${LIB_OBJECTS} 100