22# This recipe works on 14.04 too, but there are C++ symbol differences before & after g++ 5.1:
33# https://gcc.gnu.org/onlinedocs/gcc-5.2.0/libstdc++/manual/manual/using_dual_abi.html
44FROM ubuntu:16.04
5+
56ARG CMAKE_VERSION=3.17.3
67ARG SQLITE_VERSION=3310000
78ARG ZSTD_VERSION=1.4.5
8- ENV CFLAGS="-march=haswell -O3"
9+ ARG CPU_ARCH=haswell
10+
11+ ENV CFLAGS="-march=${CPU_ARCH} -O3"
912ENV CXXFLAGS=${CFLAGS}
1013
1114# apt
@@ -20,7 +23,8 @@ RUN wget -nv https://www.sqlite.org/2020/sqlite-amalgamation-${SQLITE_VERSION}.z
2023 && unzip -o sqlite-amalgamation-${SQLITE_VERSION}.zip
2124WORKDIR /work/sqlite-amalgamation-${SQLITE_VERSION}
2225RUN gcc -shared -o libsqlite3.so.0 -fPIC -shared -Wl,-soname,libsqlite3.so.0 -g ${CFLAGS} sqlite3.c
23- RUN cp libsqlite3.so.0 /usr/local/lib && cp *.h /usr/local/include
26+ RUN gcc -o sqlite3 -g ${CFLAGS} sqlite3.c shell.c -lpthread -ldl
27+ RUN cp libsqlite3.so.0 /usr/local/lib && cp *.h /usr/local/include && cp sqlite3 /usr/local/bin
2428RUN ln -s /usr/local/lib/libsqlite3.so.0 /usr/local/lib/libsqlite3.so
2529
2630# Zstandard -- hacked with -fPIC for use with ZSTD_WHOLE_ARCHIVE
@@ -35,8 +39,11 @@ RUN wget -nv https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION
3539RUN yes | sh cmake-${CMAKE_VERSION}-Linux-x86_64.sh
3640RUN rsync -a cmake-${CMAKE_VERSION}-Linux-x86_64/ /usr/local/
3741
42+ RUN ldconfig
43+
3844# libgenomicsqlite.so
3945ADD . /work/GenomicSQLite
4046WORKDIR /work/GenomicSQLite
4147RUN rm -rf build && cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_WHOLE_ARCHIVE=true -B build . && cmake --build build --target genomicsqlite -j $(nproc)
4248RUN ldd -v -r build/libgenomicsqlite.so
49+ RUN sqlite3 -cmd '.load build/libgenomicsqlite.so' :memory: 'select genomicsqlite_version()'
0 commit comments