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 -- remove 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 derived files 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 CPU-VENDOR OS VENDOR CPU The first file which is found is sourced and can therefore affect the behavior of the rest of configure. See config/BlankForm for the template. * 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'. For instance: $ cd $HDF5_HOME $ find . -name .depend -exec rm {} \; $ make If you're not using GNU make and gcc then dependencies come from ".distdep" files in each directory. Those files are generated on GNU systems and inserted into the Makefile's by running config.status (which happens near the end of configure). * If you use GNU make along with gcc then the Perl script `trace' is run just before dependencies are calculated to update any H5TRACE() calls that might appear in the file. Otherwise, after changing the type of a function (return type or argument types) one should run `trace' manually on those source files (e.g., ../bin/trace *.c). * 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 three-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 modification times of archive members. 3. Adding object files immediately causes problems on SMP machines where make is doing more than one thing at a time. * When using GNU make on an SMP you can cause it to compile more than one thing at a time. At the top of the source tree invoke make as $ make -j -l6 which causes make to fork as many children as possible as long as the load average doesn't go above 6. In subdirectories one can say $ make -j2 which limits the number of children to two (this doesn't work at the top level because the `-j2' is not passed to recursive makes). * To create a release tarball go to the top-level directory and run ./bin/release. You can optionally supply one or more of the words `tar', `gzip', `bzip2' or `compress' on the command line. The result will be a (compressed) tar file(s) in the `releases' directory. The README file is updated to contain the release date and version number. * To create a tarball of all the files which are part of HDF5 go to the top-level directory and type: tar cvf foo.tar `grep '^\.' MANIFEST |unexpand |cut -f1` limit in the compilerNick Coghlan2012-11-041-0/+2 * #16127: remove outdated references to narrow builds. Patch by Serhiy Storchaka.Ezio Melotti2012-10-051-2/+1 * merge mostly from defaultBenjamin Peterson2012-09-294-11/+22 |\ | * Merge with main repo default branch.Georg Brandl2012-09-294-11/+22 | |\ | | * Merge with 3.3.0 release clone.Georg Brandl2012-09-241-2/+2 | | |\ | | * | GCC doesn't support typeof in strict ansi mode (e.g. -ansi or -std=c89)Christian Heimes2012-09-231-1/+1 | | * | Issue #15144: Fix possible integer overflow when handling pointers as integer...Antoine Pitrou2012-09-202-6/+17 | | * | Merge in changes from 3.3.0rc2 release clone.Georg Brandl2012-09-091-2/+2 | | |\ \ | | * \ \ Issue #13992: The trashcan mechanism is now thread-safe. This eliminatesAntoine Pitrou2012-09-052-9/+21 | | |\ \ \ | | | * | | Issue #13992: The trashcan mechanism is now thread-safe. This eliminatesAntoine Pitrou2012-09-052-9/+21 | | * | | | Merge whitespace fix from 3.2.Trent Nelson2012-08-311-4/+4 | | |\ \ \ \ | | | |/ / / | | | * | | Remove trailing whitespace in order to silence warnings on HP-UX.Trent Nelson2012-08-311-4/+4 * | | | | | Post-release update.Georg Brandl2012-09-291-1/+1 |/ / / / / * | | | | Bump version to 3.3.0 final.Georg Brandl2012-09-291-3/+3 | |_|_|/ |/| | | * | | | Post-release updates.Georg Brandl2012-09-241-1/+1 * | | | Bump to 3.3.0rc3.v3.3.0rc3Georg Brandl2012-09-231-2/+2 * | | | GCC doesn't support typeof in strict ansi mode (e.g. -ansi or -std=c89)Christian Heimes2012-09-231-1/+1 | |_|/ |/| | * | | Post-release updates for 3.3.0rc2.Georg Brandl2012-09-091-1/+1 * | | Bump to 3.3.0rc2.Georg Brandl2012-09-091-2/+2 * | | Issue #13992: The trashcan mechanism is now thread-safe. This eliminatesAntoine Pitrou2012-09-052-9/+21 |/ / * | Post-release updates.Georg Brandl2012-08-251-1/+1 * | Bump to 3.3.0rc1.v3.3.0rc1Georg Brandl2012-08-251-3/+3 * | Post-release updates.Georg Brandl2012-08-121-1/+1 * | Bump to 3.3b2.v3.3.0b2Georg Brandl2012-08-111-2/+2 * | Issue #15610: The PyImport_ImportModuleEx macro now callsBrett Cannon2012-08-101-1/+1 * | use char instead of int to please T_BOOL (closes #15597)Benjamin Peterson2012-08-091-1/+1 * | MERGE: Closes #15512: Correct __sizeof__ support for parserJesus Cea2012-08-031-0/+3 |\ \ | |/ | * Closes #15512: Correct __sizeof__ support for parserJesus Cea2012-08-031-0/+3 * | Issue #12834: Fix PyBuffer_ToContiguous() for non-contiguous arrays.Stefan Krah2012-07-281-2/+3 * | Bump version to 3.3.0b1.v3.3.0b1Georg Brandl2012-06-261-3/+3 * | Issue #11626: Add _SizeT functions to stable ABI.Martin v. Löwis2012-06-231-1/+4 * | Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.Martin v. Löwis2012-06-23