ARG DOCKCROSS_IMAGE=alphacep/dockcross-linux-armv7 FROM ${DOCKCROSS_IMAGE} LABEL description="A docker image for building portable Python linux binary wheels and Kaldi on other architectures" LABEL maintainer="contact@alphacephei.com" RUN apt-get update && \ apt-get install -y --no-install-recommends \ wget \ libffi-dev \ libpcre3-dev \ zlib1g-dev \ automake \ autoconf \ libtool \ cmake \ python3 \ python3-pip \ python3-wheel \ python3-setuptools \ python3-cffi \ && rm -rf /var/lib/apt/lists/* ARG OPENBLAS_ARGS= RUN cd /opt \ && git clone -b vosk --single-branch https://github.com/alphacep/kaldi \ && cd kaldi/tools \ && git clone -b v0.3.20 --single-branch https://github.com/xianyi/OpenBLAS \ && git clone -b v3.2.1 --single-branch https://github.com/alphacep/clapack \ && echo ${OPENBLAS_ARGS} \ && make -C OpenBLAS ONLY_CBLAS=1 ${OPENBLAS_ARGS} HOSTCC=gcc USE_LOCKING=1 USE_THREAD=0 all \ && make -C OpenBLAS ${OPENBLAS_ARGS} HOSTCC=gcc USE_LOCKING=1 USE_THREAD=0 PREFIX=$(pwd)/OpenBLAS/install install \ && mkdir -p clapack/BUILD && cd clapack/BUILD && cmake .. \ && make -j 10 -C F2CLIBS \ && make -j 10 -C BLAS \ && make -j 10 -C SRC \ && find . -name "*.a" | xargs cp -t ../../OpenBLAS/install/lib \ && cd /opt/kaldi/tools \ && git clone --single-branch https://github.com/alphacep/openfst openfst \ && cd openfst \ && autoreconf -i \ && CFLAGS="-g -O3" ./configure --prefix=/opt/kaldi/tools/openfst --enable-static --enable-shared --enable-far --enable-ngram-fsts --enable-lookahead-fsts --with-pic --disable-bin --host=${CROSS_TRIPLE} --build=x86-linux-gnu \ && make -j 10 && make install \ && cd /opt/kaldi/src \ && sed -i "s:TARGET_ARCH=\"\`uname -m\`\":TARGET_ARCH=$(echo $CROSS_TRIPLE|cut -d - -f 1):g" configure \ && sed -i "s: -O1 : -O3 :g" makefiles/linux_openblas_arm.mk \ && ./configure --mathlib=OPENBLAS_CLAPACK --shared --use-cuda=no \ && make -j 10 online2 lm rnnlm \ && find /opt/kaldi -name "*.o" -exec rm {} \;