Re: Building sources twice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 18, 2010 at 11:10:34PM -0500, Toshio Kuratomi wrote:
> We have a few packages that need to build themselves from their sources
> twice.  For instance, vim builds three times (a minimal version for /bin/vi,
> and two versions with more dependencies for /usr/bin/vim and
> /usr/bin/gvim).  Working on the python3 Guidelines, it looks like we'll have
> some more with packages that build both python2 and python3 modules from
> source that undergoes an automated transformation as part of its build.
> 
> So there's approaches to doing this:
> 
> 1) Copy the source tree and build in both places
> 2) Build once with the python2 interpreter, copy the results away, and then
> build a second time with python3.
> 
> vim takes a C version of option #2 (build with one set of configure options,
> copy the results; make clean; and build with another set of options) but I'm
> not sure there's a reason for that.  It uses less disk space as we don't
> have to duplicate the source tree.  However, in software that might pollute
> its source tree when it builds (maybe substituting file paths directly into
> a source file, for instance), this could break.
> 
> Are there other reasons than I see for doing #2?

You should never be running "make clean" and rebuilding an existing 
source tree to produce a differently-configured binary, this will break 
debuginfo generation.

Most projects should allow use to use "VPATH" builds where 
srcdir!=builddir, if not it is generally pretty simple to fix up the 
Makefiles to support this.  Generally you'll do:

 mkdir build-one && cd build-one
 ../configure --some-options
 make
 cd ..
 mkdir build-two && cd build-two
 ../configure --other-options
etc

Regards, Joe
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux