\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename kite.inf
@settitle KITE Manual
@c %**end of header

@titlepage
@title KITE Manual
@subtitle Copyright @copyright{} 2001, 2002 Laurynas Biveinis
@page
@end titlepage

@ifinfo
@dircategory DJGPP Package Management
@direntry
* KITE: (KITE).               KITE, a friendly tool for installing DJGPP
@end direntry
@end ifinfo

@node	Top,	Introduction, ,	(dir)
@top

@ifnottex

KITE Manual
Copyright @copyright{} 2001 Laurynas Biveinis

@menu
* Introduction:: 	The purpose of @acronym{KITE}
* Basic Usage::		How to install @acronym{DJGPP} with @acronym{KITE} in the easiest way
* Advanced Usage::	Using @acronym{KITE} for automated installations
* Changes::		Differences between @acronym{KITE} versions
* Development Info::	Building @acronym{KITE} from sources
* Contact Info::	How to reach me
* Thanks::		Acknowledgements
* Licence::		The licence of this manual
@end menu

@end ifnottex

@node	Introduction
@chapter Introduction

@acronym{KITE} is a tool for doing @acronym{DJGPP} installations.  Its main 
target audience are novices, which feel uncomfortable with command line tools 
or don't bother reading @acronym{DJGPP} installation instructions.  However, 
@acronym{KITE} can be controlled using command line options too, so it might be 
an useful tool for doing automated installations too.  Following chapters 
describe both modes in detail.

@node	Basic Usage
@chapter Basic Usage

Below are step-by-step instructions for doing @acronym{DJGPP} installation with
@acronym{KITE}. They assume that user already has got zips with wanted packages,
if not, go to @uref{http://www.delorie.com/djgpp/zip-picker.html} first.

@enumerate
@item
Put all of the downloaded DJGPP packages (those zip files) into single 
directory.

@item
Run @command{install.exe}.  This will create required installation files.

@item
One of those new files will be @command{kite.exe}, the actual installer. Run it.

@item
You will be presented with the introduction dialog.  You may read it if you 
care and press "Next" button to continue.

@item
If you are running Windows 95/98/ME you will be asked if you want to update 
Windows registry to disable numeric tails like ~1, ~2, ... in short versions of 
long file names.  This is @strong{neccesary} if you want to use @acronym{DJGPP}
 in @acronym{DOS} box and in plain @acronym{DOS} (See the @acronym{DJGPP FAQ} 
chapter 22.19 for details). It does not apply to Windows NT.  Answering "Yes" 
to this question will require reboot, so if you are going to use @acronym{DJGPP} 
just in @acronym{DOS} box @strong{or} just in plain DOS, you may answer "No" 
there.  If you do not see this dialog at all, it means that you already have 
numeric tails disabled.

@item
You will be prompted to enter the @acronym{DJGPP} installation directory. The 
default @file{c:/djgpp} is suggested so you may just press @key{Enter} here.  If 
you do not like the default installation directory, you can enter it by hand or 
choose it from dialog box.

@c FIXME: expand.
@item
Now you will have to enter the path to downloaded zips---@acronym{DJGPP} 
packages.  

@c FIXME: update.
@item
All packages will be installed into specified directory. Depending on the
number of packages, it can take some time.

@item
If you have previously disabled numeric tails, you will be asked if you
want to reenable them again. This was necessarry for installation, but later
disabled tails may cause data loss in few obscure cases.

@item
Now you will be presented with @file{autoexec.bat} update dialog.  At the left 
is your current untouched @file{autoexec.bat} file and at the right is 
@file{autoexec.bat} file with proposed updates. In most cases, it will be OK to 
accept new version.  However, if you have multiple configurations or call some 
shell from @file{autoexec.bat}, you will have to adjust new version. When 
you're done, press "Save changes" button if you want to have your current 
@file{autoexec.bat} to be replaced with the new one. The old version will be 
saved as @file{c:/autoexec.djg}.  If you are careful, you may press "Save as 
backup" - then your old @file{autoexec.bat} will be left unaltered, and the new 
version will be saved as @file{c:/autoexec.djg}.

@item
@acronym{KITE} quits, now you have to restart computer for changes in
@file{autoexec.bat} to take effect.

@item
Start using @acronym{DJGPP}!  ;-)

