diff --git a/INSTALL b/INSTALL index db94b8682..23b1b2b64 100644 --- a/INSTALL +++ b/INSTALL @@ -1,46 +1,161 @@ -hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com) +Basic Installation +================== + For more information specific to this package, please read the README +file. 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. +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: + % sh ./configure -1. You should be able to enter the tree (eg: ft747) of - choice and type "make".Here is what should happen. + If you're 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/luser' you can configure the package to install itself there + by invoking: + % sh ./configure --prefix=/home/luser + + While running, `configure' prints some messages telling which + features is it checking for. - [frank@kirk ft747]$ make - gcc -fPIC -g -Wall -c ft747.c - gcc -shared -Wl,-soname,libft747.so.1 -o libft747.so.1.0.1 ft747.o -lc - [frank@kirk ft747]$ + 2. Compile the package by typing: + % make + Running `make' takes a while. If this is a very large package, now + is the time to go make some 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 -2. To install the lib in the "./lib" directory, and its header file - into "./include" do "make install" + 4. Type `make install' to install the programs and any data files and + documentation. Type `make uninstall' to undo the installation. + 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/ + Share files -> /prefix/share/ + where `prefix' is either `/usr/local' or the PATH that you specified + in the `--prefix' flag. - [frank@kirk ft747]$ make install - make install_lib - make[1]: Entering directory `/home/frank/devel/hamlib/ft747' - mv libft747.so.1.0.1 ./lib/ - cd ./lib/; /sbin/ldconfig -n . - cd ./lib/; ln -s libft747.so.1 libft747.so - make[1]: Leaving directory `/home/frank/devel/hamlib/ft747' - make install_header - make[1]: Entering directory `/home/frank/devel/hamlib/ft747' - cp -f ft747.h ./include/ - make[1]: Leaving directory `/home/frank/devel/hamlib/ft747' - [frank@kirk ft747]$ + If any of these directories do not presently exist, they will be + created on demand. -3. ./lib and ./include should now look like this + If you are installing in your home directory make sure that + `/home/luser/bin' is in your path. If you're using the bash shell + add this line at the end of your .cshrc file: + PATH="/home/luser/bin:${PATH}" + export PATH + If you are using csh or tcsh, then use this line instead: + setenv PATH /home/luser/bin:${PATH} + By prepending your home directory to the rest of the PATH you can + override systemwide installed software with your own custom installation. -|-- include -| `-- ft747.h -|-- lib -| |-- libft747.so -> libft747.so.1 -| |-- libft747.so.1 -> libft747.so.1.0.1 -| `-- libft747.so.1.0.1 + 5. 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'. +Compiler configuration +====================== -4. To make and run the test suite , cd to test directory, build - the binary and run the test. + The `configure' shell script is responsible for choosing and configuring +the compiler(s). - cd test - make - make runtest +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: + $ export CFLAGS="-g" + $ export CXXFLAGS="-g" + $ export FFLAGS="-g" +On the tcsh shell, use the `setenv' command instead: + % setenv CFLAGS "-g" + ...etc... +For other shell, 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.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +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. -5. ..