1
0
Fork 0
mirror of https://github.com/pygos/build.git synced 2024-11-22 11:09:46 +01:00

Update documentation

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
David Oberhollenzer 2018-06-17 20:42:06 +02:00
parent 7204b9dd75
commit 67e39250f5

View file

@ -27,10 +27,8 @@ downloaded package tar balls, in the later it extracts the tar balls.
For target specific files, a `<BOARD>-<PRODUCT>` directory is created. For target specific files, a `<BOARD>-<PRODUCT>` directory is created.
Throughout the build system, this directory is refereed to as *build root*. Throughout the build system, this directory is refereed to as *build root*.
Inside the build root directory a `deploy` and a `deploy-dev` directory are Inside the build root a `deploy` directory is created. Build output for each
created. Binaries built by various packages end up in a sub directory of the package is deployed to a sub directory named after the package.
former, development headers and static libraries in a sub directory in the
later.
The cross toolchain is stored in `<BOARD>-<PRODUCT>/toolchain`. The cross toolchain is stored in `<BOARD>-<PRODUCT>/toolchain`.
@ -73,14 +71,15 @@ The `build` script is also expected to implement the following functions:
* `build` is run to compile the package. The current working directory is a * `build` is run to compile the package. The current working directory is a
temporary directory inside the build root directory. The source directory temporary directory inside the build root directory. The source directory
is passed as first argument. The second argument is a path to the *deploy* is passed as first argument. The second argument is a path to the *deploy*
directory where binaries are installed and the third argument is the path directory where generated files are installed. All standard output and error
to the *deploy-dev* sub directory where headers and static libraries are to messages from the script are piped to `<packagename>-build.log`.
be installed. All output and error messages from the script are stored in
`<packagename>-build.log`.
* `deploy` is run after compilation to install the build output to the deploy * `deploy` is run after compilation to install the build output to the deploy
and deploy-dev directory. Arguments and working directory are the same as directory. Arguments and working directory are the same as for `build`. All
for `build`. All output and error messages from the script are stored in output and error messages from the script are piped to
`<packagename>-deploy.log`. `<packagename>-deploy.log`. Once the function returns, the `mk.sh` script
strips everything installed to `bin` and `lib`, so the implementation doesn't
have to do that. In fact `install-strip` Makefile targets should not be used
since many implementations are broken for cross compilation.
* `check_update` is only used by the `check_update.sh` script. It is supposed * `check_update` is only used by the `check_update.sh` script. It is supposed
to find out if the package has a newer version available, and if so, echo it to find out if the package has a newer version available, and if so, echo it
to stdout. to stdout.
@ -115,7 +114,6 @@ And a number of variables containing special directories:
the package is being built. the package is being built.
* `PKGSRCDIR` contains the root directory of all unpacked package tar balls * `PKGSRCDIR` contains the root directory of all unpacked package tar balls
* `PKGDEPLOYDIR` contains the root directory of all package deploy directories * `PKGDEPLOYDIR` contains the root directory of all package deploy directories
* `PKGDEVDEPLOYDIR` contains the root directory of all package deploy directories
* `PKGLOGDIR` holds the absolute path of the directory containing all log files * `PKGLOGDIR` holds the absolute path of the directory containing all log files
* `PKGDOWNLOADDIR` holds the absolute path of the directory containing all * `PKGDOWNLOADDIR` holds the absolute path of the directory containing all
package tar balls package tar balls
@ -130,11 +128,10 @@ Some utility functions are provided for common package build tasks:
* `apply_patches` can be used inside the `prepare` function to automatically * `apply_patches` can be used inside the `prepare` function to automatically
apply patches stored in the package directory to the source tree. apply patches stored in the package directory to the source tree.
* `strip_files` takes a list of files as argument and runs the cross toolchain * `strip_files` takes a list of files as argument and runs the cross toolchain
strip program on those that are valid ELF binaries. strip program on those that are valid ELF binaries. If a directory is
* `split_dev_deploy` can be used in the `deploy` function to automatically move encountered, the function recursively processes the sub directory. Usually
development files from the deploy directory (first argument) to the deploy-dev you don't need to use this. The `mk.sh` script uses this function to after
directory (second argument). This includes headers, pkgconfig files, static the deploy step to process the `bin` and `lib` directories.
libraries and libtool archives.
* `verson_find_greatest` can be used in `check_update` to find the largest * `verson_find_greatest` can be used in `check_update` to find the largest
version number from a list. The list of version numbers is read from stdin. version number from a list. The list of version numbers is read from stdin.
Version numbers can have up to four dot separated numbers or characters. Version numbers can have up to four dot separated numbers or characters.
@ -230,6 +227,7 @@ Currently, the following variables are used:
should be synchronized with during system boot and shutdown. should be synchronized with during system boot and shutdown.
* `DHCP_PORTS` contains a space separated list of network interfaces on which * `DHCP_PORTS` contains a space separated list of network interfaces on which
to operate a DHCP client for network auto configuration. to operate a DHCP client for network auto configuration.
* `SERVICES` contains a space separated list of raw service names to enable.
For configuring network interfaces, a file `ifrename` exists that assigns For configuring network interfaces, a file `ifrename` exists that assigns