Update documentation.

Added required/optional development package info in README.betatester
and added info on ldconfig and its configuration.

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3034 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.13
Nate Bargmann, N0NB 2011-02-01 16:31:20 +00:00
rodzic 7ae64ff79c
commit bbb40e1b2e
4 zmienionych plików z 265 dodań i 185 usunięć

111
INSTALL
Wyświetl plik

@ -1,59 +1,59 @@
Basic Installation Basic Installation
================== ==================
For more information specific to Hamlib, please read the README as well as 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 README.betatester and the first part of README.developer to see which
additional development packages are needed. This source code distribution additional development packages are needed. This source code distribution is
is autoconfiguring and you should be able to compile it and install it autoconfiguring and you should be able to compile it and install it without
without manual interventions such as editing Makefiles, configuration files, manual interventions such as editing Makefiles, configuration files, and so
and so on. These are generic instructions for people who are not familiar on. These are generic instructions for people who are not familiar with
with installing autoconfiguring software (along with some Hamlib-specific installing autoconfiguring software (along with some Hamlib-specific
information). information).
The simplest way to compile this package is to enter the source code The simplest way to compile this package is to enter the source code
main directory and do the following: main directory and do the following:
1. Configure the source code by typing: 1. Configure the source code by typing:
$ ./configure $ ./configure
If you're planning to install the package into your home directory If you're planning to install the package into your home directory
or to a location other than `/usr/local' then add the flag or to a location other than `/usr/local' then add the flag
`--prefix=PATH' to `configure'. For example, if your home directory `--prefix=PATH' to `configure'. For example, if your home directory
is `/home/username' you can configure the package to install itself is `/home/username' you can configure the package to install itself
there by invoking: there by invoking:
$ ./configure --prefix=/home/username $ ./configure --prefix=/home/username
As of SVN rev-2882, the scripting language bindings are disabled by As of SVN rev-2882, the scripting language bindings are disabled by
default so they will need to be specifically enabled for language default so they will need to be specifically enabled for language
binding support (this has no effect on rigctld/rotctld). You may get a 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 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 the --with-[perl|python|tcl]-binding option(s) are used and the Swig
package is not installed. package is not installed.
N.B. If you know that you won't need static libaries (most applications N.B. If you know that you won't need static libaries (most applications
dynamically link Hamlib by default) invoke `configure' as follows: dynamically link Hamlib by default) invoke `configure' as follows:
$ ./configure --disable-static $ ./configure --disable-static
This will result in a much smaller Hamlib installation (and faster This will result in a much smaller Hamlib installation (and faster
compilation :-) ). See also the "Hamlib specific Features" section compilation :-) ). See also the "Hamlib specific Features" section
below for other `configure' options. below for other `configure' options.
While running, `configure' prints some messages telling you which While running, `configure' prints some messages telling you which
features it is checking for. features it is checking for.
2. Compile the package by typing: 2. Compile the package by typing:
$ make $ make
Running `make' takes a while. Since Hamlib is a package, now is the Running `make' takes a while. Since Hamlib is a package, now is the
time to go get a cup of coffee. time to go get a cup of coffee.
3. Some packages are bundled with self-tests for source-code verification. 3. Some packages are bundled with self-tests for source-code verification.
If this package includes such tests, you can optionally run them after If this package includes such tests, you can optionally run them after
compilation by typing compilation by typing
$ make check $ make check
@ -62,8 +62,8 @@ main directory and do the following:
4. Type `make install' to install the programs and any data files and 4. Type `make install' to install the programs and any data files and
documentation. Type `make uninstall' to undo the installation. documentation. Type `make uninstall' to undo the installation.
N.B. Be aware that Super User (root) privileges will be required to 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 install to /usr/local or any other system location outside of your home
directory. Many distributions include the `sudo' command which will directory. Many distributions include the `sudo' command which will
permit you to install Hamlib after entering your password. Otherwise permit you to install Hamlib after entering your password. Otherwise
@ -81,9 +81,9 @@ main directory and do the following:
in the `--prefix' flag. in the `--prefix' flag.
If any of these directories do not presently exist, they will be If any of these directories do not presently exist, they will be
created on demand. created on demand.
If you are installing in your home directory make sure that 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 `/home/username/bin' is in your path. If you're using the bash shell
add these lines at the end of your .bashrc file: add these lines at the end of your .bashrc file:
@ -97,28 +97,28 @@ main directory and do the following:
By prepending your home directory to the rest of the PATH you can By prepending your home directory to the rest of the PATH you can
override systemwide installed software with your own custom installation. override systemwide installed software with your own custom installation.
5. After installation you may need to update the ld.so.cache as the 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 installation files are placed in /usr/local/lib by default. On most
systems this is easily accomplished by running the `ldconfig' command systems this is easily accomplished by running the `ldconfig' command
as the superuser (root). The following line may need to be added to as the superuser (root). The following line may need to be added to
/etc/ld.so.conf: /etc/ld.so.conf:
/usr/local/lib /usr/local/lib
On Debian systems since at least 4.0 (Etch) and its derivatives (Ubuntu, 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. etc.), a file will need to be created in the /etc/ld.so.conf.d directory.
It doesn't seem to matter what you name it so long as it ends in .conf It doesn't seem to matter what you name it so long as it ends in .conf
and local.conf is a good choice. Place the following line in it: and local.conf is a good choice. Place the following line in it:
/usr/local/lib /usr/local/lib
Now `ldconfig' can be run. Now `ldconfig' can be run.
While the programs built along with Hamlib will probably work fine While the programs built along with Hamlib will probably work fine
without running `ldconfig', experience has shown that precompiled without running `ldconfig', experience has shown that precompiled
binaries like Fldigi will not be able to find libhamlib.so.2 without binaries like Fldigi will not be able to find libhamlib.so.2 without
updating the ld.so.cache. updating the ld.so.cache.
6. You can remove the program binaries and object files from the 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for files that `configure' created (so you can compile the package for
@ -132,8 +132,8 @@ main directory and do the following:
The HTML output files are provided for binary releases on the hamlib.org The HTML output files are provided for binary releases on the hamlib.org
web site. web site.
8. Finally, if you wish to remove Hamlib, run `make uninstall' as 8. Finally, if you wish to remove Hamlib, run `make uninstall' as
superuser (root), unless Hamlib was installed into your home directory, superuser (root), unless Hamlib was installed into your home directory,
from the Hamlib source directory. This will work unless `make distclean' from the Hamlib source directory. This will work unless `make distclean'
has been run. has been run.
@ -142,7 +142,7 @@ Compiler configuration (Advanced usage)
======================================= =======================================
The `configure' shell script is responsible for choosing and configuring The `configure' shell script is responsible for choosing and configuring
the compiler(s). the compiler(s).
The following options allow you to specify whether you The following options allow you to specify whether you
want to enable or disable various debugging mechanisms: want to enable or disable various debugging mechanisms:
@ -171,7 +171,7 @@ On the tcsh shell, use the `setenv' command instead:
For other shells, please consult your shell's documentation. For other shells, please consult your shell's documentation.
Similarly, you can increase the optimization level by assigning these Similarly, you can increase the optimization level by assigning these
variables to "-g -O3". variables to "-g -O3".
Depending on what languages the package uses, some of these options may Depending on what languages the package uses, some of these options may
or may not be available. To see what is available, type: or may not be available. To see what is available, type:
@ -179,7 +179,7 @@ or may not be available. To see what is available, type:
About the configure script About the configure script
========================== ==========================
The `configure' shell script attempts to guess correct values for The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package. those values to create a `Makefile' in each directory of the package.
@ -196,9 +196,11 @@ 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' 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. contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program The file `configure.ac' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change called `autoconf'. You only need `configure.ac' if you want to change
it or regenerate `configure' using a newer version of `autoconf'. 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.
Advanced installation options. Advanced installation options.
============================== ==============================
@ -243,8 +245,8 @@ Win32
./configure --host=i586-mingw32msvc ./configure --host=i586-mingw32msvc
- Mingw compiler under Cygwin - Mingw compiler under Cygwin
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" ./configure --host=i686-pc-mingw32 CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" ./configure --host=i686-pc-mingw32
- Cygwin - Cygwin
Native Cygwin requires no special options besides regular ones. Native Cygwin requires no special options besides regular ones.
@ -259,10 +261,11 @@ to the configure script (may happen under MacOSX).
Any problem encountered with the perl, tcl, python or swig tool can be Any problem encountered with the perl, tcl, python or swig tool can be
disabled by passing `--without-tcl-binding', `--without-perl-binding', disabled by passing `--without-tcl-binding', `--without-perl-binding',
and/or '--without-python-binding'. and/or '--without-python-binding'. Note that these bindings are disabled
by default.
Some platfroms may have trouble compiling the RPC support (e.g. Mac OS X). Some platfroms may have trouble compiling the RPC support (e.g. Mac OS X).
in such a case, the rpcrig and rpcrot backends may be disabled in such a case, the rpcrig and rpcrot backends may be disabled
with the `--without-rpc-backends' option. with the `--without-rpc-backends' option.
Building static libraries can be disabled by use of the `--disable-static' Building static libraries can be disabled by use of the `--disable-static'

