#!/usr/bin/perl -w

$app_name    = "";
$app_name_lc = "";
$app_name_uc = "";
$app_version = "";
$location    = "";
$name        = "";
$email       = "";
$location_root  = "";

$keep_asking = 1;

print "KAppTemplate (C) 1998 Kurt Granroth\n";
print "This script will create a blank template for a KDE app.  It\n";
print "requires very little information from you.\n\n";

#get the location
while ($keep_asking)
{
	print "Where should I create this (e.g., '/usr/src')? ";
	chomp($location_root = <STDIN>);

	if ($location_root)
	{
		$keep_asking = 0;
	}
}

#get the app name
$keep_asking = 1;
while ($keep_asking)
{
	print "What is the app name (e.g., 'KBiff', 'KEdit')? ";
	chomp($app_name = <STDIN>);

	if ($app_name)
	{
		$keep_asking = 0;
	}
}
$app_name_lc = lc $app_name;
$app_name_uc = uc $app_name;

#get the version number
$keep_asking = 1;
while ($keep_asking)
{
	print "What is the version number (e.g., '0.1')? ";
	chomp($app_version = <STDIN>);

	if ($app_version)
	{
		$keep_asking = 0;
	}
}

#get the name
$keep_asking = 1;
while ($keep_asking)
{
	print "What is your name (e.g., Kurt Granroth)? ";
	chomp($name = <STDIN>);

	if ($name)
	{
		$keep_asking = 0;
	}
}

#get the email
$keep_asking = 1;
while ($keep_asking)
{
	print "What is your email address (e.g., kurt_granroth\@pobox.com)? ";
	chomp($email = <STDIN>);

	if ($email)
	{
		$keep_asking = 0;
	}
}

$location = "$location_root/$app_name_lc-$app_version";
print "\nCreating directory $location...\n";
mkdir $location, 0777 or die "Error: $!\n";

print "Creating directory $location/$app_name_lc...\n";
mkdir "$location/$app_name_lc", 0777 or die "Error: $!\n";

print "Creating directory $location/$app_name_lc/doc...\n";
mkdir "$location/$app_name_lc/doc", 0777 or die "Error: $!\n";

print "Creating directory $location/$app_name_lc/doc/en...\n";
mkdir "$location/$app_name_lc/doc/en", 0777 or die "Error: $!\n";

print "Creating directory $location/$app_name_lc/pics...\n";
mkdir "$location/$app_name_lc/pics", 0777 or die "Error: $!\n";

print "Creating directory $location/po...\n";
mkdir "$location/po", 0777 or die "Error: $!\n";

print "Creating configure.in...\n";

open(CONFIGURE_IN, "> $location/configure.in") or die "Error: $!\n";

print CONFIGURE_IN << "EndOfConfigureIn";
# configure.in
# Original Author was kalle\@kde.org
# Modified by Stephan Kulow and Janos Farkas
# Modified by Kurt Granroth (kurt_granroth\@pobox.com)

dnl Process this file with autoconf to produce a configure script.

AC_INIT(acinclude.m4) dnl a source file from your sub dir
AC_CANONICAL_SYSTEM 
AC_ARG_PROGRAM

dnl This is your app name and version number.  Change as necessary
AM_INIT_AUTOMAKE($app_name_lc, $app_version)

dnl make \$KDEDIR the default for the installation
AC_PREFIX_DEFAULT(\${KDEDIR:-/opt/kde})

dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done

AC_CHECK_COMPILERS
KDE_PROG_LIBTOOL

dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS

dnl I need to check for libsocket before testing X
AC_CHECK_LIB(socket, socket, [LIBSOCKET="-lsocket -lnsl"]) dnl for Solaris
AC_SUBST(LIBSOCKET)
AC_PATH_KDE

AC_LANG_C
dnl Checks for libraries. 
AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for FreeBSD
AC_SUBST(LIBCOMPAT)
AC_CHECK_LIB(crypt, main, [LIBCRYPT="-lcrypt"]) dnl for BSD
AC_SUBST(LIBCRYPT)

AC_LANG_CPLUSPLUS
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/types.h sys/stat.h re_comp.h net/errno.h getopt.h sys/param.h)
AC_CHECK_FUNCS(flock)

dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_TIME

dnl check if the compiler has bool
AC_CHECK_BOOL

dnl Checks for library functions. MISCOBJS is for kdecore
AC_CHECK_SETENV

dnl output files
dnl Add all your Makefiles here. These are created by configure
AC_OUTPUT(Makefile \\
         $app_name_lc/Makefile \\
         $app_name_lc/pics/Makefile \\
         $app_name_lc/doc/Makefile \\
         $app_name_lc/doc/en/Makefile \\
         po/Makefile)
EndOfConfigureIn
close(CONFIGURE_IN);

print "Creating Makefile.am...\n";
open(MAKEFILE_AM, "> $location/Makefile.am") or die "Error: $!\n";

