* Added new rotor module (18) for Meade telescope rotors
* Implemented all needed rotor functions
* Added README.md
* Tested with DS-2000 Rotor with Autostar 494 and 506 serial cable
* Tested on Linux (Debian) with rotctl and gpredict
Because some rigs lock their front panel when opened for CAT it is
helpful to call rig_close() in rigctld when no clients are
connected. This change does that.
A CTRL+C handler is also added to allow rig_close() to be called
during exit.
Remove execute bits for all test scripts and install them into
doc/examples.
Make sure check-py and check-tcl targets work.
Set a conditional for Python3 or Python2 and install/test the correct
script file.
Use Makefile variables instead of configure substitutions wherever
possible.
Generate tcltest.tcl at make time to insert installation library path
into the script so that tests pass.
Also reorder its call in configure.ac which now allows the PYTHON_VERSION
environment variable to be recognized and processed correctly by the
build system.
Correctly add PYTHON_LIBS (correct ouput variable of AX_PYTHON_DEVEL) to the
Makefile for the Python bindings.
Update README.python for use of PYTHON_VERSION.
Although there is no reasonable recovery from SIGPIPE we do not want
to terminate the server process, just the client servicing thread. We
do this by setting the disposition for SIGPIPE to ignored, this causes
an EPIPE to be returned from blocked write() and send() calls that end
up trying to send to a broken pipe/socket.
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.
Some distributions--Debian and Alpine tested--put libusb.h under the
libusb-1.0 directory. Test for its presence and if found define
HAVE_LIBUSB_1_0_LIBUSB_H. Also test for HAVE_LIBUSB or
HAVE_LIBUSB_1_0_LIBUSB_H and conditionally include the correct header
file in the sources.
While the Winradio G313 backend wasn't being compiled on a non-Linux
POSIX system, the register function in winradio.c was which caused an
error linking rigctl. Also, the host_os test in the configure script
now looks for a string containg "*linux-gnu*" which accepts such systems
as the Raspberry Pi which is defined as "linux-gnueabihf".
Thanks to Lorenzo Simoncello, IW3HER, for reporting this build error on
the Raspberry Pi.
Clean up various left over commented lines from dlopen to single
libhamlib transition. Remove unneeded configure variables.
Correct minor inconsistencies in Makefile.am files.
Define a new variable, READLINE_LIBS, so that only programs that offer
Readline support are linked against it.
Fix various compilation warnings and errors in test files revealed with
'make check' on MinGW.
Define rig and rotor backends to (mostly) be built in alphabetical
order.
Split G313 sources into POSIX and Windows versions and use Automake
conditionals for building on *linux-gnu or mingw*, pw32*, or cygwin
platforms.
Fixed dlopen issue on g313 backend which broke rigmatrix generation.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
Use AC_CHECK_LIB macro to search for libusb rather than rely on
pkg-config. Preserve environment variables LIBUSB_CFLAGS and
LIBUSB_LIBS as user precious variables. Two features,
--with-xml-support and --enable-usrp still rely on pkg-config so only
invoke pkg-config when either or both of these features are selected.
Only the Winradio g313 model uses libdl so test for it only when
Winradio backend is enabled.
Use AC_SUBST variables for generating hamlib.pc based on local
configuration of Hamlib.
Rework libusb pkg-config section and set LIBUSB as an AC_SUBST variable.
With the new registration code set the HAVE_WINRADIO preprocessor
conditional if the winradio backend is to be built and test this
conditional in src/register.c whether to build winradio support.
No longer depend on libltdl from the libtool package. The
winradio/linradio/wg313api backend still depends on libdl, but since it
is only compiled on POSIX, it will use the POSIX supplied libdl.
Update documentation to remove references to libltdl.
Moved all backend *.h files into the SOURCES primary as Automake
documentation states all source file types should be listed. This
causes Automake to include *.h files in rebuild rules for the targets.
Removed the '-DIN_HAMLIB' assignment from the CFLAGS primary in each
backend and assigned it to AM_CPPFLAGS in configure.ac. The effect is
the same and it simplifies the backend Makefile.am files.
Removed all commented lines.
Use the system gettaddrinfo function when possible as before. Tested on
GNU, Cygwin, MinGW on Linux, and MinGW on Windows. Under MinGW the
replacement getaddrinfo is used. Perhaps this is an area for
investigation to be certain MinGW really doesn't supply getaddrinfo.
This reverts some of the patches from Remi Chateauneu in commit
60019c9. This fixes build issues encountered building the Windows
binary daily snapshots.
Enabled static library build by default at configure time.
Fixed pthread library linking for the ars backend on MinGW.
I have now written a new rotor control based on an Atmel ethernet board
and used with me. It works well so far.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
The Automake manual makes it clear that certain user variables such as
CC, CFLAGS, CXXFLAGS, CPPFLAGS, and so on are to be preserved for the
user running configure. This patch cleans up such assignments and
assures that PTHREAD_CFLAGS and so forth are applied to those targets
that require it.
Trying to run the pthread enabled binaries on W2k resulted in an error
dialog with the text, "The procedure entry point freeaddrinfo could not be
located in ws2_32.dll". A Microsoft support page
(http://support.microsoft.com/kb/955045) hints that when 'ws2tcpip.h' is
included that 'wspiapi.h' should be included as well. Since MinGw
includes both files, this patch corrects the runtime error on W2k
Android makefile fragments are distributed as extra distribution files
by the GNU build system but are otherwise ignored. The Android build
support is independent and does not rely on the GNU build system.
See android/README.android for more info.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
Building libltdl recursively now eliminates the second 'configure' run
inside the libltdl directory and requires the distribution of fewer
files and quiets compilation.
Also, if the 'configure' option '--with-included-ltdl' is not passed and
a system libltdl is found, the included libltdl directory will not even
be built. Only when the included libltdl is needed will it be built.
Merge in initial draft of Hamlib manual written in texinfo.
Output in info, HTML, and PDF formats is supported and included
in distribution tarballs from now on.
Hi all,
just found a minor problem in the configure.ac file for hamlib 1.2.15.3.
Back in 2007 Stephane added some checks to make the build system
respect pthreads (see commit from 11 Sep 2007). In that he added some
line to modify CFLAGS and CXXFLAGS (see lines 87.. in configure.ac)
ACX_PTHREAD
if test x"$acx_pthread_ok" = xyes; then
CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}"
CXXFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}"
fi
These code let the build system ignore the CXXFLAGS setting by replacing
it by CFLAGS. I just checked that these error affects only the
building of the c++ bindings. So it shoudl be easy to fix.
Correct version should do
CXXFLAGS="${CXXFLAGS} ${PTHREAD_CFLAGS}"
instead. See the attached patch.
73, de Tom DL1JBE.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
Note that this bug that affected the Hamlib-1.2.15 and earlier branches
also has affected the master branch. This is now corrected and CXXFLAGS
is preserved through configure.ac.
If pkg-config is not installed, a very cryptic error occurs when
autogen.sh runs the configure script. Add a check from:
http://lists.gnu.org/archive/html/automake/2011-03/msg00008.html
to check for pkg-config presence and if pkg-config is not found, a stub
macro disables any configuration of any feature relying on its presence.
Various fixes for building the bindings properly.
Install TCL binding to $(libdir)/tcl/Hamlib, arbitrarily chosen since
there seems to be no standard installation location. When install
location is changed, tcltest.tcl documents the needed change to a TCL
script.
In the Perl and Python test scripts, improved the QRA examples. In all
scripts used tabs to line up printed values nicely.
Updated INSTALL and NEWS for recent updates. Better documented bindings
installation and uninstallation in INSTALL.
Use ax_pkg_swig.m4 from the GNU Autoconf Macro Archive as it is actively
maintained and update configure.ac accordingly.
Moved the Swig test to the bindings section of configure.ac.
Refactored the logic of the Swig test.
Updated ax_python_devel.m4 to latest version in the Autoconf Macro
Archive (removes two email addresses, not other changes).
Removed aclocal-include.m4 and lf_warnings.m4 as they were not being
used any longer.
Update macros definitions in macros/Makefile.am to recent additions and
deletion of the local macro files.
A Perl file was being compile whether Perl binding was enabled or not.
Fixed that and configured an AM_CONDITIONAL for Perl so its components
will not be built when it is not enabled.
As AC_CHECK_HEADERS and AC_CHECK_FUNCS take multiple file names,
consolidate the multiple macro calls into a single call for each.
Remove the last obsolescent macro calls.
If libgd-dev is not installed, an Automake conditional will disable the
rigmatrix.html target in tests/Makefile. Optionally, this target may
also be disabled by use of the '--disable-html-matrix' option passed to
the configure script. By default the configure script will enable the
target if the libgd development files are found and disable it when they
are not.
Static libs are generally not wanted so disable their builds by default.
Remove references to '--disable-static' from documentation and example
scripts.
I found that building on Cygwin that when libxml2 is installed, MSYS
fails the compile as libxml2 is installed outside the MSYS idea of
'root'. As this feature depends on an external library, give user the
option of compiling with this support. Default is to not build rigmem
with XML support.
Use the libtool link mode argument '-version-info' to set the Hamlib 3
ABI to be compatible with Hamlib 1.2 ABI. As the current ABI has not
been changed or removed, we should be able to maintain backward
compatibility. The libtool docs state that so long as the ABI is only
added to, backward compatibility should be maintained.
My idea here is to be able to have presently compiled programs be able
to use binary libraries of Hamlib 3 without recompiling. So far I have
tested this locally on Linux and Windows. More testing is welcome.
Initializing libltdl is now done by the LTDL_INIT macro in configure.ac.
This now creates a libltdl directory in the tree (not tracked in Git)
when autoreconf is run. The downside is that this complicates the build
a little bit with the advantage that the build can now take place on a
system that does not have libltdl-dev installed as Hamlib will build on
such systems by passing the '--with-included-ltdl' flag to the configure
script. In particular, this simplifies the build on Linux for the mingw32
host by not having to run libtoolize manually and assures that libltdl
is built with the same build and host architectures as Hamlib.
Now check if '--with-included-ltdl' has been passed to configure and if
not, only then test for the presence of an installed ltdl.h.
Commented out AM_MAINTAINER_MODE macro. It is recommended by the
Automake manual that this macro and its configure options not be used as
the Autotools system is designed to regenerate its files. Let me know
if this is problem as it can be reversed easily enough. The autogen.sh
script no longer passes the '--enable-maintainer-mode' option to
configure when bootstrapping the build system from Git.
Minor edits in configure.ac to improve readability.
Updated build-win32 files in scripts/
Cleaned up M4sh syntax for variable quoting, replaced shell 'if'
conditionals with M4sh AS_IF macro and shell 'case' with AS_CASE macro.
Properly quoted macro variables. Added comments to configure.ac
describing actions, commented out obsolete macros, commented obsolecent
macros, and added comments for major sections.
Corrected a Mingw linker error on the .EXE files adding
'--enable-auto-import' to their LD flags. Testing this commit on win32
shows that rigctld is now working properly. Will need to port this to
the Stable branch and test.
Replaced older local macros with newer replacements from GNU Autoconf
archive.
Using the -Wall switch to autoconf/autoreconf revealed a number of
obsolete macros. At the moment, offending macros have been commented
out using 'dnl'. They will be removed at some later date.
From Øystein Hårberg, LA7LKA, a backend for a rotor based on the TS-7400
embedded ARM board running Linux from http://www.embeddedarm.com/
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
Updated README.release procedure and configure.ac for Windows DLL (mingw32)
build. Now that hamlib no longer bundles libltdl (libtool), libltdl must
be imported, configured with --host-i586-mingw32msvc, and built (before
configuring hamlib with --host-i586-mingw32msvc).
Master branch, a.k.a. "trunk" branch for main development, will now have
its numeric version string appended by '~git'. Per Kamal Mostafa,
KA6MAL, the use of the '~' character causes packaging systems to treat
the version string as an ealier release. e.g. The Debian packaging
system treats 1.2.14~git as earlier than 1.2.14 which is useful to
avoid confusion after release.
Stop the build at configure time if we can't find ltdl.h in the standard
include paths, and advise installation of libltdl development package.
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3060 7ae35d74-ebe9-4afe-98af-79ac388436b8