summaryrefslogtreecommitdiffstats
path: root/doc/html/TechNotes/Automake.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/TechNotes/Automake.html')
-rw-r--r--doc/html/TechNotes/Automake.html223
1 files changed, 0 insertions, 223 deletions
diff --git a/doc/html/TechNotes/Automake.html b/doc/html/TechNotes/Automake.html
deleted file mode 100644
index c6dfc41..0000000
--- a/doc/html/TechNotes/Automake.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=utf-8">
-<title>An Automake Primer for HDF5</title>
-</head>
-
-<h2>An Automake Primer for HDF5</h2>
-<h4>James Laird - May 2005</h4><br>
-
-<p><h2><u>How to:</u><h2></p>
-
-<p><h3>Change a Makefile</h3></p>
-
-<p><h3>Add a source file to an existing program or library</h3></p>
-
-<p><h3>Add a simple test</h3></p>
-
-<p><h3>Add a test with multiple sources</h3></p>
-
-<p><h3>Add a new directory</h3></p>
-
-<p><h3>Add a program that is only compiled in parallel</h3></p>
-
-<p><h3>Change a program's name when it is compiled in parallel</h3></p>
-
-<p><h3>Add a new library</h3></p>
-
-<p><h3>Change the library's API</h3></p>
-<br>
-
-<p><h4>Changing a Makefile</h4></p>
-
-<p>Suppose you need to make a minor change to the Makefile in the test directory
-(<code>hdf5/test/Makefile</code>). You have checked out hdf5 from the CVS repository into
-<code>~/scratch/hdf5</code>. You want to build the library in a directory named
-<code>~/scratch/build</code>.<br>
-First, edit the Makefile.am in the source tree. You must make any changes in the Makefile.am,
-not the Makefile, since the Makefile is automatically generated.</p>
-
-<p><code>cd ~/scratch/hdf5/test<br>
-vi Makefile.am</code></p>
-
-<p>Now, go to the root of the source tree and run the reconfigure script, which updates the
-source tree. It will create a new Makefile.in in the test directory with your changes.</p>
-
-<p><code>cd ~/scratch/hdf5<br>
-./bin/reconfigure</code></p>
-
-<p>After running <code>bin/reconfigure</code>, you will want to test your change. Go to
-<code>~/scratch/build</code> and run <code>configure</code>.</p>
-
-<p><code>cd ~/scratch/build<br>
-
-../hdf5/configure<br>
-
-make check</code></p>
-
-<p>Configure generates Makefiles from the Makefiles.in in the source tree. The dependencies are:</p>
-
-<p><code>Makefile.am -&gt; (bin/reconfigure) -&gt; Makefile.in -&gt; (configure) -&gt; Makefile</code></p>
-
-<p>Reconfigure should also be used when any change is made to configure.in.</p>
-<br>
-
-<p><h4>Adding a source file to an existing program or library</h4></p>
-
-<p>Suppose you want to add the source file <code>h5testfoo.c</code> to the HDF5 test
-library in the test directory. You open up <code>test/Makefile.am</code> in your
-favorite text editor and scroll down until you see the line:</p>
-
-<p><code>libh5test_la_SOURCES=h5test.c testframe.c</code></p>
-
-<p>Just add <code>h5testfoo.c</code> to the list of sources. You're done!<br>
-Now run <code>bin/reconfigure</code> to create a new Makefile.in from the Makefile.am you just
-edited.</p>
-<br>
-
-<p><h4>Adding a simple test</h4></p>
-
-<p>Suppose you want to create a new test executable named <code>newtest</code> with one
-source file, <code>newtest.c</code>. You open up <code>test/Makefile.am</code> and find
-the line</p>
-
-<p><code>TEST_PROG=testhdf5 lheap ohdr ...</code></p>
-
-<p>Just add <code>newtest</code> to the list of programs. That's it!  Automake will by
-default guess that your program <code>newtest</code> has one source file named
-<code>newtest.c</code>.<br>
-Now run <code>bin/reconfigure</code> to update the Makefile.in.</p>
-<br>
-
-<p><h4>Adding a slightly more complicated test</h4></p>
-
-<p>Suppose you want to create a new test executable named <code>newertest</code> with
-several source files. You open up <code>test/Makefile.am</code> as before and find the line</p>
-
-<p><code>TEST_PROG=testhdf5 lheap ohdr ...</code></p>
-
-<p>Add <code>newertest</code> to the list of programs.<br>
-Now you need to tell Automake how to build newertest. Add a new line below
-<code>TEST_PROG</code>:</p>
-
-<p><code>newtest_SOURCES = source1.c source2.c source3.c</code></p>
-
-<p>You don't need to mention header files, as these will be automatically detected.<br>
-Now run <code>bin/reconfigure</code> to update the Makefile.in.</p>
-<br>
-
-<p><h4>Adding a directory</h4></p>
-
-<p>To add the directory for a new tool, <code>h5merge</code>, go to the Makefile.am
-in the tools directory (the parent directory of the directory you want to add).
-Find the line that reads</p>
-
-<p><code>SUBDIRS=lib h5dump...</code></p>
-
-<p>Add <code>h5merge</code> to this list of subdirectories.<br>
-Now you probably want to create a Makefile.am in the h5merge directory. A good starting
-point for this Makefile.am might be the sample Makefile.am in the config directory
-(<code>config/Makefile.am.blank</code>). Alternately, you could copy the Makefile.am
-from another directory.<br>
-Once you have your new Makefile.am in place, edit <code>configure.in</code> in the root
-directory. Near the end of the file is a list of files generated by configure.
-Add <code>tools/h5merge/Makefile.in</code> to this list.<br>
-Now run <code>bin/reconfigure</code>. This will update configure and generate a Makefile.in in the
-<code>tools/h5merge</code> directory. Don't forget to add both the Makefile.am and the Makefile.in to
-CVS, and to update the manifest!.</p>
-<br>
-
-<p><h4>Adding a program that is only compiled in parallel</h4></p>
-
-<p>Suppose you only want to compile a program when HDF5 is configured to run in
-parallel--for example, a parallel version of h5repack called <code>h5prepack</code>.
-Open up the h5repack Makefile.am<br>
-The simple solution is:</p>
-
-<p><code>if BUILD_PARALLEL_CONDITIONAL<br>
-&nbsp;&nbsp;&nbsp;H5PREPACK=h5prepack<br>
-endif</code></p>
-
-<p>Now the variable <code>$H5PREPACK</code> will be &quot;h5prepack&quot; if parallel is
-enabled and &quot;&quot; if parallel is disabled. Add <code>$H5PREPACK</code> to the list of
-programs to be built:</p>
-
-<p><code>bin_PROGRAMS=h5repack $(H5PREPACK)</code></p>
-
-<p>Add sources for this program as usual:</p>
-
-<p><code>h5prepack_SOURCES=...</code></p>
-
-<p>Don't forget to run <code>bin/reconfigure</code> when you're done!</p>
-<br>
-
-<p><h4>Changing a program's name when it is compiled in parallel</h4></p>
-
-<p>Automake conditionals can be a very powerful tool. Suppose that instead of building
-two versions of h5repack during a parallel build, you want to change the name of
-the tool depending on whether or not HDF5 is configured to run in parallel--you
-want to create either h5repack or h5prepack, but not both.<br>
-Open up the h5repack Makefile.am and use an automake conditional:</p>
-
-<p><code>if BUILD_PARALLEL_CONDITIONAL<br>
-&nbsp;&nbsp;&nbsp;H5REPACK_NAME=h5prepack<br>
-else<br>
-&nbsp;&nbsp;&nbsp;H5REPACK_NAME=h5repack<br>
-endif<br>
-bin_PROGRAMS=$(H5REPACK_NAME)</p>
-
-<p>Now you only build one program, but the name of that program changes. You still need
-to define sources for both h5repack and h5prepack, but you needn't type them out twice if
-they are the same:</p>
-
-<p><code>h5repack_SOURCES=...<br>
-h5prepack_SOURCES=$(h5repack_SOURCES)</code></p>
-
-<p>Don't forget to run <code>bin/reconfigure</code> when you're done!</p>
-<br>
-
-<p><h4>Adding a new library</h4></p>
-
-<p>Suppose you want to add a new library to the HDF5 build tree, libfoo. The procedure for
-building libraries is very similar to that for building programs:</p>
-
-<p><code>lib_LTLIBRARIES=libfoo.la<br>
-libfoo_la_SOURCES=sourcefoo.c sourcefootwo.c </code></p>
-
-<p>This library will be installed in the lib directory when a user types
-"<code>make install</code>".<br>
-You might instead be building a convenience library for testing purposes (like
-<code>libh5test.la</code>) and not want it to be installed. If this is the case, you
-would type</p>
-
-<p><code>check_LTLIBRARIES=libfoo.la</code><br>
-instead of<br>
-<code>lib_LTLIBRARIES=libfoo.la</code></p>
-
-<p>To make it easier for other directories to link to your library,
-you might want to assign its path to a variable in all HDF5 Makefiles. You can
-make changes to all Makefiles by editing <code>config/commence.am</code> and adding a line
-like</p>
-
-<p><code>LIBFOO=$(top_builddir)/foo/src/libfoo.la</code></p>
-
-<p><code>config/commence.am</code> is textually included in all Makefiles.am when automake
-processes them.<br>
-As always, if you change a Makefile.am or <code>config/commence.am</code>, don't forget to run
-<code>bin/reconfigure</code>.</p>
-<br>
-
-<p><h4>Changing HDF5's API</h4></p>
-
-<p>If you have added or removed a function from HDF5, or if you have changed a function
-signature, you must indicate this by updating the file <code>lt_vers.am</code> located in
-the <code>config</code> directory.<br>
-If you have changed the API at all, increment <code>LT_VERS_INTERFACE</code> and set
-<code>LT_VERS_REVISION</code> to zero.<br>
-If you have added functions but not altered or removed existing ones, also increment
-<code>LT_VERS_AGE</code>.<br>
-If instead you have altered or removed any functions, reset <code>LT_VERS_AGE</code> to
-zero.</p>
-</body>
-</html>