Overview
These instructions are for building HTCondor versions prior to 7.5.5. If you want to build HTCondor 7.5.5 or later, see BuildingHtcondorOnUnix.
Configure your build
build_init
% ./build_init
On "native" platforms
On these platforms, configure should just "work":- hppa_hpux_11
- ia64_rhas_3
- ppc64_sles_9
- ppc_aix_5.2-pl5
- ps3_ydl_5.0
- sun4u_sol_5.9
- x86_64_deb_5.0
- x86_64_rhap_5
- x86_64_rhas_3
- x86_deb_4.0
- x86_deb_5.0
- x86_macos_10.4
- x86_rhap_5
- x86_rhas_3
% ./configure
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 HTCondor
build possible. Configure will mostly detect the right things about
the platform identification. If this builds, then you can start turning
on more feature as you need them and rebuilding.
% ./configure \ --disable-proper \ --without-globus \ --without-krb5 \ --disable-full-port \ --without-voms \ --without-srb \ --without-hadoop \ --without-postgresql \ --without-curl \ --with-pcre \ --disable-quill \ --disable-gcc-version-check \ --disable-glibc-version-check \ --without-gsoap \ --without-glibc \ --without-cream \ --without-openssl
If ./configure has problems identifying your machine
If everything seems to work, but the package name on the tarballs
are wrong after you build them, then you'll want to use
--with-platform=*os*-*arch*-*distro* as in --with-platform=linux-ia64-sles8
.
In the case where ./configure
just goes very very wrong, you may have
to supply more arguments to configure which control deeper compilation
aspects. These arguments are somewhat fiddly since they often define actual
preprocessor symbols that the HTCondor code uses for conditional compilation.
This means that some of these arguments can not be specified arbitrarily.
It may be possible if you are "close" to a unix family we already support
that you can select a combination of these that will allow the build to be
completed.
These are:
- --with-arch <architecture>
This can only be one of:
- I386
- X86_64
- PPC
- ALPHA
- CONDOR_PPC
- IA64
- CONDOR_PPC
- HPPA
- SUN4X
- UNKNOWN_ARCH
- --with-os <OS Name>
This can only be one of:
- AIX
- HPUX
- LINUX
- SOLARIS
- DARWIN
- --with-kernel Mostly arbitrary, I don't think this is extensively used for conditional compilation. This will be something like 2.6.9-89.0.7.EL.cernsmp if on linux.
- --with-os_version <version>
This can only be one of:
- OSX_10_4
- OSX_UNKNOWN
- AIX5
- AIXUNKNOWN
- HPUX10
- HPUX11
- SOLARIS26
- SOLARIS27
- SOLARIS28
- SOLARIS29
- FREEBSD[5-7]
- LINUX_TAO1
- LINUX_TAO_UNKNOWN
- LINUX_YD30
- LINUX_YD50
- LINUX_YD_UNKNOWN
- LINUX_GENTOO1.12.11.1
- LINUX_GENTOO_UNKNOWN
- LINUX_FC[1-N]
- LINUX_RH72
- LINUX_RH80
- LINUX_RH9
- LINUX_SLES81
- LINUX_SLES9
- LINUX_SuSE_UNKNOWN
- LINUX_DEBIAN40
- LINUX_DEBIAN50
- LINUX_DEBIAN_UNKNOWN
- LINUX_UNKNOWN
- --with-sysname This can be arbitrary.
Building your source
Before 7.5.5, HTCondor 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.
release
make release
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.
public
make public
will produce packages similar to what you can download from the
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.
Building the tests
$ cd src/condor_tests $ make
Running the tests
$ cd src/condor_tests $ ./batch_test -b -c
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):
$ cd src/condor_tests $ rm -fr TestingPersonalCondor
Running the developer test suite
Cached Externals
Builds by default cache the externals in /scratch/condor-externals. If you're sharing the machine with others, you may collide and have problems. Solution, add
-DEXTERNAL_STAGE:PATH=/path/to/a/private/directory