OSDN Git Service

Added build script for Windows.
[slunkcrypt/SlunkCrypt.git] / mk-profiled.sh
1 #!/bin/bash
2 set -e
3
4 PLATFORM="$(uname -a)"
5 unset SUFFIX
6 if [[ "${PLATFORM}" == MINGW* || "${PLATFORM}" == CYGWIN* ]]; then
7   SUFFIX=".exe"
8 fi
9
10 [ -e /dev/urandom ] && RANDOM_SOURCE="/dev/urandom" || RANDOM_SOURCE="/dev/random"
11 TMP_NAME="$(tr -dc 'a-zA-Z0-9' < ${RANDOM_SOURCE} | fold -w 12 | head -n 1)"
12 PGO_PATH="$(tr -dc 'a-zA-Z0-9' < ${RANDOM_SOURCE} | fold -w 12 | head -n 1)"
13 trap "printf \"\033[1;31m\nBuild has failed !!!\033[0m\n\n\"" ERR
14 trap "rm -rf /tmp/${TMP_NAME}.dat /tmp/${TMP_NAME}.enc /tmp/${TMP_NAME}.out /tmp/${PGO_PATH}" EXIT
15
16 printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n"
17 printf "\033[1;36mClean\n"
18 printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n"
19
20 make clean
21
22 printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n"
23 printf "\033[1;36mInstrument\n"
24 printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n"
25
26 make FPGO="generate=/tmp/${PGO_PATH}" -B "$@"
27
28 printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n"
29 printf "\033[1;36mProfiling\n"
30 printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n"
31
32 dd bs=1024 count=102400 status=none < ${RANDOM_SOURCE} > /tmp/${TMP_NAME}.dat
33
34 ./frontend/bin/slunkcrypt${SUFFIX} --self-test
35 ./frontend/bin/slunkcrypt${SUFFIX} --encrypt 'q4cmK7FEK7@v' /tmp/${TMP_NAME}.dat /tmp/${TMP_NAME}.enc
36 ./frontend/bin/slunkcrypt${SUFFIX} --decrypt 'q4cmK7FEK7@v' /tmp/${TMP_NAME}.enc /tmp/${TMP_NAME}.out
37
38 printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n"
39 printf "\033[1;36mRe-compile\n"
40 printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n"
41
42 make FPGO="use=/tmp/${PGO_PATH}" STRIP=1 -B "$@"
43
44 printf "\033[1;32m\nBuild completed successfully.\033[0m\n\n"