This directory contains NOTHING for the admin to configure.

If you want to configure the IRC server, go to the top level directory and
type: 'make config'.

-------------------------------------------------------------------------------

If you are a coder and are adding a feature to the server that you need
automatic or manual configuration for, then this is where you need to
change things.

If you touch any of the following files, then you need to have 'autoconf'
(and 'autoheader') installed - you might also need GNU m4 and perl then:

configure.in
acconfig.h
setup.h.top

Never touch setup.h.in and stamp-h.in.
Don't run 'make maintainer-clean' when you don't have autoconf etc. installed.

If you touch any of the following files, then you need to have GNU make
in order to have the Makefiles correctly rebuild automatically:

parse.none
gen.ircd.Makefile
../ircd/Makefile.in
../doc/Makefile.in
../Makefile.in

Note that after running 'make config' special added code in config/Makefile
will remake the Makefiles as needed to allow the admins to use a non-GNU make.
But coders should use GNU make.

Here is a sheme of which files are needed to generate which files:

					 /> (config.log)
					/-> (config.cache)
configure.in  --(autoconf)--> configure --> config.status
	      \
acconfig.h    --(autoheader)--> setup.h.in --(config.status)--> setup.h
setup.h.top   /                (stamp-h.in)                    (stamp-h)

config-sh.in  --(config.status)--> config-sh --(Configure)--> config.h
				   (.config) -/		  \-> (.config)
							   \> (.config.old)
Makefile.in --(config.status)--> Makefile

The exectuable scripts (configure, config.status and Configure) should only be
called from Makefile (automatically, when needed, by means of makefile rules).

Further more, config.status is also used to (re)generate doc/Makefile and
ircd/Makefile (from respectively doc/Makefile.in and ircd/Makefile.in).
However, ircd/Makefile is not functional then, first also gen.ircd.Makefile
must be called.  All of this is done automatically by the Makefile rules
inside doc/Makefile and ircd/Makefile respectively.  Finally, gen.ircd.Makefile
also calls parse.none.  So:

../ircd/Makefile.in  --\
gen.ircd.Makefile    ----(config.status)--> ../ircd/Makefile
.config              --/
parse.none           -/

../doc/Makefile.in   --\
gen.doc.Makefile     ----(config.status)--> ../doc/Makefile
.config              --/
parse.none           -/

../Makefile.in   ----(config.status)--> ../Makefile

'Configure' uses the file ../doc/Configure.help for the help texts.

-------------------------------------------------------------------------------

Adding an 'autoconf' check.

1) Install GNU m4, autoconf & autoheader.
2) Add your check to configure.in, if needed also add an entry to acconfig.h
3) Add the #ifdefs to the source code.

Adding a manual configuration.

1) Edit config-sh.in and add the question.
2) Edit ../doc/Configure.help and add the help text !
3) If necessary, add something to parse.none to allow the use of the
   value 'none'.
4) If necessary edit gen.ircd.Makefile and ../ircd/Makefile to get your
   variable in ../ircd/Makefile.  (It will already be in config.h).
5) Add the #ifdefs to the source code.

In both cases, all needed files will be automatically (re) generated when
you run 'make' from the top level directory (you need GNU make though).

Carlo Wood
