Remove layout_* variables

Remove layout_* variables and replace them with variables specific to the
different classes. The layout variables were only useful for the native/cross
classes and caused more confusion than they solved. They didn't scale to the
sdk class. It now clear a small set of native/cross variables fulfil the needs.

This patch also changes native.bbclass to use "/" as the STAGING_DIR which makes
sense since we're installing binaries into the locations we're compiling them for.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie
2009-09-16 23:09:44 +01:00
parent 046ae6a38d
commit af85ce4b4e
57 changed files with 210 additions and 268 deletions

View File

@@ -1,65 +1,51 @@
##################################################################
# Standard target filesystem layout.
##################################################################
# Path prefixes
layout_prefix = "/usr"
layout_exec_prefix = "/usr"
layout_base_prefix = ""
# Base paths
layout_base_bindir = "${layout_base_prefix}/bin"
layout_base_sbindir = "${layout_base_prefix}/sbin"
layout_base_libdir = "${layout_base_prefix}/lib"
# Architecture independent paths
layout_sysconfdir = "${layout_base_prefix}/etc"
layout_localstatedir = "${layout_base_prefix}/var"
layout_servicedir = "${layout_base_prefix}/srv"
layout_sharedstatedir = "${layout_prefix}/com"
layout_datadir = "${layout_prefix}/share"
layout_infodir = "${layout_datadir}/info"
layout_mandir = "${layout_datadir}/man"
layout_docdir = "${layout_datadir}/doc"
# Architecture dependent paths
layout_bindir = "${layout_exec_prefix}/bin"
layout_sbindir = "${layout_exec_prefix}/sbin"
layout_libdir = "${layout_exec_prefix}/lib"
layout_includedir = "${layout_exec_prefix}/include"
layout_libexecdir = "${layout_exec_prefix}/libexec"
##################################################################
# Standard target filesystem paths.
##################################################################
# Path prefixes
export base_prefix = ""
export prefix = "${layout_prefix}"
export exec_prefix = "${layout_exec_prefix}"
export prefix = "/usr"
export exec_prefix = "/usr"
# Base paths
export base_bindir = "${layout_base_bindir}"
export base_sbindir = "${layout_base_sbindir}"
export base_libdir = "${layout_base_libdir}"
export base_bindir = "${base_prefix}/bin"
export base_sbindir = "${base_prefix}/sbin"
export base_libdir = "${base_prefix}/lib"
# Architecture independent paths
export datadir = "${layout_datadir}"
export sysconfdir = "${layout_sysconfdir}"
export sharedstatedir = "${layout_sharedstatedir}"
export localstatedir = "${layout_localstatedir}"
export infodir = "${layout_infodir}"
export mandir = "${layout_mandir}"
export docdir = "${layout_docdir}"
export servicedir = "${layout_servicedir}"
export datadir = "${prefix}/share"
export sysconfdir = "${base_prefix}/etc"
export servicedir = "${base_prefix}/srv"
export sharedstatedir = "${base_prefix}/com"
export localstatedir = "${base_prefix}/var"
export infodir = "${datadir}/info"
export mandir = "${datadir}/man"
export docdir = "${datadir}/doc"
# Architecture dependent paths
export bindir = "${layout_bindir}"
export sbindir = "${layout_sbindir}"
export libexecdir = "${layout_libexecdir}"
export libdir = "${layout_libdir}"
export includedir = "${layout_includedir}"
export oldincludedir = "${layout_includedir}"
export bindir = "${exec_prefix}/bin"
export sbindir = "${exec_prefix}/sbin"
export libexecdir = "${exec_prefix}/libexec"
export libdir = "${exec_prefix}/lib"
export includedir = "${exec_prefix}/include"
export oldincludedir = "${exec_prefix}/include"
base_bindir_native = "/bin"
base_sbindir_native = "/sbin"
sysconfdir_native = "/etc"
prefix_native = "/usr"
bindir_native = "${prefix_native}/bin"
sbindir_native = "${prefix_native}/sbin"
includedir_native = "${prefix_native}/include"
libdir_native = "${prefix_native}/lib"
datadir_native = "${prefix_native}/share"
bindir_cross = "/bin"
#
# Cross recipes need to know about the target layout
# := is used carefully here
#
target_datadir := "${datadir}"
##################################################################
# Architecture-dependent build variables.
@@ -263,21 +249,21 @@ B = "${S}"
STAGING_DIR = "${TMPDIR}/staging"
STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_bindir}"
STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${layout_bindir}/${MULTIMACH_HOST_SYS}"
STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_libdir}"
STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_includedir}"
STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_datadir}"
STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${bindir_cross}/${MULTIMACH_HOST_SYS}"
STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine
# specific packages - hack around it for now.
STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
STAGING_BINDIR = "${STAGING_DIR_HOST}${layout_bindir}"
STAGING_LIBDIR = "${STAGING_DIR_HOST}${layout_libdir}"
STAGING_INCDIR = "${STAGING_DIR_HOST}${layout_includedir}"
STAGING_DATADIR = "${STAGING_DIR_HOST}${layout_datadir}"
STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${layout_exec_prefix}"
STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${exec_prefix}"
STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4"
@@ -367,7 +353,7 @@ EXTRA_IMAGEDEPENDS = ""
CROSS_DIR = "${TMPDIR}/cross/${BASE_PACKAGE_ARCH}"
CROSS_DATADIR = "${CROSS_DIR}/share"
PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${layout_sbindir}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/bin:${STAGING_DIR_NATIVE}${layout_base_sbindir}:${STAGING_DIR_NATIVE}${layout_base_bindir}:"
PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/${bindir_cross}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}/${base_bindir_native}:"
export PATH
##################################################################
@@ -418,7 +404,7 @@ export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
export CPPFLAGS = "${TARGET_CPPFLAGS}"
export TARGET_CPPFLAGS = ""
#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
@@ -439,8 +425,8 @@ BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
export LDFLAGS = "${TARGET_LDFLAGS}"
export TARGET_LDFLAGS = "-Wl,-O1"
#export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \
# -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir} \
#export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} \
# -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir} \
# -Wl,-O1"
# Which flags to leave by strip-flags() in bin/build/oebuild.sh ?
@@ -575,7 +561,7 @@ SLOT = "0"
# Other
export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${layout_libdir}/pkgconfig"
export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"