./README-builds.html

Print this page




1193 
1194         <!-- ====================================================== -->
1195         <!-- ====================================================== -->
1196         <!-- ====================================================== -->
1197         <!-- ====================================================== -->
1198         <!-- ====================================================== -->
1199         <!-- ====================================================== -->
1200         <!-- ====================================================== -->
1201         <!-- ====================================================== -->
1202         <!-- ====================================================== -->
1203 
1204         <!-- ====================================================== -->
1205         <hr>
1206         <h2><a name="hints">Appendix A: Hints and Tips</a></h2>
1207         <blockquote>
1208 
1209             <h3><a name="faq">FAQ</a></h3>
1210             <blockquote>
1211 
1212                 <p>
1213                     <b>Q:</b> The <code>configure</code> file looks horrible! 
1214                     How are you going to edit it?
1215                     <br>
1216                     <b>A:</b> The <code>configure</code> file is generated (think
1217                     "compiled") by the autoconf tools. The source code is
1218                     in <code>configure.ac</code> various .m4 files in common/autoconf,
1219                     which are
1220                     much more readable.
1221                 </p>
1222 
1223                 <p>
1224                     <b>Q:</b> 
1225                     Why is the <code>configure</code> file checked in, 
1226                     if it is generated?
1227                     <br>
1228                     <b>A:</b> 
1229                     If it was not generated, every user would need to have the autoconf 
1230                     tools installed, and re-generate the <code>configure</code> file
1231                     as the first step. 
1232                     Our goal is to minimize the work needed to be done by the user 
1233                     to start building OpenJDK, and to minimize
1234                     the number of external dependencies required.
1235                 </p>
1236 
1237                 <p>
1238                     <b>Q:</b>
1239                     Do you require a specific version of autoconf for regenerating
1240                     <code>configure</code>?
1241                     <br>
1242                     <b>A:</b>
1243                     Currently, no, but this will likely be the case when things have 
1244                     settled down a bit more. (The reason for this is to avoid
1245                     large spurious changes in <code>configure</code> 
1246                     in commits that made small changes to <code>configure.ac</code>).
















1247                 </p>
1248 
1249                 <p>
1250                     <b>Q:</b> 
1251                     What are the files in <code>common/makefiles/support/*</code> for? 
1252                     They look like gibberish.
1253                     <br>
1254                     <b>A:</b>
1255                     They are a somewhat ugly hack to compensate for command line length
1256                     limitations on certain platforms (Windows, Solaris).
1257                     Due to a combination of limitations in make and the shell, 
1258                     command lines containing too many files will not work properly. 
1259                     These
1260                     helper files are part of an elaborate hack that will compress the
1261                     command line in the makefile and then uncompress it safely. 
1262                     We're
1263                     not proud of it, but it does fix the problem. 
1264                     If you have any better suggestions, we're all ears! :-)
1265                 </p>
1266 




1193 
1194         <!-- ====================================================== -->
1195         <!-- ====================================================== -->
1196         <!-- ====================================================== -->
1197         <!-- ====================================================== -->
1198         <!-- ====================================================== -->
1199         <!-- ====================================================== -->
1200         <!-- ====================================================== -->
1201         <!-- ====================================================== -->
1202         <!-- ====================================================== -->
1203 
1204         <!-- ====================================================== -->
1205         <hr>
1206         <h2><a name="hints">Appendix A: Hints and Tips</a></h2>
1207         <blockquote>
1208 
1209             <h3><a name="faq">FAQ</a></h3>
1210             <blockquote>
1211 
1212                 <p>
1213                     <b>Q:</b> The <code>generated-configure.sh</code> file looks horrible! 
1214                     How are you going to edit it?
1215                     <br>
1216                     <b>A:</b> The <code>generated-configure.sh</code> file is generated (think
1217                     "compiled") by the autoconf tools. The source code is
1218                     in <code>configure.ac</code> and various .m4 files in common/autoconf,
1219                     which are much more readable.

1220                 </p>
1221 
1222                 <p>
1223                     <b>Q:</b> 
1224                     Why is the <code>generated-configure.sh</code> file checked in, 
1225                     if it is generated?
1226                     <br>
1227                     <b>A:</b> 
1228                     If it was not generated, every user would need to have the autoconf 
1229                     tools installed, and re-generate the <code>configure</code> file
1230                     as the first step. 
1231                     Our goal is to minimize the work needed to be done by the user 
1232                     to start building OpenJDK, and to minimize
1233                     the number of external dependencies required.
1234                 </p>
1235 
1236                 <p>
1237                     <b>Q:</b>
1238                     Do you require a specific version of autoconf for regenerating
1239                     <code>generated-configure.sh</code>?
1240                     <br>
1241                     <b>A:</b>
1242                     Yes, version 2.69 is required and should be easy
1243                     enough to aquire on all supported operating
1244                     systems.  The reason for this is to avoid
1245                     large spurious changes in <code>generated-configure.sh</code>.
1246                 </p>
1247 
1248                 <p>
1249                     <b>Q:</b>
1250                     How do you regenerate <code>generated-configure.sh</code>
1251                     after making changes to the input files?
1252                     <br>
1253                     <b>A:</b>
1254                     Regnerating <code>generated-configure.sh</code>
1255                     should always be done using the
1256                     script <code>common/autoconf/autogen.sh</code> to
1257                     ensure that the correct files get updated. This
1258                     script should also be run after mercurial tries to
1259                     merge <code>generated-configure.sh</code> as a
1260                     merge of the generated file is not guaranteed to
1261                     be correct.
1262                 </p>
1263 
1264                 <p>
1265                     <b>Q:</b> 
1266                     What are the files in <code>common/makefiles/support/*</code> for? 
1267                     They look like gibberish.
1268                     <br>
1269                     <b>A:</b>
1270                     They are a somewhat ugly hack to compensate for command line length
1271                     limitations on certain platforms (Windows, Solaris).
1272                     Due to a combination of limitations in make and the shell, 
1273                     command lines containing too many files will not work properly. 
1274                     These
1275                     helper files are part of an elaborate hack that will compress the
1276                     command line in the makefile and then uncompress it safely. 
1277                     We're
1278                     not proud of it, but it does fix the problem. 
1279                     If you have any better suggestions, we're all ears! :-)
1280                 </p>
1281