[haiku-development] Re: [haiku] Can't build (jam) anyboot-image because of artificial barrier

  • From: "Thomas Mueller" <mueller6723@xxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 04 Aug 2014 04:13:42 +0000

> What you want to change is what I pointed last time.

> > I am new to jam, more familiar with make (BSD and GNU variants).
> 
> > I noticed no man page; documentation was in HTML (GNU info is my
> > least favorite).

> The BeOS tradition is to use HTML. Most ported packages now propose
> manpages because that's what is installed, and sometimes HTML, but we
> didn't really work on having man fully functional AFAIK. At least I
> remember it failing.

> François.

HTML is good for me, but HTML viewer is not included in BSD base systems.

Linux base system is not well-defined among the many distributions.

I made the changes, but failed for a different reason:

Starting build of type regular ... 
warning: unknown rule SUPPORTED_PLATFORMS=
WebKit build feature not available for x86_gcc2 
Gutenprint support not available on x86 
qrencode support not available on x86 
/home/nbarlene/haiku/haiku/src/build/libsolv/Jamfile: Please add a case for 
your platform (netbsd)! 

WebKit, Gutenprint and qrencode errors look like something that would fail 
equally buiding from NetBSD, FreeBSD, Linux or possibly even native Haiku.

I can't see where configure script stores what to build (jam).

Is there any way to tell jam to skip these packages, or do I have to rerun 
nbconfigure in another "generated" directory?

My configure command was

../nbconfigure --build-cross-tools x86_gcc2 ../../buildtools 
--build-cross-tools x86 --use-xattr-ref --include-gpl-addons --include-3rdparty 

Maybe the latter two or three parts were overambitious?

From FreeBSD, I succeeded building x86_gcc2 but failed on x86 (gcc4).  It looks 
like I would not be able to jam for x86_gcc2 only (nothing in build 
subdirectory) but would have to start over.

The last line of the log regards HAVE_FUNOPEN and FOPENCOOKIE, also 
HAVE_QSORT_R or HAVE__QSORT:

# One of the following must be defined:
# * HAVE_FUNOPEN / HAVE_FOPENCOOKIE
#
# One of the following can be defined:
# * HAVE_QSORT_R / HAVE___QSORT ?
switch $(HOST_PLATFORM) {
        case linux :
                DEFINES += HAVE_STRCHRNUL HAVE_QSORT_R HAVE_FOPENCOOKIE ;
        case haiku_host :
                DEFINES += HAVE_FOPENCOOKIE ;
        case freebsd :
                DEFINES += HAVE_FUNOPEN ;
        case darwin :
                DEFINES += HAVE_FUNOPEN HAVE_QSORT_R ;
        case * :
                Exit $(SUBDIR)/Jamfile: "Please add a case for your platform"
                        "($(HOST_PLATFORM))!" ;
}

I see "man funopen" and "man qsort" in section 3, but no fopencookie; also 
openbsd is absent in the above cited lines.

I guess I need to add

    case netbsd :
        DEFINES += HAVE_FUNOPEN

or possibly change "case freebsd" to "case freebsd, netbsd" : syntax that I 
believe works in C and C++, but am not sure about jamfiles.

Tom


Other related posts: