In article <20180413081040.j6lby3dwqq4srw3r@erebor>, Joseph Koshy <jko...@netbsd.org> wrote: >Consider a source tree with sub-directories (A) and (B), >where the code in directory (B) uses a file that is generated >by the build steps in directory (A). > >For an in-place build, the directory hierarchy might look like: > > $(TOP)/ > | > +-- A/ > | | > | +- generated-file > | > +-- B/ > | | > | +- uses-generated-file > etc. > >In the event an 'obj' directory is used, the tree might be >something like: > > $(TOP)/ > | > +-- A/ > | | > | +- obj/ > | | > | +- generated-file > | > +-- B/ > | | > | +- uses-generated-file > etc. > >If MAKEOBJDIRPREFIX is used, the obj/ tree could reside >somewhere else entirely: > > $(TOP)/ > | > +-- A/ > | > +-- B/ > | | > | +- uses-generated-file > etc. > > $(MAKEOBJDIRPREFIX)/$(TOP)/ > | > +-- A/ > | | > | +- generated-file > | > +-- B/ > | > etc. > >What would be the cleanest way to is there a way to determine >the path to an obj/ directory, given relative locations of >source directories (A) and (B)? > >For the Elftoolchain build I currently use nested conditional >blocks: > > .if exists(${.OBJDIR}/../A) > # For in-place builds, or when MAKEOBJDIRPREFIX is used. > .elif exists(${.CURDIR}/../A/${.OBJDIR:S,${.CURDIR}/,,} > # For builds using an obj/ directory. > .endif >
There is BINDPLIBS and LIBDPLIBS. Where is the actual example? christos