diff options
Diffstat (limited to 'INSTALL_MAINT')
-rw-r--r-- | INSTALL_MAINT | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/INSTALL_MAINT b/INSTALL_MAINT new file mode 100644 index 0000000..78c3297 --- /dev/null +++ b/INSTALL_MAINT @@ -0,0 +1,76 @@ +Information for HDF5 maintainers: + +* You can run make from any directory. However, running in a + subdirectory only knows how to build things in that directory and + below. However, all makefiles know when their target depends on + something outside the local directory tree: + + $ cd test + $ make + make: *** No rule to make target ../src/libhdf5.a + +* All Makefiles understand the following targets: + + all -- build locally. + install -- install libs, headers, progs. + uninstall -- removed installed files. + mostlyclean -- remove temp files (eg, *.o but not *.a). + clean -- mostlyclean plus libs and progs. + distclean -- all non-distributed files. + maintainer-clean -- all but H5config.h.in and configure. + +* Most Makefiles also understand: + + TAGS -- build a tags table + dep depend -- recalculate source dependencies + lib -- build just the libraries w/o programs + +* If you have personal preferences for which make, compiler, compiler + flags, preprocessor flags, etc., that you use and you don't want to + set environment variables, then use a site configuration file. + + When configure starts, it looks in the config directory for files + whose name is some combination of the CPU name, vendor, and + operating system in this order: + + CPU-VENDOR-OS + VENDOR-OS + OS + + The first file which is found is sourced and can therefore affect + the behavior of the rest of configure. For example, the linux + configuration file might contain: + + # Site configuration -- do not distribute this file. + if test "X$CFLAGS" = "X"; then + CFLAGS="-g -Wall" + fi + + Site configuration files are for personal preferences and should + not be distributed. + + +* If you use GNU make along with gcc the Makefile will contain targets + that automatically maintain a list of source interdependencies; you + seldom have to say `make clean'. I say `seldom' because if you + change how one `*.h' file includes other `*.h' files you'll have + to force an update. + + To force an update of all dependency information remove the + `.depend' file from each directory and type `make depend'. For + instance: + + $ find . -name .depend -exec rm {} \; + $ make depend + +* Object files stay in the directory and are added to the library as a + final step instead of placing the file in the library immediately + and removing it from the directory. The reason is two-fold: + + 1. Most versions of make don't allow `$(LIB)($(SRC:.c=.o))' + which makes it necessary to have two lists of files, one + that ends with `.c' and the other that has the library + name wrapped around each `.o' file. + + 2. Some versions of make/ar have problems with modifications + times of archive members. |