On 13 Jul 2011, Martin Gagnon wrote:

> There's no a big issue here.. it's just a kind of philosophical question.
> 
> I've notice that autosetup "./configure" will create a GNUmakefile instead
> of a Makefile. In my OpenBSD system, bsd make doesn't use the GNUMake file
> when I type "make". So if I type:
> 
>  # ./configure
>  # make
> 
> It will use the orignal Makefile that still is on the repository. So it's
> pretty easy here to be confused and someone can try to put special flag to
> the ./configure call with no effect. So seing that.. I've delete the old
> Makefile and type make again.. Bsd make doesn't use GNUmake file at all.. At
> least, autosetup have create a BSD compatible make file (even if it's named
> GNUmakefile). so I can type make -f GNUmakefile and it work fine..  just
> confusing...
> 
> May be same kind of confusion may happens on other system.
> 
> I guess it would be less confusing to generate a makefile named "Makefile"
> and may be rename the old static Makefile something else. Or may be someone
> might have a better idea to remove the confusion.


I'm worried that the normal Makefile will produce a subtly broken binary, and 
GNUmakefile will be ignored.

For the current release version, if I compile with a 'make' command on Solaris, 
I get a binary which will silently truncate all passwords entered to 8 
characters because HAVE_GETPASSPHRASE is not defined.

If I run the ./configure script, Solaris make (which isn't GNU make) will 
ignore GNUmakefile and build a broken binary again!

(Note that the autosetup stuff doesn't work on Solaris yet. Steve has a fix 
which has yet to be committed.)

There appear to be two solutions:

 1) Delete the current Makefile, get autosetup to produce a Makefile, and 
require every platform to ./configure.

 2) Whitelist platforms where Makefile works correctly. If you attempt to use 
Makefile on anything else, it asks you to run ./configure && make -f 
GNUmakefile.

I understand the desire to minimise the changes to the existing build system, 
but this compromise is dangerous. It relies on non-standard behaviour of GNU 
tools, which aren't likely to be used by default on the platforms most 
affected. This almost guarantees confusion and breakage on the platforms it's 
supposed to help.

As a user of fossil on an "unusual" platform, I really appreciate all the 
effort put into portability: thank you!

Ben



--
http://bens.me.uk/



_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to