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 ## Building packages
When a person runs `make`, MXE does the following things: 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 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`. prevent MXE from chacking that every time you run `make`.
2. It parses `index.html` to get a list of available packages. 2. It parses `index.html` to get a list of available packages.
3. It solves dependency of packages to find the deepest depended package. 3. It solves dependency of packages to find the deepest depended package.
4. It includes the Makefile for the deepest dependency package in `src/`. 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 5. It downloads the `$($(PKG)_FILE)` and checks it against `$($(PKG)_CHECKSUM)`. The activities are logged
in `log/$(PKG)-download`. in `log/$(PKG)-download`.
6. From this point on, all activities are logged in `log/$(PKG)`. 6. From this point on, all activities are logged in `log/$(PKG)`.
7. It extracts the tarball or zip file using the appropriate command. 7. It extracts the tarball or zip file using the appropriate command.
8. It applies any patch that matches `src/$(PKG)-*.patch`. 8. It applies any patch that matches `src/$(PKG)-*.patch`.
9. It calls macro specified in the package Makefile. 9. It calls macro specified in the package Makefile.
1. If `$(PKG)_BUILD_$(TARGET)` macro exists, then it will call that macro. 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. 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. 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 10. It `touch`es an empty file in `usr/$(TARGET)/installed/` with the name of the package, signifying that
the package is built successfully. the package is built successfully.
11.It continues to build the next package. 11. It continues to build the next package.