aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb')
-rw-r--r--meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb50
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}
+}