#!/bin/sh
# test we are root
if [ "$(id -u)" != "0" ]; then
   exit 1
fi

P=graphicsmagick
P1=GraphicsMagick
V=1.3.43
SRC=$P1-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc submitqc Xorg-7.7-3d-dev librsvg-dev libwebp1-dev \
libgs-dev perl5 libwmf-dev jasper2-dev libtool-dev libjxl-dev  "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

cd /tmp
su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://sourceforge.net/projects/$P/files/$P/$V/$P1-$V.tar.xz  " $USER 
tar xvf $P1*xz
cd $SRC

export CFLAGS="-mtune=generic -Os -pipe" 
export CXXFLAGS="-mtune=generic -Os -pipe"
./configure -prefix=/usr/local --disable-static --localstatedir=/var --enable-shared \
--with-gs-font-dir=/usr/local/share/ghostscript/9.10/Resource/Font --with-perl \
--with-modules=no 

#Option            Configure option      	Configured value
#-----------------------------------------------------------------
# Shared libraries  --enable-shared=yes		yes
# Static libraries  --enable-static=no		no
# GNU ld            --with-gnu-ld=yes    	yes
# Quantum depth     --with-quantum-depth=8	8
# Modules           --with-modules=no  	        no
# OpenMP            --enable-openmp=		no 
#
# Delegate Configuration:
# BZLIB             --with-bzlib=yes         	yes
# DPS               --with-dps=yes          	no
# FlashPIX          --with-fpx=no          	no
# FreeType 2.0      --with-ttf=yes          	yes
# Ghostscript       --with-gs=yes            	gs (9.10)
# Ghostscript fonts --with-gs-font-dir=/usr/local/share/ghostscript/9.10/Resource/Font \
#                                    /usr/local/share/ghostscript/9.10/Resource/Font/
# Windows GDI32     --with-gdi32=yes      	no
# JBIG              --with-jbig=yes        	no
# JPEG v1           --with-jpeg=yes        	yes
# JPEG-2000         --with-jp2=yes          	yes
# JPEG-XL           --with-jxl=yes          	yes
# LCMS v2           --with-lcms2=yes        	yes
# LZMA              --with-lzma=yes        	yes
# Magick++          --with-magick-plus-plus=yes	yes
# PERL              --with-perl=yes        	/usr/local/bin/perl
# PNG               --with-png=yes          	yes (-lpng16)
# Google tcmalloc   --with-tcmalloc=no		no
# Solaris mtmalloc  --with-mtmalloc=no		no
# Solaris umem      --with-umem=no        	no
# TIFF              --with-tiff=yes        	yes
# TRIO              --with-trio=no        	no
# WEBP              --with-webp=yes        	yes
# HEIF              --with-heif=yes        	no
# Windows fonts     --with-windows-font-dir=	none
# WMF               --with-wmf=yes          	yes
# X11               --with-x=              	yes
# XML               --with-xml=yes          	yes
# ZLIB              --with-zlib=yes        	yes
# ZSTD              --with-zstd=yes        	yes
#
# X11 Configuration:
# X_CFLAGS     = 
# X_PRE_LIBS   = -lSM -lICE
# X_LIBS       = 
# X_EXTRA_LIBS = 
#
# Options used to compile and link:
# CC       =  gcc
# CFLAGS   = -mtune=generic -Os -pipe -Wall
# CPPFLAGS = -I/usr/local/include -I/usr/local/include/libxml2 -I/usr/local/include/libpng16 -I/usr/local/include/freetype2 \
             -I/usr/local/include/harfbuzz -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include \
             -I/usr/local/include/webp -DHWY_SHARED_DEFINE -I/usr/local/include/jasper
# CXX      = g++
# CXXFLAGS = -mtune=generic -Os -pipe
# DEFS     = -DHAVE_CONFIG_H
# LDFLAGS  = -L/usr/local/lib
# LIBS     = -ljasper -lwmflite -ljxl -ljxl_threads -ltiff -lsharpyuv -lwebp -lwebpmux -lfreetype -ljpeg -lturbojpeg \
              -lpng16 -llcms2 -lXext -lSM -lICE -lX11 -lxml2 -lzstd -llzma -lbz2 -lz -lm -lpthread 

make -j5 # 45s
make install-strip DESTDIR=/tmp/$P # seconds
cd /tmp

