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

# build order is libfm-extra-dev menu-cache libfm then pcmanfm
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"

P1=libfm
P=$P1-extra-dev
V=1.3.2
SRC=$P1-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc submitqc glib2-dev intltool "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

# remove all la files
cd /usr/local/lib
rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/*.la
rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/plugin/*.la
rm -rf gprofng/*.la
rm -rf *.la
cd /tmp
rm -rf /usr/lib/*.la

su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://downloads.sourceforge.net/pcmanfm/$SRC.tar.xz   "  $USER
tar xvf $SRC.tar.xz
cd $SRC
# compile says "Please consider passing --sysconfdir=/etc to configure.
# Otherwise default config files will be installed to wrong place
./configure  --prefix=/usr/local --sysconfdir=/etc --with-extra-only \
--with-gtk=no --disable-static
# checking if gcc supports -fno-rtti -fno-exceptions... no
# prefix:           /usr/local
# sysconfdir:       /etc
# Enable compiler flags and other support for debugging:  no
# Build udisks support (Linux only, experimental):        no
# Build with libexif for faster thumbnail loading:        no
# Build demo program src/demo/libfm-demo:                 no
# Build with custom actions support (requires Vala):      no
# Large file support:                                     yes
# GIO module for preferred apps (for glib < 2.28 only):   not required
# Build libfm-gtk for Gtk+ version:                       none
# Build API doc with gtk-doc (recommended for make dist): no
####################################################   
make check # takes seconds
make install-strip DESTDIR=/tmp/$P
cd /tmp

# main
####### 
rm -rf $P/usr/local/lib/libfm-extra.la

# To keep simple, no install script used (this build) to re-create 
# sym link from /usr/local/include/libfm-1.0 to libfm 

# 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:          libfm-extra-dev.tcz
Description:    building dep for menu-cache  
Version:        1.3.2
Author:         https://github.com/lxde/libfm/blob/master/AUTHORS
Original-site:  https://downloads.sourceforge.net/pcmanfm
Copying-policy: GPL v2
Size:           16K          		
Extension_by:   aus9
Tags:           pcmanfm    
Comments:       Building dep for menu-cache 
 
Change-log:     2020/09/06 v 1.3.1 12x
Current:        2023/05/24 v 1.3.2 14x  ' > $P.tcz.info

readelf -d $P/usr/local/lib/libfm-extra.so | grep 'NEEDED'
# [libgio-2.0.so.0]    glib2
# [libgthread-2.0.so.0] "
# [libgobject-2.0.so.0] "
# [libglib-2.0.so.0]    "
# [libm.so.6]             TCB          
# [libpthread.so.0]       "     
# [libc.so.6]             "           
# [ld-linux-aarch64.so.1] "

echo 'glib2-dev.tcz      
intltool.tcz '> $P.tcz.dep

submitqc --libs
