2in1 port dirty tricks

Yar Tikhiy yar at comp.chem.msu.su
Fri Jun 4 15:39:46 GMT 2004


Hi folks,

Today I tinkered with a port (mail/milter-sender) that actually
consisted of two independent parts, a library and a program.  They
share the same directory structure, but each of them has its own
subdirectory, configure script, and makefile.  Unfortunately, putting
the library into a separate port isn't an option since the library
seems tightly coupled with the program, so their versions must match
accurately.

The port uses a hack to overcome such a problem--it mimics the
corresponding part of bsd.port.mk to call configure and then make
for the library.  The drawback of this approach is obvious: code
duplication--should bsd.port.mk change, the port will need to be
changed too.  I can see a somewhat better way: put configure and
makefile wrappers just above the directories for the program and
the library (named "milter-sender" and "lib") as follows:

=== begin configure ===
#!/bin/sh

for dir in lib milter-sender; do
	(cd $dir && (./configure "$@" || exit 1))
done
=== end configure ===

=== begin makefile ===
SUBDIR=	lib milter-sender
.include <bsd.subdir.mk>
=== end makefile ===

and then set WRKSRC accordingly.

Or is there the Right Way to address this problem I don't know of?

-- 
Yar


More information about the freebsd-ports mailing list