mirror of https://github.com/Cisco-Talos/clamav
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
585 lines
20 KiB
585 lines
20 KiB
dnl @synopsis AC_CREATE_TARGET_H [(HEADER-FILE [,PREFIX)]
|
|
dnl
|
|
dnl create the header-file and let it contain '#defines'
|
|
dnl for the target platform. This macro is used for libraries
|
|
dnl that have platform-specific quirks. Instead of inventing a
|
|
dnl target-specific target.h.in files, just let it create a
|
|
dnl header file from the definitions of AC_CANONICAL_SYSTEM
|
|
dnl and put only ifdef's in the installed header-files.
|
|
dnl
|
|
dnl if the HEADER-FILE is absent, [target.h] is used.
|
|
dnl if the PREFIX is absent, [TARGET] is used.
|
|
dnl the prefix can be the packagename. (y:a-z-:A-Z_:)
|
|
dnl
|
|
dnl the defines look like...
|
|
dnl
|
|
dnl #ifndef TARGET_CPU_M68K
|
|
dnl #define TARGET_CPU_M68K "m68k"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef TARGET_OS_LINUX
|
|
dnl #define TARGET_OS_LINUX "linux-gnu"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef TARGET_OS_TYPE /* the string itself */
|
|
dnl #define TARGET_OS_TYPE "linux-gnu"
|
|
dnl #endif
|
|
dnl
|
|
dnl detail: in the case of hppa1.1, the three idents "hppa1_1" "hppa1"
|
|
dnl and "hppa" are derived, for an m68k it just two, "m68k" and "m"
|
|
dnl
|
|
dnl the CREATE_TARGET_H__ variant is almost the same function, but everything
|
|
dnl is lowercased instead of uppercased, and there is a "__" in front of
|
|
dnl each prefix, so it looks like...
|
|
dnl
|
|
dnl #ifndef __target_os_linux
|
|
dnl #define __target_os_linux "linux-gnulibc2"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef __target_os__ /* the string itself */
|
|
dnl #define __target_os__ "linux-gnulibc2"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef __target_cpu_i586
|
|
dnl #define __target_cpu_i586 "i586"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef __target_arch_i386
|
|
dnl #define __target_arch_i386 "i386"
|
|
dnl #endif
|
|
dnl
|
|
dnl #ifndef __target_arch__ /* cpu family arch */
|
|
dnl #define __target_arch__ "i386"
|
|
dnl #endif
|
|
dnl
|
|
dnl other differences: the default string-define is "__" insteadof "_TYPE"
|
|
dnl
|
|
dnl personally I prefer the second variant (which had been the first in
|
|
dnl the devprocess of this file but I assume people will often fallback
|
|
dnl to the primary variant presented herein).
|
|
dnl
|
|
dnl NOTE: CREATE_TARGET_H does also fill HOST_OS-defines
|
|
dnl functionality has been split over functions called CREATE_TARGET_H_UPPER
|
|
dnl CREATE_TARGET_H_LOWER CREATE_TARGET_HOST_UPPER CREATE_TARGET_HOST_LOWER
|
|
dnl CREATE_TARGET_H uses CREATE_TARGET_H_UPPER CREATE_TARGET_HOST_UPPER
|
|
dnl CREATE_TARGET_H_ uses CREATE_TARGET_H_LOWER CREATE_TARGET_HOST_LOWER
|
|
dnl
|
|
dnl there is now a CREATE_PREFIX_TARGET_H in this file as a shorthand for
|
|
dnl PREFIX_CONFIG_H from a target.h file, however w/o the target.h ever created
|
|
dnl (the prefix is a bit different, since we add an extra -target- and -host-)
|
|
dnl
|
|
dnl @version: $Id: acinclude.m4,v 1.8 2006/12/22 19:45:32 acab Exp $
|
|
dnl @author Guido Draheim <guidod@gmx.de> STATUS: used often
|
|
|
|
AC_DEFUN([AC_CREATE_TARGET_H],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_CREATE_TARGET_H_UPPER($1,$2)
|
|
AC_CREATE_TARGET_HOST_UPPER($1,$2)
|
|
])
|
|
|
|
AC_DEFUN([AC_CREATE_TARGET_OS_H],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_CREATE_TARGET_H_LOWER($1,$2)
|
|
AC_CREATE_TARGET_HOST_LOWER($1,$2)
|
|
])
|
|
|
|
AC_DEFUN([AC_CREATE_TARGET_H__],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_CREATE_TARGET_H_LOWER($1,$2)
|
|
AC_CREATE_TARGET_HOST_LOWER($1,$2)
|
|
])
|
|
|
|
dnl [(OUT-FILE [, PREFIX])] defaults: PREFIX=$PACKAGE OUTFILE=$PREFIX-target.h
|
|
AC_DEFUN([AC_CREATE_PREFIX_TARGET_H],[dnl
|
|
ac_prefix_conf_PKG=`echo ifelse($2, , $PACKAGE, $2)`
|
|
ac_prefix_conf_OUT=`echo ifelse($1, , $ac_prefix_conf_PKG-target.h, $1)`
|
|
ac_prefix_conf_PRE=`echo $ac_prefix_conf_PKG-target | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:'`
|
|
AC_CREATE_TARGET_H_UPPER($ac_prefix_conf_PRE,$ac_perfix_conf_OUT)
|
|
ac_prefix_conf_PRE=`echo __$ac_prefix_conf_PKG-host | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:'`
|
|
AC_CREATE_TARGET_HOST_UPPER($ac_prefix_conf_PRE,$ac_perfix_conf_OUT)
|
|
])
|
|
|
|
dnl [(OUT-FILE[, PREFIX])] defaults: PREFIX=$PACKAGE OUTFILE=$PREFIX-target.h
|
|
AC_DEFUN([AC_CREATE_PREFIX_TARGET_H_],[dnl
|
|
ac_prefix_conf_PKG=`echo ifelse($2, , $PACKAGE, $2)`
|
|
ac_prefix_conf_OUT=`echo ifelse($1, , $ac_prefix_conf_PKG-target.h, $1)`
|
|
ac_prefix_conf_PRE=`echo __$ac_prefix_conf_PKG-target | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:'`
|
|
AC_CREATE_TARGET_H_LOWER($ac_prefix_conf_PRE,$ac_perfix_conf_OUT)
|
|
ac_prefix_conf_PRE=`echo __$ac_prefix_conf_PKG-host | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:'`
|
|
AC_CREATE_TARGET_HOST_LOWER($ac_prefix_conf_PRE,$ac_perfix_conf_OUT)
|
|
])
|
|
|
|
AC_DEFUN([AC_CREATE_TARGET_H_FILE],[dnl
|
|
ac_need_target_h_file_new=true
|
|
])
|
|
|
|
AC_DEFUN([AC_CREATE_TARGET_H_UPPER],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_REQUIRE([AC_CREATE_TARGET_H_FILE])
|
|
changequote({, })dnl
|
|
ac_need_target_h_file=`echo ifelse($1, , target.h, $1)`
|
|
ac_need_target_h_prefix=`echo ifelse($2, , target, $2) | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:' -e 's:[^A-Z0-9_]::g'`
|
|
#
|
|
target_os0=`echo "$target_os" | sed -e 'y:abcdefghijklmnopqrstuvwxyz.-:ABCDEFGHIJKLMNOPQRSTUVWXYZ__:' -e 's:[^A-Z0-9_]::g'`
|
|
target_os1=`echo "$target_os0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
target_os2=`echo "$target_os0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
target_os3=`echo "$target_os2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
target_cpu0=`echo "$target_cpu" | sed -e 'y:abcdefghijklmnopqrstuvwxyz.-:ABCDEFGHIJKLMNOPQRSTUVWXYZ__:' -e 's:[^A-Z0-9_]::g'`
|
|
target_cpu1=`echo "$target_cpu0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
target_cpu2=`echo "$target_cpu0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
target_cpu3=`echo "$target_cpu2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
target_cpu_arch0=`echo "$target_cpu_arch" | sed -e 'y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:'`
|
|
#
|
|
changequote([, ])dnl
|
|
#
|
|
if $ac_need_target_h_file_new ; then
|
|
AC_MSG_RESULT(creating $ac_need_target_h_file - canonical system defines)
|
|
echo /'*' automatically generated by $PACKAGE configure '*'/ >$ac_need_target_h_file
|
|
echo /'*' on `date` '*'/ >>$ac_need_target_h_file
|
|
ac_need_target_h_file_new=false
|
|
fi
|
|
echo /'*' target uppercase defines '*'/ >>$ac_need_target_h_file
|
|
dnl
|
|
old1=""
|
|
old2=""
|
|
for i in $target_os0 $target_os1 $target_os2 $target_os3 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_OS_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_OS_"$i '"'"$target_os"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $target_cpu0 $target_cpu1 $target_cpu2 $target_cpu3 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_CPU_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_CPU_"$i '"'"$target_cpu"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $target_cpu_arch0 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_ARCH_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_ARCH_"$i '"'"$target_cpu_arch"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
])
|
|
|
|
dnl
|
|
dnl ... the lowercase variant ...
|
|
dnl
|
|
AC_DEFUN([AC_CREATE_TARGET_H_LOWER],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_REQUIRE([AC_CREATE_TARGET_H_FILE])
|
|
changequote({, })dnl
|
|
ac_need_target_h_file=`echo ifelse($1, , target-os.h, $1)`
|
|
ac_need_target_h_prefix=`echo ifelse($2, , target, $2) | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:' -e 's:[^a-z0-9_]::g'`
|
|
#
|
|
target_os0=`echo "$target_os" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ.-:abcdefghijklmnopqrstuvwxyz__:' -e 's:[^a-z0-9_]::g'`
|
|
target_os1=`echo "$target_os0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
target_os2=`echo "$target_os0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
target_os3=`echo "$target_os2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
target_cpu0=`echo "$target_cpu" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ.-:abcdefghijklmnopqrstuvwxyz__:' -e 's:[^a-z0-9_]::g'`
|
|
target_cpu1=`echo "$target_cpu0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
target_cpu2=`echo "$target_cpu0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
target_cpu3=`echo "$target_cpu2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
target_cpu_arch0=`echo "$target_cpu_arch" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ:abcdefghijklmnopqrstuvwxyz:'`
|
|
#
|
|
changequote([, ])dnl
|
|
#
|
|
if $ac_need_target_h_file_new ; then
|
|
AC_MSG_RESULT(creating $ac_need_target_h_file - canonical system defines)
|
|
echo /'*' automatically generated by $PACKAGE configure '*'/ >$ac_need_target_h_file
|
|
echo /'*' on `date` '*'/ >>$ac_need_target_h_file
|
|
ac_need_target_h_file_new=false
|
|
fi
|
|
echo /'*' target lowercase defines '*'/ >>$ac_need_target_h_file
|
|
dnl
|
|
old1=""
|
|
old2=""
|
|
for i in $target_os0 $target_os1 $target_os2 $target_os3 "_";
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_os_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_os_"$i '"'"$target_os"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $target_cpu0 $target_cpu1 $target_cpu2 $target_cpu3 "_"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_cpu_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_cpu_"$i '"'"$target_cpu"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $target_cpu_arch0 "_"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_arch_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_arch_"$i '"'"$target_cpu_arch"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
])
|
|
|
|
dnl -------------------------------------------------------------------
|
|
dnl
|
|
dnl ... the uppercase variant for the host ...
|
|
dnl
|
|
AC_DEFUN([AC_CREATE_TARGET_HOST_UPPER],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_REQUIRE([AC_CREATE_TARGET_H_FILE])
|
|
changequote({, })dnl
|
|
ac_need_target_h_file=`echo ifelse($1, , target.h, $1)`
|
|
ac_need_target_h_prefix=`echo ifelse($2, , host, $2) | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:' -e 's:[^A-Z0-9_]::g'`
|
|
#
|
|
host_os0=`echo "$host_os" | sed -e 'y:abcdefghijklmnopqrstuvwxyz.-:ABCDEFGHIJKLMNOPQRSTUVWXYZ__:' -e 's:[^A-Z0-9_]::g'`
|
|
host_os1=`echo "$host_os0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
host_os2=`echo "$host_os0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
host_os3=`echo "$host_os2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
host_cpu0=`echo "$host_cpu" | sed -e 'y:abcdefghijklmnopqrstuvwxyz.-:ABCDEFGHIJKLMNOPQRSTUVWXYZ__:' -e 's:[^A-Z0-9]::g'`
|
|
host_cpu1=`echo "$host_cpu0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
host_cpu2=`echo "$host_cpu0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
host_cpu3=`echo "$host_cpu2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
host_cpu_arch0=`echo "$host_cpu_arch" | sed -e 'y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:'`
|
|
#
|
|
changequote([, ])dnl
|
|
#
|
|
if $ac_need_target_h_file_new ; then
|
|
AC_MSG_RESULT(creating $ac_need_target_h_file - canonical system defines)
|
|
echo /'*' automatically generated by $PACKAGE configure '*'/ >$ac_need_target_h_file
|
|
echo /'*' on `date` '*'/ >>$ac_need_target_h_file
|
|
ac_need_target_h_file_new=false
|
|
fi
|
|
echo /'*' host uppercase defines '*'/ >>$ac_need_target_h_file
|
|
dnl
|
|
old1=""
|
|
old2=""
|
|
for i in $host_os0 $host_os1 $host_os2 $host_os3 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_OS_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_OS_"$i '"'"$host_os"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $host_cpu0 $host_cpu1 $host_cpu2 $host_cpu3 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_CPU_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_CPU_"$i '"'"$host_cpu"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $host_cpu_arch0 "TYPE"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef "$ac_need_target_h_prefix"_ARCH_"$i >>$ac_need_target_h_file
|
|
echo "#define "$ac_need_target_h_prefix"_ARCH_"$i '"'"$host_cpu_arch"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
])
|
|
|
|
dnl ---------------------------------------------------------------------
|
|
dnl
|
|
dnl ... the lowercase variant for the host ...
|
|
dnl
|
|
AC_DEFUN([AC_CREATE_TARGET_HOST_LOWER],
|
|
[AC_REQUIRE([AC_CANONICAL_CPU_ARCH])
|
|
AC_REQUIRE([AC_CREATE_TARGET_H_FILE])
|
|
changequote({, })dnl
|
|
ac_need_target_h_file=`echo ifelse($1, , target.h, $1)`
|
|
ac_need_target_h_prefix=`echo ifelse($2, , host, $2) | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:' -e 's:[^a-z0-9_]::g'`
|
|
#
|
|
host_os0=`echo "$host_os" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ.-:abcdefghijklmnopqrstuvwxyz__:' -e 's:[^a-z0-9_]::g'`
|
|
host_os1=`echo "$host_os0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
host_os2=`echo "$host_os0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
host_os3=`echo "$host_os2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
host_cpu0=`echo "$host_cpu" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ.-:abcdefghijklmnopqrstuvwxyz__:' -e 's:[^a-z0-9_]::g'`
|
|
host_cpu1=`echo "$host_cpu0" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
host_cpu2=`echo "$host_cpu0" | sed -e 's:\([^_]*\).*:\1:' `
|
|
host_cpu3=`echo "$host_cpu2" | sed -e 's:\([^0-9]*\).*:\1:' `
|
|
#
|
|
host_cpu_arch0=`echo "$host_cpu_arch" | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ:abcdefghijklmnopqrstuvwxyz:'`
|
|
#
|
|
changequote([, ])dnl
|
|
#
|
|
if $ac_need_target_h_file_new ; then
|
|
AC_MSG_RESULT(creating $ac_need_target_h_file - canonical system defines)
|
|
echo /'*' automatically generated by $PACKAGE configure '*'/ >$ac_need_target_h_file
|
|
echo /'*' on `date` '*'/ >>$ac_need_target_h_file
|
|
ac_need_target_h_file_new=false
|
|
fi
|
|
echo /'*' host lowercase defines '*'/ >>$ac_need_target_h_file
|
|
dnl
|
|
old1=""
|
|
old2=""
|
|
for i in $host_os0 $host_os1 $host_os2 $host_os3 "_";
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_os_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_os_"$i '"'"$host_os"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $host_cpu0 $host_cpu1 $host_cpu2 $host_cpu3 "_"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_cpu_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_cpu_"$i '"'"$host_cpu"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
#
|
|
old1=""
|
|
old2=""
|
|
for i in $host_cpu_arch0 "_"
|
|
do
|
|
if test "$old1" != "$i"; then
|
|
if test "$old2" != "$i"; then
|
|
echo " " >>$ac_need_target_h_file
|
|
echo "#ifndef __"$ac_need_target_h_prefix"_arch_"$i >>$ac_need_target_h_file
|
|
echo "#define __"$ac_need_target_h_prefix"_arch_"$i '"'"$host_cpu_arch"'"' >>$ac_need_target_h_file
|
|
echo "#endif" >>$ac_need_target_h_file
|
|
fi
|
|
fi
|
|
old2="$old1"
|
|
old1="$i"
|
|
done
|
|
])
|
|
|
|
dnl -------------------------------------------------------------------
|
|
|
|
dnl
|
|
dnl the instruction set architecture (ISA) has evolved for a small set
|
|
dnl of cpu types. So they often have specific names, e.g. sparclite,
|
|
dnl yet they share quite a few similarities. This macro will set the
|
|
dnl shell-var $target_cpu_arch to the basic type. Note that these
|
|
dnl names are often in conflict with their original 32-bit type name
|
|
dnl of these processors, just use them for directory-handling or add
|
|
dnl a prefix/suffix to distinguish them from $target_cpu
|
|
dnl
|
|
dnl this macros has been invented since config.guess is sometimes
|
|
dnl too specific about the cpu-type. I chose the names along the lines
|
|
dnl of linux/arch/ which is modelled after widespread arch-naming, IMHO.
|
|
dnl
|
|
AC_DEFUN([AC_CANONICAL_CPU_ARCH],
|
|
[AC_REQUIRE([AC_CANONICAL_SYSTEM])
|
|
target_cpu_arch="unknown"
|
|
case $target_cpu in
|
|
i386*|i486*|i586*|i686*|i786*) target_cpu_arch=i386 ;;
|
|
power*) target_cpu_arch=ppc ;;
|
|
arm*) target_cpu_arch=arm ;;
|
|
sparc64*) target_cpu_arch=sparc64 ;;
|
|
sparc*) target_cpu_arch=sparc ;;
|
|
mips64*) target_cpu_arch=mips64 ;;
|
|
mips*) target_cpu_arch=mips ;;
|
|
alpha*) target_cpu_arch=alpha ;;
|
|
hppa1*) target_cpu_arch=hppa1 ;;
|
|
hppa2*) target_cpu_arch=hppa2 ;;
|
|
arm*) target_cpu_arch=arm ;;
|
|
m68???|mcf54??) target_cpu_arch=m68k ;;
|
|
*) target_cpu_arch="$target_cpu" ;;
|
|
esac
|
|
|
|
host_cpu_arch="unknown"
|
|
case $host_cpu in
|
|
i386*|i486*|i586*|i686*|i786*) host_cpu_arch=i386 ;;
|
|
power*) host_cpu_arch=ppc ;;
|
|
arm*) host_cpu_arch=arm ;;
|
|
sparc64*) host_cpu_arch=sparc64 ;;
|
|
sparc*) host_cpu_arch=sparc ;;
|
|
mips64*) host_cpu_arch=mips64 ;;
|
|
mips*) host_cpu_arch=mips ;;
|
|
alpha*) host_cpu_arch=alpha ;;
|
|
hppa1*) host_cpu_arch=hppa1 ;;
|
|
hppa2*) host_cpu_arch=hppa2 ;;
|
|
arm*) host_cpu_arch=arm ;;
|
|
m68???|mcf54??) host_cpu_arch=m68k ;;
|
|
*) host_cpu_arch="$target_cpu" ;;
|
|
esac
|
|
])
|
|
|
|
dnl @synopsis AC_COMPILE_CHECK_SIZEOF(TYPE [, HEADERS [, EXTRA_SIZES...]])
|
|
dnl
|
|
dnl This macro checks for the size of TYPE using compile checks, not
|
|
dnl run checks. You can supply extra HEADERS to look into. the check
|
|
dnl will cycle through 1 2 4 8 16 and any EXTRA_SIZES the user
|
|
dnl supplies. If a match is found, it will #define SIZEOF_`TYPE' to
|
|
dnl that value. Otherwise it will emit a configure time error
|
|
dnl indicating the size of the type could not be determined.
|
|
dnl
|
|
dnl The trick is that C will not allow duplicate case labels. While
|
|
dnl this is valid C code:
|
|
dnl
|
|
dnl switch (0) case 0: case 1:;
|
|
dnl
|
|
dnl The following is not:
|
|
dnl
|
|
dnl switch (0) case 0: case 0:;
|
|
dnl
|
|
dnl Thus, the AC_TRY_COMPILE will fail if the currently tried size
|
|
dnl does not match.
|
|
dnl
|
|
dnl Here is an example skeleton configure.in script, demonstrating the
|
|
dnl macro's usage:
|
|
dnl
|
|
dnl AC_PROG_CC
|
|
dnl AC_CHECK_HEADERS(stddef.h unistd.h)
|
|
dnl AC_TYPE_SIZE_T
|
|
dnl AC_CHECK_TYPE(ssize_t, int)
|
|
dnl
|
|
dnl headers='#ifdef HAVE_STDDEF_H
|
|
dnl #include <stddef.h>
|
|
dnl #endif
|
|
dnl #ifdef HAVE_UNISTD_H
|
|
dnl #include <unistd.h>
|
|
dnl #endif
|
|
dnl '
|
|
dnl
|
|
dnl AC_COMPILE_CHECK_SIZEOF(char)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(short)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(int)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(long)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(unsigned char *)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(void *)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(size_t, $headers)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(ssize_t, $headers)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(ptrdiff_t, $headers)
|
|
dnl AC_COMPILE_CHECK_SIZEOF(off_t, $headers)
|
|
dnl
|
|
dnl @author Kaveh Ghazi <ghazi@caip.rutgers.edu>
|
|
dnl @version $Id: acinclude.m4,v 1.8 2006/12/22 19:45:32 acab Exp $
|
|
dnl
|
|
AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
|
|
[changequote(<<, >>)dnl
|
|
dnl The name to #define.
|
|
define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
|
|
dnl The cache variable name.
|
|
define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
|
|
changequote([, ])dnl
|
|
AC_MSG_CHECKING(size of $1)
|
|
AC_CACHE_VAL(AC_CV_NAME,
|
|
[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence.
|
|
AC_TRY_COMPILE([#include "confdefs.h"
|
|
#include <sys/types.h>
|
|
$2
|
|
], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
|
|
if test x$AC_CV_NAME != x ; then break; fi
|
|
done
|
|
])
|
|
if test x$AC_CV_NAME = x ; then
|
|
AC_MSG_ERROR([cannot determine a size for $1])
|
|
fi
|
|
AC_MSG_RESULT($AC_CV_NAME)
|
|
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
|
|
undefine([AC_TYPE_NAME])dnl
|
|
undefine([AC_CV_NAME])dnl
|
|
])
|
|
dnl Add --enable-maintainer-mode option to configure.
|
|
dnl From Jim Meyering
|
|
|
|
dnl serial 1
|
|
|
|
AC_DEFUN([AM_MAINTAINER_MODE],
|
|
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|
dnl maintainer-mode is disabled by default
|
|
AC_ARG_ENABLE(maintainer-mode,
|
|
[ --enable-maintainer-mode enable make rules and dependencies not useful
|
|
(and sometimes confusing) to the casual installer],
|
|
USE_MAINTAINER_MODE=$enableval,
|
|
USE_MAINTAINER_MODE=no)
|
|
AC_MSG_RESULT($USE_MAINTAINER_MODE)
|
|
AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
|
|
MAINT=$MAINTAINER_MODE_TRUE
|
|
AC_SUBST(MAINT)dnl
|
|
]
|
|
)
|
|
|