Skip to content

Commit

Permalink
Merge pull request #43 from timvideos/travis
Browse files Browse the repository at this point in the history
Adding initial travis-ci building.
  • Loading branch information
mithro committed Sep 9, 2015
2 parents 168e844 + c348bd2 commit 92197a0
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 74 deletions.
25 changes: 25 additions & 0 deletions .travis-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

. scripts/setup-env.sh

set -x

BOARDS="atlys opsis"
TARGETS="hdmi2usb"

for BOARD in $BOARDS; do
for TARGET in $TARGETS; do
echo "---------------------------------------------"
echo "- $BOARD $TARGET"
echo "---------------------------------------------"

BOARD=$BOARD TARGET=$TARGET make help

# FIXME: Add ability to compile gateware.

BOARD=$BOARD TARGET=$TARGET make lm32-firmware
BOARD=$BOARD TARGET=$TARGET make fx2-firmware

BOARD=$BOARD TARGET=$TARGET make clean
done
done
12 changes: 12 additions & 0 deletions .travis-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

set -x
set -e

sudo apt-get install -y realpath

scripts/get-env.sh

set +x
set +e
. scripts/setup-env.sh
21 changes: 21 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#vim :
sudo: required

language:
- c

compiler:
- gcc

install:
- wget -q -O- https://raw.githubusercontent.com/mithro/travis-trusty/master/setup.sh | bash
- chmod a+rx $PWD/.travis-*.sh
- /trusty/run.py $PWD/.travis-setup.sh

script:
- /trusty/run.py $PWD/.travis-run.sh

notifications:
email:
- [email protected]
irc: "irc.freenode.org#hdmi2usb"
102 changes: 35 additions & 67 deletions scripts/get-env.sh
Original file line number Diff line number Diff line change
@@ -1,77 +1,51 @@
#! /bin/bash
#!/bin/bash

SETUP_SRC=$(realpath ${BASH_SOURCE[@]})
SETUP_DIR=$(dirname $SETUP_SRC)
USER=$(whoami)

BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.bz2
TARGET=lm32-elf

BUILD_DIR=$SETUP_DIR/../build
GNU_DIR=$BUILD_DIR/gnu
OUTPUT_DIR=$GNU_DIR/output
mkdir -p $OUTPUT_DIR
SETUP_SRC=$(realpath ${BASH_SOURCE[0]})
SETUP_DIR=$(dirname $SETUP_SRC)
TOP_DIR=$(realpath $SETUP_DIR/..)
BUILD_DIR=$TOP_DIR/build
CONDA_DIR=$SETUP_DIR/build/conda

export PATH=$OUTPUT_DIR/bin:$PATH

set -x
set -e

sudo apt-get install -y build-essential wget
sudo adduser $USER dialout
mkdir -p $BUILD_DIR

# Get and build gcc+binutils for the target
export PATH=$CONDA_DIR/bin:$PATH
(
cd $GNU_DIR
# Download binutils + gcc
(
mkdir -p download
cd download
wget -c $BINUTILS_URL
wget -c $GCC_URL
)

# Build binutils for target
sudo apt-get install -y texinfo
(
tar -zxvf ./download/binutils-*.tar.gz
cd binutils-*
mkdir -p build && cd build
../configure --prefix=$OUTPUT_DIR --target=$TARGET
make
make install
)

# Build gcc for target
sudo apt-get install -y libgmp-dev libmpfr-dev libmpc-dev
(
tar -jxvf ./download/gcc-*.tar.bz2
cd gcc-*
rm -rf libstdc++-v3
mkdir -p build && cd build
../configure --prefix=$OUTPUT_DIR --target=$TARGET --enable-languages="c,c++" --disable-libgcc --disable-libssp
make
make install
)
if [ ! -d $CONDA_DIR ]; then
cd $BUILD_DIR
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod a+x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -p $CONDA_DIR -b
conda config --set always_yes yes --set changeps1 no
conda update -q conda
fi
conda config --add channels timvideos
conda install binutils-lm32-elf
conda install gcc-lm32-elf
)

# Get iverilog
(
sudo apt-get install -y iverilog
)


