Page MenuHomeDevCentral

No OneTemporary

diff --git a/beta/docs/HACKING b/beta/docs/HACKING
index 947f9b2..d4b0ef2 100644
--- a/beta/docs/HACKING
+++ b/beta/docs/HACKING
@@ -1,126 +1,130 @@
These are some notes on how to maintain and hack the Darkbot source
code. Part of this is justifications and assumptions, so that if an
assumption changes, we know what to change.
SOFTWARE REQUIREMENTS FOR DEVELOPERS
None of this stuff is required for ordinary users, this is what is
required to build from the cvs version. Most people should be able to
build from the distributed tarball (if there is one).
GNU M4 1.4
autoconf 2.59
automake 1.9
perl 5.005_3
AUTOCONF, AUTOMAKE, AND FRIENDS (AUTOFOO)
I've been researching recent autofoo best practises. Most users of
autofoo don't really understand it and just copy someone else's autofoo,
or follow one of several out of date tutorials. I've attempted to
create an up to date set of autofoo stuff that follows recent best
practises.
In an attempt to provide the autogen.sh and bootstrap.sh that are now
outdated, but that everybody is used to, I have added other scripts in
the top level directory. These scripts provide an easy to use method of
doing the usual things in the usual ways.
clean.sh - cleans up after all the other scripts, this includes deleting
the $HOME/darkbot default install directory.
bootstrap.sh - Do all the autofoo magic and generate the configure
script.
distribute.sh - calls bootstrap.sh to do all the autofoo magic, then
builds the source distribution archive from scratch.
autogen.sh - calls bootstrap.sh to do all the autofoo magic, then calls
the resulting configure script. Defaults to using $HOME/darkbot as the
prefix.
build.sh - builds darkbot, but assumes that bootstrap.sh has already
been run. It will run bootstrap.sh if needed. but this script is meant
for ordinary users installing from the source distribution archive.
build_small.sh - just like build.sh, only it turns off all the optional
code.
rebuild_all.sh - calls autogen.sh to configure everything, then builds
everything from scratch. This script is meant for developers installing
from cvs.
testing.sh - Same as build.sh, but turns on testing mode, for developers
only.
One of the major things I have attempted to do is to enable building
darkbot from "out of tree". That means building it from anywhere
outside of the directory that holds the source code. In this way the
downloaded darkbot directory can be kept pristine. There are now
scripts that create a directory called "build" and put generated files
in there.
I experimented a lot with clean ways of doing out of tree builds, but
inconsistancies in the way the various autofoo programs work means that
the only way that worked was to create a build directory, copy
configure.ac and Makefile.am into it, then build everything from there.
This does mean that the top level directory doesn't got a configure or a
Makefile.
Aclocal ignores the redirection of autom4te.cache to the build
directory. Autoconf (when run from autoreconf) insists on putting
configure in the same directory as configure.ac. Automake ignores the
redirection of aclocal.m4 to the build directory, and insists on putting
Makefile.in in the same directory as Makefile.am. Automake creates
make files that don't know how to make dist properly when building out
of tree.
LIBCOMPAT
This is a library of implementations of standard functions that may be
missing from a particular OS installation. Autoconf (via the configure
script) will detect if they are missing and build the contents of
libcompat as needed. These functions generally are copied from gnulib,
libiberty (part of gcc now) or uClibc. Select() and socket() are
checked for, but there is no replacement functions for them. It is
unlikely that replacements will be needed, when they are, then we can
worry about them. Alarm() is also checked for, but I'm giving it the
benefit of the doubt for now.
The --enable-testing option to configure will force the compiling of all
libcompat source code, as well as all other optional code so that it can
be tested.
Working cvs version on -
Linux CentOS 4.2
Linux Fedora Core 3
Linux Fedora Core 5
Linux SuSE 9.3
FreeBSD 6.1
Latest cygwin
Old cygwin (from the darkbot.org web site)
Failed cvs version on -
Linux Debian 3.1 sarge, it's too old, we require more up to date autotools.
Linux Fedora Core 2, it's too old, we require more up to date autotools.
FreeBSD 5.4, doesn't seem to have autotools at all.
NetBSD 2.0.2, it's too old, we require more up to date autotools.
OpenBSD 3.8, it's too old, we require more up to date autotools.
MacOS X 10.2, it's too old, we require more up to date autotools.
Solaris 9, it's too old, we require more up to date autotools.
Working distributed version on -
Linux Debian 3.0 sid
Linux Debian 3.1 sarge
Linux Fedora Core 2
+Linux Slackware 11.0
Linux SuSE Enterprise Server 9
FreeBSD 5.4
NetBSD 2.0.2
OpenBSD 3.8
MacOS X 10.2
Solaris 9
+Windows cygwin NT 5.1 (WinXP, cygwin 1.5 I think).
Failed distributed version on -
+Older cygwin from darkbot site.
+Windows SFU.

File Metadata

Mime Type
text/x-diff
Expires
Mon, Nov 25, 08:58 (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2259891
Default Alt Text
(5 KB)

Event Timeline