3 # This is a Microsoft Visual C NMAKE makefile to use in building the
7 # nmake -f Makefile.vc clean all
9 # To build a debug build, add DEBUG=1 to the command line. To build
10 # for profiling, add PROFILE=1. eg:
11 # nmake -f Makefile.vc DEBUG=1 clean all
14 # Copyright (C) 2005 Pat Thoyts <patthoyts@users.sourceforge.net>
35 # If you have sqlite3 installed and want to build the extension add
36 # SQLITE3DIR=c:\path\to\sqlite3
42 SQLITE_INC=-I$(SQLITE3DIR)
43 SQLITE_LIB=-libpath:$(SQLITE3DIR) libsqlite3.lib
46 #-------------------------------------------------------------------------
47 # There should be no need to edit below this point.
48 #-------------------------------------------------------------------------
52 CFLAGS =-Od -Zi -GZ -MDd -D_DEBUG
53 LDFLAGS=-debug:full -debugtype:cv
57 CFLAGS =-Od -Zi -Op -Gs -MD -DNDEBUG
58 LDFLAGS=-debug -opt:ref -opt:icf,3
60 CFLAGS =-O2 -Otip -Gs -MD -DNDEBUG
61 LDFLAGS=-release -opt:ref -opt:icf,3
67 LDFLAGS=$(LDFLAGS) -profile -map
70 !if "$(OS)" == "Windows_NT"
71 RMDIR = rmdir /s /q >NUL
77 TMPDIR =$(OUTDIR)\Objects
82 CFLAGS =$(CFLAGS) -W3 -YX -Fp$(TMPDIR)^\
87 all: jim aio win32 win32com win32api dll #sqlite3 eventloop
88 jim: setup $(OUTDIR)\jim.exe
89 jimwish: setup $(OUTDIR)\jimwish.exe
90 dll: setup $(OUTDIR)\jim.dll
91 aio: setup $(OUTDIR)\jim-aio-1.0.dll
92 sqlite3: setup $(OUTDIR)\jim-sqlite3-1.0.dll
93 eventloop: setup $(OUTDIR)\jim-eventloop-1.0.dll
94 win32: setup $(OUTDIR)\jim-win32-1.0.dll
95 win32api: setup $(OUTDIR)\jim-win32api-1.0.dll
96 win32com: setup $(OUTDIR)\jim-win32com-1.0.dll
98 $(OUTDIR)\jim.exe: $(TMPDIR)\jim.obj $(TMPDIR)\jimsh.obj
99 @$(LD) $(LDFLAGS) -out:$@ $** $(LIBS)
101 $(OUTDIR)\jim.dll: $(TMPDIR)\jim.dll.obj
102 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS)
103 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
105 $(OUTDIR)\jim-win32-1.0.dll: $(TMPDIR)\jim-win32.obj
106 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) >NUL
107 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
109 $(OUTDIR)\jim-win32api-1.0.dll: $(TMPDIR)\jim-win32api.obj
110 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) >NUL
111 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
113 $(OUTDIR)\jim-win32com-1.0.dll: $(TMPDIR)\jim-win32com.obj
114 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) >NUL
115 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
117 $(OUTDIR)\jim-aio-1.0.dll: $(TMPDIR)\jim-aio.obj
118 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) >NUL
119 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
121 $(OUTDIR)\jim-eventloop-1.0.dll: $(TMPDIR)\jim-eventloop.obj
122 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) >NUL
123 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
125 $(OUTDIR)\jim-sqlite3-1.0.dll: $(TMPDIR)\jim-sqlite3.obj
127 @$(LD) $(LDFLAGS) -dll -out:$@ $** $(LIBS) $(SQLITE_LIB) >NUL
128 @if exist $(@:.dll=.exp) $(DEL) $(@:.dll=.exp)
130 @echo cannot build sqlite3 extension - SQLITE3DIR not defined
133 $(OUTDIR)\jimwish.exe: $(TMPDIR)\jim.obj $(TMPDIR)\jimwish.obj
134 @$(LD) $(LDFLAGS) -out:$@ $** $(LIBS) user32.lib
136 .PHONY: all jim dll win32 win32api win32com jim jimwish aio sqlite3
138 #-------------------------------------------------------------------------
140 @if not exist $(OUTDIR) mkdir $(OUTDIR)
141 @if not exist $(TMPDIR) mkdir $(TMPDIR)
144 $(OUTDIR)\jim.exe test.tcl
147 @if exist $(TMPDIR)\NUL $(RMDIR) $(TMPDIR) >NUL
150 @if exist $(OUTDIR)\NUL $(RMDIR) $(OUTDIR) >NUL
152 #-------------------------------------------------------------------------
156 {$(SRCDIR)}.c{$(TMPDIR)}.obj::
157 @$(CC) $(CFLAGS) $(DEFS) $(INC) -Fo$(TMPDIR)\ -c @<<
161 {$(SRCDIR)}.cpp{$(TMPDIR)}.obj::
162 @$(CC) $(CFLAGS) $(DEFS) $(INC) -Fo$(TMPDIR)\ -c @<<
166 $(TMPDIR)\jim.obj: $(SRCDIR)\jim.c $(SRCDIR)\jim.h
167 $(TMPDIR)\jim-aio.obj: $(SRCDIR)\jim-aio.c $(SRCDIR)\jim.h
168 $(TMPDIR)\jim-eventloop.obj: $(SRCDIR)\jim-eventloop.c $(SRCDIR)\jim.h
169 $(TMPDIR)\jim-win32.obj: $(SRCDIR)\jim-win32.c $(SRCDIR)\jim.h
170 $(TMPDIR)\jim-win32api.obj: $(SRCDIR)\jim-win32api.c $(SRCDIR)\jim.h
171 $(TMPDIR)\jim-win32com.obj: $(SRCDIR)\jim-win32com.c $(SRCDIR)\jim.h
172 $(TMPDIR)\jim.dll.obj: $(SRCDIR)\jim.c $(SRCDIR)\jim.h
173 @$(CC) -DBUILD_Jim $(CFLAGS) $(DEFS) $(INC) -Fo$@ -c $(SRCDIR)\jim.c
174 $(TMPDIR)\jim-sqlite3.obj: $(SRCDIR)\jim-sqlite3.c $(SRCDIR)\jim.h
176 @$(CC) $(CFLAGS) $(DEFS) $(INC) $(SQLITE_INC) -Fo$(TMPDIR)\ -c $(SRCDIR)\jim-sqlite3.c
178 @echo cannot build sqlite3 extension - SQLITE3DIR not defined
181 #-------------------------------------------------------------------------