Updated How MXE builds its package (markdown)

Timothy Gu 2013-11-26 16:30:39 -08:00
parent 2f89ec03c0
commit ff9eb15efd
1 changed files with 14 additions and 14 deletions

@ -3,20 +3,20 @@ MXE is a set of Makefiles that is used to mimic a mini Linux distribution.
## Building packages
When a person runs `make`, MXE does the following things:
1. It checks whether the requirements are met. If successful, it `touch`es a file in `usr/installed` to
prevent MXE from chacking that every time you run `make`.
2. It parses `index.html` to get a list of available packages.
3. It solves dependency of packages to find the deepest depended package.
4. It includes the Makefile for the deepest dependency package in `src/`.
5. It downloads the `$($(PKG)_FILE)` and checks it against `$($(PKG)_CHECKSUM)`. The activities are logged
in `log/$(PKG)-download`.
6. From this point on, all activities are logged in `log/$(PKG)`.
7. It extracts the tarball or zip file using the appropriate command.
8. It applies any patch that matches `src/$(PKG)-*.patch`.
9. It calls macro specified in the package Makefile.
1. If `$(PKG)_BUILD_$(TARGET)` macro exists, then it will call that macro.
2. If it doesn't, then it calls `$(PKG)_BUILD` macro to build the package.
3. Sometimes, it will also build a test program to make sure that the library works.
1. It checks whether the requirements are met. If successful, it `touch`es a file in `usr/installed` to
prevent MXE from chacking that every time you run `make`.
2. It parses `index.html` to get a list of available packages.
3. It solves dependency of packages to find the deepest depended package.
4. It includes the Makefile for the deepest dependency package in `src/`.
5. It downloads the `$($(PKG)_FILE)` and checks it against `$($(PKG)_CHECKSUM)`. The activities are logged
in `log/$(PKG)-download`.
6. From this point on, all activities are logged in `log/$(PKG)`.
7. It extracts the tarball or zip file using the appropriate command.
8. It applies any patch that matches `src/$(PKG)-*.patch`.
9. It calls macro specified in the package Makefile.
1. If `$(PKG)_BUILD_$(TARGET)` macro exists, then it will call that macro.
2. If it doesn't, then it calls `$(PKG)_BUILD` macro to build the package.
3. Sometimes, it will also build a test program to make sure that the library works.
10. It `touch`es an empty file in `usr/$(TARGET)/installed/` with the name of the package, signifying that
the package is built successfully.
11. It continues to build the next package.