Skip to content

jbytheway/makeshift

Repository files navigation

Makeshift
=========

Makeshift is a way to ease the build process for programs written in C or C++
(or a mixture of the two).  It provides makefiles which, when used with GNU
make, do most of the hard work for you in dependency analysis and compilation.
You need only provide a few lines of code for each binary to fill in the gaps.

Most usefully, you need not specify what source files are to be included in the
compilation, the makefiles will figure that out for you.

Note that this is intended at an *aid to developers*; it is not a portability
aid, and as such is no substitute for a fully-fledged build system such as the
GNU autotools.

Copyright (C) 2010  John Bytheway

If you just want to build a project using makeshift, see INSTALL.  If you want
to use it in your own projects, see below.

Adding makeshift to a project
-----------------------------

In a git project, add makeshift as a submodule with

$ git submodule add git://github.com/jbytheway/makeshift.git

(or just copy the files into your source tree)

Create a toplevel Makefile by linking or copying the sample in makeshift

$ ln -s makeshift/Makefile.top Makefile

In each directory where you wish to build a binary or recurse to other
directories create a Makefile.local and fill it according to the instructions
in Makefile.common.

$ vi Makefile.local

(Do *not* create Makefiles except that top one above; makeshift does that for
you.)

Touch a top-level file called project.mk (will contain project-global
settings).

$ touch project.mk

And you're ready to go!

$ make

LICENSE
-------

    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
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    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/>.

About

A lightweight make-based build system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published