#!/bin/bash
# test we are root
if [ "$(id -u)" != "0" ]; then
   echo "run as root now exitting"
   exit 1
fi

# some cheats off LFS
export CFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe"
export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe -fno-exceptions -fno-rtti"

P=ghostscript
V=10.01.1
SRC=$P-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc submitqc xz cups-dev cairo-dev libjpeg-turbo-dev lcms2-dev libXt-dev gtk3-dev \
jbig2dec-dev openjpeg-dev"
for Z in $LIST 
    do 
    su -c "tce-load -i $Z" $USER
done

# list may have more than loaded
cd /usr/local/lib
rm -rf *.la
rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/plugin/*.la
rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/*.la
rm -rf gprofng/*.la 
rm -rf python3.8/site-packages/*.la
rm -rf pkcs11/*.la
rm -rf cairo/*.la
rm -rf gtk-2.0/modules/*.la
rm -rf gtk-2.0/2.10.0/printbackends/*.la
rm -rf gtk-2.0/2.10.0/immodules/*.la
rm -rf gtk-2.0/2.10.0/engines/*.la
rm -rf imlib2/loaders/*.la
rm -rf imlib2/filters/*.la
rm -rf gdk-pixbuf-2.0/2.10.0/loaders/*.la
rm -rf libnl/cli
cd /tmp
rm -rf /usr/lib/*.la

su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10011/$SRC.tar.xz " $USER
# http://tinycorelinux.net/12.x/aarch64/tcz/src/$P/$P-9.52.tar.xz  " $USER
tar xvf $SRC*xz
cd $SRC
# I have expat2 freetype jbig2dec lcms2 libjpeg-turbo libpng openjpeg zlib_base-dev loaded 
rm -rf expat freetype lcms2mt jpeg libpng zlib
./configure --prefix=/usr/local --localstatedir=/var --enable-dynamic \
--disable-compile-inits --without-libpaper --without-versioned-path \
--disable-hidden-visibility --with-system-libtiff

# make says not ok for C++   -Werror=declaration-after-statement / -Wstrict-prototypes / -Wmissing-prototypes
sed 's|-Werror=declaration-after-statement||' -i Makefile
sed 's|-Wstrict-prototypes||' -i Makefile
sed 's|-Wmissing-prototypes||' -i Makefile

make -j4                     # 14M40s
mkdir sobin soobj
chown -R $USER sobin
chown -R $USER soobj
su -c "make so" $USER         # 44M
make install DESTDIR=/tmp/$P   
make soinstall DESTDIR=/tmp/$P
cd /tmp

# doc & dev
###### 
rm -rf $P/usr/local/share/man 
rm -rf $P/usr/local/share/doc 
rm -rf $P/usr/local/include

# main start afresh
######
mkdir -p $P/usr/local/share/doc/$P
cp $SRC/LICENSE $P/usr/local/share/doc/$P
cp $SRC/doc/COPYING $P/usr/local/share/doc/$P

# assume all are elf/so and ignore warning for non-elfs
strip --strip-unneeded $P/usr/local/bin/*
strip --strip-unneeded $P/usr/local/lib/libgs.so.10.01
strip --strip-unneeded $P/usr/local/lib/$PX11.so

# TCZ them
#######
LIST="$P "
for Z in $LIST
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:          ghostscript.tcz
Description:    An interpreter for the PS & PDF printing files
Version:        10.01.1
Author:         Artifex Software Inc.
Original-site:  https://www.ghostscript.com/
Copying-policy: see LICENSE
Size:           21M
Extension_by:   aus9
Tags:           postscript ps pdf
Comments:       An interpreter for the PostScript language and PDF.
                To view a pdf $ gs sample.pdf

Change-log:     2020/09/21 v 9.52 on 12.x
Current:        2023/06/15 v 10.01.1 on 14.x  ' > $P.tcz.info

readelf -d $P/usr/local/bin/* | grep 'NEEDED' # delete duplicates TCBs below
#[libtiff.so.5]libtiff liblcms2
#[libcups.so.2]libcups
#[libpng16.so.16]libpng choose cairo pango
#[libjpeg.so.62]libjpeg-turbo libtiff liblcms2
#[liblcms2.so.2]liblcms2
#[libfontconfig.so.1]fontconfig cairo pango
#[libfreetype.so.6]freetype "    "
#[libpangocairo-1.0.so.0]pango
#[libpango-1.0.so.0] "
#[libharfbuzz.so.0]harfbuzz freetype cairo pango
#[libatk-1.0.so.0]atk
#[libcairo-gobject.so.2]cairo pango
#[libcairo.so.2]"              "
#[libgdk_pixbuf-2.0.so.0]gdk-pixbuf 
#[libgio-2.0.so.0]glib2 choose atk
#[libgobject-2.0.so.0]"
#[libglib-2.0.so.0]"
readelf -d $P/usr/local/lib/* | grep 'NEEDED'
readelf -d $P/usr/local/lib/$P/X11.so | grep 'NEEDED'
#[libXt.so.6]    libXt
#[libSM.so.6]libSM "
#[libICE.so.6]libICE "
#[libXext.so.6]libXext cairo
#[libX11.so.6]libX11 choose libXt
 
echo 'liblcms2.tcz
libcups.tcz
pango.tcz
atk.tcz
gdk-pixbuf.tcz
libXt.tcz
fontconfig.tcz      ' > $P.tcz.dep

submitqc --libs

rm -rf *.zsync



