From 0fbc7f1fb9af0329e39230d4bf2fab3541f925d3 Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Sat, 31 Oct 2020 16:33:53 +0100 Subject: [PATCH] Added build script for Windows. --- Makefile | 9 +- Slunk.props | 14 + etc/utils/win32/StdDisclaimer.html | 24 + etc/utils/win32/UnxUtilsDist.html | 660 ++++++++++++++++++++++++++++ etc/utils/win32/cecho.exe | Bin 0 -> 6144 bytes etc/utils/win32/head.exe | Bin 0 -> 24064 bytes etc/utils/win32/rand.exe | Bin 0 -> 5120 bytes frontend/SlunkCrypt.vcxproj | 30 +- libslunkcrypt/libSlunkCrypt.vcxproj | 30 +- mk-profiled.cmd | 53 +++ mk-profiled.sh | 43 +- 11 files changed, 823 insertions(+), 40 deletions(-) create mode 100644 Slunk.props create mode 100644 etc/utils/win32/StdDisclaimer.html create mode 100644 etc/utils/win32/UnxUtilsDist.html create mode 100644 etc/utils/win32/cecho.exe create mode 100644 etc/utils/win32/head.exe create mode 100644 etc/utils/win32/rand.exe create mode 100644 mk-profiled.cmd diff --git a/Makefile b/Makefile index 8979b8c..5323434 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ DEBUG ?= 0 ASAN ?= 0 STATIC ?= 0 FPGO ?= 0 +STRIP ?= 0 MARCH ?= native MTUNE ?= native @@ -21,19 +22,17 @@ SUBDIR_LIB := libslunkcrypt # --------------------------------------------------------------------------- CFLAGS = -I$(SUBDIR_LIB)/include -Wall -Wno-trigraphs -march=$(MARCH) -mtune=$(MTUNE) +LDFLGS = ifeq ($(DEBUG),1) CONFIG := _g CFLAGS += -Og -g - LDFLGS := else ifeq ($(ASAN),1) CONFIG := _a CFLAGS += -O1 -g -fsanitize=address -fno-omit-frame-pointer - LDFLGS := else CONFIG := CFLAGS += -O3 -DNDEBUG - LDFLGS := -s endif ifneq ($(FPGO),0) @@ -52,6 +51,10 @@ ifeq ($(filter %mingw32 %-windows-gnu,$(MACHINE)),) LDFLGS += -lpthread endif +ifneq ($(STRIP),0) + LDFLGS += -s +endif + ifeq ($(STATIC),1) LDFLGS += -static endif diff --git a/Slunk.props b/Slunk.props new file mode 100644 index 0000000..5f534de --- /dev/null +++ b/Slunk.props @@ -0,0 +1,14 @@ + + + + + false + + + + + + $(XPDeprecationWarning) + + + \ No newline at end of file diff --git a/etc/utils/win32/StdDisclaimer.html b/etc/utils/win32/StdDisclaimer.html new file mode 100644 index 0000000..3122f77 --- /dev/null +++ b/etc/utils/win32/StdDisclaimer.html @@ -0,0 +1,24 @@ + + + + +Disclaimer + + + + +

Disclaimer

+ +

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE  CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ +

Karl M. Syring

+ + diff --git a/etc/utils/win32/UnxUtilsDist.html b/etc/utils/win32/UnxUtilsDist.html new file mode 100644 index 0000000..1669fe9 --- /dev/null +++ b/etc/utils/win32/UnxUtilsDist.html @@ -0,0 +1,660 @@ + + + + + + +Native Win32 ports of some GNU utilities + + + + + + + + +
+ + + + +
GNU utilities for Win32
+


+ This are some ports of common GNU utilities to native + Win32. In this context, native means the executables do only depend on the Microsoft + C-runtime (msvcrt.dll) and not an emulation layer like that provided by Cygwin tools.
+

+

Download:

+
+

by http: UnxUtils.zip
+ latest updates (after 14-04-03):  UnxUpdates.zip

+
+

Source code:

+
+

I have started an Open source project at http://unxutils.sourceforge.net. There is a +   CVS repository of all sources, even if the changes to the + original GNU code are trivial. The repository can be accessed via anonymous CVS with the + command
+
cvs + -d:pserver:anonymous@cvs.UnxUtils.sourceforge.net:/cvsroot/unxutils login

+
+
+

The following program versions are covered:

+
+

bc-1.05
+ bison-1.28
+ bzip2-1.0.2
+ diffutils-2.7
+ fileutils-3.16
+ findutils-4.1
+ flex-2.5.4
+ gawk-3.1.0
+ grep-2.4.2
+ gsar110
+ gzip-1.2.4
+ indent-2.2.9
+ jwhois-2.4.1
+ less-340
+ m4-1.4
+ make-3.78.1
+ patch-2.5
+ recode-3.6
+ rman-3.0.7
+ sed-3.02
+ shellutils-1.9.4
+ tar-1.12
+ textutils-2.1