# Get migen
(
cd $BUILD_DIR
rm -fr migen
git clone https://github.com/m-labs/migen.git
sudo python3 setup.py install
cd migen/vpi
cd migen
cd vpi
make all
sudo make install
)
export PYTHONPATH=$BUILD_DIR/migen:$PYTHONPATH
python3 -c "import migen"

# Get misoc
(
Expand All @@ -85,15 +59,17 @@ sudo adduser $USER dialout
make
sudo make install
)
export PYTHONPATH=$BUILD_DIR/misoc:$PYTHONPATH
python3 -c "import misoclib"

# Get liteeth
(
cd $BUILD_DIR
rm -fr liteeth
git clone https://github.com/enjoy-digital/liteeth.git
cd liteeth
sudo python3 setup.py install
)
export PYTHONPATH=$BUILD_DIR/liteeth:$PYTHONPATH
python3 -c "import liteeth"

# Get libfpgalink
(
Expand All @@ -106,31 +82,23 @@ sudo adduser $USER dialout
cd libfpgalink
make deps
)

USER=$(whoami)
# Load custom udev rules
(
cd $SETUP_DIR
sudo cp -uf 52-hdmi2usb.rules /etc/udev/rules.d/
sudo adduser $USER dialout
)

# build exar-uart-driver
# Get the vizzini module needed for the Atlys board
(
cd $BUILD_DIR
# Build the vizzini-source package
rm -fr exar-uart-driver
git clone https://github.com/mithro/exar-uart-driver
cd exar-uart-driver
sudo apt-get install linux-headers-generic debhelper module-assistant
dpkg-buildpackage -rfakeroot
# Install the vizzini-source package
sudo dpkg --install ../vizzini-source_*_all.deb
sudo apt-get -f install
# Use module assistant to build and install a package containing modules for
# your current kernel.
sudo m-a b-i vizzini
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:timvideos/fpga-support
sudo apt-get update
sudo apt-get install -y vizzini-dkms
)

sudo apt-get install -y gtkwave

echo "Completed. To load environment:"
echo "source HDMI2USB-misoc-firmware/scripts/setup-env.sh"

11 changes: 4 additions & 7 deletions scripts/setup-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ SETUP_SRC=$(realpath ${BASH_SOURCE[0]})
SETUP_DIR=$(dirname $SETUP_SRC)
TOP_DIR=$(realpath $SETUP_DIR/..)
BUILD_DIR=$TOP_DIR/build
CONDA_DIR=$SETUP_DIR/build/conda

GNU_DIR=$BUILD_DIR/gnu
MIGEN_DIR=$BUILD_DIR/migen
MISOC_DIR=$BUILD_DIR/misoc
LITEETH_DIR=$BUILD_DIR/liteeth
MAKESTUFF_DIR=$BUILD_DIR/makestuff

if [ $SOURCED = 0 ]; then
Expand All @@ -28,13 +29,9 @@ HDMI2USB_ENV=1
echo " This script is: $SETUP_SRC"
echo " Firmware directory: $TOP_DIR"
echo " Build directory is: $BUILD_DIR"
#echo " gnu toolchain installed at: $GNU_DIR"
#echo " migen found at: $MIGEN_DIR"
#echo " misoc found at: $MISOC_DIR"
#echo " fpgalink found at: $MAKESTUFF_DIR"

export LD_LIBRARY_PATH=$MAKESTUFF_DIR/libs/libfpgalink/lin.x64/rel:$LD_LIBRARY_PATH
export PYTHONPATH=$MIGEN_DIR:$MISOC_DIR:$MAKESTUFF_DIR/libs/libfpgalink/examples/python/:$PYTHONPATH
export PATH=$GNU_DIR/output/bin:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/:$PATH
export PYTHONPATH=$MIGEN_DIR:$MISOC_DIR:$LITEETH_DIR:$MAKESTUFF_DIR/libs/libfpgalink/examples/python/:$PYTHONPATH
export PATH=$CONDA_DIR/bin:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/:$PATH

alias python=python3

0 comments on commit 92197a0

Please sign in to comment.