

                       G E E K    G A D G E T S

          I N S T A L L A T I O N    I N S T R U C T I O N S

                                   
                       (Updated 15 August 1997)

Installation
************

   Currently the only supported method of installing components of Geek
Gadgets is to use the shell.  Therefore you should carefully read the
following sections for details and a step by step instruction.

Step 1: Extract the content of the packages
===========================================

   Packages are currently distributed as '.tgz' archives.  This is
short for '.tar.gz', which is a tar archive that has been compressed
with GNU gzip.  If you do not already have a previous version of Geek
Gadgets installed, you can use the BOOT.lha archive to install the
necessary binaries to deal with '.tgz' archives.

   Note: Be careful about using any non-GG "ixemul free" versions of
"tar" unless you are absolutely certain that they correctly handle
symbolic links and also preserve file datestamps accurately.

   You have to create a directory which will be the root of the Geek
Gadgets binary tree, assign GG: to this directory, cd to GG:, and
extract the contents of the packages you wish to install (everything is
archived relative to GG:).

   To install a full copy of Geek Gadgets using the BOOT.lha archive,
assuming that your GG archives are in dh0:junk/amiga-bin and the boot
archive is dh0:junk/BOOT.lha, do the following, with the paths modified
appropriately for your local needs:

	> makedir dh0:GG
	> assign GG: dh0:GG
	> cd GG:
	> lha -mraxe x dh0:junk/BOOT.lha
	> assign LIBS: GG:Sys/Libs add
	> path GG:bin add
	> assign bin: GG:bin
	> sh
	$ for file in /dh0/junk/amiga-bin/*.tgz
	do
	echo "=== $file ==="
	tar -xzf $file
	done

   Ignore any "Broken pipe - gzip" messages, they are annoying but
harmless.

   If you want to install only a subset, you can run the "tar -xzf"
command with only those archives as input, one archive at a time.

   For example the following illustrates populating the Geek Gadgets
binary tree with the minimum set of packages that we would recommend
for doing serious C or C++ development.  Replace -X.X- with the
appropriate version numbers for the current release:

	tar -xzf GG-misc-bin.tgz
	tar -xzf binutils-X.X-bin.tgz
	tar -xzf bison-X.X-bin.tgz
	tar -xzf diffutils-X.X-bin.tgz
	tar -xzf fd2inline-X.X-bin.tgz
	tar -xzf fifolib-X.X-bin.tgz
	tar -xzf fileutils-X.X-bin.tgz
	tar -xzf findutils-X.X-bin.tgz
	tar -xzf flex-X.X-bin.tgz
	tar -xzf gcc-X.X-bin.tgz
	tar -xzf grep-X.X-bin.tgz
	tar -xzf gzip-X.X-bin.tgz
	tar -xzf ixemul-X.X-bin.tgz
	tar -xzf ixemul-X.X-env-bin.tgz
	tar -xzf ixemul-X.X-inc-bin.tgz
	tar -xzf libamiga-bin.tgz
	tar -xzf libg++-X.X-bin.tgz
	tar -xzf libm-X.X-bin.tgz
	tar -xzf libnix-X.X-bin.tgz
	tar -xzf make-X.X-bin.tgz
	tar -xzf patch-X.X-bin.tgz
	tar -xzf pdksh-X.X-bin.tgz
	tar -xzf sed-X.X-bin.tgz
	tar -xzf sh-utils-X.X-bin.tgz
	tar -xzf tar-X.X-bin.tgz
	tar -xzf termcap-X.X-bin.tgz
	tar -xzf textutils-X.X-bin.tgz

The following should be optional, unless you want to remake a "configure"
file, want EMACS, or currently need a curses library.

	tar -xzf autoconf-X.X-bin.tgz
	tar -xzf emacs-X.X-bin.tgz
	tar -xzf ncurses-X.X-bin.tgz

Step 2: Select an appropriate ixemul version
============================================

   You may want to examine the ixemul.library flavors in GG:Sys/Libs and
select one more appropriate for your specific machine.  The following
flavors are available at the moment:

ixemul flavor     target CPU        target FPU        
000               68000 / 68010     none              
020               68020 / 68030     none              
020fpu            68020 / 68030     68881 / builtin   
040               68040 / 68060     none              
040fpu            68040 / 68060     builtin           

   Some flavors apply for ixnet.library (networking support for ixemul)
too.

   As an example, A4000 users might want to remove the default
ixemul.library (68000) and ixnet.library (68000) and copy
ixemul040fpu.library to ixemul.library and ixnet040.library to
ixnet.library.

Step 3: Install the AmigaOS include files
=========================================

   There are some files that we cannot yet distribute with the ftp
version of Geek Gadgets for legal reasons, such as the AmigaOS include
files (required for AmigaOS specific programming), or the AmigaOS fd
files (used by fd2inline to generate the inline files).  These files
are included on CD-ROM versions because we have written permission to
include them.  If you install Geek Gadgets from something other than a
Geek Gadgets CD, you will need to copy the AT include files to the
GG:os-include directory, creating a directory hierarchy like the
following:

	os-include/clib
	os-include/datatypes
	os-include/devices
	os-include/diskfont
	os-include/dos
	os-include/exec
	...

   Sometimes these files contain errors or other problems that need to
be fixed before they can be used with Geek Gadgets.  These patches are
contained in the "non-GG-patches-src.tgz" file and have already been
applied in the CD-ROM releases.  For ftp releases of Geek Gadgets, you
should get this file and extract it in a temporary location with:

	gzip -d non-GG-patches-src.tgz
	tar -xvf non-GG-patches.tar

   This will create a directory called non-GG-patches, which will have
individual patch files that can be applied with the "patch" program or
by hand editing (not recommended) the affected files.  See each patch
file for specific directions and an explanation of the patch.

Step 4: Set some environment variables
======================================

   You should also ensure that you have an environment variable called
HOME, which should point to a local directory that can be used to
contain "reconfiguration scripts" that many tools look for.  As an
example, the following is a useful definition for $HOME/.inputrc:

       # My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.
       #
       # Notice the various bindings which are conditionalized depending
       # on which program is running, or what terminal is active.
       #
     
       # In all programs, all terminals, make sure this is bound.
       "\C-x\C-r": re-read-init-file
     
       # Amiga console specials
     
       "A": previous-history
       "B": next-history
       "C": forward-char
       "D": backward-char

   Please consult your AmigaOS DOS Manual on how to set environment
variables.

Step 5: Set a large enough stack size
=====================================

   Many Geek Gadgets tools require large amounts of stack space.  Some
of them have been compiled to automatically grow the stack as
necessary, but the work to build all of them with automatic stack
expansion is not yet complete.  Thus you need to take care to set an
appropriate amount of stack.  One way to do this is to add a line like:

   	stack 200000

   to your S:Stack-Startup file.  There are various opinions about what
the minimum stack size should be.  You could get away with as little as
50K in some circumstances, or need over 500K in others.  Random crashes,
irreproducible behavior, machine lockups, and other such problems are
typical symptoms of setting the stack too low.

Step 6: Add Geek Gadgets to your environment
============================================

   The last step in the installation is to modify your S:User-Startup
file to assign GG: to the root of your Geek Gadgets installation tree
and also to execute GG:Sys/S/GG-Startup at boot time.  Once you reboot,
Geek Gadgets should be ready for use.