+ unrar-3.00
+ wget-1.8.2
+ which-2.4

+
+

Standard behavior:

+
    +
  • forward as well as backward slashes in file + paths are accepted.

    +
  • +
+

What is new:

+


+    14-04-03

+
    +
  • New edition

    +
  • +
  • The programs are in use on all continents of + earth, including Antarctica. Still no users on Mars.

    +
  • +
+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Program

+

Notes

+
agrep.exegot it from here: http://www.tgries.de/agrep/
ansi2knr.exe
basename.exe
bison.exe
bzip2.exeJulian Sewards alternative + compressor
bunzip2.exe
bzip2recover.exe
cat.exe
chgrp.exedummy
chmod.exe
chown.exedummy
cksum.exe
cmp.exe
comm.exe
compress.exefor (de)compressing .Z files; this is actually a program + called ncompress and was found on one of  the Linux mirrors
cp.exeworks only on NT, does real hardlinks on NTFS
csplit.exe
cut.exe
date.exe
dd.exe
df.exedummy
diff.exe
diff3.exe
dirname.exe
du.exe
echo.exe
egrep.exe
env.exedummy
expand.exe
expr.exe
factor.exe
fgrep.exe
find.exe
    +
  • Example of command line under Cmd/Command shell:
    + find -name *.txt -exec cat {} ;
  • +
+
flex.exe
fmt.exe
fold.exe
gawk.exeinput files are opened in text mode
make.exeFrom v3.77 upwards, make searches for a sh.exe on the path. If + it does not find one, it switches to win32 make mode that is it uses intermediate batch + files for command processing.
+ This is fine until your makefile tries to execute something like mkdir, which will invoke + the internal mkdir from cmd.exe or command.com. As the results may not be to your liking, + you may prefer to use the sh.exe provide here.
grep.exe
gsar.exe
gunzip.exe
gzip.exe
head.exe
id.exedummy
install.exe
join.exe
less.exe
ln.exeworks only on NT, does real hardlinks on NTFS
logname.exe
ls.exe
m4.exe
md5sum.exe
mkdir.exe
mkfifo.exedummy
mknod.exedummy
mv.exe
mvdir.exe
nl.exe
od.exe
paste.exe
patch.exe
pathchk.exe
pr.exe
printenv.exe
printf.exe
ptx.exe
recode.exe
rm.exe
rman.exePolyglotMan by Thomas A. Phelps ( source)
rmdir.exe
sdiff.exe
sed.exe
seq.exe
sleep.exe
sort.exe
sh.exerenamed zsh - this is no replacement for the Cygwin bash
shar.exeonly works with -T (text) option
split.exe
stego.exestego -E encode.me -T words.txt
+
Encodes file encode.me as gibberish text using words from the words.txt file to + stdout. If the -T option is omitted, stego looks for a file called "words" in + the current directory. Of course, the -D option will decode the input file; remember to + redistribute words.txt together with the encoded file.
+ The purpose of this program is to disguise binary files as a kind of text file or to drive + your coworkers mad.
su.exedummy
sum.exe
sync.exe
tac.exe
tail.exe
tar.exe
    +
  • only forward slashes are accepted
  • +
  • the -z option (compression) does not work
  • +
  • no remote archives
  • +
  • works only on NT, does real hardlinks on NTFS
  • +
+
tee.exe
test.exe
touch.exe
tr.exe
uname.exe
unexpand.exe
uniq.exe
unrar.exeThis is unrar 3.00 beta 7, which seems to have been + "free". Works good enough.
unshar.exe
uudecode.exe
uuencode.exe
wc.exe
wget.exewget 1.8.2 builds out of the box with MS Visual C
which.exedoes not search the current directory
whoami.exe
xargs.exe
yes.exe
zcat.exe

Additional + programs

pclip.exeput the Windows clipboard text to stdout
gclip.exeget  the Windows clipboard text from stdin
+ Example: run the text from the clipboard through sed and put the result back
+                + pclip | sed "s/string1/string2/g" | gclip
gplay.exeMy minimalist console multimedia player using DirectShow. With
+ gplay filename | URL
+ you should be able to play just everything, as long as Microsoft supports it.
+
+ +

md5 sums

+ +
+ +

Links:

+ +

The gcc compiler for Win32:
+   http://www.mingw.org

+Digital Mars compiler:
+
   http://www.digitalmars.com
+A zsh shell for Win32:
+   ftp://ftp.blarg.net/users/amol/zsh
+The home of vim, has a Win32 version:

+
   http://www.vim.org
+An emacs for NT:

+
   http://www.gnu.org/software/emacs/windows/ntemacs.html
+The CVS version control system:
+
   http://www.cvshome.org
