This repo contains a tools for creating template erlang applications and releases usnig GNU Autotools as the build system.
This git repo is inspired by:
- Autotools 2nd Edition A Practitioner's Guide To GNU Autoconf, GNU Automake and Libtool by John Calcote
- Romain Lenglet's blog
The neptune tool depends upon a recent installation of Erlang OTP. Boot
strapping the build system for the neptune tool requires the installation of
GNU Autotools (autoconf and automake). Boot strapping the applications created
using neptune also requires the complete GNU Autotools, namely libtool.
To fetch and build do the following (assumming the Erlang/OTP installation is under /usr, not /usr/local. If not set the prefix accordingly):
git clone https://github.com/grahamcrowe77/neptune.git
cd neptune
./bootstrap.sh --prefix=/usr
./configure
make
sudo make installBy default the neptune creates an Erlang application template. The following
creates an Erlang application named uranus in the current working directory:
neptune uranus
cd uranus
find . -type fThe template application doesn't do anything useful but it compiles code, assembles documentation and includes some test examples. Note that build system of the created Erlang application needs to be boot strapped and thus depends on GNU Autotools being installed on your system:
./bootstrap.sh
./configure
make
make check
make install DESTDIR=$PWD/inst
make installcheck DESTDIR=$PWD/inst
make dist
make distcheckThe template application supports out of source tree builds:
make maintainer-clean
mkdir -pv ../build
cd ../build
../uranus/configure
make
make check
make install DESTDIR=$PWD/inst
make installcheck DESTDIR=$PWD/inst
make dist
make distcheckLinux Distro Erlang installations are usually installed with prefix=/usr. By
default the configure script sets prefix to /usr/local but allows this
variable (and others) to be set accordingly:
./configure --prefix=/usr
make
sudo make install
make installcheckTests can be selected or run in verbose mode:
make check # All tests
make check TESTSUITEFLAGS=-v # All tests verbose
make check TESTSUITEFLAGS="-k dialyzer" # Dialyzer test
make check TESTSUITEFLAGS="-k eunit" # Eunit tests
make check TESTSUITEFLAGS="-k ct" # Common tests
make check TESTSUITEFLAGS="-k blackbox" # Blackbox testsNeptune can be used to create an Erlang system release. The following creates
an Erlang application named uranus in a directory named uranus-system in
the current working directory:
neptune --type rel uranus
cd uranus-system
find . -type fThis will create an Erlang system release that includes an application named
uranus in the minimum set of applications bundled in the system
release. Note that build system of the created Erlang application needs to be
boot strapped and thus depends on GNU Autotools being installed on your system:
./bootstrap.sh
./configure
make
make check
make install DESTDIR=$PWD/inst
make installcheck DESTDIR=$PWD/inst
make dist
make distcheck