60.1 Prepackage Development Environment

Let’s assume we maintain the source code in projects/wajig. Under this directory there is a collection of information files, configuration files, and a src subdirectory containing the python source code. This is a common GNU setup although not so common for python source code.

60.1.1 Files

The files include some that are required by the GNU standards and some that are required for the installation:

src

A subdirectory called src holds all the python source code.

60.1.2 Building the Distribution

Using autoconf we need a configuration file configure.in which contains the version number and other relevant information. See below for an example configure.in

Each of the identified AC_OUTPUT files will be generated by the configure script from the corresponding files suffixed with .in by the ./configure script which is in turn generated by the autoconf command which reads information from configure.in

So, when you change the version number regenerate the configure script with:

  $ autoconf

Next time you ./configure the new Makefiles and source code will contain the updated information.

  $ ./configure

The Makefile.in in the base directory includes a target to generate a tar file for distribution:

  $ make dist

The resulting tar file will be named something like ./wajig-2.0.20.tar.gz. After making the distribution tar file move it to another directory for the convenience of the Debian packaging tools:

  $ mv wajig-0.1.1.tar.gz ../../debian/wajig/ 

An example configure.in is:

  dnl Process this file with autoconf to produce a configure script. 
  AC_INIT(src/wajig.py)

  PACKAGE=wajig
  VERSION=2.0.20

  AC_PATH_PROG(PYTHON, python)

  AC_SUBST(PYTHON)
  AC_SUBST(PACKAGE)
  AC_SUBST(VERSION)

  AC_PROG_INSTALL
  AC_PROG_MAKE_SET

  AC_OUTPUT(Makefile src/Makefile src/const.py wajig.sh)


Your donation will support ongoing development and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.