160 lines
4.3 KiB
Makefile
Executable File
160 lines
4.3 KiB
Makefile
Executable File
##############################################################################
|
|
##
|
|
## Makefile for Detours.
|
|
##
|
|
## Microsoft Research Detours Package, Version 2.1.
|
|
##
|
|
## Copyright (c) Microsoft Corporation. All rights reserved.
|
|
##
|
|
##############################################################################
|
|
|
|
ROOT = ..
|
|
|
|
INCD = $(ROOT)\include
|
|
LIBD = $(ROOT)\lib
|
|
BIND = $(ROOT)\bin
|
|
|
|
!IF "$(DETOURS_SOURCE_BROWSING)" == ""
|
|
DETOURS_SOURCE_BROWSING = 0
|
|
!ENDIF
|
|
|
|
############################################## Determine Processor Build Type.
|
|
##
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == ""
|
|
DETOURS_TARGET_PROCESSOR = $(PROCESSOR_ARCHITEW6432)
|
|
!ENDIF
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == ""
|
|
DETOURS_TARGET_PROCESSOR = $(PROCESSOR_ARCHITECTURE)
|
|
!ENDIF
|
|
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == "x86"
|
|
DETOURS_TARGET_PROCESSOR=X86
|
|
!ENDIF
|
|
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == "AMD64"
|
|
#!MESSAGE Building for 64-bit AMD64.
|
|
DETOURS_TARGET_PROCESSOR=X64
|
|
!ENDIF
|
|
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == "X64"
|
|
!MESSAGE Building for 64-bit X64.
|
|
DETOURS_SOURCE_BROWSING = 0
|
|
!ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "IA64"
|
|
!MESSAGE Building for 64-bit IA64.
|
|
!ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "X86"
|
|
!MESSAGE Building for 32-bit X86.
|
|
!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_ARCHITECTURE)
|
|
!ENDIF
|
|
|
|
##############################################################################
|
|
##
|
|
CFLAGS=/nologo /W4 /WX /Zi /MTd /Gy /Gm- /Zl /O1
|
|
!IF $(DETOURS_SOURCE_BROWSING)==1
|
|
CFLAGS=$(CFLAGS) /FR
|
|
!ELSE
|
|
CFLAGS=$(CFLAGS) /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x403
|
|
!ENDIF
|
|
|
|
#/D_CRT_INSECURE_DEPRECATE
|
|
|
|
LIBFLAGS=/nologo
|
|
LINKFLAGS=/release
|
|
|
|
!IF "$(DETOURS_TARGET_PROCESSOR)" == "X86"
|
|
|
|
CFLAGS=$(CFLAGS) /Gs /DDETOURS_X86=1 /D_X86_
|
|
LIBFLAGS=$(LIBFLAGS) /debug
|
|
DLLENTRY=_DllMainCRTStartup@12
|
|
LINKFLAGS=$(LINKFLAGS) /machine:x86
|
|
|
|
!ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "X64"
|
|
|
|
CFLAGS=$(CFLAGS) /D_WIN64 /DDETOURS_X64=1 /D_AMD64_ /Wp64
|
|
LIBFLAGS=$(LIBFLAGS)
|
|
DLLENTRY=_DllMainCRTStartup
|
|
LINKFLAGS=$(LINKFLAGS) /machine:amd64
|
|
|
|
!ELSEIF "$(DETOURS_TARGET_PROCESSOR)" == "IA64"
|
|
|
|
CFLAGS=$(CFLAGS) /D_WIN64 /DDETOURS_IA64=1 /D_IA64_ /wd4163 /Wp64
|
|
LIBFLAGS=$(LIBFLAGS)
|
|
DLLENTRY=_DllMainCRTStartup
|
|
LINKFLAGS=$(LINKFLAGS) /machine:ia64
|
|
|
|
!ENDIF
|
|
|
|
OBJS = \
|
|
detours.obj \
|
|
modules.obj \
|
|
disasm.obj \
|
|
image.obj \
|
|
creatwth.obj \
|
|
|
|
##############################################################################
|
|
##
|
|
.SUFFIXES: .cpp .h .obj
|
|
.cpp.obj:
|
|
$(CC) /nologo $(CFLAGS) "/Fd$(LIBD)\detours.pdb" /Fo$*.obj /c "$(MAKEDIR)\$*.cpp"
|
|
|
|
##############################################################################
|
|
|
|
all: dirs \
|
|
"$(BIND)\detoured.dll" \
|
|
"$(LIBD)\detours.lib" \
|
|
"$(INCD)\detours.h" \
|
|
!IF $(DETOURS_SOURCE_BROWSING)==1
|
|
detours.bsc \
|
|
!endif
|
|
|
|
##############################################################################
|
|
|
|
clean:
|
|
@-del *.obj *.pdb *.ilk *.exe *.sbr *.bsc *.res *~ 2>nul
|
|
@-del $(LIBD)\detours.pdb $(LIBD)\detours.lib 2>nul
|
|
@-del $(BIND)\detoured.pdb $(BIND)\detoured.pdb 2>nul
|
|
|
|
##############################################################################
|
|
|
|
dirs:
|
|
if not exist "$(INCD)" mkdir "$(INCD)"
|
|
if not exist "$(LIBD)" mkdir "$(LIBD)"
|
|
if not exist "$(BIND)" mkdir "$(BIND)"
|
|
|
|
detours.bsc : $(OBJS)
|
|
bscmake /v /n /o $@ $(OBJS:.obj=.sbr)
|
|
|
|
"$(ROOT)\lib\detours.lib" : $(OBJS)
|
|
lib $(LIBFLAGS) /out:$@ $(OBJS)
|
|
|
|
"$(ROOT)\include\detours.h" : detours.h
|
|
copy detours.h $@
|
|
|
|
detoured.res : detoured.rc
|
|
rc detoured.rc
|
|
|
|
$(BIND)\detoured.dll: detoured.cpp detoured.res
|
|
cl /LD $(CFLAGS) /Fe$@ /Fd$(BIND)\detoured.pdb detoured.cpp \
|
|
/link $(LINKFLAGS) /base:0xf000000 /incremental:no /subsystem:console \
|
|
/entry:DllMain /implib:$(LIBD)\detoured.lib \
|
|
/export:Detoured kernel32.lib detoured.res
|
|
|
|
$(BIND)\detoured.bsc : detoured.obj
|
|
bscmake /v /n /o $@ detoured.sbr
|
|
|
|
detours.obj : detours.cpp detours.h
|
|
modules.obj : modules.cpp detours.h
|
|
disasm.obj : disasm.cpp detours.h
|
|
image.obj : image.cpp detours.h
|
|
creatwth.obj : creatwth.cpp detours.h
|
|
|
|
test: all
|
|
cd $(MAKEDIR)\..\samples\slept
|
|
nmake /nologo test
|
|
cd $(MAKEDIR)
|
|
|
|
################################################################# End of File.
|