Updated How MXE builds its package (markdown)

Timothy Gu 2013-11-26 16:29:58 -08:00
parent 327358ce29
commit 2f89ec03c0
1 changed files with 17 additions and 17 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.
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.
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.