diff options
author | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
---|---|---|
committer | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
commit | c777c8d9aa7cd5c2e9a399727a7fa9985a77fb1c (patch) | |
tree | 9e996ae4a1bbb833cec036c5cd4d87a590149e85 /configure.in |
Anope Stable Branch
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@1902 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 000000000..a5af8ea68 --- /dev/null +++ b/configure.in @@ -0,0 +1,304 @@ +dnl autoconf.in for Services. +dnl +dnl Anope (c) 2003-2007 Anope team +dnl Contact us at dev@anope.org + +dnl This program is free but copyrighted software; see the file COPYING for +dnl details. + +dnl Based heavily on the Unreal configure.in script, and extra thanks to +dnl codemastr from UnrealIRCD. + +AC_INIT + +# If no bindir, we tell him to run ./Config. +if test "${with_bindir+set}" != set || test "${with_datadir+set}" != set; then + echo "You might want to run ./Config or provide some parameters to this script." + echo "./configure --help for information about this script" + exit 0 +fi + +AC_CONFIG_SRCDIR([src/actions.c]) +AC_CONFIG_HEADER(include/sysconf.h) +AC_PROG_CC +if test "$ac_cv_c_compiler_gnu" = "yes"; then +# CFLAGS="$CFLAGS -funsigned-char" + AC_CACHE_CHECK(if gcc has a working -pipe, ac_cv_pipe, [ + save_cflags="$CFLAGS" + CFLAGS="$CFLAGS -pipe" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[ac_cv_pipe="yes"],[ac_cv_pipe="no"]) + CFLAGS="$save_cflags" + ]) + if test "$ac_cv_pipe" = "yes"; then + CFLAGS="-pipe $CFLAGS" + fi +fi + +dnl CFLAGS="$CFLAGS -W -Wall" + +AC_PATH_PROG(RM,rm) +AC_PATH_PROG(CP,cp) +AC_PATH_PROG(TOUCH,touch) +AC_PATH_PROG(INSTALL,install) +AC_CHECK_LIB(nsl,inet_ntoa,ANOPELIBS="$ANOPELIBS-lnsl ") +AC_CHECK_LIB(socket, socket,ANOPELIBS="$ANOPELIBS-lsocket ") +AC_CHECK_LIB(resolv, res_query,ANOPELIBS="$ANOPELIBS-lresolv ") +AC_CHECK_LIB(bsd, revoke,ANOPELIBS="$ANOPELIBS-lbsd ") + +dnl Does this platform require array notation to assign to a va_list? +dnl If cross-compiling, we assume va_list is "normal". If this breaks +dnl you, set ac_cv_valistisarray=true and maybe define HAVE_VA_LIST_AS_ARRAY +dnl also just to be sure. + +dnl NOTE: this autoconf test is taken from mozilla: www.mozilla.org. + +AC_MSG_CHECKING(whether va_list assignments need array notation) +AC_CACHE_VAL(ac_cv_valistisarray, + [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h> + #include <stdarg.h> + void foo(int i, ...) { + va_list ap1, ap2; + va_start(ap1, i); + ap2 = ap1; + if (va_arg(ap2, int) != 123 || va_arg(ap1, int) != 123) { exit(1); } + va_end(ap1); va_end(ap2); + } + int main() + { foo(0, 123); return(0); }]])],[ac_cv_valistisarray=false],[ac_cv_valistisarray=true],[ac_cv_valistisarray=false])]) + +if test "$ac_cv_valistisarray" = true ; then + AC_DEFINE(HAVE_VA_LIST_AS_ARRAY,[1],[va_list as array]) + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi + + +DIS_MYSQL=" MySQL: No" +AC_ARG_WITH(mysql, [ --without-mysql Do not use MySQL or attempt to find it],,[ + AC_ARG_WITH(mysqlconfig-path, [ --with-mysqlconfig-path=PATH Complete path to the mysql_config executable], + mysql_config_path="$withval", mysql_config_path="") + MYSQLCONF="" + if test "$mysql_config_path" != ""; then + if test -x "$mysql_config_path"; then + MYSQLCONF="$mysql_config_path" + echo "checking for mysql_config... $MYSQLCONF" >&6 + fi + fi + if test "$MYSQLCONF" = ""; then + AC_PATH_PROG(MYSQLCONF,mysql_config, "") + fi + if test "$MYSQLCONF" != ""; then + hold_cflags="$CFLAGS" + hold_ldflags="$LDFLAGS" + if test "$MYSQL_CFLAGS" = ""; then + MYSQL_CFLAGS="`$MYSQLCONF --cflags`" + fi + if test "$MYSQL_LDFLAGS" = ""; then + MYSQL_LDFLAGS="`$MYSQLCONF --libs`" + fi + CFLAGS="$CFLAGS $MYSQL_CFLAGS" + LDFLAGS="$LDFLAGS $MYSQL_LDFLAGS" + echo $ECHO_N "checking if mysql_config produces valid values... $ECHO_C" >&6 + AC_TRY_RUN([ +#include <mysql.h> + +int main() +{ + MYSQL *mysql = mysql_init(0); + + return 0; +} + ], ac_cv_mysql_valid=yes, ac_cv_mysql_valid=no) + echo $ac_cv_mysql_valid >&6 + if test "$ac_cv_mysql_valid" = "yes"; then + AC_DEFINE_UNQUOTED(USE_MYSQL,1,"Use Mysql") + AC_DEFINE_UNQUOTED(USE_RDB,1,"Use RDB") + MYSQL=" mysql.c " + RDB=" rdb.c " + AC_SUBST(MYSQL) + AC_SUBST(RDB) + DIS_MYSQL=" MySQL: Yes" + else + CFLAGS="$hold_cflags" + LDFLAGS="$hold_ldflags" + fi + fi +]) + +AC_MSG_CHECKING(whether this is a bit or little endian system) +AC_TRY_RUN([ +int main() +{ + short s = 1; + short* ptr = &s; + unsigned char c = *((char*)ptr); + return c; +} +] +, AC_DEFINE(BIG_ENDIAN) + AC_MSG_RESULT(big) +, AC_DEFINE(LITTLE_ENDIAN) + AC_MSG_RESULT(little) +) + +AC_SUBST(ANOPELIBS) +AC_SUBST(LDFLAGS) + +AC_CHECK_HEADER(sys/types.h,AC_DEFINE(HAS_SYS_TYPES_H,1,"Has sys/types.h")) + +DIS_MODULES="Modules: Yes" + +dnl module checking based on Unreal's module checking code +AC_DEFUN(AC_ENABLE_DYN, +[ +AC_CHECK_FUNC(dlopen,, AC_CHECK_LIB(dl,dlopen,[ + ANOPELIBS="$ANOPELIBS -ldl" + AC_DEFINE(USE_MODULES,1,"Modules are available") + USE_MODULES="yes" + DIS_MODULES="Modules: Yes" +], +[ +AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found) +AC_DEFINE(STATIC_LINKING,"NO_MODULES","modules not available") + DIS_MODULES="Modules: No" +])) + +hold_cflags=$CFLAGS +CFLAGS="$CFLAGS -export-dynamic" +AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [ +AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],[ac_cv_export_dynamic=yes],[ac_cv_export_dynamic=no])]) +if test "$ac_cv_export_dynamic" = "no"; then +CFLAGS=$hold_cflags +fi + +AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[ +if test "$ac_cv_c_compiler_gnu" = "yes"; then + ac_cv_pic="-fPIC -DPIC -shared" + case `uname -s` in + Darwin*[)] + ac_cv_pic="-bundle -flat_namespace -undefined suppress" + ;; + HP-UX*[)] + ac_cv_pic="-fPIC" + ;; + esac +else +case `uname -s` in + SunOS*[)] + ac_cv_pic="-KPIC -DPIC -G" + ;; +esac + +fi + +]) + +if test "$ac_cv_c_compiler_gnu" = "yes"; then + case `uname -s` in + Darwin*[)] + SHARED="-bundle -flat_namespace -undefined suppress" + AC_SUBST(SHARED) + ;; + *[)] + SHARED="-shared" + AC_SUBST(SHARED) + ;; + esac +fi + +AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[ +cat >uscore.c << __EOF__ +int main() { +return 0; +} +__EOF__ +$CC -o uscore $CFLAGS uscore.c 1>&5 +if test -z "`strings -a uscore |grep '^_main$'`"; then + ac_cv_underscore=no +else + ac_cv_underscore=yes +fi + +rm -f uscore uscore.c +]) +if test "$ac_cv_underscore" = "yes"; then +AC_DEFINE(DL_PREFIX,"_","Underscore needed for dlopen") +else +AC_DEFINE(DL_PREFIX,"","No prefix needed for dlopen") +fi + +MODULEFLAGS=$ac_cv_pic +AC_SUBST(MODULEFLAGS) +AC_DEFINE(USE_MODULES,1,"Modules available") +]) + +AC_ENABLE_DYN +anope_CHECK_TYPE_SIZES + +AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H,1,"")) +AC_CHECK_HEADER(sys/select.h,AC_DEFINE(HAVE_SYS_SELECT_H,1,"")) +AC_CHECK_HEADER(execinfo.h,AC_DEFINE(HAVE_BACKTRACE,1,"")) + +AC_CHECK_FUNCS(strerror,AC_DEFINE(HAVE_STRERROR,1)) +AC_CHECK_FUNCS(sys_errlist,AC_DEFINE(HAVE_SYS_ERRLIST,1)) +AC_CHECK_FUNCS(snprintf,AC_DEFINE(HAVE_SNPRINTF,1)) +AC_CHECK_FUNCS(stricmp,AC_DEFINE(HAVE_STRICMP,1)) +AC_CHECK_FUNCS(strcasecmp,AC_DEFINE(HAVE_STRCASECMP,1)) +AC_CHECK_FUNCS(strdup,AC_DEFINE(HAVE_STRDUP,1)) +AC_CHECK_FUNCS(strspn,AC_DEFINE(HAVE_STRSPN,1)) +AC_CHECK_FUNCS(strsignal,AC_DEFINE(HAVE_STRSIGNAL,1)) +AC_CHECK_FUNCS(gettimeofday,AC_DEFINE(HAVE_GETTIMEOFDAY,1)) +AC_CHECK_FUNCS(setgrent,AC_DEFINE(HAVE_SETGRENT,1)) +AC_CHECK_FUNCS(umask,AC_DEFINE(HAVE_UMASK,1)) +AC_CHECK_FUNCS(fork,AC_DEFINE(HAVE_FORK,1)) +AC_CHECK_FUNCS(gethostbyname,AC_DEFINE(HAVE_GETHOSTBYNAME,1)) +AC_CHECK_FUNCS(gethostbyname_r,AC_DEFINE(HAVE_GETHOSTBYNAME_R,1)) +AC_CHECK_FUNCS(strlcpy,AC_DEFINE(HAVE_STRLCPY,1)) +AC_CHECK_FUNCS(strlcat,AC_DEFINE(HAVE_STRLCAT,1)) + +AC_ARG_WITH(rungroup, [ --with-rungroup=group Specify the rungroup for anope], [ + AC_DEFINE_UNQUOTED(RUNGROUP,"$withval","Run group") + RUNGROUP=$withval +]) +AC_SUBST(RUNGROUP) + +dnl AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`","uname") + +AC_ARG_WITH(permissions, [ --with-permissions=permissions Specify the default permissions for anope], AC_DEFINE_UNQUOTED(DEFUMASK,$withval,"Default umask permissions"), AC_DEFINE(DEFUMASK, 007,"Default umask Permissions")) + +AC_ARG_WITH(bindir, [ --with-bindir=bindir Specify the default binary dir for anope], [ + AC_DEFINE_UNQUOTED(SERVICES_BIN,"${withval}/services","Binary Dir") + BINDEST=$withval + DATDEST=$withval + MODULE_PATH=${withval}/modules/ +]) + +AC_SUBST(BINDEST) + +AC_ARG_WITH(datadir, [ --with-datadir=datadir Specify the location of the services data folder], [ + AC_DEFINE_UNQUOTED(SERVICES_DIR,"$withval","services bin dir") + AC_DEFINE_UNQUOTED(MODULE_PATH,"${withval}/modules/","Module dir") + DATDEST=$withval + MODULE_PATH=${withval}/modules/ +]) + +AC_SUBST(DATDEST) +AC_SUBST(MODULE_PATH) + +AC_CONFIG_FILES( \ + Makefile \ + src/bin/anoperc \ +) + +AC_OUTPUT + +cat <<EOT + +$DIS_MODULES +$DIS_MYSQL + +All done! Now run "make" (or possibly "gmake") to compile Anope. +See the INSTALL, README and FAQ files if you have any problems. +EOT + |