#!/bin/sh mkdir -p /tmp/logs/libchewing64 # compile flags export CFLAGS="-mtune=generic -Os -pipe" export CXXFLAGS="-mtune=generic -Os -pipe" export LDFLAGS="-Wl,-O1" # load packages echo Fetching build essentials tce-load -w autoconf automake cmake compiletc git libtool-dev ncurses-dev sqlite3-dev squashfs-tools 1>> /tmp/logs/libchewing64/tce-load-w.log 2>> /tmp/logs/libchewing64/tce-load-w-debug.log echo Loading build essentials tce-load -i autoconf automake cmake compiletc git libtool-dev ncurses-dev sqlite3-dev squashfs-tools 1>> /tmp/logs/libchewing64/tce-load-i.log 2>> /tmp/logs/libchewing64/tce-load-i-debug.log # get source and compile cd /tmp && pwd && echo Git cloning source code git clone https://github.com/chewing/libchewing.git cd libchewing && pwd && echo Building from source cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local . 1> /tmp/logs/libchewing64/cmake.log 2> /tmp/logs/libchewing64/cmake-debug.log make VERBOSE=1 -j 1> /tmp/logs/libchewing64/make.log 2> /tmp/logs/libchewing64/make-debug.log make DESTDIR=/tmp/libchewing-root install 1> /tmp/logs/libchewing64/install.log 2> /tmp/logs/libchewing64/install-debug.log # striping cd /tmp/libchewing-root find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null # seperating RUNTIME=`find /tmp/libchewing-root/usr/local/lib64 -executable -not -type d -not -type l | rev | cut -d '/' -f 1 | rev` LINKS=`find /tmp/libchewing-root/usr/local/lib64 -type l | rev | cut -d '/' -f 1 | rev` ## dev mkdir -p /tmp/libchewing-dev/usr/local/lib/pkgconfig /tmp/libchewing-dev/usr/local/lib64 mv -f /tmp/libchewing-root/usr/local/include/ /tmp/libchewing-dev/usr/local/ mv -f /tmp/libchewing-root/usr/local/lib64/pkgconfig/ /tmp/libchewing-dev/usr/local/lib64/ mv -f /tmp/libchewing-root/usr/local/lib64/libchewing.a /tmp/libchewing-dev/usr/local/lib64/ cd /tmp/libchewing-dev/usr/local/lib ln -s ../lib64/libchewing.a . cd pkgconfig/ ln -s ../../lib64/pkgconfig/chewing.pc . ## root mkdir -p /tmp/libchewing-root/usr/local/lib && cd /tmp/libchewing-root/usr/local/lib for F in $LINKS do ln -s ../lib64/$RUNTIME $F done ln -s ../lib64/$RUNTIME . ## doc mkdir -p /tmp/libchewing-doc/usr/local/share/doc/libchewing/ cp /tmp/libchewing/AUTHORS /tmp/libchewing/COPYING /tmp/libchewing-doc/usr/local/share/doc/libchewing/ # chown sudo chown -R root:root /tmp/libchewing-doc/ /tmp/libchewing-root/ /tmp/libchewing-dev/ # chmod for F in `find /tmp/libchewing-root/ /tmp/libchewing-dev/ /tmp/libchewing-doc/ -executable -not -type l` do sudo chmod 755 $F done for F in `find /tmp/libchewing-root/ /tmp/libchewing-dev/ /tmp/libchewing-doc/ -not -executable` do sudo chmod 644 $F done # packing cd /tmp && pwd && echo Building tcz packages mksquashfs /tmp/libchewing-root libchewing.tcz > /dev/null mksquashfs /tmp/libchewing-dev libchewing-dev.tcz > /dev/null mksquashfs /tmp/libchewing-doc libchewing-doc.tcz > /dev/null md5sum libchewing.tcz > libchewing.tcz.md5.txt md5sum libchewing-dev.tcz > libchewing-dev.tcz.md5.txt md5sum libchewing-doc.tcz > libchewing-doc.tcz.md5.txt # dep file for dep in libchewing libtool-dev ncurses-dev sqlite3-dev do echo $dep".tcz" >> libchewing-dev.tcz.dep done # move to tcedir/optional and load mv -f libchewing.tcz libchewing.tcz libchewing.tcz.md5.txt libchewing-dev.tcz \ libchewing-dev.tcz.dep libchewing-dev.tcz.md5.txt libchewing-doc.tcz libchewing-doc.tcz.md5.txt \ /etc/sysconfig/tcedir/optional/ # remove temp file # sudo rm -fr /tmp/libchewing /tmp/libchewing-root /tmp/libchewing-dev /tmp/libchewing-doc tce-load -i libchewing libchewing-dev libchewing-doc