@end enumerate

@node	Advanced Usage
@chapter Advanced Usage

@c FIXME: write me up

@menu 
* Command Line::	Controlling of @acronym{KITE} from command line.
* Exit Codes::		Values and meanings of @acronym{KITE} exit codes.
@end menu

@node	Command Line
@section Command line parameters

@c FIXME: write me up
@c In progress...

@acronym{KITE} supports following command line options.  Each option, if
provided, makes @acronym{KITE} do not bother user with that question.

@table @code
@item --disable-logging
Do not log installation actions.

@item --log-file [PATH]
Log installation actions into specified file.

@item --pkg-dir [PATH]
Use specified directory to find @acronym{DJGPP} packages.

@item --djgpp-dir [PATH]
Use specified directory to install @acronym{DJGPP} to.

@item --disable-tails
Automatically disable numeric tails in Windows Registry, if required.

@item --keep-tails
Do not disable numeric tails in Windows Registry, even if it seems required.

@item --restore-tails
Reenable numeric tails after installation.

@item --no-restore-tailas
Leave numeric tails disabled after installation.

@end table

@node	Exit Codes
@section Exit codes and their meanings

@table @asis
@item 0
Installation finished successfully

@item 1
Windows Registry has been updated, reboot and re-run of installer required

@item 2
Installation canceled by the user

@item 3
An error has occurred
@end table

@node	Changes
@chapter Changes

Here are noteworthy changes between @acronym{KITE} versions:

@table @samp
@item v0.x (WIP), ~2000 LOC.
Various text files converted to unified Texinfo documentation.
Renamed to @acronym{KITE}. It means (KITE Is The (DJGPP) Installer).
Source repository merged with pakke public CVS archive at cvs.delorie.com.
Now configures and installs pakke.
@c FIXE: dependencies.
Writes installation log.
Reverted from using GNU Automake. Experiment failed.
Build system hardened: added automatic source/binary distribution creation,
manifest file generation. LFN support is no more required.
Added support for command line options (for automated installations). 

@item v0.4.1 (2000.04.29), about 1050 LOC.
Binary distribution was missing unzip.exe. Doh.
Corrected readme.txt
Fixed keyboard controls in file dialog boxes.
Fixed registry key checks.

@item v0.4 (2000.03.25), about 1050 LOC.
Rewrite from scratch:
Uses Turbo Vision for user's interface.
That forced moving from C to C++.
Added interactive autoexec.bat update / editing ability.
Build process made more GNUish with autoconf and automake.

@item v0.3 (dead), about 400 LOC.
Never released. Why? Because Richard Dawe introduced new program, pakke, which 
drastically changed the purpose and implementation of pakke. For curious - v0.3 
had to handle packages and dependencies, current pakke work.

