> On Nov 28, 2016, at 7:31 PM, A. Karl Kornel <k...@kornel.us> wrote: > > I am looking for advice on how best to handle a port for a program > that wants to build its own language bindings. > > I am writing a port for a program called "hivex", which is a tool and > an API for manipulating Windows Registry "hive" files. The API is > written in C, but it also is able to build support for Perl, Python, > OCaml, and Ruby. > > What makes this confusing is that additional language support is added > by `configure` switches (like --with-python and --without-ocaml), so > I don't think separate Portfiles would be the best option here. I'm > also not sure if subports would work either. > > Has anyone had to deal with this kind of situation before? Any advice > would be appreciated!
As Brandon already said, it's common to use variants for this. Ports that do this include boost, postgresql*, root[56], xapian-bindings, and vim/MacVim (among many others). A few ports do use subports or separate ports; these include subversion-* and swig. If you can manage it, this setup is best because other ports can then declare dependencies on your bindings (they cannot properly depend on variants), but it might require more work on your part. Depending on the build system, each subport might have to do a full build while only installing the bindings and discarding everything else. vq