aboutsummaryrefslogtreecommitdiffstats
path: root/meta-ti-extras/recipes-ti/includes
diff options
context:
space:
mode:
Diffstat (limited to 'meta-ti-extras/recipes-ti/includes')
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc15
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-paths.inc60
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-staging.inc6
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-unpack.inc82
4 files changed, 163 insertions, 0 deletions
diff --git a/meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc b/meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc
new file mode 100644
index 00000000..ead06100
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc
@@ -0,0 +1,15 @@
+# This file defines function used for unpacking the .bin file downloaded over
+# the http and display EULA.
+# BINFILE - name of the install jammer .bin file
+# TARFILE - name of the tar file inside the install jammer
+# TI_BIN_UNPK_CMDS - contains list of commands separated with colon to be
+# passed while unpacking the bin file. The keyword
+# workdir expands to WORKDIR and commands are appendded
+# with '\n'. Eg. TI_BIN_UNPK_CMDS="Y:Y: qY:workdir"
+# TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
+# the output in some internal directory
+
+require recipes-ti/includes/ti-unpack.inc
+
+TI_BIN_UNPK_ARGS = "--mode console"
+
diff --git a/meta-ti-extras/recipes-ti/includes/ti-paths.inc b/meta-ti-extras/recipes-ti/includes/ti-paths.inc
new file mode 100644
index 00000000..e8b0f17b
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-paths.inc
@@ -0,0 +1,60 @@
+installdir = "${datadir}/ti"
+
+export TOOLCHAIN_PATH ?= "${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_SYS}"
+
+# This is where do_install will put it
+export CE_INSTALL_DIR_RECIPE = "${installdir}/ti-codec-engine-tree"
+export CODEC_INSTALL_DIR_RECIPE = "${installdir}/ti-codecs-tree"
+export CODEGEN_ARM_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt470-tree"
+export CG_XML_INSTALL_DIR_RECIPE = "${installdir}/ti-cg-xml-tree"
+export DSPLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c66x-tree"
+export DSPLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c674x-tree"
+export DSPLIB_C64P_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c64p-tree"
+export EDMA3_LLD_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-tree"
+export FC_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components-tree"
+export GCC_ARM_NONE_TOOLCHAIN_RECIPE = "${installdir}/gcc-arm-none-eabi"
+export IMGLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-imglib-c66x-tree"
+export IPC_INSTALL_DIR_RECIPE = "${installdir}/ti-ipc-tree"
+export M4_TOOLCHAIN_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt-arm"
+export MATHLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c66x-tree"
+export MATHLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c674x-tree"
+export MPM_INSTALL_DIR_RECIPE = "${installdir}/ti-mpm-tree"
+export OMP_INSTALL_DIR_RECIPE = "${installdir}/ti-omp-tree"
+export OSAL_INSTALL_DIR_RECIPE = "${installdir}/ti-osal-tree"
+export PDK_INSTALL_DIR_RECIPE = "${installdir}/ti-pdk-tree"
+export SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-sysbios-tree"
+export SWTOOLS_INSTALL_DIR_RECIPE = "${installdir}/ti-swtools-tree"
+export TI_CGT_PRU_INSTALL_DIR_RECIPE = "${installdir}/cgt-pru"
+export TI_CGT6X_7_INSTALL_DIR_RECIPE = "${installdir}/cgt6x-7"
+export TI_CGT7X_INSTALL_DIR_RECIPE = "${installdir}/cgt-c7x"
+export VLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-vlib-c66x-tree"
+export XDAIS_INSTALL_DIR_RECIPE = "${installdir}/ti-xdais-tree"
+export XDC_INSTALL_DIR_RECIPE = "${installdir}/ti-xdctools-tree"
+
+# This is where the tools will end up in sysroot
+export CE_INSTALL_DIR = "${STAGING_DIR_TARGET}${CE_INSTALL_DIR_RECIPE}"
+export CODEGEN_ARM_INSTALL_DIR = "${STAGING_DIR_TARGET}${CODEGEN_ARM_INSTALL_DIR_RECIPE}"
+export CG_XML_INSTALL_DIR = "${STAGING_DIR_NATIVE}${CG_XML_INSTALL_DIR_RECIPE}"
+export DSPLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C66_INSTALL_DIR_RECIPE}"
+export DSPLIB_C674_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C674_INSTALL_DIR_RECIPE}"
+export DSPLIB_C64P_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C64P_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_INSTALL_DIR = "${STAGING_DIR_TARGET}${EDMA3_LLD_INSTALL_DIR_RECIPE}"
+export FC_INSTALL_DIR = "${STAGING_DIR_TARGET}${FC_INSTALL_DIR_RECIPE}"
+export GCC_ARM_NONE_TOOLCHAIN = "${STAGING_DIR_NATIVE}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}"
+export IMGLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${IMGLIB_C66_INSTALL_DIR_RECIPE}"
+export IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}${IPC_INSTALL_DIR_RECIPE}"
+export M4_TOOLCHAIN_INSTALL_DIR = "${STAGING_DIR_NATIVE}${M4_TOOLCHAIN_INSTALL_DIR_RECIPE}"
+export MATHLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${MATHLIB_C66_INSTALL_DIR_RECIPE}"
+export MATHLIB_C674_INSTALL_DIR = "${STAGING_DIR_TARGET}${MATHLIB_C674_INSTALL_DIR_RECIPE}"
+export MPM_INSTALL_DIR = "${STAGING_DIR_TARGET}${MPM_INSTALL_DIR_RECIPE}"
+export OMP_INSTALL_DIR = "${STAGING_DIR_TARGET}${OMP_INSTALL_DIR_RECIPE}"
+export OSAL_INSTALL_DIR = "${STAGING_DIR_TARGET}${OSAL_INSTALL_DIR_RECIPE}"
+export PDK_INSTALL_DIR = "${STAGING_DIR_TARGET}${PDK_INSTALL_DIR_RECIPE}"
+export SWTOOLS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SWTOOLS_INSTALL_DIR_RECIPE}"
+export SYSBIOS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SYSBIOS_INSTALL_DIR_RECIPE}"
+export TI_CGT_PRU_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT_PRU_INSTALL_DIR_RECIPE}"
+export TI_CGT6X_7_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT6X_7_INSTALL_DIR_RECIPE}"
+export TI_CGT7X_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT7X_INSTALL_DIR_RECIPE}"
+export VLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${VLIB_C66_INSTALL_DIR_RECIPE}"
+export XDAIS_INSTALL_DIR = "${STAGING_DIR_TARGET}${XDAIS_INSTALL_DIR_RECIPE}"
+export XDC_INSTALL_DIR = "${STAGING_DIR_NATIVE}${XDC_INSTALL_DIR_RECIPE}"
diff --git a/meta-ti-extras/recipes-ti/includes/ti-staging.inc b/meta-ti-extras/recipes-ti/includes/ti-staging.inc
new file mode 100644
index 00000000..f18d017c
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-staging.inc
@@ -0,0 +1,6 @@
+INHIBIT_PACKAGE_STRIP = "1"
+
+ALLOW_EMPTY:${PN} = "1"
+ALLOW_EMPTY:${PN}-dev = "1"
+
+
diff --git a/meta-ti-extras/recipes-ti/includes/ti-unpack.inc b/meta-ti-extras/recipes-ti/includes/ti-unpack.inc
new file mode 100644
index 00000000..4cefefbf
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-unpack.inc
@@ -0,0 +1,82 @@
+# This file defines function used for unpacking the .bin file downloaded over
+# the http.
+# BINFILE - name of the install jammer .bin file
+# TARFILE - name of the tar file inside the install jammer
+# TI_BIN_UNPK_ARGS - contains the arguments to be passed to the bin file.
+# TI_BIN_UNPK_CMDS - contains list of commands separated with colon to be
+# passed while unpacking the bin file. The keyword
+# workdir expands to UNPACKDIR and commands are appendded
+# with '\n'. Eg. TI_BIN_UNPK_CMDS="Y:Y: qY:workdir"
+# TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
+# the output in some internal directory
+
+python do_unpack () {
+ bb.build.exec_func('base_do_unpack', d)
+ bb.build.exec_func('ti_bin_do_unpack', d)
+}
+
+TI_BIN_UNPK_WDEXT ?= ""
+python ti_bin_do_unpack() {
+ import os
+
+ # InstallJammer requires 32bit version of glibc
+ if not os.path.exists('/lib/ld-linux.so.2'):
+ bb.fatal("TI installer requires 32bit glibc libraries for proper operation\nrun 'yum install glibc.i686' on Fedora or 'apt-get install libc6:i386' on Ubuntu/Debian")
+
+ localdata = bb.data.createCopy(d)
+
+ binfile = localdata.getVar('BINFILE')
+ binfile = bb.data.expand(binfile, localdata)
+
+ # Change to the working directory
+ save_cwd = os.getcwd()
+ workdir = localdata.getVar('UNPACKDIR')
+ workdir = bb.data.expand(workdir, localdata)
+ os.chdir(workdir)
+
+ # Get unpack args
+ arg_string = localdata.getVar('TI_BIN_UNPK_ARGS')
+ arg_string = bb.data.expand(arg_string, localdata)
+
+ # Get unpack commands
+ cmd_string = localdata.getVar('TI_BIN_UNPK_CMDS')
+ cmd_list = cmd_string.split( ":" )
+
+ # Make the InstallJammer binary executable so we can run it
+ os.chmod(binfile, 0o755)
+
+ # Run the InstallJammer binary and accept the EULA
+ filename = "HOME=%s ./%s %s" % (workdir, binfile, arg_string)
+
+ # Test executable by printing installer version or help screen (--version currently broken for some installers)
+ # - this is currently broken in some IJ installers - comment out for now
+ #if os.system(filename + " --version") != 0:
+ # print "ERROR: ti-eula-unpack: failed to execute binary installer"
+ # raise bb.build.FuncFailed()
+
+ f = os.popen(filename,'w')
+ for cmd in cmd_list:
+ if cmd == "workdir":
+ wdext = localdata.getVar('TI_BIN_UNPK_WDEXT')
+ wdext = bb.data.expand(wdext, localdata)
+ cmd = workdir+wdext
+ f.write(cmd+'\n');
+ f.close()
+
+ # Expand the tarball that was created if required
+ tarfile = localdata.getVar('TARFILE')
+ if bool(tarfile) == True:
+ tarfile = bb.data.expand(tarfile, localdata)
+ tcmd = 'tar x --no-same-owner -f %s -C %s' % (tarfile, workdir)
+ if os.system(tcmd) != 0:
+ print("ERROR: ti-eula-unpack: failed to extract tarfile")
+ raise bb.build.FuncFailed()
+
+ # Return to the previous directory
+ os.chdir(save_cwd)
+}
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+COMPATIBLE_HOST:class-native = "(.*)"
+COMPATIBLE_HOST:class-nativesdk = "(.*)"