+   http://www.cvsnt.org

+A free IDE for the Win32 gcc:
+  VIDE

+ +

José Fonsecas site with related stuff:
+     http://jrfonseca.dyndns.org/projects/gnu-win32
+HTML man pages for the GNU utilities:
+     http://www.fsf.org/manual/manual.html
+An Un*x shell scripting resource:
+     http://www.shelldorado.com/
+Another source of unixish stuff:
+     http://virtunix.itribe.net

+ +

Useful free NT system utilities:
+     http://www.sysinternals.com

+Some hints on cloning your system with dd:
+     http://www.rajeevnet.com/hacks_hints/os_clone/os_cloning.html

+Programs missing from this distribution, especially a command line registry editor.
+     http://www.dmst.aueb.gr/dds/sw/outwit
+
+The GNU Privacy Guard:
+     http://www.gnupg.org

+zip and unzip from the Infozip distribution:
+     http://www.info-zip.org/pub/infozip

+ +

An Un*x emulation on Win32:
+     http://www.cygwin.com
+Another Un*x emulation on Win32:
+     http://www.research.att.com/sw/tools/uwin/
+Windows Services for UNIX, integrates the Interix subsystem:
+     http://www.microsoft.com/windows/sfu/productinfo/overview/default.asp

+ +
+ +

Read my standard disclaimer: (really?)
+Last change on 15-04-03 by Karl M. Syring (bug reports +are welcome)
+Original location of this page: http://www.weihenstephan.de/~syring/win32/UnxUtils.html

