1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256
|
README.aimk
-----------
Content
-------
1) What 'aimk' is
2) What 'aimk' does
3) The files 'aimk.site' and 'aimk.private'
4) 'aimk' options
4.1) Short help on line options
4.2) Compiling without openSSL support
4.3) Restricting compile targets
4.4) 'cc' or 'gcc'
4.5) Creating the dependency tool
4.6) Passing flags to the compiler
4.7) Creating man pages
5) Copyright
1) What 'aimk' is
-----------------
'aimk' stands for Architecture Independent MaKe. It is inspired by
the 'aimk' script of PVM (Parallel Virtual Machine).
It is not, as the name indicates, architecture independent at all. It is
highly dependent on the underlying operating system and calls the
makefiles with the appropriate parameters (compiler flags etc.). This
scheme allows keeping the makefiles quite simple and makes it possible to
use plain 'make' on operating systems where the standard make utility
does not offer a lot of sophisticated options which are available in
modern make utilities.
2) What 'aimk' does
-------------------
The script 'aimk' is a wrapper for the various makefiles and other
scripts which are called to compile Grid Engine. By default 'aimk' will
build all binaries, but it accepts options to restrict the build process
for certain parts of Grid Engine. Not all options of 'aimk' work
together. This limitation is usually not detected by the command line
parsing.
When 'aimk' is started, it first determines the current operating system
by calling the script 'dist/util/arch'. This script returns a string
which is unique for a given OS. This string will be mapped to an
uppercase string which is then used. See the file 'dist/README.arch' in
this directory for details on architecture strings and how they are
mapped. If the current operating system is not supported yet (or not
supported anymore), aimk will print out an error message and exit.
Unrecognized command line options, also beginning with a dash ('-') are
passed to make. This can cause unexpected error messages from 'make' if a
typo in the command line is passed to it.
'aimk' sources scripts 'aimk.site' and 'aimk.private'. This script
contains paths and variables to tools which you need to build
special parts of Grid Engine.
3) The files 'aimk.site' and 'aimk.private'
-------------------------------------------
'aimk' is written in csh. The scripts 'aimk.site' and 'aimk.private'
(optional) need to use csh syntax since they are sourced by 'aimk'.
The file 'aimk.site' contains a few definitions of paths to tools which
are needed to build Grid Engine. You need to adjust this script to your
needs or you can create your custom 'aimk.private' file which overrides
the settings in 'aimk.site'.
You can also enter your favorite command lines option to 'aimk.private',
e.g as follows:
# aimk.private
# add "-only-qmon" and "-j 4" flag to aimk
set argv = ( -only-qmon -j 4 $* )
4) Command line options of aimk
-------------------------------
4.1 Short help on line options
------------------------------
Show a brief summary of its command line options:
% aimk -help
4.2 Compiling without openSSL support
-------------------------------------
'aimk' by default compiles Grid Engine with openSSL support. If you want
to compile Grid Engine without openSSL support call:
% aimk -no-secure
4.3 Restricting compile targets
-------------------------------
Common options are (the -only-* options are mutually exclusive):
% aimk -only-core compile core system only
% aimk -only-java compile Java[TM] class files only
% aimk -only-qmon compile qmon only
% aimk -only-qmake compile qmake only
% aimk -only-qtcsh compile qtcsh only
To compile Grid Engine without one or more default targets use the flags:
-no-core
-no-java (or "-no-gui-inst -no-herd", avoiding the most
troublesome targets)
-no-jni
-no-qmake
-no-qmon
-no-qtcsh
-no-remote (rsh, rshd, rlogin targets)
For creating the SGE qmaster daemon you only would enter:
% aimk -only-core sge_qmaster
By default, the JNI library for the DRMAA Java language binding will be
built, but the class files will not. To compile SGE without the DRMAA
Java language binding, use:
% aimk -no-jni -no-java
The -no-java is not strictly necessary in most cases, but it ensures that
no class files are compiled, even if the aimk.private contains the -java
switch. Note that with or without the -no-jni switch, the libdrmaa
shared library will be created. The difference will be in whether the
shared library contains the JNI components.
To compile only the Java class files, use:
% aimk -only-java
To compile the complete SGE system, including the DRMAA Java language
binding, use:
% aimk
Note that in order to compile the DRMAA Java language binding, ant 1.5 or
better must be in the classpath, and JAVA_HOME must point to JDK 1.4 or
better. For platforms without a suitable JDK, -no-jni (and
-no-java) must be used.
4.4 'cc' or 'gcc'
-----------------
By default the system compiler is used (cc, gcc on GNU/Linux). The flags:
-cc
-gcc
override this default. Note, that this option often does not work since
a target has not been tested and ported with gcc yet. The use of "gcc" on
operating systems where this compiler is not installed by default will
usually require changes to aimk.
4.5 Creating the dependency tool
--------------------------------
The tool for creating Makefile dependencies 'sge_depend' is created with:
% aimk -only-depend
Makefile dependencies are created with:
% aimk depend
4.6 Passing flags to the compiler
---------------------------------
To pass a "-Dmydefine" to the compiler CFLAGS, enter:
% aimk -Dmydefine ....
Other flags which are passed to the compiler as CFLAGS can be set in the
command line through the environment variable 'SGE_INPUT_CFLAGS', e.g.
setenv SGE_INPUT_CFLAGS "-xyz -Dmydefine"
'SGE_INPUT_LDFLAGS' behaves similarly for setting LFLAGS for the linker.
These can be used to define library and include paths.
4.7 Creating man pages
----------------------
The man pages in the repository contain a few macros
To create man pages you enter
% aimk -man create man pages in nroff format
% aimk -htmlman create man pages in nroff and html format
% aimk -catman create man pages in catman format (e.g. for Irix)
To build man pages in nroff format you need to define the variable
GROFFPATH in 'aimk.site'. This is where 'groff' is installed. For html
man pages you need the tool 'man2html'. This is the one from
http://www.nongnu.org/man2html/, not the one in Debian, for instance.
The path is defined with the MAN2HTMLPATH variable in
'aimk.site'. To create man pages in catman format you need to first
create the nroff man pages and then on an Irix system the catman
pages (only on Irix, the 'pack -f' command forces compression of
all pages regardless of their size).
4.8 Creating JavaDoc documentation
----------------------------------
To create JavaDocs appropriate for the end user, enter
% aimk -javadoc
This creates documentation of only the public fields and methods.
To create the full documentation, enter
% aimk -javadoc -protected
This creates documentation of all protected and public fields and methods.
5) Copyright
------------
The Contents of this file are made available subject to the terms of
the Sun Industry Standards Source License Version 1.2
Sun Microsystems Inc., March, 2001
Sun Industry Standards Source License Version 1.2
=================================================
The contents of this file are subject to the Sun Industry Standards
Source License Version 1.2 (the "License"); You may not use this file
except in compliance with the License. You may obtain a copy of the
License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
Software provided under this License is provided on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
See the License for the specific provisions governing your rights and
obligations concerning the Software.
The Initial Developer of the Original Code is: Sun Microsystems, Inc.
Copyright: 2001 by Sun Microsystems, Inc.
All Rights Reserved.
|