[phobos] linux.mak + osx.mak = GNUMakefile

Sean Kelly sean at invisibleduck.org
Tue Jul 27 11:29:44 PDT 2010


On Jul 27, 2010, at 11:14 AM, 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?
> 2. While they may be the same now, in the future they may be fairly different.
> 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
> 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.
> 5. I like being able to futz with one without risk of breaking all the other platforms that I didn't test it on.
> 6. I find differences in gnu make from system to system, for example, FreeBSD has a much more primitive implementation on it.

druntime has only 2 makefiles though: win32.mak and posix.mak, and I don't think it's ever confused anyone.  Why maintain multiple identical makefiles?  I do like being able to specify the makefile via -f though.  Some initial testing of tool parameter support is required, but once that's sorted out, further maintenance shouldn't be an issue.


More information about the phobos mailing list