38
README
Wyświetl plik

@ -8,8 +8,9 @@ Applications.
Many Amateur Radio Transceivers come with serial interfaces that allows Many Amateur Radio Transceivers come with serial interfaces that allows
software to control the radio. This project will endeavour to provide shared software to control the radio. This project will endeavour to provide shared
libraries that greatly simplify the application programmer's interaction with libraries that greatly simplify the application programmer's interaction
radio equipment and other controllable devices such as rotators, switches, etc. with radio equipment and other controllable devices such as rotators,
switches, etc.
Supported Radios Supported Radios
---------------- ----------------
@ -65,7 +66,7 @@ Recompiling
----------- -----------
Hamlib is entirely developed using GNU tools, under various Linux systems. Hamlib is entirely developed using GNU tools, under various Linux systems.
That is, if you want to take part in the development of Hamlib, you'll need That is, if you want to take part in the development of Hamlib, you'll need
at least the following tools: at least the following tools:
* autoconf > 2.54 * autoconf > 2.54
* automake > 1.7 * automake > 1.7
@ -74,24 +75,25 @@ at least the following tools:
* svn and ssh to connect to http://sourceforge.net/ * svn and ssh to connect to http://sourceforge.net/
There are also the README.betatester and README.developer files in this There are also the README.betatester and README.developer files in this
directory if you feel like testing or hacking Hamlib. Otherwise, contributions directory if you feel like testing or hacking Hamlib. Otherwise,
of rig specifications and protocol documentation are highly encouraged. Do contributions of rig specifications and protocol documentation are highly
keep in mind that in some cases the manufacturer may not provide complete encouraged. Do keep in mind that in some cases the manufacturer may not
control information or it is only available under a Non-Disclosure Agreement provide complete control information or it is only available under a
(NDA). Any documentation *must* be publicly available so we can legally write Non-Disclosure Agreement (NDA). Any documentation *must* be publicly
and distribute Free Software supporting a given device. available so we can legally write and distribute Free Software supporting a
given device.
However, if you just want to recompile the library, please refer to the INSTALL However, if you just want to recompile the library, please refer to the
and README.betatester files. INSTALL and README.betatester files.
IMPORTANT: If autoconf or automake are installed on your system, make sure IMPORTANT: If autoconf or automake are installed on your system, make sure
they are matching *at least* the version shown above. The Hamlib team is they are matching *at least* the version shown above. The Hamlib team is
very interrested to hear from you, how Hamlib builds and works on your system, very interested to hear from you, how Hamlib builds and works on your
especially on non-Linux system or non-PC systems. We try to make Hamlib as system, especially on non-Linux system or non-PC systems. We try to make
portable as possible. Hamlib as portable as possible.
Please report in case of problems at hamlib-developer@lists.sourceforge.net Please report in case of problems at hamlib-developer@lists.sourceforge.net
Patches are welcome too! Patches in unified diff format are welcome too!
Most distributions have the latest Hamlib release in their testing or alpha Most distributions have the latest Hamlib release in their testing or alpha
versions of their distribution. Check your package manager for the Hamlib versions of their distribution. Check your package manager for the Hamlib
@ -100,9 +102,9 @@ version included in your distribution.
Take a look at tests/README for more info on simple programming examples and Take a look at tests/README for more info on simple programming examples and
test programs. test programs.
Also, take a look at http://sourceforge.net/projects/hamlib/ Also, take a look at http://sourceforge.net/projects/hamlib/ Here you will
Here you will find a mail list, and the latest releases. Feedback, questions, find a mail list, and the latest releases. Feedback, questions, etc. about
etc. about Hamlib are very welcome at the mail list: Hamlib are very welcome at the mail list:
<hamlib-developer@lists.sourceforge.net> <hamlib-developer@lists.sourceforge.net>
Have Fun / Frank S / Stephane F / The Hamlib Group Have Fun / Frank S / Stephane F / The Hamlib Group

Wyświetl plik

@ -4,13 +4,13 @@ Hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
* Why does Hamlib need beta-testers? * Why does Hamlib need beta-testers?
Hamlib is developed by a team of radio enthusiasts around the world, for fun, Hamlib is developed by a team of radio enthusiasts around the world, for
much in the spirit of ham radio. (Note that it is not restricted for ham fun, much in the spirit of ham radio. (Note that it is not restricted for
usage only). There are a great deal of protocols and rigs around the world ham usage only). There are a great deal of protocols and rigs around the
developers may not own. However, protocols may be available, so backends world developers may not own. However, protocols may be available, so
can be implemented, but cannot always be tested by developers. That's where backends can be implemented, but cannot always be tested by developers.
beta-testers are so precious. On top of that, I've been told that there's That's where beta-testers are so precious. On top of that, I've been told
no such sure thing like bug free code. that there's no such sure thing like bug free code.
Feedback and improvement requests are also valuable. Feedback and improvement requests are also valuable.
@ -18,19 +18,19 @@ Feedback and improvement requests are also valuable.
* Okay, you volunteer as beta-tester, how to proceed? * Okay, you volunteer as beta-tester, how to proceed?
First of all, you can start testing official releases. They are easier to First of all, you can start testing official releases. They are easier to
test because they come in precompiled and packaged (.rpm, .deb, etc.) but they test because they come in precompiled and packaged (.rpm, .deb, etc.) but
have the drawback of being older than the SVN repository. Reports from these they have the drawback of being older than the SVN repository. Reports from
versions are still very appreciated. Please send them to the these versions are still very appreciated. Please send them to the
hamlib-developer@lists.sourceforge.net mailing list. hamlib-developer@lists.sourceforge.net mailing list.
However, the development of Hamlib is still very active, so it's better to However, the development of Hamlib is still very active, so it's better to
test from the latest SVN version of the code. And, depending on feedback you test from the latest SVN version of the code. And, depending on feedback
make, developers can commit a fix, so you can try out the change soon after, you make, developers can commit a fix, so you can try out the change soon
without waiting for the next official version. after, without waiting for the next official version.
To proceed, you will have first to obtain either a daily snapshot or a check To proceed, you will have first to obtain either a daily snapshot or a check
out of the latest sources from the SVN repository, then rebuild the Hamlib out of the latest sources from the SVN repository, then rebuild the Hamlib
package and finally test it with your rig. Don't worry, it's much simpler package and finally test it with your rig. Don't worry, it's much simpler
than it looks, despite the size of the package. than it looks, despite the size of the package.
Pre-requisite: Pre-requisite:
@ -47,18 +47,53 @@ Download the latest SVN trunk snapshot from:
http://n0nb.users.sourceforge.net http://n0nb.users.sourceforge.net
You'll find a tarball with a name like You'll find a tarball with a name like
hamlib-1.2.13svn-rev-3021-20110119.tar.gz, i.e. a check out made 19 Jan 2011 hamlib-1.2.13svn-rev-3021-20110119.tar.gz, i.e. a check out made 19 Jan 2011
at SVN revision 3021, ready for building using the familiar "three step" at SVN revision 3021, ready for building using the familiar "three step"
(see below). Each morning by about 1130z a new snapshot is generated and (see below). Each morning by about 1130z a new snapshot is generated and
uploaded and the prior day's version is removed. uploaded and the prior day's version is removed.
The advantage of the SVN snapshot is that you won't need as many tools The advantage of the SVN snapshot is that you won't need as many tools
installed to build Hamlib as the work of Autoconf, Automake, and Libtool installed to build Hamlib as the work of Autoconf, Automake, and Libtool
have already been done. Most of the other packages listed in README.developer have already been done. Most of the other packages listed below will be
will be needed unless you tell the `configure' script to not build certain needed. If you tell the `configure' script to build certain parts of Hamlib
parts of Hamlib like documentation or scripting language bindings. like documentation or scripting language bindings the relavent optional
See `configure --help' for more information. packages will be needed. See `configure --help' for more information.
Here is a list of development packages needed for a complete build of the
library:
* Gnu C or any C99 compliant compiler # gcc --version
* Gnu make (or any modern one, BSD okay) # make --version
* libtool 2.2.6b # libtool --version
* svn for connection to hamlib.svn.sourceforge.net
N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials'
package will install a number of tools and minimize the number of packages
that need to be installed manually.
N.B. Hamlib no longer supports versions of libtool earlier than 2.2.6b in
compliance with CVE-2009-3736. If an older version is found, Hamlib will
use the bundled libtool 2.2.6b instead.
Optional, but highly recommended for a complete build:
* GNU C++ # g++ --version
* swig (for bindings) 1.3.14 # swig -version
* perl devel # h2xs
* tcl devel # tcltk-depends
* python devel # python-config
* libxml2 devel # xml2-config --version
* libgd2 devel # gdlib-config --version
* libusb devel # libusb-config --version (not 1.0.0!)
* RPC devel (libc-dev) # rpcgen --version
N.B The libusb package is required for building most of the 'kit' backend.
The older version is needed, not 1.0.0 or higher. Debian and derivatives
package libusb 0.1.12 which is what is needed.
Documentation:
* Doxygen
* DocBook # Deprecated in favor of Doxygen
* SVN checkout: * SVN checkout:
@ -99,6 +134,20 @@ following in the same parent directory of hamlib:
This will keep the binary output files seperate from the source tree. This will keep the binary output files seperate from the source tree.
NOTE! If Hamlib has not been previously installed as a locally built
package you will need to make sure that `ldconfig' is configured correctly
and run periodically after `make install'. 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.
* Structure: * Structure:
@ -109,15 +158,17 @@ time):
alinco,aor,icom, alinco,aor,icom,
jrc,kachina,kenwood, jrc,kachina,kenwood,
pcr,tentec,uniden, pcr,tentec,uniden,
winradio,yaesu: rig backends winradio,
yaesu,etc: rig backends
easycomm,rotorez,
sartek, etc: rotator backends
dummy: virtual dummy rig and rotator, for developer's use.
rpcrig: special networked rig backend (through RPC) rpcrig: special networked rig backend (through RPC)
rpcrot: special networked rotator backend (through RPC) rpcrot: special networked rotator backend (through RPC)
easycomm: rotator backends
dummy: virtual dummy rig and rotator, for developer's use.
c++,tcl,kylix: C++, tcl, and Kylix bindings
lib: library for functions missing on your system lib: library for functions missing on your system
libltdl: wrapper for shared module loader libltdl: wrapper for shared module loader
debian: debian package scripts bindings Perl, Python, Tcl, and Visual Basic bindings
c++,kylix: C++ and Kylix bindings
doc: documentation base and scripts to extract from src doc: documentation base and scripts to extract from src
include/hamlib: exported header files go here include/hamlib: exported header files go here
include: non-distributed header files go there include: non-distributed header files go there
@ -127,9 +178,11 @@ tests: rigctl/rotctl and various C programs for testing
* testing Hamlib: * testing Hamlib:
Don't attempt to test Hamlib from the source directory unless you're a developer Don't attempt to test Hamlib from the source directory unless you're a
and you understand the side effects of *not* installing freshly generated developer and you understand the side effects of *not* installing freshly
objects (basically having to mess with LD_LIBRARY_PATH and .libs). generated objects (basically having to mess with LD_LIBRARY_PATH and
.libs). Do an `sudo make install' to install the libraries in the system
area. (You did run `ldconfig', right?)
So here we go. First of all, identify your rig model id. Make sure So here we go. First of all, identify your rig model id. Make sure
/usr/local/bin (or the path you set --prefix to above) is in your $PATH, as /usr/local/bin (or the path you set --prefix to above) is in your $PATH, as
@ -137,8 +190,9 @@ rigctl has to be reachable by your shell.
Run `rigctl -l' to get a list of rigs supported by Hamlib. Run `rigctl -l' to get a list of rigs supported by Hamlib.
If you cannot find your radio in the list, please report to the hamlib-developer If you cannot find your radio in the list, please report to the
mailing list. The protocol manual and rig specifications will help us a lot. hamlib-developer mailing list. The protocol manual and rig specifications
will help us a lot.
You found your rig's ID? Good! You're almost ready to use rigctl. You found your rig's ID? Good! You're almost ready to use rigctl.
Have a quick look at its manual page: Have a quick look at its manual page:
@ -180,15 +234,16 @@ _ get_info should give remote Id and firmware vers
NB: some functions may not be implemented in the backend or simply not NB: some functions may not be implemented in the backend or simply not
available on this rig. available on this rig.
When reporting to the hamlib-developer mailing list, please include traces and When reporting to the hamlib-developer mailing list, please include traces
also comments to tell developers if the action performed correctly on the rig. and also comments to tell developers if the action performed correctly on
the rig.
Tip: traces can be hard to cut and paste sometimes. In that case, Tip: Traces can be hard to cut and paste sometimes. In that case, there's a
there's a handy tool for you: script(1) (the (1) is not a part of the handy tool for you: script(1) (the (1) is not a part of the command, rather
command, rather it is a Unix convention telling which section of the manual it is a Unix convention telling which section of the manual it is found, in
it is found, in this case section 1, user commands. e.g. `man 1 script'). this case section 1, user commands. e.g. `man 1 script'). It will make a
It will make a typescript of everything printed on your terminal and save it typescript of everything printed on your terminal and save it to the file
to the file you give it. you give it.
$ script my_rig_traces.txt $ script my_rig_traces.txt
Script started, file is my_rig_traces.txt Script started, file is my_rig_traces.txt
@ -218,18 +273,20 @@ measurement. It's easy, it takes only 10mn. Here's how to proceed:
1. Fire up the rigctl program released with the Hamlib package, 1. Fire up the rigctl program released with the Hamlib package,
and pass along options as needed (serial speed, etc.). and pass along options as needed (serial speed, etc.).
2. Tune to some frequency reporting S0 to the radio S-Meter. 2. Tune to some frequency reporting S0 to the radio S-Meter.
3. At rigctl prompt, issue "get_level" ('l' in short) of the level RAWSTR. 3. At rigctl prompt, issue "get_level" ('l' in short) of the level
4. Write down the S-level read on radio front panel, and the RAWSTR value RAWSTR.
retrieved. 4. Write down the S-level read on radio front panel, and the RAWSTR
value retrieved.
5. Repeat from step 2 with S9 and S9+60dB. Actually the more plots, 5. Repeat from step 2 with S9 and S9+60dB. Actually the more plots,
the better, otherwise Hamlib does interpolation. the better, otherwise Hamlib does interpolation.
6. Send the table to the hamlib-developer mailing list and it will be added 6. Send the table to the hamlib-developer mailing list and it will be
in the next release of Hamlib. added in the next release of Hamlib.
NB: It is well known the S-Meter of any given radio is far from being accurate. NB: It is well known the S-Meter of any given radio is far from being
For owners with a fully equipped lab, you may want to make the above-mentioned accurate. For owners with a fully equipped lab, you may want to make the
measurements with a good signal generator and a set of calibrated attenuators. above-mentioned measurements with a good signal generator and a set of
Greg W8WWV has an insightful page about S-Meter calibration: calibrated attenuators. Greg W8WWV has an insightful page about S-Meter
calibration:
http://www.seed-solutions.com/gregordy/Amateur%20Radio/Experimentation/SMeterBlues.htm http://www.seed-solutions.com/gregordy/Amateur%20Radio/Experimentation/SMeterBlues.htm

