Re: trunk and FreeBSD 10.1

2015-04-24 Thread Jim Jagielski
There is also the magic that configure does at well, in
altering the directives (#ifdef - .ifdef, for example).

I think what I'll do is, if running under *BSD, see not only
if 'make' itself is really GNUmake, but also check for 'gmake'
and, if it exists, disable BSD makefiles.


Re: trunk and FreeBSD 10.1

2015-04-24 Thread Jim Jagielski
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 s...@apache.org 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 traw...@gmail.com 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?
 



Re: trunk and FreeBSD 10.1

2015-04-24 Thread Stefan Sperling
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 traw...@gmail.com 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?
  


Re: trunk and FreeBSD 10.1

2015-04-24 Thread Stefan Sperling
On Fri, Apr 24, 2015 at 07:20:01AM -0400, Jim Jagielski wrote:
 There is also the magic that configure does at well, in
 altering the directives (#ifdef - .ifdef, for example).
 
 I think what I'll do is, if running under *BSD, see not only
 if 'make' itself is really GNUmake, but also check for 'gmake'
 and, if it exists, disable BSD makefiles.

Or perhaps declare BSD make as unsupported and require GNU make.
That's the easiest short-term solution in my opinion. The existing BSD
make support doesn't work anyway and making it work is a larger effort.


trunk and FreeBSD 10.1

2015-04-23 Thread Jim Jagielski
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/

   -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?


Re: trunk and FreeBSD 10.1

2015-04-23 Thread Jeff Trawick

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?




Re: trunk and FreeBSD 10.1

2015-04-23 Thread Jim Jagielski
I tried that, but gmake totally barfed...

 On Apr 23, 2015, at 12:07 PM, Jeff Trawick traw...@gmail.com 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?