Simplify autogen.sh. This script is expected to perform only the autoconf specific setup, but not run configure, make or the test suite, so remove everything which is not related to autoconf. People who prefer to run everything in one go can easily do so by writing their own script, for example autogen-local.sh. Add a line to .gitignore which ignores files matching *-local* to prevent such files from showing up in git status.
.gitignore: Remove web/dia/overview.pdf. The overview has been removed long ago.
Switch to xz to compress tarballs. xz compresses better than bzip2, and decompression needs less time. It is also widely used by many other software projects, so there should be no disadvantage. We keep removing the .bz2 tarball on make clean, and also keep the paraslash-*.tar.bz2 entry in .gitignore for the time being.
Simplify the error subsystem, get rid of error2.[ch]. This commit removes error2.c and the surrounding infrastructure of the build system, getting rid of ~600 LOC. After the change there are no more subsystems for error codes, and we don't need to host-compile error2.c any more. Since all executables now contain the text of every error code, the change has some impact on the sizes of the (stripped) executables: Before: After: 64K para_afh 71K para_afh 43K para_audioc 47K para_audioc 256K para_audiod 259K para_audiod 64K para_client 71K para_client 39K para_fade 47K para_fade 141K para_filter 144K para_filter 51K para_gui 59K para_gui 252K para_play 255K para_play 97K para_recv 104K para_recv 227K para_server 230K para_server 60K para_write 67K para_write This increase in size is justified by the major simplification.
.gitignore: Ignore *~ and *.rej files. These should never be under version control.
build: Use git version for tarball and AC_INIT(). It's kind of silly to use "git" as the version string at all times except for releases. This commit changes the name of the generated tarball to use the output of git describe. Hence the "tarball" target creates a tarball named according to the current git HEAD. For compatibility we provide a symlink with the old name.
build: Introduce cmdlist_dir. This puts all files generated by command_util.bash into a new subdirectory inside the build directory. This way we don't need to special-case these files any more in .gitignore, Doxyfile, make clean. The compiler and depend.sh need to know this directory, so we add -I$(cmdlist_dir) to CPPFLAGS and introduce a new parameter for depend.sh. To prevent cpp from including stale versions of the *command_list.h files in the top level directory (left over from a previous build) this commit renames the generated files slightly. For example, audiod_completion.h becomes audiod.completion.h.
Overview: Add new slides, powered by dia. This replaces the skencil file by a dia source file which contains several overview slides. Makefile and .gitignore are adjusted accordingly.
Makefile: Move generated files to build directory. This instructs the build system to store the generated ggo files, all objects and depend files, and the man pages in the new "build" directory.
Remove some stale entries from .gitignore.
command_util: Remove code for generating .c files. Now that the *_command_list.c files are no longer needed we may remove this mode from command_util.sh. This makes quite a few headers of the .cmd files unused, so these can be removed as well.
Teach command_util to print also completions. This adds completion mode to command_util.sh. When exectuted in this mode, it prints array initializers for all supported commands. This will be used to generate the array of completers for para_client and para_audiod.
Fix git-version file creation. ATM, this does not work well, since only the executables depend on GIT-VERSION-FILE, but relinking these does not take into account the new contents of GIT-VERSION-FILE. Hence a "make clean" is necessary to produce executables that reports the correct version number. This patch changes GIT-VERSION-GEN so that it generates a preprocessor define instead of setting a Makefile variable. This value is written to stdout in any case and also to the file named "$1" if an argument was given and the current git version differs from the contents of this file (or if the file does not exist). In order to not have to recompile everything on version changes, the macros related to versioning are moved from para.h into the new version.h file which is included only where necessary. Makefile.in no longer uses phony targets to include the GIT_VERSION variable. Instead we simply execute $(shell ./GIT_VERSION_FILE version.h) at the top of the Makefile.
Merge branch 'maint'
Add *_command_list.c to .gitignore.
Add GIT-VERSION-FILE to .gitignore.
.gitignore: Ignore the objects directory.
Add some more derived files to .gitignore.
Add web_sync to .gitignore.
Add error2.h to .gitignore.