# in projects where [ $mb_use_custom_cfgdefs = yes ], # cfgdefs.sh is invoked from within ./configure via # . $mb_project_dir/project/cfgdefs.sh # a successful return from cfgdefs.sh will be followed # by a second invocation of the config_copy() function, # reflecting any changes to common config variables # made by cfgdefs.sh. # finally, cfgdefs.sh may update the contents of the # config-time generated cfgdefs.mk. for arg ; do case "$arg" in *) error_msg ${arg#}: "unsupported config argument." exit 2 esac done cfgdefs_bootstrap() { cfgdefs_bootstrap_done=${cfgdefs_bootstrap_done:-} if [ _$cfgdefs_bootstrap_done = _yes ]; then return 0 fi cfgdefs_objs= cfgdefs_utilsrc='make.c' cfgdefs_sources="arch.c buf.c compat.c cond.c dir.c enum.c for.c hash.c job.c" cfgdefs_sources="$cfgdefs_sources lst.c main.c make_malloc.c meta.c metachar.c parse.c" cfgdefs_sources="$cfgdefs_sources str.c suff.c targ.c trace.c util.c var.c" cfgdefs_cflags="-I${mb_source_dir}/src/internal" cfgdefs_cflags="$cfgdefs_cflags -D_PATH_DEFSYSPATH=\"${mb_source_dir}/mk\"" cfgdefs_cflags="$cfgdefs_cflags -DHAVE_STRERROR -DHAVE_VSNPRINTF" cfgdefs_cflags="$cfgdefs_cflags -DHAVE_SETPGID -DHAVE_SETRLIMIT -DHAVE_SETENV" cfgdefs_make="$mb_pwd/bootstrap/make" mkdir -p "$mb_pwd/bootstrap" printf '\n\n' for src in $cfgdefs_utilsrc; do obj=${src%%.c}.o cfgdefs_objs="$cfgdefs_objs $mb_pwd/bootstrap/${obj}" set -x "$mb_native_cc" $mb_native_cflags $cfgdefs_cflags \ -c "$mb_source_dir/src/${src}" \ -o "$mb_pwd/bootstrap/${obj}" set +x done for src in $cfgdefs_sources; do obj=${src%%.c}.o cfgdefs_objs="$cfgdefs_objs $mb_pwd/bootstrap/${obj}" set -x "$mb_native_cc" $mb_native_cflags $cfgdefs_cflags \ -c "$mb_source_dir/src/logic/${src}" \ -o "$mb_pwd/bootstrap/${obj}" set +x done "$mb_native_cc" $mb_native_cflags $cfgdefs_cflags \ $mb_native_ldflags $cfgdefs_objs \ -o "$cfgdefs_make" mb_make="$cfgdefs_make" cfgdefs_bootstrap_done='yes' } # bootstrap cfgdefs_bootstrap # all done return 0