You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by dl...@apache.org on 2005/10/28 11:14:26 UTC

svn commit: r329168 - /incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README

Author: dlydick
Date: Fri Oct 28 02:14:14 2005
New Revision: 329168

URL: http://svn.apache.org/viewcvs?rev=329168&view=rev
Log:
Replace references to build scripts with
references to Makefiles.

Adjust script names to regularized versions.

Modified:
    incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README

Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README?rev=329168&r1=329167&r2=329168&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/README Fri Oct 28 02:14:14 2005
@@ -172,7 +172,7 @@
 a './config/config.h' header file containing top-level compile
 parameters. This file is always referenced in every source file
 of the core JVM code by including "arch.h".  This script also
-creates other files there useful with the 'build.sh' scripts
+creates other files there useful with the 'Makefile' build scripts
 and contains normal compiler command line parameters.  Eclipse
 project files are also available which contain these same
 compile command line parameters.
@@ -192,15 +192,15 @@
 implementation, such as 'java.lang.Object.wait()'.  (See
 'jvm/src/native.c' for more information.)
 
-Once the 'config.sh' completes successfully, run 'build.sh' in any
+Once the 'config.sh' completes successfully, run 'make cfg' in any
 or all directories where it is found to build that diretctory or
-directory tree.  At the top level, 'build.sh all' will build the
-entire project.  Call it as 'build.sh help' for options.
+directory tree.  At the top level, 'make all' will build the
+entire project.  Call it as 'make help' for options.
 
 Eclipse project files are provided to do the same things with the
 same options except that it does not compile the Java classes in
 'jni/src/harmony/generic/0.0'.  (Notice that if you change
-anything, it will need to be changed for both 'build.sh' and for
+anything, it will need to be changed for both 'make' and for
 Eclipse if you want them be both work the same.)  The original
 development of this code was on a Sun Ultra 5 with Solaris 9
 running GCC 3.3.2, Gmake 3.80, GNU binutils 2.11.2, and GDB 6.0,
@@ -253,7 +253,7 @@
 parts of the compiled code tree is about 12 MB.  The full
 documentation tree in 'doc.ORIG' is about another 55 MB when fully
 installed.  It may be removed if desired in favor of maintaining
-_only_ the working documentation in 'doc' as generated by 'build.sh dox'
+_only_ the working documentation in 'doc' as generated by 'make dox'
 at the top level, which will be the same size as 'doc.ORIG' if all
 documentation formats are desired, or less if fewer documentation
 formats are used.  For example, if only the HTML format is used,
@@ -346,19 +346,7 @@
 about how to configure the project for compile, runtime, and
 distribution features, as well as which components to build and
 to document.  Once the questions are answered, the project is
-configured and optionally built using 'build.sh cfg'.
-
-build.sh
-clean.sh
-common.sh
----------
-Top-level build scripts that invokes build scripts of the same names
-at the various levels in the directory tree.  The one named 'build.sh'
-compiles the source code, while the one named 'clean.sh' removes the
-effects of that build.  The shared file 'common.sh' is used by both
-of these scripts.  Notice that nowhere in the tree except here at the
-top level will the documentation build occur, as it is a global process
-due to interdependencies of @link and @see directives, among others.
+configured and optionally built using 'make cfg'.
 
 getsvndata.sh
 getsvndups.sh
@@ -375,36 +363,48 @@
 support it natively.
 
 
