dsplink: overhaul buildsystem
authorKoen Kooi <koen@openembedded.org>
Wed, 22 Oct 2008 09:45:12 +0000 (11:45 +0200)
committerKoen Kooi <koen@openembedded.org>
Wed, 22 Oct 2008 09:45:12 +0000 (11:45 +0200)
* 1.60 builds, needs tweaks to actually run
* you can't have a '.' in your pwd, it upsets the javascript config util, hence the fragile PV and PR munging
* needs to use gcc-cross-kernel instead of regular gcc
* pretty hardcoded to omap, but that should get fixed soon

packages/dsplink/dsplink.inc
packages/dsplink/dsplink_1.51.00.08.bb
packages/dsplink/dsplink_1.60.00.04.bb [new file with mode: 0644]
packages/dsplink/files/Makefile.dsplink [new file with mode: 0755]
packages/dsplink/files/c64xx_5.xx_linux.mk
packages/dsplink/ti-paths.inc

index f303b6e..780ea43 100644 (file)
@@ -16,7 +16,7 @@ require ti-paths.inc
 DSPLINKPLATFORM ?= "Davinci"
 
 DSPLINKPLATFORM_omap5912osk = "OMAP"
-DSPLINKPLATFORM_beagleboard = "OMAP"
+DSPLINKPLATFORM_beagleboard = "OMAP3530"
 DSPLINKPLATFORM_davinci-sffsdr = "Davinci"
 DSPLINKPLATFORM_davinci-dvevm = "Davinci"
 
@@ -32,21 +32,21 @@ KERNELARMFLAGS = "-include linux/autoconf.h -c -iwithprefix include -Iinclude -W
                    -fno-omit-frame-pointer -mapcs -mno-sched-prolog            \
                    -mlittle-endian \
                    -D__LINUX_ARM_ARCH__=5 -march=armv5t -mtune=arm9tdmi \
-                   -msoft-float -Uarm -mapcs                  \
+                   -Uarm                  \
                    -Wdeclaration-after-statement -Os -marm  -mabi=aapcs-linux"
 KERNELARMFLAGS_armv6 = "-include linux/autoconf.h -c -iwithprefix include -Iinclude -Wall  -Wstrict-prototypes \
                    -Wno-trigraphs -fno-strict-aliasing -fno-common             \
                    -fno-omit-frame-pointer -mapcs -mno-sched-prolog            \
                    -mlittle-endian \
                    -D__LINUX_ARM_ARCH__=6 -march=armv6j -mtune=arm1136jf-s \
-                   -msoft-float -Uarm -mapcs                  \                   
+                   -Uarm                  \                   
                    -Wdeclaration-after-statement -Os -marm  -mabi=aapcs-linux"
 KERNELARMFLAGS_armv7a = "-c -nostdinc -include $(BASE_OSINC)/linux/autoconf.h -isystem $(OSINC_PLATFORM)  -iwithprefix include -Iinclude -Wall  -Wstrict-prototypes \
                    -Wno-trigraphs -fno-strict-aliasing -fno-common             \
                    -fno-omit-frame-pointer -mapcs -mno-sched-prolog            \                                      
                    -mlittle-endian \
                    -D__LINUX_ARM_ARCH__=7 -march=armv7-a -mtune=cortex-a8 \
-                   -msoft-float -Uarm -mapcs                  \ 
+                   -Uarm                  \ 
                    -Wdeclaration-after-statement -Os -marm  -mabi=aapcs-linux \
                    -D__KERNEL__ -mno-thumb-interwork   -msoft-float -fno-optimize-sibling-calls -g  -fno-stack-protector -Wno-pointer-sign -g -DUSE_UDEV=1 -DOS_LINUX -DLINUX_KERNEL"
 
@@ -54,56 +54,38 @@ DSPFLAGS = "-q -pdr -pdv -pden -ml3 -mv64+ "
 
 export DSPLINKPLATFORM 
 export DSPLINKDSP
