binutils: update to 2.43.1
[openadk.git] / docs / package-reference.txt
blob29c4208d057973eb8eef6f44eb8381e2da46f188
1 [[package-reference]]
3 +package+ Reference
4 ~~~~~~~~~~~~~~~~~~~
6 The list of variables that can be set in a +Makefile+ to give metadata
7 information is: 
9 * +PKG_NAME+, mandatory, must contain the name of the package.
11 * +PKG_VERSION+, mandatory, must contain the version of the package.
13 * +PKG_RELEASE+, mandatory, must contain the OpenADK specific release of the package.
15 * +PKG_HASH+, mandatory, must contain the SHA256 hash of the package, will be used
16   to check if a download of a package is complete.
18 * +PKG_SECTION+, mandatory, must contain the OpenADK specific section, see package/section.lst.
20 * +PKG_RELEASE+, mandatory, must contain an one line summary of the package description.
22 * +PKG_URL+, optional, may contain the url to the homepage of the package
24 * +PKG_SITES+, mandatory, must contain the download url for the package, multiple entries
25   with space separated, are allowed. Only HTTP/HTTPS or FTP URLS are allowed.
26   A backup site (http://www.openadk.org/distfiles) is always used, if the package site is
27   not available. There is no direct support for cvs/svn/git/hg/bzr repositories, because 
28   building OpenADK behind a HTTP proxy should be working without any configuration hassle.
29   There are also some predefined mirror sites in +mk/mirrors.mk+,
30   which can be used.
31   Example: PKG_SITES:=          +${MASTER_SITE_GNU:=foo/}+
33 * +DISTFILES+ optional, may contain the name of the tarball of
34   the package. If +DISTFILES+ is not specified, it defaults to +PKG_NAME-PKG_VERSION.tar.xz+. 
35   Example: DISTFILES=           +${PKG_NAME}${PKG_VERSION}.tar.gz+
37 * +NO_DISTFILES+ optional, may be set to 1, to disable fetching of any archives.
38   Provide the source code for the package in +package/<pkgname>/src+, which will be
39   automatically copied to the WRKBUILD/WRKSRC directory.
41 * +PKG_BUILDDEP+ optional, lists the build time dependencies (in terms of package
42   directory name, see +package/+) that are required for the current target package to
43   compile. These dependencies are guaranteed to be compiled and
44   installed before the configuration of the current package starts.
46 * +PKG_DEPENDS+ optional, lists the runtime dependencies that are required to
47   run the software package on the target. It contains a list of package names,
48   which might be different to the package directory name. See what is used
49   in PKG_template, to find out the package name used here.
51 * +PKG_KDEPENDS+ optional, lists the kernel module dependencies that are required to
52   run the software package on the target. It contains a list of kernel module names
53   in lower case as used in +target/linux/config+. (use minus instead of underscores)
55 * +PKG_NEEDS+ optional, lists the features that are required to build or
56   run the software package on the target. It contains a list of keywords.
57   Supported are +threads+ +mmu+ +intl+ and +c+++
59 * +PKG_NOPARALLEL+ optional, may be set to 1, to disable parallel building of the
60   package via make -jn, n=4 is default, but can be changed in +Global Settings+ in the
61   menu based configuration.
63 * +PKG_OPTS+ optional, may be set to following values: 
64      +dev+ create a development package automatically, containing header files and +.pc+ files. 
65                 Only useful for library packages, when you want to compile on the target.
66      +devonly+ only creates a development package with header files, normally not needed on
67                 the target.
68      +noscripts+ do not automatically install *-config and other build related scripts into
69                 +STAGING_TARGET_DIR/scripts+, required for automake/autoconf package
70      +noremove+ do not automatically remove package files from +STAGING_TARGET_DIR+
72 The recommended way to define these variables is to use the following
73 syntax:
75 ----------------------
76 PKG_VERSION:=           2.11
77 ----------------------
79 Or for lines longer than 80 characters use:
80 ----------------------
81 PKG_DEPENDS:=           foo bar baz
82 PKG_DEPENDS+=           muh maeh
83 ----------------------
86 The variables that define what should be performed at the
87 different steps of the configure, build and install process.
89 * +CONFIG_STYLE+ manual, auto, minimal, basic, perl or cmake
91 * +CONFIGURE_ARGS+ add --enable-foo/--disable-foo to configure
93 * +CONFIGURE_ENV+ add additional environment variables to configure step
95 * +HOST_STYLE+ either manual or auto
97 * +HOST_CONFIGURE_ARGS+ add --enable-foo/--disable-foo to host configure
99 * +HOST_CONFIGURE_ENV+ add additional environment variables to the host configure step
101 * +AUTOTOOL_STYLE+ either autoreconf, autoconf or bootstrap
103 * +BUILD_STYLE+ either manual or auto
105 * +MAKE_ENV+ add additional variables to build step
107 * +MAKE_FLAGS+ add additional make flags to build step
109 * +FAKE_FLAGS+ add additional make flags to fake install step
111 * +XAKE_FLAGS+ add additional make flags to build and fake install step
113 * +INSTALL_STYLE+ either manual or auto
115 * +CONFIGURE_PROG+ override default configure program
117 * +MAKE_FILE+ override default Makefile
119 * +ALL_TARGET+ override default build target
121 * +INSTALL_TARGET+ override default install target
123 The variables to add or override preprocessor, compiler and linker flags:
125 * +TARGET_CPPFLAGS+ flags for the preprocessor
127 * +TARGET_CFLAGS+ flags for the compiler
129 * +TARGET_LDFLAGS+ flags for the linker
131 * +TARGET_CXXFLAGS+ flags for the C++ compiler
133 * +HOST_CPPFLAGS+ flags used for host preprocessing
135 * +HOST_CFLAGS+ flags used for host compiling
137 * +HOST_LDFLAGS+ flags used for host linking
139 * +HOST_CXXFLAGS+ flags for the C++ host compiler