I agree with the complainant to some extent... the fpcmake files are very complicated, and make itself isn't the easiest utility to use for non (l)unix'ites -that's putting it vvvv mildly!-. However, I suppose whatever we do is going to be complicated, so we have to live with it.
The main problem is when someone mods the make process (as has happened a few times recently eg re cross, re the paths to utilities), and accidentally breaks something - as is currently the case with go32v2 & win32 snapshot making under win9x (still broken!). The big problem is, because it's so complicated, that there are only only a few developers who have access to all the various operating systems/targets can who can fix it.
Regards John
On Sun, Oct 12, 2003 at 01:55:41PM +0200, Florian Klaempfl wrote:
> Yakov Sudeikin wrote:
> >Let's get rid of fpcmake. Pascal is good because you do not need this
> >old-crap-make-utility to compile your programs! All you need is a
compiler!
Show quoted text 8 lines
>
> Not of you have hundred of files in a dozens of directories and you want
> to compile these source for more than one target.
The trouble I've found with fpcmake, is it's not that easy to create the
make files with. Quite difficult indeed. Mind you though, I've never
used any of the GNU Make utils either, eg: autoconf, etc...
FPC uses makefiles for the _core_ distribution for some reasons:
The primary reason is to build a sequence of packages with complex directories. More over the RTL also has dependancies within directories. (some units must be built first).
FPCMAKE is a way to keep makefile maintenance lower.
Other reasons are:
- to combine compiler processing with non-compiler processing (e.g. generate an includefile from some other file)
- to parameterise the build process (you can build full cross-snapshots with one command currently in 1.1).
- make is a fairly standard tool, and available on most platforms. FPCMAKE is only needed after alterations and while installing. This eases bootstrapping on totally foreign systems.
autoconf and automake are much more complicated, but do a lot more (interrogate the operating system about it's possbilities) So part of the "lower" parts of the RTL are configured by these tools for many platforms.
This is currently not possible for non C/C++ systems, since C headers can't 100% reliable autoconverted to Pascal. Maybe in the future if some OSes start providing the API in a more accessable format, this becomes possible.