forked from gnuplot/gnuplot-old
/
makefile.win
363 lines (290 loc) · 10.4 KB
/
makefile.win
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
# make file for Borland C++ 3.1 Windows version
# and Win32 using Borland C++ 4.52, or 5.5 (the free download version)
# and Borland C++ Builder 1 (newer versions may work as well)
#
# This makefile may need some editing before it can be used. Check
# BCC installation path, the WIN32 and RUNTIME_LIB flags, in particular.
#
# The compile and link includes debug flags. Take them out if you
# do not want them included (-y -v -M, /m /s /v /l)
#
# New 991003: WIN32=1 build makes the helpers (doc2rtf, bf_test) as Win32
# console applications, instead of plain DOS programs. This
# way, it also works with those compilers missing a DOS option.
# New 20020311: Now also works with the free BC++ 5.5 command line tools.
# Un-comment the -DHAVE_SLEEP flag at the end of CFLAGS,
# choose the non-multithreading RUNTIME_LIB, and make with
# -DWIN32=1
# where to place wgnuplot.hlp helpfile
HELPFILE = wgnuplot.hlp
# location of Borland C compiler
TC = d:\bc31
# location of TLINK.EXE and BCC.EXE
BIN = $(TC)\bin\\
#The full path name of the help compiler. For BC++:
HC = $(BIN)\hc
# this comes with C++ Builder 1.0 (but doesn't seem to work):
#HC = $(TC)\help\tools\hcw /c /e
# or you can use the 'help workshop' available directly from MS:
#HC = h:\mssdk\bin\hcw /c/e
# WIN32=1 for Win32s or Win32 (--> '95 or NT)
# new: allow '-DWIN32=1' on make command line to take effect:
!if "$(WIN32)"==""
WIN32=0
!endif
# Uncomment _this_ for BC++ 4.52 (or others that give linker errors for
# the 'errno' variable)... :
RUNTIME_LIBRARY=cw32.lib
# ... or this for more modern ones (like C++Builder 1.0) -- it's the
# properly multithreading one:
#RUNTIME_LIBRARY=cw32mt.lib
# Choose which linker to use: traditional TurboLink or the newer Incremental
# linker.
LINK32=tlink32 # used by older compilers
#LINK32=ilink32 # this may be the only one you have...
!if $(WIN32)
# 32bit Windows compilation.
CC = bcc32
PROCESSOR_OPT =
DEFINE_HELPFILE = -DHELPFILE=\"$(HELPFILE)\"
# For BC++ 4.52, you may try this version with Pentium scheduling
# optimization. NB: bcc32a in 4.52 increased in bugginess quite
# a bit more than in program speed :-(
#CC = bcc32a
#PROCESSOR_OPT = -5
!else
# 16bit compilation:
CC = bcc
DEFINE_HELPFILE = -DHELPFILE="$(HELPFILE)"
!endif
# -c means don't link
# -ml means use large model (large code, large data)
# -M means produce link map
# -y means include line numbers for debugger
# -v means include debug info
# -w- means ignore warnings and do not report them
# -w-rvl ignore function must return a value error
# -Ff=128 means make data object > 128 FAR
# -W means window application
# -DREADLINE to use the history/line editing capability. If you want this
# capability add -DREADLINE to CFLAGS then add 'readline' to the /o
# section of the linker call.
!if $(WIN32)
CFLAGS = -c -W -M -G -y -v -w-rvl -w-use -w-par -w-aus -w-pro $(PROCESSOR_OPT) -I$(TC)\include -Iwin -DREADLINE=1 -DHAVE_STRNICMP -DWIN32 -DHAVE_STRERROR -DNO_GIH -DNOGAMMA -DWIN32_LEAN_AND_MEAN -DANSI_C -DHAVE_GETCWD # -DHAVE_SLEEP
CAUXFLAGS = -tWC -w-par -w-use -w-aus -f -N -M -y -v -d -I$(TC)\include -DWIN32 -DWINDOWS_NO_GUI -DHAVE_STRNICMP -DANSI_C
!else
CFLAGS = -c -O1 -W -ml -w-par -w-use -w-aus -f -h -N -M -y -v -d -Ff=8 -I$(TC)\include -Iwin -DREADLINE=1 -zEGPFAR_DATA -DHAVE_STRNICMP -DMSDOS=1 -DNO_GIH -DANSI_C -DHAVE_GETCWD -DNDEBUG -Dlint
CAUXFLAGS = -ml -w-par -w-use -w-aus -f -N -M -y -v -d -I$(TC)\include -DMSDOS=1 -DHAVE_STRNICMP -DANSI_C
!endif
OBJS = bitmap.obj command.obj contour.obj eval.obj graphics.obj graph3d.obj \
internal.obj misc.obj parse.obj plot.obj plot2d.obj plot3d.obj \
readline.obj scanner.obj set.obj show.obj specfun.obj standard.obj \
stdfn.obj term.obj util.obj version.obj binary.obj winmain.obj \
interpol.obj fit.obj matrix.obj datafile.obj alloc.obj util3d.obj \
hidden3d.obj time.obj help.obj
DLLOBJS = wgnuplib.obj wtext.obj wmenu.obj wpause.obj wgraph.obj wprinter.obj
CSOURCE5 = term\aed.trm term\cgi.trm term\cgm.trm term\debug.trm \
term\dumb.trm term\dxy.trm term\eepic.trm term\emf.trm \
term\emxvga.trm term\epslatex.trm term\epson.trm term\excl.trm \
term\fg.trm term\fig.trm term\ggi.trm term\hp26.trm \
term\hp2648.trm term\hpgl.trm term\hpljii.trm
CSOURCE6 = term\impcodes.h term\imagen.trm term\object.h \
term\iris4d.trm term\kyo.trm term\latex.trm term\pbm.trm term\pdf.trm term\win.trm
CSOURCE7 = term\post.trm term\qms.trm term\regis.trm term\sun.trm term\svg.trm \
term\t410x.trm term\tek.trm term\unixpc.trm term\unixplot.trm \
term\v384.trm term\x11.trm
CSOURCE8 = contour.c specfun.c binary.c interpol.obj
WINDOWS = makefile.win makefile.msw README.win win\wcommon.h \
win\wgnuplib.c win\wgnuplib.def win\wgnuplib.h win\wgnuplib.rc\
win\wgnuplot.def win\wgnuplot.hpj win\wgnuplot.mnu win\wgnuplot.rc \
win\wgraph.c win\winmain.c win\wmenu.c win\wpause.c \
win\wprinter.c win\wresourc.h win\wtext.c win\wtext.h \
win\geticon.c docs\doc2rtf.c term\win.trm win\wgnupl32.def
!if $(WIN32)
all: wgnupl32.exe $(HELPFILE) wgnuplot.mnu demo\bf_test.exe
!else
all: wgnuplot.exe wgnuplot.dll $(HELPFILE) wgnuplot.mnu demo\bf_test.exe
!endif
wgnuplot.exe: $(OBJS) win\wgnuplot.def win\wgnuplot.rc winmain.obj wgnuplot.lib
# $(BIN)tlink /Twe /c @&&!
$(BIN)tlink /Twe /c /s /v /l @&&!
$(TC)\lib\C0Wl +
bitmap command eval graphics graph3d help internal misc parse +
plot plot2d plot3d scanner set show specfun standard stdfn term util version contour +
binary interpol +
winmain +
readline +
fit matrix datafile alloc util3d hidden3d time +
,wgnuplot,wgnuplot, +
wgnuplot.lib +
$(TC)\lib\import +
$(TC)\lib\mathwl +
$(TC)\lib\cwl, +
win\wgnuplot.def
!
$(BIN)brc -30 -k -i$(TC)\include win\wgnuplot.rc wgnuplot.exe
# gnuplot.opt contains a list of the 'core' files, in case that's of
# any use...
wgnupl32.exe: $(OBJS) $(DLLOBJS) win\wgnupl32.def wgnupl32.res winmain.obj
# $(BIN)$(LINK32) /Tpe /c @&&!
$(BIN)$(LINK32) /Tpe /c /m /s /v @&&!
$(TC)\lib\C0W32 +
bitmap command eval graphics graph3d help internal misc parse +
plot plot2d plot3d scanner set show specfun standard stdfn term util version contour +
wgnuplib wtext wmenu wpause wgraph wprinter +
binary interpol +
winmain +
readline +
fit matrix datafile alloc util3d hidden3d time +
,wgnupl32,wgnupl32, +
$(TC)\lib\import32 +
$(TC)\lib\$(RUNTIME_LIBRARY), +
win\wgnupl32.def, wgnupl32.res
!
wgnupl32.res: win\wgnuplot.rc win\wgnuplib.rc
$(BIN)brcc32 -DWIN32 -i$(TC)\include -r -fowgnupl32 win\wgnuplot.rc
# default rules
.c.obj:
$(BIN)$(CC) @&&!
$(CFLAGS)
! $<
# rules
bitmap.obj: bitmap.c bitmap.h plot.h
command.obj: command.c plot.h setshow.h fit.h
$(BIN)$(CC) $(DEFINE_HELPFILE) @&&!
$(CFLAGS)
! command.c
contour.obj: contour.c plot.h
eval.obj: eval.c plot.h
graphics.obj: graphics.c plot.h setshow.h
graph3d.obj: graphics.c plot.h setshow.h
fit.obj: fit.c fit.h matrix.h plot.h
matrix.obj: matrix.c matrix.h fit.h
internal.obj: internal.c plot.h
misc.obj: misc.c plot.h setshow.h
parse.obj: parse.c plot.h
$(BIN)$(CC) @&&!
$(CFLAGS)
! parse.c
plot.obj: plot.c plot.h setshow.h
$(BIN)$(CC) @&&!
$(CFLAGS)
! plot.c
hidden3d.obj: hidden3d.c plot.h setshow.h
plot3d.obj: plot3d.c plot.h setshow.h
plot2d.obj: plot2d.c plot.h setshow.h
readline.obj: readline.c plot.h
scanner.obj: scanner.c plot.h
set.obj: set.c plot.h setshow.h
show.obj: show.c plot.h setshow.h
$(BIN)$(CC) $(DEFINE_HELPFILE) @&&!
$(CFLAGS)
! show.c
specfun.obj: specfun.c
standard.obj: standard.c plot.h
stdfn.obj: stdfn.c stdfn.h
interpol.obj: interpol.c plot.h setshow.h
term.obj: term.c term.h plot.h set.c show.c bitmap.h $(CSOURCE5) $(CSOURCE6) $(CSOURCE7) win\wgnuplib.h
$(BIN)$(CC) @&&!
$(CFLAGS)
! $(TERMFLAGS) -Iterm -I. term.c
util.obj: util.c plot.h
util3d.obj: util3d.c plot.h setshow.h
version.obj: version.c
winmain.obj: win\winmain.c win\wgnuplib.h win\wtext.h plot.h
$(BIN)$(CC) $(DEFINE_HELPFILE) @&&!
$(CFLAGS)
! win\winmain.c
wgnuplot.mnu: win\wgnuplot.mnu
copy win\wgnuplot.mnu wgnuplot.mnu
# different compiler options for DLL's */
!if $(WIN32)
DLLCC = $(BIN)$(CC) -DWIN32 -c -M -y -v -WE -I$(TC)\include -Iwin
!else
DLLCC = $(BIN)$(CC) -c -WD -ms! -w-par -f -M -y -v -w -N -I$(TC)\include -Iwin
!endif
wgnuplot.lib: wgnuplot.dll
$(BIN)implib wgnuplot.lib wgnuplot.dll
wgnuplot.dll: $(DLLOBJS) win/wgnuplib.def win/wgnuplib.rc
$(BIN)tlink /c /n /Twd /L$(TC)\lib /m /s /v /l @&&!
c0ds +
wgnuplib wtext wmenu wpause wgraph wprinter, +
wgnuplot.dll, +
wgnuplib.map, +
import mathws cws, +
win\wgnuplib.def
!
$(BIN)brc -30 -i$(TC)\include -t win\wgnuplib.rc wgnuplot.dll
wgnuplib.obj: win/wgnuplib.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wgnuplib.c
wmenu.obj: win/wmenu.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wmenu.c
wtext.obj: win/wtext.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wtext.c
wpause.obj: win/wpause.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wpause.c
wprinter.obj: win/wprinter.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wprinter.c
wgraph.obj: win/wgraph.c win/wgnuplib.h win/wcommon.h win/wresourc.h
$(DLLCC) win/wgraph.c
# convert gnuplot.doc to gnuplot.rtf
$(HELPFILE): win\gnuplot.rtf
$(HC) win\wgnuplot.hpj
win\gnuplot.rtf: doc2rtf.exe docs\gnuplot.doc win\wgnuplot.hpj
doc2rtf docs\gnuplot.doc win\gnuplot.rtf
doc2rtf.exe: docs\doc2rtf.c docs\termdoc.c docs\xref.c $(CSOURCE5) $(CSOURCE6) $(CSOURCE7)
$(BIN)$(CC) -edoc2rtf.exe @&&!
-D_Windows
-w-pro
$(CAUXFLAGS)
-I. -Iterm -Idocs
! docs\doc2rtf.c docs\termdoc.c docs\xref.c
# make binary demo files
demo\bf_test.exe: bf_test.c dbinary.obj dalloc.obj
$(BIN)$(CC) -edemo\bf_test.exe @&&!
$(CAUXFLAGS)
-L$(TC)\lib
! bf_test.c dbinary.obj dalloc.obj
cd demo
bf_test
cd ..
dalloc.obj: alloc.c
$(BIN)$(CC) -c @&&!
$(CAUXFLAGS)
! -odalloc.obj alloc.c
dbinary.obj: binary.c
$(BIN)$(CC) -c @&&!
$(CAUXFLAGS)
! -odbinary.obj binary.c
# clean up temporary files
clean:
del *.obj
del win\*.obj
del wgnuplot.map
del win\wgnuplot.res
del wgnupl32.map
del wgnupl32.res
del win\gnuplot.rtf
del doc2rtf.map
del doc2rtf.exe
del win\wgnuplib.res
del wgnuplib.map
del wgnuplot.lib
del bf_test.map
del demo\bf_test.map
del demo\bf_test.exe
realclean: veryclean
veryclean: clean
del wgnuplot.exe
del wgnuplot.hlp
del win\wgnuplot.hlp
-attrib -h wgnuplot.gid
del wgnuplot.gid
del wgnuplot.mnu
del wgnuplot.dll
del wgnupl32.exe
del demo\binary1
del demo\binary2
del demo\binary3
del demo\fit.log
del demo\soundfit.par