mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 11:42:21 +00:00
The build system is adapted to make SHOPT_* compile-time options editable without nmake. We can now easily change ksh's compile-time options by editing src/cmd/ksh93/SHOPT.sh. The bin/package script is adapted to turn these into compile flags. This resolves the most important drawback of not using nmake. Also, mamake now has support for indented Mam (Make Abstract Machine) code. Only one type of block (make...done) is supported in Mamfiles, so they are easy to indent automatically. A script to (re)do this is included. Since nmake is not going to be restored (it has too many problems that no one is interested in fixing), this at least makes mamake significantly easier to work with. The Makefiles are deleted. They may still be handy for reference to understand the Mamfiles, but they haven't actually matched the Mamfiles for a while -- and you can still look in the git history. Deleting them requires some adaptations to bin/package and mamake.c because, even though they do not use those files, they still looked for them to decide whether to build code in a directory. Finally, this commit incorporates some #pragmas for clang to suppress annoying warnings about the coding style used in this historic code base. (gcc does not complain so much.) src/cmd/ksh93/SHOPT.sh: - Added. bin/package, src/cmd/INIT/package.sh: - cd into our own directory in case we were run from another dir. - $makefiles: only look for Mamfiles. - Add ksh compile-options via KSH_SHOPTFLAGS. Include SHOPT.sh. - make_recurse(): Do not write a missing Makefile. - finalize environment: Look for Mamfiles instead of Makefiles. src/cmd/INIT/mamake.c: - Tell clang to suppress annoying warnings about coding style. - Update version string and self-documentation. - input(): Add support for indented Mam code by skipping initial whitespace on each input line. - files[]: Instead of looking for various of Makefiles to decide where to build, only look for Mamfiles. src/Makefile, src/cmd/INIT/Makefile, src/cmd/Makefile, src/cmd/builtin/Makefile, src/cmd/ksh93/Makefile, src/lib/Makefile, src/lib/libast/Makefile, src/lib/libcmd/Makefile, src/lib/libdll/Makefile, src/lib/libsum/Makefile: - Removed. src/Mamfile, src/cmd/INIT/Mamfile, src/cmd/Mamfile, src/cmd/builtin/Mamfile, src/cmd/ksh93/Mamfile, src/lib/Mamfile, src/lib/libast/Mamfile, src/lib/libcmd/Mamfile, src/lib/libdll/Mamfile, src/lib/libsum/Mamfile: - Indent the code with tabs. - In ksh93/Mamfile, add ${KSH_SHOPT_FLAGS} to every $CC command. - In ksh93/Mamfile, add "prev SHOPT.sh" for every *.o file so they are rebuilt whenever SHOPT.sh changes. bin/Mamfile_indent: - Added, in case someone wants to re-indent a Mamfile. src/cmd/INIT/proto.c, src/cmd/INIT/ratz.c, src/cmd/INIT/release.c, src/lib/libast/features/common, src/lib/libast/include/ast.h: - Tell clang to suppress annoying warnings about coding style that it disapproves of (mainly concerning the use of parentheses). src/cmd/INIT/cc.darwin, src/cmd/INIT/cc.freebsd, src/cmd/INIT/cc.openbsd: - Remove now-redundant clang warning suppression flags. Resolves: https://github.com/ksh93/ksh/issues/60 |
||
---|---|---|
.. | ||
ignore | ||
Mamfile_indent | ||
mamprobe | ||
package | ||
shtests | ||
silent |