00001 * 00002 /*! 00003 * @file ./config.sh 00004 * 00005 * @brief Configure Boot JVM. 00006 * 00007 * Shell script to configure which features are in the compiled code. 00008 * This build happens in several phases: 00009 * 00010 * <ul> 00011 * <li> 00012 * <b>(1)</b> Pre-formatted documentation 00013 * </li> 00014 * <li> 00015 * <b>(2)</b> Java Setup 00016 * </li> 00017 * <li> 00018 * <b>(3)</b> C Compilation and Document Compilation Setup 00019 * </li> 00020 * <li> 00021 * <b>(4)</b> Startup Library (bootclasspath) Java classes 00022 * </li> 00023 * <li> 00024 * <b>(5)</b> Source code build-- Invokes 'build.sh', which may be 00025 * used for all further compilations. 00026 * </li> 00027 * </ul> 00028 * 00029 * Remember that if you add a Java source file, a C source or header 00030 * file, or a shell script, you should run this script again so that 00031 * the @b config directory roster locates the update. This way, 00032 * 'doxygen' will automatically incorporate it into the documentation 00033 * suite. 00034 * 00035 * @todo Support the following input parameter format: 00036 * 00037 * Input: [hwvendor [wordwidth [osname]]] 00038 * 00039 * These optional positional parameters contain specific token values, 00040 * which may change from one release to the next. Initially, they are 00041 * as follows. For current actual supported platform values, please 00042 * refer to parsing of positional parms $1 and $2 and $3 below. 00043 * 00044 * <ul> 00045 * <li>hwvendor Keyword for supported hardware platform. 00046 * Initially @b sparc and @b intel 00047 * 00048 * </li> 00049 * <li>wordwidth Keyword for hardware word size. 00050 * Initialiy either @b 32 and @b 64 00051 * </li> 00052 * <li>osname Keyword for operating system name. 00053 * Initially @b solaris and @b linux and 00054 * @b windows. 00055 * </li> 00056 * </ul> 00057 * 00058 * These may evolve over time, and not every combination of these 00059 * is valid. The initial valid combinations are: 00060 * 00061 * (hwvendor, wordwidth, osname) ::= one of these combinations: 00062 * 00063 * <ul> 00064 * <li>(sparc, 32, solaris) 00065 * </li> 00066 * <li>(sparc, 64, solaris) 00067 * </li> 00068 * <li>(sparc, 32, linux) 00069 * </li> 00070 * <li>(sparc, 64, linux) 00071 * </li> 00072 * <li>(intel, 32, solaris) 00073 * </li> 00074 * <li>(intel, 32, linux) 00075 * </li> 00076 * <li>(intel, 64, solaris) 00077 * </li> 00078 * <li>(intel, 64, linux) 00079 * </li> 00080 * <li>(intel, 32, windows) 00081 * </li> 00082 * <li>(amd, 64, windows)... JDK for AMD64 coming soon from Sun. 00083 * </li> 00084 * </ul> 00085 * 00086 * 00087 * @todo A Windows .BAT version of this script needs to be written 00088 * 00089 * 00090 * @section Control 00091 * 00092 * \$URL: https://svn.apache.org/path/name/config.sh $ \$Id: config.sh 0 09/28/2005 dlydick $ 00093 * 00094 * Copyright 2005 The Apache Software Foundation 00095 * or its licensors, as applicable. 00096 * 00097 * Licensed under the Apache License, Version 2.0 ("the License"); 00098 * you may not use this file except in compliance with the License. 00099 * You may obtain a copy of the License at 00100 * 00101 * http://www.apache.org/licenses/LICENSE-2.0 00102 * 00103 * Unless required by applicable law or agreed to in writing, 00104 * software distributed under the License is distributed on an 00105 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 00106 * either express or implied. 00107 * 00108 * See the License for the specific language governing permissions 00109 * and limitations under the License. 00110 * 00111 * @version \$LastChangedRevision: 0 $ 00112 * 00113 * @date \$LastChangedDate: 09/28/2005 $ 00114 * 00115 * @author \$LastChangedBy: dlydick $ 00116 * Original code contributed by Daniel Lydick on 09/28/2005. 00117 * 00118 * @section Reference 00119 * 00120 */ /* 00121 * (Use #! and #/ with dox_filter.sh to fool Doxygen into 00122 * parsing this non-source text file for the documentation set. 00123 * Use the above open comment to force termination of parsing 00124 * since it is not a Doxygen-style 'C' comment.) 00125 * 00126 * 00127 *################################################################## 00128 * 00129 * Script setup 00130 * 00131 * `dirname $0` for shells without that utility 00132 * `basename $0` for shells without that utility 00133 *################################################################## 00134 * 00135 * Constant values 00136 * 00137 *################################################################## 00138 * 00139 * Introduction 00140 * 00141 * Do not indent so that more text may be put on each line: 00142 *################################################################## 00143 * 00144 * Set up phase 1: Pre-formatted documentation 00145 * 00146 *################################################################## 00147 * 00148 * Set up and run phase 2: Java compilation setup 00149 * 00150 *################################################################## 00151 * 00152 * Set up phase 3: C Compilation and Document Compilation Setup 00153 * 00154 *################################################################## 00155 * 00156 * Set up phase 4: Extract startup classes for system bootstrap 00157 * 00158 * Extract selected classes from '$CONFIG_RTJARFILE' for use 00159 * during system startup. This is a convenient workaround for 00160 * when the JAR extraction logic is not yet available. 00161 * 00162 * These classes are required for proper initialization of the 00163 * JVM. Any others, which are listed in 'src/jvmclass.h' may 00164 * be included also. The minimum set is: 00165 * 00166 * #define JVM_STARTCLASS_JAVA_LANG_OBJECT "java/lang/Object" 00167 * #define JVM_STARTCLASS_JAVA_LANG_VOID "java/lang/Void" 00168 * #define JVM_STARTCLASS_JAVA_LANG_STRING "java/lang/String" 00169 * #define JVM_STARTCLASS_JAVA_LANG_STRING "java/lang/Thread" 00170 * 00171 * Squeeze msg onto 80-columns (just a matter of text standards and form) 00172 *################################################################## 00173 * 00174 * Set up phase 5: Build binary and documentation from source code 00175 * 00176 *################################################################## 00177 * 00178 * Run phase 1: Pre-formatted documentation 00179 * 00180 *################################################################## 00181 * 00182 * Run phase 3: C Compilation and Document Compilation Setup 00183 * 00184 * (Phase 2 did setup and run all above.) 00185 * 00186 * Always pack structures, support static copyright info strings 00187 *############################ 00188 * 00189 * END set up 'config' directory. 00190 * 00191 *################################################################## 00192 * 00193 * Run phase 4: Extract startup classes for system bootstrap 00194 * 00195 *############################ 00196 * 00197 * END set up 'bootclasspath' directory. Now report config results: 00198 * 00199 *################################################################## 00200 * 00201 * Run phase 5: Build binary from source code 00202 * 00203 *################################################################## 00204 * 00205 * Done. Return with exit code from build script. 00206 * 00207 * 00208 * EOF 00209