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
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
Marc Wäckerlin 3bb9c86e81 detect wrong options 4 yıl önce
debian fixed build for rpm and deb 7 yıl önce
doc better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
scripts detect wrong options 4 yıl önce
AUTHORS AUTHOR updated to new homepage 9 yıl önce
COPYING update of build system 6 yıl önce
ChangeLog fix rpm builds 6 yıl önce
INSTALL better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
NEWS initial release for packaging 9 yıl önce
README.md use README.md instead of README 6 yıl önce
autogen.sh updated build system 8 yıl önce
ax_check_qt.m4 fix severe bug in build dependencies that slowes down build time - all projects should be updated; fix more bugs in rependency resolving 6 yıl önce
ax_cxx_compile_stdcxx.m4 better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
ax_cxx_compile_stdcxx_11.m4 updated build system 7 yıl önce
ax_init_standard_project.m4 better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
bootstrap-build-environment.desktop.in fixed icon and desktop file 8 yıl önce
bootstrap-build-environment.spec.in fix rpm builds 6 yıl önce
bootstrap.sh better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
build-in-docker.conf fix typo 7 yıl önce
build-in-docker.sh better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce
build-resource-file.sh new features and fixes 9 yıl önce
configure.ac fixed build for rpm and deb 7 yıl önce
dependency-graph.sh update of build system 6 yıl önce
mac-create-app-bundle.sh fix Mac OSX X11 dependency 6 yıl önce
makefile.am improve QT_PLUGIN_PATH detection; improve PROJECT_URL default; fix example dir; improve mac app build; tested build for deb and rpm 6 yıl önce
makefile_test.inc.am prepare to include makefiles 8 yıl önce
resolve-debbuilddeps.sh fix rpm builds 6 yıl önce
resolve-rpmbuilddeps.sh fix severe bug in build dependencies that slowes down build time - all projects should be updated; fix more bugs in rependency resolving 6 yıl önce
rpmsign.exp fixed build for rpm and deb 7 yıl önce
sql-to-dot.sed prepare to include makefiles 8 yıl önce
template.sh better support for new C++ standards, for README.md and more options in build-in-docker.sh 4 yıl önce

README.md

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:

  1. create a subversion basic tree
  2. checkout subversion repository
  3. cd into the new project subversion working copy
  4. call with full path: /path/to/bootstrap.sh
  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. check files, i.e. all makefile.am, set Section in debian/control.in
  10. your project is setup and compilable, test: ./bootstrap.sh -b

For more details, see:

./bootstrap.sh -h

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