1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
-*- text -*-
Notes to developers:
- Note that the README file is automatically generated from the main
page of the doxygen documentation by running "make doc" (or "make
readme").
- To check that all the code is working:
make check
make distcheck
make check with --enable-debug
Do this both from inside and outside sources.
- The following tools are necessary to generate all documentation (any
flavor of "make dist" will fail if these tools are not available):
- doxygen with man, pdf and html support
- a latex distribution with pdflatex, and the usually recommended
package files (such as float.sty) and fonts (such as ptmr8t)
- fig2dev (transfig package)
- gs (ghostscript package)
- epstopdf
- w3m or lynx (to generate the README)
On Debian systems, the following packages should be enough:
doxygen ghostscript texlive-latex-base texlive-latex-recommended
texlive-fonts-recommended texlive-font-utils transfig w3m
On RedHat systems:
ghostscript doxygen transfig tetex tetex-latex w3m
- *** BEFORE MAKING AN OFFICIAL RELEASE TARBALL: the release manager
MUST update the VERSION file:
- ensure that the major, minor, and release version numbers are
correct. The greek/svn numbers will automatically be stripped by
make_dist_tarball (see below).
- ensure that increment the so_version number as appropriate (see
the GNU Libtool documentation for a description of what to do).
- Create a distribution tarball by running the following from the
top-level source directory:
shell$ ./contrib/dist/make_dist_tarball
It will take a few minutes because it runs "make distcheck" and it
builds two tarballs (an official release and a greek release). For
example, after "make_dist_tarball" completes, you'll have two
tarballs, like this:
hwloc-0.9.1.tar.gz
hwloc-0.9.1rc1.tar.gz
The "rc1" tarball (or whatever the greek version is) can be
distributed for testing and validation. If it passes, then the
non-rc1 tarball can be released (it's identical to the rc1 tarball
except for its version).
- Check tarballs by configuring and building them and then running
"make check".
- make maintainer-clean can be used to properly remove the generated
documentations.
- Silent rules are used by default to reduce the build verbosity:
shell$ make
CC src/topology.lo
To revert to the old verbose rules, pass V=1 to make:
shell$ make V=1
/bin/sh ../libtool --tag=CC --mode=compile gcc [...] -c -o topology.lo topology.c
Building the Windows zipballs on Windows with MinGW:
- Install prerequisites:
- Visual C++ Express, currently available at:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express)
- mingw-w64-bin_i686-mingw_<date>.zip if building a 64bits zipball:
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/
- mingw-w32-bin_i686-mingw_<date>.zip If building a 32bits zipball,
or if building a 64bits zipball on a 32bits Windows:
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Automated%20Builds/
- MSYS-<date>.zip
http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/
- findutils-<version>-bin.zip
http://sourceforge.net/projects/ezwinports/files/
Unpack all these ZIPs in a path that does not contain spaces,
to avoid problems later.
- Launch msys.bat (in the root directory of the extracted MSYS ZIP).
- Your path must contain:
- The bin directory of the extracted MinGW ZIP
(it contains <arch>-gcc)
- The <arch>/lib directory of the extracted MinGW ZIP
(it contains libgcc*.DLL, needed for C++ tests during make check)
- Visual C++ Express bin and IDE directories
- The bin directory of the non-cross-compiling MinGW ZIP
when building a 64bits zipball on a 32bits Windows
- The bin directory of the findutils ZIP to find the "find" command
(the Windows find command cannot be used)
- Examples of PATH (depends on where ZIPs were extracted and were Visual Studio was installed):
- For a 32bits zipball:
$ PATH=/c/hwloc/mingw32/bin:/c/hwloc/mingw32/i686-w64-mingw32/lib:”/c/Program Files/Microsoft Visual Studio 10.0/VC/bin”:”/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE”:$PATH
- For a 64bits zipball:
$ PATH=/c/hwloc/mingw64/bin:/c/hwloc/mingw64/x86_64-w64-mingw32/lib:”/c/Program Files/Microsoft Visual Studio 10.0/VC/bin”:”/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE”:$PATH
- For a 64bits zipball on a 32bits Windows:
$ PATH=/c/hwloc/mingw64/bin:/c/hwloc/mingw32/bin:/c/hwloc/mingw32/i686-w64-mingw32/lib:”/c/Program Files/Microsoft Visual Studio 10.0/VC/bin”:”/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE”:$PATH
- Check that running "lib", "link" and "cl" finds the right tools (installed by Visual Studio)
and displays their usage output (list of command-line options).
- Download a hwloc tarball (building from SVN requires autotools, doxygen, LaTeX, etc.),
extract it and enter the directory.
- Set the install prefix to what the zipball name must be:
$ prefix=$PWD/hwloc-win<size>-build-<version>
- Configure
- For a 32bits zipball:
$ ./configure --prefix=$prefix --enable-static --host=i686-w64-mingw32
- For a 64bits zipball:
$ ./configure --prefix=$prefix --enable-static --host=x86_64-w64-mingw32
- Build
$ make
- If not building a 64bits zipball on a 32bits machine, test things:
$ make check
If your Windows is not configured in English, some failure may occur in tests/xml
because floats are localized.
- Install
$ make install
- Create the zipball
$ zip -r hwloc-win<size>-build-<version>.zip hwloc-win<size>-build-<version>
- Compare the contents of the new zipball with a previous one.
Make sure the .lib file was generated.
|