@item v0.2 (1999.04.02), about 250 LOC.
If user wants it, registry is updated to disable numeric tails in SFN.
Added check if LBInstDJ is running under DOS 7 but not in DOS box under 
Windows 9x.
Optionally LBInstDJ now updates autoexec.bat if it does not find FPU. 
(Controled by #define INCLUDE_FPU)
Added check against installing to "/dev" directory
Changed DPMI server from CWSDPMI to PMODE/DJ so LBInstDJ.exe now is a 
standalone program
Added autoexec.bat update failure check
Bugfix : LBInstDj tried to append "\" even there was a "/" present

@item v0.1 (1999.03.29), about 150 LOC.
First public release.

@end table

@node	Development Info
@chapter Development Info

Currently this chapter contains information on how to build @acronym{KITE} 
from sources.  It might be expanded in future.

@menu
* Requirements::	Necessarry compiler, tools, libraries...
* Building::		Building @acronym{KITE} from sources.
* Packaging::		Creating source and binary archives.
@end menu

@node Requirements
@section Requirements

These are packages you should have installed before you start.  Later versions
of these tools should work fine too, unless stated otherwise.

@itemize @bullet
@item
DJGPP 2.03

@item
GNU C++ 2.95.2

@item
GNU Binutils 2.10

@item
Turbo Vision 1.0.10. It is available from your Simtel mirror in 
@file{v2tk/tv1010s.zip}.

@item
GNU Bash 2.03

@item
GNU Fileutils 3.16

@item
GNU Make 3.79

@item
GNU Texinfo 4.0

@item
Pakke.  Nowadays it shares single source tree with @acronym{KITE}.

@item
Popt 1.2.

@item
GNU Gettext 0.10.32, if your Turbo Vision copy wants to be i18n'ed.  Otherwise
it is not necessarry.

@item
GNU Libiconv 0.16.1, if your Gettext copy is 0.10.37 or later.

@item
GNU Autoconf 2.50, if you change @file{configure.ac} or @file{aclocal.m4}. 

@item
Memory Supervision System 1.2, from Simtel (@file{v2tk/mss12.zip}), if you
want to debug memory leaks.
@end itemize

@node	Building
@section Building

@c FIXME: describe how to get sources (CVS, zips,...)
Once you have the sources ready and helper libraries installed, do following:

@enumerate
@item
Configure sources.  Go to the top level directory of @acronym{KITE} and type
@samp{sh configure [additional-args]}.  In addition to standard configure
script arguments (like --prefix), you can specify @samp{--enable-mss} to link
with Memory Supervision System for memory debugging.  This option is off by 
default.

@item
Build it.  Just do @code{make}.
@end enumerate

@node	Packaging
@section Packaging

@c FIXME: write me up

@node	Contact Info
@chapter Contact Info

My email is @email{lauras@@softhome.net}.  Send your bug reports, suggestions,
flames, thanks there.  If you want to help with development, note that
@acronym{KITE} is built on the top of @dfn{libpakke} library.  To reach its
developers, use @email{pakke-workers@@yahoogroups.com}.

@node	Thanks
@chapter Thanks

There are quite a few people which have helped me at one or another point
with ideas, suggestions, help and testing. I'd like to thank to:

@itemize @bullet
@item 
Folks at @uref{news://comp.os.msdos.djgpp} for inspiration.
@item
@email{djgpp-workers@@delorie.com, DJGPP team} for @acronym{DJGPP} and help
with ideas.

@item
@email{pavenis@@lanet.lv, Andris Pavenis} for help.

@item
@email{rjvdboon@@europe.com, Boon van der RJ} for help.

@item
@email{dj@@delorie.com, DJ Delorie} for help.

@item
@email{ams@@ludd.luth.se, Martin Stroemberg} for help.

@item
@email{salvador@@inti.gov.ar, Salvador Eduardo Tropea} for help and Turbo 
Vision.

@item
@email{richdawe@@bigfoot.com, Richard Dawe} for help, libpakke, pakke, build
system suggestions, and brainstorming.

@item
@email{celco@@texoma.net, J.W. Mays} for support.
@end itemize

@acronym{KITE} uses following third-party tools (mainly for binary 
distribution) which require mentioning following copyright info:

@itemize @bullet
@item
UnZip by InfoZip. I do not include its source code due its size, but it can
be freely downloaded from @uref{http://www.cdrom.com/pub/infozip/} or
@uref{ftp://ftp.cdrom.com/pub/infozip/}.

@item
PMODE/DJ @acronym{DPMI} server. It is copyright @copyright{} 1994 by Tran AKA
Thomas Pytel and copyright @copyright{} 1996 by Matthias Grimrath.
@end itemize

@node	Licence
@chapter GNU Free Documentation Licence

@include fdl.txi

@contents
@bye
