Skip to content
white238 edited this page Jul 26, 2012 · 4 revisions

MixDown Project files contain everything MixDown needs to know to fetch, unpack, build, and install a project. It also contains the dependencies of each package so that they can be built in the proper order and in parallel.

A project file is nothing more than a list of Targets in a file that has the file extension of ".md". You can also declare defines inside the file as well.

Example of a MixDown project file

compiler=gcc

Name: Foo
Path: /path/to/foo.1.0.0.tar.gz
DependsOn: Bar,Baz
Fetch: steps.fetch(pythonCallInfo)
Unpack: steps.unpack(pythonCallInfo)
Preconfig: test -x configure || autoreconf -i
Config: ./configure --with-bar=$(_Prefix) --with-baz=$(_Prefix) CC=$(compiler)
Patch: mySteps.patchFoo(pythonCallInfo)
Build: make
Install: make install
Clean: make clean

Name: Bar
Path: http://path/to/bar.1.0.0.tar.gz
Fetch: steps.fetch(pythonCallInfo)
Unpack: steps.unpack(pythonCallInfo)
Preconfig: test -x configure || autoreconf -i
Config: ./configure
Patch: mySteps.patchFoo(pythonCallInfo)
Build: make
Install: make install
Clean: make clean

Name: Baz
Path: http://path/to/bar.1.0.0.tar.gz
Fetch: steps.fetch(pythonCallInfo)
Unpack: steps.unpack(pythonCallInfo)
Preconfig: test -x configure || autoreconf -i
Config: ./configure
Patch: mySteps.patchFoo(pythonCallInfo)
Build: make
Install: make install
Clean: make clean