Skip to content
white238 edited this page Mar 5, 2013 · 5 revisions

A Target is a group of fields that describe everything MixDown needs to fetch, unpack and build a source code package. The format is as follows:

Name: [Name of Target]
Path: [Path of Target]
Aliases: [List of aliases, comma delimited]
DependsOn: [List of dependencies, comma delimited]
Fetch: [Commands to be executed]
Unpack: [Commands to be executed]
Patch: [Commands to be executed]
Preconfig: [Commands to be executed]
Config: [Commands to be executed]
Build: [Commands to be executed]
Install: [Commands to be executed]
Clean: [Commands to be executed]

The 'Name' and 'Path' fields are required and an error will be thrown if they are not present. All other fields are optional. Though obviously some build steps are required if MixDown is to do anything.

Target Rules

  • Name: Name of the target. Used for log output and how other packages refer to it.
  • Path: Location of target. MixDown supports URL's, local file systems, TarBalls, and Zip files.
  • Prefix: Location of target's install path. If defined MixDown will not build the target if the prefix exists and this value should be used where other targets need to know about this target's prefix.
  • Aliases: List of aliases that other targets can refer to instead of the actual name of the project. This is needed if another target's build system doesn't use the actual name of the project in its dependency list. Such as SSL instead of OpenSSL.
  • DependsOn: List of targets that are required to be build before this target is built. MixDown automatically generates the necessary command line options for the individual build systems. For instance in Autoconf, the dependency named foo would be pointed to with "--with-foo=" on the commandline.
  • Fetch, Unpack, Patch, Preconfig, Config, Build, Install, Clean: Commands to be executed in each phase of the build. These build steps can be reordered or left blank.