eliminate lengths from record bodies
[oota-llvm.git] / docs / HowToReleaseLLVM.html
index 0648bc8842cd64e2dd7ae71bc94a565f5a73660b..bee43493c4396f652f4110c78b9cec960018100d 100644 (file)
@@ -12,7 +12,7 @@
 <ol>
   <li><a href="#introduction">Introduction</a></li>
   <li><a href="#process">Release Process</a></li>
-  <li><a href="#dist">Distribution Make Targets</a></li>
+  <li><a href="#dist_targets">Distribution Targets</a></li>
 </ol>
 <div class="doc_author">
   <p>Written by <a href="mailto:rspencer@x10sys.com">Reid Spencer</a>,
@@ -56,11 +56,14 @@ There are three main tasks for building a release of LLVM:
     <li><a href="#deps">Make LibDeps.txt</a></li>
     <li><a href="#settle">Settle LLVM HEAD</a></li>
     <li><a href="#tag">Tag LLVM and Create the Release Branch</a></li>
+    <li><a href="#verchanges">Update LLVM Version </a></li>
     <li><a href="#build">Build LLVM</a></li>
     <li><a href="#check">Run 'make check'</a></li>
     <li><a href="#test">Run LLVM Test Suite</a></li>
     <li><a href="#dist">Build the LLVM Source Distributions</a></li>
+    <li><a href="#rpm">Build RPM Packages (optional)</a></li>
     <li><a href="#llvmgccbin">Build the LLVM GCC Binary Distribution</a></li>
+    <li><a href="#webupdates">Update the LLVM Website</a></li>
   </ol>
 </div>
 
@@ -138,12 +141,20 @@ fix <em>for the release</em>.
     "ROOT_RELEASE_XX" where XX is the major and minor
     release numbers (you can't have . in a cvs tag name). So, for Release 1.2,
     XX=12 and for Release 1.10, XX=110.
+         
+    <p>
+    <tt>cvs tag ROOT_RELEASE_XX</tt><br>
+    </p>
     </li>
 
     <li>
     Immediately create cvs branches based on the ROOT_RELEASE_XX tag. The tag
     should be "release_XX" (where XX matches that used for the ROOT_RELEASE_XX
     tag).  This is where the release distribution will be created.
+
+    <p>
+    cvs tag -b -r ROOT_RELEASE_XX release_XX
+    </p>
     </li>
 
     <li>
@@ -164,6 +175,17 @@ fix <em>for the release</em>.
     </li>
 </div>
 
+<!-- ======================================================================= -->
+<div class="doc_subsection"><a name="verchanges">Update LLVM Version</a></div>
+<div class="doc_text">
+  <p>
+  After creating the llvm release branch, update the release branch's autoconf/configure.ac 
+  version from X.Xcvs to just X.X. Update it on mainline as well to be the next version 
+  (X.X+1cvs). 
+  </p>
+
+</div>
+
 <!-- ======================================================================= -->
 <div class="doc_subsection"><a name="build">Build LLVM</a></div>
 <div class="doc_text">
@@ -222,16 +244,31 @@ fix <em>for the release</em>.
   <tt>tar -cvf - llvm-test     | gzip &gt; llvm-test-X.X.tar.gz</tt><br>
   <tt>tar -cvf - cfrontend/src | gzip &gt; cfrontend-X.X.source.tar.gz</tt><br>
   </p>
+</div>
 
-  <!-- This is a
-  two step process. First, use "make dist" to simply build the distribution. Any
+<!-- ======================================================================= -->
+<div class="doc_subsection"><a name="rpm">Building RPM packages (optional)</a></div>
+<div class="doc_text">
+  <p>You can, optionally, create source and binary RPM packages for LLVM. These
+  may make it easier to get LLVM into a distribution. This can be done with
+  the following commands:</p>
+  <pre>
+  make dist        # Build the distribution source tarball
+  make dist-check  # Check that the source tarball can build itself.
+  cp llvm-M.m.tar.gz /usr/src/redhat/SOURCES  # Required by rpmbuild
+  make srpm # for source rpm
+  make rpm  # for binary rpm
+  </pre>
+  <p>First, use "make dist" to simply build the distribution. Any
   failures need to be corrected (on the branch). Once "make dist" can be
   successful, do "make dist-check". This target will do the same thing as the
-  'dist' target but also test that distribution to make sure it works. This
-  ensures that needed files are not missing and that the src tarball can be
-  successfully unbacked, built, installed, and cleaned. This two-level testing
-  needs to be done on each target platform.
-  -->
+  'dist' target but also test that distribution to make sure it can build itself
+  and runs "make check" as well. This ensures that needed files are not 
+  missing and that the src tarball can be successfully unpacked, built, 
+  installed, and cleaned. Once you have a reliable tarball, you need to copy
+  it to the /usr/src/redhat/SOURCES directory which is a requirement of the
+  rpmbuild tool. The last two "make" invocations just run rpmbuild to build
+  either a source (<tt>srpm</tt>) or binary (<tt>rpm</tt>) RPM package.</p>
 </div>
 
 <!-- ======================================================================= -->
@@ -274,6 +311,21 @@ fix <em>for the release</em>.
   </ol>
 </div>
 
+
+<!-- ======================================================================= -->
+<div class="doc_subsection"><a name="webupdates">Update the LLVM Website</a></div>
+<div class="doc_text">
+  <p>
+  Check out the llvm-www module from cvs. Create a new subdirectory X.X in the 
+  releases directory. Place the llvm, llvm-test, llvm-gcc source, and llvm-gcc 
+  binaries in this new directory. Copy the llvm/docs and LICENSE.txt files 
+  into this new directory. Update the releases/download.html file with  the new release. 
+  Update the releases/index.html with the new release. Finally, update the main page (
+  index.html and sidebar) to point to the new release and release announcement. Make 
+  sure this all gets commited back into cvs.
+  </p>
+</div>
+
 <!--
 <div class="doc_subsection"><a name="release">Release</a></div>
 <div class="doc_text">
@@ -292,7 +344,7 @@ fix <em>for the release</em>.
 -->
 
 <!-- *********************************************************************** -->
-<div class="doc_section"><a name="dist">Distribution Make Targets</a></div>
+<div class="doc_section"><a name="dist_targets">Distribution Targets</a></div>
 <!-- *********************************************************************** -->
 <!-- ======================================================================= -->
 <div class="doc_subsection">Overview</div>