Compiling Open Grid Scheduler / Grid Engine from Source
If you don't want to install external dependencies (Berkeley DB, OpenSSL, Java, etc), then just follow the steps below:
% tar zvxf SGE6.2u5p2.tar.gz
% cd SGE6.2u5p2/source
% ./aimk -no-java -no-jni -no-secure -spool-classic -no-dump -only-depend
% ./scripts/zerodepend
% ./aimk -no-java -no-jni -no-secure -spool-classic -no-dump depend
% ./aimk -no-java -no-jni -no-secure -spool-classic -no-dump
Other useful aimk options:
-no-qmon : do not compile qmon (useful if you don't have X11 libraries installed)
-no-qmake : do not compile qmake
-debug : compile with debugging info (e.g. -g)
For the list of aimk options, run aimk with "-help":
% ./aimk -help
usage: aimk
OPTIONS are:
-32 -> create 32 bit binaries (where supported)
-64 -> create 64 bit binaries (where supported)
-D* -> include a macro definition in CFLAGS
-add-copyright -> insert a special copyright string in each binary
-add-sun-copyright-> insert a Sun copyright string in each binary
-adoc -> create source code documentation in adoc format
-catman -> generate man pages in catman format
-cc -> use cc/CC to compile c/c++ code
-cov -> complile for code coverage analysis
-dce -> enable dce security
-debug -> compile with debug information
-efence -> compile in debug mode and detect memory leaks
-f -> specify other Makefile instead of common/Makefile
-flags -> print C_FLAGS and INCLUDE_FLAGS to stdout, used by gelint
-gcc -> use gcc instead of system compiler (where supported)
-gettext -> build the gettext libraries
-gprof -> enable gprof profiling
-gss -> enable gss security
-help -> show this help
-htmlman -> generate man and html pages
-htmlmankv -> generate man and html pages checked out with '-kv' flag
-insure -> compile in debug mode and detect memory leaks
-intl -> compile with internationalization library (libintl)
-javadoc -> create source code documentation in Javadoc[TM] tool format
-kerberos -> enable kerberos authentication
-man -> generate man pages
-mankv -> generate man pages checked out with '-kv' flag
-mo -> generate the message catalogues (Solaris only)
-no-core -> don't compile the core system
-no-dump -> build binaries without libcore.so (Linux only)
-no-java -> don't compile Java[TM] class files
-no-gui-inst -> don't compile Java[TM] GUI installer
-no-jni -> don't compile JNI library
-no-intl -> do not compile with internationalization library
-no-mk -> only return the specific architecture string
-no-opt -> compile with no optimization
-no-qmake -> don't compile qmake
-no-qmon -> don't compile qmon 3rdparty libs and qmon client
-no-qtcsh -> don't compile qtcsh
-no-remote -> don't compile 3rdparty remote module (rsh, rshd, rlogin)
-no-rmon -> disable rmon debug output
-no-secure -> disable ssl security (enabled by default)
-no-jemalloc -> disable jemalloc (enabled by default on Linux hosts)
-no-mtmalloc -> disable mtmalloc (this is needed for dbx debugging)
-only-core -> build only the core system
-only-depend -> only compile 3rdparty/sge_depend
-only-java -> only compile Java[TM] class files
-only-gui-inst -> only compile Java[TM] GUI installer
-only-jemalloc -> build only the jemalloc library
-only-qmake -> build only qmake
-only-qmon -> build only qmon 3rdparty libs and qmon client
-only-qtcsh -> build only qtcsh
-only-remote -> build only 3rdparty remote module (rsh, rshd, rlogin)
-only-64 -> build only 64 bit shared libraries for SOLARIS64, don't build 32 bit shared libraries
-parallel n -> spawn multiple make processes by passing option -j n to make
-perlgui -> build the experimental perlgui
-po -> merge gridengine .pot with translations (Linux)
-pot -> extract message template to gridengine .pot file (Linux)
-protected -> create complete class file documentation
-purify -> instrument code with purify (implies -debug)
-qmake -> use qmake instead of make
-shared-libs -> create libraries as shared libs
-spool-berkeleydb -> use berkeleydb spooling
-spool-classic -> use classic flatfile spooling
-spool-targets -> only create qmaster, spooldefaults and spoolinit
-sunman -> create man pages for Sun branded man pages (with -man[kv])
-tight-ssh -> compile SSH daemon with tight SGE integration
-umap -> compile with usermapping and hostgroup feature
-with-jemalloc -> build SGE with the jemalloc library
Local Install
% setenv SGE_ROOT < Your Target Directory > (or export SGE_ROOT=< Your Target Directory > if your shell is sh, bash, ksh)
% mkdir $SGE_ROOT
% scripts/distinst -all -local -noexit
% cd $SGE_ROOT
% ./install_qmaster
% ./install_execd