diff --git a/build.sh b/build.sh index bb361ce3..7f9c469c 100755 --- a/build.sh +++ b/build.sh @@ -168,7 +168,7 @@ set_arch() { BIN_SUFFIX="" CXXFLAGS="" LDFLAGS="" - LIBS="" + LIBS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" elif [ "$1" = "win32" ]; then ARCHIT="$1" CC="i686-w64-mingw32-gcc" @@ -176,9 +176,9 @@ set_arch() { MAKE_HOST="x86_64-w32-mingw32" BIN_SUFFIX=".exe" CXXFLAGS="-I/usr/local/include" - CXX_CUST="i686-w64-mingw32-g++" LDFLAGS="-L/usr/local/lib" - LIBS="-lws2_32" + LIBS="-lws2_32 -Wl,--whole-archive -lpthread -Wl,--no-whole-archive" + CXX_CUST="i686-w64-mingw32-g++" elif [ "$1" = "win64" ]; then ARCHIT="$1" CC="x86_64-w64-mingw32-gcc" @@ -187,7 +187,7 @@ set_arch() { BIN_SUFFIX=".exe" CXXFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" - LIBS="-lws2_32" + LIBS="-lws2_32 -Wl,--whole-archive -lpthread -Wl,--no-whole-archive" elif [ "$1" = "djgpp" ]; then ARCHIT="$1" CC="i586-pc-msdosdjgpp-gcc" @@ -205,16 +205,17 @@ set_arch() { BIN_SUFFIX="" CXXFLAGS="" LDFLAGS="" - LIBS="-L../../lib/$ARCHIT" + LDFLAGS="-L/usr/local/lib" + LIBS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" elif [ "$1" = "arm64" ]; then ARCHIT="$1" CC="aarch64-linux-gnu-gcc" LD="aarch64-linux-gnu-ld" MAKE_HOST="aarch64-linux-gnu" BIN_SUFFIX="" - CXXFLAGS="" - LDFLAGS="" - LIBS="-L../../lib/$ARCHIT" + CXXFLAGS="-I/usr/local/include" + LDFLAGS="-L/usr/local/lib" + LIBS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" elif [ "$1" = "native" ]; then ARCHIT="$1" CC="gcc" diff --git a/docker/arm32/Dockerfile b/docker/arm32/Dockerfile new file mode 100644 index 00000000..45717e74 --- /dev/null +++ b/docker/arm32/Dockerfile @@ -0,0 +1,64 @@ +# +# [ arm32 ] elinks docker development environment v0.1c +# + +# [*] base system + +# get latest debian +FROM debian:latest + +# prepare system +RUN apt-get update && apt-get -y install bash \ + rsync vim screen git make automake + +# [*] source build tools + +# install sources build tools and update +RUN apt-get install -y apt-src && \ + grep '^deb ' /etc/apt/sources.list | sed 's/deb /deb-src /' >> /etc/apt/sources.list && \ + apt-src update + +# [*] install sources + +# install sources for openssl and zlib1g-dev +RUN cd /root && apt-src install libssl-dev zlib1g-dev + +# install dev tools [ platform dependent ] + +RUN apt-get -y install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf + +## [*] elinks openssl development support +# build openssl library for arm32 +RUN cd /root && cd `ls -d /root/openssl-*` && \ +./Configure linux-armv4 \ + --prefix=/usr/local \ + --cross-compile-prefix=arm-linux-gnueabihf- && \ + make depend && \ + make && \ + make install_runtime_libs && \ + make install_dev + +## [*} zlib sources +# build zlib library for arm32 +RUN cd /root && cd `ls -d /root/zlib-*` && \ +CC="arm-linux-gnueabihf-gcc" \ +LD="arm-linux-gnueabihf-ldd" \ +./configure --static --prefix=/usr/local && \ +make && \ +make install + +# install sources for openssl and zlib1g-dev +RUN cd /root && apt-src install libcrypto++-dev + +# build the libcrypto +RUN cd /root/libcrypto* && \ +CXX="arm-linux-gnueabihf-gcc" \ +LD="arm-linux-gnueabihf-ld" \ +AR="arm-linux-gnueabihf-ar" \ +make -f GNUmakefile-cross && \ +make install + +## [*] elinks sources +# get elinks source +RUN cd /root; git clone https://github.com/rkd77/elinks + diff --git a/docker/arm32/build.sh b/docker/arm32/build.sh new file mode 100755 index 00000000..4d8f3d56 --- /dev/null +++ b/docker/arm32/build.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker build -t "elinks-arm32-dev:latest" . diff --git a/docker/arm32/cleanup.sh b/docker/arm32/cleanup.sh new file mode 100755 index 00000000..e59934d1 --- /dev/null +++ b/docker/arm32/cleanup.sh @@ -0,0 +1,4 @@ +#!/bin/bash +docker container stop elinks-arm32-dev +docker container rm elinks-arm32-dev +#docker image rm elinks-arm32-dev diff --git a/docker/arm32/run.sh b/docker/arm32/run.sh new file mode 100755 index 00000000..56c67444 --- /dev/null +++ b/docker/arm32/run.sh @@ -0,0 +1,6 @@ +#!/bin/bash +docker run -it \ + --name=elinks-arm32-dev \ + -v /tmp:/tmp/host \ + elinks-arm32-dev:latest \ + /bin/bash diff --git a/docker/arm32/shell.sh b/docker/arm32/shell.sh new file mode 100755 index 00000000..1cb3cafa --- /dev/null +++ b/docker/arm32/shell.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker start elinks-arm32-dev +docker exec -it elinks-arm32-dev bash diff --git a/docker/arm64/Dockerfile b/docker/arm64/Dockerfile new file mode 100644 index 00000000..020f76c5 --- /dev/null +++ b/docker/arm64/Dockerfile @@ -0,0 +1,53 @@ +# +# [ arm64 ] elinks docker development environment v0.1c +# + +# [*] base system + +# get latest debian +FROM debian:latest + +# prepare system +RUN apt-get update && apt-get -y install bash \ + rsync vim screen git make automake + +# [*] source build tools + +# install sources build tools and update +RUN apt-get install -y apt-src && \ + grep '^deb ' /etc/apt/sources.list | sed 's/deb /deb-src /' >> /etc/apt/sources.list && \ + apt-src update + +# [*] install sources + +# install sources for openssl and zlib1g-dev +RUN cd /root && apt-src install libssl-dev zlib1g-dev + +# install dev tools [ platform dependent ] + +RUN apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + +## [*] elinks openssl development support +# build openssl library for arm64 +RUN cd /root && cd `ls -d /root/openssl-*` && \ +./Configure linux-aarch64 \ + --prefix=/usr/local \ + --cross-compile-prefix=aarch64-linux-gnu- && \ + make depend && \ + make && \ + make install_runtime_libs && \ + make install_dev + +## [*} zlib sources +# build zlib library for arm64 +RUN cd /root && cd `ls -d /root/zlib-*` && \ +CC="aarch64-linux-gnu-gcc" \ +LD="aarch64-linux-gnu-ldd" \ +./configure --static --prefix=/usr/local && \ +make && \ +make install + +## [*] elinks sources +# get elinks source +RUN cd /root; git clone https://github.com/rkd77/elinks + diff --git a/docker/arm64/build.sh b/docker/arm64/build.sh new file mode 100755 index 00000000..d98d8afb --- /dev/null +++ b/docker/arm64/build.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker build -t "elinks-arm64-dev:latest" . diff --git a/docker/arm64/cleanup.sh b/docker/arm64/cleanup.sh new file mode 100755 index 00000000..9b5b29a2 --- /dev/null +++ b/docker/arm64/cleanup.sh @@ -0,0 +1,4 @@ +#!/bin/bash +docker container stop elinks-arm64-dev +docker container rm elinks-arm64-dev +#docker image rm elinks-arm64-dev diff --git a/docker/arm64/run.sh b/docker/arm64/run.sh new file mode 100755 index 00000000..a6b18454 --- /dev/null +++ b/docker/arm64/run.sh @@ -0,0 +1,6 @@ +#!/bin/bash +docker run -it \ + --name=elinks-arm64-dev \ + -v /tmp:/tmp/host \ + elinks-arm64-dev:latest \ + /bin/bash diff --git a/docker/arm64/shell.sh b/docker/arm64/shell.sh new file mode 100755 index 00000000..b3a004f2 --- /dev/null +++ b/docker/arm64/shell.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker start elinks-arm64-dev +docker exec -it elinks-arm64-dev bash diff --git a/docker/win32/Dockerfile b/docker/win32/Dockerfile index e40cef1c..c70c5f12 100644 --- a/docker/win32/Dockerfile +++ b/docker/win32/Dockerfile @@ -1,5 +1,5 @@ # -# [ win32 ] elinks docker development environment v0.1a +# [ win32 ] elinks docker development environment v0.1c # # [*] base system @@ -10,7 +10,6 @@ FROM debian:latest # prepare system RUN apt-get update && apt-get -y install bash \ rsync vim screen git make automake \ - gcc-mingw-w64-i686 g++-mingw-w64-i686 # [*] source build tools @@ -24,6 +23,9 @@ RUN apt-get install -y apt-src && \ # install sources for openssl and zlib1g-dev RUN cd /root && apt-src install libssl-dev zlib1g-dev +# install dev tools [ platform dependent ] +RUN apt-get install -y gcc-mingw-w64-i686 g++-mingw-w64-i686 + # [*] elinks openssl development support # diff --git a/docker/win32/cleanup.sh b/docker/win32/cleanup.sh index ea4af352..e54fd411 100755 --- a/docker/win32/cleanup.sh +++ b/docker/win32/cleanup.sh @@ -1,3 +1,4 @@ #!/bin/bash -docker container rm elinks -docker image rm elinks-dev +docker container stop elinks-win32-dev +docker container rm elinks-win32-dev +#docker image rm elinks-win32-dev diff --git a/docker/win32/shell.sh b/docker/win32/shell.sh index c74eefb2..1204427d 100755 --- a/docker/win32/shell.sh +++ b/docker/win32/shell.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker start elinks -docker exec -it elinks bash +docker start elinks-win32-dev +docker exec -it elinks-win32-dev bash diff --git a/docker/win64/Dockerfile b/docker/win64/Dockerfile index 775a78de..9262cc27 100644 --- a/docker/win64/Dockerfile +++ b/docker/win64/Dockerfile @@ -1,5 +1,5 @@ # -# [ win64 ] elinks docker development environment v0.1b +# [ win64 ] elinks docker development environment v0.1c # # [*] base system @@ -10,7 +10,6 @@ FROM debian:latest # prepare system RUN apt-get update && apt-get -y install bash \ rsync vim screen git make automake \ - gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 # [*] source build tools @@ -24,6 +23,9 @@ RUN apt-get install -y apt-src && \ # install sources for openssl and zlib1g-dev RUN cd /root && apt-src install libssl-dev zlib1g-dev +# install dev tools [ platform dependent ] +RUN apt-get install -y gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 + # [*] elinks openssl development support # build openssl library for win64 diff --git a/docker/win64/build.sh b/docker/win64/build.sh index 6e5aa75e..c58fb92b 100755 --- a/docker/win64/build.sh +++ b/docker/win64/build.sh @@ -1,2 +1,2 @@ #!/bin/bash -docker build -t "elinks-dev:latest" . +docker build -t "elinks-win64-dev:latest" . diff --git a/docker/win64/cleanup.sh b/docker/win64/cleanup.sh index ea4af352..b4b017de 100755 --- a/docker/win64/cleanup.sh +++ b/docker/win64/cleanup.sh @@ -1,3 +1,4 @@ #!/bin/bash -docker container rm elinks -docker image rm elinks-dev +docker container stop elinks-win64-dev +docker container rm elinks-win64-dev +#docker image rm elinks-win64-dev diff --git a/docker/win64/run.sh b/docker/win64/run.sh index 340a3dad..556cc116 100755 --- a/docker/win64/run.sh +++ b/docker/win64/run.sh @@ -1,6 +1,6 @@ #!/bin/bash docker run -it \ - --name=elinks \ + --name=elinks-win64-dev \ -v /tmp:/tmp/host \ - elinks-dev:latest \ + elinks-win64-dev:latest \ /bin/bash diff --git a/docker/win64/shell.sh b/docker/win64/shell.sh index c74eefb2..8d2f8bc8 100755 --- a/docker/win64/shell.sh +++ b/docker/win64/shell.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker start elinks -docker exec -it elinks bash +docker start elinks-win64-dev +docker exec -it elinks-win64-dev bash