dnl This file is part of linux-call-router
dnl Copyright (C) 2007 Joerg Habenicht (j.habenicht@gmx.de)
+dnl Copyright (C) 2008 Peter Schlaile (peter -at- schlaile.de)
+dnl Copyright (C) 2010 Andreas Eversberg (jolly@eversberg.eu)
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License as
dnl This keeps being the first instruction.
dnl Change the 2nd argument if the version increases
dnl 1st + 2nd argument is used for distribution package name
-AC_INIT(lcr, 0.1.20071001, pbx4linux@koeln.ccc.de)
-AC_PREREQ(2.61)
+AC_INIT(lcr, 1.11, andreas@eversberg.eu)
+AC_PREREQ(2.59)
AC_CONFIG_SRCDIR([main.c])
-AC_CONFIG_HEADER([config.h])
+AM_CONFIG_HEADER(config.h)
# fix warnings from autoconf + automake
AC_GNU_SOURCE
-AC_USE_SYSTEM_EXTENSIONS
-AM_INIT_AUTOMAKE([dist-bzip2])
+# AC_USE_SYSTEM_EXTENSIONS
+AM_INIT_AUTOMAKE(lcr,1.11)
# Checks for programs.
-dnl AC_CHECK_COMPILERS contains AC_PROG_CC AC_PROG_CPP and AC_PROG_CXX
-AC_CHECK_COMPILERS
-dnl AC_PROG_CXX
-dnl AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
dnl required, if per binary CFLAGS are used
# check for asterisk
AC_ARG_WITH([asterisk],
[AS_HELP_STRING([--with-asterisk],
- [compile with built-in Asterisk channel driver @<:@default=no@:>@])
+ [compile with built-in Asterisk channel driver @<:@default=check@:>@])
],
- [with_asterisk_channel_driver="yes"],
- [with_asterisk_channel_driver="no"])
-AM_CONDITIONAL(ENABLE_ASTERISK_CHANNEL_DRIVER, test "x$with_asterisk_channel_driver" == "xyes" )
+ [],
+ [with_asterisk="check"])
+
+AS_IF([test "x$with_asterisk" != xno],
+ [AC_CHECK_HEADERS([asterisk/compiler.h],
+ [with_asterisk="yes"],
+ [if test "x$with_asterisk" != xcheck ; then
+ AC_MSG_FAILURE(
+ [--with-asterisk was given, but test for header-file asterisk/compiler.h failed])
+ fi
+ ])
+ ])
+
+if test "x$with_asterisk" = "xyes"; then
+ ast_tone_zone_sound=
+ ast_1_8_or_higher=
+
+ AC_MSG_CHECKING([for struct tone_zone_sound in asterisk/indications.h])
+ tzs_test_result=no
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#include <asterisk.h>],
+ [#include <asterisk/linkedlists.h>],
+ [#include <asterisk/indications.h>]],
+ [[struct tone_zone_sound * ts = NULL; (void) ts->data;]])],
+ [tzs_test_result=yes])
+ AC_MSG_RESULT([$tzs_test_result])
+
+ if test "x$tzs_test_result" = "xyes"; then
+ ast_tone_zone_sound=tone_zone_sound
+ fi
+
+ if test "x$ast_tone_zone_sound" = "x"; then
+ AC_MSG_CHECKING([for struct ast_tone_zone_sound in asterisk/indications.h])
+ tzs_test_result=no
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#include <asterisk.h>],
+ [#include <asterisk/linkedlists.h>],
+ [#include <asterisk/indications.h>]],
+ [[struct ast_tone_zone_sound * ts = NULL; (void) ts->name;]])],
+ [tzs_test_result=yes])
+ AC_MSG_RESULT([$tzs_test_result])
+
+ if test "x$tzs_test_result" = "xyes"; then
+ ast_tone_zone_sound=ast_tone_zone_sound
+ fi
+ fi
+
+ if test "x$ast_tone_zone_sound" = "x"; then
+ AC_MSG_FAILURE([No ast_tone_zone_sound, confused...])
+ fi
+
+ AC_MSG_CHECKING([for struct ast_party_caller in asterisk/channel.h])
+ apc_test_result=no
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#include <asterisk.h>],
+ [#include <asterisk/channel.h>]],
+ [[struct ast_party_caller * caller = NULL; (void) caller->id;]])],
+ [apc_test_result=yes])
+ AC_MSG_RESULT([$apc_test_result])
+
+ if test "x$apc_test_result" = "xyes"; then
+ ast_1_8_or_higher="-DAST_1_8_OR_HIGHER"
+ fi
+
+ AST_CFLAGS="-Dtone_zone_sound=$ast_tone_zone_sound $ast_1_8_or_higher"
+
+ AC_SUBST([AST_CFLAGS])
+fi
+
+AM_CONDITIONAL(ENABLE_ASTERISK_CHANNEL_DRIVER, test "x$with_asterisk" == "xyes" )
# check for crypto
AC_ARG_WITH([ssl],
)
]
)
-AM_CONDITIONAL(WITH_CRYPTO, test "x$LIBCRYPTO" == "x-lcrypto" )
-# self written test for mISDNuser lib
-AC_PATH_MISDNUSER
+# check for gsm-bs
+AC_ARG_WITH([gsm-bs],
+ [AS_HELP_STRING([--with-gsm-bs],
+ [compile with OpenBSC support @<:@default=no@:>@])
+ ],
+ [],
+ [with_gsm_bs="check"])
+
+AM_CONDITIONAL(ENABLE_GSM_BS, test "x$with_gsm_bs" == "xyes" )
+
+# check for gsm-ms
+AC_ARG_WITH([gsm-ms],
+ [AS_HELP_STRING([--with-gsm-ms],
+ [compile with Osmocom-bb support @<:@default=no@:>@])
+ ],
+ [],
+ [with_gsm_ms="check"])
-# self written test for mISDN kernel header
-AC_PATH_MISDNKERNEL
+AM_CONDITIONAL(ENABLE_GSM_MS, test "x$with_gsm_ms" == "xyes" )
+AM_CONDITIONAL(ENABLE_GSM, test "x$with_gsm_bs" == "xyes" -o "x$with_gsm_ms" == "xyes")
+AS_IF([test "x$with_gsm_bs" == xyes -o "x$with_gsm_ms" == xyes],
+ [AC_MSG_CHECKING(/usr/include/gsm/gsm.h)
+ if test -e /usr/include/gsm/gsm.h; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_FAILURE([You have enabled GSM, but /usr/include/gsm/gsm.h not found! Please install the lossy GSM codec. Be sure to install it in /usr/ and not in /usr/local/. You will also find a copy on http://www.linux-call-router.de.])
+ fi
+ ])
+
+# check for ss5
+AC_ARG_WITH([ss5],
+ [AS_HELP_STRING([--with-ss5],
+ [compile with CCITT No. 5 support @<:@default=no@:>@])
+ ],
+ [],
+ [with_ss5="check"])
+AM_CONDITIONAL(ENABLE_SS5, test "x$with_ss5" == "xyes" )
# Checks for libraries.
-dnl FIXME: Replace `main' with a function in `-ldl':
-dnl AC_CHECK_LIB([dl], [main])
-dnl FIXME: Replace `main' with a function in `-lh323_linux_x86_r':
-dnl AC_CHECK_LIB([h323_linux_x86_r], [main])
-dnl FIXME: Replace `main' with a function in `-lisdnnet':
-dnl AC_CHECK_LIB([isdnnet], [main])
-# FIXME: Replace `main' with a function in `-lm':
AC_CHECK_LIB([m], [main])
-dnl FIXME: Replace `main' with a function in `-lmISDN':
-dnl AC_CHECK_LIB([mISDN], [main])
-# FIXME: Replace `main' with a function in `-lncurses':
AC_CHECK_LIB([ncurses], [main])
-dnl FIXME: Replace `main' with a function in `-lpt_linux_x86_r':
-dnl AC_CHECK_LIB([pt_linux_x86_r], [main])
-# FIXME: Replace `main' with a function in `-lpthread':
AC_CHECK_LIB([pthread], [main])
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.h ctype.h assert.h])
-AC_HEADER_ASSERT
+AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.h ctype.h assert.h mISDNuser/mbuffer.h assert.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([gettimeofday memmove memset mkdir socket strcasecmp strchr strerror strncasecmp strstr strtol strtoul])
-AC_SUBST(misdnuser_libraries)
-AC_SUBST(misdnuser_includes)
-AC_SUBST(misdnkernel_includes)
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
+
+
+AS_IF([test "x$with_gsm_bs" == xyes],[AC_MSG_NOTICE( Compiled with GSM network side support )],[AC_MSG_NOTICE( Not compiled with GSM network side support)])
+AS_IF([test "x$with_gsm_ms" == xyes],[AC_MSG_NOTICE( Compiled with GSM mobile side support )],[AC_MSG_NOTICE( Not compiled with GSM mobile side support)])
+AS_IF([test "x$with_asterisk" == xyes],[AC_MSG_NOTICE( Compiled with Asterisk channel driver support )],[AC_MSG_NOTICE( Not compiled with Asterisk channel driver support)])
+AS_IF([test "x$with_ss5" == xyes],[AC_MSG_NOTICE( Compiled with CCITT No.5 support )],[AC_MSG_NOTICE( Not compiled with CCITT No.5 support)])
+