=== Overview ===
commitd8c3381095ff1ae9dec8cbfd1e0ef7ef57cc4469
authordwk <dwk@b022f027-f587-4676-bc72-f0cf7b603704>
Wed, 26 Mar 2008 18:16:41 +0000 (26 18:16 +0000)
committerdwk <dwk@b022f027-f587-4676-bc72-f0cf7b603704>
Wed, 26 Mar 2008 18:16:41 +0000 (26 18:16 +0000)
tree3cfb3fc44963338b97c013a845532f4ee5734cb9
parent1f91e975cb5879b1a600d7b0a022a1c5bfc7730b
=== Overview ===

=== Autotools build system ===

Replaced most of the previous custom-Makefile-based build system with an autotools one. ("autotools" means aclocal, autoheader, autoconf, automake, ./configure, Makefile.am's, Makefile.in's, etc.)

*** Added files ***
- AUTHORS, because autotools likes it.
- autotool.sh, to run all of the autotools programs in the right order.
- configure, the generated configure script.
- configure.ac, the configure input script, with libraries and functions to check for and so on.
- dist_files.sh, a hopefully temporary script to generate a list of files to add into a xuni distribution. Adds files that have been added to SVN control but not yet committed (and that do not appear in "svn list -R"). Also excludes files that will be deleted upon the next commit.
- ./Makefile.am, which handles the "memcheck", "permissions", "wc", and "doc" targets. ("doc" uses the old Makefile in doc/.) Also, implicitly, handles the dist target.
- makewc.sh, to correctly count xuni's lines. Uses a .y file instead of a .c file where such exists, and finds lone header files like version.h too. (The previous "make wc" target was actually counting version.h twice!)
- config.h, automatically generated, which contains information about which functions and libraries are available.
- Makefile.am's in src/ and each of its subdirectories.

*** Removed files ***
All previous Makefile's and Makewin's and the partial Makenew. (Which was never committed.)

*** Notes ***
The new build system still lacks some features of the old one -- notably, there is no "profile" target. It also needlessly generates some libraries in each of src/'s subdirectories.

On the other hand, more warning flags are passed to GCC, dependencies work properly, and it should compile with only one of libexpat and libmxml, not requiring both. (In theory. Right now you still need both header files.) Plus adding new source files is much easier.

=== Miscellaneous ===

*** Resource code optimisation ***
- Made libexpat.c::new_resource_data() use libmxml's create_element(), after moving the latter function into resource.c, of course.
- Modularized some of convert_mxml_tree() into convert_mxml_attributes().
- Removed the commented-out code in libmxml.c.
- Instead of recursing for every element in the tree, convert_mxml_tree() is now not recursive at all! This is quite a bit more efficient.

*** Notes ***
- VERSION was renamed to XUNI_VERSION, because autotools use a macro called VERSION. Perhaps the two macros could be made into one.
- Removed all of the "variable might be used uninitialized" warnings found because autotools passes more flags to GCC. They were unfounded, but this unfoundedness depended on other functions, so better safe than sorry.
- loadso.c still generates the "conversion of object pointer to function pointer type" warning. There doesn't seem to be a way around this.
36 files changed:
AUTHORS [new file with mode: 0644]
Makefile [deleted file]
Makefile.am [new file with mode: 0644]
Makewin [deleted file]
TODO
autotool.sh [new file with mode: 0755]
configure [new file with mode: 0755]
configure.ac [new file with mode: 0644]
dist_files.sh [new file with mode: 0755]
gui/PenguinAttack.ttf [new file with mode: 0644]
makewc.sh [new file with mode: 0755]
src/Makefile [deleted file]
src/Makefile.am [new file with mode: 0644]
src/Makewin [deleted file]
src/config.h [new file with mode: 0644]
src/editor/Makefile [deleted file]
src/editor/Makefile.am [new file with mode: 0644]
src/editor/Makewin [deleted file]
src/resource/Makefile [deleted file]
src/resource/Makefile.am [new file with mode: 0644]
src/resource/Makewin [deleted file]
src/resource/libexpat.c
src/resource/libmxml.c
src/resource/resource.c
src/resource/resource.h
src/test/Makefile [deleted file]
src/test/Makefile.am [new file with mode: 0644]
src/test/Makewin [deleted file]
src/test/test.so [new file with mode: 0755]
src/version.h
src/widget/Makefile [deleted file]
src/widget/Makefile.am [new file with mode: 0644]
src/widget/Makewin [deleted file]
src/widget/label.c
src/widget/panel.c
src/xuni.c