AC_DEFUN(TI_FIX_SHELL,[ AC_MSG_CHECKING(for good shell) if test "$BASH" = '' && test `uname` = HP-UX; then AC_MSG_RESULT([no, switching to bash]) case [$]# in 0) exec bash - "[$]0" ;; *) exec bash - "[$]0" "[$]@" ;; esac else AC_MSG_RESULT(yes) fi]) AC_DEFUN(TI_LIBGCC,[ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK(for libgcc link flags, tc_cv_lib_gcc, [if test "$GCC" = yes; then #LIBGCC="`$CC -v 2>&1 | sed -n 's:^Reading specs from \(.*\)/specs$:-L\1 -lgcc:p'`" LIBGCC="-L`$CC -print-libgcc-file-name | xargs dirname` -lgcc" if test -z "$LIBGCC"; then AC_MSG_ERROR(cannot find libgcc) fi fi tc_cv_lib_gcc="$LIBGCC"]) LIBGCC="$tc_cv_lib_gcc" AC_SUBST(LIBGCC) ]) dnl TI_ENV_DEFAULT(envvar-name, default-value) dnl load an environment variable, using default value if it's missing from env. dnl caches the results to guarantee reconfig gets the originally loaded value AC_DEFUN(TI_ENV_DEFAULT,[ AC_MSG_CHECKING(for $1 in environment) envval_src="cached" AC_CACHE_VAL(ti_cv_envvar_$1, [ case "$[$1]" in '') ti_cv_envvar_$1="[$2]" envval_src=default ;; *) ti_cv_envvar_$1="$[$1]" envval_src=given esac ]) [$1]="$ti_cv_envvar_$1" case "$envval_src" in 'cached') AC_MSG_RESULT([using cached value \"$[$1]\"]) ;; 'default') AC_MSG_RESULT([no, defaulting to \"$[$1]\"]) ;; 'given') AC_MSG_RESULT([yes, using \"$[$1]\"]) ;; *) AC_MSG_ERROR(_TI_ENV_DEFAULT broken) esac ]) dnl TI_RESTORE_AUTOCONF_ENV(env1 env2 env3) dnl call at top of configure.in to restore cached environment variables dnl inspected by autoconf macros. Pass in names of variables AC_DEFUN(TI_RESTORE_AUTOCONF_ENV,[ if test "$ti_acenv_list" != ""; then AC_MSG_ERROR(_TI_RESTORE_AUTOCONF_ENV called more than once) fi ti_acenv_list="$1" AC_MSG_CHECKING(for cached autoconf environment settings) AC_MSG_RESULT("") for varname in $1; do val=`eval echo '$'"ti_cv_acenv_$varname"` if test "$val" != ""; then eval $varname=\"$val\" AC_MSG_RESULT([$varname=\"$val\"]) fi done ]) dnl TI_SAVE_AUTOCONF_ENV() dnl cache the environment variables inspected by autoconf macros AC_DEFUN(TI_SAVE_AUTOCONF_ENV,[ for varname in $ti_acenv_list; do val=`eval echo '$'"$varname"` if test "$val" != ""; then cachevarname=ti_cv_acenv_$varname eval $cachevarname=\"$val\" fi done ]) dnl DOB: doesn't work properly on newer versions of autoconf - I have no idea why dnl _DEFUN(TI_OPTION_HELP,[ --$1 substr([ ],len($1))$2]) AC_DEFUN(TI_OPTION_HELP,[ --$1 $2]) AC_DEFUN(TI_IF_ENABLED,[ AC_ARG_ENABLE($1,TI_OPTION_HELP(enable-$1,$2)) case "$enable_[]patsubst([$1], -, _)" in '' | no) $4 ;; *) $3 ;; esac ]) AC_DEFUN(TI_IF_DISABLED,[ AC_ARG_ENABLE($1,TI_OPTION_HELP(disable-$1,$2)) case "$enable_[]patsubst([$1], -, _)" in '' | yes) $4 ;; *) $3 ;; esac ]) AC_DEFUN(TI_IF_ENABLED_WITH_AUTO,[ AC_ARG_ENABLE($1,TI_OPTION_HELP(enable-$1,$2)) AC_ARG_ENABLE($1,TI_OPTION_HELP(disable-$1,$2)) case "$enable_[]patsubst([$1], -, _)" in no) $4 ;; yes) $3 ;; *) $5 ;; esac ]) AC_DEFUN(TI_SUBST,[ $1="$2" AC_SUBST($1)]) AC_DEFUN(TI_SUBST_FILE,[ $1="$2" AC_SUBST_FILE($1)]) AC_DEFUN(TI_CHECK_PROGS,[ case "$$1" in '') AC_CHECK_PROGS($1,$2) ;; esac case "$$1" in '') AC_MSG_ERROR(cannot find $3) ;; esac]) AC_DEFUN(TI_PATH_PROGS,[ case "$$1" in '') AC_PATH_PROGS($1,$2) ;; esac case "$$1" in '') AC_MSG_ERROR(cannot find $3) ;; esac]) dnl TI_CHECK_LIB(library, function, action-if-found, action-if-not-found, other-flags, other-libraries) AC_DEFUN(TI_CHECK_LIB,[ ti_check_lib_old_ldflags="$LDFLAGS" LDFLAGS="$LD_FLAGS $5" AC_CHECK_LIB($1, $2, $3, $4, $6) LDFLAGS="$ti_check_lib_old_ldflags"]) dnl add file to list of executable outputs that should be marked +x dnl would be nice to use AC_CONFIG_COMMANDS() for each file, but autoconf 2.53 dnl stupidly fails to execute commands having the same tag as a config output file dnl on subsequent calls to config.status AC_DEFUN(TI_FIX_EXEC,[ ti_exec_list="$ti_exec_list $1" ]) dnl ensure the "default" command is run on every invocation of config.status AC_DEFUN(TI_FIX_EXEC_SETUP,[[ dnl round-about method ensure autoconf 2.53 picks up depfiles command if test "\${config_commands+set}" != set ; then config_commands="default" fi CONFIG_COMMANDS="\$config_commands" ti_exec_list="$ti_exec_list" ]]) AC_DEFUN(TI_FIX_EXEC_OUTPUT,[[ for file in $ti_exec_list; do case "$CONFIG_FILES" in *${file}*) chmod +x ${file} ;; esac done ]]) dnl TI_TRY_CFLAG(flags, action-if-supported, action-if-not-supported) AC_DEFUN(TI_TRY_CFLAG,[ oldflags="$CFLAGS" CFLAGS="$CFLAGS $1" AC_LANG_SAVE AC_LANG_C AC_TRY_COMPILE([], [], $2, $3) AC_LANG_RESTORE CFLAGS="$oldflags"]) dnl TI_TRY_CXXFLAG(flags, action-if-supported, action-if-not-supported) AC_DEFUN(TI_TRY_CXXFLAG,[ oldflags="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $1" AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([], [], $2, $3) AC_LANG_RESTORE CXXFLAGS="$oldflags"]) AC_DEFUN(TI_TRY_CACHE_CHECK,[ AC_CACHE_CHECK($1, tc_cv_$2, AC_TRY_COMPILE([$3], [$4], tc_cv_$2=yes, tc_cv_$2=no)) if test "$tc_cv_$2" = yes; then : $5 fi]) AC_DEFUN(TI_TRY_CACHE_LINK,[ AC_CACHE_CHECK($1, tc_cv_$2, AC_TRY_LINK([$3], [$4], tc_cv_$2=yes, tc_cv_$2=no)) if test "$tc_cv_$2" = yes; then : $5 fi]) AC_DEFUN(TI_IFDEF,[ AC_TRY_CPP([ #ifdef $1 # error #endif], $3, $2)]) AC_DEFUN(TI_FAMILY_CACHE_CHECK,[ AC_REQUIRE_CPP AC_CACHE_CHECK(for $1 compiler family, $3, [ $3=unknown TI_IFDEF(__GNUC__, $3=GNU) TI_IFDEF(__xlC__, $3=XLC) TI_IFDEF(__KCC, $3=KAI) TI_IFDEF(__SUNPRO_C, $3=Sun) TI_IFDEF(_CRAYC, $3=Cray) TI_IFDEF(__INTEL_COMPILER, $3=Intel) if test "$$3" = "unknown"; then TI_IFDEF(__digital__, $3=Compaq) fi if test "$$3" = "unknown"; then TI_IFDEF(mips, $3=MIPS) fi ]) $2_FAMILY=$$3 $2_UNWRAPPED=$$2 case $$3 in GNU) $2_WRAPPED=$$2 ;; *) $2_WRAPPED="\$(top_builddir)/cc-wrapper \$($2_FAMILY) \$($2_UNWRAPPED)" ;; esac AC_SUBST($2_FAMILY) AC_SUBST($2_UNWRAPPED) AC_SUBST($2_WRAPPED) TI_SUBST_FILE(cc_wrapper_mk, cc-wrapper.mk) ]) dnl TI_CHECK_BACKEND(backend-name, test-command) AC_DEFUN(TI_CHECK_BACKEND,[ AC_MSG_CHECKING(for $1 backend) override="" if $2; then TI_IF_DISABLED($1,Disable use of the $1 backend (if available), override=yes) if test "$override" = "yes" ; then enable_[]patsubst([$1], -, _)=no override=" (disabled from configure command-line)" else BACKENDS="$BACKENDS $1" enable_[]patsubst([$1], -, _)=yes fi else enable_[]patsubst([$1], -, _)=no fi AC_MSG_RESULT($enable_[]patsubst([$1], -, _)$override) ]) AC_DEFUN(TI_FUNC_ALLOCA,[ AC_SUBST(ALLOCA) patsubst([AC_FUNC_ALLOCA], ["p = alloca"], ["p = (char *) alloca"]) ]) dnl TI_TCBUILD_CFLAGS(name, description, action-if-not-set) AC_DEFUN(TI_TCBUILD_CFLAGS,[ AC_MSG_CHECKING(tcbuild $2 flags) AC_ARG_WITH(tcbuild-cflags-$1, TI_OPTION_HELP(with-tcbuild-cflags-$1=FLAGS,$2 flags used by tcbuild), , [$3]) TCBUILD_CFLAGS_[]translit($1, [a-z], [A-Z])="$withval" AC_SUBST(TCBUILD_CFLAGS_[]translit($1, [a-z], [A-Z])) AC_MSG_RESULT($withval)])