Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial checkin, WIP

  • Loading branch information...
commit 6bbab7465dc2f3ad8cb02823655831186115225c 0 parents
@felixge authored
Showing with 50 additions and 0 deletions.
  1. +1 −0  .gitignore
  2. +49 −0 Readme.md
1  .gitignore
@@ -0,0 +1 @@
+*.un~
49 Readme.md
@@ -0,0 +1,49 @@
+# depmake
+
+depmake is a collection of bash functions and conventions for creating
+applications that can bundle all their code and dependencies inside a tar file.
+
+depmake has a certain overlap with tools such as [chef][] and [puppet][], but
+is much more focused and simple (~500 lines of bash).
+
+However, [simple does not mean easy][]. depmake is a tool that allows you to
+create simple deployment systems at the cost of more initial work.
+
+## Overview
+
+A typical depmake project allows you to check out a fresh copy of your project,
+then:
+
+```
+cd my-project
+source my-config.sh
+cd deps && make
+```
+
+This will kick off a process in which all your dependencies are built and
+installed into a folder called `stack`. Your `my-config.sh` then contains
+some code like this:
+
+```
+ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+export STACK_DIR="${ROOT_DIR}/stack"
+
+export ORIGINAL_PATH=${ORIGINAL_PATH:-$PATH}
+export PATH="${ORIGINAL_PATH}:${STACK_DIR}/bin"
+export CPPFLAGS="-I${STACK_DIR}/include"
+export LDFLAGS="-L${STACK_DIR}/lib"
+export LD_LIBRARY_PATH="${STACK_DIR}/lib"
+export PKG_CONFIG_PATH="${STACK_DIR}/lib/pkgconfig"
+```
+
+This makes sure that in addition to the usual paths your systems looks
+for binaries, shared libraries, etc., it will also consider the stuff insided
+of the `stack` folder.
+
+So effictively this creates a virtual environment that is activated by sourcing
+a bash file, and de-activated by starting a new shell session.
+
+
+[chef]: http://www.opscode.com/chef/
+[puppet]: http://puppetlabs.com/
+[simple does not mean easy]: http://www.infoq.com/presentations/Simple-Made-Easy
Please sign in to comment.
Something went wrong with that request. Please try again.