print MAKEFILE_AM << "EndOfMakefileAm";
# These will be the subdirectories of this directory
SUBDIRS = $app_name_lc po
EndOfMakefileAm
close(MAKEFILE_AM);

print "Creating po/Makefile.am...\n";
open(PO_MAKEFILE_AM, "> $location/po/Makefile.am") or die "Error: $!\n";

print PO_MAKEFILE_AM << "EndOfPoMakefileAm";
# add your .gmo files here in the form
# GMOFILES = pt.gmo no.gmo
GMOFILES = 
POFILES = \$(GMOFILES:.gmo=.po) 

localedir = \$(kde_locale)

MAINTAINERCLEANFILES = \$(GMOFILES)

GMSGFMT = \@GMSGFMT\@
MSGFMT = \@MSGFMT\@
XGETTEXT = \@XGETTEXT\@
EXTRA_DIST = $app_name_lc.pot \$(POFILES) \$(GMOFILES)

all: all-\@USE_NLS\@
install-data-local: install-\@USE_NLS\@

SUFFIXES = .po .gmo

.po.mo:
	\$(MSGFMT) -o \$\@ \$<

.po.gmo:
	file=\$(srcdir)/`echo \$* | sed 's,.*/,,'`.gmo \\
	&& rm -f \$\$file && \$(GMSGFMT) -o \$\$file \$< 

all-yes: \$(GMOFILES)
all-no:

install-yes: all
	\@catalogs='\$(GMOFILES)'; \\
	for cat in \$\$catalogs; do \\
	destdir=\$(localedir); \\
	lang=`echo \$\$cat | sed 's/\.gmo//'`; \\
	name=kbiff.mo \\
	dir=\$\$destdir/\$\$lang/LC_MESSAGES; \\
	\$(mkinstalldirs) \$\$dir; \\
	\$(INSTALL_DATA) \$\$cat \$\$dir/\$\$name; \\
	  echo "installing \$\$cat as \$\$dir/\$\$name"; \\
	done

install-no:

uninstall-local:
	\@catalogs='\$(GMOFILES)'; \\
	for cat in \$\$catalogs; do \\
	destdir=\$(localedir); \\
	lang=`echo \$\$cat | sed 's/\.gmo//'`; \\
	name=kbiff.mo; \\
	dir=\$\$destdir/\$\$lang/LC_MESSAGES; \\
	rm -f \$\$cat \$\$dir/\$\$name; \\
	echo "removing \$\$dir/\$\$name" ; \\
	done

merge:
	\@catalogs='\$(POFILES)'; \\
	for cat in \$\$catalogs; do \\
	name=`echo \$\$cat | sed -e 's/^.._//' `; \\
	echo \$\$cat \$\$name; \\
	msgmerge \$\$cat \$\$name > \$\$cat.new ; \\
	if diff \$\$cat \$\$cat.new; then \\
		rm \$\$cat.new;  \\
	else  \\
		mv \$\$cat.new \$\$cat ; \\
	fi; \\
	done

EndOfPoMakefileAm
close(PO_MAKEFILE_AM);

print "Creating $app_name_lc/Makefile.am...\n";
open(APP_MAKEFILE_AM, "> $location/$app_name_lc/Makefile.am") or die "Error: $!\n";

print APP_MAKEFILE_AM << "EndOfAppMakefileAm";
# this 10 paths are KDE specific. Use them:
# kde_htmldir       Where your docs should go to. (contains lang subdirs)
# kde_appsdir       Where your application file (.kdelnk) should go to. 
# kde_icondir       Where your icon should go to.
# kde_minidir       Where your mini icon should go to.
# kde_datadir       Where you install application data. (Use a subdir)
# kde_locale        Where translation files should go to.(contains lang subdirs)
# kde_cgidir        Where cgi-bin executables should go to.
# kde_confdir       Where config files should go to.
# kde_mimedir       Where mimetypes should go to.
# kde_toolbardir    Where general toolbar icons should go to.
# kde_wallpaperdir  Where general wallpapers should go to.

# just set the variable
APPSDIR = \$(kde_appsdir)/Internet
# set the include path for X, qt and KDE
INCLUDES= \@all_includes\@
# claim, which subdirectories you want to install
SUBDIRS = doc pics

#DEFS = \@DEFS\@ -I. -I\$(srcdir) -I.. -DDOTRACE
####### This part is very $app_name_lc specific
# you can add here more. This one gets installed 
bin_PROGRAMS = 	$app_name_lc

# Which sources should be compiled for $app_name_lc.
$app_name_lc\_SOURCES	= $app_name_lc.cpp $app_name_lc\widget.cpp main.cpp

# the library search path
$app_name_lc\_LDFLAGS = \@all_libraries\@ \@KDE_RPATH\@

# the libraries to link against. Be aware of the order. First the libraries,
# that depend on the following ones.
$app_name_lc\_LDADD  = -lkdeui -lkdecore -lqt -lX11 -lXext \@LIBSOCKET\@     

