1*b89261baSDavid van Moolenbroek# configure.ac 2*b89261baSDavid van MoolenbroekAC_INIT(top, 3.8beta1) 3*b89261baSDavid van Moolenbroek 4*b89261baSDavid van Moolenbroek# AX_CHECK_VARIADIC_MACROS... 5*b89261baSDavid van Moolenbroek# ----- 6*b89261baSDavid van MoolenbroekAC_DEFUN([AX_CHECK_VARIADIC_MACROS], 7*b89261baSDavid van Moolenbroek[AC_MSG_CHECKING([for variadic macros]) 8*b89261baSDavid van MoolenbroekAC_COMPILE_IFELSE(AC_LANG_PROGRAM( 9*b89261baSDavid van Moolenbroek[#define a(x, ...) (x, __VA_ARGS__)], []), 10*b89261baSDavid van Moolenbroek [AS_VAR_SET(ax_cv_c99_variadic, yes)], 11*b89261baSDavid van Moolenbroek [AS_VAR_SET(ax_cv_c99_variadic, no)]) 12*b89261baSDavid van MoolenbroekAC_COMPILE_IFELSE(AC_LANG_PROGRAM( 13*b89261baSDavid van Moolenbroek[#define a(x...) (x)], []), 14*b89261baSDavid van Moolenbroek [AS_VAR_SET(ax_cv_gnu_variadic, yes)], 15*b89261baSDavid van Moolenbroek [AS_VAR_SET(ax_cv_gnu_variadic, no)]) 16*b89261baSDavid van Moolenbroek_result="" 17*b89261baSDavid van Moolenbroekif test "$ax_cv_c99_variadic" = "yes"; then 18*b89261baSDavid van Moolenbroek _result=" c99" 19*b89261baSDavid van Moolenbroek AC_DEFINE(HAVE_C99_VARIADIC_MACROS, 1, [Supports C99 style variadic macros]) 20*b89261baSDavid van Moolenbroekfi 21*b89261baSDavid van Moolenbroekif test "$ax_cv_gnu_variadic" = "yes"; then 22*b89261baSDavid van Moolenbroek _result="$_result gnu" 23*b89261baSDavid van Moolenbroek AC_DEFINE(HAVE_GNU_VARIADIC_MACROS, 1, [Supports gnu style variadic macros]) 24*b89261baSDavid van Moolenbroekfi 25*b89261baSDavid van Moolenbroekif test "x$_result" = x; then 26*b89261baSDavid van Moolenbroek _result="no" 27*b89261baSDavid van Moolenbroekfi 28*b89261baSDavid van MoolenbroekAC_MSG_RESULT($_result) 29*b89261baSDavid van Moolenbroek]) 30*b89261baSDavid van Moolenbroek 31*b89261baSDavid van Moolenbroek# AC_CHECK_CFLAG... 32*b89261baSDavid van Moolenbroek# ----- 33*b89261baSDavid van MoolenbroekAC_DEFUN([AC_CHECK_CFLAG], 34*b89261baSDavid van Moolenbroek[AC_MSG_CHECKING([whether compiler accepts $1]) 35*b89261baSDavid van MoolenbroekAS_VAR_PUSHDEF([ac_Flag], [ac_cv_cflag_$1])dnl 36*b89261baSDavid van Moolenbroek_savedcflags=$CFLAGS 37*b89261baSDavid van Moolenbroek_savedwerror_flag=$ac_c_werror_flag 38*b89261baSDavid van Moolenbroekac_c_werror_flag=yes 39*b89261baSDavid van MoolenbroekCFLAGS=$CFLAGS" $1" 40*b89261baSDavid van MoolenbroekAC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [AS_VAR_SET(ac_Flag, yes)], 41*b89261baSDavid van Moolenbroek [AS_VAR_SET(ac_Flag, no)]) 42*b89261baSDavid van MoolenbroekAC_MSG_RESULT([AS_VAR_GET(ac_Flag)]) 43*b89261baSDavid van MoolenbroekCFLAGS=$_savedcflags 44*b89261baSDavid van Moolenbroekac_c_werror_flag=$_savedwerror_flag 45*b89261baSDavid van MoolenbroekAS_IF([test AS_VAR_GET(ac_Flag) = yes], [$2], [$3])[]dnl 46*b89261baSDavid van MoolenbroekAS_VAR_POPDEF([ac_Flag])dnl 47*b89261baSDavid van Moolenbroek])# AC_CHECK_CFLAG 48*b89261baSDavid van Moolenbroek 49*b89261baSDavid van Moolenbroekecho "Configuring $PACKAGE_STRING" 50*b89261baSDavid van Moolenbroek 51*b89261baSDavid van MoolenbroekAC_CONFIG_HEADER([config.h]) 52*b89261baSDavid van MoolenbroekAC_CANONICAL_BUILD 53*b89261baSDavid van MoolenbroekAC_CANONICAL_HOST 54*b89261baSDavid van MoolenbroekAC_CANONICAL_TARGET 55*b89261baSDavid van Moolenbroek 56*b89261baSDavid van Moolenbroek# options processing 57*b89261baSDavid van MoolenbroekAC_ARG_WITH(module, AC_HELP_STRING([--with-module=NAME], 58*b89261baSDavid van Moolenbroek [use the platform module NAME]), 59*b89261baSDavid van Moolenbroek [if test ! -f machine/m_$withval.c; 60*b89261baSDavid van Moolenbroek then AC_MSG_ERROR([No such module $withval]); fi]) 61*b89261baSDavid van Moolenbroek 62*b89261baSDavid van MoolenbroekAC_ARG_WITH(ext, AC_HELP_STRING([--with-ext=EXT], 63*b89261baSDavid van Moolenbroek [use the extension EXT]), 64*b89261baSDavid van Moolenbroek [if test -f ext/$withval.c; then 65*b89261baSDavid van Moolenbroek AC_DEFINE(WITH_EXT, 1, [Include code that utilizes extensions]) 66*b89261baSDavid van Moolenbroek SRC="$SRC ext/$withval.c" 67*b89261baSDavid van Moolenbroek OBJ="$OBJ $withval.o" 68*b89261baSDavid van Moolenbroek else 69*b89261baSDavid van Moolenbroek AC_MSG_ERROR([No such extension $withval]) 70*b89261baSDavid van Moolenbroek fi]) 71*b89261baSDavid van Moolenbroek 72*b89261baSDavid van MoolenbroekDEFAULT_TOPN=30 73*b89261baSDavid van MoolenbroekAC_ARG_WITH(default-topn, AC_HELP_STRING([--with-default-topn=N], 74*b89261baSDavid van Moolenbroek [use N as the default for number of processes]), 75*b89261baSDavid van Moolenbroek [if test x"$with_default_topn" = xall; then 76*b89261baSDavid van Moolenbroek DEFAULT_TOPN="-1" 77*b89261baSDavid van Moolenbroek elif test x`echo $with_default_topn | tr -d '[0-9+-]'` = x; then 78*b89261baSDavid van Moolenbroek DEFAULT_TOPN=$with_default_topn 79*b89261baSDavid van Moolenbroek fi]) 80*b89261baSDavid van MoolenbroekAC_DEFINE_UNQUOTED(DEFAULT_TOPN, $DEFAULT_TOPN, [Default number of processes to display]) 81*b89261baSDavid van MoolenbroekAC_SUBST(DEFAULT_TOPN) 82*b89261baSDavid van Moolenbroek 83*b89261baSDavid van MoolenbroekNOMINAL_TOPN=40 84*b89261baSDavid van MoolenbroekAC_ARG_WITH(nominal-topn, AC_HELP_STRING([--with-nominal-topn=N], 85*b89261baSDavid van Moolenbroek [use N as the default number of processes for non-terminals]), 86*b89261baSDavid van Moolenbroek [if test x"$with_nominal_topn" = xall; then 87*b89261baSDavid van Moolenbroek NOMINAL_TOPN="-1" 88*b89261baSDavid van Moolenbroek elif test x`echo $with_nominal_topn | tr -d '[0-9+-]'` = x; then 89*b89261baSDavid van Moolenbroek NOMINAL_TOPN=$with_nominal_topn 90*b89261baSDavid van Moolenbroek fi]) 91*b89261baSDavid van MoolenbroekAC_DEFINE_UNQUOTED(NOMINAL_TOPN, $NOMINAL_TOPN, [Default number of processes to display on non-terminals when topn is all]) 92*b89261baSDavid van MoolenbroekAC_SUBST(NOMINAL_TOPN) 93*b89261baSDavid van Moolenbroek 94*b89261baSDavid van MoolenbroekDEFAULT_DELAY=5 95*b89261baSDavid van MoolenbroekAC_ARG_WITH(default-delay, AC_HELP_STRING([--with-default-delay=SEC], 96*b89261baSDavid van Moolenbroek [use a default delay of SEC seconds]), 97*b89261baSDavid van Moolenbroek [if test x`echo $with_default_delay | tr -d '[0-9+-]'` = x; then 98*b89261baSDavid van Moolenbroek DEFAULT_DELAY=$with_default_delay 99*b89261baSDavid van Moolenbroek fi]) 100*b89261baSDavid van MoolenbroekAC_DEFINE_UNQUOTED(DEFAULT_DELAY, $DEFAULT_DELAY, [Default delay]) 101*b89261baSDavid van MoolenbroekAC_SUBST(DEFAULT_DELAY) 102*b89261baSDavid van Moolenbroek 103*b89261baSDavid van MoolenbroekAC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], 104*b89261baSDavid van Moolenbroek [enable support for debugging output])) 105*b89261baSDavid van Moolenbroekif test "x$enable_debug" = xyes; then 106*b89261baSDavid van Moolenbroek AC_DEFINE(DEBUG, 1, [Support for debugging output]) 107*b89261baSDavid van Moolenbroekfi 108*b89261baSDavid van Moolenbroek 109*b89261baSDavid van MoolenbroekENABLE_KILL=0 110*b89261baSDavid van MoolenbroekAC_ARG_ENABLE(kill, AC_HELP_STRING([--disable-kill], 111*b89261baSDavid van Moolenbroek [disable kill and renice commands])) 112*b89261baSDavid van Moolenbroekif test x$enable_kill != xno; then 113*b89261baSDavid van Moolenbroek AC_DEFINE(ENABLE_KILL, 1, [Enable kill and renice]) 114*b89261baSDavid van Moolenbroek ENABLE_KILL=1 115*b89261baSDavid van Moolenbroekfi 116*b89261baSDavid van MoolenbroekAC_SUBST(ENABLE_KILL) 117*b89261baSDavid van Moolenbroek 118*b89261baSDavid van Moolenbroek 119*b89261baSDavid van MoolenbroekAC_ARG_ENABLE(color, AC_HELP_STRING([--disable-color], 120*b89261baSDavid van Moolenbroek [disable the use of color])) 121*b89261baSDavid van MoolenbroekAC_ARG_ENABLE(colour, AC_HELP_STRING([--disable-colour], 122*b89261baSDavid van Moolenbroek [synonym for --disable-color])) 123*b89261baSDavid van Moolenbroekif test x$enable_color != xno -a x$enable_colour != xno; then 124*b89261baSDavid van Moolenbroek AC_DEFINE(ENABLE_COLOR, 1, [Enable color]) 125*b89261baSDavid van Moolenbroekfi 126*b89261baSDavid van Moolenbroek 127*b89261baSDavid van MoolenbroekAC_ARG_ENABLE(dualarch, AC_HELP_STRING([--enable-dualarch], 128*b89261baSDavid van Moolenbroek [enable or disable a dual architecture (32-bit and 64-bit) compile])) 129*b89261baSDavid van Moolenbroek 130*b89261baSDavid van Moolenbroek# check for needed programs 131*b89261baSDavid van MoolenbroekAC_CHECK_PROGS(MAKE, make) 132*b89261baSDavid van MoolenbroekAC_PROG_CC 133*b89261baSDavid van Moolenbroekif test "$ac_cv_c_compiler_gnu" = "yes"; then 134*b89261baSDavid van Moolenbroek ax_cv_c_compiler_vendor="gnu" 135*b89261baSDavid van Moolenbroekelse 136*b89261baSDavid van Moolenbroek AX_COMPILER_VENDOR 137*b89261baSDavid van Moolenbroekfi 138*b89261baSDavid van MoolenbroekAC_PROG_AWK 139*b89261baSDavid van MoolenbroekAC_PROG_INSTALL 140*b89261baSDavid van MoolenbroekAC_PATH_PROGS(ISAINFO, isainfo) 141*b89261baSDavid van MoolenbroekAC_PATH_PROGS(ISAEXEC, isaexec, , [$PATH:/usr/lib:/lib]) 142*b89261baSDavid van MoolenbroekAC_PATH_PROGS(UNAME, uname) 143*b89261baSDavid van MoolenbroekAC_SUBST(ISAEXEC) 144*b89261baSDavid van Moolenbroek 145*b89261baSDavid van Moolenbroek# system checks require uname 146*b89261baSDavid van Moolenbroekif test "$UNAME"; then 147*b89261baSDavid van Moolenbroek # we make the version number available as a C preprocessor definition 148*b89261baSDavid van Moolenbroek AC_MSG_CHECKING(OS revision number) 149*b89261baSDavid van Moolenbroek osrev=`$UNAME -r | tr -cd ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789` 150*b89261baSDavid van Moolenbroek 151*b89261baSDavid van Moolenbroek if test "$osrev" != "unknown" ; then 152*b89261baSDavid van Moolenbroek AC_DEFINE_UNQUOTED(OSREV, $osrev, [Define the OS revision.]) 153*b89261baSDavid van Moolenbroek osmajor=`$UNAME -r | sed 's/^\([[0-9]]*\).*$/\1/'` 154*b89261baSDavid van Moolenbroek if test -n "$osmajor"; then 155*b89261baSDavid van Moolenbroek AC_DEFINE_UNQUOTED(OSMAJOR, $osmajor, [Define the major OS revision number.]) 156*b89261baSDavid van Moolenbroek fi 157*b89261baSDavid van Moolenbroek else 158*b89261baSDavid van Moolenbroek AC_DEFINE(OSREV, "") 159*b89261baSDavid van Moolenbroek fi 160*b89261baSDavid van Moolenbroek AC_MSG_RESULT($osrev) 161*b89261baSDavid van Moolenbroek 162*b89261baSDavid van Moolenbroek # we make the non-canonicalized hardware type available 163*b89261baSDavid van Moolenbroek AC_MSG_CHECKING(hardware platform) 164*b89261baSDavid van Moolenbroek UNAME_HARDWARE=`$UNAME -m` 165*b89261baSDavid van Moolenbroek if test "$UNAME_HARDWARE" != "unknown"; then 166*b89261baSDavid van Moolenbroek AC_DEFINE_UNQUOTED(UNAME_HARDWARE, "$UNAME_HARDWARE", [Define the system hardware platform]) 167*b89261baSDavid van Moolenbroek fi 168*b89261baSDavid van Moolenbroek AC_MSG_RESULT($UNAME_HARDWARE) 169*b89261baSDavid van Moolenbroekfi 170*b89261baSDavid van Moolenbroek 171*b89261baSDavid van Moolenbroek# checks for libraries 172*b89261baSDavid van MoolenbroekAC_CHECK_LIB(elf, elf32_getphdr) 173*b89261baSDavid van MoolenbroekAC_CHECK_LIB(kstat, kstat_open) 174*b89261baSDavid van MoolenbroekAC_CHECK_LIB(kvm, kvm_open) 175*b89261baSDavid van Moolenbroek# -lmld -lmach 176*b89261baSDavid van MoolenbroekAC_CHECK_LIB(mach, vm_statistics) 177*b89261baSDavid van MoolenbroekAC_SEARCH_LIBS(tgetent, termcap curses ncurses) 178*b89261baSDavid van MoolenbroekAC_CHECK_LIB(m, exp) 179*b89261baSDavid van Moolenbroek 180*b89261baSDavid van Moolenbroek# check for libraries required by extension 181*b89261baSDavid van Moolenbroekextlibs="" 182*b89261baSDavid van Moolenbroekif test -n "$with_ext" -a -f "${srcdir}/ext/$with_ext.libs"; then 183*b89261baSDavid van Moolenbroek AC_MSG_CHECKING(for libraries needed by extensions) 184*b89261baSDavid van Moolenbroek for lib in `cat "${srcdir}/ext/$with_ext.libs"` 185*b89261baSDavid van Moolenbroek do 186*b89261baSDavid van Moolenbroek saveLIBS=$LIBS 187*b89261baSDavid van Moolenbroek LIBS="$LIBS -l$lib" 188*b89261baSDavid van Moolenbroek AC_TRY_LINK(, [exit(0);], [extlibs="$extlibs -l$lib"], ) 189*b89261baSDavid van Moolenbroek LIBS=$saveLIBS 190*b89261baSDavid van Moolenbroek done 191*b89261baSDavid van Moolenbroek AC_MSG_RESULT($extlibs) 192*b89261baSDavid van Moolenbroek LIBS="$LIBS$extlibs" 193*b89261baSDavid van Moolenbroekfi 194*b89261baSDavid van Moolenbroek 195*b89261baSDavid van Moolenbroek# checks for header files 196*b89261baSDavid van MoolenbroekAC_HEADER_STDC 197*b89261baSDavid van MoolenbroekAC_CHECK_HEADERS([curses.h getopt.h limits.h math.h stdarg.h sysexits.h termcap.h unistd.h sys/resource.h sys/time.h sys/utsname.h]) 198*b89261baSDavid van MoolenbroekAC_CHECK_HEADERS([term.h],,, 199*b89261baSDavid van Moolenbroek[#if HAVE_CURSES_H 200*b89261baSDavid van Moolenbroek#include <curses.h> 201*b89261baSDavid van Moolenbroek#endif 202*b89261baSDavid van Moolenbroek]) 203*b89261baSDavid van MoolenbroekAC_HEADER_TIME 204*b89261baSDavid van MoolenbroekAC_MSG_CHECKING(for a good signal.h) 205*b89261baSDavid van MoolenbroekSIGNAL_H="no" 206*b89261baSDavid van Moolenbroekfor f in /usr/include/signal.h /usr/include/sys/signal.h /usr/include/sys/iso/signal_iso.h /usr/include/bits/signum.h; do 207*b89261baSDavid van Moolenbroek if grep SIGKILL $f >/dev/null 2>&1; then 208*b89261baSDavid van Moolenbroek SIGNAL_H=$f 209*b89261baSDavid van Moolenbroek break 210*b89261baSDavid van Moolenbroek fi 211*b89261baSDavid van Moolenbroekdone 212*b89261baSDavid van MoolenbroekAC_MSG_RESULT($SIGNAL_H) 213*b89261baSDavid van Moolenbroekif test "$SIGNAL_H" = "no"; then 214*b89261baSDavid van Moolenbroek SIGNAL_H="/dev/null" 215*b89261baSDavid van Moolenbroekfi 216*b89261baSDavid van MoolenbroekAC_SUBST(SIGNAL_H) 217*b89261baSDavid van Moolenbroek 218*b89261baSDavid van Moolenbroek# checks for typedefs, structures, and compiler characteristics. 219*b89261baSDavid van MoolenbroekAX_CHECK_VARIADIC_MACROS 220*b89261baSDavid van MoolenbroekAC_CHECK_DECLS([sys_errlist]) 221*b89261baSDavid van MoolenbroekAC_CHECK_DECLS([sys_signame],,, 222*b89261baSDavid van Moolenbroek[#include <signal.h> 223*b89261baSDavid van Moolenbroek/* NetBSD declares sys_siglist in unistd.h. */ 224*b89261baSDavid van Moolenbroek#if HAVE_UNISTD_H 225*b89261baSDavid van Moolenbroek# include <unistd.h> 226*b89261baSDavid van Moolenbroek#endif 227*b89261baSDavid van Moolenbroek]) 228*b89261baSDavid van MoolenbroekAC_CHECK_DECLS([tputs, tgoto, tgetent, tgetflag, tgetnum, tgetstr],,, 229*b89261baSDavid van Moolenbroek[#if HAVE_CURSES_H && HAVE_TERM_H 230*b89261baSDavid van Moolenbroek#include <curses.h> 231*b89261baSDavid van Moolenbroek#include <term.h> 232*b89261baSDavid van Moolenbroek#else 233*b89261baSDavid van Moolenbroek#if HAVE_TERMCAP_H 234*b89261baSDavid van Moolenbroek#include <termcap.h> 235*b89261baSDavid van Moolenbroek#else 236*b89261baSDavid van Moolenbroek#if HAVE_CURSES_H 237*b89261baSDavid van Moolenbroek#include <curses.h> 238*b89261baSDavid van Moolenbroek#endif 239*b89261baSDavid van Moolenbroek#endif 240*b89261baSDavid van Moolenbroek#endif 241*b89261baSDavid van Moolenbroek]) 242*b89261baSDavid van Moolenbroek 243*b89261baSDavid van Moolenbroek# The third argument to tputs is a putc-like function that takes an 244*b89261baSDavid van Moolenbroek# argument. On most systems that argument is an int, but on some it 245*b89261baSDavid van Moolenbroek# is a char. Determine which. 246*b89261baSDavid van MoolenbroekAC_MSG_CHECKING([argument type of tputs putc function]) 247*b89261baSDavid van Moolenbroek_savedwerror_flag=$ac_c_werror_flag 248*b89261baSDavid van Moolenbroekac_c_werror_flag=yes 249*b89261baSDavid van MoolenbroekAC_COMPILE_IFELSE( 250*b89261baSDavid van Moolenbroek[AC_LANG_PROGRAM([#ifdef HAVE_TERMCAP_H 251*b89261baSDavid van Moolenbroek#include <termcap.h> 252*b89261baSDavid van Moolenbroek#endif 253*b89261baSDavid van Moolenbroek#ifdef HAVE_CURSES_H 254*b89261baSDavid van Moolenbroek#include <curses.h> 255*b89261baSDavid van Moolenbroek#endif 256*b89261baSDavid van Moolenbroek#ifdef HAVE_TERM_H 257*b89261baSDavid van Moolenbroek#include <term.h> 258*b89261baSDavid van Moolenbroek#endif 259*b89261baSDavid van Moolenbroekint f(char i) { }], 260*b89261baSDavid van Moolenbroek[tputs("a", 1, f);])], 261*b89261baSDavid van Moolenbroek [ac_cv_type_tputs_putc="char"], 262*b89261baSDavid van Moolenbroek [ac_cv_type_tputs_putc="int"]) 263*b89261baSDavid van MoolenbroekAC_MSG_RESULT($ac_cv_type_tputs_putc) 264*b89261baSDavid van MoolenbroekAC_DEFINE_UNQUOTED(TPUTS_PUTC_ARGTYPE, $ac_cv_type_tputs_putc, 265*b89261baSDavid van Moolenbroek [Define as the type for the argument to the 266*b89261baSDavid van Moolenbroekputc function of tputs ('int' or 'char')]) 267*b89261baSDavid van Moolenbroekac_c_werror_flag=$_savedwerror_flag 268*b89261baSDavid van Moolenbroek 269*b89261baSDavid van Moolenbroek# Determine presence of needed types 270*b89261baSDavid van MoolenbroekAC_TYPE_SIGNAL 271*b89261baSDavid van MoolenbroekAC_CHECK_TYPES([id_t, lwpid_t, pid_t, time_t, uid_t]) 272*b89261baSDavid van Moolenbroek 273*b89261baSDavid van Moolenbroek# Checks for library functions. 274*b89261baSDavid van MoolenbroekAC_CHECK_FUNCS([getopt getopt_long gettimeofday memcpy setbuffer setpriority setvbuf strcasecmp strchr strerror snprintf sighold sigrelse sigaction sigprocmask sysconf uname vsnprintf]) 275*b89261baSDavid van Moolenbroek 276*b89261baSDavid van Moolenbroek# this is needed in the man page 277*b89261baSDavid van Moolenbroekif test "x$ac_cv_func_getopt_long" = "xyes"; then 278*b89261baSDavid van Moolenbroek HAVE_GETOPT_LONG=1 279*b89261baSDavid van Moolenbroekelse 280*b89261baSDavid van Moolenbroek HAVE_GETOPT_LONG=0 281*b89261baSDavid van Moolenbroekfi 282*b89261baSDavid van MoolenbroekAC_SUBST(HAVE_GETOPT_LONG) 283*b89261baSDavid van Moolenbroek 284*b89261baSDavid van Moolenbroek# if we dont have snprintf/vsnprint then we need to compile the alternate 285*b89261baSDavid van Moolenbroekif test "x$ac_cv_func_snprintf" != "xyes" -o "x$ac_cv_func_vsnprintf" != "xyes"; then 286*b89261baSDavid van Moolenbroek SRC="$SRC ap_snprintf.c" 287*b89261baSDavid van Moolenbroek OBJ="$OBJ ap_snprintf.o" 288*b89261baSDavid van Moolenbroekfi 289*b89261baSDavid van Moolenbroek 290*b89261baSDavid van Moolenbroek 291*b89261baSDavid van Moolenbroek# determine correct user, group, and mode 292*b89261baSDavid van Moolenbroek# these can be overridden later if need be 293*b89261baSDavid van MoolenbroekAC_MSG_CHECKING(for correct ls options) 294*b89261baSDavid van Moolenbroeklslong="ls -l" 295*b89261baSDavid van Moolenbroekif test `$lslong -d . | wc -w` -lt 9; then 296*b89261baSDavid van Moolenbroek lslong="ls -lg" 297*b89261baSDavid van Moolenbroekfi 298*b89261baSDavid van MoolenbroekAC_MSG_RESULT($lslong) 299*b89261baSDavid van Moolenbroek 300*b89261baSDavid van Moolenbroek 301*b89261baSDavid van Moolenbroek# determine correct module 302*b89261baSDavid van MoolenbroekAC_MSG_CHECKING(for a platform module) 303*b89261baSDavid van Moolenbroekif test "$with_module"; then 304*b89261baSDavid van Moolenbroek MODULE=$with_module 305*b89261baSDavid van Moolenbroekelse 306*b89261baSDavid van Moolenbroek case $target_os in 307*b89261baSDavid van Moolenbroek aix4.2*) MODULE=aix43;; 308*b89261baSDavid van Moolenbroek aix4.3*) MODULE=aix43;; 309*b89261baSDavid van Moolenbroek aix5*) MODULE=aix5;; 310*b89261baSDavid van Moolenbroek dec-osf*) MODULE=decosf1;; 311*b89261baSDavid van Moolenbroek osf1*) MODULE=decosf1;; 312*b89261baSDavid van Moolenbroek osf4*) MODULE=decosf1;; 313*b89261baSDavid van Moolenbroek osf5*) MODULE=decosf1;; 314*b89261baSDavid van Moolenbroek freebsd*) MODULE=freebsd; USE_KMEM=1; USE_FPH=1;; 315*b89261baSDavid van Moolenbroek hpux7*) MODULE=hpux7;; 316*b89261baSDavid van Moolenbroek hpux8*) MODULE=hpux8;; 317*b89261baSDavid van Moolenbroek hpux9*) MODULE=hpux9;; 318*b89261baSDavid van Moolenbroek hpux10*) MODULE=hpux10;; 319*b89261baSDavid van Moolenbroek hpux11*) MODULE=hpux10;; 320*b89261baSDavid van Moolenbroek irix5*) MODULE=irix5;; 321*b89261baSDavid van Moolenbroek irix6*) MODULE=irixsgi;; 322*b89261baSDavid van Moolenbroek linux*) MODULE=linux; USE_FPH=1; SET_MODE=755;; 323*b89261baSDavid van Moolenbroek netbsd*) MODULE=netbsd; SET_MODE=755;; 324*b89261baSDavid van Moolenbroek solaris2*) MODULE=sunos5; USE_FPH=1; SET_MODE=755;; 325*b89261baSDavid van Moolenbroek sunos4*) MODULE=sunos4;; 326*b89261baSDavid van Moolenbroek sysv4*) MODULE=svr4;; 327*b89261baSDavid van Moolenbroek sysv5*) MODULE=svr5;; 328*b89261baSDavid van Moolenbroek darwin*) 329*b89261baSDavid van Moolenbroek echo "macosx" 330*b89261baSDavid van Moolenbroek echo "The macosx module is untested. Use at your own risk." 331*b89261baSDavid van Moolenbroek echo "If you really want to use this module, please run configure as follows:" 332*b89261baSDavid van Moolenbroek echo " ./configure --with-module=macosx" 333*b89261baSDavid van Moolenbroek AC_MSG_ERROR([macosx module unsupported]);; 334*b89261baSDavid van Moolenbroek *) echo "none" 335*b89261baSDavid van Moolenbroek echo "Configure doesn't recognize this system and doesn't know" 336*b89261baSDavid van Moolenbroek echo "what module to assign to it. Help the cause and run the" 337*b89261baSDavid van Moolenbroek echo "following command to let the maintainers know about this" 338*b89261baSDavid van Moolenbroek echo "deficiency! Thanks. Just cut and paste the following:" 339*b89261baSDavid van Moolenbroekecho "uname -a | mail -s $target_os bill@lefebvre.org" 340*b89261baSDavid van Moolenbroek echo "" 341*b89261baSDavid van Moolenbroek AC_MSG_ERROR([System type $target_os unrecognized]) 342*b89261baSDavid van Moolenbroek esac 343*b89261baSDavid van Moolenbroekfi 344*b89261baSDavid van MoolenbroekAC_MSG_RESULT($MODULE) 345*b89261baSDavid van MoolenbroekSRC="$SRC machine/m_$MODULE.c" 346*b89261baSDavid van MoolenbroekOBJ="$OBJ m_$MODULE.o" 347*b89261baSDavid van MoolenbroekCLEAN_EXTRA="" 348*b89261baSDavid van MoolenbroekAC_SUBST(SRC) 349*b89261baSDavid van MoolenbroekAC_SUBST(OBJ) 350*b89261baSDavid van MoolenbroekAC_SUBST(CLEAN_EXTRA) 351*b89261baSDavid van MoolenbroekAC_DEFINE_UNQUOTED(MODULE, "$MODULE", [Platform module]) 352*b89261baSDavid van Moolenbroek 353*b89261baSDavid van MoolenbroekFIRST_RULE=/dev/null 354*b89261baSDavid van MoolenbroekINSTALL_RULE=config.default.makeinstall 355*b89261baSDavid van Moolenbroek 356*b89261baSDavid van Moolenbroek# extra things that need to be done for certain systems 357*b89261baSDavid van Moolenbroek# also handle setup for 64-bit detection 358*b89261baSDavid van Moolenbroekbits="default" 359*b89261baSDavid van Moolenbroekcase $MODULE in 360*b89261baSDavid van Moolenbroek aix5) 361*b89261baSDavid van Moolenbroek AC_CHECK_LIB(perfstat, perfstat_cpu_total) 362*b89261baSDavid van Moolenbroek if test -f /usr/sbin/bootinfo; then 363*b89261baSDavid van Moolenbroek bits="`/usr/sbin/bootinfo -K`" 364*b89261baSDavid van Moolenbroek extra_flag="-q64" 365*b89261baSDavid van Moolenbroek fi 366*b89261baSDavid van Moolenbroek ;; 367*b89261baSDavid van Moolenbroek svr5) 368*b89261baSDavid van Moolenbroek # -lmas 369*b89261baSDavid van Moolenbroek AC_CHECK_LIB(mas, mas_open) 370*b89261baSDavid van Moolenbroek ;; 371*b89261baSDavid van Moolenbroek sunos5) 372*b89261baSDavid van Moolenbroek if test "$ISAINFO"; then 373*b89261baSDavid van Moolenbroek bits="`$ISAINFO -b`" 374*b89261baSDavid van Moolenbroek if test "$target_cpu" = "sparc"; then 375*b89261baSDavid van Moolenbroek extra_flag="-xarch=v9" 376*b89261baSDavid van Moolenbroek else 377*b89261baSDavid van Moolenbroek extra_flag="-xarch=amd64" 378*b89261baSDavid van Moolenbroek fi 379*b89261baSDavid van Moolenbroek fi 380*b89261baSDavid van Moolenbroek ;; 381*b89261baSDavid van Moolenbroekesac 382*b89261baSDavid van Moolenbroek 383*b89261baSDavid van Moolenbroek# USE_FPH means the module has format_process_header 384*b89261baSDavid van Moolenbroekif test -n "$USE_FPH"; then 385*b89261baSDavid van Moolenbroek AC_DEFINE(HAVE_FORMAT_PROCESS_HEADER, 1, [Platform module]) 386*b89261baSDavid van Moolenbroekfi 387*b89261baSDavid van Moolenbroek 388*b89261baSDavid van Moolenbroek# if we are 64-bit, try to turn on the appropriate flags 389*b89261baSDavid van MoolenbroekAC_MSG_CHECKING(address space size) 390*b89261baSDavid van MoolenbroekARCHFLAG="" 391*b89261baSDavid van Moolenbroekif test "$bits" = "64"; then 392*b89261baSDavid van Moolenbroek AC_MSG_RESULT(64) 393*b89261baSDavid van Moolenbroek if test "$ax_cv_c_compiler_vendor" = "gnu"; then 394*b89261baSDavid van Moolenbroek extra_flag="-m64" 395*b89261baSDavid van Moolenbroek fi 396*b89261baSDavid van Moolenbroek# Make sure our compiler accepts the flag we want to use 397*b89261baSDavid van Moolenbroek AC_CHECK_CFLAG($extra_flag, [ARCHFLAG="$extra_flag"], 398*b89261baSDavid van Moolenbroek [enable_dualarch="no"]) 399*b89261baSDavid van Moolenbroekelse 400*b89261baSDavid van Moolenbroek AC_MSG_RESULT($bits) 401*b89261baSDavid van Moolenbroekfi 402*b89261baSDavid van MoolenbroekAC_SUBST(ARCHFLAG) 403*b89261baSDavid van Moolenbroek 404*b89261baSDavid van Moolenbroek# Dual architecture handling: for now this is only enabled on Solaris. 405*b89261baSDavid van Moolenbroek# Config options can explicitly enable or disable dualarch. Otherwise, 406*b89261baSDavid van Moolenbroek# dualarch is only enabled when we are on a 64-bit system. 407*b89261baSDavid van Moolenbroekif test "$MODULE" = "sunos5"; then 408*b89261baSDavid van Moolenbroek AC_MSG_CHECKING(for dual architecture compilation) 409*b89261baSDavid van Moolenbroek if test "x$enable_dualarch" = x; then 410*b89261baSDavid van Moolenbroek# we must make the determination implicitly 411*b89261baSDavid van Moolenbroek if test "$bits" = "64"; then 412*b89261baSDavid van Moolenbroek enable_dualarch="yes" 413*b89261baSDavid van Moolenbroek else 414*b89261baSDavid van Moolenbroek enable_dualarch="no" 415*b89261baSDavid van Moolenbroek fi 416*b89261baSDavid van Moolenbroek fi 417*b89261baSDavid van Moolenbroek if test "x$enable_dualarch" = "xyes"; then 418*b89261baSDavid van Moolenbroek AC_MSG_RESULT(yes) 419*b89261baSDavid van Moolenbroek if test "$target_cpu" = "sparc"; then 420*b89261baSDavid van Moolenbroek FIRST_RULE="config.sparcv9.make" 421*b89261baSDavid van Moolenbroek INSTALL_RULE="config.sparcv9.makeinstall" 422*b89261baSDavid van Moolenbroek CLEAN_EXTRA="$CLEAN_EXTRA sparcv7/* sparcv9/*" 423*b89261baSDavid van Moolenbroek mkdir -p sparcv7 sparcv9 424*b89261baSDavid van Moolenbroek else 425*b89261baSDavid van Moolenbroek FIRST_RULE="config.amd64.make" 426*b89261baSDavid van Moolenbroek INSTALL_RULE="config.amd64.makeinstall" 427*b89261baSDavid van Moolenbroek CLEAN_EXTRA="$CLEAN_EXTRA i386/* amd64/*" 428*b89261baSDavid van Moolenbroek mkdir -p i386 amd64 429*b89261baSDavid van Moolenbroek fi 430*b89261baSDavid van Moolenbroek else 431*b89261baSDavid van Moolenbroek AC_MSG_RESULT(no) 432*b89261baSDavid van Moolenbroek fi 433*b89261baSDavid van Moolenbroekfi 434*b89261baSDavid van Moolenbroek 435*b89261baSDavid van Moolenbroekif test x$enable_dualarch = xyes; then 436*b89261baSDavid van Moolenbroek AC_DEFINE(ENABLE_DUALARCH, 1, [Enable dual architecture]) 437*b89261baSDavid van Moolenbroekfi 438*b89261baSDavid van Moolenbroek 439*b89261baSDavid van MoolenbroekAC_SUBST_FILE(FIRST_RULE) 440*b89261baSDavid van MoolenbroekAC_SUBST_FILE(INSTALL_RULE) 441*b89261baSDavid van Moolenbroek 442*b89261baSDavid van MoolenbroekAC_MSG_CHECKING(for installation settings) 443*b89261baSDavid van Moolenbroek# calculate appropriate settings 444*b89261baSDavid van MoolenbroekOWNER="" 445*b89261baSDavid van MoolenbroekGROUP="" 446*b89261baSDavid van MoolenbroekMODE="" 447*b89261baSDavid van Moolenbroekif test ! -n "$USE_KMEM" -a -d /proc; then 448*b89261baSDavid van Moolenbroek# make sure we are installed so that we can read /proc 449*b89261baSDavid van Moolenbroek rm -f conftest.txt 450*b89261baSDavid van Moolenbroek if test -r /proc/0/psinfo; then 451*b89261baSDavid van Moolenbroek# system uses solaris-style /proc 452*b89261baSDavid van Moolenbroek $lslong /proc/0/psinfo >conftest.txt 453*b89261baSDavid van Moolenbroek elif test -r /proc/1/stat; then 454*b89261baSDavid van Moolenbroek# linux-style /proc? 455*b89261baSDavid van Moolenbroek $lslong /proc/1/stat >conftest.txt 456*b89261baSDavid van Moolenbroek else 457*b89261baSDavid van Moolenbroek echo "-r--r--r-- 1 bin bin 32 Jan 1 12:00 /foo" >conftest.txt 458*b89261baSDavid van Moolenbroek fi 459*b89261baSDavid van Moolenbroek 460*b89261baSDavid van Moolenbroek# set permissions so that we can read stuff in /proc 461*b89261baSDavid van Moolenbroek if grep '^.......r..' conftest.txt >/dev/null; then 462*b89261baSDavid van Moolenbroek# world readable 463*b89261baSDavid van Moolenbroek MODE=755 464*b89261baSDavid van Moolenbroek elif grep '^....r.....' conftest.txt >/dev/null; then 465*b89261baSDavid van Moolenbroek# group readable 466*b89261baSDavid van Moolenbroek MODE=2711 467*b89261baSDavid van Moolenbroek GROUP=`awk ' { print $4 }'` 468*b89261baSDavid van Moolenbroek else 469*b89261baSDavid van Moolenbroek# probably only readable by root 470*b89261baSDavid van Moolenbroek MODE=4711 471*b89261baSDavid van Moolenbroek OWNER=`awk ' { print $3 }'` 472*b89261baSDavid van Moolenbroek fi 473*b89261baSDavid van Moolenbroek 474*b89261baSDavid van Moolenbroekelif test -c /dev/kmem; then 475*b89261baSDavid van Moolenbroek $lslong -L /dev/kmem >conftest.txt 476*b89261baSDavid van Moolenbroek if grep '^....r..r..' conftest.txt >/dev/null; then 477*b89261baSDavid van Moolenbroek MODE=755 478*b89261baSDavid van Moolenbroek elif grep '^....r..-..' conftest.txt >/dev/null; then 479*b89261baSDavid van Moolenbroek MODE=2755 480*b89261baSDavid van Moolenbroek GROUP=`$AWK ' { print $4 }' conftest.txt` 481*b89261baSDavid van Moolenbroek fi 482*b89261baSDavid van Moolenbroekelse 483*b89261baSDavid van Moolenbroek MODE=755 484*b89261baSDavid van Moolenbroekfi 485*b89261baSDavid van Moolenbroekrm -f conftest.txt 486*b89261baSDavid van Moolenbroek# let module settings override what we calculated 487*b89261baSDavid van MoolenbroekOWNER=${SET_OWNER:-$OWNER} 488*b89261baSDavid van MoolenbroekGROUP=${SET_GROUP:-$GROUP} 489*b89261baSDavid van MoolenbroekMODE=${SET_MODE:-$MODE} 490*b89261baSDavid van Moolenbroek 491*b89261baSDavid van Moolenbroek# set only those things that require it 492*b89261baSDavid van Moolenbroekresult="" 493*b89261baSDavid van MoolenbroekINSTALL_OPTS_PROG="" 494*b89261baSDavid van Moolenbroekif test x$OWNER != x; then 495*b89261baSDavid van Moolenbroek result="${result}owner=$OWNER, " 496*b89261baSDavid van Moolenbroek INSTALL_OPTS_PROG="$INSTALL_OPTS_PROG -o $OWNER" 497*b89261baSDavid van Moolenbroekfi 498*b89261baSDavid van Moolenbroekif test x$GROUP != x; then 499*b89261baSDavid van Moolenbroek result="${result}group=$GROUP, " 500*b89261baSDavid van Moolenbroek INSTALL_OPTS_PROG="$INSTALL_OPTS_PROG -g $GROUP" 501*b89261baSDavid van Moolenbroekfi 502*b89261baSDavid van Moolenbroekresult="${result}mode=$MODE" 503*b89261baSDavid van MoolenbroekINSTALL_OPTS_PROG="$INSTALL_OPTS_PROG -m $MODE" 504*b89261baSDavid van Moolenbroek 505*b89261baSDavid van MoolenbroekAC_MSG_RESULT($result) 506*b89261baSDavid van Moolenbroek 507*b89261baSDavid van Moolenbroek# add extra cflags if the compiler accepts them 508*b89261baSDavid van MoolenbroekAX_CFLAGS_WARN_ALL 509*b89261baSDavid van MoolenbroekMODULE_CFLAGS="" 510*b89261baSDavid van Moolenbroekif test "$ax_cv_c_compiler_vendor" = "gnu"; then 511*b89261baSDavid van Moolenbroek AX_CFLAGS_GCC_OPTION([-fno-strict-aliasing], [MODULE_CFLAGS]) 512*b89261baSDavid van Moolenbroek if test "$target_cpu" = "alpha"; then 513*b89261baSDavid van Moolenbroek AX_CFLAGS_GCC_OPTION([-mfp-trap-mode=sui -mtrap-precision=i]) 514*b89261baSDavid van Moolenbroek fi 515*b89261baSDavid van Moolenbroekfi 516*b89261baSDavid van Moolenbroek 517*b89261baSDavid van Moolenbroek# Define man page supplement 518*b89261baSDavid van MoolenbroekMAN_SUPPLEMENT=machine/m_$MODULE.man 519*b89261baSDavid van MoolenbroekAC_SUBST_FILE(MAN_SUPPLEMENT) 520*b89261baSDavid van Moolenbroek 521*b89261baSDavid van Moolenbroek# Extra things we want substituted 522*b89261baSDavid van MoolenbroekAC_SUBST(MODULE) 523*b89261baSDavid van MoolenbroekAC_SUBST(MODULE_CFLAGS) 524*b89261baSDavid van MoolenbroekAC_SUBST(INSTALL_OPTS_PROG) 525*b89261baSDavid van Moolenbroek 526*b89261baSDavid van Moolenbroek# wrapup 527*b89261baSDavid van Moolenbroek 528*b89261baSDavid van MoolenbroekAC_CONFIG_FILES(Makefile top.1) 529*b89261baSDavid van MoolenbroekAC_OUTPUT 530