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

From OpenWetWare
Revision as of 23:17, 27 November 2012 by Timothee Flutre (talk | contribs) (→‎How to make a GNU package?: add examples for README and INSTALL)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</html>

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 test #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
./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