mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-22 02:47:21 +00:00
317ea83684
This option is obsolete since Apple gcc 3.0, by dropping support for gcc 2.95.x we no longer have to pass this option. By not passing this option we sidestep an issue for Mac OS X when a GNU gcc compiler is used to build instead Apple gcc or clang.
799 lines
25 KiB
Plaintext
799 lines
25 KiB
Plaintext
## Process this file with autoconf to create configure. -*- autoconf -*-
|
|
|
|
dnl Autoconf 2.67 is in Debian Squeeze--is an older version needed
|
|
dnl for some other distribution?
|
|
## FIXME: Is this too new? ##
|
|
AC_PREREQ([2.67])
|
|
|
|
|
|
## ------------------------ ##
|
|
## Autoconf initialisation. ##
|
|
## ------------------------ ##
|
|
|
|
dnl Please do not use '-' in the version number, as package managers will fail,
|
|
dnl however, the use of '~' should be fine as apt (others?) will treat
|
|
dnl it as an earlier version than the actual release. TNX KA6MAL
|
|
dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars!
|
|
AC_INIT([Hamlib],
|
|
[3.2~git],
|
|
[hamlib-developer@lists.sourceforge.net],
|
|
[hamlib],
|
|
[http://www.hamlib.org])
|
|
|
|
AC_CONFIG_SRCDIR([include/hamlib/rig.h])
|
|
AC_CONFIG_MACRO_DIR([macros])
|
|
AC_CONFIG_HEADERS([include/config.h])
|
|
|
|
dnl Place build system provided programs in this directory.
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
|
|
|
|
## ------------------------ ##
|
|
## Automake Initialisation. ##
|
|
## ------------------------ ##
|
|
|
|
dnl Passing AC_PACKAGE_TARNAME, AC_PACKAGE_VERSION to AM_INIT_AUTOMAKE is
|
|
dnl obsolete as these values are obtained from the AC_INIT macro.
|
|
AM_INIT_AUTOMAKE([-Wall subdir-objects])
|
|
|
|
dnl Clean compilation output makes compiler warnings more visible
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
|
|
## ------------------------------ ##
|
|
## Hamlib specific configuration. ##
|
|
## ------------------------------ ##
|
|
|
|
dnl New backends must be listed here! Also the new Makefile path must be
|
|
dnl added to AC_CONFIG_FILES near the end of this file. See README.developer
|
|
dnl Beware of duplication should a backend directory include both rig and
|
|
dnl rotor definitions, e.g. "dummy". Optional backends will not be listed
|
|
dnl here but will be added later, e.g. "winradio".
|
|
BACKEND_LIST="adat alinco aor dorji drake dummy flexradio icom icmarine jrc kachina kenwood kit lowe pcr prm80 racal rft rs skanti tapr tentec tuner uniden wj yaesu"
|
|
ROT_BACKEND_LIST="amsat ars celestron cnctrk easycomm ether6 fodtrack gs232a heathkit m2 rotorez sartek spid ts7400 prosistel"
|
|
|
|
dnl See README.release on setting these values
|
|
# Values given to -version-info when linking. See libtool documentation.
|
|
# Set them here to keep c++/Makefile and src/Makefile in sync.
|
|
ABI_VERSION=3
|
|
ABI_REVISION=1
|
|
ABI_AGE=1
|
|
|
|
AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version])
|
|
AC_DEFINE_UNQUOTED([ABI_REVISION], [$ABI_REVISION], [Frontend ABI revision])
|
|
AC_DEFINE_UNQUOTED([ABI_AGE], [$ABI_AGE], [Frontend ABI age])
|
|
|
|
AC_SUBST([ABI_VERSION])
|
|
AC_SUBST([ABI_REVISION])
|
|
AC_SUBST([ABI_AGE])
|
|
|
|
# Add Hamlib define needed to link DLLs
|
|
AM_CPPFLAGS="${AM_CPPFLAGS} -DIN_HAMLIB"
|
|
|
|
# Add Hamlib header include paths
|
|
AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_srcdir)/include -I\$(top_srcdir)/src -I\$(top_srcdir)/lib"
|
|
|
|
|
|
## --------------- ##
|
|
## Program checks ##
|
|
## --------------- ##
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_CPP
|
|
AC_PROG_AWK
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
|
|
# TODO: check whether CXX is functional
|
|
AC_CHECK_PROG([cf_with_cxx], ["${CXX}"], [yes], [no])
|
|
|
|
AM_CONDITIONAL([ENABLE_CXX], [test x"${cf_with_cxx}" = "xyes"])
|
|
|
|
dnl Broke on older Automake, so test for its existence.
|
|
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
|
|
|
|
|
## ----------------------------------- ##
|
|
## Miscellaneous configuration macros ##
|
|
## ----------------------------------- ##
|
|
|
|
AC_C_INLINE
|
|
|
|
dnl Set warnings for compilation
|
|
dnl CFLAGS and CXXFLAGS are reserved for user, so set their AM_* counterparts.
|
|
# macros/ax_cflags_warn_all.m4
|
|
AX_CFLAGS_WARN_ALL([AM_CFLAGS])
|
|
AX_CXXFLAGS_WARN_ALL([AM_CXXFLAGS])
|
|
|
|
dnl Automake macro for rigmem compilation
|
|
AM_PROG_CC_C_O
|
|
|
|
|
|
## ------------------------------------------ ##
|
|
## Various parts of Hamlib need these headers ##
|
|
## ------------------------------------------ ##
|
|
|
|
AC_CHECK_HEADERS([errno.h fcntl.h getopt.h limits.h locale.h malloc.h \
|
|
netdb.h sgtty.h stddef.h termio.h termios.h values.h \
|
|
arpa/inet.h dev/ppbus/ppbconf.hdev/ppbus/ppi.h \
|
|
linux/hidraw.h linux/ioctl.h linux/parport.h linux/ppdev.h netinet/in.h \
|
|
sys/ioccom.h sys/ioctl.h sys/param.h sys/socket.h sys/stat.h sys/time.h])
|
|
|
|
dnl set host_os variable
|
|
AC_CANONICAL_HOST
|
|
|
|
dnl ws2tcpip.h not provided by cygwin and its test causes a configure warning.
|
|
dnl wspiapi.h provides needed freeaddrinfo function on W2k systems.
|
|
AS_IF([test "${host_os}" != "cygwin"], [
|
|
AC_CHECK_HEADERS([ws2tcpip.h wspiapi.h])
|
|
])
|
|
|
|
|
|
## ------------------------------------ ##
|
|
## System capability and library checks ##
|
|
## ------------------------------------ ##
|
|
|
|
dnl Check for Mingw (Win32 Sleep) support
|
|
# macros/gr_pwin32.m4
|
|
GR_PWIN32
|
|
|
|
dnl If pthread support is found, this macro defines HAVE_PTHREAD and
|
|
dnl AC_SUBST's PTHREAD_LIBS, PTHREAD_CFLAGS, and PTHREAD_CC making those
|
|
dnl variables available in Makefiles.
|
|
# macros/ax_pthread.m4
|
|
AX_PTHREAD
|
|
|
|
AC_SYS_POSIX_TERMIOS()
|
|
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
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.
|
|
#--------------------------------------------------------------------
|
|
AC_CHECK_FUNC([sin], [MATH_LIBS=""], [MATH_LIBS="-lm"])
|
|
AC_SUBST([MATH_LIBS])
|
|
|
|
#--------------------------------------------------------------------
|
|
# 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: cannot redo a check because
|
|
# autoconf caches the results of the last check and will not redo it.
|
|
# 3. Use -lnsl and -lsocket only if they supply procedures that
|
|
# are not 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])
|
|
|
|
AS_IF([test "$hl_checkSocket" = 1], [
|
|
AC_CHECK_LIB([socket],
|
|
[main],
|
|
[NET_LIBS="$NET_LIBS -lsocket"],
|
|
[hl_checkBoth=1],
|
|
[])
|
|
])
|
|
|
|
AS_IF([test "$hl_checkBoth" = 1], [
|
|
hl2_oldLibs=$LIBS
|
|
LIBS="$LIBS -lsocket -lnsl"
|
|
AC_CHECK_FUNC([accept], [hl_checkNsl=0], [LIBS=$hl2_oldLibs])
|
|
])
|
|
|
|
# separate Name Service Library
|
|
AC_CHECK_FUNC([gethostbyname],
|
|
[],
|
|
[AC_CHECK_LIB([nsl],
|
|
[main],
|
|
[NET_LIBS="$NET_LIBS -lnsl"],
|
|
[],
|
|
[])
|
|
])
|
|
|
|
# Winsock2 32 bit
|
|
AC_CHECK_FUNC([gethostbyname],
|
|
[],
|
|
[AC_CHECK_LIB([ws2_32],
|
|
[main],
|
|
[NET_LIBS="$NET_LIBS -lws2_32"],
|
|
[],
|
|
[])
|
|
])
|
|
|
|
LIBS="$LIBS $NET_LIBS"
|
|
|
|
# macros/hl_getaddrinfo.m4
|
|
HL_GETADDRINFO
|
|
|
|
LIBS=$hl_oldLibs
|
|
AC_SUBST([NET_LIBS])
|
|
## End Hamlib socket test ##
|
|
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS([cfmakeraw floor getpagesize getpagesize gettimeofday inet_ntoa \
|
|
ioctl memchr memmove memset pow rint select setitimer setlocale sigaction \
|
|
snprintf socket sqrt strchr strdup strerror strncasecmp strrchr strstr strtol])
|
|
AC_FUNC_ALLOCA
|
|
|
|
dnl AC_LIBOBJ replacement functions directory
|
|
AC_CONFIG_LIBOBJ_DIR([lib])
|
|
|
|
dnl Use Hamlib's termios
|
|
AC_LIBOBJ([termios])
|
|
|
|
dnl Assure libmisc is not empty
|
|
AC_LIBOBJ([dummy])
|
|
|
|
|
|
## ------------------------ ##
|
|
## libtool Initialisation. ##
|
|
## ------------------------ ##
|
|
|
|
LT_PREREQ([2.2.6b])
|
|
|
|
dnl N.B. LT_INIT([win32-dll]) does not work for older libtool
|
|
dnl so require new enough version above.
|
|
LT_INIT([win32-dll])
|
|
|
|
|
|
## -------------------------- ##
|
|
## Custom host configurations ##
|
|
## -------------------------- ##
|
|
|
|
dnl The host_os variable is set by the AC_CANONICAL_HOST macro above.
|
|
AS_CASE(["$host_os"],
|
|
[freebsd*], [
|
|
AM_CPPFLAGS="-I/usr/local/include ${AM_CPPFLAGS}"
|
|
AM_LDFLAGS="${AM_LDFLAGS} -L/usr/local/lib"
|
|
AC_SUBST([AM_LDFLAGS])],
|
|
|
|
[darwin* | rhapsody*], [
|
|
# Tell the OS X linker to allocate enough space inside the
|
|
# libhamlib.X.dylib shared object for install_name_tool(1) to
|
|
# work. This is useful when including hamlib in an app bundle.
|
|
OSXLDFLAGS="-Wl,-headerpad_max_install_names"
|
|
AC_SUBST([OSXLDFLAGS])],
|
|
|
|
[mingw* | pw32* | cygwin*], [
|
|
WINLDFLAGS="-Wl,--output-def,libhamlib.def -Wl,--add-stdcall-alias"
|
|
AC_SUBST([WINLDFLAGS])
|
|
|
|
# Enable ld's "auto import" for executables
|
|
WINEXELDFLAGS="-Wl,--enable-auto-import"
|
|
AC_SUBST([WINEXELDFLAGS])
|
|
])
|
|
|
|
|
|
## ---------------------- ##
|
|
## External package tests ##
|
|
## ---------------------- ##
|
|
|
|
dnl Check if C99 struct initializers are supported
|
|
AC_MSG_CHECKING([whether C99 struct/array initializers are supported])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
|
|
[[struct{char a;int b;}s[8]={[3]={.b=5}};]])],
|
|
[AC_MSG_RESULT(yes)],
|
|
[AC_MSG_ERROR([""
|
|
"You need a C99 compliant C compiler that supports struct/array intializers."
|
|
"Have you considered GCC lately?."])
|
|
])
|
|
|
|
|
|
dnl Check for libusb, treat LIBUSB_LIBS and LIBUSB_CFLAGS as precious variables
|
|
AC_ARG_VAR([LIBUSB_CFLAGS], [C compiler flags for libusb, overriding configure defaults])
|
|
AC_ARG_VAR([LIBUSB_LIBS], [linker flags for libusb, overriding configure check (useful for specifying static libusb-1.0.a (see INSTALL))])
|
|
|
|
cf_with_libusb="no"
|
|
|
|
AS_IF([test -z $LIBUSB_LIBS],
|
|
[AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBUSB_LIBS="-lusb-1.0" cf_with_libusb="yes"],
|
|
[AC_MSG_WARN([libusb_init was not found in libusb-1.0--USB backends will be disabled])])
|
|
], [cf_with_libusb="yes"])
|
|
|
|
LIBUSB=""
|
|
|
|
AS_IF([test x"${cf_with_libusb}" = "xyes"],
|
|
[AC_CHECK_HEADERS([libusb.h libusb-1.0/libusb.h])
|
|
AC_DEFINE([HAVE_LIBUSB],
|
|
[1],
|
|
[Define if libusb-1.0 is available])
|
|
LIBUSB="libusb-1.0"])
|
|
|
|
# Only used in hamlib.pc.in
|
|
AC_SUBST([LIBUSB])
|
|
|
|
|
|
dnl Check if readline support in rigctl/rotctl is wanted
|
|
AC_MSG_CHECKING([whether to use readline in rigctl/rotctl])
|
|
AC_ARG_WITH([readline],
|
|
[AS_HELP_STRING([--without-readline],
|
|
[disable readline in rigctl/rotctl @<:@default=yes@:>@])],
|
|
[cf_with_readline_support=no],
|
|
[cf_with_readline_support=yes]
|
|
)
|
|
|
|
AC_MSG_RESULT([$cf_with_readline_support])
|
|
|
|
AS_IF([test x"$cf_with_readline_support" != "xno"], [
|
|
# macros/ax_lib_readline.m4
|
|
AX_LIB_READLINE
|
|
])
|
|
|
|
AS_IF([test x"$ax_cv_lib_readline" = "xno"], [
|
|
AC_MSG_WARN([readline support not found, using internal input handling.])
|
|
cf_with_readline_support=no
|
|
])
|
|
|
|
|
|
dnl Check if libgd-dev is installed, so we can enable rigmatrix
|
|
AC_MSG_CHECKING([whether to build HTML rig feature matrix])
|
|
AC_ARG_ENABLE([html-matrix],
|
|
[AS_HELP_STRING([--disable-html-matrix],
|
|
[do not generate HTML rig feature matrix (requires libgd-dev) @<:@default=check@:>@])],
|
|
[cf_enable_html_matrix=no],
|
|
[cf_enable_html_matrix=check]
|
|
)
|
|
|
|
AC_MSG_RESULT([$cf_enable_html_matrix])
|
|
|
|
AS_IF([test x"$cf_enable_html_matrix" != "xno"],
|
|
[AC_CHECK_HEADERS([gd.h],
|
|
[AC_CHECK_LIB([gd],
|
|
[gdImageCreate],
|
|
[cf_enable_html_matrix=yes],
|
|
[cf_enable_html_matrix=no],
|
|
[-lz])],
|
|
[cf_enable_html_matrix=no]
|
|
)
|
|
])
|
|
|
|
AM_CONDITIONAL([HTML_MATRIX], [test x"${cf_enable_html_matrix}" = "xyes"])
|
|
|
|
|
|
## ------------------ ##
|
|
## PKG Config support ##
|
|
## ------------------ ##
|
|
|
|
dnl These features rely on the external pkg-config functionality being available.
|
|
dnl Test for pkg-config only when these features are enabled.
|
|
|
|
# libxml2 required rigmem xml support, make it user optional
|
|
AC_MSG_CHECKING([whether to build rigmem XML support])
|
|
AC_ARG_WITH([xml-support],
|
|
[AS_HELP_STRING([--with-xml-support],
|
|
[build rigmem with XML support @<:@default=no@:>@])],
|
|
[cf_with_xml_support=$withval],
|
|
[cf_with_xml_support=no])
|
|
AC_MSG_RESULT([$cf_with_xml_support])
|
|
|
|
|
|
# USRP needs a C++ compiler, tested for presence above.
|
|
AS_IF([test x"${cf_with_cxx}" = "xyes"], [
|
|
AC_MSG_CHECKING([whether to build USRP backend])
|
|
AC_ARG_ENABLE([usrp],
|
|
[AS_HELP_STRING([--enable-usrp],
|
|
[build USRP backend @<:@default=no@:>@])],
|
|
[cf_with_usrp=$enableval],
|
|
[cf_with_usrp="no"])
|
|
AC_MSG_RESULT([$cf_with_usrp])
|
|
])
|
|
|
|
dnl Only check for pkg-config when either of the dependent features are enabled.
|
|
|
|
AS_IF([test x"${cf_with_xml_support}" = "xyes" || test x"${cf_with_usrp}" = "xyes"], [
|
|
dnl Check for pkg-config presence and if not installed define a dummy macro
|
|
dnl to disable libxml2 and USRP use. Code borrowed from:
|
|
dnl http://lists.gnu.org/archive/html/automake/2011-03/msg00008.html
|
|
dnl
|
|
dnl Check for pkg-config program, used for configuring some libraries.
|
|
m4_define_default([PKG_PROG_PKG_CONFIG],
|
|
[AC_MSG_CHECKING([pkg-config])
|
|
AC_MSG_RESULT([no])])
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
dnl If the pkg-config autoconf support isn't installed, define its
|
|
dnl autoconf macro to disable any packages depending on it.
|
|
m4_define_default([PKG_CHECK_MODULES],
|
|
[AC_MSG_CHECKING([$1])
|
|
AC_MSG_RESULT([no])
|
|
$4])
|
|
])
|
|
|
|
|
|
AS_IF([test x"${cf_with_xml_support}" = "xyes"], [
|
|
PKG_CHECK_MODULES([LIBXML2],
|
|
[libxml-2.0],
|
|
[AC_DEFINE([HAVE_XML2],
|
|
[1],
|
|
[Define if libxml2 is available])],
|
|
[AC_MSG_WARN([libxml-2.0 pkg-config not found, XML support will be disabled])
|
|
])
|
|
])
|
|
|
|
AC_SUBST([LIBXML2_LIBS])
|
|
AC_SUBST([LIBXML2_CFLAGS])
|
|
|
|
|
|
## ----------------- ##
|
|
## Language bindings ##
|
|
## ----------------- ##
|
|
|
|
BINDINGS=""
|
|
BINDING_ALL=""
|
|
BINDING_CHECK=""
|
|
BINDING_CLEAN=""
|
|
BINDING_DISTCLEAN=""
|
|
BINDING_DISTCHECK=""
|
|
BINDING_INSTALL_EXEC=""
|
|
BINDING_UNINSTALL=""
|
|
BINDING_LIST=""
|
|
BINDING_LIB_TARGETS=""
|
|
|
|
|
|
dnl Check if cxx-binding not wanted, default is to build it
|
|
|
|
# C++ binding
|
|
AC_MSG_CHECKING([whether to build C++ binding and demo])
|
|
AC_ARG_WITH([cxx-binding],
|
|
[AS_HELP_STRING([--without-cxx-binding],
|
|
[do not build C++ binding and demo @<:@default=yes@:>@])],
|
|
[cf_with_cxx_binding=$withval],
|
|
[cf_with_cxx_binding=$cf_with_cxx])
|
|
AC_MSG_RESULT([$cf_with_cxx_binding])
|
|
|
|
AS_IF([test x"${cf_with_cxx_binding}" = "xyes"],
|
|
[BINDINGS="${BINDINGS} c++"])
|
|
|
|
|
|
dnl Check if perl-binding is wanted, default is to not build it
|
|
|
|
# Perl binding
|
|
AC_MSG_CHECKING([whether to build perl binding and demo])
|
|
AC_ARG_WITH([perl-binding],
|
|
[AS_HELP_STRING([--with-perl-binding],
|
|
[build perl binding and demo @<:@default=no@:>@])],
|
|
[cf_with_perl_binding=$withval],
|
|
[cf_with_perl_binding=no])
|
|
AC_MSG_RESULT([$cf_with_perl_binding])
|
|
|
|
dnl SC_PATH_PERLINC from macros/perl.m4
|
|
AS_IF([test x"${cf_with_perl_binding}" = "xyes"],[
|
|
SC_PATH_PERLINC
|
|
BINDING_LIST="${BINDING_LIST} perl"
|
|
BINDING_ALL="${BINDING_ALL} all-perl"
|
|
BINDING_CHECK="${BINDING_CHECK} check-perl"
|
|
BINDING_CLEAN="${BINDING_CLEAN} clean-perl"
|
|
BINDING_DISTCLEAN="${BINDING_DISTCLEAN} distclean-perl"
|
|
BINDING_DISTCHECK="${BINDING_DISTCHECK} distcheck-perl"
|
|
BINDING_INSTALL_EXEC="${BINDING_INSTALL_EXEC} install-perl"
|
|
BINDING_UNINSTALL="${BINDING_UNINSTALL} uninstall-perl"
|
|
])
|
|
|
|
AM_CONDITIONAL([ENABLE_PERL], [test x"${cf_with_perl_binding}" = "xyes"])
|
|
|
|
|
|
dnl Check for python availability, so we can enable HamlibPy
|
|
# Python bindings
|
|
AC_MSG_CHECKING([whether to build python binding and demo])
|
|
AC_ARG_WITH([python-binding],
|
|
[AS_HELP_STRING([--with-python-binding],
|
|
[build python binding and demo @<:@default=no@:>@])],
|
|
[cf_with_python_binding=$withval],
|
|
[cf_with_python_binding=no])
|
|
AC_MSG_RESULT([$cf_with_python_binding])
|
|
|
|
dnl AX_PYTHON_DEVEL from macros/ax_python_devel.m4
|
|
AS_IF([test x"${cf_with_python_binding}" = "xyes"],[
|
|
AM_PATH_PYTHON([2.1],, [:])
|
|
AX_PYTHON_DEVEL
|
|
|
|
BINDING_LIST="${BINDING_LIST} python"
|
|
BINDING_ALL="${BINDING_ALL} all-py"
|
|
BINDING_CHECK="${BINDING_CHECK} check-py"
|
|
BINDING_CLEAN="${BINDING_CLEAN} clean-py"
|
|
BINDING_DISTCLEAN="${BINDING_DISTCLEAN} distclean-py"
|
|
BINDING_INSTALL_EXEC="${BINDING_INSTALL_EXEC} install-py"
|
|
BINDING_UNINSTALL="${BINDING_UNINSTALL} uninstall-py"
|
|
BINDING_LIB_TARGETS="${BINDING_LIB_TARGETS} \$(python_ltlib)"])
|
|
|
|
AM_CONDITIONAL([ENABLE_PYTHON], [test x"${cf_with_python_binding}" = "xyes"])
|
|
|
|
|
|
# Tcl binding
|
|
AC_MSG_CHECKING([Whether to build Tcl bindings and demos])
|
|
AC_ARG_WITH([tcl-binding],
|
|
[AS_HELP_STRING([--with-tcl-binding],
|
|
[build Tcl binding and demo @<:@default=no@:>@])],
|
|
[build_tcl=$withval],
|
|
[build_tcl=no])
|
|
AC_MSG_RESULT([$build_tcl])
|
|
|
|
dnl SC_PATH_TCLCONFIG and SC_LOAD_TCLCONFIG from macros/tcl.m4
|
|
AS_IF([test x"${build_tcl}" = "xyes"],[
|
|
SC_PATH_TCLCONFIG
|
|
SC_LOAD_TCLCONFIG
|
|
|
|
tcl_save_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS="$CPPFLAGS $TCL_INCLUDE_SPEC"
|
|
AC_CHECK_HEADERS([tcl.h],
|
|
[],
|
|
[AC_MSG_ERROR([Unable to find Tcl headers])])
|
|
CPPFLAGS=$tcl_save_CPPFLAGS
|
|
|
|
BINDING_LIST="${BINDING_LIST} tcl"
|
|
BINDING_ALL="${BINDING_ALL} all-tcl"
|
|
BINDING_CHECK="${BINDING_CHECK} check-tcl"
|
|
BINDING_CLEAN="${BINDING_CLEAN} clean-tcl"
|
|
BINDING_DISTCLEAN="${BINDING_DISTCLEAN} distclean-tcl"
|
|
BINDING_INSTALL_EXEC="${BINDING_INSTALL_EXEC} install-tcl"
|
|
BINDING_UNINSTALL="${BINDING_UNINSTALL} uninstall-tcl"
|
|
BINDING_LIB_TARGETS="${BINDING_LIB_TARGETS} \$(tcl_ltlib)"])
|
|
|
|
AM_CONDITIONAL([ENABLE_TCL], [test x"${build_tcl}" = "xyes"])
|
|
AC_SUBST([TCL_LIB_SPEC])
|
|
AC_SUBST([TCL_INCLUDE_SPEC])
|
|
AC_SUBST([TCL_SHLIB_SUFFIX])
|
|
|
|
dnl Check for lua availability, so we can enable HamlibLua
|
|
# Lua bindings
|
|
AC_MSG_CHECKING([whether to build lua binding and demo])
|
|
AC_ARG_WITH([lua-binding],
|
|
[AS_HELP_STRING([--with-lua-binding],
|
|
[build lua binding and demo @<:@default=no@:>@])],
|
|
[cf_with_lua_binding=$withval],
|
|
[cf_with_lua_binding=no])
|
|
AC_MSG_RESULT([$cf_with_lua_binding])
|
|
|
|
dnl AX_LUA_DEVEL from macros/ax_lua_devel.m4
|
|
AS_IF([test x"${cf_with_lua_binding}" = "xyes"],[
|
|
|
|
AX_PROG_LUA([5.2], [5.4])
|
|
AX_LUA_HEADERS
|
|
AX_LUA_LIBS
|
|
|
|
BINDING_LIST="${BINDING_LIST} lua"
|
|
BINDING_ALL="${BINDING_ALL} all-lua"
|
|
BINDING_CHECK="${BINDING_CHECK} check-lua"
|
|
BINDING_CLEAN="${BINDING_CLEAN} clean-lua"
|
|
BINDING_DISTCLEAN="${BINDING_DISTCLEAN} distclean-lua"
|
|
BINDING_INSTALL_EXEC="${BINDING_INSTALL_EXEC} install-lua"
|
|
BINDING_UNINSTALL="${BINDING_UNINSTALL} uninstall-lua"
|
|
BINDING_LIB_TARGETS="${BINDING_LIB_TARGETS} \$(lua_ltlib)"])
|
|
|
|
AM_CONDITIONAL([ENABLE_LUA], [test x"${cf_with_lua_binding}" = "xyes"])
|
|
|
|
dnl Only search for Swig if one or more bindings are enabled.
|
|
AS_IF([test "x${BINDING_ALL}" != "x"],
|
|
[# macros/ax_pkg_swig.m4
|
|
AX_PKG_SWIG([1.3.22],
|
|
[BINDINGS="${BINDINGS} bindings"
|
|
cf_with_bindings="yes"],
|
|
[AC_MSG_ERROR([SWIG is required to build bindings...])
|
|
])],
|
|
[cf_with_bindings="no"])
|
|
|
|
AC_MSG_CHECKING([whether to build bindings])
|
|
AC_MSG_RESULT([$cf_with_bindings])
|
|
|
|
AC_SUBST([BINDINGS])
|
|
AC_SUBST([BINDING_ALL])
|
|
AC_SUBST([BINDING_CHECK])
|
|
AC_SUBST([BINDING_CLEAN])
|
|
AC_SUBST([BINDING_DISTCLEAN])
|
|
AC_SUBST([BINDING_DISTCHECK])
|
|
AC_SUBST([BINDING_INSTALL_EXEC])
|
|
AC_SUBST([BINDING_UNINSTALL])
|
|
AC_SUBST([BINDING_LIST])
|
|
AC_SUBST([BINDING_LIB_TARGETS])
|
|
|
|
|
|
## ----------------- ##
|
|
## Optional backends ##
|
|
## ----------------- ##
|
|
|
|
dnl Winradio only under Linux (until someone ports it on other os)
|
|
AC_MSG_CHECKING([whether to build winradio backend])
|
|
AC_ARG_ENABLE([winradio],
|
|
[AS_HELP_STRING([--disable-winradio],
|
|
[do not build winradio backend @<:@default=yes@:>@])],
|
|
[cf_with_winradio="no"],
|
|
[cf_with_winradio="yes" AC_DEFINE([HAVE_WINRADIO],[1],[Define if winradio backend is built])])
|
|
AC_MSG_RESULT([$cf_with_winradio])
|
|
|
|
DL_LIBS=""
|
|
|
|
AS_IF([test x"${cf_with_winradio}" = "xyes"],
|
|
[BACKEND_LIST="$BACKEND_LIST winradio"
|
|
dnl Check for libdl and set DL_LIBS if found--used for linradio WR-G313 backend.
|
|
AC_CHECK_LIB([dl], [dlopen], [DL_LIBS="-ldl"],
|
|
[AC_MSG_WARN([dlopen was not found in libdl--linradio backend will be disabled])])
|
|
])
|
|
|
|
dnl Set conditional compilation for G-313.
|
|
AS_CASE(["$host_os"],
|
|
[mingw* | pw32* | cygwin ], [
|
|
AM_CONDITIONAL(G313_LINUX_GNU, false)
|
|
AM_CONDITIONAL(G313_WINDOWS, true)
|
|
],
|
|
dnl As g313-posix.c has a hard dependency on linux/types.h
|
|
dnl via linradio/wrg313api.h, disable compilation on other POSIX.
|
|
dnl (Certain systems have extra characters following "-gnu" such as
|
|
dnl the Raspberry Pi which is "linux-gnueabihf"; presume that "linux-gnu"
|
|
dnl is a sufficient test.)
|
|
[ *linux-gnu* ], [
|
|
AM_CONDITIONAL(G313_LINUX_GNU, true)
|
|
AM_CONDITIONAL(G313_WINDOWS, false)
|
|
],
|
|
[
|
|
AM_CONDITIONAL(G313_LINUX_GNU, false)
|
|
AM_CONDITIONAL(G313_WINDOWS, false)
|
|
AC_DEFINE([OTHER_POSIX], [1], [Compilation on POSIX other than Linux])
|
|
])
|
|
|
|
dnl If libdl is present, check for its header file.
|
|
AS_IF([test x"${DL_LIBS}" = "x-ldl"],
|
|
[AC_CHECK_HEADERS([dlfcn.h])])
|
|
|
|
AC_SUBST([DL_LIBS])
|
|
|
|
|
|
dnl stuff that requires C++ support
|
|
AS_IF([test x"${cf_with_usrp}" = "xyes"],[
|
|
PKG_CHECK_MODULES([USRP],
|
|
[usrp >= 0.8],
|
|
[AC_DEFINE([HAVE_USRP],[1],[Define if usrp is available])
|
|
])
|
|
])
|
|
|
|
AM_CONDITIONAL([HAVE_USRP], [test x"${cf_with_usrp}" = "xyes"])
|
|
|
|
|
|
## -------------------------------- ##
|
|
## Prepare rig backend dependencies ##
|
|
## -------------------------------- ##
|
|
|
|
dnl otherwise parallel 'make -jn' will fail
|
|
|
|
for be in ${BACKEND_LIST} ; do
|
|
BACKENDEPS="${BACKENDEPS} \$(top_builddir)/${be}/libhamlib-${be}.la"
|
|
done
|
|
|
|
AC_SUBST([BACKEND_LIST])
|
|
AC_SUBST([BACKENDEPS])
|
|
|
|
|
|
## ---------------------------------- ##
|
|
## Prepare rotor backend dependencies ##
|
|
## ---------------------------------- ##
|
|
|
|
# otherwise parallel 'make -jn' will fail
|
|
|
|
for be in ${ROT_BACKEND_LIST} ; do
|
|
ROT_BACKENDEPS="${ROT_BACKENDEPS} \$(top_builddir)/${be}/libhamlib-${be}.la"
|
|
done
|
|
|
|
AC_SUBST([ROT_BACKEND_LIST])
|
|
AC_SUBST([ROT_BACKENDEPS])
|
|
|
|
|
|
## ------------ ##
|
|
## Final output ##
|
|
## ------------ ##
|
|
|
|
dnl Output accumulated flags to the Makefile files.
|
|
AC_SUBST([AM_CPPFLAGS])
|
|
AC_SUBST([AM_CFLAGS])
|
|
AC_SUBST([AM_CXXFLAGS])
|
|
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
macros/Makefile
|
|
include/Makefile
|
|
lib/Makefile
|
|
dummy/Makefile
|
|
yaesu/Makefile
|
|
icom/Makefile
|
|
icmarine/Makefile
|
|
aor/Makefile
|
|
kenwood/Makefile
|
|
winradio/Makefile
|
|
pcr/Makefile
|
|
alinco/Makefile
|
|
uniden/Makefile
|
|
tentec/Makefile
|
|
kachina/Makefile
|
|
jrc/Makefile
|
|
drake/Makefile
|
|
lowe/Makefile
|
|
rft/Makefile
|
|
rs/Makefile
|
|
kit/Makefile
|
|
tapr/Makefile
|
|
skanti/Makefile
|
|
prm80/Makefile
|
|
wj/Makefile
|
|
racal/Makefile
|
|
tuner/Makefile
|
|
ars/Makefile
|
|
easycomm/Makefile
|
|
fodtrack/Makefile
|
|
gs232a/Makefile
|
|
heathkit/Makefile
|
|
spid/Makefile
|
|
sartek/Makefile
|
|
src/Makefile
|
|
c++/Makefile
|
|
bindings/Makefile
|
|
bindings/hamlibvb.bas
|
|
tests/Makefile
|
|
doc/Makefile
|
|
doc/hamlib.cfg
|
|
rotorez/Makefile
|
|
flexradio/Makefile
|
|
m2/Makefile
|
|
amsat/Makefile
|
|
adat/Makefile
|
|
ts7400/Makefile
|
|
celestron/Makefile
|
|
cnctrk/Makefile
|
|
ether6/Makefile
|
|
scripts/Makefile
|
|
android/Makefile
|
|
prosistel/Makefile
|
|
dorji/Makefile
|
|
hamlib.pc])
|
|
|
|
AC_OUTPUT
|
|
|
|
echo \
|
|
"----------------------------------------------------------------------
|
|
|
|
${PACKAGE_NAME} Version ${PACKAGE_VERSION} configuration:
|
|
|
|
Prefix ${prefix}
|
|
Preprocessor ${CPP} ${CPPFLAGS}
|
|
C Compiler ${CC} ${CFLAGS}
|
|
C++ Compiler ${CXX} ${CXXFLAGS}
|
|
|
|
Package features:
|
|
With C++ binding ${cf_with_cxx_binding}
|
|
With Perl binding ${cf_with_perl_binding}
|
|
With Python binding ${cf_with_python_binding}
|
|
With TCL binding ${build_tcl}
|
|
With Lua binding ${cf_with_lua_binding}
|
|
With rigmem XML support ${cf_with_xml_support}
|
|
With Readline support ${cf_with_readline_support}
|
|
|
|
Enable HTML rig feature matrix ${cf_enable_html_matrix}
|
|
Enable WinRadio ${cf_with_winradio}
|
|
Enable USRP ${cf_with_usrp}
|
|
Enable USB backends ${cf_with_libusb}
|
|
Enable shared libs ${enable_shared}
|
|
Enable static libs ${enable_static}
|
|
|
|
-----------------------------------------------------------------------"
|