Walter Bright wrote:
Andrei Alexandrescu wrote:
Hey folks,
I was building Phobos on OSX when I ran into a makefile bug that I'd
fixed in linux.mak. It was still present in osx.mak. I noticed the
files are virtually identical, so why not merge them?
Since the one thing that linux.mak and osx.mak have in common is the
fact that they're understood by gnu make (as opposed to win32.mak
which is used by Walter's own make utility), I'm thinking the new
makefile should be called GNUMakefile. That name is actually
understood by gmake which means no more -f.
I'm operating this change and will check in soon, please let me know
if you foresee any issues.
I prefer to keep them separate because:
1. It's very simple for the user to tell which makefile is for what
system. With win32.mak and GNUmakefile it's wtf?
It's "Oh, for gnu make I use GNUMakefile".
2. While they may be the same now, in the future they may be fairly
different.
I prefer to keep things factored together. Again, I am motivated by the
heavy current duplication and the fact that I fix bugs in one makefile
and then encounter them in the second.
By the way, I compel you to start using cygwin and gmake on Windows so
we can unify the three. We should revisit the "I tried cygwin and I
don't remember why it didn't work well" status.
3. I like to drive make with my own makefile which then sets some macros
and calls -flinux.mak, which would make it difficult to have a makefile
that is the default name
Why? you can alsways specify the default name explicity, i.e. -fGNUMakefile.
4. It's *not* a burden to have two makefiles for different platforms. I
think it's convenient and self-documenting to have a 1:1 correspondence
between platforms and makefiles.
I stand here to say that there is a significant burden. I've been the
maintainer of non-Windows makefiles and every single improvement I
brought to them has been very beneficial for me.
5. I like being able to futz with one without risk of breaking all the
other platforms that I didn't test it on.
That's what cp or svn are for.
6. I find differences in gnu make from system to system, for example,
FreeBSD has a much more primitive implementation on it.
We specialize for FreeBSD if so needed. Anyway, one key improvement in
the recent linux.mak is that it puts much less pressure on the gmake
version.
Andrei
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos