@echo "make build ARCH=x86-64 (This is for 64-bit systems)"
@echo "make build ARCH=x86-32 (This is for 32-bit systems)"
@echo ""
.PHONY: build profile-build embed-signature
build:
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) config-sanity
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) all
profile-build:
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) config-sanity
@echo ""
@echo "Step 0/4. Preparing for profile build."
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_prepare)
@echo ""
@echo "Step 1/4. Building executable for benchmark ..."
@echo "make build ARCH=x86-64 (This is for 64-bit systems)"
@echo "make build ARCH=x86-32 (This is for 32-bit systems)"
@echo ""
.PHONY: build profile-build embed-signature
build:
# $(MAKE) ARCH=$(ARCH) COMP=$(COMP) config-sanity
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) all
profile-build:
# $(MAKE) ARCH=$(ARCH) COMP=$(COMP) config-sanity
@echo ""
@echo "Step 0/4. Preparing for profile build."
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_prepare)
@echo ""
@echo "Step 1/4. Building executable for benchmark ..."
Sanity Check
Sanity Check bezeichnet in der Softwaretechnik eine Plausibilitätsprüfung. Sanity Checks umfassen beispielsweise Plausibilitätsprüfung von Werten, einfache modellbasierte Prüfungen, aber auch Konsistenzprüfungen von Anforderungen.
Die Validierung eines Software-Systems beginnt häufig mit Sanity Checks. Für die vollständige Verifikation eines komplexeren Systems müssen in einem zweiten Schritt zusätzliche Modellprüfungen durchgeführt werden.
Beispiel Wertprüfungen
Im Eingabedialog wird als Sanity Check die Plausibilität des Eingabewerts bezüglich Datentyp und zulässigen Wertebereich geprüft. Diese kann aber zur endgültigen Entscheidung über die Zulässigkeit eines Wertes (Verifikation) nicht ausreichen. Hierzu kann ein Model Checking gegen den aktuellen Modelzustand nötig sein.
Beispiel für Use Cases
Um einen Sanity Check der Use Cases durchzuführen kann eine Robustness Analysis durchgeführt werden.
@echo off
rem GOTO TDM
REM mit minGW kompileren
REM Umgebungsvariablen für Compiler für 64-Bit Anwendungen vorbereiten
CALL C:\minGW\minGWvars64.bat
REM make aufrufen (makefile wird mit den angegebenen Parametern ausgeführt)
make profile-build ARCH=x86-64-modern COMP=mingw strip
REM Für 32-Bit Anwendungen
REM Umgebungsvariablen für Compiler für 32-Bit Anwendungen vorbereiten
REM CALL C:\minGW\minGWvars32.bat
REM make profile-build ARCH=x86-32 COMP=mingw strip
GOTO RAUS
:TDM
REM manuell Reste des letzten compile-Vorgangs löschen
DEL .depend >nul
DEL *.o >nul
REM Umgebungsvariablen für TDM-Compiler vorbereiten (Installiert ist der für 32+64-Bit Anwendungen)
CALL C:\TDM\minGWvars.bat
REM TDM-Version von make aufrufen (makefile wird mit den angegebenen Parametern ausgeführt)
mingw32-make.exe build ARCH=x86-64-modern COMP=mingw strip
:RAUS
@pause
Die 64-BitVersion(C:\minGW\minGWvars64.bat):
@ECHO OFF
PATH=C:\MinGW\mingw64\mingw64\bin;C:\MinGW\mingw64\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1;C:\MinGW\msys\1.0\bin;%PATH%
... und die 32-BitVersion(C:\minGW\minGWvars32.bat):
@ECHO OFF
PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;%PATH%
profile-build
aufgefallen).x86-64-modern
vom 7.12.13 mit den Parametern 32 1 19 erhalten:
TDM 57,768 s
minGW 58,205 s
minGW-profile 55,396 s
abrok-compile 52,542 s (wie macht der das?)
(Dem aufmerksamen Leser ist in der Batch-Datei vielleicht der make-Aufruf mit profile-build aufgefallen)
pacman -S mingw-w64-x86_64-toolchain.
$ make -j profile-build ARCH=x86-64-avx2 COMP=mingw
Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill