2000-11-04 21:37:27 +00:00
|
|
|
Basic Installation
|
|
|
|
==================
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
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
|
2011-01-20 03:23:17 +00:00
|
|
|
information).
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
The simplest way to compile this package is to enter the source code
|
|
|
|
main directory and do the following:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
1. Configure the source code by typing:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
$ ./configure
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
If you're planning to install the package into your home directory
|
|
|
|
or to a location other than `/usr/local' then add the flag
|
2011-02-01 16:31:20 +00:00
|
|
|
`--prefix=PATH' to `configure'. For example, if your home directory
|
|
|
|
is `/home/username' you can configure the package to install itself
|
2008-01-04 17:30:31 +00:00
|
|
|
there by invoking:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
$ ./configure --prefix=/home/username
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
As of SVN rev-2882, the scripting language 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 used and the Swig
|
2011-01-20 03:23:17 +00:00
|
|
|
package is not installed.
|
|
|
|
|
|
|
|
N.B. If you know that you won't need static libaries (most applications
|
|
|
|
dynamically link Hamlib by default) invoke `configure' as follows:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2011-01-20 03:23:17 +00:00
|
|
|
$ ./configure --disable-static
|
2008-01-04 17:30:31 +00:00
|
|
|
|
|
|
|
This will result in a much smaller Hamlib installation (and faster
|
2011-02-01 16:31:20 +00:00
|
|
|
compilation :-) ). See also the "Hamlib specific Features" section
|
|
|
|
below for other `configure' options.
|
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
While running, `configure' prints some messages telling you which
|
2011-02-01 16:31:20 +00:00
|
|
|
features it is checking for.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
2. Compile the package by typing:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-04 17:30:31 +00:00
|
|
|
$ make
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
Running `make' takes a while. Since Hamlib is a package, now is the
|
2008-01-12 00:36:58 +00:00
|
|
|
time to go get a cup of coffee.
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
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
|
2008-01-04 17:30:31 +00:00
|
|
|
|
|
|
|
$ make check
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2008-11-09 14:26:04 +00:00
|
|
|
Be careful: 'make check' needs an already installed hamlib library. That
|
|
|
|
means that this step has to wait until you finished step 4 (and 5).
|
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
4. Type `make install' to install the programs and any data files and
|
|
|
|
documentation. Type `make uninstall' to undo the installation.
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
N.B. Be aware that Super User (root) privileges will be required to
|
2011-01-20 03:23:17 +00:00
|
|
|
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'.
|
2008-01-12 00:36:58 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
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.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
If any of these directories do not presently exist, they will be
|
2011-02-01 16:31:20 +00:00
|
|
|
created on demand.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
If you are installing in your home directory make sure that
|
2008-01-04 17:30:31 +00:00
|
|
|
`/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}"
|
2000-11-04 21:37:27 +00:00
|
|
|
export PATH
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
If you are using csh or tcsh, then use this line instead:
|
2008-01-04 17:30:31 +00:00
|
|
|
|
|
|
|
setenv PATH /home/username/bin:${PATH}
|
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
By prepending your home directory to the rest of the PATH you can
|
|
|
|
override systemwide installed software with your own custom installation.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
5. After installation you may need to update the ld.so.cache as the
|
2008-01-12 00:36:58 +00:00
|
|
|
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:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
/usr/local/lib
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
On Debian systems since at least 4.0 (Etch) and its derivatives (Ubuntu,
|
|
|
|
etc.), a file will need to be created in the /etc/ld.so.conf.d directory.
|
2011-02-01 16:31:20 +00:00
|
|
|
It doesn't seem to matter what you name it so long as it ends in .conf
|
2008-01-12 00:36:58 +00:00
|
|
|
and local.conf is a good choice. Place the following line in it:
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
/usr/local/lib
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
Now `ldconfig' can be run.
|
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
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 libhamlib.so.2 without
|
|
|
|
updating the ld.so.cache.
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
6. You can remove the program binaries and object files from the
|
2000-11-04 21:37:27 +00:00
|
|
|
source code directory by typing `make clean'. To also remove the
|
|
|
|
files that `configure' created (so you can compile the package for
|
2008-01-12 00:36:58 +00:00
|
|
|
a different kind of computer), type `make distclean'. The
|
|
|
|
`configure' program will need to be run again to recompile Hamlib.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2008-01-12 00:36:58 +00:00
|
|
|
7. You can optionally generate the Doxygen documentation files:
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2006-10-13 14:33:52 +00:00
|
|
|
cd doc
|
|
|
|
make doc
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2006-10-13 14:33:52 +00:00
|
|
|
The HTML output files are provided for binary releases on the hamlib.org
|
|
|
|
web site.
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
8. Finally, if you wish to remove Hamlib, run `make uninstall' as
|
2008-01-12 00:36:58 +00:00
|
|
|
superuser (root), unless Hamlib was installed into your home directory,
|
|
|
|
from the Hamlib source directory. This will work unless `make distclean'
|
|
|
|
has been run.
|
2006-10-13 14:33:52 +00:00
|
|
|
|
2011-01-20 03:23:17 +00:00
|
|
|
Compiler configuration (Advanced usage)
|
|
|
|
=======================================
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
The `configure' shell script is responsible for choosing and configuring
|
2011-02-01 16:31:20 +00:00
|
|
|
the compiler(s).
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
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, FFLAGS to `-g'. On the bash shell, you can do this
|
|
|
|
like this:
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
$ export CFLAGS="-g"
|
|
|
|
$ export CXXFLAGS="-g"
|
|
|
|
$ export FFLAGS="-g"
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
On the tcsh shell, use the `setenv' command instead:
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
% setenv CFLAGS "-g"
|
|
|
|
...etc...
|
2008-01-04 17:30:31 +00:00
|
|
|
|
2011-01-20 03:23:17 +00:00
|
|
|
For other shells, please consult your shell's documentation.
|
2000-11-04 21:37:27 +00:00
|
|
|
|
|
|
|
Similarly, you can increase the optimization level by assigning these
|
2011-02-01 16:31:20 +00:00
|
|
|
variables to "-g -O3".
|
2000-11-04 21:37:27 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
==========================
|
2011-02-01 16:31:20 +00:00
|
|
|
|
2000-11-04 21:37:27 +00:00
|
|
|
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.
|
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
The file `configure.ac' is used to create `configure' by a program
|
|
|
|
called `autoconf'. 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 `autoconf.sh' for running autoconf in a developer's
|
|
|
|
checkout of Hamlib from a source repository.
|
2000-11-04 21:37:27 +00:00
|
|
|
|
|
|
|
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.
|
2000-07-18 21:35:26 +00:00
|
|
|
|
2004-02-08 17:39:38 +00:00
|
|
|
|
|
|
|
Win32
|
|
|
|
=====
|
|
|
|
- Debian system with mingw32msvc cross-compiler
|
|
|
|
|
|
|
|
./configure --host=i586-mingw32msvc
|
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
- Mingw compiler under Cygwin
|
|
|
|
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" ./configure --host=i686-pc-mingw32
|
2004-02-08 17:39:38 +00:00
|
|
|
|
|
|
|
- Cygwin
|
|
|
|
Native Cygwin requires no special options besides regular ones.
|
|
|
|
|
|
|
|
|
2003-04-28 06:34:58 +00:00
|
|
|
Hamlib specific Features
|
|
|
|
========================
|
|
|
|
|
|
|
|
Should you encounter any problem with the build of the C++ binding,
|
|
|
|
you can disable this optional part by passing `--without-cxx-binding'
|
2004-02-08 17:39:38 +00:00
|
|
|
to the configure script (may happen under MacOSX).
|
2003-04-28 06:34:58 +00:00
|
|
|
|
2004-02-08 17:39:38 +00:00
|
|
|
Any problem encountered with the perl, tcl, python or swig tool can be
|
|
|
|
disabled by passing `--without-tcl-binding', `--without-perl-binding',
|
2011-02-01 16:31:20 +00:00
|
|
|
and/or '--without-python-binding'. Note that these bindings are disabled
|
|
|
|
by default.
|
2003-04-28 06:34:58 +00:00
|
|
|
|
|
|
|
Some platfroms may have trouble compiling the RPC support (e.g. Mac OS X).
|
2011-02-01 16:31:20 +00:00
|
|
|
in such a case, the rpcrig and rpcrot backends may be disabled
|
2003-04-28 06:34:58 +00:00
|
|
|
with the `--without-rpc-backends' option.
|
|
|
|
|
2008-01-04 17:30:31 +00:00
|
|
|
Building static libraries can be disabled by use of the `--disable-static'
|
|
|
|
option. This will reduce the installed size of Hamlib considerably.
|
|
|
|
|