Skip to content

emmef/library-project-template

Repository files navigation

This project generates a shared library project for you, based on your input.

When the project is generated, you should replace the content of this README.md with your own content.

To make things easier, the following block of text will be replaced by the appropriate parameters that you provide:

GenerateProjectDescription.

Copyright GenerateProjectInitialCopyrightYear GenerateProjectCopyrightHolder.

GenerateprojectCopyRightContact

The output of this project will be libTemplateLibraryName with headers by default installed in /usr/local/include/TemplateLibraryName

Bootstrapping

To create your brand new project, please use

  ./bootstrap libraryName projectName sourcePrefix copyRightHolder copyRightContact

Where

  • libraryName will be the name of the library, generated by your proejct, without the lib. So using libraryName "myproject" will generate the library libmyproject. The headers for users of your library will be in /usr/local/include/myproject/.
  • projectName is a very short description/name of the project, like "The best solution". It will also be added in each header/source file that is generated with the ./generatesource script that is created by ./bootstrap.
  • sourcePrefix is a short prefix for file names to be used in your project. In C projects it could also be used as a prefix for function and type declaration to prevent name clashes. In the case of "myproject" this could be something like mp_.
  • copyRightHolder that is either you or John L. Smith
  • copyRightContact is your E-mail or home page.

Passing no arguments or arguments that don't meet the requirements to bootstrap will print a small synopsis with what is expected.

The bootstrap script will make sure that configure.ac, Makefile.am, src/Makefile.am, AUTHORS, NOTICE are using the correct stuff that you provided as arguments.

After bootstrapping the connection to the CMS is removed on purpose and it might be a nice moment to do an initial commit of some kind in the CMS of your choice (after changing the READMEs to your liking). Ignore files are already present for Git and Mercurial.

Initialize autotools

The script ./init-autotools will create a /.configure script for you by running a series of autotools commands. If your library will end up in some distro package THAT is the way to distribute your source tarball.

Creating source files

The bootstrap process also created a script that can create source files for you: generatesource. To know how it works invoke it without arguments. It will not only complaint about missing arguments but will aslo give you a nice synopsis of its usage.

About

Template for shared library projects (autotools)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published