# A makefile to build ETL on Windows systems # # Build with something like this: # # nmake /nologo /f etl.mak APR_DIR=..\..\APR APU_DIR=..\..\APU SDK_DIR="c:\Program Files\Microsoft Platform SDK" all # # Note: This is pretty much totally untested at this point... # First, set up some variables conditional on DEBUG/NDEBUG !IF "$(DEBUG_BUILD)" == "" INTDIR = Release CFLAGS = /MD /W3 /EHsc /O2 /D "NDEBUG" TARGET = .\libetl.lib !ELSE INTDIR = DEBUG CFLAGS = /MDd /W3 /Gm /EHsc /Zi /Od /D "_DEBUG" TARGET = .\libetlD.lib !ENDIF # Now, check that the various paths we need defined are there... !IF "$(APR_DIR)" == "" !ERROR APR is required. Please define APR_DIR. !ENDIF !IF "$(APU_DIR)" == "" !ERROR APR-Util is required. Please define APU_DIR. !ENDIF !IF "$(SDK_DIR)" == "" !ERROR Win32 Platform SDK is required. Please define SDK_DIR. !ENDIF WIN32_FLAGS = /D WIN32 /D WIN32_LEAN_AND_MEAN /D NOUSER /D NOGDI /D NONLS /D NOCRYPT INCLUDES = $(WIN32_FLAGS) /I ".\include" /I "$(APR_DIR)\include" /I "$(APU_DIR)\include" /I "$(SDK_DIR)\include" CC=cl.exe LIB=link.exe -lib # Now, actually do stuff... LIB_OBJS=$(INTDIR)\common\error.obj \ $(INTDIR)\common\resolver.obj \ $(INTDIR)\common\variables.obj \ $(INTDIR)\data\ddl.obj \ $(INTDIR)\data\parser.obj \ $(INTDIR)\data\lexer.obj \ $(INTDIR)\template\template.obj \ $(INTDIR)\template\parser.obj \ $(INTDIR)\template\lexer.obj all: $(TARGET) $(TARGET): $(LIB_OBJS) $(LIB) $(LIB_OBJS) /nologo /out:"$(TARGET)" {src\common}.c{$(INTDIR)\common}.obj:: $(CC) /c /nologo $(CFLAGS) /I "src\common" $(INCLUDES) /Fo"$(INTDIR)\common\\" /Fd"$(INTDIR)\common\\" $< {src\data}.c{$(INTDIR)\data}.obj:: $(CC) /c /nologo $(CFLAGS) /I "src\data" $(INCLUDES) /Fo"$(INTDIR)\data\\" /Fd"$(INTDIR)\data\\" $< {src\template}.c{$(INTDIR)\template}.obj:: $(CC) /c /nologo $(CFLAGS) /I "src\template" $(INCLUDES) /Fo"$(INTDIR)\template\\" /Fd"$(INTDIR)\template\\" $<