# this option you can leave out. Just, if you use "make dist", you need it
noinst_HEADERS = $app_name_lc.h $app_name_lc\widget.h

# just to make sure, automake makes them 
BUILTSOURCES =	$app_name_lc.moc $app_name_lc\widget.moc

# if you "make distclean", this files get removed. If you want to remove
# them while "make clean", use CLEANFILES
DISTCLEANFILES = \$(BUILTSOURCES)

# make messages.po. Move this one to ../po/ and "make merge" in po
messages:
	\$(XGETTEXT) -C -ki18n \$($app_name_lc\_SOURCES)

# just install datas here. Use install-exec-data for scripts and etc.
# the binary itself is already installed from automake
# use mkinstalldirs, not "install -d"
# don't install a list of file. Just one file per install.
# if you have more of them, create a subdirectory with an extra Makefile 
install-data-local: 
	\$(mkinstalldirs) \$(APPSDIR)
	\$(INSTALL_DATA) $app_name_lc.kdelnk \$(APPSDIR)
	\$(mkinstalldirs) \$(kde_icondir)
	\$(INSTALL_DATA) $app_name_lc.xpm \$(kde_icondir)
	\$(mkinstalldirs) \$(kde_minidir)
	\$(INSTALL_DATA) mini-$app_name_lc.xpm \$(kde_minidir)/$app_name_lc.xpm

# remove ALL you have installed in install-data-local or install-exec-local
uninstall-local:
	-rm -f \$(APPSDIR)/$app_name_lc.kdelnk
	-rm -f \$(kde_icondir)/$app_name_lc.xpm
	-rm -f \$(kde_minidir)/$app_name_lc.xpm

# add a dependency for every moc file to be full portable
$app_name_lc.cpp:$app_name_lc.moc
$app_name_lc.moc: $app_name_lc.h
	\$(MOC) $app_name_lc.h -o $app_name_lc.moc

$app_name_lc\widget.cpp:$app_name_lc\widget.moc
$app_name_lc\widget.moc: $app_name_lc\widget.h
	\$(MOC) $app_name_lc\widget.h -o $app_name_lc\widget.moc

EndOfAppMakefileAm
close(APP_MAKEFILE_AM);

print "Creating $app_name_lc/doc/Makefile.am...\n";
open(APP_DOC_MAKEFILE_AM, "> $location/$app_name_lc/doc/Makefile.am") or die "Error: $!\n";

print APP_DOC_MAKEFILE_AM << "EndOfAppDocMakefileAm";
# Add all the lanuages you have documentation for
SUBDIRS = en
EndOfAppDocMakefileAm
close(APP_DOC_MAKEFILE_AM);

print "Creating $app_name_lc/doc/en/Makefile.am...\n";
open(APP_DOC_EN_MAKEFILE_AM, "> $location/$app_name_lc/doc/en/Makefile.am") or die "Error: $!\n";

print APP_DOC_EN_MAKEFILE_AM << "EndOfAppDocEnMakefileAm";
# Add all your files here
data_DATA = $app_name_lc.html $app_name_lc-1.html $app_name_lc-2.html $app_name_lc.gif

# This is where it will all be installed
datadir = \$(kde_htmldir)/en/$app_name_lc
EndOfAppDocEnMakefileAm
close(APP_DOC_EN_MAKEFILE_AM);

print "Creating $app_name_lc/pics/Makefile.am...\n";
open(APP_PICS_MAKEFILE_AM, "> $location/$app_name_lc/pics/Makefile.am") or die "Error: $!\n";

print APP_PICS_MAKEFILE_AM << "EndOfAppPicsMakefileAm";
# Add all your pic files here
data_DATA =

# This is where it will all be installed
datadir = \$(kde_datadir)/$app_name_lc/pics
EndOfAppPicsMakefileAm
close(APP_PICS_MAKEFILE_AM);

print "Creating $app_name_lc/main.cpp...\n";
open(MAIN_CPP, "> $location/$app_name_lc/main.cpp") or die "Error: $!\n";

print MAIN_CPP << "EndOfMainCpp";
#include"$app_name_lc.h"
#include<kapp.h>

int main(int argc, char *argv[])
{
	KApplication app(argc, argv, "$app_name_lc");
	$app_name widget;

	app.setMainWidget(&widget);
	app.setTopWidget(&widget);

	widget.show();

	return app.exec();
}
EndOfMainCpp
close(MAIN_CPP);

######################################################################
print "Creating $app_name_lc/$app_name_lc.h...\n";
open(MAIN_WIDGET_H, "> $location/$app_name_lc/$app_name_lc.h") or die "Error: $!\n";

print MAIN_WIDGET_H << "EndOfMainWidgetH";
#ifndef $app_name_uc\_H 
#define $app_name_uc\_H 

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif 

#include <kapp.h>
#include <ktopwidget.h>

#include "$app_name_lc\widget.h"

