Hamlib/configure.ac

362 wiersze
10 KiB
Plaintext

dnl Process this file with autoconf to produce a configure script.
AC_INIT(hamlib, 1.1.4-cvs, hamlib-developer@lists.sourceforge.net)
AM_INIT_AUTOMAKE(hamlib, 1.1.4-cvs)
AC_CONFIG_SRCDIR([include/hamlib/rig.h])
AM_CONFIG_HEADER(include/config.h)
AM_MAINTAINER_MODE
# Minimum Autoconf version required.
AC_PREREQ(2.50)
dnl directory for docs (html)
hamlibdocdir=$datadir/doc/hamlib
AC_SUBST(hamlibdocdir)
dnl Checks for programs.
AC_PROG_CXX
AC_PROG_AWK
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_AIX
AC_ISC_POSIX
AC_MINIX
AM_PROG_CC_STDC
AC_PROG_GCC_TRADITIONAL
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS([alloca.h argz.h malloc.h memory.h string.h strings.h])
AC_CHECK_HEADERS([stdlib.h values.h rpc/rpc.h net/errno.h])
AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/time.h sys/param.h unistd.h getopt.h errno.h])
AC_CHECK_HEADERS([sys/ioccom.h linux/ppdev.h sgtty.h term.h termio.h termios.h])
AC_CHECK_HEADERS([windows.h winioctl.h winbase.h])
AM_SYS_POSIX_TERMIOS
INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_srcdir)/src -I\$(top_srcdir)/lib"
CPPFLAGS="${CPPFLAGS} -D_GNU_SOURCE"
if test "${ac_cv_c_compiler_gnu}" = "yes"; then
CFLAGS="${CFLAGS} -Wall"
fi
if test "${ac_cv_cxx_compiler_gnu}" = "yes"; then
CXXFLAGS="${CXXFLAGS} -Wall"
fi
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_TYPE_SIGNAL
AC_CHECK_TYPES([siginfo_t],[],[],[#include <signal.h>])
dnl Checks for libraries.
# The following comes from SC_TCL_LINK_LIBS
# we redefine them here because we want a separate NET_LIBS var
#--------------------------------------------------------------------
# On a few very rare systems, all of the libm.a stuff is
# already in libc.a. Set compiler flags accordingly.
# Also, Linux requires the "ieee" library for math to work
# right (and it must appear before "-lm").
#--------------------------------------------------------------------
AC_CHECK_FUNC(sin, [MATH_LIBS=""], [MATH_LIBS="-lm"])
AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"], [], [])
#--------------------------------------------------------------------
# Interactive UNIX requires -linet instead of -lsocket, plus it
# needs net/errno.h to define the socket-related error codes.
#--------------------------------------------------------------------
AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"], [], [])
#--------------------------------------------------------------------
# Check for the existence of the -lsocket and -lnsl libraries.
# The order here is important, so that they end up in the right
# order in the command line generated by make. Here are some
# special considerations:
# 1. Use "connect" and "accept" to check for -lsocket, and
# "gethostbyname" to check for -lnsl.
# 2. Use each function name only once: can't redo a check because
# autoconf caches the results of the last check and won't redo it.
# 3. Use -lnsl and -lsocket only if they supply procedures that
# aren't already present in the normal libraries. This is because
# IRIX 5.2 has libraries, but they aren't needed and they're
# bogus: they goof up name resolution if used.
# 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
# To get around this problem, check for both libraries together
# if -lsocket doesn't work by itself.
#--------------------------------------------------------------------
hl_checkBoth=0
hl_oldLibs=$LIBS
AC_CHECK_FUNC(connect, hl_checkSocket=0, hl_checkSocket=1)
if test "$hl_checkSocket" = 1; then
AC_CHECK_LIB(socket, main, [NET_LIBS="$NET_LIBS -lsocket"], [hl_checkBoth=1], [])
fi
if test "$hl_checkBoth" = 1; then
hl2_oldLibs=$LIBS
LIBS="$LIBS -lsocket -lnsl"
AC_CHECK_FUNC(accept, hl_checkNsl=0, [LIBS=$hl2_oldLibs])
fi
AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main,
[NET_LIBS="$NET_LIBS -lnsl"], [], []))
LIBS=$hl_oldLibs
AC_SUBST(NET_LIBS)
AC_SUBST(MATH_LIBS)
AC_CHECK_LIB(syslog,syslog) # OS/2 needs this
dnl Checks for library functions.
AC_CHECK_FUNCS([atexit snprintf select gettimeofday memmove memset])
AC_CHECK_FUNCS([strcasecmp strchr strdup strerror strrchr strstr strtol])
AC_CHECK_FUNCS([cfmakeraw])
AC_REPLACE_FUNCS([getopt_long usleep])
AC_FUNC_ALLOCA
AC_FUNC_MALLOC
AC_FUNC_VPRINTF
dnl initialize libtool
dnl Enable building of the convenience library
dnl and set LIBLTDL accordingly
AC_LIBLTDL_CONVENIENCE
dnl Substitute INCLTDL and LIBLTDL in the Makefiles
AC_SUBST(INCLTDL)
AC_SUBST(LIBLTDL)
dnl Check for dlopen support
AC_LIBTOOL_WIN32_DLL
AC_LIBTOOL_DLOPEN
dnl Configure libtool
AC_PROG_LIBTOOL
dnl Configure libltdl
AC_CONFIG_SUBDIRS(libltdl)
dnl Check if C99 struct initializers are supported
AC_MSG_CHECKING(whether C99 struct initializers are supported)
AC_TRY_COMPILE(,struct{char a;int b;}s={.b=5};, [AC_MSG_RESULT(yes)],
[AC_MSG_ERROR( ""
"You need a C99 compliant C compiler that supports struct intializers."
"Have you considered GCC lately?.")]);
dnl Check if libgd-dev is installed, so we can enable rigmatrix
AC_ARG_WITH(rigmatrix,
[ --with-rigmatrix Generate rigmatrix tool (requires libgd)],
[AC_CHECK_HEADERS([gd.h],
[AC_CHECK_LIB([gd],[gdImageCreate], [enable_rigmatrix=yes],
[enable_rigmatrix=no],[-lz])
])
],
[enable_rigmatrix=no])
AC_MSG_CHECKING(whether to build rigmatrix)
AC_MSG_RESULT($enable_rigmatrix)
if test "${enable_rigmatrix}" = "no"; then
RIGMATRIX=
else
RIGMATRIX="rigmatrix"
fi
AC_SUBST(RIGMATRIX)
BACKEND_LIST="icom kenwood aor yaesu dummy pcr alinco uniden tentec kachina jrc drake"
ROT_BACKEND_LIST="dummy easycomm"
BINDING_LIST=""
dnl Check if cxx-binding not wanted, default is to build it
if test x"${CXX}" = x; then
cf_with_cxx=no
else
cf_with_cxx=yes
fi
AC_MSG_CHECKING(whether to build C++ binding and demo)
AC_ARG_WITH(cxx-binding,
[ --without-cxx-binding do not build C++ binding and demo],
[cf_with_cxx_binding=$withval],
[cf_with_cxx_binding=$cf_with_cxx])
AC_MSG_RESULT($cf_with_cxx_binding)
if test "${cf_with_cxx_binding}" = "yes" ; then
BINDING_LIST="${BINDING_LIST} c++"
fi
dnl Check if perl-binding not wanted, default is to not build it
AC_CHECK_PROG(cf_with_perl, h2xs, [yes], [no])
AC_MSG_CHECKING(whether to build perl binding and demo)
AC_ARG_WITH(perl-binding,
[ --with-perl-binding build perl binding and demo],
[cf_with_perl_binding=$withval],
[cf_with_perl_binding=no])
AC_MSG_RESULT($cf_with_perl_binding)
if test "${cf_with_perl_binding}" = "yes" ; then
BINDING_LIST="${BINDING_LIST} perl"
fi
dnl Check if kylix-binding wanted, REM: nothing to build yet
cf_with_kylix=no
AC_MSG_CHECKING(whether to build Kylix binding and demo)
AC_ARG_WITH(kylix-binding,
[ --with-kylix-binding build Kylix binding and demo],
[cf_with_kylix_binding=$withval],
[cf_with_kylix_binding=$cf_with_kylix])
AC_MSG_RESULT($cf_with_kylix_binding)
if test "${cf_with_kylix_binding}" = "yes" ; then
BINDING_LIST="${BINDING_LIST} kylix"
fi
dnl Check for tcl-dev availability, so we can enable HamlibTCL
SC_PATH_TCLCONFIG
if test x"${no_tcl}" = x; then
SC_LOAD_TCLCONFIG
cf_with_tcl=yes
else
cf_with_tcl=no
fi
AC_MSG_CHECKING(whether to build tcl binding and demo)
AC_ARG_WITH(tcl-binding,
[ --with-tcl-binding build tcl binding and demo],
[cf_with_tcl_binding=$withval],
[cf_with_tcl_binding=$cf_with_tcl])
AC_MSG_RESULT($cf_with_tcl_binding)
if test "${cf_with_tcl_binding}" = "yes" ; then
BINDING_LIST="${BINDING_LIST} tcl"
fi
AC_SUBST(TCL_LIB_SPEC)
if test "${ac_cv_header_sys_socket_h}" = "no"; then
echo "disabling NET port"
NET=
else
echo "enabling NET port"
NET=net
fi
AC_SUBST(NET)
dnl Backend list
case "$host_os" in
linux-gnu*)
# Winradio only under Linux (until someone port it on other os)
BACKEND_LIST="$BACKEND_LIST winradio"
;;
*)
esac
# assumes we have libgnuradio, libfftw
if test "${cf_with_cxx}" = "yes" ; then
AC_CHECK_HEADERS([VrMultiTask.h])
#AC_CHECK_LIB([gnuradio],[], [], [], [-lfftw -lrfftw])
AC_MSG_CHECKING(whether to build gnuradio backend)
AC_ARG_WITH(gnuradio,
[ --with-gnuradio build gnuradio backend],
[cf_with_gnuradio=$withval],
[cf_with_gnuradio="no"])
AC_MSG_RESULT($cf_with_gnuradio)
if test "${cf_with_gnuradio}" = "yes" ; then
BACKEND_LIST="$BACKEND_LIST gnuradio"
# fix almost hardcoded path...
grpath="../../gnuradio-0.3"
#GNURADIO_LIBS="-L. -L${grpath}/src/gnu/lib -lgnuradio -lrfftw -lfftw"
GNURADIO_LIBS="${grpath}/src/gnu/lib/libgnuradio.la -lstdc++"
GNURADIO_FLAGS="-DUSE_LIBGXX_INLINES -D_REENTRANT -DPARANOID=1 -DCACHESIZE=262144 -I${grpath}/src/gnu/lib/gr -I${grpath}/src/gnu/lib/grio -I${grpath}/src/gnu/lib/grgui -I${grpath}/src/gnu/lib/dtv -I${grpath}/src/pspectra/lib/vr -I${grpath}/src/pspectra/lib/vrp -I${grpath}/src/pspectra/lib/vrio"
fi
fi
AC_SUBST(GNURADIO_LIBS)
AC_SUBST(GNURADIO_FLAGS)
# RPCRig must be the last one added to BACKEND_LIST
# because it links against other backends (build order)
if test "${ac_cv_header_rpc_rpc_h}" = "yes" ; then
BACKEND_LIST="$BACKEND_LIST rpcrig"
ROT_BACKEND_LIST="$ROT_BACKEND_LIST rpcrot"
fi
# dlopen force or preopen self for static version ?
BACKENDLNK="-dlopen force"
for be in ${BACKEND_LIST} ; do
BACKENDLNK="${BACKENDLNK} -dlopen ../${be}/libhamlib-${be}.la"
BACKENDEPS="${BACKENDEPS} ../${be}/libhamlib-${be}.la"
done
AC_SUBST(BACKEND_LIST)
AC_SUBST(BACKENDLNK)
AC_SUBST(BACKENDEPS)
# dlopen force or preopen self for static version ?
ROT_BACKENDLNK="-dlopen force"
for be in ${ROT_BACKEND_LIST} ; do
ROT_BACKENDLNK="${ROT_BACKENDLNK} -dlopen ../${be}/libhamlib-${be}.la"
ROT_BACKENDEPS="${ROT_BACKENDEPS} ../${be}/libhamlib-${be}.la"
done
AC_SUBST(ROT_BACKEND_LIST)
AC_SUBST(ROT_BACKENDLNK)
AC_SUBST(ROT_BACKENDEPS)
BINDINGS=""
AC_CHECK_PROG(BINDINGS, [swig], [bindings], [], [$PATH])
AC_SUBST(BINDINGS)
for bi in ${BINDING_LIST} ; do
if test "${bi}" != "c++" -a "${bi}" != "kylix" ; then
BINDING_LA="${BINDING_LA} hamlib${bi}.la"
fi
done
AC_SUBST(BINDING_LA)
AC_SUBST(BINDING_LIST)
AC_SUBST(INCLUDES)
AC_CONFIG_FILES([Makefile
include/Makefile
lib/Makefile
dummy/Makefile
yaesu/Makefile
icom/Makefile
aor/Makefile
kenwood/Makefile
winradio/Makefile
pcr/Makefile
alinco/Makefile
uniden/Makefile
tentec/Makefile
kachina/Makefile
jrc/Makefile
drake/Makefile
gnuradio/Makefile
easycomm/Makefile
rpcrig/Makefile
rpcrot/Makefile
src/Makefile
c++/Makefile
tcl/Makefile
kylix/Makefile
perl/Makefile
bindings/Makefile
tests/Makefile
doc/Makefile
hamlib.spec],
[ chmod +x tcl/tcltest.tcl ]
)
AC_OUTPUT