As of 7.5.5, Condor uses cmake to configure the build. For instructions on building Condor prior to that, see "Building Condor prior to 7.5.5" below. +{section: Confirm the build environment} +The README.building does a decent job of covering this, but usually +you'd basically need these revisions, or later: wget-1.9.1, tar 1.14, +autoconf-2.59. + {subsection: Space Needed for a Full Build} You may need around 6 Gigs to build a releasable package of Condor. If you just want to build eveything up to the releasable package, then you might need only 3 Gigs or so. +{subsection: Required Prereqs} +One needs, as a good start these revisions, or later, of these tools: +wget-1.9.1, tar 1.14, autoconf-2.59. If you are on a recent linux-flavor +machine, building Condor is pretty easy, the farther you get into +the fringe architectures, like ia64 hpux 11, the more prereqs you may +need. Luckily, the configure output is pretty good about telling you +about any tools you need to update. + + {section: Getting the source} {subsection: Directly from the GIT repository} @@ -38,6 +52,14 @@ will have available in the externals directory the tarball of manual pages needed by our packaging scripts. +{subsection: Externals required for Building} +Condor may use a sizable collection of externals which implement various feature +sets for Condor. Some examples are Kerberos, PostgreSQL, Globus. Condor sources +include an =externals/= directory which contains URLs to locate the required +externals and patches to be applied. There is only a small number of externals +that Condor absolutely requires to build, these are usually quite portable. + + {subsection: Required Prereqs} One needs, as a good start these revisions, or later, of these tools: cmake 2.8.3, wget-1.9.1, tar 1.14, autoconf-2.59. For a more complete list, run =nmi_tools/glue/SubmitInfo.pm= and look at the listed prereqs for a platform as similar to the one you are using as possible. @@ -53,6 +75,10 @@ {section: Configure your build} +{subsection: Condor versions 7.5.5 and later} + +See the new build {link: https://condor-wiki.cs.wisc.edu/index.cgi/wiki?p=BuildModernization instructions} + The common options for configuring Condor to be built the 'UW way' are passed to cmake by running =configure_uw=. This will configure the build to use the UW externals collection rather than local system libraries. Additional arguments to cmake may be passed on the command line of =configure_uw=. On most common platforms, no additional build options are required. For other platforms, there are several ways to explore the build options: @@ -84,101 +110,12 @@ -DWITH_VOMS:BOOL=OFF {endcode} - -{section: Building your source} -While there are many targets to =make=, I will only describe the two that are -most likely what you want. - -{subsubsection: install} -=make install= will make a set of executable binaries and place them in -=release_dir/=. They will be dynamically linked and suitable for testing -by pointing a $(RELEASE_DIR) at it from a condir_configure file. - -{subsubsection: package} -=make package= will produce packages similar to what you can download from the -UW download site for the machine upon which you are building. - -{section: Running the developer test suite} -=make tests= will prepare Condor for testing, but it will not run the tests. To run the tests, use =./batch_test.pl -b=. - - - - - - - - - - - - - -{section: Building Condor prior to 7.5.5} -Before 7.5.5, Condor used configure + imake to generate makefiles. - -{section: Confirm the build environment} -The README.building does a decent job of covering this, but usually -you'd basically need these revisions, or later: wget-1.9.1, tar 1.14, -autoconf-2.59. - -{subsection: Required Prereqs} -One needs, as a good start these revisions, or later, of these tools: -wget-1.9.1, tar 1.14, autoconf-2.59. If you are on a recent linux-flavor -machine, building Condor is pretty easy, the farther you get into -the fringe architectures, like ia64 hpux 11, the more prereqs you may -need. Luckily, the configure output is pretty good about telling you -about any tools you need to update. - -{subsection: Space Needed for a Full Build} - -You may need around 6 Gigs to build a releasable package of Condor. If you -just want to build eveything up to the releasable package, then you might -need only 3 Gigs or so. - -{section: Getting the source} - -{subsection: Directly from the GIT repository} -If you reside on the CSL networks and/or have access to our GIT repository, -then follow ManagingCondorSourceTreesWithGit up to but not including the -section entitled =Working on a single person project=. - -Ensure you have checked out and are about the build the correct branch you want. - -If you'd like to perform the full build process, producing the sort of -package one downloads from our website with the source, then you should -grab the tarball of man pages =make public= needs from AFS: - -{code} -# sitting at the toplevel with src/ config/ externals/ etc.... -% cp /p/condor/workspaces/externals/bundles/man/current/man-current.tar.gz externals/man/current -{endcode} - -{subsection: From our download pages} -If you are building Condor sources from our -{link: http://www.cs.wisc.edu/condor/downloads-v2/download.pl download} -page. Then download the source tarball, it'll have a name similar to -=condor_src-X.Y.Z-all-all.tar.gz=. X.Y.Z represents the version of Condor -for which the source creates. - -When you untar the source tarball, what you get is remarkably similar to -what one would check out of GIT and should be directly buildable. You -will have available in the externals directory the tarball of manual -pages needed by our packaging scripts. - -{subsection: Externals required for Building} -Condor may use a sizable collection of externals which implement various feature -sets for Condor. Some examples are Kerberos, PostgreSQL, Globus. Condor sources -include an =externals/= directory which contains URLs to locate the required -externals and patches to be applied. There is only a small number of externals -that Condor absolutely requires to build, these are usually quite portable. - -{section: Configure your build} -If you are building a new version of condor with cmake, see the new build {link: https://condor-wiki.cs.wisc.edu/index.cgi/wiki?p=BuildModernization instructions} -{subsection: build_init} +{subsection: Configuring Condor 7.5.4 and earlier} +{subsubsection: build_init} {code} % ./build_init {endcode} -{subsection: On "native" platforms} +{subsubsection: On "native" platforms} On these platforms, configure should just "work": *:: *hppa_hpux_11* *:: *ia64_rhas_3* @@ -199,7 +136,7 @@ % ./configure {endcode} -{subsection: On "non-native" platforms} +{subsubsection: On "non-native" platforms} On anything other than the above, *but in the same family*--e.g., ia64_rhas_4, you probably want to try and build the most minimal Condor build possible. Configure will mostly detect the right things about @@ -300,7 +237,27 @@ *: --with-sysname This can be arbitrary. + {section: Building your source} + +{subsection: Condor versions 7.5.5 and later} + +While there are many targets to =make=, I will only describe the two that are +most likely what you want. + +{subsubsection: install} +=make install= will make a set of executable binaries and place them in +=release_dir/=. They will be dynamically linked and suitable for testing +by pointing a $(RELEASE_DIR) at it from a condir_configure file. + +{subsubsection: package} +=make package= will produce packages similar to what you can download from the +UW download site for the machine upon which you are building. + + +{subsection: Condor versions 7.5.4 and older} +Before 7.5.5, Condor used configure + imake to generate makefiles. + While there are many targets to =make=, I will only describe the two that are most likely what you want. @@ -314,3 +271,32 @@ our download site for the machine upon which you are building. If you ever see two or more dashes in a row in the file name, it means they are named wrong and you might have to use =--with-platform= on configure and try again. + +{section: Running the developer test suite} + +{subsection: Building the tests} +{subsubsection: Condor 7.5.5 and later} + +{code} +$ make tests +{endcode} + +{subsubsection: Condor 7.5.4 and earlier} +{code} +$ cd src/condor_tests +$ make +{endcode} + +{subsection: Running the tests} +{code} +$ cd src/condor_tests +$ ./batch_test -b -c +{endcode} + +{subsubsection: Running the tests again} +Running the test suite leaves files and directories in the =src/condor_tests= directory that prevent the tests from running again. To solve this, either remove and recreate the =src/condor_tests= directory and build the tests again (as above), or (this doesn't remove everything, but enough to re-run the tests): +{code} +$ cd src/condor_tests +$ rm -fr TestingPersonalCondor +{endcode} +After either of these, you can re-run the tests as above.