1 | # makefile.vc -- -*- Makefile -*-
|
---|
2 | #
|
---|
3 | # Microsoft Visual C++ makefile for use with nmake.exe v1.62+ (VC++ 5.0+)
|
---|
4 | #
|
---|
5 | # This makefile is based upon the Tcl 8.4 Makefile.vc and modified to
|
---|
6 | # make it suitable as a general package makefile. Look for the word EDIT
|
---|
7 | # which marks sections that may need modification. As a minumum you will
|
---|
8 | # need to change the PROJECT, DOTVERSION and DLLOBJS variables to values
|
---|
9 | # relevant to your package.
|
---|
10 | #
|
---|
11 | # See the file "license.terms" for information on usage and redistribution
|
---|
12 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
---|
13 | #
|
---|
14 | # Copyright (c) 1995-1996 Sun Microsystems, Inc.
|
---|
15 | # Copyright (c) 1998-2000 Ajuba Solutions.
|
---|
16 | # Copyright (c) 2001 ActiveState Corporation.
|
---|
17 | # Copyright (c) 2001-2002 David Gravereaux.
|
---|
18 | # Copyright (c) 2003-2006 Pat Thoyts
|
---|
19 | #
|
---|
20 | #-------------------------------------------------------------------------
|
---|
21 | # RCS: @(#)$Id: makefile.vc,v 1.10 2008/06/18 11:01:39 patthoyts Exp $
|
---|
22 | #-------------------------------------------------------------------------
|
---|
23 |
|
---|
24 | # Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR)
|
---|
25 | # or with the MS Platform SDK (MSSDK). Visual Studio .NET 2003 and 2005 define
|
---|
26 | # VCINSTALLDIR instead. The MSVC Toolkit release defines yet another.
|
---|
27 | !if !defined(MSDEVDIR) && !defined(MSVCDIR) && !defined(MSSDK) && !defined(VCINSTALLDIR) && !defined(VCToolkitInstallDir)
|
---|
28 | MSG = ^
|
---|
29 | You need to run vcvars32.bat from Developer Studio or setenv.bat from the^
|
---|
30 | Platform SDK first to setup the environment. Jump to this line to read^
|
---|
31 | the build instructions.
|
---|
32 | !error $(MSG)
|
---|
33 | !endif
|
---|
34 |
|
---|
35 | #------------------------------------------------------------------------------
|
---|
36 | # HOW TO USE this makefile:
|
---|
37 | #
|
---|
38 | # 1) It is now necessary to have %MSVCDir% set in the environment. This is
|
---|
39 | # used as a check to see if vcvars32.bat had been run prior to running
|
---|
40 | # nmake or during the installation of Microsoft Visual C++, MSVCDir had
|
---|
41 | # been set globally and the PATH adjusted. Either way is valid.
|
---|
42 | #
|
---|
43 | # You'll need to run vcvars32.bat contained in the MsDev's vc(98)/bin
|
---|
44 | # directory to setup the proper environment, if needed, for your current
|
---|
45 | # setup. This is a needed bootstrap requirement and allows the swapping of
|
---|
46 | # different environments to be easier.
|
---|
47 | #
|
---|
48 | # 2) To use the Platform SDK (not expressly needed), run setenv.bat after
|
---|
49 | # vcvars32.bat according to the instructions for it. This can also turn on
|
---|
50 | # the 64-bit compiler, if your SDK has it.
|
---|
51 | #
|
---|
52 | # 3) Targets are:
|
---|
53 | # all -- Builds everything.
|
---|
54 | # <project> -- Builds the project (eg: nmake sample)
|
---|
55 | # test -- Builds and runs the test suite.
|
---|
56 | # install -- Installs the built binaries and libraries to $(INSTALLDIR)
|
---|
57 | # in an appropriate subdirectory.
|
---|
58 | # clean/realclean/distclean -- varying levels of cleaning.
|
---|
59 | #
|
---|
60 | # 4) Macros usable on the commandline:
|
---|
61 | # INSTALLDIR=<path>
|
---|
62 | # Sets where to install Tcl from the built binaries.
|
---|
63 | # C:\Progra~1\Tcl is assumed when not specified.
|
---|
64 | #
|
---|
65 | # OPTS=static,msvcrt,staticpkg,threads,symbols,profile,loimpact,none
|
---|
66 | # Sets special options for the core. The default is for none.
|
---|
67 | # Any combination of the above may be used (comma separated).
|
---|
68 | # 'none' will over-ride everything to nothing.
|
---|
69 | #
|
---|
70 | # static = Builds a static library of the core instead of a
|
---|
71 | # dll. The shell will be static (and large), as well.
|
---|
72 | # msvcrt = Effects the static option only to switch it from
|
---|
73 | # using libcmt(d) as the C runtime [by default] to
|
---|
74 | # msvcrt(d). This is useful for static embedding
|
---|
75 | # support.
|
---|
76 | # staticpkg = Effects the static option only to switch
|
---|
77 | # tclshXX.exe to have the dde and reg extension linked
|
---|
78 | # inside it.
|
---|
79 | # nothreads = Turns off multithreading support (not recommended)
|
---|
80 | # thrdalloc = Use the thread allocator (shared global free pool).
|
---|
81 | # symbols = Adds symbols for step debugging.
|
---|
82 | # profile = Adds profiling hooks. Map file is assumed.
|
---|
83 | # loimpact = Adds a flag for how NT treats the heap to keep memory
|
---|
84 | # in use, low. This is said to impact alloc performance.
|
---|
85 | #
|
---|
86 | # STATS=memdbg,compdbg,none
|
---|
87 | # Sets optional memory and bytecode compiler debugging code added
|
---|
88 | # to the core. The default is for none. Any combination of the
|
---|
89 | # above may be used (comma separated). 'none' will over-ride
|
---|
90 | # everything to nothing.
|
---|
91 | #
|
---|
92 | # memdbg = Enables the debugging memory allocator.
|
---|
93 | # compdbg = Enables byte compilation logging.
|
---|
94 | #
|
---|
95 | # MACHINE=(IX86|IA64|ALPHA|AMD64)
|
---|
96 | # Set the machine type used for the compiler, linker, and
|
---|
97 | # resource compiler. This hook is needed to tell the tools
|
---|
98 | # when alternate platforms are requested. IX86 is the default
|
---|
99 | # when not specified. If the CPU environment variable has been
|
---|
100 | # set (ie: recent Platform SDK) then MACHINE is set from CPU.
|
---|
101 | #
|
---|
102 | # TMP_DIR=<path>
|
---|
103 | # OUT_DIR=<path>
|
---|
104 | # Hooks to allow the intermediate and output directories to be
|
---|
105 | # changed. $(OUT_DIR) is assumed to be
|
---|
106 | # $(BINROOT)\(Release|Debug) based on if symbols are requested.
|
---|
107 | # $(TMP_DIR) will de $(OUT_DIR)\<buildtype> by default.
|
---|
108 | #
|
---|
109 | # TESTPAT=<file>
|
---|
110 | # Reads the tests requested to be run from this file.
|
---|
111 | #
|
---|
112 | # CFG_ENCODING=encoding
|
---|
113 | # name of encoding for configuration information. Defaults
|
---|
114 | # to cp1252
|
---|
115 | #
|
---|
116 | # 5) Examples:
|
---|
117 | #
|
---|
118 | # Basic syntax of calling nmake looks like this:
|
---|
119 | # nmake [-nologo] -f makefile.vc [target|macrodef [target|macrodef] [...]]
|
---|
120 | #
|
---|
121 | # Standard (no frills)
|
---|
122 | # c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
|
---|
123 | # Setting environment for using Microsoft Visual C++ tools.
|
---|
124 | # c:\tcl_src\win\>nmake -f makefile.vc all
|
---|
125 | # c:\tcl_src\win\>nmake -f makefile.vc install INSTALLDIR=c:\progra~1\tcl
|
---|
126 | #
|
---|
127 | # Building for Win64
|
---|
128 | # c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
|
---|
129 | # Setting environment for using Microsoft Visual C++ tools.
|
---|
130 | # c:\tcl_src\win\>c:\progra~1\platfo~1\setenv.bat /pre64 /RETAIL
|
---|
131 | # Targeting Windows pre64 RETAIL
|
---|
132 | # c:\tcl_src\win\>nmake -f makefile.vc MACHINE=IA64
|
---|
133 | #
|
---|
134 | #------------------------------------------------------------------------------
|
---|
135 | #==============================================================================
|
---|
136 | ###############################################################################
|
---|
137 | #------------------------------------------------------------------------------
|
---|
138 |
|
---|
139 | !if !exist("makefile.vc")
|
---|
140 | MSG = ^
|
---|
141 | You must run this makefile only from the directory it is in.^
|
---|
142 | Please `cd` to its location first.
|
---|
143 | !error $(MSG)
|
---|
144 | !endif
|
---|
145 |
|
---|
146 | #-------------------------------------------------------------------------
|
---|
147 | # Project specific information (EDIT)
|
---|
148 | #
|
---|
149 | # You should edit this with the name and version of your project. This
|
---|
150 | # information is used to generate the name of the package library and
|
---|
151 | # it's install location.
|
---|
152 | #
|
---|
153 | # For example, the sample extension is going to build sample04.dll and
|
---|
154 | # would install it into $(INSTALLDIR)\lib\sample04
|
---|
155 | #
|
---|
156 | # You need to specify the object files that need to be linked into your
|
---|
157 | # binary here.
|
---|
158 | #
|
---|
159 | #-------------------------------------------------------------------------
|
---|
160 |
|
---|
161 | PROJECT = sample
|
---|
162 |
|
---|
163 | # Uncomment the following line if this is a Tk extension.
|
---|
164 | #PROJECT_REQUIRES_TK=1
|
---|
165 | !include "rules.vc"
|
---|
166 |
|
---|
167 | DOTVERSION = 0.5
|
---|
168 | VERSION = $(DOTVERSION:.=)
|
---|
169 | STUBPREFIX = $(PROJECT)stub
|
---|
170 |
|
---|
171 | DLLOBJS = \
|
---|
172 | $(TMP_DIR)\tclsample.obj \
|
---|
173 | $(TMP_DIR)\sample.obj \
|
---|
174 | !if !$(STATIC_BUILD)
|
---|
175 | $(TMP_DIR)\sample.res
|
---|
176 | !endif
|
---|
177 |
|
---|
178 | #-------------------------------------------------------------------------
|
---|
179 | # Target names and paths ( shouldn't need changing )
|
---|
180 | #-------------------------------------------------------------------------
|
---|
181 |
|
---|
182 | BINROOT = .
|
---|
183 | ROOT = ..
|
---|
184 |
|
---|
185 | PRJIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
|
---|
186 | PRJLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
|
---|
187 | PRJLIB = $(OUT_DIR)\$(PRJLIBNAME)
|
---|
188 |
|
---|
189 | PRJSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
|
---|
190 | PRJSTUBLIB = $(OUT_DIR)\$(PRJSTUBLIBNAME)
|
---|
191 |
|
---|
192 | ### Make sure we use backslash only.
|
---|
193 | PRJ_INSTALL_DIR = $(_INSTALLDIR)\$(PROJECT)$(DOTVERSION)
|
---|
194 | LIB_INSTALL_DIR = $(PRJ_INSTALL_DIR)
|
---|
195 | BIN_INSTALL_DIR = $(PRJ_INSTALL_DIR)
|
---|
196 | DOC_INSTALL_DIR = $(PRJ_INSTALL_DIR)
|
---|
197 | SCRIPT_INSTALL_DIR = $(PRJ_INSTALL_DIR)
|
---|
198 | INCLUDE_INSTALL_DIR = $(_TCLDIR)\include
|
---|
199 |
|
---|
200 | ### The following paths CANNOT have spaces in them.
|
---|
201 | GENERICDIR = $(ROOT)\generic
|
---|
202 | WINDIR = $(ROOT)\win
|
---|
203 | LIBDIR = $(ROOT)\library
|
---|
204 | DOCDIR = $(ROOT)\doc
|
---|
205 | TOOLSDIR = $(ROOT)\tools
|
---|
206 | COMPATDIR = $(ROOT)\compat
|
---|
207 |
|
---|
208 | #---------------------------------------------------------------------
|
---|
209 | # Compile flags
|
---|
210 | #---------------------------------------------------------------------
|
---|
211 |
|
---|
212 | !if !$(DEBUG)
|
---|
213 | !if $(OPTIMIZING)
|
---|
214 | ### This cranks the optimization level to maximize speed
|
---|
215 | cdebug = $(OPTIMIZATIONS)
|
---|
216 | !else
|
---|
217 | cdebug =
|
---|
218 | !endif
|
---|
219 | !else if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64"
|
---|
220 | ### Warnings are too many, can't support warnings into errors.
|
---|
221 | cdebug = -Zi -Od $(DEBUGFLAGS)
|
---|
222 | !else
|
---|
223 | cdebug = -Zi -WX $(DEBUGFLAGS)
|
---|
224 | !endif
|
---|
225 |
|
---|
226 | ### Declarations common to all compiler options
|
---|
227 | cwarn = $(WARNINGS) -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
|
---|
228 | cflags = -nologo -c $(COMPILERFLAGS) $(cwarn) -Fp$(TMP_DIR)^\
|
---|
229 |
|
---|
230 | !if $(MSVCRT)
|
---|
231 | !if $(DEBUG) && !$(UNCHECKED)
|
---|
232 | crt = -MDd
|
---|
233 | !else
|
---|
234 | crt = -MD
|
---|
235 | !endif
|
---|
236 | !else
|
---|
237 | !if $(DEBUG) && !$(UNCHECKED)
|
---|
238 | crt = -MTd
|
---|
239 | !else
|
---|
240 | crt = -MT
|
---|
241 | !endif
|
---|
242 | !endif
|
---|
243 |
|
---|
244 | !if !$(STATIC_BUILD)
|
---|
245 | cflags = $(cflags) -DUSE_TCL_STUBS
|
---|
246 | !if defined(TKSTUBLIB)
|
---|
247 | cflags = $(cflags) -DUSE_TK_STUBS
|
---|
248 | !endif
|
---|
249 | !endif
|
---|
250 |
|
---|
251 | INCLUDES = $(TCL_INCLUDES) -I"$(WINDIR)" -I"$(GENERICDIR)"
|
---|
252 | BASE_CFLAGS = $(cflags) $(cdebug) $(crt) $(INCLUDES)
|
---|
253 | CON_CFLAGS = $(cflags) $(cdebug) $(crt) -DCONSOLE
|
---|
254 | TCL_CFLAGS = -DPACKAGE_NAME="\"$(PROJECT)\"" \
|
---|
255 | -DPACKAGE_VERSION="\"$(DOTVERSION)\"" \
|
---|
256 | -DBUILD_$(PROJECT) \
|
---|
257 | $(BASE_CFLAGS) $(OPTDEFINES)
|
---|
258 |
|
---|
259 | #---------------------------------------------------------------------
|
---|
260 | # Link flags
|
---|
261 | #---------------------------------------------------------------------
|
---|
262 |
|
---|
263 | !if $(DEBUG)
|
---|
264 | ldebug = -debug:full -debugtype:cv
|
---|
265 | !if $(MSVCRT)
|
---|
266 | ldebug = $(ldebug) -nodefaultlib:msvcrt
|
---|
267 | !endif
|
---|
268 | !else
|
---|
269 | ldebug = -release -opt:ref -opt:icf,3
|
---|
270 | !endif
|
---|
271 |
|
---|
272 | ### Declarations common to all linker options
|
---|
273 | lflags = -nologo -machine:$(MACHINE) $(LINKERFLAGS) $(ldebug)
|
---|
274 |
|
---|
275 | !if $(PROFILE)
|
---|
276 | lflags = $(lflags) -profile
|
---|
277 | !endif
|
---|
278 |
|
---|
279 | !if $(ALIGN98_HACK) && !$(STATIC_BUILD)
|
---|
280 | ### Align sections for PE size savings.
|
---|
281 | lflags = $(lflags) -opt:nowin98
|
---|
282 | !else if !$(ALIGN98_HACK) && $(STATIC_BUILD)
|
---|
283 | ### Align sections for speed in loading by choosing the virtual page size.
|
---|
284 | lflags = $(lflags) -align:4096
|
---|
285 | !endif
|
---|
286 |
|
---|
287 | !if $(LOIMPACT)
|
---|
288 | lflags = $(lflags) -ws:aggressive
|
---|
289 | !endif
|
---|
290 |
|
---|
291 | dlllflags = $(lflags) -dll
|
---|
292 | conlflags = $(lflags) -subsystem:console
|
---|
293 | guilflags = $(lflags) -subsystem:windows
|
---|
294 | !if !$(STATIC_BUILD)
|
---|
295 | baselibs = $(TCLSTUBLIB)
|
---|
296 | !if defined(TKSTUBLIB)
|
---|
297 | baselibs = $(baselibs) $(TKSTUBLIB)
|
---|
298 | !endif
|
---|
299 | !endif
|
---|
300 |
|
---|
301 | # Avoid 'unresolved external symbol __security_cookie' errors.
|
---|
302 | # c.f. http://support.microsoft.com/?id=894573
|
---|
303 | !if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64"
|
---|
304 | !if $(VCVERSION) >= 1400 && $(VCVERSION) < 1500
|
---|
305 | baselibs = $(baselibs) bufferoverflowU.lib
|
---|
306 | !endif
|
---|
307 | !endif
|
---|
308 |
|
---|
309 | baselibs = $(baselibs) user32.lib gdi32.lib
|
---|
310 |
|
---|
311 | #---------------------------------------------------------------------
|
---|
312 | # TclTest flags
|
---|
313 | #---------------------------------------------------------------------
|
---|
314 |
|
---|
315 | !IF "$(TESTPAT)" != ""
|
---|
316 | TESTFLAGS = $(TESTFLAGS) -file $(TESTPAT)
|
---|
317 | !ENDIF
|
---|
318 |
|
---|
319 | #---------------------------------------------------------------------
|
---|
320 | # Project specific targets (EDIT)
|
---|
321 | #---------------------------------------------------------------------
|
---|
322 |
|
---|
323 | all: setup $(PROJECT)
|
---|
324 | $(PROJECT): setup pkgIndex $(PRJLIB)
|
---|
325 | install: install-binaries install-libraries install-docs
|
---|
326 | pkgIndex: $(OUT_DIR)\pkgIndex.tcl
|
---|
327 |
|
---|
328 | test: setup $(PROJECT)
|
---|
329 | @set TCL_LIBRARY=$(TCL_LIBRARY:\=/)
|
---|
330 | @set TCLLIBPATH=$(OUT_DIR_PATH:\=/)
|
---|
331 | !if $(TCLINSTALL)
|
---|
332 | @set PATH=$(_TCLDIR)\bin;$(PATH)
|
---|
333 | !else
|
---|
334 | @set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
|
---|
335 | !endif
|
---|
336 | !if "$(OS)" == "Windows_NT" || "$(MSVCDIR)" == "IDE"
|
---|
337 | $(DEBUGGER) $(TCLSH) "$(ROOT)/tests/all.tcl" $(TESTFLAGS)
|
---|
338 | !else
|
---|
339 | @echo Please wait while the tests are collected...
|
---|
340 | $(DEBUGGER) $(TCLSH) "$(ROOT)/tests/all.tcl" $(TESTFLAGS) > tests.log
|
---|
341 | type tests.log | more
|
---|
342 | !endif
|
---|
343 |
|
---|
344 | shell: setup $(PROJECT)
|
---|
345 | @set VLERQ_LIBRARY=$(LIBDIR:\=/)
|
---|
346 | @set TCL_LIBRARY=$(TCL_LIBRARY:\=/)
|
---|
347 | @set TCLLIBPATH=$(OUT_DIR_PATH:\=/)
|
---|
348 | !if $(TCLINSTALL)
|
---|
349 | @set PATH=$(_TCLDIR)\bin;$(PATH)
|
---|
350 | !else
|
---|
351 | @set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
|
---|
352 | !endif
|
---|
353 | $(DEBUGGER) $(TCLSH) $(SCRIPT)
|
---|
354 |
|
---|
355 | setup:
|
---|
356 | @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR)
|
---|
357 | @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR)
|
---|
358 |
|
---|
359 | # See <tcl>/win/coffbase.txt for extension base addresses.
|
---|
360 | $(PRJLIB): $(DLLOBJS)
|
---|
361 | !if $(STATIC_BUILD)
|
---|
362 | $(lib32) -nologo -out:$@ @<<
|
---|
363 | $**
|
---|
364 | <<
|
---|
365 | !else
|
---|
366 | $(link32) $(dlllflags) -base:0x10000000 -out:$@ $(baselibs) @<<
|
---|
367 | $**
|
---|
368 | <<
|
---|
369 | $(_VC_MANIFEST_EMBED_DLL)
|
---|
370 | -@del $*.exp
|
---|
371 | !endif
|
---|
372 |
|
---|
373 | $(PRJSTUBLIB): $(PRJSTUBOBJS)
|
---|
374 | $(lib32) -nologo -out:$@ $(PRJSTUBOBJS)
|
---|
375 |
|
---|
376 | #---------------------------------------------------------------------
|
---|
377 | # Implicit rules
|
---|
378 | #---------------------------------------------------------------------
|
---|
379 |
|
---|
380 | {$(WINDIR)}.c{$(TMP_DIR)}.obj::
|
---|
381 | $(cc32) $(TCL_CFLAGS) -DBUILD_$(PROJECT) -Fo$(TMP_DIR)\ @<<
|
---|
382 | $<
|
---|
383 | <<
|
---|
384 |
|
---|
385 | {$(GENERICDIR)}.c{$(TMP_DIR)}.obj::
|
---|
386 | $(cc32) $(TCL_CFLAGS) -DBUILD_$(PROJECT) -Fo$(TMP_DIR)\ @<<
|
---|
387 | $<
|
---|
388 | <<
|
---|
389 |
|
---|
390 | {$(COMPATDIR)}.c{$(TMP_DIR)}.obj::
|
---|
391 | $(cc32) $(TCL_CFLAGS) -DBUILD_$(PROJECT) -Fo$(TMP_DIR)\ @<<
|
---|
392 | $<
|
---|
393 | <<
|
---|
394 |
|
---|
395 | {$(WINDIR)}.rc{$(TMP_DIR)}.res:
|
---|
396 | $(rc32) -fo $@ -r -i "$(GENERICDIR)" -D__WIN32__ \
|
---|
397 | -DCOMMAVERSION=$(DOTVERSION:.=,),0,0 \
|
---|
398 | -DDOTVERSION=\"$(DOTVERSION)\" \
|
---|
399 | -DVERSION=\"$(VERSION)$(SUFX)\" \
|
---|
400 | !if $(DEBUG)
|
---|
401 | -d DEBUG \
|
---|
402 | !endif
|
---|
403 | !if $(TCL_THREADS)
|
---|
404 | -d TCL_THREADS \
|
---|
405 | !endif
|
---|
406 | !if $(STATIC_BUILD)
|
---|
407 | -d STATIC_BUILD \
|
---|
408 | !endif
|
---|
409 | $<
|
---|
410 |
|
---|
411 | .SUFFIXES:
|
---|
412 | .SUFFIXES:.c .rc
|
---|
413 |
|
---|
414 | #-------------------------------------------------------------------------
|
---|
415 | # Explicit dependency rules
|
---|
416 | #
|
---|
417 | #-------------------------------------------------------------------------
|
---|
418 |
|
---|
419 | $(OUT_DIR)\pkgIndex.tcl: $(ROOT)\pkgIndex.tcl.in
|
---|
420 | @nmakehlp -s << $** > $@
|
---|
421 | @PACKAGE_VERSION@ $(DOTVERSION)
|
---|
422 | @PACKAGE_NAME@ $(PROJECT)
|
---|
423 | @PKG_LIB_FILE@ $(PRJLIBNAME)
|
---|
424 | <<
|
---|
425 |
|
---|
426 | #---------------------------------------------------------------------
|
---|
427 | # Installation. (EDIT)
|
---|
428 | #
|
---|
429 | # You may need to modify this section to reflect the final distribution
|
---|
430 | # of your files and possibly to generate documentation.
|
---|
431 | #
|
---|
432 | #---------------------------------------------------------------------
|
---|
433 |
|
---|
434 | install-binaries:
|
---|
435 | @echo Installing binaries to '$(SCRIPT_INSTALL_DIR)'
|
---|
436 | @if not exist "$(SCRIPT_INSTALL_DIR)" mkdir "$(SCRIPT_INSTALL_DIR)"
|
---|
437 | @$(CPY) $(PRJLIB) "$(SCRIPT_INSTALL_DIR)" >NUL
|
---|
438 |
|
---|
439 | install-libraries: $(OUT_DIR)\pkgIndex.tcl
|
---|
440 | @echo Installing libraries to '$(SCRIPT_INSTALL_DIR)'
|
---|
441 | @if exist $(LIBDIR) $(CPY) $(LIBDIR)\*.tcl "$(SCRIPT_INSTALL_DIR)"
|
---|
442 | @echo Installing package index in '$(SCRIPT_INSTALL_DIR)'
|
---|
443 | @$(CPY) $(OUT_DIR)\pkgIndex.tcl $(SCRIPT_INSTALL_DIR)
|
---|
444 |
|
---|
445 | install-docs:
|
---|
446 | @echo Installing documentation files to '$(DOC_INSTALL_DIR)'
|
---|
447 | @if exist $(DOCDIR) $(CPY) $(DOCDIR)\*.n "$(DOC_INSTALL_DIR)"
|
---|
448 |
|
---|
449 | #---------------------------------------------------------------------
|
---|
450 | # Clean up
|
---|
451 | #---------------------------------------------------------------------
|
---|
452 |
|
---|
453 | clean:
|
---|
454 | @if exist $(TMP_DIR)\nul $(RMDIR) $(TMP_DIR)
|
---|
455 | @if exist $(WINDIR)\version.vc del $(WINDIR)\version.vc
|
---|
456 | @if exist $(WINDIR)\vercl.i del $(WINDIR)\vercl.i
|
---|
457 | @if exist $(WINDIR)\vercl.x del $(WINDIR)\vercl.x
|
---|
458 | @if exist $(WINDIR)\_junk.pch del $(WINDIR)\_junk.pch
|
---|
459 |
|
---|
460 | realclean: clean
|
---|
461 | @if exist $(OUT_DIR)\nul $(RMDIR) $(OUT_DIR)
|
---|
462 |
|
---|
463 | distclean: realclean
|
---|
464 | @if exist $(WINDIR)\nmakehlp.exe del $(WINDIR)\nmakehlp.exe
|
---|
465 | @if exist $(WINDIR)\nmakehlp.obj del $(WINDIR)\nmakehlp.obj
|
---|