Date: Sat, 1 Jul 2006 12:47:14 -0700 (PDT) From: <backyard1454-bsd@yahoo.com> To: Javier Echaiz <jechaiz@gmail.com>, "Michael P. Soulier" <msoulier@digitaltorque.ca> Cc: freebsd-questions@freebsd.org Subject: Re: batching port builds Message-ID: <20060701194714.33064.qmail@web81605.mail.mud.yahoo.com> In-Reply-To: <1c8c9de30607010520md22fe1es73ebd0d9a9b3345@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--- Javier Echaiz <jechaiz@gmail.com> wrote: > You can put BATCH=yes in your /etc/make.conf > > The settings for each port (if it has something to > config) are stored > in /var/db/ports/{port dir name}/options (just in > case you want to see > what the port assumed). > > If you want to configure ports (with than ncurses > blues screen) > sometimes and assume defaults in other cases perhaps > you should try > portupgrade -m BATCH=yes <package> on a need basis. > > As David suggested you can always do "make > config-recursive install > clean", to answer all the option questions before > the port builds. > > Warmly, > Javier > > >>On 30/06/06 David J Brooks said: > >> > >> If you do 'make -DBATCH' instead of 'make' - > you will use the preset > >> defaults for each port with options. Or you can > do > >> 'make config-recursive' - which will offer you > all the option screens for > >> the port in whose directory you're currently in > and all its dependencies. > >> > >> See 'man ports' for more information. > >> > >> To use those with 'portupgrade -a' will probably > take some custom scripting. > > > >Ah, so there's no make.conf option for this? > > > >Thanks, > >Mike > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to > "freebsd-questions-unsubscribe@freebsd.org" > the most convenient way to batch build ports is to use this sort of if statements in make.conf .if ${.CURDIR:M*/databases/mysql*} BUILD_STATIC=yes BUILD_OPTIMIZED=yes WITH_LINUXTHREADS=yes .endif #reference #http://blog.innerewut.de/articles/2006/01/14/upgrading-ports-and-preserve-make-options this will work with portupgrade even in dependancies because the port will always look to make.conf for default system settings. so .if ${.CURDIR:M*/foo/bar} BATCH=yes WITH_THISOPTION=yes WITHOUT_2NDOPTION=yes .endif will build with and without those options. just remember to prefix the OPTIONS in a menu config setup with WITH or WITHOUT to enable/disable what you want. Always make sure to remember WITH_FOO=no means WITH_FOO=yes, it should be WITHOUT_FOO=whatever_it_is_now_set. The good thing is individually you can choose to use one setting over the other, and this also ensures one ports options don't mess things up in another ones build. I know when I was blindly setting build options in make.conf weird problems began to arrise until I got errors about make.conf being too large. this can make make.conf get large so I've been meaning to move the port configs into port.conf instead and reference it in like .if ${.CURDIR:M*/usr/ports/*} include /foo/port.conf .endif I believe this is the correct syntax but I haven't tried it yet. This method is how I am batch building my servers. Ultimately I will make a Makefile to build what I need and let it do its thing. I wish this method was documented better. Although it is trivially simple if one understands makefiles so I can see why its not really discussed. It is none the less very effective and simple. What I would like to know is if there is a simple way to get the build options for every port in the collection so it can easily be brought into a "port.conf" file simply. I know I saw a command that would parse the makefiles of all the ports and do something to that effect but I can't recall it. -brian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060701194714.33064.qmail>