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

export CFLAGS='-flto=auto -Os -pipe -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp  '
export CXXFLAGS='-flto=auto -Os -pipe -fno-exceptions -fno-rtti -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp '
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
echo $CFLAGS && echo $CXXFLAGS

P=jasper
V=4.0.0
SRC=$P-version-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc squashfs-tools wget cmake libjpeg-turbo-dev "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

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 gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcp1plugin.la
rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcc1plugin.la
rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/liblto_plugin.la
rm -rf pulseaudio/libpulsedsp.la
rm -rf pulseaudio/libpulsecore-13.0.la
rm -rf pulseaudio/libpulsecommon-13.0.la
rm -rf libv4l/v4l2convert.la
rm -rf libv4l/v4l1compat.la
rm -rf libv4l/plugins/libv4l-mplane.la
cd /tmp
rm -rf /usr/lib/*.la
find / -name *.la

su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://github.com/$P-software/$P/archive/refs/tags/version-$V.tar.gz "  $USER
tar xvf version*gz
cd $SRC
# build already exists but not recommending for building
# on what follows is remarks and my inferences on how to build it
SOURCE_DIR=`pwd`
mkdir z # create empty dir 
BUILD_DIR=$SOURCE_DIR/z
INSTALL_DIR=/tmp/$P
cmake -H$SOURCE_DIR -B$BUILD_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
# Checking for module 'glut' so jiv an image viewer not built
make -j4 # 20 secs
make install DESTDIR=/tmp/$P  # no rule for stripping
cd /tmp

# dev
#######
mkdir -p $P-dev/usr/local/lib
mv $P/usr/local/include $P-dev/usr/local/
mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib

# doc
#####
mkdir -p $P-doc/usr/local/share
mv $P/usr/local/share/doc $P-doc/usr/local/share/
mv $P-doc/usr/local/share/doc/JasPer $P-doc/usr/local/share/doc/$P
mv $P/usr/local/share/man $P-doc/usr/local/share/

# main
#######
mkdir -p $P/usr/local/share/doc/$P
cp $SRC/LICENSE.txt  $P/usr/local/share/doc/$P/	

# TCZ them
###########
LIST2="$P $P-dev $P-doc "
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:          jasper-dev.tcz
Description:    dev files
Version:        4.0.0
Author:         Michael D Adams
Original-site:  https://github.com/jasper-software/jasper
Copying-policy: accompanied
Size:           80K
Extension_by:   aus9
Tags:           images 
Comments:       dev files
 
Current:        2016/05/20 v 1.900.1 (bmarkus)
Current:        2023/07/27 v 4.0.0 on 14x (aus9)' > $P-dev.tcz.info
echo 'jasper.tcz
libjpeg-turbo-dev.tcz ' > $P-dev.tcz.dep 

echo 'Title:          jasper-doc.tcz
Description:    doc files
Version:        4.0.0
Author:         Michael D Adams
Original-site:  https://github.com/jasper-software/jasper
Copying-policy: accompanied
Size:           244K
Extension_by:   aus9
Tags:           images 
Comments:       man page and technical pdf
                Optional dep is man-db 
                if you need to read man page
 
Current:        2016/05/20 v 1.900.1 (bmarkus)
Current:        2023/07/27 v 4.0.0 on 14x (aus9)' > $P-doc.tcz.info


echo 'Title:          jasper.tcz
Description:    jpeg 2000 support library and tools
Version:        4.0.0
Author:         Michael D Adams
Original-site:  https://github.com/jasper-software/jasper
Copying-policy: accompanied
Size:           180K
Extension_by:   aus9
Tags:           CLI library jpeg jp2 images
Comments:       The following formats are supported:
                pnm Portable Graymap/Pixmap (PNM)
                bmp Microsoft Bitmap (BMP)
                ras Sun Rasterfile (RAS)
                pgx JPEG-2000 VM Format (PGX)
                jpc JPEG-2000 Code Stream Syntax (ISO/IEC 15444-1)
                jp2 JPEG-2000 JP2 File Format Syntax (ISO/IEC 15444-1)
                jpg JPEG (ISO/IEC 10918-1)

                eg usage 
                $ jasper --input sample.jp2 --output test.jpg

 
Current:        2016/05/20 v 1.900.1 (bmarkus)
Current:        2023/07/27 v 4.0.0 on 14x (aus9)' > $P.tcz.info

readelf -d $P/usr/local/bin/* | grep 'NEEDED'
#[libjasper.so.7]this TCE
#[libjpeg.so.62] libjpeg-turbo
readelf -d $P/usr/local/lib/* | grep 'NEEDED' # no extras

echo 'libjpeg-turbo.tcz' > $P.tcz.dep
