[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Condor-devel] change in how to build condor in 6.8.x and beyond
- Date: Wed, 2 Aug 2006 11:57:37 -0700
- From: Derek Wright <wright@xxxxxxxxxxx>
- Subject: [Condor-devel] change in how to build condor in 6.8.x and beyond
part of the changes i made in the TRUNK between the time i merged  
V6_7-branch in and when i created the V6_8-branch were to fix an  
issue that's been driving me nuts and creating a lot of problems (and  
work) for condor developers -- how we handle config.h.in.
------------------------------
short version:
------------------------------
to build condor, once you check-out from source, you should now run  
the "build_init" script in src.  this will check for the right  
versions of autoconf and autoheader, and run them to automatically  
generate a configure script and a valid config.h.in file.  this is  
already done for you if you use "new_workspace", and the nightly  
condor builds in NMI already do this.  so, this should only effect  
you if:
a) you setup your own build workspaces without new_workspace
or
b) you make changes to configure.ac and want to test them
in general, the new procedure for building condor should be:
1) get sources (cvs checkout, tarball, whatever)
2) cd src; ./build_init
3) ./configure
4) make
------------------------------
long version:
------------------------------
config.h.in is a file that's automatically generated by the  
"autoheader" tool by reading input from configure.ac.  it is the  
template that is converted into the real config.h once you run the  
configure script on a given platform.  when i first converted our  
build system to use config.h, i didn't want to change the process by  
which folks were accustomed to building condor, so i just committed  
the auto-generated config.h.in directly to src.  then, whenever  
someone changed configure.ac in a way that would cause a change in  
config.h.in, we had to remember to commit the new version of  
config.h.in.  this meant that folks touching configure.ac had to know  
about this mess, but most folks building condor did not.
however, this is a pain in the ass, and very error prone.  lots of  
people would change configure.ac in a way that required a new  
config.h.in but didn't realize they left the older, stale copy in the  
repository.  ultimately, getting condor developers to run autoheader  
themselves is the right solution.  however, by using a script for  
this we can a) check for the right versions of the tools (we  
currently require autoconf 2.59) and b) in the future, if we start  
using automake or something, the build process will remain the same,  
even if the steps taken by build_init have to change.
as always, if anyone has any questions, please ask.
thanks,
-derek
p.s. if there was an authoritative document on how to build condor  
from source, i'd update it, but given our current maze of scattered  
development docs, i'm not even sure what doc to edit. :(  this will  
all be changing in the near future as we move to a centralized,  
unified content management system (more on this later).