Skip to content

Commit 1e6fbe8

Browse files
committed
add configure_toolchain script
1 parent c4a045c commit 1e6fbe8

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone &
9696
# o64-clang -> darwin_amd64
9797
ENV PATH=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/:/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:/opt/x86_64-ubuntu16.04-linux-gnu-gcc/bin/:/opt/i686-ubuntu16.04-linux-gnu/bin/:/opt/osxcross/target/bin/:$PATH
9898

99-
WORKDIR /workdir
99+
COPY ./configure_toolchain.sh /
100+
RUN chmod +x /configure_toolchain.sh
100101

101-
ENTRYPOINT ["/bin/bash"]
102+
WORKDIR /workdir
103+
ENTRYPOINT ["/configure_toolchain.sh"]
104+
CMD ["bash"]

configure_toolchain.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/bash -e
2+
3+
# Check if the CROSS_COMPILE variable is set
4+
if [ -z "$CROSS_COMPILE" ]; then
5+
echo "Error: CROSS_COMPILE is not set. Please specify the toolchain prefix (e.g., arm-linux-gnueabihf-)."
6+
exit 1
7+
fi
8+
9+
# Detect if the toolchain is osxcross
10+
if [[ "$CROSS_COMPILE" == *"apple-darwin"* ]]; then
11+
# Set osxcross-specific tools
12+
export CC="o64-clang"
13+
export CXX="o64-clang++"
14+
else
15+
export CC="${CROSS_COMPILE}-gcc"
16+
export CXX="${CROSS_COMPILE}-g++"
17+
fi
18+
19+
# Set default compilation flags
20+
export AR="${CROSS_COMPILE}-ar"
21+
export RANLIB="${CROSS_COMPILE}-ranlib"
22+
export LD="${CROSS_COMPILE}-ld"
23+
export STRIP="${CROSS_COMPILE}-strip"
24+
export CFLAGS="-O2"
25+
export CXXFLAGS="$CFLAGS"
26+
27+
# Add toolchain's lib directory to library paths
28+
TOOLCHAIN_LIB_DIR="/opt/lib/${CROSS_COMPILE%/}/lib"
29+
TOOLCHAIN_INCLUDE_DIR="/opt/lib/${CROSS_COMPILE%/}/include"
30+
export LIBRARY_PATH="$TOOLCHAIN_LIB_DIR:$LIBRARY_PATH"
31+
export PKG_CONFIG_PATH="$TOOLCHAIN_LIB_DIR/pkgconfig:$PKG_CONFIG_PATH"
32+
export CPATH="$TOOLCHAIN_INCLUDE_DIR:$CPATH"
33+
export C_INCLUDE_PATH="$TOOLCHAIN_INCLUDE_DIR:$C_INCLUDE_PATH"
34+
export CPLUS_INCLUDE_PATH="$TOOLCHAIN_INCLUDE_DIR:$CPLUS_INCLUDE_PATH"
35+
36+
echo "Configured toolchain: $CROSS_COMPILE"
37+
echo " CC=$CC, CXX=$CXX, AR=$AR, RANLIB=$RANLIB, LD=$LD, STRIP=$STRIP"
38+
echo " CFLAGS=$CFLAGS, CXXFLAGS=$CXXFLAGS, LDFLAGS=$LDFLAGS"
39+
echo " LIBRARY_PATH=$LIBRARY_PATH"
40+
echo " LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
41+
echo " PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
42+
echo " CPATH=$CPATH"
43+
echo " C_INCLUDE_PATH=$C_INCLUDE_PATH"
44+
echo " CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH"
45+
46+
# Execute the provided command
47+
exec "$@"

0 commit comments

Comments
 (0)