diff options
Diffstat (limited to 'tools/to-pack/sub-script/linux.sh')
-rw-r--r-- | tools/to-pack/sub-script/linux.sh | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/tools/to-pack/sub-script/linux.sh b/tools/to-pack/sub-script/linux.sh new file mode 100644 index 0000000..552dace --- /dev/null +++ b/tools/to-pack/sub-script/linux.sh @@ -0,0 +1,275 @@ +#!/bin/bash + +if [ "${TEMP_PATH}" = "" ] +then + exit; +fi + +QMAKE="/usr/local/Qt-5.2.0/bin/qmake" + +mkdir -p ${TEMP_PATH} +cd ${TEMP_PATH}/ + +function compil { + DEBUG=$2 + ULTIMATE=$3 + cd ${TEMP_PATH}/ + TARGET=$1 + STATIC=$4 + FINAL_ARCHIVE="${TARGET}-linux-x86_64-pc-${ULTRACOPIER_VERSION}" + if [ ! -e ${FINAL_ARCHIVE}.tar.xz ] + then + echo "Making linux tar.xz: ${FINAL_ARCHIVE} ..." + + rm -Rf ${TEMP_PATH}/${FINAL_ARCHIVE}/ + /usr/bin/rsync -art --delete ${ULTRACOPIER_SOURCE}/ ${TEMP_PATH}/${FINAL_ARCHIVE}/ --exclude='*build*' --exclude='*Qt_5*' --exclude='*qt5*' --exclude='*.pro.user' + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "*.pro.user" -exec rm {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "*-build-desktop" -type d -exec rm -Rf {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "informations.xml" -exec sed -i -r "s/<architecture>.*<\/architecture>/<architecture>linux-x86_64-pc<\/architecture>/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "informations.xml" -exec sed -i -r "s/<version>.*<\/version>/<version>${ULTRACOPIER_VERSION}<\/version>/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "informations.xml" -exec sed -i -r "s/<pubDate>.*<\pubDate>/<pubDate>`date +%s`<\pubDate>/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_VERSION_PORTABLE/\/\/#define ULTRACOPIER_VERSION_PORTABLE/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_VERSION_PORTABLEAPPS/\/\/#define ULTRACOPIER_VERSION_PORTABLEAPPS/g" {} \; > /dev/null + if [ ${DEBUG} -eq 1 ] + then + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_DEBUG/#define ULTRACOPIER_DEBUG/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_PLUGIN_DEBUG/#define ULTRACOPIER_PLUGIN_DEBUG/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/g" {} \; > /dev/null + else + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_DEBUG/\/\/#define ULTRACOPIER_DEBUG/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG/\/\/#define ULTRACOPIER_PLUGIN_DEBUG/g" {} \; > /dev/null + find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/\/\/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/g" {} \; > /dev/null + fi + if [ $STATIC -eq 1 ] + then + find ${TEMP_PATH}/${TARGET}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_PLUGIN_ALL_IN_ONE/#define ULTRACOPIER_PLUGIN_ALL_IN_ONE/g" {} \; > /dev/null + else + + find ${TEMP_PATH}/${TARGET}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_ALL_IN_ONE/\/\/#define ULTRACOPIER_PLUGIN_ALL_IN_ONE/g" {} \; > /dev/null + fi + if [ $ULTIMATE -eq 1 ] + then + find ${TEMP_PATH}/${TARGET}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_VERSION_ULTIMATE/#define ULTRACOPIER_VERSION_ULTIMATE/g" {} \; > /dev/null + else + find ${TEMP_PATH}/${TARGET}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_VERSION_ULTIMATE/\/\/#define ULTRACOPIER_VERSION_ULTIMATE/g" {} \; > /dev/null + fi + + if [ ${DEBUG} -eq 1 ] + then + QTMODEDEBUGRELEASE="debug" + else + QTMODEDEBUGRELEASE="release" + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/CopyEngine/Ultracopier/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/Listener/catchcopy-v0002/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/Themes/Oxygen/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + if [ ${ULTIMATE} -eq 1 ] && [ $STATIC -ne 1 ] + then + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Clean/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + mv ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Clean/ ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/Themes/Clean/ + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Windows/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + mv ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Windows/ ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/Themes/Windows/ + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Teracopy/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} + make -j 4 > /dev/null + RETURN_CODE=$? + if [ $? -ne 0 ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + mv ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/Themes/Teracopy/ ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/Themes/Teracopy/ + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/ + if [ $STATIC -eq 1 ] + then + cp -aRf ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/*/*/*.a ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} ultracopier-static.pro + else + ${QMAKE} -config ${QTMODEDEBUGRELEASE} ultracopier-core.pro + fi + make -j 4 > /dev/null + if [ $STATIC -eq 1 ] + then + upx --lzma -9 ultracopier > /dev/null + fi + RETURN_CODE=$? + if [ $? -ne 0 ] || [ ! -e ultracopier ] + then + echo "make failed on the linux: ${RETURN_CODE}" + exit + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE} + for SUBFOLDER in `ls -1` + do + if [ -d ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/ ] + then + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/ + for plugins_cat in `ls -1` + do + if [ -d ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/${plugins_cat} ] && [ "${plugins_cat}" != "Languages" ] + then + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/${plugins_cat}/ + for plugins_name in `ls -1` + do + if [ ! -f ${plugins_name}/lib*.so ] && [ -d ${plugins_name}/ ] + then + rm -Rf ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/${plugins_cat}/${plugins_name}/ + fi + done + fi + done + fi + done + cd ${TEMP_PATH}/ + rm -Rf ${TEMP_PATH}/${FINAL_ARCHIVE}/resources/ + if [ $STATIC -eq 1 ] + then + rm -Rf ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins/ + fi + if [ ${ULTIMATE} -ne 1 ] || [ $STATIC -eq 1 ] + then + rm -Rf ${TEMP_PATH}/${FINAL_ARCHIVE}/plugins-alternative/ + fi + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type f -not \( -name "*.xml" -or -name "lib*.so" -or -name "ultracopier" -or -name "*.txt" -or -name "*.qm" \) -exec rm -f {} \; + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type d \( -name "*build*" -or -name "Desktop" -or -name "Qt_5" -or -name "qt5" \) -exec rm -Rf {} \; + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type d -empty -delete > /dev/null + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type d -empty -delete > /dev/null + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type d -empty -delete > /dev/null + /usr/bin/find ${TEMP_PATH}/${FINAL_ARCHIVE}/ -type d -empty -delete > /dev/null + cd ${TEMP_PATH}/ + if [ ! -e ${FINAL_ARCHIVE} ]; then + echo "${FINAL_ARCHIVE} not exists!"; + exit; + fi + nice -n 19 ionice -c 3 tar cpf - ${FINAL_ARCHIVE}/ | nice -n 19 ionice -c 3 xz -z -9 -e > ${FINAL_ARCHIVE}.tar.xz + if [ ! -e ${FINAL_ARCHIVE}.tar.xz ]; then + echo "${FINAL_ARCHIVE}.tar.xz not exists!"; + exit; + fi + echo "Making binary debug linux tar.xz... done" + else + echo "Archive already exists: ${FINAL_ARCHIVE}.tar.xz" + fi +} + +function compil_plugin { + DEBUG=$2 + cd ${TEMP_PATH}/ + TARGET=$1 + SUBFOLDER=$3 + FINAL_ARCHIVE="${TARGET}-linux-x86_64-pc-for-plugins" + + cp -aRf ${ULTRACOPIER_SOURCE}/ ${TEMP_PATH}/${FINAL_ARCHIVE}/ + + if [ ${DEBUG} -eq 1 ] + then + QTMODEDEBUGRELEASE="debug" + else + QTMODEDEBUGRELEASE="release" + fi + + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/ + for plugins_cat in `ls -1` + do + if [ -d ${plugins_cat} ] && [ "${plugins_cat}" != "Languages" ] + then + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/${plugins_cat}/ + for plugins_name in `ls -1` + do + if [ -f ${plugins_name}/informations.xml ] + then + find ${plugins_name}/ -name "informations.xml" -exec sed -i -r "s/1\.0\.0\.0/${ULTRACOPIER_VERSION}/g" {} \; > /dev/null + ULTRACOPIER_PLUGIN_VERSION=`grep -F "<version>" ${plugins_name}/informations.xml | sed -r "s/^.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*$/\1/g"` + if [ -d ${plugins_name} ] && [ ! -f ${TEMP_PATH}/plugins/${plugins_cat}/${plugins_name}/${plugins_cat}-${plugins_name}-${ULTRACOPIER_PLUGIN_VERSION}-linux-x86_64-pc.urc ] + then + echo "pack the ${ARCHITECTURE} linux for the alternative plugin: ${plugins_cat}/${plugins_name}" + mkdir -p ${TEMP_PATH}/plugins/${plugins_cat}/${plugins_name}/ + + find ${plugins_name}/ -name "*.pro.user" -exec rm {} \; > /dev/null + find ${plugins_name}/ -name "*-build-desktop" -type d -exec rm -Rf {} \; > /dev/null + find ${plugins_name}/ -name "informations.xml" -exec sed -i -r "s/<architecture>.*<\/architecture>/<architecture>linux-x86_64-pc<\/architecture>/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_VERSION_PORTABLE/\/\/#define ULTRACOPIER_VERSION_PORTABLE/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_VERSION_PORTABLEAPPS/\/\/#define ULTRACOPIER_VERSION_PORTABLEAPPS/g" {} \; > /dev/null + if [ ${DEBUG} -eq 1 ] + then + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_DEBUG/#define ULTRACOPIER_DEBUG/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_PLUGIN_DEBUG/#define ULTRACOPIER_PLUGIN_DEBUG/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/\/\/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/g" {} \; > /dev/null + else + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_DEBUG/\/\/#define ULTRACOPIER_DEBUG/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG/\/\/#define ULTRACOPIER_PLUGIN_DEBUG/g" {} \; > /dev/null + find ${plugins_name}/ -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/\/\/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/g" {} \; > /dev/null + fi + cd ${plugins_name}/ + ${QMAKE} -config ${QTMODEDEBUGRELEASE} *.pro + make -j 4 > /dev/null + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/${plugins_cat}/ + if [ ! -e ${plugins_name}/lib*.so ]; then + echo "no lib*.so file!"; + make -j 4 + else + find ${plugins_name}/ -iname "*.ts" -exec rm {} \; + find ${plugins_name}/ -maxdepth 1 -mindepth 1 -type f ! -iname "lib*.so" ! -iname "informations.xml" -exec rm {} \; + find ${plugins_name}/ -maxdepth 1 -mindepth 1 -type d ! -iname "Languages" -exec rm -Rf {} \; + /usr/bin/find ${plugins_name}/ -type d -empty -delete > /dev/null + /usr/bin/find ${plugins_name}/ -type d -empty -delete > /dev/null + /usr/bin/find ${plugins_name}/ -type d -empty -delete > /dev/null + /usr/bin/find ${plugins_name}/ -type d -empty -delete > /dev/null + + tar --posix -c -f - ${plugins_name}/ | xz -9 --check=crc32 > ${TEMP_PATH}/plugins/${plugins_cat}/${plugins_name}/${plugins_cat}-${plugins_name}-${ULTRACOPIER_PLUGIN_VERSION}-linux-x86_64-pc.urc + fi + fi + fi + done + fi + cd ${TEMP_PATH}/${FINAL_ARCHIVE}/${SUBFOLDER}/ + done +} + +compil "ultracopier" 0 0 0 0 +compil "ultracopier-ultimate" 0 1 0 0 +compil "ultracopier-debug" 1 0 0 0 + +#compil_plugin "ultracopier" 0 "plugins-alternative" +#compil_plugin "ultracopier" 0 "plugins" |