diff options
Diffstat (limited to 'meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb')
-rw-r--r-- | meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb new file mode 100644 index 00000000..2ec1d6cd --- /dev/null +++ b/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb @@ -0,0 +1,50 @@ +inherit esw python3native features_check + +LIBXIL_CONFIG ??= "" +include ${LIBXIL_CONFIG} + +# The python code allows us to use an include above, instead of require +# as it enforces that the file will be available for inclusion. It also +# gives the user feedback if something isn't configured properly. +python () { + libxil_cfg = d.getVar("LIBXIL_CONFIG") + if libxil_cfg: + bbpath = d.getVar('BBPATH') + libxil_path = bb.utils.which(bbpath, libxil_cfg) + if libxil_path: + return + else: + d.setVar('BB_DONT_CACHE', '1') + bb.parse.SkipRecipe("LIBXIL_CONFIG (%s) was not found." % libxil_cfg) + else: + d.setVar('BB_DONT_CACHE', '1') + raise bb.parse.SkipRecipe("No LIBXIL_CONFIG set.") +} + +ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/" +ESW_COMPONENT_NAME = "libxil.a" + +DEPENDS += "xilstandalone " +REQUIRED_MACHINE_FEATURES = "${MACHINE_FEATURES}" +PACKAGECONFIG ?= "${MACHINE_FEATURES}" + +do_configure:prepend() { + LOPPER_DTC_FLAGS="-b 0 -@" lopper ${DTS_FILE} -- baremetal_xparameters_xlnx.py ${ESW_MACHINE} ${S} + install -m 0755 xparameters.h ${S}/${ESW_COMPONENT_SRC}/ +} + +do_compile() { + # Combines the .a archives produced by all of the dependent items + cd ${RECIPE_SYSROOT}/usr/lib/ + echo create libxil.a > libxil.mri + for each in ${REQUIRED_MACHINE_FEATURES}; do + each=$(echo $each | sed 's/-/_/g') + if [ -e lib$each.a ]; then + echo addlib lib$each.a >> libxil.mri + fi + done + echo “save” >> libxil.mri + echo “end” >> libxil.mri + ${AR} -M <libxil.mri + cp libxil.a ${B} +} |