-{section: 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. - -{section: Configure your build} - -{subsubsection: build_init} -{code} -% ./build_init -{endcode} -{subsubsection: 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* - -{code} -% ./configure -{endcode} - -{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 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. - -{code} -% ./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 -{endcode} - -{subsubsection: 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 _{quote:<}architecture{quote:>}_ -This can only be one of: -*:: I386 -*:: X86_64 -*:: PPC -*:: ALPHA -*:: CONDOR_PPC -*:: IA64 -*:: CONDOR_PPC -*:: HPPA -*:: SUN4X -*:: UNKNOWN_ARCH -*: --with-os _{quote:<}OS Name{quote:>}_ -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 _{quote:<}version{quote:>}_ -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. - - -{section: 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. - -{subsubsection: 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. - -{subsubsection: 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. - -{subsection: Building the tests} - -{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. -{section: Running the developer test suite} - - -{subsection: 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 -{code} --DEXTERNAL_STAGE:PATH=/path/to/a/private/directory -{endcode} -to your invocation of configure_uw +See BuildingHtcondorOnUnixOld