| 1 | # $Id: configure.ac 98 2006-09-22 16:27:37Z sam $ |
|---|
| 2 | |
|---|
| 3 | AC_INIT(neercs, 0.0) |
|---|
| 4 | |
|---|
| 5 | AC_PREREQ(2.50) |
|---|
| 6 | AC_CONFIG_SRCDIR(src/main.c) |
|---|
| 7 | AC_CONFIG_AUX_DIR(.auto) |
|---|
| 8 | AC_CANONICAL_SYSTEM |
|---|
| 9 | |
|---|
| 10 | AM_INIT_AUTOMAKE(neercs, 0.0) |
|---|
| 11 | AM_CONFIG_HEADER(config.h) |
|---|
| 12 | |
|---|
| 13 | AM_PROG_CC_C_O |
|---|
| 14 | AC_PROG_CPP |
|---|
| 15 | |
|---|
| 16 | AC_CANONICAL_HOST |
|---|
| 17 | |
|---|
| 18 | if test "$host_os" == "darwin10.2.0"; then |
|---|
| 19 | case x${target} in |
|---|
| 20 | x*86*darwin*) |
|---|
| 21 | MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.6.sdk}" |
|---|
| 22 | GCC_VERSION="${GCC_VERSION:-4.0}" |
|---|
| 23 | ARCH="${ARCH:--arch i386}" |
|---|
| 24 | MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--isysroot ${MACOSX_SDK}}" |
|---|
| 25 | MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:-${MACOSX_SDK_CFLAGS}}" |
|---|
| 26 | ;; |
|---|
| 27 | esac |
|---|
| 28 | CC="${CC:-gcc-${GCC_VERSION}}" |
|---|
| 29 | CXX="${CXX:-g++-${GCC_VERSION}}" |
|---|
| 30 | MACOSX_SDK_FRAMEWORKS="${MACOSX_SDK_FRAMEWORKS:--F${MACOSX_SDK}/System/Library/Frameworks}" |
|---|
| 31 | CPPFLAGS="${CPPFLAGS} ${ARCH} ${MACOSX_SDK_FRAMEWORKS}" |
|---|
| 32 | CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS}" |
|---|
| 33 | CXXFLAGS="${CXXFLAGS} ${MACOSX_SDK_CXXFLAGS}" |
|---|
| 34 | OBJCFLAGS="${OBJCFLAGS} ${MACOSX_SDK_CFLAGS}" |
|---|
| 35 | LDFLAGS="${ARCH} ${MACOSX_SDK_LDFLAGS} ${LDFLAGS}" |
|---|
| 36 | fi |
|---|
| 37 | |
|---|
| 38 | |
|---|
| 39 | dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right |
|---|
| 40 | dnl now otherwise it might be set in an obscure if statement. Same thing for |
|---|
| 41 | dnl PKG_PROG_PKG_CONFIG which needs to be called first. |
|---|
| 42 | AC_EGREP_CPP(yes, foo) |
|---|
| 43 | PKG_PROG_PKG_CONFIG() |
|---|
| 44 | |
|---|
| 45 | dnl Don't let pkg-config fuck our cross-compilation environment |
|---|
| 46 | m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) |
|---|
| 47 | if test "$build" != "$host" -a "${PKG_CONFIG_LIBDIR}" = ""; then |
|---|
| 48 | export PKG_CONFIG_LIBDIR=/dev/null |
|---|
| 49 | fi |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | dnl conditional builds |
|---|
| 53 | AC_ARG_ENABLE(debug, |
|---|
| 54 | [ --enable-debug build debug versions of neercs (default no)]) |
|---|
| 55 | AC_ARG_ENABLE(python, |
|---|
| 56 | [ --enable-python build Python interpreter (default yes)]) |
|---|
| 57 | AS_IF([test "x$enable_python" != "xno"], [ |
|---|
| 58 | enable_python="yes" |
|---|
| 59 | ]) |
|---|
| 60 | AC_ARG_ENABLE(ruby, |
|---|
| 61 | [ --enable-ruby build Ruby interpreter (default yes)]) |
|---|
| 62 | AS_IF([test "x$enable_ruby" != "xno"], [ |
|---|
| 63 | enable_ruby="yes" |
|---|
| 64 | ]) |
|---|
| 65 | |
|---|
| 66 | CACA="no" |
|---|
| 67 | PKG_CHECK_MODULES(CACA, caca >= 0.99.beta15, |
|---|
| 68 | [CACA="yes"], |
|---|
| 69 | [AC_MSG_RESULT(no) |
|---|
| 70 | AC_MSG_ERROR([you need libcaca version 0.99.beta15 or later])]) |
|---|
| 71 | |
|---|
| 72 | AC_CHECK_HEADERS(stdio.h pty.h sys/ioctl.h sys/ptrace.h sys/stat.h sys/syscall.h sys/user.h sys/wait.h linux/kdev_t.h linux/major.h security/pam_appl.h security/pam_misc.h) |
|---|
| 73 | |
|---|
| 74 | if test $host_os != "darwin10.2.0"; then |
|---|
| 75 | AC_CHECK_LIB(pam, pam_authenticate, |
|---|
| 76 | [PAM_LIBS="${PAM_LIBS} -lpam" |
|---|
| 77 | AC_DEFINE(USE_LOCK, 1, [Locking the PTY is supported])]) |
|---|
| 78 | AC_SUBST(PAM_LIBS) |
|---|
| 79 | else |
|---|
| 80 | AC_MSG_RESULT(Disabling lock support on OSX) |
|---|
| 81 | fi |
|---|
| 82 | |
|---|
| 83 | AC_CHECK_LIB(caca, caca_clear_dirty_rect_list, |
|---|
| 84 | [AC_DEFINE(HAVE_CACA_DIRTY_RECTANGLES, 1, [libcaca has dirty rectangles])]) |
|---|
| 85 | |
|---|
| 86 | AC_CHECK_LIB(caca, caca_fill_triangle_textured, |
|---|
| 87 | [AC_DEFINE(HAVE_CACA_TRIANGLE_TEXTURING, 1, [libcaca has trifiller])]) |
|---|
| 88 | |
|---|
| 89 | AC_CHECK_LIB(util, forkpty, UTIL_LIBS="${UTIL_LIBS} -lutil") |
|---|
| 90 | AC_SUBST(UTIL_LIBS) |
|---|
| 91 | |
|---|
| 92 | AC_MSG_CHECKING(for pty grab support) |
|---|
| 93 | case $target in |
|---|
| 94 | i?86-*-linux-*|amd64-*-linux-*|x86_64-*-linux-*) |
|---|
| 95 | AC_DEFINE(USE_GRAB, 1, [Grabbing processes is supported]) |
|---|
| 96 | grab=yes ;; |
|---|
| 97 | *) |
|---|
| 98 | grab=no ;; |
|---|
| 99 | esac |
|---|
| 100 | AC_MSG_RESULT($grab) |
|---|
| 101 | |
|---|
| 102 | if test "${enable_debug}" = "yes"; then |
|---|
| 103 | AC_DEFINE(DEBUG, 1, Define to 1 to activate debug) |
|---|
| 104 | fi |
|---|
| 105 | |
|---|
| 106 | AC_DEFINE(_GNU_SOURCE, 1, [Use GNU extentions]) |
|---|
| 107 | |
|---|
| 108 | PYTHON3="yes" |
|---|
| 109 | if test "${enable_python}" != "no"; then |
|---|
| 110 | PKG_CHECK_MODULES(PYTHON3, python3 >= 3.1, |
|---|
| 111 | [PYTHON3="yes" AC_DEFINE(USE_PYTHON, 1, [Define to 1 to use Python interpreter])], |
|---|
| 112 | [AC_MSG_RESULT(you need Python 3.1 or later to compile the interpreter) |
|---|
| 113 | ]) |
|---|
| 114 | fi |
|---|
| 115 | |
|---|
| 116 | ac_cv_my_have_ruby="no" |
|---|
| 117 | if test "${enable_ruby}" != "no"; then |
|---|
| 118 | AC_PATH_PROG(RUBY, ruby, no) |
|---|
| 119 | if test "${RUBY}" != "no"; then |
|---|
| 120 | RUBY_CFLAGS="-I$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"archdir"@:>@')" |
|---|
| 121 | RUBY_LIBS="-L$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"libdir"@:>@') -l$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"RUBY_SO_NAME"@:>@')" |
|---|
| 122 | AC_SUBST(RUBY_CFLAGS) |
|---|
| 123 | AC_SUBST(RUBY_LIBS) |
|---|
| 124 | CPPFLAGS="${CPPFLAGS} ${RUBY_CFLAGS}" |
|---|
| 125 | AC_CHECK_HEADERS([ruby.h], |
|---|
| 126 | [ac_cv_my_have_ruby="yes"]) |
|---|
| 127 | fi |
|---|
| 128 | fi |
|---|
| 129 | AM_CONDITIONAL(USE_RUBY, test "${ac_cv_my_have_ruby}" = "yes") |
|---|
| 130 | |
|---|
| 131 | # Optimizations |
|---|
| 132 | CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" |
|---|
| 133 | # Code qui fait des warnings == code de porc == deux baffes dans ta gueule |
|---|
| 134 | CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare" |
|---|
| 135 | |
|---|
| 136 | AC_OUTPUT([ |
|---|
| 137 | Makefile |
|---|
| 138 | doc/Makefile |
|---|
| 139 | src/Makefile |
|---|
| 140 | data/Makefile |
|---|
| 141 | ]) |
|---|
| 142 | |
|---|