From: Christopher Larson <[email protected]> The majority of our global exports are only needed for the build tasks, so switch them to those tasks (configure/compile/install, but not populate_sysroot or package).
Kept global exports: PATH, PSEUDO_DISABLED, LC_ALL, CCACHE_DIR, CCACHE_DISABLE The variables which are exported by default are listed in logically grouped variables, to make it easy to add or remove them from task exports: - PKG_CONFIG_EXPORTS: PKG_CONFIG_DIR, etc - BUILD_EXPORTS: BUILD_CC, etc - TARGET_EXPORTS: TARGET_CC, etc - TARGET_PATH_EXPORTS: prefix, bindir, etc Intermediate variables are added as well, to ease usage and avoid the need to mess with the flags directly for the common cases: - CONFIGURE_EXPORTS - COMPILE_EXPORTS - INSTALL_EXPORTS - POPULATE_SYSROOT_EXPORTS - PACKAGE_EXPORTS Future patches will pare down the exports from here. Specifically removing the default export of BUILD_EXPORTS, TARGET_EXPORTS, and TARGET_PATH_EXPORTS, none of which are consistently used by the buildsystems we're calling into. This is placed into conf/task-exports.conf, to avoid cluttering up bitbake.conf any further. Signed-off-by: Christopher Larson <[email protected]> --- meta/conf/bitbake.conf | 143 ++++++++++++++++++++++---------------------- meta/conf/task-exports.conf | 54 +++++++++++++++++ 2 files changed, 126 insertions(+), 71 deletions(-) create mode 100644 meta/conf/task-exports.conf diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index acef30b..f093cbf 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -13,37 +13,37 @@ BASELIB = "lib" BASELIB_powerpc64 = "lib64" # Path prefixes -export base_prefix = "" -export prefix = "/usr" -export exec_prefix = "/usr" +base_prefix = "" +prefix = "/usr" +exec_prefix = "/usr" # Base paths -export base_bindir = "${base_prefix}/bin" -export base_sbindir = "${base_prefix}/sbin" -export base_libdir = "${base_prefix}/${baselib}" -export nonarch_base_libdir = "${base_prefix}/lib" +base_bindir = "${base_prefix}/bin" +base_sbindir = "${base_prefix}/sbin" +base_libdir = "${base_prefix}/${baselib}" +nonarch_base_libdir = "${base_prefix}/lib" # Architecture independent paths -export sysconfdir = "${base_prefix}/etc" -export servicedir = "${base_prefix}/srv" -export sharedstatedir = "${base_prefix}/com" -export localstatedir = "${base_prefix}/var" -export datadir = "${prefix}/share" -export infodir = "${datadir}/info" -export mandir = "${datadir}/man" -export docdir = "${datadir}/doc" -export systemd_unitdir = "${nonarch_base_libdir}/systemd" -export systemd_system_unitdir = "${nonarch_base_libdir}/systemd/system" -export nonarch_libdir = "${exec_prefix}/lib" -export systemd_user_unitdir = "${nonarch_libdir}/systemd/user" +sysconfdir = "${base_prefix}/etc" +servicedir = "${base_prefix}/srv" +sharedstatedir = "${base_prefix}/com" +localstatedir = "${base_prefix}/var" +datadir = "${prefix}/share" +infodir = "${datadir}/info" +mandir = "${datadir}/man" +docdir = "${datadir}/doc" +systemd_unitdir = "${nonarch_base_libdir}/systemd" +systemd_system_unitdir = "${nonarch_base_libdir}/systemd/system" +nonarch_libdir = "${exec_prefix}/lib" +systemd_user_unitdir = "${nonarch_libdir}/systemd/user" # Architecture dependent paths -export bindir = "${exec_prefix}/bin" -export sbindir = "${exec_prefix}/sbin" -export libdir = "${exec_prefix}/${baselib}" -export libexecdir = "${exec_prefix}/libexec" -export includedir = "${exec_prefix}/include" -export oldincludedir = "${exec_prefix}/include" +bindir = "${exec_prefix}/bin" +sbindir = "${exec_prefix}/sbin" +libdir = "${exec_prefix}/${baselib}" +libexecdir = "${exec_prefix}/libexec" +includedir = "${exec_prefix}/include" +oldincludedir = "${exec_prefix}/include" localedir = "${libdir}/locale" # Linkage between native/cross/nativesdk layouts @@ -457,35 +457,35 @@ export CCACHE_DIR ??= "${@os.getenv('HOME')}" TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" -export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" -export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" -export CCLD = "${CC}" -export AR = "${HOST_PREFIX}ar" -export AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" -export RANLIB = "${HOST_PREFIX}ranlib" -export STRIP = "${HOST_PREFIX}strip" -export OBJCOPY = "${HOST_PREFIX}objcopy" -export OBJDUMP = "${HOST_PREFIX}objdump" -export STRINGS = "${HOST_PREFIX}strings" -export NM = "${HOST_PREFIX}nm" +CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" +LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" +CCLD = "${CC}" +AR = "${HOST_PREFIX}ar" +AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" +RANLIB = "${HOST_PREFIX}ranlib" +STRIP = "${HOST_PREFIX}strip" +OBJCOPY = "${HOST_PREFIX}objcopy" +OBJDUMP = "${HOST_PREFIX}objdump" +STRINGS = "${HOST_PREFIX}strings" +NM = "${HOST_PREFIX}nm" PYTHON = "${@sys.executable}" -export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" -export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" -export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" -export BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" -export BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" -export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" -export BUILD_AR = "${BUILD_PREFIX}ar" -export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" -export BUILD_RANLIB = "${BUILD_PREFIX}ranlib" -export BUILD_STRIP = "${BUILD_PREFIX}strip" -export BUILD_NM = "${BUILD_PREFIX}nm" - -export MAKE = "make" +BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" +BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" +BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" +BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" +BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" +BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" +BUILD_AR = "${BUILD_PREFIX}ar" +BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" +BUILD_RANLIB = "${BUILD_PREFIX}ranlib" +BUILD_STRIP = "${BUILD_PREFIX}strip" +BUILD_NM = "${BUILD_PREFIX}nm" + +MAKE = "make" EXTRA_OEMAKE = "" EXTRA_OECONF = "" export LC_ALL = "en_US.UTF-8" @@ -500,21 +500,21 @@ PATCHRESOLVE = "noop" # Build flags and options. ################################################################## -export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}" +BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}" BUILDSDK_CPPFLAGS = "" -export CPPFLAGS = "${TARGET_CPPFLAGS}" -export TARGET_CPPFLAGS = "" +CPPFLAGS = "${TARGET_CPPFLAGS}" +TARGET_CPPFLAGS = "" -export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}" +BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}" BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}" -export CFLAGS = "${TARGET_CFLAGS}" -export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" +CFLAGS = "${TARGET_CFLAGS}" +TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" -export BUILD_CXXFLAGS = "${BUILD_CFLAGS}" -export CXXFLAGS = "${TARGET_CXXFLAGS}" -export TARGET_CXXFLAGS = "${TARGET_CFLAGS}" +BUILD_CXXFLAGS = "${BUILD_CFLAGS}" +CXXFLAGS = "${TARGET_CXXFLAGS}" +TARGET_CXXFLAGS = "${TARGET_CFLAGS}" -export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \ +BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \ -L${STAGING_BASE_LIBDIR_NATIVE} \ -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \ -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} \ @@ -539,8 +539,8 @@ LINKER_HASH_STYLE_mips64n32 = "sysv" LINKER_HASH_STYLE_mips64eln32 = "sysv" TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE', True) != 'gnu']}" -export LDFLAGS = "${TARGET_LDFLAGS}" -export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE}" +LDFLAGS = "${TARGET_LDFLAGS}" +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE}" #export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} \ # -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir} \ # -Wl,-O1" @@ -655,13 +655,13 @@ BUILDCFG_NEEDEDVARS[type] = "list" # Other -export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" -export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" -export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" -export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" -export PKG_CONFIG_DISABLE_UNINSTALLED = "yes" -export PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}" -export PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}" +PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" +PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" +PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" +PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" +PKG_CONFIG_DISABLE_UNINSTALLED = "yes" +PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}" +PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}" ### ### Config file processing @@ -698,6 +698,7 @@ FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDE ################################################################## require conf/abi_version.conf +require conf/task-exports.conf include conf/site.conf include conf/auto.conf include conf/local.conf diff --git a/meta/conf/task-exports.conf b/meta/conf/task-exports.conf new file mode 100644 index 0000000..fd7faf7 --- /dev/null +++ b/meta/conf/task-exports.conf @@ -0,0 +1,54 @@ +# Default variables to export at the task level for our builds + +BASE_TASK_EXPORTS = "\ + AR AS CC CCLD CFLAGS CPP CPPFLAGS CXX CXXFLAGS FC LD LDFLAGS \ + MAKE NM OBJCOPY OBJDUMP RANLIB STRINGS STRIP \ + \ + ${PKG_CONFIG_EXPORTS} \ + \ + ${BUILD_EXPORTS} \ + ${TARGET_EXPORTS} \ + ${TARGET_PATH_EXPORTS} \ +" +PKG_CONFIG_EXPORTS = "\ + PKG_CONFIG_DIR \ + PKG_CONFIG_DISABLE_UNINSTALLED \ + PKG_CONFIG_LIBDIR \ + PKG_CONFIG_PATH \ + PKG_CONFIG_SYSROOT_DIR \ + PKG_CONFIG_SYSTEM_INCLUDE_PATH \ + PKG_CONFIG_SYSTEM_LIBRARY_PATH \ +" +BUILD_EXPORTS = "\ + BUILD_AR BUILD_AS BUILD_CC BUILD_CCLD BUILD_CFLAGS BUILD_CPP \ + BUILD_CPPFLAGS BUILD_CXX BUILD_CXXFLAGS BUILD_FC BUILD_LD BUILD_LDFLAGS \ + BUILD_NM BUILD_RANLIB BUILD_STRIP \ +" +TARGET_EXPORTS = "TARGET_CFLAGS TARGET_CPPFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS" +TARGET_PATH_EXPORTS = "\ + base_bindir base_libdir base_prefix base_sbindir bindir datadir \ + docdir exec_prefix includedir infodir libdir libexecdir localstatedir \ + mandir nonarch_base_libdir nonarch_libdir oldincludedir prefix \ + sbindir servicedir sharedstatedir sysconfdir systemd_system_unitdir \ + systemd_unitdir systemd_user_unitdir \ +" + +# do_siteconfig_gencache runs ./configure +POPULATE_SYSROOT_EXPORTS .= "${@' ${CONFIGURE_EXPORTS}' if bb.data.inherits_class('siteconfig', d) and os.path.isdir('${FILE_DIRNAME}/site_config') else ''}" + +# add_xorg_abi_depends needs to run pkg-config +PACKAGE_EXPORTS .= "${@'${PKG_CONFIG_EXPORTS}' if 'add_xorg_abi_depends' in '${PACKAGEFUNCS}'.split() else ''}" + +CONFIGURE_EXPORTS = "${BASE_TASK_EXPORTS}" +COMPILE_EXPORTS = "${BASE_TASK_EXPORTS}" +INSTALL_EXPORTS = "${BASE_TASK_EXPORTS}" +POPULATE_SYSROOT_EXPORTS = "" +PACKAGE_EXPORTS = "" + +do_configure[exports] += "${CONFIGURE_EXPORTS}" +do_compile[exports] += "${COMPILE_EXPORTS}" +do_compile_ptest_base[exports] += "${COMPILE_EXPORTS}" +do_install[exports] += "${INSTALL_EXPORTS}" +do_install_ptest_base[exports] += "${INSTALL_EXPORTS}" +do_populate_sysroot[exports] += "${POPULATE_SYSROOT_EXPORTS}" +do_package[exports] += "${PACKAGE_EXPORTS}" -- 2.8.0 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
