Template to bootstrap configure/automake projects for C++, libtool, Qt, NodeJS, PHP, Shell-Scripts, etc.
Extends autotools, by building packages for Debian and RPM, specifying generic library dependencies, creating desktop applications with icons, etc.
https://mrw.sh/development/bootstrap-build-environment
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.8 KiB
92 lines
2.8 KiB
9 years ago
|
Simplify Your Project Build Environment
|
||
6 years ago
|
=======================================
|
||
9 years ago
|
|
||
9 years ago
|
Automake and Autoconf based build environment that especially supports and preconfigures:
|
||
6 years ago
|
- C++, including:
|
||
9 years ago
|
- 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.
|
||
9 years ago
|
|
||
|
Simply setup a new project:
|
||
|
1. create a subversion basic tree
|
||
9 years ago
|
2. checkout subversion repository
|
||
9 years ago
|
3. cd into the new project subversion working copy
|
||
|
4. call with full path: /path/to/bootstrap.sh
|
||
9 years ago
|
5. if trunk has been created, cd to trunk
|
||
|
6. follow the instructions, i.e. edit configure.ac
|
||
|
7. run again: /path/to/bootstrap.sh
|
||
|
8. add some generated files: svn add COPYING ChangeLog INSTALL
|
||
9 years ago
|
9. check files, i.e. all makefile.am, set Section in debian/control.in
|
||
|
10. your project is setup and compilable, test: ./bootstrap.sh -b
|
||
|
|
||
9 years ago
|
|
||
9 years ago
|
For more details, see:
|
||
9 years ago
|
|
||
9 years ago
|
./bootstrap.sh -h
|
||
9 years ago
|
|
||
|
Example:
|
||
|
|
||
|
There is a just created empty subversion repository:
|
||
9 years ago
|
|
||
|
https://dev.marc.waeckerlin.org/svn/project-name
|
||
9 years ago
|
|
||
|
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:
|
||
|
|
||
9 years ago
|
Firstname Lastname (https://my.homepage.xyz) <me@mysite.xyz>
|
||
9 years ago
|
|
||
|
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
|
||
|
|
||
9 years ago
|
Add some additional files:
|
||
|
|
||
|
svn add trunk/{COPYING,INSTALL,ChangeLog}
|
||
|
|
||
9 years ago
|
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
|