+ + + + + + + diff --git a/etc/utils/win32/cecho.exe b/etc/utils/win32/cecho.exe new file mode 100644 index 0000000000000000000000000000000000000000..1fb16243d2e87041a0f06d6b3ec76e077049d109 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/frontend/SlunkCrypt.vcxproj b/frontend/SlunkCrypt.vcxproj index 78498d7..169e326 100644 --- a/frontend/SlunkCrypt.vcxproj +++ b/frontend/SlunkCrypt.vcxproj @@ -104,57 +104,63 @@ + + + + + + true - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt true - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt diff --git a/libslunkcrypt/libSlunkCrypt.vcxproj b/libslunkcrypt/libSlunkCrypt.vcxproj index 0f8089e..ceac03e 100644 --- a/libslunkcrypt/libSlunkCrypt.vcxproj +++ b/libslunkcrypt/libSlunkCrypt.vcxproj @@ -90,57 +90,63 @@ + + + + + + true - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ libslunkcrypt-1 false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ libslunkcrypt-1 false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt-$(PlatformShortName)-1 true - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ libslunkcrypt-1 false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ libslunkcrypt-1 false - $(SolutionDir)bin\$(Platform)\$(Configuration)\ - $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ slunkcrypt-$(PlatformShortName)-1 diff --git a/mk-profiled.cmd b/mk-profiled.cmd new file mode 100644 index 0000000..6b20718 --- /dev/null +++ b/mk-profiled.cmd @@ -0,0 +1,53 @@ +@echo off +setlocal enabledelayedexpansion + +set ECHO="%~dp0.\etc\utils\win32\cecho.exe" +if "%MSVC_PATH%"=="" ( + set "MSVC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC" +) + +if not exist "%MSVC_PATH%\Auxiliary\Build\vcvarsall.bat" ( + %ECHO% red "\nMSVC not found. Please check MSVC_PATH and try again^!\n" + pause + goto:eof +) + +for %%p in (x86,x64) do ( + call "%MSVC_PATH%\Auxiliary\Build\vcvarsall.bat" %%p + set "TEMP_NAME=!RANDOM!-!RANDOM!" + %ECHO% white "\n------------------------------------------------------------------------------" + %ECHO% white "Clean [%%p]" + %ECHO% white "------------------------------------------------------------------------------\n" + MSBuild.exe /property:Configuration=Release /property:Platform=%%p /target:Clean /verbosity:normal "%~dp0\Slunk.sln" + if not "!ERRORLEVEL!"=="0" goto:BuildFailed + %ECHO% white "\n------------------------------------------------------------------------------" + %ECHO% white "Instrument [%%p]" + %ECHO% white "------------------------------------------------------------------------------\n" + MSBuild.exe /property:Configuration=Release /property:Platform=%%p /property:WholeProgramOptimization=PGInstrument /property:LinkTimeCodeGeneration=PGInstrument /target:Rebuild /verbosity:normal "%~dp0\Slunk.sln" + if not "!ERRORLEVEL!"=="0" goto:BuildFailed + %ECHO% white "\n------------------------------------------------------------------------------" + %ECHO% white "Profiling [%%p]" + %ECHO% white "------------------------------------------------------------------------------\n" + "%~dp0.\etc\utils\win32\rand.exe" | "%~dp0.\etc\utils\win32\head.exe" -c 104857600 > "%TMP%\!TEMP_NAME!.dat" + if not "%ERRORLEVEL%"=="0" goto:BuildFailed + "%~dp0.\bin\%%p\Release\slunkcrypt.exe" --self-test + if not "!ERRORLEVEL!"=="0" goto:BuildFailed + "%~dp0.\bin\%%p\Release\slunkcrypt.exe" --encrypt "q4cmK7FEK7@v" "%TMP%\!TEMP_NAME!.dat" "%TMP%\!TEMP_NAME!.enc" + if not "!ERRORLEVEL!"=="0" goto:BuildFailed + "%~dp0.\bin\%%p\Release\slunkcrypt.exe" --decrypt "q4cmK7FEK7@v" "%TMP%\!TEMP_NAME!.enc" "%TMP%\!TEMP_NAME!.out" + if not "!ERRORLEVEL!"=="0" goto:BuildFailed + del /F "%TMP%\!TEMP_NAME!.dat" "%TMP%\!TEMP_NAME!.enc" "%TMP%\!TEMP_NAME!.out" + %ECHO% white "\n------------------------------------------------------------------------------" + %ECHO% white "Re-compile [%%p]" + %ECHO% white "------------------------------------------------------------------------------\n" + MSBuild.exe /property:Configuration=Release /property:Platform=%%p /property:WholeProgramOptimization=PGOptimize /property:LinkTimeCodeGeneration=PGOptimization /target:Build /verbosity:normal "%~dp0\Slunk.sln" + if not "!ERRORLEVEL!"=="0" goto:BuildFailed +) + +%ECHO% green "\nBuild completed successfully.\n" +pause +goto:eof + +:BuildFailed +%ECHO% red "\nBuild has failed ^!^!^!\n" +pause diff --git a/mk-profiled.sh b/mk-profiled.sh index d2b140e..dca22d5 100755 --- a/mk-profiled.sh +++ b/mk-profiled.sh @@ -1,27 +1,44 @@ #!/bin/bash set -e -readonly PLATFORM="$(uname -a)" +PLATFORM="$(uname -a)" unset SUFFIX if [[ "${PLATFORM}" == MINGW* || "${PLATFORM}" == CYGWIN* ]]; then SUFFIX=".exe" fi -echo -e "\n------------------------------------------------------------------------------" -echo -e "Instrument" -echo -e "------------------------------------------------------------------------------\n" +[ -e /dev/urandom ] && RANDOM_SOURCE="/dev/urandom" || RANDOM_SOURCE="/dev/random" +TMP_NAME="$(tr -dc 'a-zA-Z0-9' < ${RANDOM_SOURCE} | fold -w 12 | head -n 1)" +PGO_PATH="$(tr -dc 'a-zA-Z0-9' < ${RANDOM_SOURCE} | fold -w 12 | head -n 1)" +trap "printf \"\033[1;31m\nBuild has failed !!!\033[0m\n\n\"" ERR +trap "rm -rf /tmp/${TMP_NAME}.dat /tmp/${TMP_NAME}.enc /tmp/${TMP_NAME}.out /tmp/${PGO_PATH}" EXIT + +printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n" +printf "\033[1;36mClean\n" +printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n" make clean -make FPGO=generate -B "$@" -echo -e "\n------------------------------------------------------------------------------" -echo -e "Profiling" -echo -e "------------------------------------------------------------------------------\n" +printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n" +printf "\033[1;36mInstrument\n" +printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n" -./frontend/bin/slunkcrypt${SUFFIX} -t +make FPGO="generate=/tmp/${PGO_PATH}" -B "$@" -echo -e "\n------------------------------------------------------------------------------" -echo -e "Re-compile" -echo -e "------------------------------------------------------------------------------\n" +printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n" +printf "\033[1;36mProfiling\n" +printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n" -make FPGO=use -B "$@" +dd bs=1024 count=102400 status=none < ${RANDOM_SOURCE} > /tmp/${TMP_NAME}.dat + +./frontend/bin/slunkcrypt${SUFFIX} --self-test +./frontend/bin/slunkcrypt${SUFFIX} --encrypt 'q4cmK7FEK7@v' /tmp/${TMP_NAME}.dat /tmp/${TMP_NAME}.enc +./frontend/bin/slunkcrypt${SUFFIX} --decrypt 'q4cmK7FEK7@v' /tmp/${TMP_NAME}.enc /tmp/${TMP_NAME}.out + +printf "\033[1;36m\n------------------------------------------------------------------------------\033[0m\n" +printf "\033[1;36mRe-compile\n" +printf "\033[1;36m------------------------------------------------------------------------------\033[0m\n\n" + +make FPGO="use=/tmp/${PGO_PATH}" STRIP=1 -B "$@" + +printf "\033[1;32m\nBuild completed successfully.\033[0m\n\n"