# dev
#####
mkdir -p $P-dev/usr/local/lib/
mkdir -p $P-dev/usr/local/bin
mkdir -p $P-dev/usr/local/share
mv $P/usr/local/include $P-dev/usr/local/
mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib/
mv $P/usr/local/bin/*-config $P-dev/usr/local/bin
mv $P/usr/local/share/GraphicsMagick-1.3.43 $P-dev/usr/local/share/
mv $P/usr/local/lib/GraphicsMagick-1.3.43 $P-dev/usr/local/lib/

# main
###### 
rm -rf $P/usr/local/share/man
rm -rf $P/usr/local/lib/*.la
# clean up doc
rm -rf $P/usr/local/share/doc/GraphicsMagick/
mkdir -p $P/usr/local/share/doc/$P
cp $SRC/Copyright.txt $P/usr/local/share/doc/$P

# TCZ them
###########
LIST2="$P $P-dev "
for Z in $LIST2
do
	mksquashfs $Z $Z.tcz
	md5sum $Z.tcz > $Z.tcz.md5.txt
	cd $Z
	find usr -not -type d > /tmp/$Z.tcz.list
        sed 's|usr|/usr|g' -i /tmp/$Z.tcz.list
	cd /tmp
done

ls -hal

echo 'Title:           graphicsmagick-dev.tcz
Description:     dev files
Version:         1.3.43
Author:          GraphicsMagick Group
Original-site:   http://www.graphicsmagick.org/
Copying-policy:  accompanied as per Copyright.txt
Size:            172K
Extension_by:    aus9 @ linuxquestions.org
Tags:            graphics 
Comments:        development files              
                 and Xorg-7.7-3d-dev is a dep too

Change-log:      2017/12/16 v 1.3.23 (Juanito)
                 2019/04/27 v 1.3.31
Current:         2024/04/12 v 1.3.43 on 15x (aus9) ' > $P-dev.tcz.info

echo 'graphicsmagick.tcz
librsvg-dev.tcz
libwebp1-dev.tcz
libgs-dev.tcz
perl5.tcz
libwmf-dev.tcz
jasper2-dev.tcz 
libtool-dev.tcz      ' > $P-dev.tcz.dep

echo 'Title:           graphicsmagick.tcz
Description:     CLI graphics editor
Version:         1.3.43
Author:          GraphicsMagick Group
Original-site:   http://www.graphicsmagick.org/
Copying-policy:  accompanied as per Copyright.txt
Size:            1.7M
Extension_by:    aus9 @ linuxquestions.org
Tags:            graphics 
Comments:        $ gm -help  # eg
                 $ gm convert input.wmf 1.png
                 $ gm display 1.png

                 Note librsvg support is built-in

Change-log:      2017/12/16 v 1.3.23 (Juanito)
                 2019/04/27 v 1.3.31
Current:         2024/04/12 v 1.3.43 on 15x (aus9) ' > $P.tcz.info

readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' # ignore TCBs
#libGraphicsMagick.so.3]this TCE
#[libjasper.so.4] jasper2
#[libwmflite-0.2.so.7]libwmf
#[libjxl.so.0.8[libjxl_threads.so.0.8]libjxl
#[libtiff.so.5]libtiff
#[libsharpyuv.so.0][libwebp.so.7][libwebpmux.so.3] libwebp1
#libfreetype.so.6]freetype
#[libjpeg.so.62][libturbojpeg.so.0] libjpeg-turbo -> jasper2 
#[libpng16.so.16]libpng -> freetype
#liblcms2.so.2]liblcms2
#libXext.so.6]libXext
#libSM.so.6]libSM
#libICE.so.6]libICE
#libX11.so.6]libX11 -> libwmf
#[libxml2.so.2]libxml2
#[libzstd.so.1]libzstd -> libtiff
#[liblzma.so.5]liblzma -> libtiff
#libbz2.so.1.0]bzip2-lib -> freetype
#[libgcc_s.so.1]gcc_libs.tcz
readelf -d $P/usr/local/bin/gm | grep 'NEEDED' # no extras

echo 'jasper2.tcz
libwmf.tcz
libjxl.tcz
libtiff.tcz
libwebp1.tcz
freetype.tcz
liblcms2.tcz
libXext.tcz
libSM.tcz
libICE.tcz
libxml2.tcz
gcc_libs.tcz    ' > $P.tcz.dep
 
# pass 1 to check but it makes a mess of dep files
submitqc --libs
rm -rf *.zsync

# I tested no la files and delete system bin and lib files for librsvg -> gm still works so its inbuilt 


