Automating Port Building- Setting options on the command line

Matthias Andree mandree at FreeBSD.org
Mon Apr 4 14:24:23 UTC 2011


Am 01.04.2011 02:49, schrieb Patrick Powell:
> First,  before you tell me to do it,  I have already RTFM, done a google
> search,
> and even looked for examples.   Here is what I am trying to do.
> 
> I have to generate a set of packages for amd64 and i386 systems.
> 
> I usually have a simple script that does:
> 
> cd /usr/ports/XXX
> make
> make install
> make package
> cp <generated package> /.../repository
> 
> 
> This served my simple needs well,  as most of the time I had gone through
> the configuration process and set up the default options that I wanted.
> 
> But this requires me to
> a)  run through this process once by hand
> b)  copy the /var/db/ports/* to a machine with another
>      architecture
> c)  pray that the port options are the same on the i386 and amd64
>      versions.
> 
> 
> What I would like to do is pass in a set of default options on the
> command line
> such as:
> 
> cd /usr/ports/lang/php5-extensions
> make configure THIS=yes THAT=no
> make
> make install
> make package
> 
> I just know that somebody out there is doing this better, slicker,
> and with more savvy than I am doing this.
> 
> OK.  How do I do this?   And just in case there are some others out there,
> could you put this information,  or a hint to it,  in the ports(7)
> document?

Just wondering what's keeping you from passing a set of WITH_ and
WITHOUT_ options on all the make (not just the configure) command line.
The OPTIONS framework should cope with that, and standard knobs are
documented in /usr/ports/KNOBS.

Also note that just "make package WITH_this=yes WITHOUT_that=no" should
suffice, no need to configure/"make"/install separately.

Also, you can tell portmaster to package newly-built ports (and use -m
to pass options on the make command line like you suggest), which means
that the package you're building and also all its dependencies are built
with the options in -m (or /etc/make.conf) and stored as regular
packages under /usr/ports/packages/.

HTH


More information about the freebsd-ports mailing list