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" --homepage ""

 let's try it:

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

$ cat README
A test: A test package for mkproject

Copyright (C) 2018 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 <>.

test (A test) homepage <>

Someone <>

$ cat NEWS
        * Project start

$ cat ChangeLog
2018-01-01 Someone <>
        * ChangeLog start

$ cat src/
#! /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 ./ 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 "" -m ""
 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 <>.

Reporting Bugs

Report bugs to <>.

See Also

The full documentation for mkproject is maintained as a Texinfo manual.  If the info and mkproject programs are properly installed at your site, the command

info mkproject

should give you access to the complete manual.


July 2018 mkproject 0.4.6 User Commands