mkproject man page

mkproject — make project skeletons


mkproject [OPTIONS]

Example: mkproject -s bash -t test


make project is a command that makes project skeletons. make project automatizes the task of starting a new project with the information provided from the command line. The package created by default is a 'hello world' project of the selected skeleton that is managed with autotools. There are skeletons for bash, c, c library, python, c++, c++ library and perl.

Mandatory arguments for long options are mandatory for short options too.

-l, --list
list skeletons
-s, --skeleton=SKELETON
set skeleton type (obligatory)
-t, --tarname=TARNAME
set tar name (obligatory)
-p, --pkgname=PKGNAME
set package name (full)
-d, --description=DESCRIPTION
set short description
-a, --author=AUTHOR
set full author name
-b, --bugreport=BUGREPORT
set bug report adress
-m, --homepage=HOMEPAGE
set homepage url
-n, --dependencies=DEPENDENCIES
set dependencies
-r, --verbose
show progress messages
-h, --help
show a help message
-v, --version
show the program version

Skeleton and Tar Name are obligatory, the rest are recommended, dependencies is optional.


1: A bash project:
$ mkproject --skeleton=bash --tarname=test --pkgname="A test" --description="A test package for mkproject" --author="Someone" --bugreport=noemail@network.org --homepage "http://nohomepage.org"

 let's try it:

$ cd test
$ ls 
aclocal.m4      ChangeLog     COPYING     Makefile.am  mkproject.log  src
AUTHORS         configure     INSTALL     Makefile.in  NEWS
autom4te.cache  configure.ac  install-sh  missing      README

$ cat README
A test: A test package for mkproject

Copyright (C) 2016 Someone

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.

test (A test) homepage <http://nohomepage.org>

Someone <noemail@network.org>

$ cat NEWS
        * Project start

$ cat ChangeLog
2016-01-01 Someone <noemail@network.org>
        * ChangeLog start

$ cat src/main.sh
#! /usr/bin/env bash
echo "Hello world!"

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for bash... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile

$ make
Making all in src
make[1]: Entering directory `test/src'
cp ./main.sh test
chmod +x test
make[1]: Leaving directory `test/src'
make[1]: Entering directory `test'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `test'

$ src/test
Hello world!
2: A c project:
$ mkproject -s c -t at -p "Another test" -d "Another test for mkproject" -a "The same one" -b "stillnoemail@network.org" -m "http://stillnohomepage.org"
 to try it:
$ cd at && ./configure && make && src/at && make distcheck
3: Minimal options:
$ mkproject -s bash -t test


To add skeletons just place them in ${prefix}/share/mkproject/skeletons/ ( mkproject skeleton format is bash source ). See actual implementations for examples. Integration is automated.


Written by Juan Manuel Borges Caño.


mkproject (make project) home page <http://code.google.com/p/makeproject>.

Reporting Bugs

Report bugs to <juanmabcmail@gmail.com>.


mkproject 0.4.6 February 2016