# VC makefile for ANSICON. # Jason Hood, 15 November, 2010. # I've used Visual C++ 2008 Express for the 32-bit version and the 2003 R2 # Platform SDK for the 64-bit version. Since these are entirely separate # environments, define BITS to decide which should be built. Note that the # 64-bit version still requires the 32-bit ANSI32.dll, so both environments # are required and you should build the 32-bit version before the 64-bit. #BITS = 32 #BITS = 64 !IFNDEF BITS BITS = 32 !ENDIF !IF $(BITS) == 32 DIR = x86 !ELSE !IF $(BITS) == 64 DIR = x64 !ELSE !ERROR BITS should be defined to 32 or 64. !ENDIF !ENDIF CC = cl CFLAGS = /nologo /W3 /Ox /GF /D_CRT_SECURE_NO_WARNINGS LIBS = advapi32.lib user32.lib # This is required for the 2003 Platform SDK, but not for Visual Studio 2010. #LIBS64 = bufferoverflowu.lib X86OBJS = x86\proctype.obj x86\injdll32.obj x86\util.obj X64OBJS = x64\proctype.obj x64\injdll64.obj x64\injdll32.obj x64\util.obj {}.c{$(DIR)}.obj: $(CC) /c $(CFLAGS) /Fo$@ $< {}.rc{$(DIR)}.res: rc /fo$@ $< all: ansicon$(BITS) ansicon32: x86 x86\ansicon.exe x86\ANSI32.dll x64\ANSI32.dll ansicon64: x64 x64\ansicon.exe x64\ANSI64.dll x64\ANSI-LLW.exe x86: mkdir x86 x86\ansicon.exe: x86\ansicon.obj $(X86OBJS) x86\ansicon.res $(CC) /nologo /Fe$@ $** $(LIBS) x86\ANSI32.dll: x86\ANSI.obj $(X86OBJS) x86\ansi.res $(CC) /nologo /LD /Fe$@ $** $(LIBS) x64: mkdir x64 x64\ansicon.exe: x64\ansicon.obj $(X64OBJS) x64\ansicon.res $(CC) /nologo /Fe$@ $** $(LIBS) $(LIBS64) x64\ANSI64.dll: x64\ANSI.obj $(X64OBJS) x64\ansi.res $(CC) /nologo /LD /Fe$@ $** $(LIBS) $(LIBS64) x64\ANSI32.dll: x64\ANSI32.obj x64\proctype32.obj x86\injdll32.obj x86\util.obj x86\ansi.res $(CC) /nologo /LD /Fe$@ $** $(LIBS) x64\ANSI-LLW.exe: ANSI-LLW.c $(CC) $(CFLAGS) /Fe$@ /Fo$*.obj $? $(LIBS64) ansicon.c: ansicon.h version.h ansicon.rc: version.h ANSI.c: ansicon.h version.h ANSI.rc: version.h util.c: ansicon.h version.h injdll32.c: ansicon.h injdll64.c: ansicon.h proctype.c: ansicon.h x64\ANSI32.obj: ANSI.c $(CC) /DW32ON64 /c $(CFLAGS) /Fo$@ $? x64\proctype32.obj: proctype.c $(CC) /DW32ON64 /c $(CFLAGS) /Fo$@ $? clean: -del $(DIR)\*.obj $(DIR)\*.res $(DIR)\*.lib $(DIR)\*.exp