summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore7
-rwxr-xr-xbuild-deps.sh74
-rw-r--r--deps/Makefile44
3 files changed, 75 insertions, 50 deletions
diff --git a/.gitignore b/.gitignore
index 6941b9c..c209655 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,3 @@
freeonebook
*.o
-*.installed
-*.tar.gz
-
-deps/ImageMagick*
-deps/zlib*
-deps/libpng*
+deps
diff --git a/build-deps.sh b/build-deps.sh
new file mode 100755
index 0000000..e7ca7f0
--- /dev/null
+++ b/build-deps.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+ZLIB_VERSION=1.2.8
+LIBPNG_VERSION=1.6.21
+IMAGEMAGICK_VERSION=7.0.8-14
+
+export CHOST=arm-linux-gnueabihf
+export PREFIX=${PWD}/deps
+export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
+export CPPFLAGS=-I${PREFIX}/include
+export LDFLAGS=-L${PREFIX}/lib
+export PNG_COPTS="-I${PREFIX}/include -L${PREFIX}/lib"
+
+set -ex
+
+download() {
+ cd ${PREFIX}/src
+ if ! [ -f $(basename $1) ]; then
+ wget $1
+ fi
+}
+
+version_check() {
+ if [ $(pkg-config --modversion "$1") = "$2" ]; then
+ return 0
+ fi
+ return 1
+}
+
+build() {
+ cd ${PREFIX}/src
+ tar xvzf ${1}*.tar.gz
+ cd ${1}-*
+ shift
+ ./configure --prefix=${PREFIX} ${1+$@}
+ make
+ make install
+}
+
+build_imagemagick() {
+ download https://imagemagick.org/download/ImageMagick.tar.gz
+ if ! version_check MagickCore ${1}; then
+ build ImageMagick \
+ --host=${CHOST} \
+ --without-utilities \
+ --disable-shared \
+ --disable-openmp \
+ --disable-docs \
+ --with-pkgconfigdir=${PKG_CONFIG_PATH}
+
+ fi
+}
+
+build_libpng() {
+ download https://downloads.sourceforge.net/project/libpng/libpng16/older-releases/${1}/libpng-${1}.tar.gz
+ if ! version_check libpng ${1}; then
+ build libpng \
+ --host=${CHOST} \
+ --with-pkgconfigdir=${PKG_CONFIG_PATH}
+ fi
+}
+
+build_zlib() {
+ download http://www.zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz
+ if ! version_check zlib ${1}; then
+ build zlib
+ rm ${PREFIX}/lib/libz.so
+ fi
+}
+
+mkdir -p ${PREFIX}/src
+build_zlib $ZLIB_VERSION
+build_libpng $LIBPNG_VERSION
+build_imagemagick $IMAGEMAGICK_VERSION
diff --git a/deps/Makefile b/deps/Makefile
deleted file mode 100644
index 0089102..0000000
--- a/deps/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-HOST=arm-linux-gnueabihf
-PREFIX=/usr/$(HOST)
-
-PKGCONFIG_PATH=/usr/$(HOST)/lib/pkgconfig
-
-ZLIB_VERSION=1.2.11
-LIBPNG16_VERSION=1.6.35
-IMAGEMAGICK_VERSION=7.0.8-14
-
-all: imagemagick.installed
-
-zlib.installed:
- pkg-config --modversion zlib > $@ || $(MAKE) install-zlib
-
-install-zlib:
- wget http://www.zlib.net/zlib-$(ZLIB_VERSION).tar.gz
- tar xvzf zlib-$(ZLIB_VERSION).tar.gz
- cd zlib-$(ZLIB_VERSION); CHOST=$(HOST) ./configure --static --prefix=$(PREFIX)
- cd zlib-$(ZLIB_VERSION); $(MAKE) && sudo $(MAKE) install
- pkg-config --modversion zlib > zlib.installed
-
-libpng16.installed:
- pkg-config --modversion libpng16 > $@ || $(MAKE) install-libpng16
-
-install-libpng16: zlib.installed
- wget https://download.sourceforge.net/libpng/libpng-$(LIBPNG16_VERSION).tar.gz
- tar xvzf libpng-$(LIBPNG16_VERSION).tar.gz
- cd libpng-$(LIBPNG16_VERSION); ./configure --prefix=$(PREFIX) --host=$(HOST)
- cd libpng-$(LIBPNG16_VERSION); $(MAKE) && sudo $(MAKE) install
- pkg-config --modversion libpng16 > libpng16.installed
-
-imagemagick.installed:
- pkg-config --modversion MagickCore > $@ || $(MAKE) install-imagemagick
-
-install-imagemagick: libpng16.installed
- wget https://imagemagick.org/download/ImageMagick.tar.gz
- tar xvzf ImageMagick.tar.gz
- cd ImageMagick-$(IMAGEMAGICK_VERSION); ./configure --host=$(HOST) --without-utilities --disable-shared --prefix=$(PREFIX) --disable-openmp --disable-docs
- cd ImageMagick-$(IMAGEMAGICK_VERSION); $(MAKE) && sudo $(MAKE) install
-
-
-clean:
- rm -f *.installed
- rm -rf zlib-$(ZLIB_VERSION) libpng-$(LIBPNG16_VERSION) ImageMagic-$(IMAGEMAGICK_VERSION)