<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>,
<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>
"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>
</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">
<tt>tar -cvf - llvm-test | gzip > llvm-test-X.X.tar.gz</tt><br>
<tt>tar -cvf - cfrontend/src | gzip > 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>
<!-- ======================================================================= -->
</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">
-->
<!-- *********************************************************************** -->
-<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>