141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
|  | ##############################################################################
 | ||
|  | ##
 | ||
|  | ##  Establish build target type for Detours.
 | ||
|  | ##
 | ||
|  | ##  Microsoft Research Detours Package
 | ||
|  | ##
 | ||
|  | ##  Copyright (c) Microsoft Corporation.  All rights reserved.
 | ||
|  | ##
 | ||
|  | 
 | ||
|  | ############################################## Determine Processor Build Type.
 | ||
|  | #
 | ||
|  | # Default the detours architecture to match the compiler target that
 | ||
|  | # has been selected by the user via the VS Developer Command Prompt
 | ||
|  | # they launched.
 | ||
|  | !IF "$(DETOURS_TARGET_PROCESSOR)" == "" && "$(VSCMD_ARG_TGT_ARCH)" != "" | ||
|  | DETOURS_TARGET_PROCESSOR = $(VSCMD_ARG_TGT_ARCH) | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | !IF "$(DETOURS_TARGET_PROCESSOR)" == "" && "$(PROCESSOR_ARCHITEW6432)" != "" | ||
|  | DETOURS_TARGET_PROCESSOR = X86 | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | !IF "$(DETOURS_TARGET_PROCESSOR)" == "" | ||
|  | DETOURS_TARGET_PROCESSOR = $(PROCESSOR_ARCHITECTURE) | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | # Uppercase DETOURS_TARGET_PROCESSOR
 | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:a=A) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:b=B) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:c=C) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:d=D) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:e=E) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:f=F) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:g=G) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:h=H) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:i=I) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:j=J) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:k=K) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:l=L) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:m=M) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:n=N) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:o=O) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:p=P) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:q=Q) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:r=R) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:s=S) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:t=T) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:u=U) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:v=V) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:w=W) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:x=X) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:y=Y) | ||
|  | DETOURS_TARGET_PROCESSOR=$(DETOURS_TARGET_PROCESSOR:z=Z) | ||
|  | 
 | ||
|  | !IF "$(DETOURS_TARGET_PROCESSOR)" == "AMD64" | ||
|  | DETOURS_TARGET_PROCESSOR = X64 | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | 
 | ||
|  | !if "$(DETOURS_TARGET_PROCESSOR:64=)" == "$(DETOURS_TARGET_PROCESSOR)" | ||
|  | DETOURS_32BIT=1 | ||
|  | DETOURS_BITS=32 | ||
|  | !else | ||
|  | DETOURS_64BIT=1 | ||
|  | DETOURS_BITS=64 | ||
|  | !endif | ||
|  | 
 | ||
|  | ########################################## Configure build based on Processor.
 | ||
|  | ##
 | ||
|  | ## DETOURS_OPTION_PROCESSOR: Set this macro if the processor *will* run code
 | ||
|  | ##                           from another ISA (i.e. x86 on x64).
 | ||
|  | ##
 | ||
|  | ##      DETOURS_OPTION_BITS: Set this macro if the processor *may* have
 | ||
|  | ##                           an alternative word size.
 | ||
|  | ##
 | ||
|  | !IF "$(DETOURS_TARGET_PROCESSOR)" == "X64" | ||
|  | #!MESSAGE Building for 64-bit X64.
 | ||
|  | DETOURS_SOURCE_BROWSING = 0 | ||
|  | DETOURS_OPTION_PROCESSOR=X86 | ||
|  | DETOURS_OPTION_BITS=32 | ||
|  | !ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "IA64" | ||
|  | #!MESSAGE Building for 64-bit IA64.
 | ||
|  | DETOURS_OPTION_PROCESSOR=X86 | ||
|  | DETOURS_OPTION_BITS=32 | ||
|  | !ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "X86" | ||
|  | #!MESSAGE Building for 32-bit X86.
 | ||
|  | DETOURS_OPTION_BITS=64 | ||
|  | # Don't set DETOURS_OPTION_PROCESSOR for x64 because we don't *know* that
 | ||
|  | # we'll run on a 64-bit machine.
 | ||
|  | !ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "ARM" | ||
|  | #!MESSAGE Building for 32-bit ARM.
 | ||
|  | !ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "ARM64" | ||
|  | #!MESSAGE Building for 64-bit ARM.
 | ||
|  | !ELSE | ||
|  | !MESSAGE Note: To select the target processor architecture set either | ||
|  | !MESSAGE       PROCESSOR_ARCHITECTURE or DETOURS_TARGET_PROCESSOR. | ||
|  | !MESSAGE | ||
|  | !ERROR Unknown target processor: "$(DETOURS_TARGET_PROCESSOR)" | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | ##############################################################################
 | ||
|  | ##
 | ||
|  | !IF "$(DETOURS_CONFIG)" == "Debug" | ||
|  | DETOURS_DEBUG=1 | ||
|  | !ELSE | ||
|  | DETOURS_DEBUG=0 | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | INCD = $(ROOT)\include | ||
|  | LIBD = $(ROOT)\lib.$(DETOURS_TARGET_PROCESSOR)$(DETOURS_CONFIG) | ||
|  | BIND = $(ROOT)\bin.$(DETOURS_TARGET_PROCESSOR)$(DETOURS_CONFIG) | ||
|  | OBJD = obj.$(DETOURS_TARGET_PROCESSOR)$(DETOURS_CONFIG) | ||
|  | !IF "$(DETOURS_OPTION_PROCESSOR)" != "" | ||
|  | OPTD = $(ROOT)\bin.$(DETOURS_OPTION_PROCESSOR)$(DETOURS_CONFIG) | ||
|  | !ENDIF | ||
|  | 
 | ||
|  | INCDS = $(ROOT)\include | ||
|  | 
 | ||
|  | LIBDS = \
 | ||
|  |         $(ROOT)\lib.x86$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\lib.x64$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\lib.ia64$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\lib.arm$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\lib.arm64$(DETOURS_CONFIG) \
 | ||
|  | 
 | ||
|  | BINDS = \
 | ||
|  |         $(ROOT)\bin.x86$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\bin.x64$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\bin.ia64$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\bin.arm$(DETOURS_CONFIG) \
 | ||
|  |         $(ROOT)\bin.arm64$(DETOURS_CONFIG) \
 | ||
|  | 
 | ||
|  | OBJDS = \
 | ||
|  |         obj.x86$(DETOURS_CONFIG) \
 | ||
|  |         obj.x64$(DETOURS_CONFIG) \
 | ||
|  |         obj.ia64$(DETOURS_CONFIG) \
 | ||
|  |         obj.arm$(DETOURS_CONFIG) \
 | ||
|  |         obj.arm64$(DETOURS_CONFIG) \
 | ||
|  | 
 | ||
|  | ##############################################################################
 |