summaryrefslogtreecommitdiffstats
path: root/meta/classes/autotools.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* classes: Update classes to match new bitbake class scope functionalityRichard Purdie2022-08-121-260/+0
| | | | | | | | | Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add SPDX license identifiersRichard Purdie2022-08-121-0/+2
| | | | | | | | | | | | As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add copyright statements to files without oneRichard Purdie2022-08-121-0/+4
| | | | | | | | | Where there isn't a copyright statement, add one to make it explicit. Also drop editor config lines where they were present. (From OE-Core rev: 880c1ea3edc8edef974e65b2d424fc36809ea034) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: use ordinary append for file-checksums updateMatt Madison2021-09-261-4/+1
| | | | | | | | | | | | | | | | Commit 29daffc2410f06f36b779d5bf1fd1ef6e900ca8f added an anonymous python function to append the site file dependencies for do_configure. This causes any recipe that inherits allarch after autotools to end up with a different set of file checksums for each machine, since the anonymous python would get processed before the TARGET_ARCH changes in allarch. Use an ordinary += assignment to fix this. (From OE-Core rev: 60af398f520c938600205ef40e27f90e5342209c) Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo/autotools: Ensure task checksums reflect site filesRichard Purdie2021-09-231-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if you change the site files, nothing rebuilds since they are not accounted for in task checksums. They could/should be through the file-checksums task flag. We need to cache all the files looked for, whether the exist or not so that if they do exist and didn't, the checksum also changes. This gets complicated by the need to clean out hardcoded build paths from the variable and that other layers can have site files. This patch adds this functionality. A new variable, SITEINFO_PATHVARS is added which controls which substitutions to make on the file-checksum values to remove the hardcoded paths. Layers adding site files will need to set this to a variable that has the layer path in it and is excluded from task hashes (COREBASE is the one the core layer uses). This patch will cause yocto-check-layer to fail for some layers where site files are added yet the layer isn't a machine specific layer. This is arguable correct since these additional site files apply to all recipes and things from a layer like core could be changed by such changes so it is right they should rebuild. There is a determinism issue potentially there if not. meta-openembedded does have some such references but looking at them they should move to core or likely just be removed as most look obsolete anyway. [YOCTO #13729] (From OE-Core rev: 29daffc2410f06f36b779d5bf1fd1ef6e900ca8f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to new override syntaxRichard Purdie2021-08-021-4/+5
| | | | | | | | | | | | This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools/base/icecc: Remove prepend from function namesRichard Purdie2021-07-301-2/+2
| | | | | | | | | | Using prepend as part of a function name is a poor choice. Whilst we're about to make the syntax explict, improve the names anyway making the conversion easier and the intent clear that this isn't an override. (From OE-Core rev: 9d002acae720b0a8e96a6734424a142b86880461) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: no need to depend on gnu-configRoss Burton2021-02-071-1/+1
| | | | | | | | | | | autoconf 2.70 onwards installs its own copies of config.guess/config.sub which we keep up to date when autoconf builds, so there's no need to depend on gnu-config for those files. (From OE-Core rev: 332145c34b4aac2e74a713070af25414e1fd8c9c) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: remove intltoolize logicRoss Burton2021-02-071-8/+0
| | | | | | | | | | autoconf 2.70 now invokes intltoolize, so there's no need to do it again in this class. (From OE-Core rev: e24ac6605aeaae42475d3f753dc9452093af5a14) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: disable gtkdocize for nowRoss Burton2021-02-071-1/+1
| | | | | | | | | This breaks kmod, so for now we can continue to do it ourselves. (From OE-Core rev: 628e0263e3bb768ea771d0e0260fdb18e16c871e) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: don't warn about obsolete usageRoss Burton2021-02-071-1/+1
| | | | | | | | | | New autoconf warns about obsolete macro usage, but there is quite a lot of obsolete usage in the wild which isn't really in our problem. (From OE-Core rev: a152b5a37aec247b0540b82ad6c9bdc20c532d21) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: CONFIG_SHELL defaultsAndrej Valek2020-11-081-1/+1
| | | | | | | | | | | | | Do not hard-code default shell to /bin/bash even if CONFIG_SHELL is already set to other shell, but keep /bin/bash as a default. This will fix a shadow issue, where CONFIG_SHELL is exported to /bin/sh, but /bin/bash is used even if it's not installed. (From OE-Core rev: 019d9128af813cb87b702ae10aa630c79fc24c00) Signed-off-by: Andrej Kozemcak <andrej.kozemcak@siemens.com> Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: Order CONFIG_SHELL before CACHED_CONFIGUREVARSKhem Raj2020-10-171-1/+1
| | | | | | | | | | | | | | This helps in overriding CACHED_CONFIGUREVARS with wrappers to run configure under e.g. for static analysers like scan-build from clang, while it should not change the functionality in normal case. Since CONFIG_SHELL was introduced, it silently broke this use case and failed running static analyser on autotool based recipes (From OE-Core rev: 14c3454db0108ff78b73eecfae179a69241d9f5c) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: don't special-case help2man-native for dependenciesRoss Burton2020-07-181-1/+1
| | | | | | | | | | help2man-native doesn't need to be handled specially, we can build it normally or use INHIBIT_AUTOTOOLS_DEPS like everyone else. (From OE-Core rev: 886e7d08208c8788488f8299786140fd5b61e548) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: Give in and force CONFIG_SHELL to bashRichard Purdie2020-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | At present, CONFIG_SHELL becomes /bin/sh if its bash and /bin/bash if not. This isn't deterministic and leads to changes in ptest packages which include Makefiles. At first glance you'd think we'd hardcode to /bin/sh since most system shells are sane. Sadly the dash vs. bash leads to quoting differences in configure. The bash default is probably the safest option since configure tries to find bash and this is what most systems would end up using. The end result is a more consisent build environment. [YOCTO #13752] (From OE-Core rev: 33b1e27c29ed05da783f814cf9c3035675087ecc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: always include config_site.d files in CONFIG_SITEDan Callaghan2019-09-061-2/+5
| | | | | | | | | | Fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13375 (From OE-Core rev: e60c170b451a4aa561d08bfce97dca05508c2106) Signed-off-by: Dan Callaghan <dan.callaghan@opengear.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: adjust indentation for consistencyChen Qi2018-09-051-1/+1
| | | | | | | | | | All other functions in this class use TAB for indentation while the do_compile function uses '4 spaces'. Adjust it for consistency. (From OE-Core rev: c2829b74892633c554a5f8262d4cafbe0fa6c3a7) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: fix autoreconf bbnote commandline argumentsAndre McCurdy2018-07-261-1/+1
| | | | | | | | | | | | Leaving -Wcross out of the bbnote version of the autoreconf command seems to be a long standing inconsistency (dating back to the very first commit in oe-core) but there's no obvious reason to do so. (From OE-Core rev: 40644b2b33db6332293543bb39e8d4da07cf8c54) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: don't wipe gettext macros from gettextRoss Burton2018-01-141-1/+1
| | | | | | | | | | | | | | We usually forcibly delete any gettext macros we come across to ensure that the latest versions we ship are used, but if we're building gettext then it's a bad idea to delete the gettext macros. Historically this hasn't been a problem as the top-level gettext configure doesn't use AM_GNU_GETTEXT so the deletion was never done, but this may change. (From OE-Core rev: f16657df977e54210774812d4e616403c76eb060) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo: fix siteinfo_get_files to work with RSSJackie Huang2017-07-301-1/+1
| | | | | | | | | | | | The siteconfig cache files in ACLOCALDIR setup by autotools.bbclass has been dropped after switching to RSS, so change the siteconfig search path back to SITECONFIG_SYSROOTCACHE and the parameter name changed from aclocalcache to sysrootcache. (From OE-Core rev: 5b1454304483a0bc725b32fd5458e5281c68112f) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: Replace "grep ... >/dev/null" with "grep -q"Robert P. J. Day2017-03-271-4/+4
| | | | | | | | | For aesthetic style reasons, use "grep -q" instead of ">/dev/null". (From OE-Core rev: 39a7bfde92211b3546ff0a8e6a3e549714996b28) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: delete the extra varflag set for autotools_copy_aclocalsDengke Du2017-03-041-1/+0
| | | | | | | | | | | The autotools_copy_aclocals has been droped, so the varflag set for that should be removed. (From OE-Core rev: 2940340cc3c8581d16acdaec3ba1dbfd3e88f840) Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: Change acpaths defaults to be a weak assignmentKhem Raj2017-01-261-1/+1
| | | | | | | | | | | We currently have to override the default setting using a particular assignment order in the recipe, setting it weakly helps to get rid of this problem. (From OE-Core rev: 57be81156f74666ff2ed2755f5faa48edf00e4dc) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Switch to Recipe Specific SysrootsRichard Purdie2017-01-231-120/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is comparatively large and invasive. It does only do one thing, switching the system to build using recipe specific sysroots and where changes could be isolated from it, that has been done. With the current single sysroot approach, its possible for software to find things which aren't in their dependencies. This leads to a determinism problem and is a growing issue in several of the market segments where OE makes sense. The way to solve this problem for OE is to have seperate sysroots for each recipe and these will only contain the dependencies for that recipe. Its worth noting that this is not task specific sysroots and that OE's dependencies do vary enormously by task. This did result in some implementation challenges. There is nothing stopping the implementation of task specific sysroots at some later point based on this work but that as deemed a bridge too far right now. Implementation details: * Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in TMPDIR/sysroot-components/PACKAGE_ARCH/PN. * WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and RECIPE_SYSROOT_NATIVE. * This construction is primarily done by a new do_prepare_recipe_sysroot task which runs before do_configure and consists of a call to the extend_recipe_sysroot function. * Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot dependencies. * We have to do a search/replace 'fixme' operation on the files installed into the sysroot to change hardcoded paths into the correct ones. We create a fixmepath file in the component directory which lists the files which need this operation. * Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each time a new loader is added. These are handled by adding files in bindir with the name prefixed by "postinst-" and are run in each sysroot as its created if they're present. This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them. * Since a recipe can have multiple tasks and these tasks can run against each other at the same time we have to have a lock when we perform write operations against the sysroot. We also have to maintain manifests of what we install against a task checksum of the dependency. If the checksum changes, we remove its files and then add the new ones. * The autotools logic for filtering the view of m4 files is no longer needed (and was the model for the way extend_recipe_sysroot works). * For autotools, we used to build a combined m4 macros directory which had both the native and target m4 files. We can no longer do this so we use the target sysroot as the default and add the native sysroot as an extra backup include path. If we don't do this, we'd have to build target pkg-config before we could built anything using pkg-config for example (ditto gettext). Such dependencies would be painful so we haven't required that. * PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy for each machine. The paths therefore changed, the behaviour did not. * The ccache class had to be reworked to function with rss. * The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal recipe name therefore remains a bad idea. * The logic in insane needed tweaks to deal with the new path layout, as did the debug source file extraction code in package.bbclass. * The logic in sstate.bbclass had to be rewritten since it previously only performed search and replace on extracted sstate and we now need this to happen even if the compiled path was "correct". This in theory could cause a mild performance issue but since the sysroot data was the main data that needed this and we'd have to do it there regardless with rss, I've opted just to change the way the class for everything. The built output used to build the sstate output is now retained and installed rather than deleted. * The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold up against testing. This has been rewritten too. There are some assumptions made about paths, we save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is here works but is a little hardcoded and an area for future improvement. * In order to work with eSDK we need a way to build something that looks like the old style sysroot. "bitbake build-sysroots" will construct such a sysroot based on everything in the components directory that matches the current MACHINE. It will allow transition of external tools and can built target or native variants or both. It also supports a clean task. I'd suggest not relying on this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have to have built that in a previous bitbake invocation. * pseudo is run out of its components directory. This is fine as its statically linked. * The hacks for wayland to see allarch dependencies in the multilib case are no longer needed and can be dropped. * wic needed more extensive changes to work with rss and the fixes are in a separate commit series * Various oe-selftest tweaks were needed since tests did assume the location to binaries and the combined sysroot in several cases. * Most missing dependencies this work found have been sent out as separate patches as they were found but a few tweaks are still included here. * A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my hand. That implementation can probably be neater but this is on the list of things to cleanup later at this point. In summary, the impact people will likely see after this change: * Recipes may fail with missing dependencies, particularly native tools like gettext-native, glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors * Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst * There was a separate patch series dealing with roots postinst native dependency issues. Any postinst which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS. There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean we've found all the issues. Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the task logfiles, not the console so I've intentionally left this like that for now. We can turn it down easily enough in due course. (From OE-Core rev: 809746f56df4b91af014bf6a3f28997d6698ac78) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-6/+6
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/externalsrc: re-run do_configure when configure files changePaul Eggleton2016-10-111-0/+2
| | | | | | | | | | | | | | | | | | If the user modifies files such as CMakeLists.txt in the case of cmake, we want do_configure to re-run so that those changes can take effect. In order to accomplish that, have a variable CONFIGURE_FILES which specifies a list of files that will be put into do_configure's checksum (either full paths, or just filenames which will be searched for in the entire source tree). CONFIGURE_FILES then just needs to be set appropriately depending on what do_configure is doing; for now I've set this for autotools and cmake which are the most common cases. Fixes [YOCTO #7617]. (From OE-Core rev: 923fc20c2862a6d75f949082c9f6532ab7e2d2cd) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: use python3 instead of python (v2)Markus Lehtonen2016-09-281-1/+1
| | | | | | | (From OE-Core rev: 97b21645fdcdb39a58546b5f4d763b920fe5fbd6) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools/siteinfo: Tweak CONFIG_SITE handling for determism/racesRichard Purdie2016-09-221-3/+4
| | | | | | | | | | | | | | | | | | | | | | As things stand there are multiple races in the CONFIG_SITE handling where checksums can change depending on whether site directories exist or not when parsing happens. This is bad. Secondly, there is a build race that occurs if you build virtuals in parallel with the "main" recipe, since the main recipe is parsed when the virtual is (since it sets variables like BBCLASSEXTEND) and with the current code, it may look for files and directories which could be created/destroyed which the loop is executing. This is also bad. The aclocal-copy directory should only ever be accessed by the call from autotools.bbclass. This changes the parameter name to make it clear and ensures all callers have the right usage, neatly avoiding all the problems above. Also added better comments. (From OE-Core rev: 3207244004c612c1a0e13921251003e5e635d1b1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: Correctly filter m4 files view to setscene dependenciesRichard Purdie2016-09-141-19/+48
| | | | | | | | | | | | | | | | | | | | | | | Currently when you run builds from sstate, you can see warnings like: WARNING: systemd-1_230+gitAUTOINC+3a74d4fc90-r0 do_configure: /data/poky-master/tmp-glibc/sstate-control/manifest-intel-corei7-64-glibc-initial.populate_sysroot not found WARNING: systemd-1_230+gitAUTOINC+3a74d4fc90-r0 do_configure: /data/poky-master/tmp-glibc/sstate-control/manifest-intel-corei7-64-libgcc-initial.populate_sysroot not found This is due to co_configure wanting to copy a limited number of m4 macros, only listed in a recipes DEPENDS but that set is still larger than the set of recipes which get restored from sstate. For build determinism and to avoid these warnings, we need to make this function match what the sstate code does. We really don't want to duplicate the functionality since keeping things in sync would be hard so we create a data structure which can be passed into the same underlying function, setscene_depvalid(). [YOCTO #10030] (From OE-Core rev: 37ffb1f7d812e40d6fa23b44782eaa8436d9ab76) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: remove EXTRA_OEMAKE workaroundStefan Müller-Klieser2016-09-031-2/+0
| | | | | | | | | | | | The default of EXTRA_OEMAKE is already empty since commit: OE-Core rev: aeb653861a0ec39ea7a014c0622980edcbf653fa bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE (From OE-Core rev: 4fca6c95895d7d17cdfb637d383b28ee939fbd99) Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base, autotools: Append PACKAGECONFIG_CONFARGS to EXTRA_OECONF only in ↵Martin Jansa2016-09-031-0/+2
| | | | | | | | | | | | | autotools.bbclass * recipes which don't inherit autotools or cmake bbclass and want to use the configure options from PACKAGECONFIG need to handle PACKAGECONFIG_CONFARGS themselves. (From OE-Core rev: c98fb5f5129e71829ffab4449b3d28082bc95ab4) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: remove intltool.m4 from ${S}Ross Burton2016-08-101-3/+10
| | | | | | | | | | | | | We need to ensure that builds use our intltool.m4 as there is a bug in upstream's macros when the host doesn't have XML::Parser installed. So generalise the m4 pruning logic that we already have from gettext and add intltool.m4. (From OE-Core rev: 342fa2b8407552a962e7c78d0e4de7b2d0b30041) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: move aclocal-copy to WORKDIRRoss Burton2016-08-101-5/+3
| | | | | | | | | | | To save time move the temporary copy of the autoconf macros, aclocal-copy, from ${B} to ${WORKDIR}. This ensures that it can't conflict with anything in ${S} and means the pruning code doesn't need to know about it. (From OE-Core rev: d7249c5cce6fbc7875c46f2452ca8cd045773898) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: ensure Makefile exists in do_compileRoss Burton2016-06-231-1/+5
| | | | | | | | | | | | | | | If a recipe is using the autotools class then presumably it is using Makefiles. However the default do_compile() is forgiving and silently handles a missing makefile, which means that if a recipe is using a hand-coded static Makefile (e.g. git) but doesn't use brokensep the recipe will fail in do_install. To make debugging this easier, override do_compile in autotools so that it fails if a Makefile isn't present. (From OE-Core rev: 14839515301754e0b512fe3054d95dabc77ad829) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: fix py3 SyntaxError in cfgscript print()Tim Orling2016-05-151-1/+1
| | | | | | | | | Update so this works with python3. (From OE-Core rev: f533a1f78411f5537f1395496aa39f453fee581c) Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: add default for CACHED_CONFIGUREVARSRoss Burton2016-05-061-0/+2
| | | | | | | | | | Ensure that this variable has a default value so that we don't get debug messages that the variable couldn't be expanded. (From OE-Core rev: 27fd1bb7969b558864463450e1837c4400a03f9c) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: warn when running intltoolize if intltool isn't a dependemcyRoss Burton2016-04-291-0/+3
| | | | | | | (From OE-Core rev: 7ba90d2083970cb2a04afb8fa2ee2d485fef4e4d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: Fix interaction with bitbake -bRichard Purdie2016-02-141-0/+11
| | | | | | | | | | | | | | | | If you run bitbake -b on something using autotools with dependencies on m4 files, it currently fails as the TASKDEPDATA is incomplete for bitbake -b and this means the relevant macros aren't found. Work around this by adding *all* m4 files for the -b case (and show a warning). [YOCTO #8890] (From OE-Core rev: 60207e0cf3a5bce9123d3631a10a9540c72a9034) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: Correct dependency search logic errorRichard Purdie2016-02-141-3/+2
| | | | | | | | | | | | We go to the effort of finding the value of start, we should then use it rather than relying on the value of dep being preserved from the previous loop. Took me far too long to notice this issue when changing the code. Also drop an unused variable. (From OE-Core rev: c546cced50ce8b72fe55f9a7cfe7fdb23c51d1ad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Make sure that the directory for CONFIGURESTAMPFILE existsMarkus Lehtonen2016-01-311-0/+1
| | | | | | | (From OE-Core rev: bb82dc384bda48d746634ba1f4e315737993c794) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: use oe_runmake instead of ${MAKE}Markus Lehtonen2016-01-311-2/+1
| | | | | | | | | | Use oe_runmake like in base.bbclass so that EXTRA_OEMAKE will be respected. (From OE-Core rev: 5e89a79ae7f26735e523917555251313995d01d4) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: don't create subshell to delete configure scriptsAndre McCurdy2016-01-301-2/+2
| | | | | | | | (From OE-Core rev: 107ab45444bfaa2d287bb490f76b44fc827048b5) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: don't output the full config.log on configure failureRoss Burton2016-01-241-7/+4
| | | | | | | | | | | | | | | | | | | | The config.log written by autoconf includes many pages of useless output, followed by an obfuscated error message, and then more pages of every variable that's been set. It's only understandable if you're well versed in how autoconf behaves, and often in simple failure modes doesn't actually make it clear what the problem was. Instead of outputting the whole config.log to the console when do_configure() fails, use bbfatal_log so the human-readable configure output (not the config.log) is shown to the user, and tell the user where config.log can be found if they need it. [ YOCTO #8856 ] (From OE-Core rev: 55e263c559098cce99d8c3ef57ccc39f1d4a6848) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: use relative path to run configure scriptRobert Yang2016-01-181-1/+3
| | | | | | | | | | | | | | | The absolute path (/path/to/configure) caused VPATH in Makefile to be an absolute path, and then it will be in elf files, use relative path to run configure can fix the problem. This will reduce a lot of buildpaths QA issues in a world buld. [YOCTO #8894] (From OE-Core rev: 2c6ad43af0a0c4db5d7fd342be8585bec66debfb) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: Allow recipe-individual configure scriptsJens Rehsack2015-11-241-21/+22
| | | | | | | | | | | | | | | OpenJDK-8 has it's configure script at common/autotools - which will cause the entire assumption of ${S}/configure is regenerated by autoreconf, intltoolize or alike fails heavily. Also - other configure mechanisms can be supported more similar (see how pkgsrc manages different ones ...) (From OE-Core rev: fe506eddb0790e37ac1e50f37fa2e32ad81d5493) Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools: fix traversal bug in aclocal copyingChristopher Larson2015-09-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The logic is supposed to avoid following dependencies when we depend on a target recipe which depends on a native recipe. The problem is, we were marking the dep (the native recipe) as already processed when we avoided traversal, meaning that even when that recipe would be pulled in via a different dependency, we skipped it there too, and whether it was skipped entirely depended on the non-deterministic dep processing order. If the first one to be encountered was via the indirect target dep, it wouldn't end up in configuredeps, otherwise it would. As we want to avoid traversing that particular dependency relationship, not *every* dependency on the native, we should continue, but not add it to done, so it can be traversed from other avenues. This fixes an intermittent bug in some of my non-GPLv3 builds, where one dependency upon gettext-minimal-native was skipped, but others should not have been, resulting in it being removed from configuredeps entirely, and no gettext macros being available. Cc: Richard Purdie <richard.purdie@linuxfoundation.org> (From OE-Core rev: e6d4f8198a8708f54fc17333ae643b51ed9100b6) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: mkdir ${B} -> mkdir -p ${B}Robert Yang2015-09-181-1/+1
| | | | | | | | | | | | ${B} is the default cwd of tasks, so there might be race issues such as: | mkdir: cannot create directory `${B}': File exists [snip] NOTE: recipe perf-1.0-r9: task do_configure: Failed (From OE-Core rev: 72682d72b52355c3fed947167ca3c6064340ead1) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: Allow dependency tracking option to be overriddenRoy Li2015-08-301-1/+1
| | | | | | | | | | CONFIGUREOPT_DEPTRACK can not be overridden since it is set by = (From OE-Core rev: 758abeb219520ab5556186babcdb7e6660ce6e40) Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Use die() or bbfatal_log() where the log should definitely be printedPaul Eggleton2015-07-161-2/+2
| | | | | | | | | | | | | Change calls to bbfatal() to either die() or bbfatal_log() where we know we want the full log to be printed by the UI (calling bberror or bbfatal would otherwise suppress it since the change to connect these functions through to the UI.) bbfatal() is still fine to use where there is enough context information in the message such that the log isn't needed. (From OE-Core rev: 04ed9a19e1b08003329138b8ab83691d13c11fd9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Add explict getVar param for (non) expansionRichard Purdie2015-06-231-1/+1
| | | | | | | | | | | | | | Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>