| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Don't evaluate <PKG>_CONFIG when it's not needed and only undefine it when
the variable is actually empty.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
(cherry picked from commit 08f7e13bb0558eca32c5ed7a69c2b03ab30c3d34)
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
MAKELEVEL is incremented for each sub-make call. The ptxdist make should
not be counted because this can confuse package makefiles that use this
variable to detect the make recursion level.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
| |
Add the dependency on the cfghash for <pkg>.report as well to ensure that
changes to <PKG>_LICENSE* are noticed.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT variable allows to specify
pkg-config variable that shall be relative to the target rootfs and not
contain the sysroot path. This is important for variables that are used
for writing files to the target rootfs, e.g., systemduserunitdir.
Currently, the sysroot is removed from all pkg-config variables, if
PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT is set, but packages already specify
the name of the variable that must not include the sysroot.
Add a check to remove the sysroot only from variables that are actually
contained in PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT.
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
| |
Packages may define <PKG>_CONFIG with '=' to avoid evaluating a complex
shell call if the package is not selected. However, this means the variable
is evaluated multiple time if the package _is_ selected.
Avoid this by overwriting the variable with itself using ':='.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
The config file is part of the hash. No need to depend on it.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
To create the hash for patch files, ptxdist executes several processes for
each package with patches. With many packages with patches, this creates
quite a lot of startup overhead.
To avoid this, collect all patch directories first and handle them with an
extra awk script and one find call.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
If <PKG>_PATCHES is set, then it is used instead of $(<PKG>) to find the
patch directory. It must be a relativ directory name that can be found in
the usual search path.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
| |
Note: we cannot determine PTX_PACKAGES_DISABLED using PACKAGES- etc.
With the way various packages handle platform specific exceptions, this
would result in missing or dplicate packages.
Instead, list all packages in ptxd_lib_dgen and filter out the enabled
packages.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
ptxd_make_world_kconfig() ist used for <pkg>_oldconfig targets. For
packages that build out-of-tree the pkg_build_dir may not yet exist so
create it if necessary.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
[mol: set CMAKE=false, otherwise preparing most packages will fail]
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
Without jobserver, the correct PTXDIST_PARALLELMFLAGS_INTERN must be
preserved. Otherwise ninja will just use the default.
This is especially important when '-j1' or '-ji1' is used for debugging.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
| |
A simple s/nomalized/normalized/g in that function did the trick.
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
for oot packages
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
The symlink is '.${pkg_label}' so check for this instead of '${pkg_label}'.
Earlier revisions of the original patch used '${pkg_label}' and not all
occurrences where replaced.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
cross-file.meson
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
If all patches for a package are removed then the package is currently not
reextracted because the .srchash dependency is just dropped and not
changed.
Fix this by defining a fake hash. This way the dependency changes and the
package is extracted again.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bit complex:
Clang does not have default CPU features that can be specified at
build-time. Instead the some features are derived from the compiler name
(e.g. via a symlink with target triple). Others must be specified on the
command-line (e.g. -mfpu=...).
The toolchain provides wrapper scripts with the target triple to do this.
However, using those is incompatible with icecc, because this only works if
the actuall binary is called.
So we let the toolchain provide the extra options and call clang directly.
And fall back to just the target triple if necessary.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After a version bump or package configuration changes, files from the
previous version may still be in sysroot. This can cause all kinds of
problems.
Also, some packages fail to build if sysroot contains the files from the
same packages but with a different configuration.
To avoid this, do the following:
- remember <PKG>_PKGDIR in a way to find the old path after a version bump
- remove all files of a packages from sysroot at the beginning of the
prepare stage and the install stage
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the workspace path contains a symlink, which means
"${PTXDIST_LAYERS[0]}" != $(readlink -f "${PTXDIST_LAYERS[0]}")
and 'base' is a symlink to another subdirectory of the workspace, then
ptxd_normalize_config() returns the wrong result:
For example:
PTXDIST_WORKSPACE = /tmp/link/BSP
$(readlink -f $PTXDIST_WORKSPACE) = /tmp/real/BSP
$(readlink -f $PTXDIST_WORKSPACE/base) = /tmp/real/BSP/layer
file_dotconfig = /tmp/link/BSP/base/configs/ptxconfig
After the first loop iteration:
nomalized = /tmp/link/BSP/layer/configs/ptxconfig
For the next loop iteration the substitution fails because now $nomalized
contains a symlink. As a result, ptxd_normalize_config() returns the wrong
path.
Fix this by checking if the original resolved path is within each layer and
update $nomalized if that is the case. This way the path is normalized
correctly even if other layers patch as well.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
| |
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
| |
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
symbol prefix
The 'config' script removes the CONFIG_ or PTXCONF_ prefix automatically if
an argument starts with it. Currently ptxd_kconfig_create_config_merge()
also removed the prefix when collecting the 'config' arguments.
This breaks if the actual symbol starts with the prefix. In this case, the
prefix is removed twice.
To fix this, pass the unmodified string and let 'config' remove the prefix
for all of them.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
| |
Allow disabling {pre,post}{inst,rm} scripts by providing a local symlink to
/dev/null.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This file has been touched 2 times in the last 7 years, and is no longer
up to date. Remove it to carry less unmaintained stuff around.
Also remove all references to it from file headers using
for file in `g grep -l 'See CREDITS for details about who has'`; do
sed -i '/See CREDITS for details about who has/,+1d' $file
done
as well as the different wording from rules/other/Toplevel.make.
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
| |
This might circumvent pkg-config blacklisting.
This is needed only for host packages. For target packages cmake is already
not in use because it is not defined in the cross file.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
This point came up multiple times in the past and the special handling
of targetinstall stages lead to confusion when trying to depend on image
packages. Document it to prevent further confusion in that matter, and
warn the user if such a make target exists.
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
| |
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
| |
We cannot simply use NR for line counting because RS is changed in
function dump_file. Add an extra variable to count lines, and reset it
on each new file.
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
| |
Add variables for the filename and full path of the command that will be
executed.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
| |
cmake can be used with 'make' and 'ninja'. Currently only 'make' is
supported.
This introduces a check to determine which generator is selected and calls
the corresponding tool in the compile and install stages.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
| |
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
| |
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
With --progress, 'make' is called twice so extra handling is needed to only
add the patches and config files to the hash files once.
This is broken for packages with patches but no config file:
The stamp file is never created.
Fix this by creating separate stamp files.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
This is needed for llvm / clang in the toolchain.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
Refuse to delete git repositories unless --force is used.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
This is in preparation to use it for other hashes.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
For legacy reasons, patches could be in a 'generic' subdir.
This has not been used in a long time. Remove support for this but add a
check to fail, if such patches are found.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
| |
It's not needed here. It wastes unnecessary build time and makes working
with '--git' harder because extra files may be are modifies.
This is relevant for packages that support multiple build systems and
autoconf is not used.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
| |
In that case make is called twice. Append the <PKG>_CONFIG file to the hash
file only once. Otherwise a incorrect hash is generated when --progress is
used.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
e.g. glew uses the destdir for includedir/libdir
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
Then devpkgs exist for two different configurations, then switching between
them then the .install.unpack stage will not be triggered again, because
the tarball is older.
Fix this by adding a extra dependency on .cfghash to handle this the same
way as the normal build.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
| |
Without this <PKG>_CFGHASH is used in dependencies before it is set.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
In case of any issue with `selcted_*` (non-exising for example),
it failed (silently at the bottom of ./ptxdist) showing only
> PTXdist: fatal error ... cannot start, sorry!
which isn't helpful, so let's see the real error as well.
Signed-off-by: Christian Hermann <christian.hermann@hytera.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|