class $app_name : public KTopLevelWidget
{
	Q_OBJECT
public:
	$app_name(QWidget *parent = 0, const char *name = 0);
	virtual ~$app_name();

protected slots:
	void invokeHelp();

private:
	KMenuBar   *menuBar;
	KStatusBar *statusBar;
	KToolBar   *toolBar;

	$app_name\Widget *view;
};

#endif // $app_name_uc\_H 
EndOfMainWidgetH
close(MAIN_WIDGET_H);

############################################################################
print "Creating $app_name_lc/$app_name_lc.cpp...\n";
open(MAIN_WIDGET_CPP, "> $location/$app_name_lc/$app_name_lc.cpp") or die "Error: $!\n";

print MAIN_WIDGET_CPP << "EndOfMainWidgetCpp";
#include <$app_name_lc.h>
#include <$app_name_lc.moc>

$app_name\:\:$app_name(QWidget *parent, const char *name)
	: KTopLevelWidget(name)
{
	QPopupMenu *file_menu = new QPopupMenu();
	file_menu->insertItem(i18n("E&xit"), kapp, SLOT(quit()));

	QPopupMenu *help_menu = new QPopupMenu();
	help_menu->insertItem(i18n("&Help"), this, SLOT(invokeHelp()));

	menuBar = new KMenuBar(this, "menubar");
	menuBar->insertItem(i18n("&File"), file_menu);
	menuBar->insertItem(i18n("&Help"), help_menu);

	setMenu(menuBar);

	toolBar = new KToolBar(this);
	addToolBar(toolBar);

	statusBar = new KStatusBar(this);
	setStatusBar(statusBar);

	view = new $app_name\Widget(this);
	setView(view);
}

$app_name\:\:~$app_name()
{
	delete toolBar;
	delete statusBar;
	delete menuBar;
}

void $app_name\:\:invokeHelp()
{
	kapp->invokeHTMLHelp("$app_name_lc/$app_name_lc.html", "");
}

EndOfMainWidgetCpp
close(MAIN_WIDGET_CPP);

######################################################################
print "Creating $app_name_lc/$app_name_lc\widget.h...\n";
open(VIEW_WIDGET_H, "> $location/$app_name_lc/$app_name_lc\widget.h") or die "Error: $!\n";

print VIEW_WIDGET_H << "EndOfViewWidgetH";
#ifndef $app_name_uc\WIDGET_H 
#define $app_name_uc\WIDGET_H 

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif 

#include <kapp.h>
#include <qwidget.h>

class $app_name\Widget : public QWidget
{
	Q_OBJECT
public:
	$app_name\Widget(QWidget *parent = 0, const char *name = 0);
	virtual ~$app_name\Widget();
};

#endif // $app_name_uc\WIDGET_H 
EndOfViewWidgetH
close(VIEW_WIDGET_H);

############################################################################
print "Creating $app_name_lc/$app_name_lc\widget.cpp...\n";
open(VIEW_WIDGET_CPP, "> $location/$app_name_lc/$app_name_lc\widget.cpp") or die "Error: $!\n";

print VIEW_WIDGET_CPP << "EndOfViewWidgetCpp";
#include <$app_name_lc\widget.h>
#include <$app_name_lc\widget.moc>

$app_name\Widget\:\:$app_name\Widget(QWidget *parent, const char *name)
	: QWidget(parent, name)
{
}

$app_name\Widget\:\:~$app_name\Widget()
{
}
EndOfViewWidgetCpp
close(VIEW_WIDGET_CPP);

############################################################################
print "Creating $app_name_lc/$app_name_lc.kdelnk...\n";
open(APP_KDELNK, "> $location/$app_name_lc/$app_name_lc.kdelnk") or die "Error: $!\n";

print APP_KDELNK << "EndOfAppKdelnk";
# KDE Config File 
[KDE Desktop Entry]
Name=$app_name
Exec=$app_name_lc
Icon=$app_name_lc.xpm
Type=Application
DocPath=$app_name_lc/$app_name_lc.html
Comment=
Terminal=0
MiniIcon=$app_name_lc.xpm
EndOfAppKdelnk
close(APP_KDELNK);

############################################################################
print "Creating $app_name_lc/$app_name_lc.xpm...\n";
open(APP_XPM, "> $location/$app_name_lc/$app_name_lc.xpm") or die "Error: $!\n";

