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