From 8374e8d33e288a9bde2ad9624d81d64c10731551 Mon Sep 17 00:00:00 2001 From: whitequark Date: Thu, 22 Oct 2015 15:08:40 +0300 Subject: [PATCH] conda: add artiq-pipistrello-nist_qc1. --- .travis.yml | 12 +++++++--- .travis/get-misoc.sh | 4 ++++ .travis/get-toolchain.sh | 18 ++------------- .travis/get-xilinx.sh | 2 +- conda/artiq-pipistrello-nist_qc1/build.sh | 26 +++++++++++++++++++++ conda/artiq-pipistrello-nist_qc1/meta.yaml | 27 ++++++++++++++++++++++ 6 files changed, 69 insertions(+), 20 deletions(-) create mode 100755 .travis/get-misoc.sh create mode 100644 conda/artiq-pipistrello-nist_qc1/build.sh create mode 100644 conda/artiq-pipistrello-nist_qc1/meta.yaml diff --git a/.travis.yml b/.travis.yml index 559a48fec..044f31114 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,13 +7,16 @@ env: - secure: "DUk/Ihg8KbbzEgPF0qrHqlxU8e8eET9i/BtzNvFddIGX4HP/P2qz0nk3cVkmjuWhqJXSbC22RdKME9qqPzw6fJwJ6dpJ3OR6dDmSd7rewavq+niwxu52PVa+yK8mL4yf1terM7QQ5tIRf+yUL9qGKrZ2xyvEuRit6d4cFep43Ws=" matrix: - BUILD_SOC=none + - BUILD_SOC=pipistrello-nist_qc1 install: - - mkdir -p $HOME/.mlabs + - mkdir -p $HOME/.m-labs - if [ $TRAVIS_PULL_REQUEST != false ]; then BUILD_SOC=none; fi - - if [ $BUILD_SOC != none ]; then ./.travis/get-xilinx.sh; ./.travis/get-toolchain.sh; fi + - if [ $BUILD_SOC != none ]; then ./.travis/get-xilinx.sh; fi + - if [ $BUILD_SOC != none ]; then ./.travis/get-toolchain.sh; fi + - if [ $BUILD_SOC != none ]; then ./.travis/get-misoc.sh; fi - . ./.travis/get-anaconda.sh - source $HOME/miniconda/bin/activate py35 - - conda install -q pip coverage anaconda-client migen=0.0 cython + - conda install -q pip coverage anaconda-client cython - pip install coveralls # workaround for https://github.com/conda/conda-build/issues/466 - mkdir -p /home/travis/miniconda/conda-bld/linux-64 @@ -26,6 +29,9 @@ script: PACKAGES="$(conda build --output --python 3.5 conda/artiq) $PACKAGES" coverage run --source=artiq setup.py test make -C doc/manual html + else + PACKAGES="$(conda build --output --python 3.5 conda/artiq-$BUILD_SOC) $PACKAGES" + conda build --python 3.5 conda/artiq-$BUILD_SOC fi after_success: - | diff --git a/.travis/get-misoc.sh b/.travis/get-misoc.sh new file mode 100755 index 000000000..355e8ffa5 --- /dev/null +++ b/.travis/get-misoc.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +git clone --recursive https://github.com/m-labs/misoc $HOME/misoc +echo "export MSCDIR=$HOME/misoc" >> $HOME/.m-labs/build_settings.sh diff --git a/.travis/get-toolchain.sh b/.travis/get-toolchain.sh index 73c268d0a..6dd5f94ff 100755 --- a/.travis/get-toolchain.sh +++ b/.travis/get-toolchain.sh @@ -1,7 +1,6 @@ #!/bin/sh packages="http://us.archive.ubuntu.com/ubuntu/pool/universe/i/iverilog/iverilog_0.9.7-1_amd64.deb" -archives="http://fehu.whitequark.org/files/llvm-or1k.tbz2" mkdir -p packages @@ -12,18 +11,5 @@ do dpkg -x $pkg_name packages done -for a in $archives -do - wget $a - (cd packages && tar xf ../$(basename $a)) -done - -export PATH=$PWD/packages/usr/local/llvm-or1k/bin:$PWD/packages/usr/local/bin:$PWD/packages/usr/bin:$PATH -export LD_LIBRARY_PATH=$PWD/packages/usr/lib/x86_64-linux-gnu:$PWD/packages/usr/local/x86_64-unknown-linux-gnu/or1k-elf/lib:$LD_LIBRARY_PATH - -echo "export LD_LIBRARY_PATH=$PWD/packages/usr/lib/x86_64-linux-gnu:$PWD/packages/usr/local/x86_64-unknown-linux-gnu/or1k-elf/lib:\$LD_LIBRARY_PATH" >> $HOME/.mlabs/build_settings.sh -echo "export PATH=$PWD/packages/usr/local/llvm-or1k/bin:$PWD/packages/usr/local/bin:$PWD/packages/usr/bin:\$PATH" >> $HOME/.mlabs/build_settings.sh - -or1k-linux-as --version -llc --version -clang --version +echo "export LD_LIBRARY_PATH=$PWD/packages/usr/lib/x86_64-linux-gnu" >> $HOME/.m-labs/build_settings.sh +echo "export PATH=$PWD/packages/usr/bin:\$PATH" >> $HOME/.m-labs/build_settings.sh diff --git a/.travis/get-xilinx.sh b/.travis/get-xilinx.sh index 0f37893b3..3d49fd693 100755 --- a/.travis/get-xilinx.sh +++ b/.travis/get-xilinx.sh @@ -30,7 +30,7 @@ git clone https://github.com/fallen/impersonate_macaddress make -C impersonate_macaddress # Tell mibuild where Xilinx toolchains are installed # and feed it the mac address corresponding to the license -cat >> $HOME/.mlabs/build_settings.sh << EOF +cat >> $HOME/.m-labs/build_settings.sh << EOF MISOC_EXTRA_VIVADO_CMDLINE="-Ob vivado_path $HOME/Xilinx/Vivado" MISOC_EXTRA_ISE_CMDLINE="-Ob ise_path $HOME/opt/Xilinx/" export MACADDR=$macaddress diff --git a/conda/artiq-pipistrello-nist_qc1/build.sh b/conda/artiq-pipistrello-nist_qc1/build.sh new file mode 100644 index 000000000..f35b22a39 --- /dev/null +++ b/conda/artiq-pipistrello-nist_qc1/build.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +BUILD_SETTINGS_FILE=$HOME/.m-labs/build_settings.sh +[ -f $BUILD_SETTINGS_FILE ] && . $BUILD_SETTINGS_FILE + +SOC_PREFIX=$PREFIX/lib/python3.5/site-packages/artiq/binaries/pipistrello +mkdir -p $SOC_PREFIX + +SOC_ROOT=$PWD/soc + +# build bitstream + +(cd $MSCDIR; $PYTHON make.py -X $SOC_ROOT -t artiq_pipistrello $MISOC_EXTRA_ISE_CMDLINE build-bitstream) +cp $MSCDIR/build/artiq_pipistrello-nist_qc1-pipistrello.bit $SOC_PREFIX/ +wget https://people.phys.ethz.ch/~robertjo/bscan_spi_lx45_csg324.bit +mv bscan_spi_lx45_csg324.bit $SOC_PREFIX/ + +# build BIOS + +(cd $MSCDIR; $PYTHON make.py -X $SOC_ROOT -t artiq_pipistrello build-headers build-bios) +cp $MSCDIR/software/bios/bios.bin $SOC_PREFIX/ + +# build runtime + +make -C soc/runtime clean runtime.fbi +cp soc/runtime/runtime.fbi $SOC_PREFIX/ diff --git a/conda/artiq-pipistrello-nist_qc1/meta.yaml b/conda/artiq-pipistrello-nist_qc1/meta.yaml new file mode 100644 index 000000000..254361e67 --- /dev/null +++ b/conda/artiq-pipistrello-nist_qc1/meta.yaml @@ -0,0 +1,27 @@ +package: + name: artiq-pipistrello-nist_qc1 + version: {{ environ.get("GIT_DESCRIBE_TAG", "") }} + +source: + git_url: https://github.com/m-labs/artiq + git_tag: master + +build: + noarch_python: true + number: {{ environ.get("GIT_DESCRIBE_NUMBER", 0) }} + string: py_{{ environ.get("GIT_DESCRIBE_NUMBER", 0) }}+git{{ environ.get("GIT_DESCRIBE_HASH", "")[1:] }} + +requirements: + build: + # We don't get meaningful GIT_DESCRIBE_* values until before conda installs build dependencies. + - artiq 0.0 + - migen 0.0 + - llvm-or1k + - binutils-or1k-linux + run: + - artiq {{ "{tag} py_{number}+git{hash}".format(tag=environ.get("GIT_DESCRIBE_TAG"), number=environ.get("GIT_DESCRIBE_NUMBER"), hash=environ.get("GIT_DESCRIBE_HASH")[1:]) if "GIT_DESCRIBE_TAG" in environ else "" }} + +about: + home: http://m-labs.hk/artiq + license: 3-clause BSD + summary: 'Bitstream, BIOS and runtime for NIST_QC1 on the Pipistrello board'