mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-21 10:27:18 +00:00
9210621c75
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.
298 lines
12 KiB
Plaintext
298 lines
12 KiB
Plaintext
Basic Installation
|
|
==================
|
|
|
|
For more information specific to Hamlib, please read the README as well as
|
|
README.betatester and the first part of README.developer to see which
|
|
additional development packages are needed. This source code distribution is
|
|
autoconfiguring and you should be able to compile it and install it without
|
|
manual interventions such as editing Makefiles, configuration files, and so
|
|
on. These are generic instructions for people who are not familiar with
|
|
installing autoconfiguring software (along with some Hamlib-specific
|
|
information).
|
|
|
|
The simplest way to compile this package is to enter the source code
|
|
main directory and do the following:
|
|
|
|
1. Configure the source code by typing:
|
|
|
|
$ ./configure
|
|
|
|
If you are planning to install the package into your home directory
|
|
or to a location other than `/usr/local' then add the flag
|
|
`--prefix=PATH' to `configure'. For example, if your home directory
|
|
is `/home/username' and you would like to install it to a directory
|
|
named 'local' you can configure the package to install itself
|
|
there by invoking:
|
|
|
|
$ ./configure --prefix=$HOME/local
|
|
|
|
The configure script has several options to configure Hamlib. See the
|
|
Optional Features section below.
|
|
|
|
While running, `configure' prints some messages telling you which
|
|
features it is checking for.
|
|
|
|
2. Compile the package by typing:
|
|
|
|
$ make
|
|
|
|
Running `make' takes a while. Since Hamlib is a package, now is the
|
|
time to go get a cup of coffee.
|
|
|
|
3. Some packages are bundled with self-tests for source-code verification.
|
|
If this package includes such tests, you can optionally run them after
|
|
compilation by typing
|
|
|
|
$ make check
|
|
|
|
4. Type `make install' to install the programs and any data files and
|
|
documentation. Type `make uninstall' to undo the installation.
|
|
|
|
N.B. Be aware that Super User (root) privileges will be required to
|
|
install to /usr/local or any other system location outside of your home
|
|
directory. Many distributions include the `sudo' command which will
|
|
permit you to install Hamlib after entering your password. Otherwise
|
|
you will need to log in as 'root'.
|
|
|
|
During installation, the following files go to the following directories:
|
|
Executables -> /prefix/bin
|
|
Libraries -> /prefix/lib
|
|
Public header files -> /prefix/include
|
|
Man pages -> /prefix/man/man?
|
|
Info files -> /prefix/info
|
|
Doc files -> /prefix/share/doc/<prog name>
|
|
Share files -> /prefix/share/<prog name>
|
|
where `prefix' is either `/usr/local' or the PATH that you specified
|
|
in the `--prefix' flag.
|
|
|
|
If any of these directories do not presently exist, they will be
|
|
created on demand.
|
|
|
|
If you are installing in your home directory make sure that
|
|
`/home/username/bin' is in your path. If you're using the bash shell
|
|
add these lines at the end of your .bashrc file:
|
|
|
|
PATH="/home/username/bin:${PATH}"
|
|
export PATH
|
|
|
|
If you are using csh or tcsh, then use this line instead:
|
|
|
|
setenv PATH /home/username/bin:${PATH}
|
|
|
|
By prepending your home directory to the rest of the PATH you can
|
|
override systemwide installed software with your own custom installation.
|
|
|
|
5. After installation you may need to update the ld.so.cache as the
|
|
installation files are placed in /usr/local/lib by default. On most
|
|
systems this is easily accomplished by running the `ldconfig' command
|
|
as the superuser (root). The following line may need to be added to
|
|
/etc/ld.so.conf:
|
|
|
|
/usr/local/lib
|
|
|
|
Most modern distributions have an /etc/ld.so.conf.d/ directory where
|
|
local configuration can be made. Later versions of Debian and
|
|
derivatives have a file named 'libc.conf' in this directory. The
|
|
contents of libc.conf are:
|
|
|
|
# libc default configuration
|
|
/usr/local/lib
|
|
|
|
If your system does not have such a file, one will need to be created
|
|
and then `ldconfig' will need to be run as the root user so that
|
|
applications using the Hamlib libraries can find them.
|
|
|
|
Now `ldconfig' can be run.
|
|
|
|
While the programs built along with Hamlib will probably work fine
|
|
without running `ldconfig', experience has shown that precompiled
|
|
binaries like Fldigi will not be able to find a locally compiled
|
|
libhamlib.so.2 without updating the ld.so.cache.
|
|
|
|
6. You can remove the program binaries and object files from the
|
|
source code directory by typing `make clean'. To also remove the
|
|
files that `configure' created (so you can compile the package for
|
|
a different kind of computer), type `make distclean'. The
|
|
`configure' program will need to be run again to recompile Hamlib.
|
|
|
|
7. You can optionally generate the Doxygen documentation files:
|
|
|
|
cd doc
|
|
make doc
|
|
|
|
The HTML output files are provided for binary releases on the hamlib.org
|
|
web site.
|
|
|
|
8. Finally, if you wish to remove Hamlib, run `make uninstall' as
|
|
superuser (root), unless Hamlib was installed into your home directory,
|
|
from the Hamlib source directory. This will work unless `make distclean'
|
|
has been run.
|
|
|
|
Compiler configuration (Advanced usage)
|
|
=======================================
|
|
|
|
The `configure' shell script is responsible for choosing and configuring
|
|
the compiler(s).
|
|
|
|
The following options allow you to specify whether you
|
|
want to enable or disable various debugging mechanisms:
|
|
|
|
`--enable-warnings'
|
|
Make the compilers very picky about warnings. Try this whenever you
|
|
write new code since it may catch a few bugs. This is not active by
|
|
default because all too often warnings can be too picky and scare
|
|
the end-user.
|
|
|
|
All programs are compiled with optimization level 2 by default (-O2).
|
|
Occasionally that confuses the debugger when code is inlined. To disable
|
|
optimization and enable debugging, set the shell environment variables
|
|
CFLAGS, CXXFLAGS. On the bash shell, you can do this
|
|
like this:
|
|
|
|
$ export CFLAGS="-g"
|
|
$ export CXXFLAGS="-g"
|
|
|
|
On the tcsh shell, use the `setenv' command instead:
|
|
|
|
% setenv CFLAGS "-g"
|
|
...etc...
|
|
|
|
For other shells, please consult your shell's documentation.
|
|
|
|
Similarly, you can increase the optimization level by assigning these
|
|
variables to "-g -O3".
|
|
|
|
Depending on what languages the package uses, some of these options may
|
|
or may not be available. To see what is available, type:
|
|
% sh ./configure --help
|
|
|
|
About the configure script
|
|
==========================
|
|
|
|
The `configure' shell script attempts to guess correct values for
|
|
various system-dependent variables used during compilation. It uses
|
|
those values to create a `Makefile' in each directory of the package.
|
|
It may also create one or more `.h' files containing system-dependent
|
|
definitions. Finally, it creates a shell script `config.status' that
|
|
you can run in the future to recreate the current configuration, a file
|
|
`config.cache' that saves the results of its tests to speed up
|
|
reconfiguring, and a file `config.log' containing compiler output
|
|
(useful mainly for debugging `configure').
|
|
|
|
If you need to do unusual things to compile the package, please try
|
|
to figure out how `configure' could check whether to do them, and mail
|
|
diffs or instructions to the address given in the `README' so they can
|
|
be considered for the next release. If at some point `config.cache'
|
|
contains results you don't want to keep, you may remove or edit it.
|
|
|
|
The file `configure.ac' is used to create `configure' by a program
|
|
called `autoreconf'. You only need `configure.ac' if you want to change
|
|
it or regenerate `configure' using a newer version of `autoconf'. This
|
|
project uses a custom `autogen.sh' for running autoreconf in a developer's
|
|
checkout of Hamlib from a source repository.
|
|
|
|
Advanced installation options.
|
|
==============================
|
|
|
|
The `configure' script also understands the following more advanced
|
|
options, to handle situations for which `--prefix' alone is not sufficient.
|
|
|
|
You can specify separate installation prefixes for
|
|
architecture-specific files and architecture-independent files. If you
|
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
|
PATH as the prefix for installing programs and libraries.
|
|
Documentation and other data files will still use the regular prefix.
|
|
|
|
In addition, if you use an unusual directory layout you can give
|
|
options like `--bindir=PATH' to specify different values for particular
|
|
kinds of files. Run `configure --help' for a list of the directories
|
|
you can set and what kinds of files go in them.
|
|
|
|
If the package supports it, you can cause programs to be installed
|
|
with an extra prefix or suffix on their names by giving `configure' the
|
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
|
|
|
Optional Features
|
|
=================
|
|
|
|
Some packages pay attention to `--enable-FEATURE' options to
|
|
`configure', where FEATURE indicates an optional part of the package.
|
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
|
is something like `gnu-as' or `x' (for the X Window System). The
|
|
`README' should mention any `--enable-' and `--with-' options that the
|
|
package recognizes.
|
|
|
|
For packages that use the X Window System, `configure' can usually
|
|
find the X include and library files automatically, but if it doesn't,
|
|
you can use the `configure' options `--x-includes=DIR' and
|
|
`--x-libraries=DIR' to specify their locations.
|
|
|
|
MS Windows
|
|
==========
|
|
- Debian system with mingw32msvc cross-compiler
|
|
|
|
./configure --host=i586-mingw32msvc
|
|
|
|
- Mingw compiler under Cygwin
|
|
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \
|
|
./configure --host=i686-pc-mingw32
|
|
|
|
- Cygwin
|
|
Native Cygwin requires no special options besides regular ones.
|
|
|
|
N.B. See the 'build-win32.sh' script and its associated README.build-win32 file
|
|
in the 'scripts' directory for complete details on build a Win32 binary.
|
|
|
|
Hamlib Specific Features
|
|
========================
|
|
|
|
Various Hamlib features requiring the presence of third party packages are
|
|
enabled with options beginning with '--with-'. At this time these options
|
|
are:
|
|
|
|
--with-xml-support build rigmem with XML support [default=no]
|
|
--without-readline disable readline in rigctl/rotctl [default=yes]
|
|
--without-cxx-binding do not build C++ binding and demo [default=yes]
|
|
--with-perl-binding build perl binding and demo [default=no]
|
|
--with-perl-inc directory containing perl includes
|
|
--with-python-binding build python binding and demo [default=no]
|
|
--with-tcl-binding build Tcl binding and demo [default=no]
|
|
--with-tcl=PATH directory containing tcl configuration (tclConfig.sh)
|
|
|
|
Optional features that may require specialized hardware are:
|
|
|
|
--disable-html-matrix do not generate HTML rig feature matrix (requires
|
|
libgd-dev) [default=check]
|
|
--disable-winradio do not build winradio backend [default=yes]
|
|
--enable-usrp build USRP backend [default=no]
|
|
|
|
Bindings notes
|
|
--------------
|
|
|
|
Should you encounter any problem with the build of the C++ binding,
|
|
you can disable this optional part by passing `--without-cxx-binding'
|
|
to the configure script (may happen under MacOSX).
|
|
|
|
Note that the Perl, Python, and TCL bindings are disabled by default so
|
|
they will need to be specifically enabled for language binding support (this
|
|
has no effect on rigctld/rotctld). You may get a make error (which means it
|
|
will quit before compilation is complete) if the
|
|
--with-[perl|python|tcl]-binding option(s) are given and the Swig package is
|
|
not installed.
|
|
|
|
Perl and Python bindings should be installed into a 'configure' runtime
|
|
discovered location under the default prefix.
|
|
|
|
The TCL binding will be installed into $(libdir)/tcl/Hamlib (default). If a
|
|
non-default --prefix is passed to 'configure', the 'lappend' line in tcltest.tcl
|
|
script will need to be modified accordingly so the script can load the Hamlib
|
|
package. As TCL doesn't seem to have a "standard" location for additional
|
|
packages and since there seemed to be no common location among distributions,
|
|
this path was chosen abitrarily. Any patches to improve installation path
|
|
discovery of local packages are welcome.
|
|
|
|
When running 'make uninstall' the installed files for the Python and TCL
|
|
modules are removed. The Perl files will remain due to a design decision
|
|
of the Perl MakeMaker module. Installed Perl binding files will need to be
|
|
removed manually.
|