mkproject - Man Page

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) 2021 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
2021-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.


January 2021 mkproject 0.4.6