#!/bin/sh ###################################################### # Build script for FreeRDP # ###################################################### ###################################################### # Configure extension creation parameters # ###################################################### COMMIT=4c69c3e WRKDIR=FreeRDP EXTNAME=freerdp TMPDIR=/tmp/$EXTNAME PREFIX=/usr/local SCRIPT_PATH=$(pwd) ###################################################### # Prepare extension creation # ###################################################### # Remove dirs and files left from previous creation rm -r -f $TMPDIR rm -r -f $TMPDIR-dev rm -r -f $WRKDIR # Create temp folders mkdir -p $TMPDIR mkdir -p $TMPDIR-dev # Download build dependencies tce-load -iw git cmake compiletc squashfs-tools zsync Xorg-7.7-dev zlib_base-dev openssl-dev alsa-dev pulseaudio-dev cups-dev pcsc-lite-dev ffmpeg-dev gst-plugins-base0.10-dev libjpeg-turbo-dev # Download upstream source git clone https://github.com/FreeRDP/FreeRDP.git cd $WRKDIR git checkout $COMMIT ###################################################### # Compile extension # ###################################################### # Export variables needed for compilation export CFLAGS="-march=i486 -mtune=i686 -Os -pipe" export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe" export LDFLAGS="-Wl,-O1" mkdir build cd build # Configure cmake -DCMAKE_C_FLAGS=$CFLAGS -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=$PREFIX/lib -DCMAKE_BUILD_TYPE=Release -DWITH_PULSE=ON -DWITH_CUPS=ON -DWITH_JPEG=ON -DWITH_GSTREAMER=ON -DWITH_FFMPEG=ON -DWITH_ALSA=ON -DWITH_PCSC=ON ../ # Compile make # Install in base temp dir make install DESTDIR=$TMPDIR # Adjust directory access rigths find $TMPDIR/ -type d | xargs chmod -v 755; # Strip executables find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded # Move include files to dev extension mkdir -p $TMPDIR-dev$PREFIX mv $TMPDIR$PREFIX/include $TMPDIR-dev$PREFIX # Move pkgconfig folder to dev extension mkdir -p $TMPDIR-dev$PREFIX/lib mv $TMPDIR$PREFIX/lib/pkgconfig $TMPDIR-dev$PREFIX/lib # Move *.a files to dev extension mv $TMPDIR$PREFIX/lib/*.a $TMPDIR-dev$PREFIX/lib # Copy license file mkdir -p $TMPDIR$PREFIX/share/doc/$EXTNAME cp ../LICENSE $TMPDIR$PREFIX/share/doc/$EXTNAME ################################################### # Create base extension in temp dir # ################################################### cd $TMPDIR cd .. mksquashfs $TMPDIR $EXTNAME.tcz cd $TMPDIR find usr -not -type d > $EXTNAME.tcz.list mv ../$EXTNAME.tcz . # Create md5 file md5sum $EXTNAME.tcz > $EXTNAME.tcz.md5.txt # Copy *.info and *.dep files cp $SCRIPT_PATH/$EXTNAME.tcz.info $TMPDIR cp $SCRIPT_PATH/$EXTNAME.tcz.dep $TMPDIR # Update Size field in info file SIZE=$(du -h $EXTNAME.tcz | cut -f 1) sed -i "s/^Size.*/Size:\t\t$SIZE/" $EXTNAME.tcz.info # Create zsync file zsyncmake $EXTNAME.tcz > /dev/null 2>&1 # Create tarball tar cvfz $EXTNAME.tar.gz $EXTNAME.tcz* ################################################### # Create dev extension in temp dir # ################################################### cd $TMPDIR-dev cd .. mksquashfs $TMPDIR-dev $EXTNAME-dev.tcz cd $TMPDIR-dev find usr -not -type d > $EXTNAME-dev.tcz.list mv ../$EXTNAME-dev.tcz . # Create md5 file md5sum $EXTNAME-dev.tcz > $EXTNAME-dev.tcz.md5.txt # Copy *.info and *.dep files cp $SCRIPT_PATH/$EXTNAME-dev.tcz.info $TMPDIR-dev cp $SCRIPT_PATH/$EXTNAME-dev.tcz.dep $TMPDIR-dev # Update Size field in info file SIZE=$(du -h $EXTNAME-dev.tcz | cut -f 1) sed -i "s/^Size.*/Size:\t\t$SIZE/" $EXTNAME-dev.tcz.info # Create zsync file zsyncmake $EXTNAME-dev.tcz > /dev/null 2>&1 # Create tarball tar cvfz $EXTNAME-dev.tar.gz $EXTNAME-dev.tcz*