User:Timothee Flutre/Notebook/Postdoc/2012/11/27: Difference between revisions
From OpenWetWare
(→How to make a GNU package?: mention CXXFLAGS with configure + improve tips with gdb) |
|||
Line 27: | Line 27: | ||
touch configure.ac Makefile.am src/Makefile.am doc/Makefile.am # and edit these files | touch configure.ac Makefile.am src/Makefile.am doc/Makefile.am # and edit these files | ||
autoreconf --install # use autoreconf --force the next times you want re-build configure | autoreconf --install # use autoreconf --force the next times you want re-build configure | ||
./configure # can be followed by --prefix=$HOME, LDFLAGS=-L/usr/local/lib, etc | ./configure # can be followed by --prefix=$HOME, LDFLAGS=-L/usr/local/lib, 'CXXFLAGS=-O0 -g', etc | ||
make # can be followed by LDFLAGS="-L/usr/local/lib -static" | make # can be followed by LDFLAGS="-L/usr/local/lib -static" | ||
make check # to automatically execute the tests | make check # to automatically execute the tests | ||
Line 66: | Line 66: | ||
* '''Tips:''' | * '''Tips:''' | ||
** if your package uses [http://www.gnu.org/software/libtool/manual/html_node/index.html libtool], you need to use gdb like this: <code>$ libtool --mode=execute gdb myprogram</code> | ** if your package uses [http://www.gnu.org/software/libtool/manual/html_node/index.html libtool], you need to use gdb like this: <code>$ libtool --mode=execute gdb --args myprogram -i input.txt</code> | ||
<!-- ##### DO NOT edit below this line unless you know what you are doing. ##### --> | <!-- ##### DO NOT edit below this line unless you know what you are doing. ##### --> |
Revision as of 23:49, 31 May 2013
Project name | <html><img src="/images/9/94/Report.png" border="0" /></html> Main project page <html><img src="/images/c/c3/Resultset_previous.png" border="0" /></html>Previous entry<html> </html> |
How to make a GNU package?(A very good tutorial by Martin Mann is available here.)
mkdir mypkg; cd mypkg touch COPYING README INSTALL NEWS AUTHORS ChangeLog mkdir src build-aux doc tests # you can also add other directories, e.g. scripts, data, lib
wget -O COPYING http://www.gnu.org/licenses/gpl-3.0.txt touch configure.ac Makefile.am src/Makefile.am doc/Makefile.am # and edit these files autoreconf --install # use autoreconf --force the next times you want re-build configure ./configure # can be followed by --prefix=$HOME, LDFLAGS=-L/usr/local/lib, 'CXXFLAGS=-O0 -g', etc make # can be followed by LDFLAGS="-L/usr/local/lib -static" make check # to automatically execute the tests
cd doc wget -O fdl.texi http://cvs.savannah.gnu.org/viewvc/*checkout*/gnustandards/fdl.texi?root=gnustand ards&content-type=text%2Fplain touch manual_hello.texi # and edit make pdf
make install make distcheck # can be followed by DISTCHECK_CONFIGURE_FLAGS=LDFLAGS=-L/usr/local/lib for instance tar tzvf mypkg-0.1.tar.gz # to check what is in the release git init git add AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README TODO build-aux/* configure.ac git add src/Makefile.am src/hello.cpp git add doc/Makefile.am doc/manual_hello.texi doc/fdl.texi git add tests/Makefile.am tests/test1.bash git commit -m "first commit" # and edit .git/info/exclude or .gitignore, tag your release, etc And check that you have all required files in your repo: cd ~/tmp; git clone ~/<path_to_original_repo>/hello autoreconf --force ./configure make make check make install make distcheck
|