Wyświetl plik

@ -42,8 +42,8 @@ Hamlib also enables developers to develop professional looking
GUI's towards a standard control library API, and they would not have GUI's towards a standard control library API, and they would not have
to worry about the underlying connection towards physical hardware. to worry about the underlying connection towards physical hardware.
Initially serial (RS232) connectivity will be handled, but Serial (RS232) connectivity is built in as are IP (also via a socket
I expect that IP, USB, and other connectivity will follow afterwards. utility) and USB. Other connectivity will follow afterwards.
General Guidelines. General Guidelines.
@ -133,7 +133,7 @@ svn co https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk hamlib
N.B.: If the "trunk" subdirectory is ommited then the entire SVN N.B.: If the "trunk" subdirectory is ommited then the entire SVN
reposity will be downloaded! This includes all branches and tags that reposity will be downloaded! This includes all branches and tags that
have ever been created in the hostory of Hamlib. That is quite large, have ever been created in the history of Hamlib. That is quite large,
abut 22 MiB as of this writing (March 2009). abut 22 MiB as of this writing (March 2009).
The check out has only to be done the first time. The check out has only to be done the first time.
@ -154,16 +154,16 @@ A SVN manual is online at http://svnbook.red-bean.com/
1.1.5 Experimental Git repository 1.1.5 Experimental Git repository
An experimental Git repository has been set up. As of this moment it is An experimental Git repository has been set up. As of this moment it is
only tracking SVN trunk/* as its master branch. Commits are made first to only tracking SVN trunk/* as its master branch. Commits are made first to
SVN (git svn dcommit) and then pushed to this repository to tie the SVN ID SVN (git svn dcommit) and then pushed to this repository to tie the SVN ID
to the Git commits. The hosting address for cloning is: to the Git commits. The hosting address for cloning is:
git://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib git://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib
Nate, N0NB, will accept patches emailed from Git (they may be posted to the Nate, N0NB, will accept patches emailed from Git (they may be posted to the
hamlib-developer mailing list). Patches should apply to the current SVN hamlib-developer mailing list). Patches should apply to the current SVN
trunk/* tree. Keep in mind that with the SVN repository being the primary trunk/* tree. Keep in mind that with the SVN repository being the primary
repository that things like your local branching information will be lost. repository that things like your local branching information will be lost.
@ -177,8 +177,8 @@ That is, if you want to take part in the development of Hamlib,
you'll need the following tools. Make sure you have at least the required you'll need the following tools. Make sure you have at least the required
version or you won't even be able to build from the SVN checkout. version or you won't even be able to build from the SVN checkout.
N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials' N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials'
package will install a number of tools and minimize the number of packages package will install a number of tools and minimize the number of packages
that need to be installed manually. that need to be installed manually.
* Gnu C or any C99 compliant compiler # gcc --version * Gnu C or any C99 compliant compiler # gcc --version
@ -203,13 +203,17 @@ Optional, but highly recommended:
* libusb devel # libusb-config --version (not 1.0.0!) * libusb devel # libusb-config --version (not 1.0.0!)
* RPC devel (libc-dev) # rpcgen --version * RPC devel (libc-dev) # rpcgen --version
N.B The libusb package is required for building most of the 'kit' backend.
The older version is needed, not 1.0.0 or higher. Debian and derivatives
package libusb 0.1.12 which is what is needed.
Documentation: Documentation:
* Doxygen * Doxygen
* DocBook # Deprecated in favor of Doxygen * DocBook # Deprecated in favor of Doxygen
N.B.: Some systems can have several versions of the autotools installed. In N.B.: Some systems can have several versions of the autotools installed. In
that case, autoconf may be called "autoconf2.50", autoheader that case, autoconf may be called "autoconf2.50", autoheader
"autoheader2.50", and automake "automake-1.7", aclocal "aclocal-1.7" or a "autoheader2.50", and automake "automake-1.7", aclocal "aclocal-1.7" or a
newer version. newer version.
IMPORTANT: If autoconf or automake are installed on your system, IMPORTANT: If autoconf or automake are installed on your system,
@ -247,58 +251,72 @@ following in the same parent directory of hamlib:
make make
make install make install
This will keep the binary output files seperate from the source tree and aid This will keep the binary output files seperate from the source tree and aid
in development by reducing clutter in the source tree. in development by reducing clutter in the source tree.
Once you've run `autogen.sh', make sure you've got some recent config.guess Once you've run `autogen.sh', make sure you've got some recent config.guess
and config.sub (needed to guess your system type). Anything of at least and config.sub (needed to guess your system type). Anything of at least
year 2004 should be fine, unless you run some exotic hardware/software system: year 2004 should be fine, unless you run some exotic hardware/software system:
./config.guess --version ./config.guess --version
./config.sub --version ./config.sub --version
The '--prefix' option to `autogen.sh' is optional. Convention is that The '--prefix' option to `autogen.sh' is optional. Convention is that
locally built packages be installed in /usr/local away from distribution locally built packages be installed in /usr/local away from distribution
installed packages. The '--disable-static' and 'CFLAGS="-g -O0"' speeds up installed packages. The '--disable-static' and 'CFLAGS="-g -O0"' speeds up
compilation if you don't plan to use static libraries and can bear less compilation if you don't plan to use static libraries and can bear less
optimized binaries while the '-g' option adds debugging info which can be optimized binaries while the '-g' option adds debugging info which can be
changed to -ggdb to generate debugging info for gdb. changed to -ggdb to generate debugging info for gdb.
Additionally, you may want to add the '--with-perl-binding' or Additionally, you may want to add the '--with-perl-binding' or
'--with-python-binding' or '--enable-tcl-binding' if you are interested in '--with-python-binding' or '--enable-tcl-binding' if you are interested in
Swig binding support for those scripting languages (This is a change as of Swig binding support for those scripting languages (This is a change as of
1.2.11svn revision 2882 where Swig generated bindings are no longer built by 1.2.11svn revision 2882 where Swig generated bindings are no longer built by
default). default).
NOTE: The autogen.sh script has only to be run the first time after a fresh NOTE: The autogen.sh script has only to be run the first time after a fresh
checkout or when a Makefile.am or other build file is modified or added. checkout or when a Makefile.am or other build file is modified or added.
The difference between building as a beta tester and a developer is in the The difference between building as a beta tester and a developer is in the
'--enable-maintainer-mode' option passed to configure from autogen.sh. This '--enable-maintainer-mode' option passed to configure from autogen.sh. This
option will add new Makefile targets and dependencies and not force a option will add new Makefile targets and dependencies and not force a
rebuild of the Makefiles when make is executed. This is why we recommend rebuild of the Makefiles when make is executed. This is why we recommend
that beta testers use the daily SVN snapshot from: that beta testers use the daily SVN snapshot from:
http://n0nb.users.sourceforge.net http://n0nb.users.sourceforge.net
For a Tcl build, add this if needed: For a Tcl build, add this if needed:
--with-tcl=/usr/lib/tcl8.2 --with-tcl=/usr/lib/tcl8.2
Note: C-shell users may have to run autogen.sh and make through a bourne Note: C-shell users may have to run autogen.sh and make through a bourne
shell instead, or pass "SHELL=bash" as a parameter to make. shell instead, or pass "SHELL=bash" as a parameter to make.
NOTE! If Hamlib has not been previously installed as a locally built
package you will need to make sure that `ldconfig' is configured correctly
and run periodically after `make install'. 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.
1.4. Feedback 1.4. Feedback
The Hamlib team is very interested to hear from you, how Hamlib builds and The Hamlib team is very interested to hear from you, how Hamlib builds and
works on your system, especially on non-Linux or non-PC systems. We are works on your system, especially on non-Linux or non-PC systems. We are
trying to make Hamlib as portable as possible. Please report problems to our trying to make Hamlib as portable as possible. Please report problems to our
developer mailing list, hamlib-developer@lists.sourceforge.net developer mailing list, hamlib-developer@lists.sourceforge.net
Patches are welcome too! Just send them to the mailing list. Unified diff Patches are welcome too! Just send them to the mailing list. Unified diff
(diff -u) is the prefered format and patches should apply to the current SVN (diff -u) is the prefered format and patches should apply to the current SVN
trunk, if possible. If you're patching against an older released version of trunk, if possible. If you're patching against an older released version of
Hamlib, we can take those as well. Hamlib, we can take those as well.
So far, Hamlib has been tested successfully under the following systems: So far, Hamlib has been tested successfully under the following systems:
@ -351,10 +369,10 @@ So far, Hamlib has been tested successfully under the following systems:
$ svn add Makefile.am mybackend.c mybackend.h $ svn add Makefile.am mybackend.c mybackend.h
$ svn commit -m "Initial release" Makefile.am mybackend.c mybackend.h $ svn commit -m "Initial release" Makefile.am mybackend.c mybackend.h
Note: The `-m' switch passes a short message to the SVN repository Note: The `-m' switch passes a short message to the SVN repository
upon a commit. If a longer message is desired, do not use the `-m' upon a commit. If a longer message is desired, do not use the `-m'
option. The editor specified in the EDITOR or VISUAL environment option. The editor specified in the EDITOR or VISUAL environment
variables will be started where a more detailed message may be variables will be started where a more detailed message may be
composed. composed.
@ -407,8 +425,8 @@ this. The error checking is removed for simplicity.
"Build it and they will come ..." "Build it and they will come ..."
Seriously, I am hoping the API's will provide a solid framework for some Seriously, I am hoping the API's will provide a solid framework for some
cool GUI development. I would like to see some GTK or Qt apps that use the cool GUI development. I would like to see some GTK or Qt apps that use the
hamlib API's so they can be used by end users as a nice part of the Ham shack. hamlib API's so they can be used by end users as a nice part of the Ham shack.
Starting points (not exhaustive): Starting points (not exhaustive):
@ -419,8 +437,8 @@ Starting points (not exhaustive):
8.1 License 8.1 License
Contributed code to the Hamlib frontend must be released under the LGPL. Contributed code to the Hamlib frontend must be released under the LGPL.
Contributed code to Hamlib backends must follow backend current license. Contributed code to Hamlib backends must follow backend current license.
Needless to say, the LGPL is the license of choice. Needless to say, the LGPL is the license of choice.
End user applications like rigctl, rotctl and RPC daemons should be released End user applications like rigctl, rotctl and RPC daemons should be released
@ -428,12 +446,12 @@ under the GPL, so any contributed code must follow the rule.
8.2 Coding guidelines and style 8.2 Coding guidelines and style
Try to keep current style of existing code. Improvements are welcome though. Try to keep current style of existing code. Improvements are welcome though.
Contributed code should always keep the source base in a compilable state, Contributed code should always keep the source base in a compilable state,
and not regress unless stated otherwise. and not regress unless stated otherwise.
There's no need to tag the source in a patch with your name in comments There's no need to tag the source in a patch with your name in comments
behind each modification, we already know the culprit :-) behind each modification, we already know the culprit from commit logs. :-)
Patches should take portability issues into account. Patches should take portability issues into account.
Keep in mind Hamlib has to run under: Keep in mind Hamlib has to run under:
@ -460,28 +478,28 @@ Portability issues to watch:
8.3 Submitting patches 8.3 Submitting patches
Patches should be in unified format (diff -u), against SVN trunk/ or latest Patches should be in unified format (diff -u), against SVN trunk/ or latest
release. This format makes it easily readable. The patches are to be sent to release. This format makes it easily readable. The patches are to be sent to
the hamlib-developer mailing list. If the file is too big, you can send it the hamlib-developer mailing list. If the file is too big, you can send it
as a compressed attachment. as a compressed attachment.
8.3.1 Changelog 8.3.1 Changelog
Caveat: The svn2cl program is used before each release to generate the Caveat: The svn2cl program is used before each release to generate the
Changelog file so any changes made directly to it WILL BE LOST! Simply Changelog file so any changes made directly to it WILL BE LOST! Simply
summarize your changes when the files are committed to SVN or, if providing summarize your changes when the files are committed to SVN or, if providing
patches to the mailing list, provide a summary so the uploader can include patches to the mailing list, provide a summary so the uploader can include
it in the commit message which will show in the Changelog. it in the commit message which will show in the Changelog.
8.4 SVN commit access 8.4 SVN commit access
Generally, volunteers can get access to SourceForge Hamlib SVN upon asking Generally, volunteers can get access to SourceForge Hamlib SVN upon asking
one of the project administrators. Sometimes we'll ask you! one of the project administrators. Sometimes we'll ask you!
However, before your start commiting, the project admins would like first to However, before your start commiting, the project admins would like first to
have a look at your "style", just to make sure you grok the Hamlib approach have a look at your "style", just to make sure you grok the Hamlib approach
(c.f. previous section on submitting a patch). Then you'll be able to commit (c.f. previous section on submitting a patch). Then you'll be able to commit
by yourself to the backend you have maintainance of. Please follow the rules by yourself to the backend you have maintainance of. Please follow the rules
hereunder: hereunder:
* Always keep the SVN trunk repository in a compilable state. * Always keep the SVN trunk repository in a compilable state.