WIP: tomatoware

This commit is contained in:
Matt McCormick 2016-06-02 15:53:48 -04:00
parent 91f635d0af
commit 5ab9e487d4
3 changed files with 138 additions and 0 deletions

View File

@ -25,6 +25,9 @@ linux-armv7: base linux-armv7/Dockerfile linux-armv7/Toolchain.cmake
linux-ppc64le: base linux-ppc64le/Dockerfile linux-ppc64le/Toolchain.cmake
$(DOCKER) build -t $(IMAGE)-linux-ppc64le linux-ppc64le
tomatoware-arm: base tomatoware-arm/Dockerfile tomatoware-arm/Toolchain.cmake
$(DOCKER) build -t $(IMAGE)-tomatoware-arm tomatoware-arm
windows-x86: base windows-x86/Dockerfile windows-x86/settings.mk
$(DOCKER) build -t $(IMAGE)-windows-x86 windows-x86

115
tomatoware-arm/Dockerfile Normal file
View File

@ -0,0 +1,115 @@
FROM thewtex/cross-compiler-base
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
# Enable 32 bits binaries
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y libstdc++6:i386 libgcc1:i386 zlib1g:i386
RUN apt-get update && \
apt-get -y install --no-install-recommends \
autoconf \
automake \
bash \
bc \
binutils \
bison \
build-essential \
bzip2 \
cvs \
cpio \
diffutils \
doxygen \
dpkg-dev \
fakeroot \
file \
flex \
g++ \
gawk \
gcc \
gcc-multilib \
gettext \
git-core \
gperf \
groff-base \
intltool \
libbz2-dev \
libc6-dev \
libcurl4-openssl-dev \
libgc-dev \
libglib2.0-dev \
libslang2 \
libtool \
make \
patch \
perl \
pkg-config \
python \
python-all \
python-dev \
python2.7-dev \
lib32z1 \
lib32z-dev \
libc6 \
libexpat1-dev \
libffi-dev \
libgdbm-dev \
libncurses-dev \
libreadline6-dev \
libssl-dev \
libsqlite3-dev \
libxml-parser-perl \
locales \
m4 \
sed \
shtool \
sqlite \
subversion \
sudo \
tar \
texinfo \
tk-dev \
zlib1g \
zlib1g-dev \
unzip \
libxml2-dev
RUN dpkg-reconfigure locales && \
locale-gen C.UTF-8 && \
/usr/sbin/update-locale LANG=C.UTF-8
ENV LC_ALL C.UTF-8
# The cross-compiling emulator
RUN apt-get update && apt-get install -y \
qemu-user \
qemu-user-static
# Allow dynamically linked executables to run with qemu-arm
ENV QEMU_LD_PREFIX ${CROSS_ROOT}/libc
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${CROSS_ROOT}/libc/lib/${CROSS_TRIPLE}/"
ENV DESTARCH=arm \
PREFIX=/opt/tomatoware \
FLOAT=soft
ENV PATH=/opt/tomatoware/${DESTARCH}-${FLOAT}/usr/bin/:${PATH}
ENV EXTRACFLAGS="-O2 -pipe -march=armv7-a -mtune=cortex-a9"
WORKDIR /usr/src
RUN git clone https://github.com/lancethepants/cross-python.git && \
cd cross-python && \
git checkout 521c41b805dd1a92e556274c2cdf335dd41b4dca
RUN cd cross-python && \
./scripts/toolchain.sh
ENV CROSS_TRIPLE arm-linux
ENV CROSS_ROOT /usr/${CROSS_TRIPLE}
ENV AS=/usr/bin/${CROSS_TRIPLE}-as \
AR=/usr/bin/${CROSS_TRIPLE}-ar \
CC=/usr/bin/${CROSS_TRIPLE}-gcc \
CPP=/usr/bin/${CROSS_TRIPLE}-cpp \
CXX=/usr/bin/${CROSS_TRIPLE}-g++ \
LD=/usr/bin/${CROSS_TRIPLE}-ld
COPY Toolchain.cmake ${CROSS_ROOT}/
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake

View File

@ -0,0 +1,20 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER /opt/tomatoware/arm-soft-mmc/usr/bin/arm-linux-gcc)
set(CMAKE_CXX_COMPILER /opt/tomatoware/arm-soft-mmc/usr/bin/arm-linux-g++)
#SET(CMAKE_FIND_ROOT_PATH /home/lance/cross-python/mmc)
set(CMAKE_INSTALL_PREFIX /mmc)
set(CMAKE_C_FLAGS -march=armv7-a -mtune=cortex-a9)
set(CMAKE_CXX_FLAGS -march=armv7-a -mtune=cortex-a9)
set(CMAKE_EXE_LINKER_FLAGS -L/home/lance/cross-python/mmc/lib -s -Wl,--dynamic-linker=/mmc/lib/ld-uClibc.so.1 -Wl,-rpath,/mmc/lib -Wl,-rpath-link,/home/lance/cross-python/mmc/lib)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(cross_triple "arm-linux")
#set(CMAKE_FIND_ROOT_PATH /usr/${cross_triple} /usr/${cross_triple}/libc/usr)
#set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
#set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
#set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm)