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