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

Reply via email to