print APP_XPM << "EndOfAppXpm";
/* XPM */
/* Drawn  by Mark Donohoe for the K Desktop Environment */
/* See http://www.kde.org */
static char*exec[]={
"32 32 7 1",
"# c #000000",
"a c #ffffff",
"b c #585858",
"e c #400000",
"d c #a0a0a4",
"c c #c0c0c0",
". c None",
"................................",
"................................",
"................................",
".............#####..............",
".........###.#aaa#.###..........",
"........#aaa#baaab#aaa#.........",
"....###.#aaaabaaabaaaa#.###.....",
"...#caa#abaaaaaaaaaaaba#aaa#....",
"..#baaca#aaaaaaaaaaaaa#aaaab#...",
"..#dbcaacaaaaaaaaaaaaaaaaabc#...",
"..#ddbbcaacaaaaaaaaaaaaabbcc#...",
"..#ddddaccaacaaaaaaaaaaacccc#...",
"#######baaccaa###aaaaaab#######.",
"#ccccccaccaac#ddc#aaaaaaaaaaaa#.",
"#######ccacca#ddc#caaaaa#######.",
"#ddddd#ccccacc###caacaaa#ccccc#.",
"#dddd#cccccccaccaaccaacaa#cccc#.",
"#dd##ccc##cccccaccaac##aca##cc#.",
"#d#cccc#d#cccccccacca#c#aaca#c#.",
"###cc##dd#cccccccccac#cc##aa###.",
".#a##ddd#cccccccccccca#ccc##d#..",
".#a#ddd#cccc##ccc##cccc#ccc#d#..",
".#a#ddd#ccc#d#ccc#d#ccc#ccc#d#..",
".#a#dd#cccc#d#ccc#d#cccc#cc#d#..",
".#a#dd##ec#dd#ccc#dd#c###cc#d#..",
".#a#d##ac#ddd#####ddd#cd##c#d#..",
"..###.#ac#dd##ccc##dd#cd#.###...",
"......#ac#d#.#ccc#.#d#cd#.......",
"......#ac#d#.#ccc#.#d#cd#.......",
"......#ac##..#ccc#..##cd#.......",
".......###...#ccc#...###........",
".............#####.............."};
EndOfAppXpm
close(APP_XPM);

############################################################################
print "Creating $app_name_lc/mini-$app_name_lc.xpm...\n";
open(APP_MINI_XPM, "> $location/$app_name_lc/mini-$app_name_lc.xpm") or die "Error: $!\n";

print APP_MINI_XPM << "EndOfAppMiniXpm";
/* XPM */
/* Drawn  by Mark Donohoe for the K Desktop Environment */
/* See http://www.kde.org */
static char*exec[]={
"16 16 6 1",
"# c #000000",
"d c #a0a0a4",
"a c #ffffff",
"b c #585858",
"c c #c0c0c0",
". c None",
"................",
".....######.....",
"..###abcaba###..",
".#cabcbaababaa#.",
".#cccaaccaacaa#.",
".###accaacca###.",
"#ccccca##aaccaa#",
"#dd#ccc##cca#cc#",
"#d#dccccccacc#c#",
"##adcccccccccd##",
".#ad#c#cc#d#cd#.",
".#a#ad#cc#dd#d#.",
".###ad#dd#dd###.",
"...#ad#cc#dd#...",
"...####cc####...",
"......####......"};
EndOfAppMiniXpm
close(APP_MINI_XPM);

############################################################################
print "Creating $app_name_lc/doc/en/$app_name_lc.html...\n";
open(APP_DOC_HTML, "> $location/$app_name_lc/doc/en/$app_name_lc.html") or die "Error: $!\n";

print APP_DOC_HTML << "EndOfAppDocHtml";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>The $app_name Handbook</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="keywords" CONTENT="$app_name">
<META NAME="description" CONTENT="Documentation for $app_name">
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#8E2727" VLINK="#8E2727" TEXT="#000000" > 
<FONT FACE="Arial,Helvetica">

<!-- HEADER -->
<TABLE BORDER=0 CELLSPACING=2>
<TR><TD>
<IMG SRC="$app_name_lc.gif" BORDER="0" ALT="$app_name" ALIGN="TEXTTOP">
</TD><TD>
<FONT SIZE="+2"><B>$app_name</B></FONT><BR><FONT SIZE="-1">Version
$app_version</FONT>
</TD></TR>
</TABLE>
<HR WIDTH="600" SIZE=2 ALIGN="LEFT" NOSHADE>
<!-- END HEADER -->

<TABLE WIDTH="600">
<TR><TD>
<P ALIGN="RIGHT">

<A HREF="$app_name_lc-1.html">Next</A>
Previous Table of Contents</P>
<H1>The $app_name Handbook</H1>

<SMALL><I>
$name, <A HREF="mailto:$email">$email</A>
</I></SMALL>
<BR><EM><SMALL>Version $app_version, MONTH DAY, YEAR</SMALL></EM><BR>
<P>
<HR SIZE="1" NOSHADE>
This Handbook describes $app_name Version $app_version<BR>
<HR SIZE="1" NOSHADE>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="$app_name_lc-1.html">Introduction</A></H2>
<UL>
<LI><A HREF="$app_name_lc-1.html#ss1.1">1.1 Changes</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="$app_name_lc-2.html">Installation</A></H2>

<UL>
<LI><A HREF="$app_name_lc-2.html#ss2.1">2.1 How to obtain $app_name</A>
<LI><A HREF="$app_name_lc-2.html#ss2.2">2.2 Requirements</A>
<LI><A HREF="$app_name_lc-2.html#ss2.3">2.3 Compilation and installation</A>
</UL>
<P ALIGN="RIGHT">

<A HREF="$app_name_lc-1.html">Next</A>
Previous Table of Contents</P>

<HR WIDTH="600" SIZE=3 ALIGN="LEFT" NOSHADE>
</FONT>

</TD></TR></TABLE>
</BODY>
</HTML>
EndOfAppDocHtml
close(APP_DOC_HTML);

############################################################################
print "Creating $app_name_lc/doc/en/$app_name_lc-1.html...\n";
open(APP_DOC_1_HTML, "> $location/$app_name_lc/doc/en/$app_name_lc-1.html") or die "Error: $!\n";

print APP_DOC_1_HTML << "EndOfAppDoc1Html";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>The $app_name Handbook: Introduction</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="keywords" CONTENT="$app_name">
<META NAME="description" CONTENT="Documentation for $app_name">
</HEAD>

<BODY BGCOLOR="#ffffff" LINK="#8E2727" VLINK="#8E2727" TEXT="#000000" > 
<FONT FACE="Arial,Helvetica">
<TABLE BORDER=0 CELLSPACING=2>
<TR><TD>
<IMG SRC="$app_name_lc.gif" BORDER="0" ALT="$app_name" ALIGN="TEXTTOP">
</TD><TD>
<FONT SIZE="+2"><B>$app_name</B></FONT><BR><FONT SIZE="-1">Version
$app_version</FONT>
</TD></TR>
</TABLE>
<HR WIDTH="600" SIZE=2 ALIGN="LEFT" NOSHADE>

<TABLE WIDTH="600" CELLSPACING=0 CELLPADDING=0>
<TR>
<TD>
<P ALIGN="RIGHT">

<A HREF="$app_name_lc-2.html">Next</A>
Previous<A HREF="$app_name_lc.html#toc1">Table of Contents</A>
</P>
<H3><A NAME="s1">1. Introduction</A></H3>
<P>
<H3><A NAME="ss1.1">1.1 Changes</A>
</H3>
<P>

<P ALIGN="RIGHT">

<A HREF="$app_name_lc-2.html">Next</A>
Previous<A HREF="$app_name_lc.html#toc1">Table of Contents</A>
</P>
<CENTER>
<HR WIDTH="100%" SIZE=3 ALIGN=CENTER NOSHADE>
</CENTER>    
</FONT>

</TR></TD></TABLE>
</BODY>
</HTML>
EndOfAppDoc1Html
close(APP_DOC_1_HTML);

############################################################################
print "Creating $app_name_lc/doc/en/$app_name_lc-2.html...\n";
open(APP_DOC_2_HTML, "> $location/$app_name_lc/doc/en/$app_name_lc-2.html") or die "Error: $!\n";

print APP_DOC_2_HTML << "EndOfAppDoc2Html";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>The $app_name Handbook: Installation</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="keywords" CONTENT="$app_name">
<META NAME="description" CONTENT="Documentation for $app_name">
</HEAD>

<BODY BGCOLOR="#ffffff" LINK="#8E2727" VLINK="#8E2727" TEXT="#000000" > 
<FONT FACE="Arial,Helvetica">
<TABLE BORDER=0 CELLSPACING=2>
<TR><TD>
<IMG SRC="$app_name_lc.gif" BORDER="0" ALT="$app_name" ALIGN="TEXTTOP">
</TD><TD>
<FONT SIZE="+2"><B>$app_name</B></FONT><BR><FONT SIZE="-1">Version
$app_version</FONT>
</TD></TR>
</TABLE>
<HR WIDTH="600" SIZE=2 ALIGN="LEFT" NOSHADE>

<TABLE WIDTH="600" CELLSPACING=0 CELLPADDING=0>
<TR>
<TD>
<P ALIGN="RIGHT">

Next <A HREF="$app_name_lc-1.html">Previous</A> <A HREF="$app_name_lc.html#toc1">Table of Contents</A>
</P>
<H3><A NAME="s2">2. Installation</A></H3>
<P>
<H3><A NAME="ss2.1">2.1 How to obtain $app_name</A></H3>
<P>
<H3><A NAME="ss2.2">2.2 Requirements</A></H3>
<P>
<H3><A NAME="ss2.3">2.3 Compilation and installation</A></H3>
<P>
In order to compile and install $app_name on your system, type the following in
the base directory of the $app_name distribution:
<BLOCKQUOTE><CODE>
<PRE>
% ./configure
% make
% make install
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Since $app_name uses <CODE>autoconf</CODE> you should have not trouble
compiling it.
Should you run into problems please report them to the the author at
<A HREF="mailto:$email">$email</A>
<P>

<P ALIGN="RIGHT">

Next <A HREF="$app_name_lc-1.html">Previous</A> <A HREF="$app_name_lc.html#toc1">Table of Contents</A>
</P>
<CENTER>
<HR WIDTH="100%" SIZE=3 ALIGN=CENTER NOSHADE>
</CENTER>    
</FONT>

