Git Product home page Git Product logo

mxe's Introduction

MXE (M cross environment)

License

Async Chat (Trial))

MXE (M cross environment) is a GNU Makefile that compiles a cross compiler and cross compiles many free libraries such as SDL and Qt. Thus, it provides a nice cross compiling environment for various target platforms, which:

  • is designed to run on any Unix system
  • is easy to adapt and to extend
  • builds many free libraries in addition to the cross compiler
  • can also build just a subset of the packages, and automatically builds their dependencies
  • downloads all needed packages and verifies them by their checksums
  • is able to update the version numbers of all packages automatically
  • directly uses source packages, thus ensuring the whole build mechanism is transparent
  • allows inter-package and intra-package parallel builds whenever possible
  • bundles ccache to speed up repeated builds
  • integrates well with autotools, cmake, qmake, and hand-written makefiles.
  • has been in continuous development since 2007 and is used by several projects

Supported Toolchains

  • Runtime: MinGW-w64
  • Host Triplets:
    • i686-w64-mingw32
    • x86_64-w64-mingw32
  • Packages:
    • static
    • shared
  • GCC Threading Libraries (winpthreads is always available):
  • GCC Exception Handling:

Please see mxe.cc for further information and package support matrix.

Build Dependencies

For some packages additional dependencies are required to be installed in order to build:

  • Python 3

Usage

You can use the make command to start the build.

Below an example of cross-compiling the GTK3 project to one statically linked Windows 64-bit library:

make gtk3 -j 8 MXE_TARGETS='x86_64-w64-mingw32.static'

Please see mxe.cc for more information about how-to build the MXE project.

Packages

Within the MXE makefiles we either define $(PKG)_GH_CONF or $(PKG)_URL, which will be used to download the package.
Next the checksum will be validated of the downloaded archive file (sha256 checksum).

Updating a package or updating checksum is all possible using the make commands, see usage for more info.

Shared Library Notes

There are several approaches to recursively finding DLL dependencies (alphabetical list):

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.