glib: Allow cross-building with native glib 2.24.
[minipack.git] / README
blob3f53aeae6cd76b8dde81ed68f701adead692e7c3
1 ========
2 Minipack
3 ========
5 Minipack is an automated build tool. Given a set of recipes and patches, it
6 downloads the sources, unpacks them, applies local patches, builds them and
7 installs them. Its primary use is for cross-compiling free software to
8 Windows, but minipack is more general-purpose than that.
10 To install, unpack it in any directory, and optionally set the PATH to it.
12 The tool can be run from anywhere, but it looks for a minipack.conf file
13 in the current directory or in a parent directory.
15 Some recipes for cross-compiling to Windows are included in the distribution:
16 * libraries: gtk+, guile, gd, freetype, libpng, jpeg, zlib, gettext.
17 * applications: gEDA/gaf, PCB.
18 See the 'recipes' directory for a full list.
20 When cross-compiling, you need a suitable cross-compiler for the host you are
21 targeting. On Debian and derivatives, you can type 'sudo apt-get install mingw32'
22 to get a MinGW cross-compiler. You can also build your own by using the build
23 script provided by the MinGW project.
25 Modify the host setting in the minipack.conf file to reflect the cross-compiler
26 being used. It can be found as the prefix of the compiler, eg. i586-mingw32msvc.
28 The build-all.sh script can be used to build all packages in one run. Edit the
29 BUILD list to select only a subset. Beware, some recipes require a native
30 version of pkg-config, others need the autotools and/or intltool as well.
32 =======
33   mpk
34 =======
36 The main (and only) tool of minipack is called mpk:
37 * mpk build <package>   - Download, unpack, and build a package.
38 * mpk unpack <package>  - Download and unpack a package.
39 * mpk source <package>  - Download a source package.
40 * mpk remove <package>  - Remove an installed package.
41 * mpk install <package> - Install a previously built package.
42 * mpk clean <package>   - Clean the build directory of a package.
43 * mpk shell [package]   - Enters a shell with a pre-defined environment.
44 * mpk --version         - Show the current Minipack version.
45 * mpk --help            - Show this screen.
47 A cache of downloaded sources is kept in the 'sources' directory.
49 To add more recipes to minipack, place the recipe in the 'recipes' directory
50 and place the patches in a subdirectory of the 'patches' directory.
53 ========================================
54 Building development versions of packages
55 ========================================
57 Suppose you want to build the development version of a package, not the
58 version shipped as a minipack recipe. The procedure is very similar as when
59 building a native (non-cross) development version:
61 1) Download the development source code.
62   You can download a snapshot, if available, or directly from source control
63   (cvs, svn, git, etc.)
64 2) Enter a minipack shell - mpk shell <package>
65   This will initialize some variables useful for passing to configure and
66   make, like prefix, host, build and compiler flags.
67 3) Generate the configure script, if needed.
68   Usually, you run a script named autogen.sh.
69 4) Build the package.
70   Usually, you run configure and make, like so:
71   echo "$mpk_opt" | xargs ./configure
72   make
73 5) Patch if necessary, run make again.
74 6) Run make install.
76 Have fun!