</TR></TD></TABLE>
</BODY>
</HTML>
EndOfAppDoc2Html
close(APP_DOC_2_HTML);

############################################################################
print "Creating AUTHORS...\n";
open(AUTHORS, "> $location/AUTHORS") or die "Error: $!\n";

print AUTHORS << "EndOfAuthors";
$name <$email>
EndOfAuthors

############################################################################
print "Creating VERSION...\n";
open(VERSION, "> $location/VERSION") or die "Error: $!\n";

print VERSION << "EndOfVersion";
$app_name v$app_version
EndOfVersion

############################################################################
print "Creating README...\n";
open(README, "> $location/README") or die "Error: $!\n";

print README << "EndOfReadme";
$app_name v$app_version
$name <$email>
----------------------------------------------------------------------
This is the stock README
EndOfReadme

############################################################################
print "Creating $app_name_lc.lsm...\n";
open(LSM, "> $location/$app_name_lc.lsm") or die "Error: $!\n";

print LSM << "EndOfLsm";
Begin3
Title:          $app_name -- Some description
Version:        $app_version
Entered-date:   
Description:    
Keywords:       KDE Qt
Author:         $name <$email>
Maintained-by:  $name <$email>
Home-page:      
Alternate-site: 
Primary-site:   ftp://ftp.kde.org/put/kde/unstable/apps/utils
                xxxxxx  $app_name_lc-$app_version.tar.gz
                xxx     $app_name_lc-$app_version.lsm
Platform:       Linux. Needs Qt and KDE
Copying-policy: GPL
End
EndOfLsm