-jvm/build.sh
-libjvm/build.sh
-main/build.sh
-test/build.sh
-jni/src/harmony/generic/0.0/build.sh
-jvm/clean.sh
-libjvm/clean.sh
-main/clean.sh
-test/clean.sh
-jni/src/harmony/generic/0.0/clean.sh
-jvm/common.sh
-libjvm/common.sh
-main/common.sh
-test/common.sh
-jni/src/harmony/generic/0.0/common.sh
--------------------------------------
-Like at the top level, each relevant directory level has a build
-script that compiles the source code ('build.sh') and removes the
-output files from that build ('clean.sh').  These files share a
-common file ('common.sh') also.  The output of 'libjvm' is stored
-in a 'libjvm/lib' subdirectory, while the output of the other scripts
-is stored in a '______/bin' subdirectory.
+Makefile
+MakeSetup
+MakeRules
+jvm/src/Makefile
+libjvm/src/Makefile
+main/src/Makefile
+test/src/Makefile
+jni/src/harmony/generic/0.0/src/Makefile
+jvm/src/.depend (transient, not in SVN)
+libjvm/src/.depend (transient, not in SVN)
+main/src/.depend (transient, not in SVN)
+test/src/.depend (transient, not in SVN)
+jni/src/harmony/generic/0.0/src/.depend (transient, not in SVN)
+---------------------------------------------------------------
+Each source directory has a 'Makefile' that controls the compilation
+of the 'C' source code for that directory and, in the case of Java
+subdirectories, for those subdirectories as well.  Every 'Makefile'
+calls 'MakeSetup' to define a common framework.  All directories with
+source code needing compile rules includes 'MakeRules'.  Each
+directory containing 'C' source code has a transient file named
+'.depend' that is automatically created to discover the #include
+dependencies.
+
+The top-level 'Makefile' performs document compiles and has a
+'make help' rule to show what are the normal options.
+
+Invoking 'make' from the top level implies 'make cfg'.  All others
+imply 'make all'.  Invoking 'make clean' performs a rather smart
+cleanup with reasonable error messages for unexpected result files.
+Invoking 'make veryclean' unconditionally cleans up all results.
+Documentation is created with 'make dox'.  Notice that nowhere in
+the tree except here at the top level will the documentation build
+occur, as it is a global process due to interdependencies of @link
+and @see directives, among others.
 
 dox.sh
 undox.sh
-commondox.sh
-------------
+dox-common.sh
+-------------
 The logic behind the documentation build using Doxygen.  The output
 is stored by 'dox.sh' into a 'doc' subdirectory at this level, while
-the 'undox.sh' removes it.  They share a common file 'commondox.sh'.
+the 'undox.sh' removes it.  They share a common file 'dox-common.sh'.
 In order to speed up the documentation build during development,
 define the environment variable SUPPRESS_DOXYGEN_VERYCLEAN as any
 non-null string.  See logic of 'dox.sh' for other comments.
@@ -412,7 +412,8 @@
 dist-src.sh
 dist-doc.sh
 dist-bin.sh
------------
+dist-common.sh
+--------------
 Construct a source distribution and store it above the top of
 the directory tree in gzipped tar, where CONFIG_RELEASE_LEVEL is
 the release level defined the last time that 'config.sh' was run:
@@ -420,8 +421,7 @@
     Type    Script       Output TAR file
     ----    ------       ---------------
     Source  dist-src.sh  ../../bootJVM-src-$CONFIG_RELEASE_LEVEL.tar.gz
-    (plus
-      docs)
+    (plus docs)       ../../bootJVM-srcdoc-$CONFIG_RELEASE_LEVEL.tar.gz
 
     Docs    dist-src.sh  ../../bootJVM-doc-$CONFIG_RELEASE_LEVEL.tar.gz
 
@@ -434,6 +434,8 @@
 in the distribution as a part of the deliverables and contains
 installable documentation files.  Its installation is managed with
 'config.sh' where it references the "pre-formatted documentation.
+The 'dist-common.sh' is shared between the others and does nothing
+by itself.
 
 Other Files
 ===========
@@ -460,13 +462,19 @@
 This file.
 
 
+RELEASE_LEVEL
+-------------
+Contains _only_ the release level string for the current project
+release.
+
+
 bootjvm.dox
-dox_filter.sh
+dox-filter.sh
 -------------
 'bootjvm.dox' is the Doxygen directive file used to create
 all project documentation,  invoked by 'dox.sh'.
 
-'dox_filter.sh' the  filter script declared in 'bootjvm.dox'
+'dox-filter.sh' the  filter script declared in 'bootjvm.dox'
 for filtering input files.  It is declared as the
 'INPUT_FILTER=' parameter in 'bootjvm.dox' and is necessary
 to properly format all files that are not explicitly '.c'
