MXE includes all the packages.mk's

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Timothy Gu 2013-11-27 14:38:43 -08:00
parent 92a432e033
commit 50d0de0662
1 changed files with 13 additions and 12 deletions

@ -6,17 +6,18 @@ 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 `include`s all the Makefiles in `src/`.
4. It includes the Makefile for the deepest dependency package in `src/`. 4. It solves dependency of packages to find the deepest depended package.
5. It downloads the `$($(PKG)_FILE)` and checks it against `$($(PKG)_CHECKSUM)`. The activities are logged 5. It starts building the deepest dependended package.
6. 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)`. 7. 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 extracts the tarball or zip file using the appropriate command.
8. It applies any patch that matches `src/$(PKG)-*.patch`. 9. It applies any patch that matches `src/$(PKG)-*.patch`.
9. It calls macro specified in the package Makefile. 10. 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 11. 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. 12. It continues to build the next package.