Grid Engine Homepage

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