summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorsjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864>2009-01-01 12:00:20 +0000
committersjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864>2009-01-01 12:00:20 +0000
commitc777c8d9aa7cd5c2e9a399727a7fa9985a77fb1c (patch)
tree9e996ae4a1bbb833cec036c5cd4d87a590149e85 /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.in304
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
+