waf confusion

Eric S. Raymond esr at thyrsus.com
Mon Sep 16 09:59:05 UTC 2019

Hal Murray via devel <devel at ntpsec.org>:
> wscript and friends have various things like:
>     if ctx.env.DEST_OS in ["freebsd", "openbsd"]:
>         ctx.env.PLATFORM_INCLUDES = ["/usr/local/include"]
> I think the PLATFORM_ part is leftover from an old old version of waf.
> ctx.env.PLATFORM_INCLUDES works because our code has things like:
>         includes=[
>             ctx.bldnode.parent.abspath(), "../include",
>             "%s/host/ntpd/" % ctx.bldnode.parent.abspath(), "."
>         ] + ctx.env.PLATFORM_INCLUDES,
> I think we should remove all the PLATFORM_ stuff in that area and remove all 
> the ctx.env.PLATFORM_INCLUDES from all the includes.
> I'll make the edits, but I'm not confident that I won't break something.  I 
> have tested it with NetBSD which is how I got this far.

If it'll build with those changes, you win.

> I'm not having much luck with the waf documentation.  Where is the section 
> that explains what ctx.env.INCLUDES does?  How about others like LIBPATH, 
> LDFLAGS, ...?
> Another chunk of documentation I'm looking for is how libraries work.  
> ntpd/wscript says:
>         use="libntpd_obj ntp M parse RT CAP SECCOMP PTHREAD NTPD "
>             "SSL CRYPTO DNS_SD %s SOCKET NSL SCF" % use_refclock,
> I'd like to understand that area.

The waf documentation is terrible. It's waf's one huge weakness -
I don't think that stuff is actually described explcitly anywhere.
The way I learned how to cope was basically by reading the hieroglyphics
in the existing reopo and naking small modifications.

You notice those are all library names. I think the way it works 
is that all-capsing the name tells waf to look in system-library
locations as well as locally.

> PS: We dropped support for OpenBSD a long time ago.  Should we leave things 
> like that around as a reminder, or clean them up to reduce clutter?

Clean them up. OpenBSD has its own time-sync daemon and isn't interested.  
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

More information about the devel mailing list