Project

General

Profile

Overview

h1. Simplify Your Project Build Environment

Automake and Autoconf based build environment that especially supports and preconfigures:
* C++ including:
** QT (without qmake, just using the AutoTools)
** LibTool
** Library dependencies
** CPP-Unit
** PKG-Config dependency file
* Doxygen for documentation
* Scripts
* HTML / Web projects
* Examples
* Tests
* Debian packaging
* RPM packaging
* Mac OSX App Bundle creation
* Subversion
* SQL to Doxygen schema documentation
* Build in Docker
* Resolve package dependencies
* ...

Makefiles and other files are generated automatically, necessary build and dependency rules are automatically added. There are no redundancies. This reduces extremely the size of your configuration. The whole build system becomes extremely simple, lean and smart.

Simply setup a new project:

create a subversion basic tree

checkout subversion repository

cd into the new project subversion working copy

call with full path: /path/to/bootstrap.sh

if trunk has been created, cd to trunk

follow the instructions, i.e. edit configure.ac

run again: /path/to/bootstrap.sh

add some generated files: svn add COPYING ChangeLog INSTALL

check files, i.e. all makefile.am, set Section in debian/control.in

your project is setup and compilable, test: ./bootstrap.sh -b

For more details, see:

./bootstrap.sh -h

h2. Example

There is a just created empty subversion repository:

https://dev.marc.waeckerlin.org/svn/project-name

Setup a basic project:

svn co https://dev.marc.waeckerlin.org/svn/project-name
cd project-name
../bootstrap-build-environment/scripts/bootstrap.sh
cd trunk

The file @AUTHORS@ is already correct due to my @gnupg@ setup:

Firstname Lastname (https://my.homepage.xyz) me@mysite.xyz

Edit the file @README@, I add the following lines:

First line is the headline, the short description, e.g. in the packages

The following lines describe your project...
They also appear in the package description

Edit @configure.ac@. Since I want to publish scripts, generate doxygen, debian and rpm packages, I enable the following lines:

AX_USE_SCRIPTS
AX_USE_DOXYGEN
AX_USE_DEBIAN_PACKAGING
AX_USE_RPM_PACKAGING

Also I check @Section@ in @debian/control.in@ and set it do @development@.

Then I continue, I rerun @bootstrap.sh@, this time with option @-b@ which calls @make distcheck@ at the end:

../../bootstrap-build-environment/scripts/bootstrap.sh -b

Add some additional files:

svn add trunk/{COPYING,INSTALL,ChangeLog}

Everything is fine, so checkin the changes and cleanup the system:

cd ..
svn ci -m "initial project creation"
cd ..
rm -rf project-name
svn co https://dev.marc.waeckerlin.org/svn/project-name/trunk project-name

Issue tracking

open closed Total
Fehler 0 0 0
Feature 0 0 0
Unterst├╝tzung 0 0 0

View all issues