+export DSPLINKSOC
 
 do_configure () {
-       cp ${WORKDIR}/CURRENTCFG.MK ${S}/config
-       cp ${WORKDIR}/openembedded.mk ${S}/make/Linux
-       cp ${WORKDIR}/c64xx_5.xx_linux.mk ${S}/make/DspBios
-
-       sed -i  -e s:SED_ME_SOURCEDIR:${S}:g \
-               -e s:SED_ME_GPPDISTRO:openembedded:g \
-               -e s:SED_ME_KERNELVERSION:${KERNEL_VERSION}:g \
-               -e s:SED_ME_DSPDISTRO:c64xx_5.xx_linux:g \
-               -e s:SED_ME_PLATFORM:${DSPLINKPLATFORM}:g \
-               -e s:SED_ME_DSP:${DSPLINKDSP}:g \
-               -e s:SED_ME_SOC:${DSPLINKSOC}:g \       
-       ${S}/config/CURRENTCFG.MK       
-
-       sed -i  -e s:SED_ME_CROSS:${STAGING_INCDIR}:g \
-               -e s:SED_ME_STAGINGDIR:${STAGING_DIR_TARGET}:g \
-               -e s:SED_ME_TARGET_PREFIX:${TARGET_PREFIX}:g \
-               -e s:SED_ME_KERNELDIR:${STAGING_KERNEL_DIR}:g \
-               -e 's:SEDME_KERNEL_ARMFLAGS:${KERNELARMFLAGS}:g' \
-               -e 's:SEDME_USER_ARMFLAGS:${USERARMFLAGS}:g' \
-               ${S}/make/Linux/openembedded.mk 
-
-       sed -i -e s:SEDME_TITOOLS_BASEPATH:${TITOOLSDIR}:g \
-               -e s:SEDME_BIOSUNPACKDIR:${TIBIOSDIR}:g \       
-               -e s:SEDME_CGTOOLSDIR:${TICGTOOLSDIR}:g \       
-               -e 's:SEDME_DSPFLAGS:${DSPFLAGS}:g' \
-               ${S}/make/DspBios/c64xx_5.xx_linux.mk
+
+# Run perl script to create appropriate makefiles (v1.60 and up)
+DSPLINK=${S} perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX  --gppos=OMAPLSP --comps=ponslrmc
+
 }
 
 PARALLEL_MAKE = ""
 
 do_compile () {
-       ln -sf ${S}/gpp/src/api/*h ${S}/gpp/inc/
-       ln -sf ${S}/gpp/src/pmgr/Linux/2.6.18 ${S}/gpp/src/pmgr/Linux/${KERNEL_VERSION}
-       ln -sf ${S}/gpp/src/api/Linux/2.6.18 ${S}/gpp/src/api/Linux/${KERNEL_VERSION}
-       ln -sf ${S}/gpp/src/osal/Linux/2.6.18 ${S}/gpp/src/osal/Linux/${KERNEL_VERSION}
-       ln -sf ${S}/gpp/src/pmgr/Linux/drv_pmgr.h ${S}/gpp/inc/drv_pmgr.h
-       ln -sf ${S}/gpp/src/pmgr/pmgr_proc.h ${S}/gpp/inc/pmgr_proc.h
-
        unset DISPLAY
+       sed -i -e s:armv7a:armv7-a:g make/Linux/omap3530_2.6.mk || true
+
+       # export various settings to override the defaults in the makefiles     
+       export DSP_BASE_CGTOOLS=${TITOOLSDIR}/${TICGTOOLSDIR}
+       export DSP_BASE_BIOS=${TITOOLSDIR}/${TIBIOSDIR}
+       export DSP_BASE_RTDX=${TITOOLSDIR}/${TIBIOSDIR}/packages/ti/rtdx
+       export GPPTOOL_DIR=${CROSS_DIR}
+       export LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}
+       export LINK_INSTALL_DIR=${S}
+       export VARIANT=${DSPLINKSOC}
+       export PLATFORM=${DSPLINKPLATFORM}
+       export BASE_TOOLCHAIN=${CROSS_DIR}
+       export BASE_CGTOOLS=${BASE_TOOLCHAIN}/bin
+       export OSINC_PLATFORM1=${CROSS_DIR}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include
+       export OSINC_TARGET=${BASE_TOOLCHAIN}/target/usr/include
+       export ARCHIVER_AR=${TARGET_PREFIX}ar
+       export BASE_SABIOS=${DSP_BASE_BIOS}
        
-       sed -i -e 's:gcc:gcc${KERNEL_CCSUFFIX}:' ${S}/make/Linux/openembedded.mk
-       oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" -C ${S}/gpp/src all targets
-       
-       sed -i -e 's:gcc${KERNEL_CCSUFFIX}:gcc:' ${S}/make/Linux/openembedded.mk
-       oe_runmake -C ${S}/gpp/src/samples
-
-       oe_runmake -C ${S}/dsp/src
-       oe_runmake -C ${S}/dsp/src/samples
+       make -e -f ${WORKDIR}/Makefile.dsplink
 }
 
 do_install () {
@@ -121,14 +103,9 @@ do_install () {
        install ${S}/gpp/BUILD/EXPORT/RELEASE/scalegpp          ${D}/${bindir}
 
        install -d ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/loop.out          ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/messagemulti.out  ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/message.out       ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/mpcsxfer.out      ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/mplist.out        ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/readwrite.out     ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/ringio.out        ${D}/${datadir}/dsplink
-       install ${S}/dsp/BUILD/EXPORT/RELEASE/scale.out         ${D}/${datadir}/dsplink
+       for i in $(find ${S}/dsp/BUILD/ -name "*.out") ; do
+               install ${i}  ${D}/${datadir}/dsplink
+       done    
 
        install -d ${D}/${libdir}
        install -m 0755 ${S}/gpp/BUILD/EXPORT/RELEASE/dsplink.lib  ${D}/${libdir}
index 8bbff51..40f65e5 100644 (file)
@@ -17,6 +17,7 @@ SRC_URI = "http://install.tarball.in.source.dir/dsplink_1_51_00_08.tar.gz \
            file://c64xx_5.xx_linux.mk \
            file://openembedded.mk \
           file://prcs-fix-include.patch;patch=1;pnum=2 \
+               file://Makefile.dsplink \
 "
 
 SRC_URI_append_beagleboard = " \
diff --git a/packages/dsplink/dsplink_1.60.00.04.bb b/packages/dsplink/dsplink_1.60.00.04.bb
new file mode 100644 (file)
index 0000000..2e0de85
--- /dev/null
@@ -0,0 +1,21 @@
+require dsplink.inc
+
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_armv7a = "1"
+
+# The tconf tool breaks if there is a '.' in your pwd
+PR = "r0"
+PE = "1"
+PV = "160"
+
+# Get dsplink tarball from TI website, place in sources and calculate
+# md5sum
+# Look for tarball at https://www-a.ti.com/downloads/sds_support/targetcontent/link/index.html
+
+SRC_URI = "http://install.tarball.in.source.dir/dsplink_1_60_00_04.tar.gz \
+               file://Makefile.dsplink \
+"
+
+S = "${WORKDIR}/dsplink_1_60_00_04/dsplink"
+
diff --git a/packages/dsplink/files/Makefile.dsplink b/packages/dsplink/files/Makefile.dsplink
new file mode 100755 (executable)
index 0000000..7156bcb
--- /dev/null
@@ -0,0 +1,106 @@
+#
+#  ======== makeunix ========
+#
+
+# Import Tools Path from Rules.make
+#include Rules.make
+
+PROJECT_BASE_DIR = $(shell pwd)
+LINUXKERNEL_INSTALL_DIR:=/home/rmonklocal/oe/angstrom-davinci-dvevm-tmp/staging/davinci-dvevm-angstrom-linux-gnueabi/kernel
+LINK_INSTALL_DIR := /home/rmonklocal/dsplink_1_51/dsplink
+
+# The prefix to be added before the GNU compiler tools (optionally including
+# path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-".
+GPPTOOL_DIR:=/home/rmonklocal/oe/angstrom-davinci-dvevm-tmp/cross
+
+# ---- DSP tools ----
+DSP_BASE_CGTOOLS    := /home/rmonklocal/opt/cg6x_6_0_19
+DSP_BASE_BIOS      := /home/rmonklocal/opt/bios_5_32_03
+DSP_BASE_RTDX      := /home/rmonklocal/opt/bios_5_32_03/packages/ti/rtdx
+OSINC_PLATFORM1     := something
+ARCHIVER_AR         := something
+
+# ---- get build host OS ----
+UNAME=$(shell uname)
+ifeq "$(UNAME)" "Linux"
+       BUILD_HOST_OS=Linux
+else
+       BUILD_HOST_OS=Solaris
+endif
+
+# ---- construct Link build make vars ----
+GPP_MAKE_OPTS :=  COMPILER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \
+                 LINKER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \
+                 LD=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+                 ARCHIVER1=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+                 ARCHIVER2=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+                 CROSS_COMPILE=arm-angstrom-linux-gnueabi- \
+                 DSPLINK=$(LINK_INSTALL_DIR) \
+                 BASE_TOOLCHAIN=$(GPPTOOL_DIR) \
+                 BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR) \
+                 ARCHIVER=$(ARCHIVER_AR) OSINC_PLATFORM=$(OSINC_PLATFORM1) \
+                 #STD_KRNL_FLAGS=\
+                  -include linux/autoconf.h -c -iwithprefix include -Iinclude -Wall  -Wstrict-prototypes \
+                   -Wno-trigraphs -fno-strict-aliasing -fno-common             \
+                   -fno-omit-frame-pointer -mapcs -mno-sched-prolog            \
+                   -mlittle-endian \
+                   -D__LINUX_ARM_ARCH__=5 -march=armv5t -mtune=arm9tdmi \
+                   -msoft-float -Uarm -mapcs                  \
+                   -Wdeclaration-after-statement -Os -marm  -mabi=aapcs-linux
+
+                 #STD_KRNL_FLAGS=\
+                       -nostdinc \
+                       -isystem /home/rmonklocal/oe/angstrom-davinci-dvevm-tmp/cross/lib/gcc/arm-angstrom-linux-gnueabi/4.2.4/include \
+                       -D__KERNEL__ \
+                       -Iinclude -include include/linux/autoconf.h \
+                       -mlittle-endian \
+                       -Wall \
+                       -Wundef \
+                       -Wstrict-prototypes \
+                       -Wno-trigraphs \
+                       -fno-strict-aliasing \
+                       -fno-common \
+                       -Werror-implicit-function-declaration \
+                       -Os \
+                       -fno-stack-protector \
+                       -marm \
+                       -fno-omit-frame-pointer \
+                       -mapcs \
+                       -mno-sched-prolog \
+                       -mabi=aapcs-linux \
+                       -mno-thumb-interwork \
+                       -D__LINUX_ARM_ARCH__=5 \
+                       -march=armv5te \
+                       -mtune=arm9tdmi \
+                       -msoft-float \
+                       -Uarm \
+                       -fno-omit-frame-pointer \
+                       -fno-optimize-sibling-calls \
+                       -Wdeclaration-after-statement \
+                       -Wno-pointer-sign \
+                       -c
+
+DSP_MAKE_OPTS :=  DSPLINK=$(DSPLINK) \
+                  DPPROOT=$(DSPLINK)/dsp \
+                  BASE_SABIOS=$(DSP_BASE_BIOS) \
+                  BASE_CGTOOLS=$(DSP_BASE_CGTOOLS) \
+                  BASE_RTDX=$(DSP_BASE_RTDX)
+                  
+
+#  ======== all ========
+all: $(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko
+
+$(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko:
+       @echo Building DSPLINK GPP driver, libs
+       make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS) 
+       make -s -C $(DSPLINK)/gpp/src/samples $(GPP_MAKE_OPTS) 
+       @echo Building DSPLINK DSP libs and message sample for DaVinci...
+       make -C $(DSPLINK)/dsp/src $(DSP_MAKE_OPTS) 
+       make -C $(DSPLINK)/dsp/src/samples $(DSP_MAKE_OPTS) 
+
+#  clean rules
+clean:
+       @echo Cleaning DSPLINK GPP driver, libs
+       make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS) clean
+       @rm -rf $(LINK_INSTALL_DIR)/gpp/export/BIN/*
+       @rm -rf $(LINK_INSTALL_DIR)/gpp/export/INCLUDE/*
index ea806ff..0a75c14 100644 (file)
@@ -135,7 +135,7 @@ CC_SW_REL       := -o3
 #   ----------------------------------------------------------------------------
 #   Standard flags for the compiler
 #   ----------------------------------------------------------------------------
-STD_CC_FLAGS    := SEDME_DSPFLAGS -d"CHIP_DM642"
+STD_CC_FLAGS    := SEDME_DSPFLAGS 
 
 #   ----------------------------------------------------------------------------
 #   Standard flags for the compiler when building an executable
index 83cbe68..3657d54 100644 (file)
@@ -1,8 +1,8 @@
 # Path to the dir where the TI tools are unpacked
 TITOOLSDIR ?= "/OE/TI"
 # Path under TITOOLSDIR where dspbios is unpacked
-TIBIOSDIR ?= "bios_5_32_03"
+TIBIOSDIR ?= "bios_5_32_04"
 TIXDCTOOLSDIR ?= "${TIBIOSDIR}/xdctools"
 # Path under TITOOLSDIR where the dsp toolchain is unpacked
-TICGTOOLSDIR ?= "cg6x_6_1_2"
+TICGTOOLSDIR ?= "cg6x_6_0_19"