configure recursively and build question

Lowell Gilbert freebsd-questions-local at be-well.ilk.org
Tue Mar 12 20:17:33 UTC 2013


Istvan Gabor <suseuser04 at lajt.hu> writes:

> As there are no compiled FreeBSD 9.1 packages for pkg_tools I decided to build them.
> Last I started to build kde3. First I issued make configure-recursive in
> /usr/ports/x11/kde3, then make install clean, and left the computer for overnight to work.
> I expected a successful build by the morning but instead I found a screen requiring some
> config options (for apache). I selected the options and the build went on.
> But later other config windows came up, so far for mysqlclient, sane-backends,
> tk, tcl, libxine and sdl. So my question are:
>
> What is configure-recursive good for then? I thought it is for preventing interactions
> during the build process. Ho can I really configure everything in one step and leave
> the computer alone?

First of all, I think you mean config-recursive. 

Second, config-recursive only does the configuration of the port
options.

Third, handling of ports options has recently been changed to a new
system.  See <http://wiki.freebsd.org/Ports/Options/OptionsNG>; intended
for porters but revealing much internal workings. There may be some bugs
(I think I've noticed a few but haven't looked much into it.  You might
want to ask the ports list about that.

Fourth (and, you'll be glad to hear, finally) some ports are interactive
for reasons beyond options. See the manual for ports(7), noting the
environment variables INTERACTIVE and BATCH.

> Second, after I've done a configure-recursive, how can I start it over from scratch in case
> I want to change some config option? If I reissue make configure-recursive,
> I get only no configuration needed messages.

If you really want to start from scratch, you can use
"rmconfig-recursive" on the dependent port. Or to start *all* ports from
scratch, remove the contents of /var/db/ports/.

But generally you won't want to do that. What you really want is most
likely to be for one particular port, or for its full tree of
dependencies. In the first case, go to that port's directory and just do
a "make config" there. In the second case, go to that port's directory
and use "make showconfig-recursive" to figure out which ports actually
need to be changed.

I hope that helps.


More information about the freebsd-questions mailing list