blob: a88b204b07134a506f0c946cc158d93982baad6a [file] [log] [blame]
LEVEL = ../../..
include $(LEVEL)/Makefile.config
PROG = 7zip-benchmark
RUN_OPTIONS = b
CFLAGS += -DBREAK_HANDLER -DUNICODE -D_UNICODE -I$(PROJ_SRC_DIR)/C \
-I$(PROJ_SRC_DIR)/CPP/myWindows -I$(PROJ_SRC_DIR)/CPP/include_windows \
-I$(PROJ_SRC_DIR)/CPP -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -pthread
CXXFLAGS += -std=gnu++98 -DBREAK_HANDLER -DUNICODE -D_UNICODE -I$(PROJ_SRC_DIR)/C \
-I$(PROJ_SRC_DIR)/CPP/myWindows -I$(PROJ_SRC_DIR)/CPP/include_windows \
-I$(PROJ_SRC_DIR)/CPP -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -pthread
LDFLAGS = -lstdc++ -pthread
Source = \
CPP/myWindows/myGetTickCount.cpp \
CPP/myWindows/wine_date_and_time.cpp \
CPP/myWindows/myAddExeFlag.cpp \
CPP/myWindows/mySplitCommandLine.cpp \
CPP/7zip/UI/Console/BenchCon.cpp \
CPP/7zip/UI/Console/ConsoleClose.cpp \
CPP/7zip/UI/Console/ExtractCallbackConsole.cpp \
CPP/7zip/UI/Console/List.cpp \
CPP/7zip/UI/Console/Main.cpp \
CPP/7zip/UI/Console/MainAr.cpp \
CPP/7zip/UI/Console/OpenCallbackConsole.cpp \
CPP/7zip/UI/Console/PercentPrinter.cpp \
CPP/7zip/UI/Console/UpdateCallbackConsole.cpp \
CPP/7zip/UI/Console/UserInputUtils.cpp \
CPP/Common/CommandLineParser.cpp \
CPP/Common/CRC.cpp \
CPP/Common/IntToString.cpp \
CPP/Common/ListFileUtils.cpp \
CPP/Common/StdInStream.cpp \
CPP/Common/StdOutStream.cpp \
CPP/Common/MyString.cpp \
CPP/Common/StringConvert.cpp \
CPP/Common/StringToInt.cpp \
CPP/Common/UTFConvert.cpp \
CPP/Common/MyWindows.cpp \
CPP/Common/MyVector.cpp \
CPP/Common/Wildcard.cpp \
CPP/Windows/Error.cpp \
CPP/Windows/FileDir.cpp \
CPP/Windows/FileFind.cpp \
CPP/Windows/FileIO.cpp \
CPP/Windows/FileName.cpp \
CPP/Windows/PropVariant.cpp \
CPP/Windows/PropVariantConversions.cpp \
CPP/Windows/Synchronization.cpp \
CPP/Windows/System.cpp \
CPP/Windows/Time.cpp \
CPP/7zip/Common/CreateCoder.cpp \
CPP/7zip/Common/CWrappers.cpp \
CPP/7zip/Common/FilePathAutoRename.cpp \
CPP/7zip/Common/FileStreams.cpp \
CPP/7zip/Common/FilterCoder.cpp \
CPP/7zip/Common/InBuffer.cpp \
CPP/7zip/Common/InOutTempBuffer.cpp \
CPP/7zip/Common/LimitedStreams.cpp \
CPP/7zip/Common/LockedStream.cpp \
CPP/7zip/Common/MemBlocks.cpp \
CPP/7zip/Common/MethodId.cpp \
CPP/7zip/Common/MethodProps.cpp \
CPP/7zip/Common/OffsetStream.cpp \
CPP/7zip/Common/OutBuffer.cpp \
CPP/7zip/Common/OutMemStream.cpp \
CPP/7zip/Common/ProgressMt.cpp \
CPP/7zip/Common/ProgressUtils.cpp \
CPP/7zip/Common/StreamBinder.cpp \
CPP/7zip/Common/StreamObjects.cpp \
CPP/7zip/Common/StreamUtils.cpp \
CPP/7zip/Common/VirtThread.cpp \
CPP/7zip/UI/Common/ArchiveCommandLine.cpp \
CPP/7zip/UI/Common/ArchiveExtractCallback.cpp \
CPP/7zip/UI/Common/ArchiveOpenCallback.cpp \
CPP/7zip/UI/Common/Bench.cpp \
CPP/7zip/UI/Common/DefaultName.cpp \
CPP/7zip/UI/Common/EnumDirItems.cpp \
CPP/7zip/UI/Common/Extract.cpp \
CPP/7zip/UI/Common/ExtractingFilePath.cpp \
CPP/7zip/UI/Common/LoadCodecs.cpp \
CPP/7zip/UI/Common/OpenArchive.cpp \
CPP/7zip/UI/Common/PropIDUtils.cpp \
CPP/7zip/UI/Common/SetProperties.cpp \
CPP/7zip/UI/Common/SortUtils.cpp \
CPP/7zip/UI/Common/TempFiles.cpp \
CPP/7zip/UI/Common/Update.cpp \
CPP/7zip/UI/Common/UpdateAction.cpp \
CPP/7zip/UI/Common/UpdateCallback.cpp \
CPP/7zip/UI/Common/UpdatePair.cpp \
CPP/7zip/UI/Common/UpdateProduce.cpp \
CPP/7zip/Archive/Bz2Handler.cpp \
CPP/7zip/Archive/DeflateProps.cpp \
CPP/7zip/Archive/GzHandler.cpp \
CPP/7zip/Archive/LzmaHandler.cpp \
CPP/7zip/Archive/PpmdHandler.cpp \
CPP/7zip/Archive/SplitHandler.cpp \
CPP/7zip/Archive/XzHandler.cpp \
CPP/7zip/Archive/ZHandler.cpp \
CPP/7zip/Archive/Common/CoderMixer2.cpp \
CPP/7zip/Archive/Common/CoderMixer2MT.cpp \
CPP/7zip/Archive/Common/CrossThreadProgress.cpp \
CPP/7zip/Archive/Common/DummyOutStream.cpp \
CPP/7zip/Archive/Common/FindSignature.cpp \
CPP/7zip/Archive/Common/HandlerOut.cpp \
CPP/7zip/Archive/Common/InStreamWithCRC.cpp \
CPP/7zip/Archive/Common/ItemNameUtils.cpp \
CPP/7zip/Archive/Common/MultiStream.cpp \
CPP/7zip/Archive/Common/OutStreamWithCRC.cpp \
CPP/7zip/Archive/Common/ParseProperties.cpp \
CPP/7zip/Archive/7z/7zCompressionMode.cpp \
CPP/7zip/Archive/7z/7zDecode.cpp \
CPP/7zip/Archive/7z/7zEncode.cpp \
CPP/7zip/Archive/7z/7zExtract.cpp \
CPP/7zip/Archive/7z/7zFolderInStream.cpp \
CPP/7zip/Archive/7z/7zFolderOutStream.cpp \
CPP/7zip/Archive/7z/7zHandler.cpp \
CPP/7zip/Archive/7z/7zHandlerOut.cpp \
CPP/7zip/Archive/7z/7zHeader.cpp \
CPP/7zip/Archive/7z/7zIn.cpp \
CPP/7zip/Archive/7z/7zOut.cpp \
CPP/7zip/Archive/7z/7zProperties.cpp \
CPP/7zip/Archive/7z/7zSpecStream.cpp \
CPP/7zip/Archive/7z/7zUpdate.cpp \
CPP/7zip/Archive/7z/7zRegister.cpp \
CPP/7zip/Archive/Cab/CabBlockInStream.cpp \
CPP/7zip/Archive/Cab/CabHandler.cpp \
CPP/7zip/Archive/Cab/CabHeader.cpp \
CPP/7zip/Archive/Cab/CabIn.cpp \
CPP/7zip/Archive/Cab/CabRegister.cpp \
CPP/7zip/Archive/Tar/TarHandler.cpp \
CPP/7zip/Archive/Tar/TarHandlerOut.cpp \
CPP/7zip/Archive/Tar/TarHeader.cpp \
CPP/7zip/Archive/Tar/TarIn.cpp \
CPP/7zip/Archive/Tar/TarOut.cpp \
CPP/7zip/Archive/Tar/TarUpdate.cpp \
CPP/7zip/Archive/Tar/TarRegister.cpp \
CPP/7zip/Archive/Zip/ZipAddCommon.cpp \
CPP/7zip/Archive/Zip/ZipHandler.cpp \
CPP/7zip/Archive/Zip/ZipHandlerOut.cpp \
CPP/7zip/Archive/Zip/ZipHeader.cpp \
CPP/7zip/Archive/Zip/ZipIn.cpp \
CPP/7zip/Archive/Zip/ZipItem.cpp \
CPP/7zip/Archive/Zip/ZipOut.cpp \
CPP/7zip/Archive/Zip/ZipUpdate.cpp \
CPP/7zip/Archive/Zip/ZipRegister.cpp \
CPP/7zip/Compress/Bcj2Coder.cpp \
CPP/7zip/Compress/Bcj2Register.cpp \
CPP/7zip/Compress/BcjCoder.cpp \
CPP/7zip/Compress/BcjRegister.cpp \
CPP/7zip/Compress/BitlDecoder.cpp \
CPP/7zip/Compress/BranchCoder.cpp \
CPP/7zip/Compress/BranchMisc.cpp \
CPP/7zip/Compress/BranchRegister.cpp \
CPP/7zip/Compress/ByteSwap.cpp \
CPP/7zip/Compress/BZip2Crc.cpp \
CPP/7zip/Compress/BZip2Decoder.cpp \
CPP/7zip/Compress/BZip2Encoder.cpp \
CPP/7zip/Compress/BZip2Register.cpp \
CPP/7zip/Compress/CopyCoder.cpp \
CPP/7zip/Compress/CopyRegister.cpp \
CPP/7zip/Compress/Deflate64Register.cpp \
CPP/7zip/Compress/DeflateDecoder.cpp \
CPP/7zip/Compress/DeflateEncoder.cpp \
CPP/7zip/Compress/DeflateRegister.cpp \
CPP/7zip/Compress/DeltaFilter.cpp \
CPP/7zip/Compress/ImplodeDecoder.cpp \
CPP/7zip/Compress/ImplodeHuffmanDecoder.cpp \
CPP/7zip/Compress/Lzma2Decoder.cpp \
CPP/7zip/Compress/Lzma2Encoder.cpp \
CPP/7zip/Compress/Lzma2Register.cpp \
CPP/7zip/Compress/LzmaDecoder.cpp \
CPP/7zip/Compress/LzmaEncoder.cpp \
CPP/7zip/Compress/LzmaRegister.cpp \
CPP/7zip/Compress/LzOutWindow.cpp \
CPP/7zip/Compress/Lzx86Converter.cpp \
CPP/7zip/Compress/LzxDecoder.cpp \
CPP/7zip/Compress/PpmdDecoder.cpp \
CPP/7zip/Compress/PpmdEncoder.cpp \
CPP/7zip/Compress/PpmdRegister.cpp \
CPP/7zip/Compress/PpmdZip.cpp \
CPP/7zip/Compress/QuantumDecoder.cpp \
CPP/7zip/Compress/ShrinkDecoder.cpp \
CPP/7zip/Compress/ZDecoder.cpp \
CPP/7zip/Crypto/7zAes.cpp \
CPP/7zip/Crypto/7zAesRegister.cpp \
CPP/7zip/Crypto/HmacSha1.cpp \
CPP/7zip/Crypto/MyAes.cpp \
CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp \
CPP/7zip/Crypto/RandGen.cpp \
CPP/7zip/Crypto/Sha1.cpp \
CPP/7zip/Crypto/WzAes.cpp \
CPP/7zip/Crypto/ZipCrypto.cpp \
CPP/7zip/Crypto/ZipStrong.cpp \
C/7zStream.c \
C/Aes.c \
C/Alloc.c \
C/Bra.c \
C/Bra86.c \
C/BraIA64.c \
C/BwtSort.c \
C/Delta.c \
C/HuffEnc.c \
C/LzFind.c \
C/LzFindMt.c \
C/Lzma2Dec.c \
C/Lzma2Enc.c \
C/LzmaDec.c \
C/LzmaEnc.c \
C/MtCoder.c \
C/Ppmd7.c \
C/Ppmd7Dec.c \
C/Ppmd7Enc.c \
C/Ppmd8.c \
C/Ppmd8Dec.c \
C/Ppmd8Enc.c \
C/Sha256.c \
C/Sort.c \
C/Threads.c \
C/Xz.c \
C/XzCrc64.c \
C/XzDec.c \
C/XzEnc.c \
C/XzIn.c \
C/7zCrc.c \
C/7zCrcOpt.c
SUBDIRS = \
C \
CPP/7zip/Archive \
CPP/7zip/Archive/7z \
CPP/7zip/Archive/Cab \
CPP/7zip/Archive/Common \
CPP/7zip/Archive/Tar \
CPP/7zip/Archive/Zip \
CPP/7zip/Common \
CPP/7zip/Compress \
CPP/7zip/Crypto \
CPP/7zip/UI/Common \
CPP/7zip/UI/Console \
CPP/Common \
CPP/Windows \
CPP/myWindows
# We need to define some special rules to compile 7zip since moving
# all of the different source files into one main directory breaks the
# build due to the way 7zip's includes are structured.
define SUBDIR_template
Output/%.o: $(1)/%.c Output/.dir
-$$(CC) $$(CPPFLAGS) $$(CFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -c $$< -o $$@
Output/%.o: $(1)/%.cpp Output/.dir
-$$(CXX) $$(CPPFLAGS) $$(CXXFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -c $$< -o $$@
Output/%.llvm.o: $(1)/%.c Output/.dir
$$(RUNSAFELYLOCAL) /dev/null $$@.compile \
$$(LCC) $$(CPPFLAGS) $$(CFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -c $$< -o $$@
Output/%.llvm.o: $(1)/%.cpp Output/.dir
$$(RUNSAFELYLOCAL) /dev/null $$@.compile \
$$(LCXX) $$(CPPFLAGS) $$(CXXFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -c $$< -o $$@
Output/%.ll: $(1)/%.c Output/.dir
$$(RUNSAFELYLOCAL) /dev/null $$@.compile \
$$(LCC) $$(CPPFLAGS) $$(CFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -S $$< -o $$@ $$(LLVMCC_EMITIR_FLAG)
Output/%.ll: $(1)/%.cpp Output/.dir
$$(RUNSAFELYLOCAL) /dev/null $$@.compile \
$$(LCXX) $$(CPPFLAGS) $$(CXXFLAGS) $$(OPTFLAGS) $$(TARGET_FLAGS) -S $$< -o $$@ $$(LLVMCC_EMITIR_FLAG)
endef
$(foreach dir,$(SUBDIRS),$(eval $(call SUBDIR_template,$(PROJ_SRC_DIR)/$(dir))))
# Since this test just runs the benchmark provided in 7zip, the output
# will be different everytime since the output includes timing information.
PROGRAM_IS_NONDETERMINISTIC=1
include $(LEVEL)/MultiSource/Makefile.multisrc