User:Timothee Flutre/Notebook/Postdoc/2012/11/27

From OpenWetWare

(Difference between revisions)
Jump to: navigation, search
(Autocreate 2012/11/27 Entry for User:Timothee_Flutre/Notebook/Postdoc)
(How to make a GNU package?: mention autoreconf --force)
(8 intermediate revisions not shown.)
Line 6: Line 6:
| colspan="2"|
| colspan="2"|
<!-- ##### DO NOT edit above this line unless you know what you are doing. ##### -->
<!-- ##### DO NOT edit above this line unless you know what you are doing. ##### -->
-
==Entry title==
+
==How to make a GNU package?==
-
* Insert content here...
+
 +
* find a name for the package, for instance "mypkg"
 +
 +
* structure the package directory:
 +
mkdir mypkg; cd mypkg
 +
touch COPYING README INSTALL NEWS AUTHORS ChangeLog
 +
mkdir src build-aux doc tests #lib scripts
 +
 +
* populate the <code>src/</code> directory with your code, e.g. <code>hello.cpp</code>
 +
 +
* retrieve the license, for instance [http://www.gnu.org/licenses/gpl.html GPLv3]:
 +
wget -O COPYING http://www.gnu.org/licenses/gpl-3.0.txt
 +
 +
* fill the information files, such as README ([http://bzr.savannah.gnu.org/lh/gsl/trunk/annotate/head:/README example]), INSTALL ([http://bzr.savannah.gnu.org/lh/gsl/trunk/annotate/head:/INSTALL example])...
 +
 +
* use [http://en.wikipedia.org/wiki/GNU_build_system Autotools] (see the [http://www.gnu.org/software/automake/manual/automake.html manual] and this [http://www.lrde.epita.fr/~adl/autotools.html tutorial]; for the tests, have a look [http://www.sourceware.org/autobook/autobook/autobook_98.html here]):
 +
touch configure.ac Makefile.am src/Makefile.am doc/Makefile.am #and edit
 +
autoreconf --install # use autoreconf --force the next times
 +
./configure #can be followed by --prefix=~/bin, LDFLAGS=-L/usr/local/lib, etc
 +
make
 +
make check
 +
 +
* write some documentation in [http://en.wikipedia.org/wiki/Texinfo Texinfo]:
 +
<nowiki>
 +
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.texi #and edit
 +
make pdf
 +
</nowiki>
 +
 +
* make your package available to anyone:
 +
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
 +
 +
* share your code, for instance on [http://en.wikipedia.org/wiki/GitHub GitHub] (see [http://openwetware.org/wiki/User:Timothee_Flutre/Notebook/Postdoc/2012/08/14 my tips])
<!-- ##### 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 19:44, 8 January 2013

Project name Main project page
Previous entry      

How to make a GNU package?

  • find a name for the package, for instance "mypkg"
  • structure the package directory:
mkdir mypkg; cd mypkg
touch COPYING README INSTALL NEWS AUTHORS ChangeLog
mkdir src build-aux doc tests #lib scripts
  • populate the src/ directory with your code, e.g. hello.cpp
  • retrieve the license, for instance GPLv3:
wget -O COPYING http://www.gnu.org/licenses/gpl-3.0.txt
  • fill the information files, such as README (example), INSTALL (example)...
touch configure.ac Makefile.am src/Makefile.am doc/Makefile.am #and edit
autoreconf --install # use autoreconf --force the next times
./configure #can be followed by --prefix=~/bin, LDFLAGS=-L/usr/local/lib, etc
make
make check
  • write some documentation in Texinfo:
 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.texi #and edit
 make pdf

  • make your package available to anyone:
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


Personal tools