mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-21 02:17:21 +00:00
099cc7fc48
Use GOTO mode when setting position. Use cache for CPR (Counts Per Revolution) because it is hardcoded for the motor
979 lines
30 KiB
Plaintext
979 lines
30 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.69])
|
|
|
|
|
|
## ------------------------ ##
|
|
## 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],[4.6~git],[hamlib-developer@lists.sourceforge.net],[hamlib],[http://www.hamlib.org])
|
|
#AC_INIT([PRODUCT_NAME], [Hamlib])
|
|
#AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE])
|
|
|
|
AC_CONFIG_SRCDIR([include/hamlib/rig.h])
|
|
AC_CONFIG_MACRO_DIR([macros])
|
|
AC_CONFIG_HEADERS([include/hamlib/config.h])
|
|
|
|
dnl Place build system provided programs in this directory.
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
|
|
|
|
## ------------------------ ##
|
|
## 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. ##
|
|
## ------------------------------ ##
|
|
AC_ARG_ENABLE([shared],
|
|
[AS_HELP_STRING([--enable-shared],
|
|
[Enable shared libraries @<:@default=yes@:>@])],
|
|
[enable_shared=$enableval],
|
|
[enable_shared=yes])
|
|
AC_ARG_ENABLE([static],
|
|
[AS_HELP_STRING([--enable-static],
|
|
[Enable static libraries @<:@default=check@:>@])],
|
|
[enable_static=$enableval],
|
|
[enable_static=check])
|
|
|
|
AS_IF([test "x$enable_static" = "xyes"], [
|
|
enable_shared=no
|
|
])
|
|
AS_IF([test "x$enable_static" = "xyes" && test "x$enable_shared" = "xyes"], [
|
|
AC_MSG_ERROR([Both --enable-static and --enable-shared cannot be enabled at the same time.])
|
|
])
|
|
|
|
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".
|
|
RIG_BACKEND_LIST="rigs/adat rigs/alinco rigs/aor rigs/barrett rigs/codan rigs/dorji rigs/drake rigs/dummy rigs/elad rigs/flexradio rigs/icom rigs/icmarine rigs/jrc rigs/kachina rigs/kenwood rigs/kit rigs/lowe rigs/pcr rigs/prm80 rigs/racal rigs/rft rigs/rs rigs/skanti rigs/tapr rigs/tentec rigs/tuner rigs/uniden rigs/winradio rigs/wj rigs/yaesu rigs/gomspace rigs/mds rigs/anytone rigs/motorola rigs/commradio"
|
|
ROT_BACKEND_LIST="rotators/amsat rotators/apex rotators/ars rotators/celestron rotators/cnctrk rotators/grbltrk rotators/easycomm rotators/ether6 rotators/flir rotators/fodtrack rotators/gs232a rotators/heathkit rotators/m2 rotators/meade rotators/rotorez rotators/sartek rotators/saebrtrack rotators/spid rotators/ts7400 rotators/prosistel rotators/ioptron rotators/satel rotators/skywatcher rotators/radant"
|
|
# Amplifiers are all in the amplifiers directory
|
|
AMP_BACKEND_LIST="amplifiers/elecraft amplifiers/gemini amplifiers/expert"
|
|
|
|
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=4
|
|
ABI_REVISION=6
|
|
ABI_PATCH=0
|
|
ABI_AGE=0
|
|
|
|
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_DEFINE_UNQUOTED([ABI_VERSION_MAJOR], [$ABI_VERSION], [Frontend Major version])
|
|
AC_DEFINE_UNQUOTED([ABI_VERSION_MINOR], [$ABI_REVISION], [Frontend Minor version])
|
|
AC_DEFINE_UNQUOTED([ABI_VERSION_PATCH], [$ABI_PATCH], [Frontend Patch version])
|
|
|
|
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 -I\$(top_builddir)/include -I\$(top_srcdir)/include/hamlib -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
|
|
|
|
|
|
## --------------- ##
|
|
## 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 \
|
|
sys/select.h glob.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_CHECK_TYPES([siginfo_t],[],[],[[#include <signal.h>]])
|
|
AC_CHECK_TYPES([sig_atomic_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 -liphlpapi"],
|
|
[],
|
|
[])
|
|
])
|
|
|
|
# Winsock2 32 bit
|
|
AC_CHECK_FUNC([timeBeginPeriod],
|
|
[],
|
|
[AC_CHECK_LIB([winmm],
|
|
[main],
|
|
[NET_LIBS="$NET_LIBS -lwinmm"],
|
|
[],
|
|
[])
|
|
])
|
|
|
|
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 signal \
|
|
snprintf socket sqrt strchr strdup strerror strncasecmp strrchr strstr strtol \
|
|
glob socketpair ])
|
|
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. ##
|
|
## ------------------------ ##
|
|
|
|
AR_FLAGS="cr"
|
|
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])
|
|
LT_LANG([Windows Resource])
|
|
|
|
|
|
## -------------------------- ##
|
|
## Custom host configurations ##
|
|
## -------------------------- ##
|
|
|
|
dnl The host_os variable is set by the AC_CANONICAL_HOST macro above.
|
|
AM_CONDITIONAL([VERSIONDLL], false)
|
|
AS_CASE(["$host_os"],
|
|
[freebsd*], [
|
|
AM_CPPFLAGS="${AM_CPPFLAGS} -I/usr/local/include"
|
|
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*], [
|
|
AM_CONDITIONAL([VERSIONDLL], true)
|
|
WINLDFLAGS="-Wl,--output-def,libhamlib.def -Wl,--add-stdcall-alias"
|
|
VERSIONDLL="version_dll.rc"
|
|
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 initializers."
|
|
"Have you considered GCC lately?."])
|
|
])
|
|
|
|
dnl Check for libusb, treat LIBUSB_LIBS and LIBUSB_CFLAGS as precious variables
|
|
AC_MSG_CHECKING([whether to build USB dependent backends])
|
|
AC_ARG_WITH([libusb],
|
|
[AS_HELP_STRING([--without-libusb],
|
|
[disable USB dependent backends @<:@default=yes@:>@])],
|
|
[cf_with_libusb=no],
|
|
[cf_with_libusb=yes]
|
|
)
|
|
|
|
AC_MSG_RESULT([$cf_with_libusb])
|
|
AM_CONDITIONAL([HAVE_LIBUSB], [test x"${cf_with_libusb}" = "xyes"])
|
|
|
|
LIBUSB=""
|
|
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))])
|
|
|
|
AS_IF([test x"${cf_with_libusb}" = "xyes"], [
|
|
AS_IF([test -z $LIBUSB_LIBS],
|
|
[AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBUSB_LIBS="-lusb-1.0"],
|
|
[AC_MSG_WARN([libusb_init was not found in libusb-1.0--USB backends will be disabled])]
|
|
[cf_with_libusb="no"])
|
|
], [cf_with_libusb="yes"])
|
|
|
|
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 INDI support in rigctl/rotctl is wanted
|
|
AC_MSG_CHECKING([whether to use INDI in rigctl/rotctl])
|
|
#AS_IF([test x"${cf_with_cxx_binding}" = "xyes"], [
|
|
AC_ARG_WITH([indi],
|
|
[AS_HELP_STRING([--without-indi],
|
|
[disable INDI in rigctl/rotctl @<:@default=yes@:>@])],
|
|
[cf_with_indi_support=yes],
|
|
[cf_with_indi_support=no]
|
|
)
|
|
#])
|
|
|
|
AS_IF([test x"$cf_with_indi_support" != "xno"], [
|
|
# INDI support needs a C++ compiler, tested for presence above.
|
|
AS_IF([test x"${cf_with_cxx}" != "xyes"], [
|
|
AC_MSG_WARN([INDI support needs a C++ compiler.])
|
|
cf_with_indi_support=no
|
|
])
|
|
])
|
|
|
|
AS_IF([test x"$cf_with_indi_support" != "xno"], [
|
|
# macros/ax_lib_nova.m4
|
|
AX_LIB_NOVA
|
|
|
|
AS_IF([test x"$ax_cv_lib_nova" = "xno"], [
|
|
AC_MSG_WARN([libnova support not found, required by INDI.])
|
|
cf_with_indi_support=no
|
|
])
|
|
|
|
AS_IF([test x"$ax_cv_lib_nova" != "xno"], [
|
|
# macros/ax_lib_indi.m4
|
|
AX_LIB_INDI
|
|
|
|
AS_IF([test x"$ax_cv_lib_indi" = "xno"], [
|
|
AC_MSG_WARN([INDI support not found.])
|
|
cf_with_indi_support=no
|
|
])
|
|
|
|
AS_IF([test x"$cf_with_indi_support" != "xno"], [
|
|
ROT_BACKEND_LIST="$ROT_BACKEND_LIST rotators/indi"
|
|
])
|
|
])
|
|
])
|
|
|
|
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])
|
|
AC_ARG_WITH([cxx-binding],
|
|
[AS_HELP_STRING([--without-cxx-binding],
|
|
[do not build C++ binding @<:@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])
|
|
AC_ARG_WITH([perl-binding],
|
|
[AS_HELP_STRING([--with-perl-binding],
|
|
[build perl binding @<:@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])
|
|
AC_ARG_WITH([python-binding],
|
|
[AS_HELP_STRING([--with-python-binding],
|
|
[build python binding @<:@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"],[
|
|
dnl Order matters! AX_PYTHON_DEVEL must be first for PYTHON_VERSION to be honored.
|
|
AX_PYTHON_DEVEL([">='2.1'"])
|
|
AM_PATH_PYTHON([2.1],, [:])
|
|
|
|
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"])
|
|
|
|
dnl Determine whether to install pytest.py or py3test.py to $(docdir)/examples
|
|
AM_PYTHON_CHECK_VERSION([${PYTHON}], [3.0], [pyver_3="yes"], [pyver_3="no"])
|
|
AM_CONDITIONAL([PYVER_3], [test x"${pyver_3}" = x"yes"])
|
|
|
|
# Tcl binding
|
|
AC_MSG_CHECKING([Whether to build Tcl bindings])
|
|
AC_ARG_WITH([tcl-binding],
|
|
[AS_HELP_STRING([--with-tcl-binding],
|
|
[build Tcl binding @<:@default=no@:>@])],
|
|
[build_tcl=$withval],
|
|
[build_tcl=no])
|
|
AC_MSG_RESULT([$build_tcl])
|
|
|
|
dnl tcl.pc or SC_PATH_TCLCONFIG and SC_LOAD_TCLCONFIG from macros/tcl.m4
|
|
AS_IF([test x"${build_tcl}" = "xyes"],[
|
|
dnl Search for and load tcl.pc or tclConfig.sh.
|
|
PKG_CHECK_MODULES([TCL], [tcl],
|
|
[],
|
|
[
|
|
AC_MSG_WARN([Unable to find Tcl pkgconfig])
|
|
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"])
|
|
dnl These variables are set once tclConfig.sh is loaded.
|
|
AC_SUBST([TCL_VERSION])
|
|
AC_SUBST([TCL_LIB_SPEC])
|
|
AC_SUBST([TCL_INCLUDE_SPEC])
|
|
AC_SUBST([TCL_SHLIB_SUFFIX])
|
|
dnl These variables are set once tcl.pc is found.
|
|
AC_SUBST([TCL_LIBS])
|
|
AC_SUBST([TCL_CFLAGS])
|
|
|
|
|
|
dnl Check for lua availability, so we can enable HamlibLua
|
|
# Lua bindings
|
|
AC_MSG_CHECKING([whether to build lua binding])
|
|
AC_ARG_WITH([lua-binding],
|
|
[AS_HELP_STRING([--with-lua-binding],
|
|
[build lua binding @<:@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.5])
|
|
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([3.0.12],
|
|
[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])
|
|
|
|
dnl Parallel port device disable
|
|
AC_MSG_CHECKING([whether to build parallel port devices])
|
|
AC_ARG_ENABLE([parallel],
|
|
[AS_HELP_STRING([--disable-parallel],
|
|
[do not build parallel devices @<:@default=yes@:>@])],
|
|
[cf_with_parallel="no"],
|
|
[cf_with_parallel="yes" AC_DEFINE([HAVE_PARALLEL],[1],[Define if parallel devices are to be built])])
|
|
AC_MSG_RESULT([$cf_with_parallel])
|
|
|
|
DL_LIBS=""
|
|
|
|
AS_IF([test x"${cf_with_winradio}" = "xyes"],
|
|
[RIGS_BACKEND_LIST="$RIGS_BACKEND_LIST rigs/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])])
|
|
])
|
|
|
|
# Still need -ldl if we have it
|
|
AS_IF([test x"${cf_with_winradio}" = "xno"],
|
|
[RIGS_BACKEND_LIST="$RIGS_BACKEND_LIST"
|
|
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 check for c++11
|
|
AX_CXX_COMPILE_STDCXX([11],[noext],[mandatory])
|
|
|
|
|
|
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"])
|
|
|
|
AM_CONDITIONAL(BUILD_OS_IS_UBUNTU, [test x"$build_os" = ubuntu])
|
|
AM_CONDITIONAL(BUILD_OS_IS_FEDORA, [test x"$build_os" = fedora])
|
|
echo Build_OS is $build_os
|
|
|
|
|
|
|
|
## -------------------------------- ##
|
|
## Prepare rig backend dependencies ##
|
|
## -------------------------------- ##
|
|
|
|
dnl otherwise parallel 'make -jn' will fail
|
|
|
|
## ---------------------------------- ##
|
|
## Prepare rig backend dependencies ##
|
|
## ---------------------------------- ##
|
|
|
|
for be in ${RIG_BACKEND_LIST} ; do
|
|
RIGDIR=$(echo $be | awk -F "/" '{print $2}')
|
|
RIG_BACKENDEPS="${RIG_BACKENDEPS} \$(top_builddir)/rigs/${RIGDIR}/libhamlib-${RIGDIR}.la"
|
|
done
|
|
|
|
AC_SUBST([RIG_BACKEND_LIST])
|
|
AC_SUBST([RIG_BACKENDEPS])
|
|
|
|
|
|
## ---------------------------------- ##
|
|
## Prepare rotor backend dependencies ##
|
|
## ---------------------------------- ##
|
|
|
|
# otherwise parallel 'make -jn' will fail
|
|
|
|
for be in ${ROT_BACKEND_LIST} ; do
|
|
ROTDIR=$(echo $be | awk -F "/" '{print $2}')
|
|
ROT_BACKENDEPS="${ROT_BACKENDEPS} \$(top_builddir)/rotators/${ROTDIR}/libhamlib-${ROTDIR}.la"
|
|
done
|
|
|
|
AC_SUBST([ROT_BACKEND_LIST])
|
|
AC_SUBST([ROT_BACKENDEPS])
|
|
|
|
## ---------------------------------- ##
|
|
## Prepare amplifier backend dependencies ##
|
|
## ---------------------------------- ##
|
|
|
|
# otherwise parallel 'make -jn' will fail
|
|
|
|
for be in ${AMP_BACKEND_LIST} ; do
|
|
AMPDIR=$(echo $be | awk -F "/" '{print $2}')
|
|
AMP_BACKENDEPS="${AMP_BACKENDEPS} \$(top_builddir)/amplifiers/${AMPDIR}/libhamlib-${AMPDIR}.la"
|
|
done
|
|
|
|
AC_SUBST([AMP_BACKEND_LIST])
|
|
AC_SUBST([AMP_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
|
|
src/Makefile
|
|
security/Makefile
|
|
c++/Makefile
|
|
bindings/Makefile
|
|
doc/Makefile
|
|
doc/hamlib.cfg
|
|
rotators/amsat/Makefile
|
|
rotators/apex/Makefile
|
|
rotators/ars/Makefile
|
|
rotators/celestron/Makefile
|
|
rotators/cnctrk/Makefile
|
|
rotators/grbltrk/Makefile
|
|
rotators/easycomm/Makefile
|
|
rotators/ether6/Makefile
|
|
rotators/flir/Makefile
|
|
rotators/fodtrack/Makefile
|
|
rotators/gs232a/Makefile
|
|
rotators/heathkit/Makefile
|
|
rotators/ioptron/Makefile
|
|
rotators/m2/Makefile
|
|
rotators/meade/Makefile
|
|
rotators/prosistel/Makefile
|
|
rotators/rotorez/Makefile
|
|
rotators/sartek/Makefile
|
|
rotators/saebrtrack/Makefile
|
|
rotators/spid/Makefile
|
|
rotators/ts7400/Makefile
|
|
rotators/indi/Makefile
|
|
rotators/satel/Makefile
|
|
rotators/skywatcher/Makefile
|
|
rotators/radant/Makefile
|
|
rigs/adat/Makefile
|
|
rigs/alinco/Makefile
|
|
rigs/aor/Makefile
|
|
rigs/barrett/Makefile
|
|
rigs/codan/Makefile
|
|
rigs/commradio/Makefile
|
|
rigs/dorji/Makefile
|
|
rigs/drake/Makefile
|
|
rigs/dummy/Makefile
|
|
rigs/elad/Makefile
|
|
rigs/flexradio/Makefile
|
|
rigs/icmarine/Makefile
|
|
rigs/icom/Makefile
|
|
rigs/jrc/Makefile
|
|
rigs/kachina/Makefile
|
|
rigs/kenwood/Makefile
|
|
rigs/kit/Makefile
|
|
rigs/lowe/Makefile
|
|
rigs/pcr/Makefile
|
|
rigs/prm80/Makefile
|
|
rigs/racal/Makefile
|
|
rigs/rft/Makefile
|
|
rigs/rs/Makefile
|
|
rigs/skanti/Makefile
|
|
rigs/tapr/Makefile
|
|
rigs/tentec/Makefile
|
|
rigs/tuner/Makefile
|
|
rigs/uniden/Makefile
|
|
rigs/winradio/Makefile
|
|
rigs/wj/Makefile
|
|
rigs/yaesu/Makefile
|
|
rigs/gomspace/Makefile
|
|
rigs/mds/Makefile
|
|
rigs/anytone/Makefile
|
|
rigs/motorola/Makefile
|
|
tests/Makefile
|
|
scripts/Makefile
|
|
android/Makefile
|
|
amplifiers/elecraft/Makefile
|
|
amplifiers/gemini/Makefile
|
|
amplifiers/expert/Makefile
|
|
simulators/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}
|
|
With INDI support ${cf_with_indi_support}
|
|
|
|
Enable HTML rig feature matrix ${cf_enable_html_matrix}
|
|
Enable WinRadio ${cf_with_winradio}
|
|
Enable Parallel ${cf_with_parallel}
|
|
Enable USRP ${cf_with_usrp}
|
|
Enable USB backends ${cf_with_libusb}
|
|
Enable shared libs ${enable_shared}
|
|
Enable static libs ${enable_static}
|
|
|
|
-----------------------------------------------------------------------"
|