]> pd.if.org Git - pdclib.old/commit
* New feature check macro system. See _PDCLIB_aux.h for details
authorOwen Shepherd <owen.shepherd@e43.eu>
Sun, 12 Aug 2012 18:47:31 +0000 (19:47 +0100)
committerOwen Shepherd <owen.shepherd@e43.eu>
Sun, 12 Aug 2012 18:47:31 +0000 (19:47 +0100)
commitf7a440b9c7bb0c686dc2368c4ff53b20bf6371f8
tree742c41c66611b48750dea168002882fcfc8b4ace
parentbb22ff7ecd9fe8f4641484df12ad629cd8ee27ac
 * New feature check macro system. See _PDCLIB_aux.h for details
 * remove "#pragma weak" from strdup.c. It's nonportable and shouldn't be
   necessary
 * <string.h> changed to use new feature test system for strdup + strndup
 * add strndup implementation
 * <assert.h> more reliable handling of error messages

 Build system:
 * The CoreMake system is dead. It proved to be unscalable
 * The old Make based system is gone, also
 * We now use a Jam based system (requires the latest FT_Jam). Reasons:
  * Make is hard to scale in a non-recursive manner. The interactions get
    intractably complex
  * The build system depended upon GNU Make. GNU Make's license (the GPLv3) is
    about as diametrically opposed to PDCLib's CC0 as you can get without being
    closed source
  * Jam is actually more portable. In particular, it doesn't require a Unix
    emulation layer (unlike GMake)
  * The Jam system, as is, can be incorporated into the build system of a larger
    project.

Why Jam?
 * GNU make is too low level. It also incorporates too much magic: it can spend
   significant ammounts of time trying to update source files from SCCS and RCS
   files for example (a feature it is doubtful somebody has used in the last
   decade)
 * Systems like CMake are too high level: CMake is very difficult to use in a
   cross compilation environment.
 * Systems like Scons and Waf pose similar issues. Scons is also incredibly
   slow.
13 files changed:
CoreMakefile.mk [deleted file]
Jamfile [new file with mode: 0644]
Jamrules [new file with mode: 0644]
Makefile [deleted file]
functions/string/strdup.c
functions/string/strndup.c [new file with mode: 0644]
includes/assert.h
includes/string.h
internals/_PDCLIB_aux.h
platform/example/Config.jam [new file with mode: 0644]
platform/example/functions/_PDCLIB/_PDCLIB_Exit.c [moved from platform/example/functions/_PDCLIB/_Exit.c with 100% similarity]
platform/posix/Config.jam [new file with mode: 0644]
platform/posix/functions/_PDCLIB/_PDCLIB_Exit.c [moved from platform/posix/functions/_PDCLIB/_Exit.c with 100% similarity]