From 308d14fdbac2d5d4ace79b2179d0e48ea597c49f Mon Sep 17 00:00:00 2001 From: Tom Yan Date: Sat, 11 May 2019 00:39:24 +0800 Subject: [PATCH] gmic: workaround libunwind.a linking issue with a better approach also building variant that does not make use of graphicsmagick --- .../gmic/{makefile.patch => Makefile.patch} | 50 ++++++------------- packages/gmic/build.sh | 20 ++++---- packages/gmic/gmic-gm.subpackage.sh | 4 ++ 3 files changed, 29 insertions(+), 45 deletions(-) rename packages/gmic/{makefile.patch => Makefile.patch} (51%) create mode 100644 packages/gmic/gmic-gm.subpackage.sh diff --git a/packages/gmic/makefile.patch b/packages/gmic/Makefile.patch similarity index 51% rename from packages/gmic/makefile.patch rename to packages/gmic/Makefile.patch index 84fc2889e..151da3054 100644 --- a/packages/gmic/makefile.patch +++ b/packages/gmic/Makefile.patch @@ -1,60 +1,42 @@ ---- ./src/Makefile.orig 2019-04-16 14:41:09.000000000 +0000 -+++ ./src/Makefile 2019-05-07 01:09:58.583727894 +0000 -@@ -60,7 +60,7 @@ - - # Try to auto-detect target OS. - OS = $(shell uname) --USR = /usr -+USR = $(PREFIX) - LIB = lib - BIN = bin - INCLUDE = include -@@ -146,9 +146,7 @@ - endif - - ifdef NOSTRIP --STRIP = echo skip strip --else --STRIP = strip -+STRIP = echo skip stripe - endif - - ifndef QMAKE -@@ -199,7 +197,7 @@ +diff --git a/src/Makefile~ b/src/Makefile +index 4df1c97..4d2659a 100644 +--- a/src/Makefile~ ++++ b/src/Makefile +@@ -199,7 +199,7 @@ endif # Enable multi-threading support. PARALLEL_CFLAGS = -Dgmic_is_parallel ifneq ($(OS),Windows) -PARALLEL_LIBS = -lpthread -+PARALLEL_LIBS = #-lpthread ++#PARALLEL_LIBS = -lpthread endif # Enable parallelization in CImg, using OpenMP. -@@ -339,8 +337,8 @@ +@@ -339,8 +339,8 @@ native: GMIC_CLI_CFLAGS = $(MANDATORY_CFLAGS) $(ABORT_CFLAGS) $(PARALLEL_CFLAGS) $(EIGEN_CFLAGS) $(FFTW_CFLAGS) $(CURL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS) GMIC_CLI_LIBS = $(MANDATORY_LIBS) $(PARALLEL_LIBS) $(EIGEN_LIBS) $(FFTW_LIBS) $(CURL_LIBS) $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS) ifeq ($(OS),Unix) # Unix. -GMIC_CLI_CFLAGS += $(OPENMP_CFLAGS) $(X11_CFLAGS) $(OPENEXR_CFLAGS) $(OPENCV_CFLAGS) # $(XSHM_CFLAGS) $(MAGICK_CFLAGS) -GMIC_CLI_LIBS += $(OPENMP_LIBS) $(X11_LIBS) $(OPENEXR_LIBS) $(OPENCV_LIBS) # $(XSHM_LIBS) # $(MAGICK_LIBS) -+GMIC_CLI_CFLAGS += $(MAGICK_CFLAGS) # $(OPENMP_CFLAGS) $(X11_CFLAGS) $(OPENEXR_CFLAGS) $(OPENCV_CFLAGS) # $(XSHM_CFLAGS) $(MAGICK_CFLAGS) -+GMIC_CLI_LIBS += $(MAGICK_LIBS) # $(OPENMP_LIBS) $(X11_LIBS) $(OPENEXR_LIBS) $(OPENCV_LIBS) # $(XSHM_LIBS) # $(MAGICK_LIBS) ++#GMIC_CLI_CFLAGS += $(OPENMP_CFLAGS) $(X11_CFLAGS) $(OPENEXR_CFLAGS) $(OPENCV_CFLAGS) # $(XSHM_CFLAGS) $(MAGICK_CFLAGS) ++#GMIC_CLI_LIBS += $(OPENMP_LIBS) $(X11_LIBS) $(OPENEXR_LIBS) $(OPENCV_LIBS) # $(XSHM_LIBS) # $(MAGICK_LIBS) else ifeq ($(OS),Darwin) # MacOSX. GMIC_CLI_CFLAGS += $(X11_CFLAGS) $(OPENEXR_CFLAGS) $(OPENCV_CFLAGS) -@@ -352,15 +350,14 @@ - endif +@@ -353,7 +353,7 @@ endif cli: -- $(MAKE) "CFLAGS+=$(GMIC_CLI_CFLAGS) $(OPT_CFLAGS)" "LIBS+=$(GMIC_CLI_LIBS)" _cli + $(MAKE) "CFLAGS+=$(GMIC_CLI_CFLAGS) $(OPT_CFLAGS)" "LIBS+=$(GMIC_CLI_LIBS)" _cli - $(STRIP) gmic$(EXE) -+ $(MAKE) "CFLAGS+= $(CXXFLAGS) $(GMIC_CLI_CFLAGS) $(OPT_CFLAGS)" "LIBS+=$(GMIC_CLI_LIBS)" _cli ++ $(STRIP) gmic$(EXE) gmic-gm$(EXE) debug: $(MAKE) "CFLAGS+=$(GMIC_CLI_CFLAGS) $(DEBUG_CFLAGS)" "LIBS+=$(GMIC_CLI_LIBS)" _cli - +@@ -361,6 +361,8 @@ debug: _cli: check_versions gmic.cpp gmic.h gmic_stdlib.h CImg.h $(CXX) -o gmic_cli.o -c gmic.cpp $(CFLAGS) -- $(CXX) -o gmic gmic_cli.cpp gmic_cli.o $(CFLAGS) $(LIBS) -+ $(CXX) -o gmic gmic_cli.cpp gmic_cli.o $(CFLAGS) $(LIBS) $(LDFLAGS) + $(CXX) -o gmic gmic_cli.cpp gmic_cli.o $(CFLAGS) $(LIBS) ++ $(CXX) -o gmic_cli_gm.o -c gmic.cpp $(CFLAGS) $(MAGICK_CFLAGS) ++ $(CXX) -o gmic-gm gmic_cli.cpp gmic_cli_gm.o $(CFLAGS) $(MAGICK_CFLAGS) $(LIBS) $(MAGICK_LIBS) # CLI (static) #------------- diff --git a/packages/gmic/build.sh b/packages/gmic/build.sh index 1f46201aa..da6fcb5dc 100644 --- a/packages/gmic/build.sh +++ b/packages/gmic/build.sh @@ -2,10 +2,11 @@ TERMUX_PKG_HOMEPAGE=https://gmic.eu TERMUX_PKG_DESCRIPTION="Full-featured framework for image processing" TERMUX_PKG_LICENSE="CeCILL-2.1" TERMUX_PKG_VERSION=2.6.1 -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_SHA256=48de7045a36eb718d55b0dfd68a797380b5390af99c9737a4dfba0fb678ed2b4 TERMUX_PKG_SRCURL=https://gmic.eu/files/source/gmic_$TERMUX_PKG_VERSION.tar.gz -TERMUX_PKG_DEPENDS="graphicsmagick, libcurl, fftw, libpng, libjpeg-turbo, libtiff, zlib" +TERMUX_PKG_DEPENDS="libcurl, fftw, libpng, libjpeg-turbo, libtiff, zlib" +TERMUX_PKG_BUILD_DEPENDS="graphicsmagick" TERMUX_PKG_NO_DEVELSPLIT=yes TERMUX_PKG_BUILD_IN_SRC=yes @@ -15,17 +16,14 @@ termux_step_configure() { termux_step_make() { cd src/ - if [ $TERMUX_ARCH = "arm" ]; then - make cli LIBS=" -lunwind -L/data/data/com.termux/files/usr/lib -lfftw3 -lfftw3_threads -lcurl -lpng16 -lz -ljpeg -ltiff -lGraphicsMagick++ -lGraphicsMagick" - else - make cli - fi + make USR="$TERMUX_PREFIX" STRIP="$STRIP" \ + CFLAGS="$CXXFLAGS" LIBS="$LDFLAGS -lgcc" cli } termux_step_make_install() { - cp src/gmic $TERMUX_PREFIX/bin/gmic - cp src/*.h $TERMUX_PREFIX/include/ - gunzip man/gmic.1.gz - cp man/gmic.1 $TERMUX_PREFIX/share/man/man1 + cp src/gmic $TERMUX_PREFIX/bin/ + cp src/gmic-gm $TERMUX_PREFIX/bin/ + cp man/gmic.1.gz $TERMUX_PREFIX/share/man/man1/ + cp man/gmic.1.gz $TERMUX_PREFIX/share/man/man1/gmic-gm.1.gz } diff --git a/packages/gmic/gmic-gm.subpackage.sh b/packages/gmic/gmic-gm.subpackage.sh new file mode 100644 index 000000000..7dd8fed2d --- /dev/null +++ b/packages/gmic/gmic-gm.subpackage.sh @@ -0,0 +1,4 @@ +TERMUX_SUBPKG_INCLUDE="bin/gmic-gm share/man/man1/gmic-gm.1.gz" +TERMUX_SUBPKG_DESCRIPTION="Full-featured framework for image processing (GraphicsMagick variant)" +TERMUX_SUBPKG_DEPENDS="graphicsmagick" +TERMUX_SUBPKG_DEPEND_ON_PARENT=deps