#!/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

# no libjpeg-turbo needed in dev but needed in run dep

P=openjpeg
V=2.5.0
SRC=$P-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc squashfs-tools wget cmake libpng-dev libtiff-dev lcms2-dev "   
    for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

# list may be larger 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 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
rm -rf vala-0.46/libvalaccodegen.la
cd /tmp
rm -rf /usr/lib/*.la
find / -name *.la

su -c "/usr/local/bin/wget -nc --no-check certificate \
https://github.com/uclouvain/$P/archive/refs/tags/v$V.tar.gz"  $USER
tar xvf v$V*gz
cd $SRC
mkdir build && cd build
cmake prefix=/usr/local -DCMAKE_BUILD_TYPE=Release -DENABLE_STATIC=FALSE ../
make -j4 # 50s 
make install DESTDIR=/tmp/$P # install-strip fails
cd /tmp

# dev
#####
mkdir -p $P-dev/usr/local/lib
mv $P/usr/local/include $P-dev/usr/local/
mv $P/usr/local/lib/openjpeg* $P-dev/usr/local/lib
mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib/
mv $P/usr/local/lib/*.a $P-dev/usr/local/lib 

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

# TCZ them
###########
LIST="$P $P-dev"
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:          openjpeg-dev.tcz
Description:    dev files
Version:        2.5.0
Author:         https://github.com/uclouvain/openjpeg/blob/master/AUTHORS.md
Original-site:  https://github.com/uclouvain/openjpeg
Copying-policy: accompanied
Size:           1.5M
Extension_by:   aus9
Tags:           jpeg jp2
Comments:       dev files
                
Change-log:     2016/06/10 v 2.1.0 (bmarkus)
                2020/04/26 v 2.3.1 (juanito)
Current:        2023/07/26 v 2.5.0 on 14.x (aus9)'     > $P-dev.tcz.info
echo 'openjpeg.tcz
lcms2-dev.tcz                                    
libpng-dev.tcz                                   
libtiff-dev.tcz    ' > $P-dev.tcz.dep

echo 'Title:          openjpeg.tcz
Description:    jpeg 2000 codec
Version:        2.5.0
Author:         https://github.com/uclouvain/openjpeg/blob/master/AUTHORS.md
Original-site:  https://github.com/uclouvain/openjpeg
Copying-policy: accompanied
Size:           276K
Extension_by:   aus9
Tags:           jpeg jp2
Comments:       Binaries only
                
Change-log:     2016/06/10 v 2.1.0 (bmarkus)
                2020/04/26 v 2.3.1 (juanito)
Current:        2023/07/26 v 2.5.0 on 14.x (aus9)'     > $P.tcz.info

readelf -d $P/usr/local/lib/*.so* | grep 'NEEDED' # none strange!
readelf -d $P/usr/local/bin/* | grep 'NEEDED'
#[libopenjp2.so.7]this TCE
#[libpng16.so.16]libpng
#[libtiff.so.6]libtiff
#[liblzma.so.5]liblzma
#[libjpeg.so.62]libjpeg-turbo
#[liblcms2.so.2]lcms2

echo 'libpng.tcz          
libtiff.tcz
liblzma.tcz                                   
libjpeg-turbo.tcz
lcms2.tcz       ' > $P.tcz.dep 
