#!/bin/sh
#
######################################################
# Build script                                       #
#                                                    #
# See .info for details                              #
#                                                    #
# LTO COMPATIBLE                                     #
#                                                    #
######################################################
tce-load -i ncurses-dev autoconf automake ncurses-utils.tcz

######################################################
# Configure extension creation parameters            #
######################################################
SRCPATH="../../../sources"

SRCNAM=screen-4.9.0.tar.gz
WRKDIR=screen-4.9.0
EXTNAM=screen
TMPDIR=/tmp/screen

######################################################
# Prepare extension creation                         #
######################################################

# Remove dirs and files left from previous creation

rm -r -f $WRKDIR

rm -r -f $TMPDIR
rm -r -f $TMPDIR-doc

# Crete temporary directory

mkdir -p $TMPDIR

######################################################
# Compile extension                                  #
######################################################

# Export variables needed for compilation

case $(find /lib | grep ld-linux) in
	*armhf*)
		export CFLAGS="-Os -pipe -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -flto -fuse-linker-plugin -use-ld=gold"
		export CXXFLAGS="-Os -pipe -fno-exceptions -fno-rtti -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -flto -fuse-linker-plugin -fuse-ld=gold"
		BIT32="linux32"

	;;
	*aarch64*)
		export CFLAGS="-Os -pipe -march=armv8-a+crc -mtune=cortex-a72"
		export CXXFLAGS="-Os -pipe -fno-exceptions -fno-rtti -march=armv8-a+crc -mtune=cortex-a72"
		BIT32=""
	;;
esac
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

# Unpack source in current directory

tar -xf $SRCPATH/$SRCNAM

# Configure it

cd $WRKDIR

./autogen.sh

${BIT32} ./configure --prefix=/usr/local --localstatedir=/var --with-socket-dir=/run/screen

# Compile

${BIT32} make -j4

tic ./terminfo/screeninfo.src

# Install in base temp dir

${BIT32} make install DESTDIR=$TMPDIR

mkdir -p $TMPDIR/usr/local/share/terminfo/s/

tic -o $TMPDIR/usr/local/share/terminfo/s ./terminfo/screeninfo.src

# Add etc files

mkdir -p $TMPDIR/usr/local/etc

cp -f etc/etcscreenrc $TMPDIR/usr/local/etc/screenrc

mkdir $TMPDIR/usr/local/share/screen
cp COPYING $TMPDIR/usr/local/share/screen

# Adjust directory access rigths

find $TMPDIR/ -type d | xargs chmod -v 755;

# Strip executables

find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | ${BIT32} xargs strip --strip-unneeded

# Move files to doc extension

rm -rf $TMPDIR/usr/local/share/man
rm -rf $TMPDIR/usr/local/share/info

# Delete compilation work directory

cd ..
rm -r -f $WRKDIR

mkdir -p $TMPDIR/usr/local/tce.installed
cp screen.ins $TMPDIR/usr/local/tce.installed/screen
sudo chown -R root:root $TMPDIR
sudo chown -R root:staff $TMPDIR/usr/local/tce.installed
sudo chmod -R 775 $TMPDIR/usr/local/tce.installed/screen

sudo chown tc $TMPDIR


###################################################
# Create base extension in temp dir               #
###################################################

cd $TMPDIR
cd ..
mksquashfs $TMPDIR $EXTNAM.tcz
cd $TMPDIR
find usr -not -type d > $EXTNAM.tcz.list
mv ../$EXTNAM.tcz .

# Create md5 file

md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt

# Cleanup temp directory

sudo rm -r -f usr

###################################################
# Create doc extension in temp dir                #
###################################################

#cd $TMPDIR-doc
#cd ..
#mksquashfs $TMPDIR-doc $EXTNAM-doc.tcz
#cd $TMPDIR-doc
#find usr -not -type d > $EXTNAM-doc.tcz.list
#mv ../$EXTNAM-doc.tcz .

# Create md5 file

#md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt

# Cleanup temp directory

#rm -r -f usr