###########################################################################
print "Creating $app_name_lc/doc/en/$app_name_lc.gif...\n";
open(GIF_FILE, "> $location/$app_name_lc/doc/en/$app_name_lc.gif") or die "Error: $!\n";
printf GIF_FILE "%c%c%c%c%c%c", 0x47, 0x49, 0x46, 0x38, 0x39, 0x61;
printf GIF_FILE "%c%c%c%c%c%c", 0x20, 0x0, 0x20, 0x0, 0xc2, 0x0;
printf GIF_FILE "%c%c%c%c%c%c", 0x0, 0x0, 0x0, 0x0, 0xff, 0xff;
printf GIF_FILE "%c%c%c%c%c%c", 0xff, 0x58, 0x58, 0x58, 0xc0, 0xc0;
printf GIF_FILE "%c%c%c%c%c%c", 0xc0, 0xa0, 0xa0, 0xa4, 0x40, 0x0;
printf GIF_FILE "%c%c%c%c%c%c", 0x0, 0xff, 0xff, 0xff, 0xff, 0xff;
printf GIF_FILE "%c%c%c%c%c%c", 0xff, 0x21, 0xf9, 0x4, 0x1, 0xa;
printf GIF_FILE "%c%c%c%c%c%c", 0x0, 0x6, 0x0, 0x2c, 0x0, 0x0;
printf GIF_FILE "%c%c%c%c%c%c", 0x0, 0x0, 0x20, 0x0, 0x20, 0x0;
printf GIF_FILE "%c%c%c%c%c%c", 0x0, 0x3, 0xf6, 0x68, 0xba, 0xdc;
printf GIF_FILE "%c%c%c%c%c%c", 0xfe, 0x30, 0xca, 0x49, 0xab, 0x65;
printf GIF_FILE "%c%c%c%c%c%c", 0x20, 0xe7, 0xb, 0xb5, 0x1, 0x41;
printf GIF_FILE "%c%c%c%c%c%c", 0x8, 0x7c, 0x1b, 0xf7, 0x85, 0x1;
printf GIF_FILE "%c%c%c%c%c%c", 0x20, 0xa0, 0x2, 0x28, 0x56, 0x9e;
printf GIF_FILE "%c%c%c%c%c%c", 0x1b, 0xae, 0x33, 0x9a, 0x92, 0xe3;
printf GIF_FILE "%c%c%c%c%c%c", 0x3, 0xc, 0x62, 0x40, 0xdb, 0xc0;
printf GIF_FILE "%c%c%c%c%c%c", 0x95, 0x2c, 0x87, 0xa1, 0xf1, 0x64;
printf GIF_FILE "%c%c%c%c%c%c", 0x40, 0x20, 0xb2, 0xd5, 0x0, 0x10;
printf GIF_FILE "%c%c%c%c%c%c", 0x4, 0xbc, 0x40, 0x34, 0x49, 0x9d;
printf GIF_FILE "%c%c%c%c%c%c", 0xd, 0x88, 0xa, 0xe7, 0x13, 0x1a;
printf GIF_FILE "%c%c%c%c%c%c", 0x9a, 0x56, 0x67, 0xd0, 0x6b, 0x93;
printf GIF_FILE "%c%c%c%c%c%c", 0x40, 0x26, 0x48, 0xa3, 0x5e, 0xea;
printf GIF_FILE "%c%c%c%c%c%c", 0x60, 0x2d, 0xce, 0x6a, 0x34, 0xc6;
printf GIF_FILE "%c%c%c%c%c%c", 0xa8, 0x26, 0xd9, 0x7a, 0x6f, 0x76;
printf GIF_FILE "%c%c%c%c%c%c", 0xec, 0xf5, 0xb9, 0xab, 0xbd, 0x7e;
printf GIF_FILE "%c%c%c%c%c%c", 0x51, 0x23, 0x76, 0x19, 0x7a, 0x7a;
printf GIF_FILE "%c%c%c%c%c%c", 0x7d, 0x3b, 0x4a, 0x82, 0x1f, 0x65;
printf GIF_FILE "%c%c%c%c%c%c", 0x64, 0x78, 0x84, 0x57, 0x83, 0x5d;
printf GIF_FILE "%c%c%c%c%c%c", 0x80, 0x79, 0x62, 0x5a, 0x8c, 0x93;
printf GIF_FILE "%c%c%c%c%c%c", 0x8e, 0x5d, 0x68, 0x22, 0x79, 0x81;
printf GIF_FILE "%c%c%c%c%c%c", 0x8c, 0x8d, 0x83, 0x79, 0x7b, 0x52;
printf GIF_FILE "%c%c%c%c%c%c", 0x19, 0x52, 0x29, 0x78, 0x9d, 0x8d;
printf GIF_FILE "%c%c%c%c%c%c", 0x57, 0x4, 0xa9, 0x6c, 0x7b, 0x3b;
printf GIF_FILE "%c%c%c%c%c%c", 0x2e, 0x47, 0x94, 0xa0, 0x19, 0x96;
printf GIF_FILE "%c%c%c%c%c%c", 0x97, 0x84, 0xa7, 0x2e, 0x1e, 0x27;
printf GIF_FILE "%c%c%c%c%c%c", 0xb4, 0xb5, 0xb6, 0xad, 0x9f, 0x4e;
printf GIF_FILE "%c%c%c%c%c%c", 0x44, 0x20, 0x95, 0xa9, 0xa0, 0x8f;
printf GIF_FILE "%c%c%c%c%c%c", 0x9c, 0x6c, 0xc1, 0xb, 0xc3, 0x65;
printf GIF_FILE "%c%c%c%c%c%c", 0x9f, 0xab, 0xc9, 0xcf, 0x6b, 0xce;
printf GIF_FILE "%c%c%c%c%c%c", 0xc2, 0x29, 0xbd, 0xaa, 0xd3, 0xc8;
printf GIF_FILE "%c%c%c%c%c%c", 0xd7, 0xcb, 0xd5, 0xab, 0x0, 0x5;
printf GIF_FILE "%c%c%c%c%c%c", 0xaa, 0xd1, 0xe0, 0xaf, 0xb3, 0xab;
printf GIF_FILE "%c%c%c%c%c%c", 0xdb, 0xc1, 0x20, 0xe0, 0xdd, 0x1a;
printf GIF_FILE "%c%c%c%c%c%c", 0xcd, 0x3, 0xdd, 0xda, 0xcb, 0x77;
printf GIF_FILE "%c%c%c%c%c%c", 0xa3, 0x9e, 0xc9, 0x5a, 0x3b, 0xe5;
printf GIF_FILE "%c%c%c%c%c%c", 0xba, 0x3a, 0xf2, 0x81, 0xc9, 0x8a;
printf GIF_FILE "%c%c%c%c%c%c", 0xf6, 0x58, 0x11, 0xe8, 0x94, 0x7d;
printf GIF_FILE "%c%c%c%c%c%c", 0xea, 0xd7, 0xee, 0x5f, 0x87, 0x51;
printf GIF_FILE "%c%c%c%c%c%c", 0x39, 0x6, 0x92, 0x28, 0x68, 0x1;
printf GIF_FILE "%c%c%c%c%c%c", 0x9f, 0x42, 0x1c, 0x26, 0x30, 0xbc;
printf GIF_FILE "%c%c%c%c%c", 0xb1, 0x90, 0x0, 0x0, 0x3b;
close(GIF_FILE);

########################################################################
# Now dump all the "as-is" files
########################################################################
print "Extracting all unmodified files...\n";
system("gzip -dc as-is.tgz | tar xpf - -C $location") == 0 or die "Could not extract files: $!";

chdir $location;

print "Running aclocal...\n";
system("aclocal") == 0 or die "Could not run aclocal: $!";

print "Running autoheader...\n";
system("autoheader") == 0 or die "Could not run autoheader: $!";

print "Running autoheader...\n";
system("autoheader") == 0 or die "Could not run autoheader: $!";

print "Running automake...\n";
system("automake --include-deps") == 0 or die "Could not run automake: $!";

print "Running autoconf...\n";
system("autoconf") == 0 or die "Could not run autoconf: $!";

print "Creating stamp-h.in...\n";
system("touch stamp-h.in") == 0 or die "Could not touch stamp-h.in: $!";

print "DONE!\n\n";
