GithubHelp home page GithubHelp logo

vzh / minipack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from peter-b/minipack

0.0 2.0 1.0 1.11 MB

Automated cross-compiling build tool, mostly for building gEDA for Windows.

License: GNU General Public License v3.0

Shell 52.67% Makefile 45.13% Batchfile 2.20%

minipack's Introduction

========
Minipack
========

Minipack is an automated build tool. Given a set of recipes and patches, it
downloads the sources, unpacks them, applies local patches, builds them and
installs them. Its primary use is for cross-compiling free software to
Windows, but minipack is more general-purpose than that.

To install, unpack it in any directory, and optionally set the PATH to it.

The tool can be run from anywhere, but it looks for a minipack.conf file
in the current directory or in a parent directory.

Some recipes for cross-compiling to Windows are included in the distribution:
* libraries: gtk+, glib, guile, mingw-libgnurx, gd, and their dependencies.
* applications: gEDA/gaf, PCB, gerbv.

See Makefile for a full list.

NOTE: Guile requires special treatment. Please see the Guile section below.

When cross-compiling, you need a suitable cross-compiler for the host you are
targeting. On Debian and derivatives, you can type 'sudo apt-get install mingw32'
to get a MinGW cross-compiler. You can also build your own by using the build
script provided by the MinGW project.

Modify the host setting in the minipack.conf file to reflect the cross-compiler
being used. It can be found as the prefix of the compiler, eg. i586-mingw32msvc.

Run 'make' to build all packages in one run, or the package you need using
'make package-name', e.g. 'make geda-gaf'.  Beware, some recipes require a
native version of pkg-config, others need the autotools and/or intltool as
well.

===============================
Using Makefile for installation
===============================

Some packages require installation of additional MinGW DLLs for work. Those
libraries are:
  libgcc_s_sjlj-1.dll

To install them, do as follows:
  cp /usr/lib/gcc/i686-w64-mingw32/4.9-win32/libgcc_s_sjlj-1.dll mingw-libs/
  make install prefix=/my_installation_directory

The path to the MinGW DLL's on your system may differ.

Use your own prefix or don't use it at all. In the latter case the
built programs will be installed into the ./install directory. (You can make
it symlink to an actual installation directory.)

=====
Guile
=====

In order to compile Guile, you have to have the same pre-compiled version of
Guile installed on your system, so first of all, you have to build it from
sources BEFORE compilation of all packages.  Remove all the Guile packages
installed on your system. Then do:
  ./mpk source guile
  cp -r sources/guile .
  cd guile/
  ./autogen.sh && ./configure && make && sudo make install

=======
  mpk
=======

The main (and only) tool of minipack is called mpk:
* mpk build <package>   - Download, unpack, and build a package.
* mpk unpack <package>  - Download and unpack a package.
* mpk source <package>  - Download a source package.
* mpk remove <package>  - Remove an installed package.
* mpk install <package> - Install a previously built package.
* mpk clean <package>   - Clean the build directory of a package.
* mpk shell [package]   - Enters a shell with a pre-defined environment.
* mpk --version         - Show the current Minipack version.
* mpk --help            - Show this screen.

A cache of downloaded sources is kept in the 'sources' directory.

To add more recipes to minipack, place the recipe in the 'recipes' directory
and place the patches in a subdirectory of the 'patches' directory.


========================================
Building development versions of packages
========================================

Suppose you want to build the development version of a package, not the
version shipped as a minipack recipe. The procedure is very similar as when
building a native (non-cross) development version:

1) Download the development source code.
  You can download a snapshot, if available, or directly from source control
  (cvs, svn, git, etc.)
2) Enter a minipack shell - mpk shell <package>
  This will initialize some variables useful for passing to configure and
  make, like prefix, host, build and compiler flags.
3) Generate the configure script, if needed.
  Usually, you run a script named autogen.sh.
4) Build the package.
  Usually, you run configure and make, like so:
  echo "$mpk_opt" | xargs ./configure
  make
5) Patch if necessary, run make again.
6) Run make install.

Have fun!

minipack's People

Contributors

cestrauss avatar vzh avatar pcjc2 avatar peter-b avatar kaimartin avatar bpaddock avatar

Watchers

James Cloos avatar  avatar

Forkers

bert

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.