@@ -523,13 +531,14 @@
 test/bin
 jni/src/harmony/generic/0.0/bin
 -------------------------------
-Output area respectively from 'jvm/build.sh', 'main/build.sh',
-'test/build.sh', and 'jni/src/harmony/generic/0.0/build.sh'.
+Output area respectively from 'make all' from the 'Makefile'
+in 'jvm/src' and 'main/src' and 'test/src' and
+'jni/src/harmony/generic/0.0/src', respectively
 
 
 libjvm/lib
 ----------
-Output area from 'libjvm/build.sh'
+Output area from 'make all' from 'Makefile' in 'libjvm/src'
 
 
 jni/bin
@@ -544,7 +553,7 @@
 ============
 
 bootclasspath/*.class
-bootclasspath/*/*.class
+bootclasspath/*.../*.class
 --------------
 Java class files that are found in the BOOTCLASSPATH environment
 variable.  They are extracted from your JDK's runtime JAR file
@@ -568,9 +577,9 @@
 jvm/bin/bootjvm
 main/bin/bootjvm
 test/bin/*.class
-test/bin/*/*.class
+test/bin/*.../*.class
 jni/src/harmony/generic/0.0/bin/bootjvm
-jni/src/harmony/generic/0.0/bin/*/*.class
+jni/src/harmony/generic/0.0/bin/*.../*.class
 -----------------------------------------
 The output files respectively from the build of the 'jvm',
 'main', 'test', and 'jni/src/harmony/generic/0.0'
@@ -593,15 +602,14 @@
 The JNI source code is grouped separately, as is the test suite.
 
 
-jvm/src/arch.h
---------------
+jvm/include/arch.h
+------------------
 Configure the compilation of each source file with architectural
 parameters, especially from the configuration script 'config.sh'.
 Provide copyright information for the binary edition of each source
 file.  This file MUST be included by all source files in
-'jvm/include' and in 'jvm/src'.  Do NOT include it in 'jni'
-source files.  There needs to be an equivalent for the Java code
-written for these features (see to-do item in source).
+'jvm/include' and in 'jvm/src'.  There needs to be an equivalent
+for the Java code written for these features (see to-do item in source).
 
 
 jvm/src/argv.c
@@ -1550,17 +1558,12 @@
 similarly independent?  Should there be a workspace provided in the
 distribution that has all these things set up?  Currently, the projects
 are a bit of a mixture of workspace and project settings.  The
-'build.sh' scripts use a hard-coded set of GCC options that are derived
-from the Eclipse setup.  The 'config/*.gcc' and config/*.gccld' files
-reflect this for the C source.  The Java compilations in the 'build.sh'
-scripts use the default Java compiler options.  Does there need to be
-a harmonization (sic) between the Eclipse and 'build.sh' settings?
-Should they be manually mantained in Eclipse and 'config.sh'?  These
-are questions that need some review.  Furthermore, this author is very
-much a proponent of systematic use of 'gmake' as a premier project
-build tool across the industry.  It would be a really good idea for
-use of 'gmake' to be reviewed.  It is used internally by Eclipse,
-but users should not be forced to use Eclipse just to get 'gmake'.
+'MakeRules' script uses a hard-coded set of GCC options that are derived
+from the Eclipse setup.  The Java compilations in the several
+'Makefiles' use the default Java compiler options.  Does there need to
+be a harmonization (sic) between the Eclipse and 'MakeRules' settings?
+Should they be manually mantained in Eclipse and 'MakeRules'?  These
+are questions that need some review.
 
 (HARMONY-6-README-33) The inner loop of virtual instructions in
 'opcode.c' checks various items at run time such as ACC_STATIC and
@@ -1641,7 +1644,7 @@
 #
 #/
 #/ /* 
-# (Use  #! and #/ with dox_filter.sh to fool Doxygen into
+# (Use  #! and #/ with dox-filter.sh to fool Doxygen into
 # parsing this non-source text file for the documentation set.
 # Use the above open comment to force termination of parsing
 # since it is not a Doxygen-style 'C' comment.)