Thx for the confirmation and the assessment. I'll have to look
at how svn does it.

> On Apr 24, 2015, at 6:34 AM, Stefan Sperling <[email protected]> wrote:
> 
> On Thu, Apr 23, 2015 at 12:28:33PM -0400, Jim Jagielski wrote:
>> I tried that, but gmake totally barfed...
> 
> I have the same issue on OpenBSD.
> 
> I think the GNU->BSD Makefile style transformation implemented by
> build/bsd_makefile is too simplistic. All it does it putting a dot in
> front of include statements: "include" -> ".include"
> It doesn't seem to handle other differences between GNU make and BSD make.
> 
> Cases such as CC_FOR_BUILD being set to an empty string:
> 
> build/config_vars.mk:CC_FOR_BUILD =
> 
> and then checked with ifdef and used if defined:
> 
> server/Makefile.in:ifdef CC_FOR_BUILD
> server/Makefile.in:     $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE 
> -o $
> @ $<
> 
> It's defined, but empty, so that's where the build failure comes from.
> 
> I can only build httpd trunk on OpenBSD by first disabling the BSD
> Makefile transformation logic and then using gmake:
> 
>  ./configure --disable-bsd-makefiles
>  gmake
> 
> (Also make sure to revert any local .mk changes created by prior runs
> of the bsd_makefile script -- they upset gmake.)
> 
> I don't think the current approach is a good one.
> Either write portable Makefiles, or decide on one particular implementation
> of make. The middle ground will tend to break down every now and then.
> Also, on BSD the local changes to .mk files in the working copy get in
> the way of 'svn diff' and 'svn commit'.
> 
> In the SVN project we write portable Makefiles which work with either
> implementation. This has been working out quite well.
> 
>>> On Apr 23, 2015, at 12:07 PM, Jeff Trawick <[email protected]> wrote:
>>> 
>>> On 04/23/2015 11:59 AM, Jim Jagielski wrote:
>>>> Hmmm... I am seeing some strangeness trying to get trunk to
>>>> build on FreeBSD 10.1... I get to ./server/ and then the
>>>> build dies w/
>>> 
>>> try gmake?
>>> 
>>> IIRC I had noticed that some BSD make compatibility was lost at some 
>>> point...
>>>> 
>>>>   -DCROSS_COMPILE -o gen_test_char
>>>>   make[2]: exec(-DCROSS_COMPILE) failed (No such file or directory)
>>>>   *** Error code 1
>>>> 
>>>> It looks like the Makefile.in->Makefile process is causing issues.
>>>> This is what I get in the Makefile:
>>>> 
>>>> 
>>>>   .include "$(top_builddir)/build/rules.mk"
>>>>   .include "$(top_srcdir)/build/library.mk"
>>>> 
>>>>   .ifdef CC_FOR_BUILD
>>>>   gen_test_char: gen_test_char.c
>>>>    $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
>>>>   .else
>>>>   gen_test_char_OBJECTS = gen_test_char.lo
>>>>   gen_test_char: $(gen_test_char_OBJECTS)
>>>>    $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
>>>>   .endif
>>>> 
>>>> So we can see where the error is... those shell vars aren't
>>>> defined/found. But why?
>>> 

Reply via email to