development-curl is a virtual target
[AROS-Contrib.git] / regina / makefile.win32.vc
blobfd326a097a45e83ef7f1376465909cb011de17e5
2 # Makefile for Regina REXX Interpreter
4 # Using MS Visual C++ under Win32
5 # Usage:
6 #    nmake -f [DEBUG=Y] [TRACEMEM=Y]] [FLISTS=N] [SOCKET=nnnn]
8 # generated files without giving a target on the command line:
9 # rexx.exe     statically bounded REXX interpreter
10 # rexx.lib     static link library of the REXX interpreter, place anywhere
11 #              in a directory of your LIB-variable.
12 # regina.lib   link file for regina.dll, place anywhere in a directory of
13 #              your LIB-variable.
14 # regina.dll   dynamic link library of the REXX interpreter, place anywhere
15 #              in a directory of your PATH.
16 # regina.exe   dynamically bound REXX interpreter
18 # rxstack.exe  daemon process that provides external queues
20 # rxqueue.exe  program to access external queues
22 # Require the following env variables to be set:
23 # REGINA_SRCDIR <- full path to source
24 # REGINA_DOCDIR <- full path to location of Regina PDF documentation
26 SRCDIR=$(REGINA_SRCDIR)
27 COMMONSRCDIR=$(SRCDIR)\common
28 REGUTILSRCDIR=$(SRCDIR)\regutil
30 #                      USER CONFIGURABLE VARIABLES
32 # Please specify the current directory of the sources:
34 #SRCDIR=path_to_this_file
37 !include $(SRCDIR)\regina.ver
38 VERDOT = $(VER_DOT)
39 VERDATE = $(VER_DATE)
41 CC = cl
43 !if "$(DEBUG)" == "Y"
44 EEXTRA = /DEBUG
45 DEBUGFLAG  = /Zi /Od /J /DDEBUG #/DREGINA_DEBUG_MEMORY /DREGINA_DEBUG_MEMORY1 /DREGINA_DEBUG_MEMORY2 /DREGINA_DEBUG_MEMORY3
46 OPTIMIZE =
47 ! if "$(TRACEMEM)" == "Y"
48 MEMTRACE = /DTRACEMEM
49 ! else
50 MEMTRACE =
51 TRACEMEM = N
52 ! endif
53 !else
54 EEXTRA = /release /pdb:nul /incremental:no
55 DEBUGFLAG  = /DNDEBUG
56 OPTIMIZE = /Ox /J #-O2gityb1 -J
57 DEBUG = N
58 TRACEMEM = N
59 !endif
61 !if "$(FLISTS)" == "N"
62 NOFLISTS = /DNOFLISTS
63 !else
64 NOFLISTS =
65 FLISTS = Y
66 !endif
69 # GCI is default
71 !if "$(GCI)" == "N"
72 GCI_SHO =
73 HAVE_GCI =
74 !else
75 GCI_SHO = gci_call.ts.obj gci_convert.ts.obj gci_execute.ts.obj gci_helper.ts.obj gci_prepare.ts.obj gci_reginabridge.ts.obj gci_rxfuncdefine.ts.obj gci_tree.ts.obj
76 HAVE_GCI = -DHAVE_GCI -I$(SRCDIR)\gci -I.
77 !endif
79 THREADING = /MT
81 DYN_COMP = /LD /DDYNAMIC
82 TSDYN_COMP = /LD /DDYNAMIC
84 !ifdef "$(SOCKET)"
85 REXXSOCKET=-DRXSOCKET=$(SOCKET)
86 !else
87 REXXSOCKET=-DRXSOCKET=5757
88 SOCKET=5757
89 !endif
91 LIBS = advapi32.lib user32.lib #libc.lib
92 WINSOCK = wsock32.lib
93 SERVICELIBS = libcmt.lib kernel32.lib advapi32.lib shell32.lib
94 SHL_TARGETS= regina.exe rxtest1.dll rxtest2.dll rxtest1.lib rxtest2.lib regutil.dll regutil.lib
95 LD     = link
96 LIBFLAGS = /OUT:rexx.lib
97 LIBLINK = regina.lib
98 LINKSHL = regina.lib
99 LD_RXLIBPRE=link /NOLOGO /DLL /OUT:$@
100 LD_RXLIB1= /DEF:$(SRCDIR)\test1_w32_dll.def
101 LD_RXLIB2= /DEF:$(SRCDIR)\test2_w32_dll.def
102 LD_REGUTIL= /DEF:$(REGUTILSRCDIR)\regutil.def
103 MV= -ren
105 CEXTRA = /DWIN32 /nologo /W4 $(REXXSOCKET) $(HAVE_GCI) -DREGINA_VERSION_DATE=\"$(VER_DATE)\" -DREGINA_VERSION_MAJOR=\"$(VER_MAJOR)\" -DREGINA_VERSION_MINOR=\"$(VER_MINOR)\" -DREGINA_VERSION_SUPP=\"$(VER_SUPP)\"
107 CC2O=-Fo$@
109 # Include the common rules for the interpreter
113 # Some settings that you may wish to change, these are used only
114 # for the 'install' target:
116 #   TOPDIR    The top of the directory hierarchy in which to install
117 #   BINDIR    Where to install the compiled 'rexx' program
118 #   LIBDIR    Where to install the 'regina' library
119 #   MANEXT    The extention of the manual page
120 #   MANDIR    Where to install the manual page
121 #   PROGNAME  What to call the compiled program
123 BINDIR = $(TOPDIR)/bin
124 LIBDIR = $(TOPDIR)/lib
126 COPT = $(OPTIMIZE) $(DEBUGFLAG) $(CEXTRA) -I$(SRCDIR) $(MEMTRACE) $(NOFLISTS) /ML
127 TSCOPT = $(OPTIMIZE) $(DEBUGFLAG) $(CEXTRA) -I$(SRCDIR) $(MEMTRACE) $(NOFLISTS) $(THREADING)
128 LINKOPT = $(EEXTRA) /NOLOGO /VERSION:$(VERDOT)
129 OTHERCOPT = $(OPTIMIZE) $(DEBUGFLAG) $(CEXTRA) -I$(SRCDIR) $(MEMTRACE) $(NOFLISTS) /ML
130 OTHERTSCOPT = $(OPTIMIZE) $(DEBUGFLAG) $(CEXTRA) -I$(SRCDIR) $(MEMTRACE) $(NOFLISTS) $(THREADING)
131 REGUTILCOPT = $(COPT) -DNOT_LIKE_IBM -DMAPVIEWOFFILE
133 README = $(SRCDIR)/README.??? $(SRCDIR)/COPYING-LIB $(SRCDIR)/BUGS $(SRCDIR)/yaccsrc.bound
135 CSRCFILES = $(SRCDIR)/funcs.c $(SRCDIR)/builtin.c $(SRCDIR)/error.c $(SRCDIR)/variable.c \
136         $(SRCDIR)/interprt.c $(SRCDIR)/debug.c $(SRCDIR)/dbgfuncs.c $(SRCDIR)/memory.c $(SRCDIR)/parsing.c $(SRCDIR)/files.c \
137         $(SRCDIR)/misc.c $(SRCDIR)/unxfuncs.c $(SRCDIR)/arxfuncs.c $(SRCDIR)/cmsfuncs.c $(SRCDIR)/os2funcs.c $(SRCDIR)/shell.c $(SRCDIR)/rexxext.c $(SRCDIR)/stack.c \
138         $(SRCDIR)/tracing.c $(SRCDIR)/interp.c $(SRCDIR)/cmath.c $(SRCDIR)/convert.c $(SRCDIR)/strings.c $(SRCDIR)/library.c \
139         $(SRCDIR)/strmath.c $(SRCDIR)/signals.c $(SRCDIR)/macros.c $(SRCDIR)/envir.c $(SRCDIR)/expr.c $(SRCDIR)/rexxbif.c \
140         $(SRCDIR)/wrappers.c $(SRCDIR)/options.c $(SRCDIR)/os_win.c $(SRCDIR)/extstack.c \
141         $(SRCDIR)/mt_notmt.c $(SRCDIR)/mt_win32.c $(SRCDIR)/mt_posix.c $(SRCDIR)/nosaa.c \
142         $(SRCDIR)/ntservice/service.c $(SRCDIR)/os_other.c
144 OFILES = funcs.obj builtin.obj error.obj variable.obj \
145         interprt.obj debug.obj dbgfuncs.obj memory.obj parsing.obj files.obj \
146         misc.obj unxfuncs.obj arxfuncs.obj cmsfuncs.obj os2funcs.obj shell.obj rexxext.obj stack.obj extstack.obj \
147         tracing.obj interp.obj cmath.obj convert.obj strings.obj library.obj \
148         strmath.obj signals.obj macros.obj envir.obj expr.obj instore.obj rexxbif.obj \
149         yaccsrc.obj lexsrc.obj options.obj os_win.obj wrappers.obj mt_notmt.obj time64.obj \
150         os_other.obj
152 TSFILES = funcs.ts.obj builtin.ts.obj error.ts.obj variable.ts.obj extstack.ts.obj rexxbif.ts.obj \
153         interprt.ts.obj debug.ts.obj dbgfuncs.ts.obj memory.ts.obj parsing.ts.obj files.ts.obj \
154         misc.ts.obj unxfuncs.ts.obj arxfuncs.ts.obj cmsfuncs.ts.obj os2funcs.ts.obj shell.ts.obj rexxext.ts.obj stack.ts.obj \
155         tracing.ts.obj interp.ts.obj cmath.ts.obj convert.ts.obj strings.ts.obj library.ts.obj \
156         strmath.ts.obj signals.ts.obj macros.ts.obj envir.ts.obj expr.ts.obj instore.ts.obj \
157         yaccsrc.ts.obj lexsrc.ts.obj wrappers.ts.obj options.ts.obj os_win.ts.obj \
158         rexx.ts.obj client.ts.obj rexxsaa.ts.obj mt_win32.ts.obj time64.ts.obj \
159         os_other.ts.obj $(GCI_SHO)
161 STATFILES = funcs.stat.obj builtin.stat.obj error.stat.obj variable.stat.obj extstack.stat.obj rexxbif.stat.obj \
162         interprt.stat.obj debug.stat.obj dbgfuncs.stat.obj memory.stat.obj parsing.stat.obj files.stat.obj \
163         misc.stat.obj unxfuncs.stat.obj arxfuncs.stat.obj cmsfuncs.stat.obj os2funcs.stat.obj shell.stat.obj rexxext.stat.obj stack.stat.obj \
164         tracing.stat.obj interp.stat.obj cmath.stat.obj convert.stat.obj strings.stat.obj library.stat.obj \
165         strmath.stat.obj signals.stat.obj macros.stat.obj envir.stat.obj expr.stat.obj instore.stat.obj \
166         yaccsrc.stat.obj lexsrc.stat.obj wrappers.stat.obj options.stat.obj os_win.stat.obj\
167         rexx.stat.obj client.stat.obj rexxsaa.stat.obj mt_win32.stat.obj time64.stat.obj \
168         os_other.stat.obj $(GCI_SHO)
170 REGUTILOFILES = regfilesys.obj regini.obj regmacrospace.obj regscreen.obj \
171                 regsem.obj regutil.obj rxsupport.obj random.obj regstem.obj regwin.obj \
172                 regunicode.obj regcrypt.obj
174 REGUTILSTATFILES = regfilesys.stat.obj regini.stat.obj regmacrospace.stat.obj regscreen.stat.obj \
175                 regsem.stat.obj regutil.stat.obj rxsupport.stat.obj random.stat.obj regstem.stat.obj regwin.stat.obj \
176                 regunicode.stat.obj regcrypt.stat.obj
178 DEMODIR = $(SRCDIR)/demo
179 DEMOFILES = $(DEMODIR)/*
180 TRIPDIR = $(SRCDIR)/trip
181 TRIPFILES = $(TRIPDIR)/*
182 UNIXFILES = $(SRCDIR)/*.in $(SRCDIR)/configure $(SRCDIR)/config.sub \
183         $(SRCDIR)/config.guess $(SRCDIR)/aclocal.m4 $(SRCDIR)/install-sh \
184         $(SRCDIR)/INSTALL $(SRCDIR)/yaccsrc.y $(SRCDIR)/lexsrc.l
186 ALLSRC = $(CFILES) $(HFILES)
188 HFILES = $(SRCDIR)/rexx.h $(SRCDIR)/defs.h $(SRCDIR)/extern.h $(SRCDIR)/regina_t.h \
189                 $(SRCDIR)/strings.h $(SRCDIR)/configur.h $(SRCDIR)/yaccsrc.h \
190                 $(SRCDIR)/rxiface.h $(SRCDIR)/rexxsaa.h $(SRCDIR)/utsname.h \
191                 $(SRCDIR)/mt.h $(SRCDIR)/mt_notmt.h $(SRCDIR)/mt_win32.h $(SRCDIR)/mt_posix.h \
192                 $(SRCDIR)/ntservice/service.h
193 CFILES = $(SRCDIR)/yaccsrc.c $(SRCDIR)/lexsrc.c $(CSRCFILES) $(SRCDIR)/execiser.c \
194                 $(SRCDIR)/rexxsaa.c $(SRCDIR)/rexx.c $(SRCDIR)/regina.c $(SRCDIR)/client.c \
195                 $(SRCDIR)/r2perl.c $(SRCDIR)/test1.c $(SRCDIR)/test2.c
197 MTSSRC = $(SRCDIR)/en.mts $(SRCDIR)/pt.mts $(SRCDIR)/no.mts \
198    $(SRCDIR)/de.mts $(SRCDIR)/es.mts $(SRCDIR)/pl.mts \
199    $(SRCDIR)/tr.mts $(SRCDIR)/sv.mts
201 GCIHEADERS = $(SRCDIR)\gci\gci.h $(SRCDIR)\gci\embedded.h
203 #.SUFFIXES: .sho $(SUFFIXES)
205 # Do not use default suffixes rule
207 .SUFFIXES:
209 all : how trexx.exe rexx.exe rexx.lib $(SHL_TARGETS) rxstack.exe rxqueue.exe threader.exe execiser.exe mtb_files
211 how:
212         echo nmake -f $(SRCDIR)\makefile.win32.vc DEBUG=$(DEBUG) TRACEMEM=$(TRACEMEM) FLISTS=$(FLISTS) SOCKET=$(SOCKET) ^%1 ^%2 > rebuild.bat
214 $(CSRCFILES) $(CFILES) : $(SRCDIR)/rexx.h
216 $(SRCDIR)/rexx.h : $(SRCDIR)/extern.h $(SRCDIR)/strings.h $(SRCDIR)/defs.h $(SRCDIR)/regina_t.h $(SRCDIR)/mt.h
219 # trexx.exe is a temporary Rexx interpreter used to update version
220 # information in .rc files
221 trexx.exe : $(OFILES) rexx.obj nosaa.obj
222          $(LD) /PDB:$*.pdb $(LINKOPT) /STACK:0x10000000 $(STATIC_LDFLAGS) /OUT:trexx.exe $(OFILES) rexx.obj nosaa.obj $(LIBS) $(WINSOCK)
224 rexx.exe : $(OFILES) rexx.obj rexxw32exe.obj nosaa.obj
225          $(LD) /PDB:$*.pdb $(LINKOPT) /STACK:0x10000000 $(STATIC_LDFLAGS) /OUT:rexx.exe $(OFILES) rexx.obj rexxw32exe.obj nosaa.obj $(LIBS) $(WINSOCK)
227 regina.exe : regina.dll regina.obj reginaw32exe.obj
228          $(LD) /PDB:$*.pdb $(LINKOPT) /STACK:0x10000000 $(DYNAMIC_LDFLAGS) /OUT:regina.exe regina.obj reginaw32exe.obj $(LIBS) $(LIBLINK) $(WINSOCK)
230 execiser.exe : execiser.obj regina.dll
231          $(LD) /PDB:$*.pdb $(LINKOPT) /OUT:execiser.exe execiser.obj $(LIBLINK)
233 rxqueue.exe : rxqueue.obj erexxbif.obj eextstack.obj rxqueuew32exe.obj
234          $(LD) /PDB:$*.pdb $(LINKOPT) /OUT:rxqueue.exe rxqueue.obj erexxbif.obj eextstack.obj rxqueuew32exe.obj $(WINSOCK)
236 rxstack.exe : rxstack.obj erexxbif_mt.obj eextstack_mt.obj service.obj rxstackw32exe.obj
237          $(LD) /PDB:$*.pdb $(LINKOPT) /OUT:rxstack.exe rxstack.obj erexxbif_mt.obj eextstack_mt.obj service.obj rxstackw32exe.obj $(WINSOCK) $(SERVICELIBS)
239 threader.exe : threader.obj regina.dll
240          $(LD) /PDB:$*.pdb $(LINKOPT) /OUT:threader.exe threader.obj $(LIBLINK)
242 rexx.lib: $(OFILES) client.obj drexx.obj rexxsaa.obj
243         lib $(LIBFLAGS) $(OFILES) client.obj drexx.obj rexxsaa.obj
245 regina.dll: $(TSFILES) reginaw32dll.obj
246         $(LD) /PDB:$*_dll.pdb $(LINKOPT) /DLL /BASE:0x6B000000 /OUT:regina.dll /MAP:regina_dd.map /IMPLIB:regina.lib /DEF:$(SRCDIR)\regina_w32_dll.def reginaw32dll.obj *.ts.obj $(LIBS) $(WINSOCK)
248 sregina.exe: $(STATFILES)
249         $(LD) /PDB:$*.pdb ?? /OUT:sregina.exe $(STATFILES) $(STATICFUNCTIONLIBS)
252 # Convert .mts to .mtb
254 mtb_files: msgcmp.exe $(MTSSRC)
255         msgcmp $(MTSSRC)
257 msgcmp.exe: msgcmp.obj
258         $(LD) $(LINKOPT) /OUT:msgcmp.exe msgcmp.obj
260 msgcmp.obj: $(SRCDIR)/msgcmp.c
261         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/msgcmp.c
264 # Rules for static objects
266 funcs.obj :   $(SRCDIR)/funcs.c
267         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/funcs.c
269 builtin.obj : $(SRCDIR)/builtin.c
270         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/builtin.c
272 error.obj :   $(SRCDIR)/error.c
273         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/error.c
275 variable.obj :$(SRCDIR)/variable.c
276         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/variable.c
278 interprt.obj :$(SRCDIR)/interprt.c $(SRCDIR)\regina.ver
279         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/interprt.c
281 debug.obj :   $(SRCDIR)/debug.c
282         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/debug.c
284 dbgfuncs.obj :$(SRCDIR)/dbgfuncs.c
285         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/dbgfuncs.c
287 memory.obj :  $(SRCDIR)/memory.c
288         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/memory.c
290 parsing.obj : $(SRCDIR)/parsing.c
291         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/parsing.c
293 files.obj :   $(SRCDIR)/files.c
294         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/files.c
296 misc.obj :    $(SRCDIR)/misc.c $(SRCDIR)\regina.ver
297         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/misc.c
299 unxfuncs.obj :$(SRCDIR)/unxfuncs.c
300         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/unxfuncs.c
302 arxfuncs.obj :$(SRCDIR)/arxfuncs.c
303         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/arxfuncs.c
305 os2funcs.obj :$(SRCDIR)/os2funcs.c
306         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/os2funcs.c
308 cmsfuncs.obj :$(SRCDIR)/cmsfuncs.c
309         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/cmsfuncs.c
311 shell.obj :   $(SRCDIR)/shell.c
312         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/shell.c
314 rexxext.obj : $(SRCDIR)/rexxext.c
315         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/rexxext.c
317 stack.obj :   $(SRCDIR)/stack.c
318         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/stack.c
320 tracing.obj : $(SRCDIR)/tracing.c
321         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/tracing.c
323 interp.obj :  $(SRCDIR)/interp.c
324         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/interp.c
326 cmath.obj :   $(SRCDIR)/cmath.c
327         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/cmath.c
329 convert.obj : $(SRCDIR)/convert.c
330         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/convert.c
332 strings.obj : $(SRCDIR)/strings.c
333         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/strings.c
335 library.obj : $(SRCDIR)/library.c
336         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/library.c
338 strmath.obj : $(SRCDIR)/strmath.c
339         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/strmath.c
341 signals.obj : $(SRCDIR)/signals.c
342         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/signals.c
344 macros.obj :  $(SRCDIR)/macros.c
345         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/macros.c
347 envir.obj :   $(SRCDIR)/envir.c
348         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/envir.c
350 expr.obj :    $(SRCDIR)/expr.c
351         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/expr.c
353 wrappers.obj :$(SRCDIR)/wrappers.c
354         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/wrappers.c
356 options.obj : $(SRCDIR)/options.c
357         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/options.c
359 os_win.obj :  $(SRCDIR)/os_win.c
360         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/os_win.c
362 os_other.obj :  $(SRCDIR)/os_other.c
363         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/os_other.c
365 rexx.obj :    $(SRCDIR)/rexx.c $(SRCDIR)\regina.ver
366         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/rexx.c
368 client.obj :    $(SRCDIR)/client.c $(SRCDIR)\regina.ver
369         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/client.c
371 rexxsaa.obj :    $(SRCDIR)/rexxsaa.c   $(SRCDIR)\rexxsaa.h $(SRCDIR)\regina.ver
372         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/rexxsaa.c
374 regina.obj :  $(SRCDIR)/regina.c
375         $(CC) $(TSCOPT) $(CC2O) -c $(SRCDIR)/regina.c
377 drexx.obj : $(SRCDIR)/rexx.c $(SRCDIR)\regina.ver
378         $(CC) $(COPT) -c -DRXLIB $(CC2O) $(SRCDIR)/rexx.c
380 mt_notmt.obj : $(SRCDIR)/mt_notmt.c
381         $(CC) $(COPT) -c $(CC2O) $(SRCDIR)/mt_notmt.c
383 mt_win32.obj : $(SRCDIR)/mt_win32.c
384         $(CC) $(COPT) -c $(CC2O) $(SRCDIR)/mt_win32.c
386 nosaa.obj : $(SRCDIR)/nosaa.c
387         $(CC) $(COPT) -c $(CC2O) $(SRCDIR)/nosaa.c
389 instore.obj : $(SRCDIR)/instore.c $(SRCDIR)\regina.ver
390         $(CC) $(COPT) -c $(CC2O) $(SRCDIR)/instore.c
392 lexsrc.obj : $(SRCDIR)/lexsrc.c $(SRCDIR)/rexx.h $(SRCDIR)/yaccsrc.h
393         $(CC) $(OTHERCOPT) $(CC2O) -c $(SRCDIR)/lexsrc.c
395 yaccsrc.obj : $(SRCDIR)/yaccsrc.c $(SRCDIR)/defs.h $(SRCDIR)/rexx.h
396         $(CC) $(OTHERCOPT) $(CC2O) -c -DYYMAXDEPTH=10000 $(SRCDIR)/yaccsrc.c
398 extstack.obj : $(SRCDIR)/extstack.c $(SRCDIR)/rexx.h
399         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/extstack.c
401 execiser.obj : $(SRCDIR)/execiser.c $(SRCDIR)/rexx.h
402         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/execiser.c
404 rxqueue.obj : $(SRCDIR)/rxqueue.c $(SRCDIR)/rexx.h
405         $(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) -c $(SRCDIR)/rxqueue.c
407 rxstack.obj : $(SRCDIR)/rxstack.c $(SRCDIR)/rexx.h $(SRCDIR)/ntservice/service.h
408         $(CC) -DEXTERNAL_TO_REGINA -DBUILD_NT_SERVICE -I$(SRCDIR)/ntservice $(TSCOPT) $(CC2O) -c $(SRCDIR)/rxstack.c
410 service.obj : $(SRCDIR)/ntservice/service.c $(SRCDIR)/ntservice/service.h
411         $(CC) -I$(SRCDIR)/ntservice $(TSCOPT) $(CC2O) -c $(SRCDIR)/ntservice/service.c
413 rexxbif.obj : $(SRCDIR)/rexxbif.c $(SRCDIR)/rexxbif.h
414         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/rexxbif.c
416 rexxbif_mt.obj : $(SRCDIR)/rexxbif.c $(SRCDIR)/rexxbif.h
417         $(CC) $(TSCOPT) $(CC2O) -c $(SRCDIR)/rexxbif.c
419 erexxbif.obj : $(SRCDIR)/rexxbif.c $(SRCDIR)/rexxbif.h
420         $(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) -c $(SRCDIR)/rexxbif.c
422 erexxbif_mt.obj : $(SRCDIR)/rexxbif.c $(SRCDIR)/rexxbif.h
423         $(CC) -DEXTERNAL_TO_REGINA $(TSCOPT) $(CC2O) -c $(SRCDIR)/rexxbif.c
425 eextstack.obj : $(SRCDIR)/extstack.c $(SRCDIR)/rexx.h
426         $(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) -c $(SRCDIR)/extstack.c
428 eextstack_mt.obj : $(SRCDIR)/extstack.c $(SRCDIR)/rexx.h
429         $(CC) -DEXTERNAL_TO_REGINA $(TSCOPT) $(CC2O) -c $(SRCDIR)/extstack.c
431 time64.obj : $(SRCDIR)/contrib/time64.c $(SRCDIR)/rexx.h $(SRCDIR)/contrib/time64.h
432         $(CC) $(COPT) $(CC2O) -c $(SRCDIR)/contrib/time64.c
435 # Rules for thread-safe shared objects
437 threader.obj : $(SRCDIR)/threader.c $(SRCDIR)/rexxsaa.h
438         $(CC) $(TSCOPT) $(CC2O) -DWIN32_THREADS -c $(SRCDIR)/threader.c
440 funcs.ts.obj :   $(SRCDIR)/funcs.c
441         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/funcs.c
443 builtin.ts.obj : $(SRCDIR)/builtin.c
444         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/builtin.c
446 error.ts.obj :   $(SRCDIR)/error.c
447         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/error.c
449 variable.ts.obj :$(SRCDIR)/variable.c
450         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/variable.c
452 interprt.ts.obj :$(SRCDIR)/interprt.c $(SRCDIR)\regina.ver
453         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/interprt.c
455 debug.ts.obj :   $(SRCDIR)/debug.c
456         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/debug.c
458 dbgfuncs.ts.obj :$(SRCDIR)/dbgfuncs.c
459         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/dbgfuncs.c
461 memory.ts.obj :  $(SRCDIR)/memory.c
462         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/memory.c
464 parsing.ts.obj : $(SRCDIR)/parsing.c
465         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/parsing.c
467 files.ts.obj :   $(SRCDIR)/files.c
468         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/files.c
470 misc.ts.obj :    $(SRCDIR)/misc.c $(SRCDIR)\regina.ver
471         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/misc.c
473 unxfuncs.ts.obj :$(SRCDIR)/unxfuncs.c
474         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/unxfuncs.c
476 arxfuncs.ts.obj :$(SRCDIR)/arxfuncs.c
477         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/arxfuncs.c
479 os2funcs.ts.obj :$(SRCDIR)/os2funcs.c
480         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/os2funcs.c
482 cmsfuncs.ts.obj :$(SRCDIR)/cmsfuncs.c
483         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/cmsfuncs.c
485 shell.ts.obj :   $(SRCDIR)/shell.c
486         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/shell.c
488 rexxext.ts.obj : $(SRCDIR)/rexxext.c
489         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/rexxext.c
491 stack.ts.obj :   $(SRCDIR)/stack.c
492         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/stack.c
494 tracing.ts.obj : $(SRCDIR)/tracing.c
495         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/tracing.c
497 interp.ts.obj :  $(SRCDIR)/interp.c
498         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/interp.c
500 cmath.ts.obj :   $(SRCDIR)/cmath.c
501         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/cmath.c
503 convert.ts.obj : $(SRCDIR)/convert.c
504         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/convert.c
506 strings.ts.obj : $(SRCDIR)/strings.c
507         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/strings.c
509 library.ts.obj : $(SRCDIR)/library.c
510         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/library.c
512 strmath.ts.obj : $(SRCDIR)/strmath.c
513         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/strmath.c
515 signals.ts.obj : $(SRCDIR)/signals.c
516         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/signals.c
518 macros.ts.obj :  $(SRCDIR)/macros.c
519         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/macros.c
521 envir.ts.obj :   $(SRCDIR)/envir.c
522         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/envir.c
524 expr.ts.obj :    $(SRCDIR)/expr.c
525         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/expr.c
527 wrappers.ts.obj :$(SRCDIR)/wrappers.c
528         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/wrappers.c
530 options.ts.obj : $(SRCDIR)/options.c
531         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/options.c
533 os_win.ts.obj :  $(SRCDIR)/os_win.c
534         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/os_win.c
536 os_other.ts.obj :  $(SRCDIR)/os_other.c
537         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/os_other.c
539 client.ts.obj :  $(SRCDIR)/client.c $(SRCDIR)\regina.ver
540         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/client.c
542 rexxsaa.ts.obj :  $(SRCDIR)/rexxsaa.c  $(SRCDIR)\rexxsaa.h $(SRCDIR)\regina.ver
543         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/rexxsaa.c
545 rexx.ts.obj : $(SRCDIR)/rexx.c $(SRCDIR)\regina.ver
546         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c -DRXLIB $(SRCDIR)/rexx.c
548 instore.ts.obj :  $(SRCDIR)/instore.c $(SRCDIR)\regina.ver
549         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/instore.c
551 mt_win32.ts.obj :$(SRCDIR)/mt_win32.c
552         $(CC) $(TSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/mt_win32.c
554 lexsrc.ts.obj : $(SRCDIR)/lexsrc.c $(SRCDIR)/rexx.h $(SRCDIR)/yaccsrc.h
555         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/lexsrc.c
557 yaccsrc.ts.obj : $(SRCDIR)/yaccsrc.c $(SRCDIR)/defs.h $(SRCDIR)/rexx.h
558         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c -DYYMAXDEPTH=10000 $(SRCDIR)/yaccsrc.c
560 extstack.ts.obj : $(SRCDIR)/extstack.c $(SRCDIR)/rexx.h
561         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/extstack.c
563 rexxbif.ts.obj : $(SRCDIR)/rexxbif.c $(SRCDIR)/rexx.h
564         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/rexxbif.c
566 gci_convert.h: $(SRCDIR)\gci\gci_convert.win32.vc
567         copy $(SRCDIR)\gci\gci_convert.win32.vc .\gci_convert.h
569 gci_call.ts.obj : $(SRCDIR)/gci/gci_call.c $(GCIHEADERS) gci_convert.h
570         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_call.c
572 gci_convert.ts.obj : $(SRCDIR)/gci/gci_convert.c $(GCIHEADERS) gci_convert.h
573         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_convert.c
575 gci_execute.ts.obj : $(SRCDIR)/gci/gci_execute.c $(GCIHEADERS)
576         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_execute.c
578 gci_helper.ts.obj : $(SRCDIR)/gci/gci_helper.c $(GCIHEADERS)
579         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_helper.c
581 gci_prepare.ts.obj : $(SRCDIR)/gci/gci_prepare.c $(GCIHEADERS)
582         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_prepare.c
584 gci_reginabridge.ts.obj : $(SRCDIR)/gci/gci_reginabridge.c $(GCIHEADERS)
585         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_reginabridge.c
587 gci_rxfuncdefine.ts.obj : $(SRCDIR)/gci/gci_rxfuncdefine.c $(GCIHEADERS)
588         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_rxfuncdefine.c
590 gci_tree.ts.obj : $(SRCDIR)/gci/gci_tree.c $(GCIHEADERS)
591         $(CC) $(OTHERTSCOPT) $(CC2O) $(TSDYN_COMP) -c $(SRCDIR)/gci/gci_tree.c
593 time64.ts.obj : $(SRCDIR)/contrib/time64.c $(SRCDIR)/rexx.h $(SRCDIR)/contrib/time64.h
594         $(CC) $(TSCOPT) $(CC2O) -c $(SRCDIR)/contrib/time64.c
597 # Rules for Regutil
599 # ole32.lib oleaut32.lib uuid.lib
600 regutil.dll: $(REGUTILOFILES)
601    $(LD_RXLIBPRE) $(LD_REGUTIL) $(REGUTILOFILES) $(LINKSHL) kernel32.lib advapi32.lib user32.lib
602    del regutil.lib
604 regfilesys.obj : $(REGUTILSRCDIR)/regfilesys.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
605    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regfilesys.c
607 regini.obj : $(REGUTILSRCDIR)/regini.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
608    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regini.c
610 regmacrospace.obj : $(REGUTILSRCDIR)/regmacrospace.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
611    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regmacrospace.c
613 regscreen.obj : $(REGUTILSRCDIR)/regscreen.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
614    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regscreen.c
616 regsem.obj : $(REGUTILSRCDIR)/regsem.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
617    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regsem.c
619 regsysparm.obj : $(REGUTILSRCDIR)/regsysparm.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
620    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regsysparm.c
622 regutil.obj : $(REGUTILSRCDIR)/regutil.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
623    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regutil.c
625 rxsupport.obj : $(REGUTILSRCDIR)/rxsupport.c $(REGUTILSRCDIR)/rxproto.h
626    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/rxsupport.c
628 random.obj : $(REGUTILSRCDIR)/random.c
629    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/random.c
631 regstem.obj : $(REGUTILSRCDIR)/regstem.c
632    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regstem.c
634 regwin.obj : $(REGUTILSRCDIR)/regwin.c
635    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regwin.c
637 regunicode.obj : $(REGUTILSRCDIR)/regunicode.c
638    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regunicode.c
640 regcrypt.obj : $(REGUTILSRCDIR)/regcrypt.c
641    $(CC) -c $(REGUTILCOPT) $(CC2O) $(DYN_COMP) $(REGUTILSRCDIR)/regcrypt.c
645 regutil.lib: $(REGUTILSTATFILES)
646    lib /OUT:regutil.lib $(REGUTILSTATFILES)
648 regfilesys.stat.obj : $(REGUTILSRCDIR)/regfilesys.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
649    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regfilesys.c
651 regini.stat.obj : $(REGUTILSRCDIR)/regini.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
652    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regini.c
654 regmacrospace.stat.obj : $(REGUTILSRCDIR)/regmacrospace.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
655    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regmacrospace.c
657 regscreen.stat.obj : $(REGUTILSRCDIR)/regscreen.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
658    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regscreen.c
660 regsem.stat.obj : $(REGUTILSRCDIR)/regsem.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
661    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regsem.c
663 regsysparm.stat.obj : $(REGUTILSRCDIR)/regsysparm.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
664    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regsysparm.c
666 regutil.stat.obj : $(REGUTILSRCDIR)/regutil.c $(REGUTILSRCDIR)/regutil.h $(REGUTILSRCDIR)/rxproto.h
667    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regutil.c
669 rxsupport.stat.obj : $(REGUTILSRCDIR)/rxsupport.c $(REGUTILSRCDIR)/rxproto.h
670    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/rxsupport.c
672 random.stat.obj : $(REGUTILSRCDIR)/random.c
673    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/random.c
675 regstem.stat.obj : $(REGUTILSRCDIR)/regstem.c
676    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regstem.c
678 regwin.stat.obj : $(REGUTILSRCDIR)/regwin.c
679    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regwin.c
681 regunicode.stat.obj : $(REGUTILSRCDIR)/regunicode.c
682    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regunicode.c
684 regcrypt.stat.obj : $(REGUTILSRCDIR)/regcrypt.c
685    $(CC) -c $(REGUTILCOPT) $(CC2O) /DDYNAMIC_STATIC $(REGUTILSRCDIR)/regcrypt.c
688 # Rules for sample programs
690 test1.dll.obj: $(SRCDIR)/test1.c
691         $(CC) -c $(COPT) $(CC2O) $(DYN_COMP) $(SRCDIR)/test1.c
693 rxtest1.dll: test1.dll.obj regina.dll
694         $(LD_RXLIBPRE) $(LD_RXLIB1) test1.dll.obj $(LINKSHL)
695         del rxtest1.lib
697 test1.obj: $(SRCDIR)/test1.c
698         $(CC) -c $(COPT) $(CC2O) /DDYNAMIC_STATIC $(SRCDIR)/test1.c
700 rxtest1.lib: test1.obj
701         lib /OUT:rxtest1.lib test1.obj
703 test2.dll.obj: $(SRCDIR)/test2.c
704         $(CC) -c $(COPT) $(CC2O) $(DYN_COMP) $(SRCDIR)/test2.c
706 rxtest2.dll: test2.dll.obj regina.dll
707         $(LD_RXLIBPRE) $(LD_RXLIB2) test2.dll.obj $(LINKSHL)
708         del rxtest2.lib
710 test2.obj: $(SRCDIR)/test2.c
711         $(CC) -c $(COPT) $(CC2O) /DDYNAMIC_STATIC $(SRCDIR)/test2.c
713 rxtest2.lib: test2.obj
714         lib /OUT:rxtest2.lib test2.obj
717 # Rules for resource files and version details
718 # We assume we have an already functional regina.exe
720 .\reginaw32dll.rc: $(SRCDIR)\regina.ver $(SRCDIR)\reginaw32dll.rc
721    .\trexx $(COMMONSRCDIR)\fixrc.rexx $(SRCDIR)\reginaw32dll.rc $@ $(VERDOT) $(VERDATE)
722 .\reginaw32exe.rc: $(SRCDIR)\regina.ver $(SRCDIR)\reginaw32exe.rc
723    .\trexx $(COMMONSRCDIR)\fixrc.rexx $(SRCDIR)\reginaw32exe.rc $@ $(VERDOT) $(VERDATE)
724 .\rxstackw32exe.rc: $(SRCDIR)\regina.ver $(SRCDIR)\rxstackw32exe.rc
725    .\trexx $(COMMONSRCDIR)\fixrc.rexx $(SRCDIR)\rxstackw32exe.rc $@ $(VERDOT) $(VERDATE)
726 .\rxqueuew32exe.rc: $(SRCDIR)\regina.ver $(SRCDIR)\rxqueuew32exe.rc
727    .\trexx $(COMMONSRCDIR)\fixrc.rexx $(SRCDIR)\rxqueuew32exe.rc $@ $(VERDOT) $(VERDATE)
728 .\rexxw32exe.rc: $(SRCDIR)\regina.ver $(SRCDIR)\rexxw32exe.rc
729    .\trexx $(COMMONSRCDIR)\fixrc.rexx $(SRCDIR)\rexxw32exe.rc $@ $(VERDOT) $(VERDATE)
732 # Rules for resources
734 reginaw32dll.obj reginaw32dll.res: .\reginaw32dll.rc
735    -copy $(SRCDIR)\reginaw32.ico .
736    rc /r /foreginaw32dll.res /i$(SRCDIR) .\reginaw32dll.rc
737    cvtres /MACHINE:IX86 /NOLOGO /OUT:reginaw32dll.obj reginaw32dll.res
740 reginaw32exe.obj reginaw32exe.res: .\reginaw32exe.rc
741    -copy $(SRCDIR)\reginaw32.ico .
742    rc /r /foreginaw32exe.res /i$(SRCDIR)\ .\reginaw32exe.rc
743    cvtres /MACHINE:IX86 /NOLOGO /OUT:reginaw32exe.obj reginaw32exe.res
745 rexxw32exe.obj rexxw32exe.res: .\rexxw32exe.rc
746    -copy $(SRCDIR)\reginaw32.ico .
747    rc /r /forexxw32exe.res /i$(SRCDIR)\ .\rexxw32exe.rc
748    cvtres /MACHINE:IX86 /NOLOGO /OUT:rexxw32exe.obj rexxw32exe.res
750 rxstackw32exe.obj rxstackw32exe.res: .\rxstackw32exe.rc
751    -copy $(SRCDIR)\reginaw32.ico .
752    rc /r /forxstackw32exe.res /i$(SRCDIR)\ .\rxstackw32exe.rc
753    cvtres /MACHINE:IX86 /NOLOGO /OUT:rxstackw32exe.obj rxstackw32exe.res
755 rxqueuew32exe.obj rxqueuew32exe.res: .\rxqueuew32exe.rc
756    -copy $(SRCDIR)\reginaw32.ico .
757    rc /r /forxqueuew32exe.res /i$(SRCDIR)\ .\rxqueuew32exe.rc
758    cvtres /MACHINE:IX86 /NOLOGO /OUT:rxqueuew32exe.obj rxqueuew32exe.res
761 ARCHIVE_FILES = $(ALLSRC) $(README) $(SRCDIR)/makefile.* \
762         $(SRCDIR)/*.rsp $(DEMOFILES) $(TRIPFILES) \
763         $(CONFFILES) $(SRCDIR)/*.def $(SRCDIR)/*.ico $(SRCDIR)/*.rc \
764         $(SRCDIR)/file_id* $(SRCDIR)/*.bat $(SRCDIR)/*.cmd $(YACCLEX_FILES) \
765         $(SRCDIR)/*.rexx $(UNIXFILES)
767 zip:
768         zip regna$(VER) $(ARCHIVE_FILES)
771 # Build NSIS package...
773 dist: all
774         copy $(SRCDIR)\regina_ss.ini .
775         copy $(SRCDIR)\regina_fa.ini .
776         copy $(SRCDIR)\regina_mt.ini .
777         copy $(SRCDIR)\regina.nsi .
778         copy $(SRCDIR)\common\uninstall.ico .
779         makensis /DVERSION=$(VERDOT) /DNODOTVER=$(VER) /DSRCDIR=$(SRCDIR) /DDOCDIR=$(REGINA_DOCDIR) /DARCH=w32 regina.nsi
781 binary: all
782         -mkdir dist
783         cd dist
784         -del /F /S *.*
785         copy ..\regina.exe
786         copy ..\regina.dll
787         copy ..\regutil.dll
788         copy ..\rexx.exe
789         copy ..\rxstack.exe
790         copy ..\rxqueue.exe
791         copy ..\*.mtb
792         copy $(SRCDIR)\COPYING-LIB
793         copy $(SRCDIR)\README.$(VER) README$(VER).txt
794         copy $(SRCDIR)\README.W32 READMEW32.txt
795         -mkdir include
796         copy $(SRCDIR)\rexxsaa.h include
797         -mkdir lib
798         copy ..\regina.lib lib
799         copy ..\rexx.lib lib
800         -mkdir demo
801         copy $(SRCDIR)\demo\*.rexx demo
802         copy $(SRCDIR)\regutil\*.rexx demo
803         copy ..\rxtest1.dll demo
804         copy ..\rxtest2.dll demo
805         -mkdir doc
806         copy $(REGINA_DOCDIR)\regina$(VER).pdf doc
807         -del ..\regina??w32.zip
808         zip -r ..\regina$(VER)w32 *
809         cd ..