# # Copyright (C) 2012-2020 Intel Corporation. # SPDX-License-Identifier: MIT # ############################################################## # # This file includes all the test targets as well as all the # non-default build rules and test recipes. # ############################################################## ifneq ($(TARGET),intel64) ifneq ($(TARGET),ia32) $(error Unsupported TARGET '$(TARGET)'. Expected TARGET=intel64 or TARGET=ia32) endif endif # TinyTracer-specific configuration to generate proper DLL name. ifeq ($(TARGET),intel64) BITNESS := 64 else ifeq ($(TARGET),ia32) BITNESS := 32 endif ############################################################## # # Windows SDK (needed for PIN 4.x clang-cl builds) # ############################################################## ifeq ($(OS),Windows_NT) # Auto-generate Windows SDK import-library path when sdk_lib.mk is missing. sdk_lib.mk: find_sdk_win.sh bash find_sdk_win.sh -include sdk_lib.mk ifeq ($(TARGET),intel64) ifdef WINDOWS_SDK_KERNEL32_X64 TOOL_LPATHS += -LIBPATH:$(dir $(WINDOWS_SDK_KERNEL32_X64)) endif else ifeq ($(TARGET),ia32) ifdef WINDOWS_SDK_KERNEL32_X86 TOOL_LPATHS += -LIBPATH:$(dir $(WINDOWS_SDK_KERNEL32_X86)) endif endif endif ############################################################## # # Test targets # ############################################################## ###### Place all generic definitions here ###### # This defines tests which run tools of the same name. This is simply for convenience to avoid # defining the test name twice (once in TOOL_ROOTS and again in TEST_ROOTS). # Tests defined here should not be defined in TOOL_ROOTS and TEST_ROOTS. TEST_TOOL_ROOTS := TinyTracer$(BITNESS) ############################################################## # # Build rules # ############################################################## # This section contains the build rules for all binaries that have special build rules. # See makefile.default.rules for the default build rules. ifeq ($(OS),Windows_NT) EVASION_CHECKS=$(OBJDIR)AntiDebug$(OBJ_SUFFIX) $(OBJDIR)AntiVm$(OBJ_SUFFIX) $(OBJDIR)EvasionWatch$(OBJ_SUFFIX) EXPORTS_INFO=$(OBJDIR)ExportsInfo$(OBJ_SUFFIX) else EVASION_CHECKS= EXPORTS_INFO= endif $(OBJDIR)TinyTracer$(BITNESS)$(PINTOOL_SUFFIX): $(OBJDIR)Util$(OBJ_SUFFIX) $(OBJDIR)SysUtil$(OBJ_SUFFIX) $(OBJDIR)Settings$(OBJ_SUFFIX) $(OBJDIR)TraceLog$(OBJ_SUFFIX) \ $(OBJDIR)TinyTracer$(OBJ_SUFFIX) $(OBJDIR)ModuleInfo$(OBJ_SUFFIX) $(OBJDIR)ProcessInfo$(OBJ_SUFFIX) $(OBJDIR)FuncWatch$(OBJ_SUFFIX) \ $(OBJDIR)TrackReturns$(OBJ_SUFFIX) $(EVASION_CHECKS) $(EXPORTS_INFO) $(LINKER) $(TOOL_LDFLAGS) $(LINK_EXE)$@ $^ $(TOOL_LPATHS) $(TOOL_LIBS)