- Optification is done by auto builder now
[gnuplot] / configure.vms
1 $ ! CONFIGURE.VMS -- configure command file for VMS
2 $ !
3 $ ! Writen by John.Hasstedt@sunysb.edu.  This command file creates config.h
4 $ ! and either a make file or a command file.  These files are based on the
5 $ ! makefile.vms and buildvms.com files distributed with previous versions
6 $ ! of gnuplot.
7 $ !
8 $ ! Options are specified on the command line.  I just set symbols on the
9 $ ! command line to 1.  This is rather crude, but it works.
10 $ !
11 $ ! The options are:
12 $ !
13 $ ! DECC, GNUC, VAXC -- The compiler.  I have only tested this with DECC.
14 $ ! MMS, MMK, MAK, COM -- The build procedure.  If you specify MMS or MMK,
15 $ !    you get DESCRIP.MMS in the [.SRC] directory; if you specify MAK,
16 $ !    you get MAKEFILE. in the [.SRC] directory; if you specify COM, you
17 $ !    get BUILD.COM in the [.SRC] directory.
18 $ ! DECC$CRTL -- Use the DECC$CRTL backport library.  See
19 $ !    SYS$LIBRARY:DECC$CRTL.README for information on it.
20 $ ! READLINE -- Use the included readline function.
21 $ ! USE_MOUSE -- Include the mouse code
22 $ !
23 $ ! For example,
24 $ !     @CONFIGURE.VMS GNUC MAK
25 $ ! will create [.SRC]MAKEFILE. with commands for building with GNUC.
26 $ !
27 $ ! makefile.vms had the comments:
28 $ ! -------------------------------------------------------------------------
29 $ ! use with the MAKE that was posted by Tony Ivanov (tony@gvgpvd.GVG.TEK.COM)
30 $ ! in comp.os.vms on 5 December 1988
31 $ !
32 $ ! Modified 23 June 1999 to work with MMK; it should also work with MMS.
33 $ ! John.Hasstedt@sunysb.edu.
34 $ ! -------------------------------------------------------------------------
35 $ !
36 $ ! buildvms.com had the comment:
37 $ ! -------------------------------------------------------------------------
38 $ ! lph: modified for compatibility with VMS 4.x (which lacks 'if ... endif'),
39 $ ! but made the default DECC
40 $ ! -------------------------------------------------------------------------
41 $ !
42 $ ! I have tried to maintain compatibility with V4.x--I have not used
43 $ ! 'if ... endif' or 'gosub'; however, I do not have a V4.x system to test
44 $ ! it on.
45 $ !
46 $ ! The comments below are from buildvms.com about defining CFLAGS on
47 $ ! different platforms.  If you have problems compiling, these comments
48 $ ! may help.  If you need to change CFLAGS, you can change it below, or
49 $ ! you can change it in the make file this file generates.  Most of the
50 $ ! defines are not necessary because I now use config.h.
51 $ !
52 $ !-----------------------------------------------------------------
53 $ ! A generic starting point
54 $ !
55 $ !$ CFLAGS = "/NOWARN/NOOP/DEFINE=(''x11'NO_GIH,PIPES,''rtl')''pfix'"
56 $ !
57 $ ! ----------------------------------------------------------------
58 $ !
59 $ ! For  VMS 4.7 and VAX C v2.4
60 $ ! ("Compiler abort - virtual memory limits exceeded" if attempt
61 $ !  to include all applicable terminals, but otherwise builds OK.
62 $ !  Runtime problem: an exit handler error, also w/ gcc build;
63 $ !  a VAXCRTL atexit bug?)
64 $ !
65 $ ! Note: VAX uses  D_FLOAT, maximum exponent ca 10e +/- 38;
66 $ !       will cause problems with some of the demos
67 $ !
68 $ !$ CFLAGS    = "/NOOP/DEFINE=(HAVE_GETCWD, HAVE_SLEEP, "-
69 $ !               +"SHORT_TERMLIST, NO_GIH,PIPES, ''rtl')"
70 $ !$ !
71 $ !
72 $ !-----------------------------------------------------------------
73 $ !
74 $ ! This will build with gcc v1.42 on VMS 4.7
75 $ ! (no virtual memory limit problem)
76 $ !
77 $ ! gcc v1.42 string.h can prefix str routines w/ gnu_ (ifdef GCC_STRINGS)
78 $ ! but the routines in GCCLIB are not prefixed w/ gcc_  :-(
79 $ ! link with GCCLIB, then ignore the link warnings about multiple
80 $ ! definitions of STR... in C$STRINGS
81 $ !
82 $ ! GCC v1.42 has a locale.h, but neither gcc nor VMS v4.7 VAXCRTL has
83 $ ! the  setlocale function
84 $ !
85 $ !
86 $ ! Note: _assert.c defines assert_gcc, if ndef NDEBUG, but
87 $ !        cgm.trm undefines NDEBUG, so we always compile/link  _assert.c
88 $ !
89 $ !$ CFLAGS    = "/NOOP/DEFINE=(''x11', HAVE_GETCWD,"-
90 $ !             +" HAVE_SLEEP, NO_GIH, PIPES, ''rtl')"
91 $ !
92 $ !-----------------------------------------------------------------
93 $ VAXC = 0
94 $ GNUC = 0
95 $ DECC = 0
96 $ MMS = 0
97 $ MMK = 0
98 $ MAK = 0
99 $ COM = 0
100 $ DECC$CRTL = 0
101 $ READLINE = 0
102 $ USE_MOUSE = 0
103 $ !
104 $ IF (P1 .NES. "") THEN 'P1' = 1
105 $ IF (P2 .NES. "") THEN 'P2' = 1
106 $ IF (P3 .NES. "") THEN 'P3' = 1
107 $ IF (P4 .NES. "") THEN 'P4' = 1
108 $ IF (P5 .NES. "") THEN 'P5' = 1
109 $ IF (P6 .NES. "") THEN 'P6' = 1
110 $ IF (P7 .NES. "") THEN 'P7' = 1
111 $ IF (P8 .NES. "") THEN 'P8' = 1
112 $ !
113 $ ! Get compiler.  I first check if the compiler was specified on the command
114 $ ! line.  If it wasn't, I check for what compiler is on the system.  If
115 $ ! there are several options, I use DECC, then GNUC, then VAXC.
116 $ !
117 $ COMPILER = ""
118 $ IF (VAXC) THEN COMPILER = "VAXC"
119 $ IF (GNUC) THEN COMPILER = "GNUC"
120 $ IF (DECC) THEN COMPILER = "DECC"
121 $ IF (COMPILER .NES. "") THEN GOTO HAVECOMPILER
122 $ VAXC = 1
123 $ GNUC = F$TRNLNM("GNU_CC") .NES. ""
124 $ DECC = F$SEARCH("SYS$SYSTEM:DECC$COMPILER.EXE") .NES. ""
125 $ IF (VAXC) THEN COMPILER = "VAXC"
126 $ IF (GNUC) THEN COMPILER = "GNUC"
127 $ IF (DECC) THEN COMPILER = "DECC"
128 $HAVECOMPILER:
129 $ !
130 $ ! Get the make tool.  I first check if the tool was specified on the command
131 $ ! line.  If it wasn't, I check for what tool is on the system.  If there are
132 $ ! several options, I use MMS, then MMK, then MAKE, then the command file.
133 $ !
134 $ MAKETOOL = ""
135 $ IF (COM) THEN MAKETOOL = "COM"
136 $ IF (MAK) THEN MAKETOOL = "MAKE"
137 $ IF (MMK) THEN MAKETOOL = "MMK"
138 $ IF (MMS) THEN MAKETOOL = "MMS"
139 $ IF (MAKETOOL .NES. "") THEN GOTO HAVEMAKETOOL
140 $ COM = 1
141 $ MAK = F$TYPE(MAKE) .NES. ""
142 $ MMK = F$TYPE(MMK) .NES. ""
143 $ MMS = F$SEARCH("SYS$SYSTEM:MMS.EXE") .NES. ""
144 $ IF (COM) THEN MAKETOOL = "COM"
145 $ IF (MAK) THEN MAKETOOL = "MAKE"
146 $ IF (MMK) THEN MAKETOOL = "MMK"
147 $ IF (MMS) THEN MAKETOOL = "MMS"
148 $HAVEMAKETOOL:
149 $ !
150 $ ! Check if the system has DECWindows.
151 $ !
152 $ DECW = F$TRNLNM("DECW$INCLUDE") .NES. ""
153 $ !
154 $ ! Get the architecture.
155 $ !
156 $ ALPHA = F$GETSYI("HW_MODEL") .GE. 1024
157 $ !
158 $ ! Define symbols for things that vary with compiler:  RTL (run time library),
159 $ ! DPML (Digital Portable Math Library), and __CRTL_VER (DECC RTL version).
160 $ !
161 $ DECC = 0
162 $ GNUC = 0
163 $ VAXC = 0
164 $ GOTO 'COMPILER'
165 $ !
166 $DECC:
167 $ DECC = 1
168 $ RTL = "DECCRTL"
169 $ DPML = F$SEARCH("SYS$LIBRARY:DPML$SHR.EXE") .NES. ""
170 $ IF (DECC$CRTL) THEN DEFINE/NOLOG DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
171 $ EXTRALIB = ""
172 $ IF (DECC$CRTL) THEN EXTRALIB = ",SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY"
173 $ CC/OBJECT=DEFINE_CRTL_VER.OBJ SYS$INPUT
174       #include <stdlib.h>
175       #include <stdio.h>
176       #include <descrip.h>
177       #include <lib$routines.h>
178       #ifndef __CRTL_VER
179       #   define __CRTL_VER __VMS_VER
180       #endif
181       main () {
182       static $DESCRIPTOR(crtl,"__CRTL_VER");
183       struct dsc$descriptor_s val = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
184       static int tab = {1};
185       char str[10];
186       val.dsc$w_length = sprintf (str, "%d", __CRTL_VER);
187       val.dsc$a_pointer = str;
188       exit (lib$set_symbol (&crtl, &val, &tab));
189       }
190 $ LINK/EXECUTABLE=DEFINE_CRTL_VER.EXE DEFINE_CRTL_VER.OBJ'EXTRALIB'
191 $ RUN DEFINE_CRTL_VER.EXE
192 $ DELETE/NOCONFIRM/NOLOG DEFINE_CRTL_VER.OBJ;*,DEFINE_CRTL_VER.EXE;*
193 $ IF (DECC$CRTL) THEN DEASSIGN DECC$CRTLMAP
194 $ __CRTL_VER = F$INTEGER(__CRTL_VER)
195 $ GOTO COMPILERDONE
196 $ !
197 $GNUC:
198 $ GNUC = 1
199 $ IF (ALPHA) THEN RTL = "DECCRTL"
200 $ IF (.NOT. ALPHA) THEN RTL = "VAXCRTL"
201 $ IF (ALPHA) THEN DPML = F$SEARCH("SYS$LIBRARY:DPML$SHR.EXE") .NES. ""
202 $ IF (.NOT. ALPHA) THEN DPML = 0
203 $ __CRTL_VER = 0
204 $ GOTO COMPILERDONE
205 $ !
206 $VAXC:
207 $ VAXC = 1
208 $ RTL = "VAXCRTL"
209 $ DPML = 0
210 $ __CRTL_VER = 0
211 $ GOTO COMPILERDONE
212 $ !
213 $COMPILERDONE:
214 $ !
215 $ WRITE SYS$OUTPUT "Compiler:         ", COMPILER
216 $ WRITE SYS$OUTPUT "Make Tool:        ", MAKETOOL
217 $ WRITE SYS$OUTPUT "Run time library: ", RTL
218 $ IF (__CRTL_VER .NE. 0) THEN WRITE SYS$OUTPUT "CRTL version:     ", __CRTL_VER
219 $ WRITE SYS$OUTPUT "Use DECC$CRTL:    ", DECC$CRTL
220 $ WRITE SYS$OUTPUT "Use readline:     ", READLINE
221 $ WRITE SYS$OUTPUT "Use mouse:        ", USE_MOUSE
222 $ !
223 $ ! Read in config.hin and write config.h.  Define DCL symbols for all the
224 $ ! symbols in config.hin, then write config.h, replacing the #undef with
225 $ ! #define where necessary.  Defining a symbol as 0 means to leave it #undef;
226 $ ! defining it as 1 means to define it; defining it as a string means it
227 $ ! should be defined as a string.
228 $ !
229 $ const = 0
230 $ HAVE_STRINGIZE = DECC
231 $ inline = 0
232 $ RETSIGTYPE = "void"
233 $ size_t = 0
234 $ STAT_MACROS_BROKEN = 0
235 $ STDC_HEADERS = DECC
236 $ X_DISPLAY_MISSING = 0
237 $ time_t = 0
238 $ HAVE_ATEXIT = DECC
239 $ HAVE_BCOPY = DECC
240 $ HAVE_BZERO = DECC
241 $ HAVE_DOPRNT = 0
242 $ HAVE_ERF = DPML
243 $ HAVE_ERFC = DPML
244 $ HAVE_GAMMA = 0
245 $ HAVE_GETCWD = 1
246 $ HAVE_INDEX = DECC
247 $ HAVE_LGAMMA = DECC .AND. ALPHA
248 $ HAVE_MEMCPY = DECC
249 $ HAVE_MEMMOVE = DECC
250 $ HAVE_MEMSET = DECC
251 $ HAVE_ON_EXIT = 0
252 $ HAVE_PCLOSE = __CRTL_VER .GE. 70000000
253 $ HAVE_POLL = 0
254 $ HAVE_POPEN = __CRTL_VER .GE. 70000000
255 $ HAVE_RINDEX = DECC
256 $ HAVE_SELECT = 0
257 $ HAVE_SETVBUF = DECC
258 $ HAVE_SLEEP = 1
259 $ HAVE_SNPRINTF = 0
260 $ HAVE_STPCPY = 0
261 $ HAVE_STRCASECMP = __CRTL_VER .GE. 70000000
262 $ HAVE_STRCHR = DECC
263 $ HAVE_STRCSPN = DECC
264 $ HAVE_STRDUP = __CRTL_VER .GE. 70000000
265 $ HAVE_STRERROR = DECC
266 $ HAVE_STRICMP = 0
267 $ HAVE_STRNCASECMP = __CRTL_VER .GE. 70000000
268 $ HAVE_STRNICMP = 0
269 $ HAVE_STRRCHR = DECC
270 $ HAVE_STRSTR = DECC
271 $ HAVE_SYSINFO = 0
272 $ HAVE_TCGETATTR = 0
273 $ HAVE_VFPRINTF = 0
274 $ HAVE_ERRNO_H = DECC
275 $ HAVE_FLOAT_H = DECC
276 $ HAVE_LIBC_H = 0
277 $ HAVE_LIMITS_H = DECC
278 $ HAVE_LOCALE_H = DECC
279 $ HAVE_MALLOC_H = 0
280 $ HAVE_MATH_H = DECC
281 $ HAVE_POLL_H = 0
282 $ HAVE_SGTTY_H = 0
283 $ HAVE_STDLIB_H = DECC
284 $ HAVE_STRING_H = DECC
285 $ HAVE_SYS_BSDTYPES_H = 0
286 $ HAVE_SYS_IOCTL_H = DECC
287 $ HAVE_SYS_PARAM_H = 0
288 $ HAVE_SYS_SELECT_H = 0
289 $ HAVE_SYS_SOCKET_H = DECC
290 $ HAVE_SYS_STAT_H = DECC
291 $ HAVE_SYS_SYSTEMINFO_H = 0
292 $ HAVE_SYS_TIME_H = DECC
293 $ HAVE_SYS_TIMEB_H = DECC
294 $ HAVE_SYS_TYPES_H = DECC
295 $ HAVE_SYS_UTSNAME_H = __CRTL_VER .GE. 70000000
296 $ HAVE_TERMIOS_H = 0
297 $ HAVE_TIME_H = DECC
298 $ HAVE_UNISTD_H = DECC
299 $ HAVE_VALUES_H = 0
300 $ HAVE_LIBM = DECC
301 $ PACKAGE = 0
302 $ VERSION = 0
303 $ PROTOTYPES = DECC
304 $ X11 = DECW
305 $ GNUPLOT_X11 = 0
306 $ MSDOS = 0
307 $ DOS32 = 0
308 $ DJSVGA = 0
309 $ GRX21 = 0
310 $ EXTERN_ERRNO = 0
311 $ PIPES = __CRTL_VER .LT. 70000000
312 $ SELECT_TYPE_ARG1 = 0
313 $ SELECT_TYPE_ARG234 = 0
314 $ SELECT_TYPE_ARG5 = 0
315 $ LINUXVGA = 0
316 $ HAVE_LIBREADLINE = 0
317 $ GNUPLOT_HISTORY = 0
318 $ ! READLINE = 0    ! READLINE is defined above
319 $ UNIXPLOT = 0
320 $ GNUGRAPH = 0
321 $ GNU_PLOTUTILS = 0
322 $ HAVE_LIBGD = 0
323 $ HAVE_LIBPNG = 0
324 $ CGI = 0
325 $ SUN = 0
326 $ NOCWDRC = 0
327 $ THIN_PLATE_SPLINES_GRID = 0
328 $ COLUMN_HELP = 0
329 $ IRIS = 0
330 $ MGR = 0
331 $ RGIP = 0
332 $ ! USE_MOUSE = 0   ! USE_MOUSE is defined above         
333 $ !
334 $ OPEN/READ IN CONFIG.HIN
335 $ OPEN/WRITE OUT CONFIG.H
336 $CONFIGLOOP:
337 $ READ/END=CONFIGDONE IN REC
338 $ IF (F$ELEMENT(0," ",REC) .NES. "#undef") THEN GOTO WRITELINE
339 $ SYM = F$ELEMENT(1," ",REC)
340 $ IF (F$TYPE('SYM') .EQS. "") THEN GOTO NOSYMBOL
341 $ VAL = 'SYM'
342 $ IF (F$TYPE(VAL) .EQS. "STRING" .OR. VAL .NE. 0) THEN -
343             REC = "#define " + SYM + " " + F$STRING(VAL)
344 $ GOTO WRITELINE
345 $NOSYMBOL:
346 $ WRITE SYS$OUTPUT "No DCL symbol for ", REC
347 $WRITELINE:
348 $ WRITE OUT REC
349 $ GOTO CONFIGLOOP
350 $CONFIGDONE:
351 $ CLOSE IN
352 $ CLOSE OUT
353 $ !
354 $ ! Get a list of files from [.src]makefile.all.  Skip lines until I find
355 $ ! COREOBJS =, then read and extract the file names until I find a line
356 $ ! that does not end in \.
357 $ !
358 $ OPEN/READ IN [.SRC]MAKEFILE.ALL
359 $FILELOOP1:
360 $ READ/END=DONE IN REC
361 $ IF (F$EXTRACT(0,8,REC) .NES. "COREOBJS") THEN GOTO FILELOOP1
362 $ REC = REC - "COREOBJS" - "="
363 $ REC = REC - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)"
364 $ COREOBJS = F$EDIT (REC-"\", "TRIM,COMPRESS")
365 $ IF (F$ELEMENT(1,"\",REC) .EQS. "\") THEN GOTO FILELOOPDONE
366 $FILELOOP2:
367 $ READ/END=DONE IN REC
368 $ REC = REC - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)"
369 $ COREOBJS = COREOBJS + " " + F$EDIT (REC-"\", "TRIM,COMPRESS")
370 $ IF (F$ELEMENT(1,"\",REC) .NES. "\") THEN GOTO FILELOOP2
371 $FILELOOPDONE:
372 $ CLOSE IN
373 $ IF (.NOT. READLINE) THEN COREOBJS = COREOBJS - "readline " - " readline"
374 $ !
375 $ ! List of terminal files; all are in [.term] and have an extension of .trm.
376 $ !
377 $ CORETERM = "aed cgi dumb dxf dxy eepic epson fig hp26 hp2648 hpgl hpljii " -
378            + "imagen iris4d kyo latex pbm pc post qms regis sun t410x tek " -
379            + "unixpc unixplot v384 x11"
380 $ OTHERTERM = "[-.term]impcodes.h [-.term]object.h gplt_x11.c"
381 $ !
382 $ ! Define CFLAGS.
383 $ !
384 $ CFLAGS = "/DEFINE=(NO_GIH,HAVE_CONFIG_H,''RTL')/INCLUDE=[-]"
385 $ IF (DECC) THEN CFLAGS = CFLAGS + "/PREFIX=ALL"
386 $ !
387 $ ! Write the make file.
388 $ !
389 $ GOTO 'MAKETOOL'
390 $MMS:
391 $MMK:
392 $ OPEN/WRITE MAKE [.SRC]DESCRIP.MMS
393 $ GOTO WRITEMAKE
394 $MAK:
395 $ OPEN/WRITE MAKE [.SRC]MAKEFILE.
396 $ GOTO WRITEMAKE
397 $COM:
398 $ OPEN/WRITE MAKE [.SRC]BUILD.COM
399 $ GOTO WRITECOM
400 $MAKEFILEDONE:
401 $ CLOSE MAKE
402 $ !
403 $ ! Write the option files
404 $ !
405 $ OPEN/WRITE OPT [.SRC]GNUPLOT.OPT
406 $ N = 0
407 $OPTLOOP:
408 $ FILE = F$ELEMENT (N, " ", COREOBJS)
409 $ IF (FILE .EQS. " ") THEN GOTO OPTDONE
410 $ WRITE OPT FILE, ".obj"
411 $ N = N + 1
412 $ GOTO OPTLOOP
413 $OPTDONE:
414 $ WRITE OPT "version.obj"
415 $ CLOSE OPT
416 $ IF (RTL .EQS. "DECCRTL") THEN GOTO NOVAXCOPT
417 $ OPEN/WRITE OPT [.SRC]VAXC.OPT
418 $ WRITE OPT "sys$library:vaxcrtl.exe/share"
419 $ CLOSE OPT
420 $NOVAXCOPT:
421 $ IF (.NOT. DECW) THEN GOTO NODECW
422 $ OPEN/WRITE OPT [.SRC]X11.OPT
423 $ WRITE OPT "sys$library:decw$xlibshr.exe/share"
424 $ CLOSE OPT
425 $NODECW:
426 $ EXIT
427 $ !
428 $WRITEMAKE:
429 $ WRITE MAKE "O = obj"
430 $ WRITE MAKE "X = exe"
431 $ IF (VAXC) THEN WRITE MAKE "CC = CC"
432 $ IF (VAXC) THEN WRITE MAKE "EXTRALIB ="
433 $ IF (GNUC) THEN WRITE MAKE "CC = GCC/NOCASE"
434 $ IF (GNUC) THEN WRITE MAKE "CRTL_SHARE ="
435 $ IF (GNUC) THEN WRITE MAKE "EXTRALIB = ,GNU_CC:[000000]GCCLIB/LIB"
436 $ IF (DECC) THEN WRITE MAKE "CC = CC"
437 $ IF (DECC .AND. .NOT. DECC$CRTL) THEN WRITE MAKE "EXTRALIB ="
438 $ IF (DECC .AND. DECC$CRTL) THEN -
439     WRITE MAKE "EXTRALIB = ,SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY"
440 $ IF (RTL .EQS. "VAXCRTL") THEN -
441     WRITE MAKE "CRTL_SHARE = ,SYS$DISK:[]VAXC.OPT/OPT"
442 $ IF (RTL .NES. "VAXCRTL") THEN WRITE MAKE "CRTL_SHARE ="
443 $ WRITE MAKE "CFLAGS = ", CFLAGS
444 $ WRITE MAKE "TERMFLAGS = /INCLUDE=([-],[-.TERM])"
445 $ WRITE MAKE ""
446 $ WRITE MAKE "OBJS = \"
447 $ N = 0
448 $WRITEMAKE_L1:
449 $ FILE = F$ELEMENT (N, " ", COREOBJS)
450 $ IF (FILE .EQS. " ") THEN GOTO WRITEMAKE_D1
451 $ WRITE MAKE "       ", FILE, ".$(O) \"
452 $ N = N + 1
453 $ GOTO WRITEMAKE_L1
454 $WRITEMAKE_D1:
455 $ WRITE MAKE "       version.$(O) vms.$(O)"
456 $ WRITE MAKE ""
457 $ WRITE MAKE "TERM = \"
458 $ N = 0
459 $WRITEMAKE_L2:
460 $ FILE = F$ELEMENT (N, " ", CORETERM)
461 $ IF (FILE .EQS. " ") THEN GOTO WRITEMAKE_D2
462 $ WRITE MAKE "       [-.term]", FILE, ".trm \"
463 $ N = N + 1
464 $ GOTO WRITEMAKE_L2
465 $WRITEMAKE_D2:
466 $ WRITE MAKE "       ", OTHERTERM
467 $ WRITE MAKE ""
468 $ ALL = ""
469 $ IF (DECC$CRTL) THEN ALL = ALL + " logicals"
470 $ ALL = ALL + " gnuplot.$(X)"
471 $ IF (DECW) THEN ALL = ALL + " gnuplot_x11.$(X)"
472 $ ALL = ALL + " gnuplot.hlp gnuplot.hlb \"
473 $ WRITE MAKE "all :  ", ALL
474 $ WRITE MAKE "        [-.demo]binary1. [-.demo]binary2. [-.demo]binary3."
475 $ WRITE MAKE "        @       ! a no-op to suppress a MMS warning"
476 $ WRITE MAKE ""
477 $ IF (DECC$CRTL) THEN WRITE MAKE "logicals :"
478 $ IF (DECC$CRTL) THEN -
479     WRITE MAKE "        @ define/nolog decc$crtlmap sys$library:decc$crtl.exe"
480 $ WRITE MAKE ""
481 $ COPY SYS$INPUT: MAKE
482 $ DECK
483
484 gnuplot.$(X) : $(OBJS)
485         link /executable=gnuplot.$(X) \
486             vms.$(O),gnuplot.opt/option$(EXTRALIB)$(CRTL_SHARE)
487
488 gnuplot_x11.$(X) : gplt_x11.$(O) stdfn.$(O)
489         link /executable=gnuplot_x11.$(X) \
490             gplt_x11.$(O),stdfn.$(O),x11.opt/option$(EXTRALIB)$(CRTL_SHARE)
491
492 gplt_x11.$(O) : gplt_x11.c
493         $(CC) $(CFLAGS) $(X11FLAGS) $<
494
495 [-.demo]binary1. [-.demo]binary2. [-.demo]binary3. : bf_test.$(X)
496         set default [-.demo]
497         run [-.src]bf_test.$(X)
498         set default [-.src]
499
500 bf_test.$(X) : bf_test.$(O) binary.$(O) alloc.$(O)
501         link /executable=bf_test.$(X) bf_test.$(O),binary.$(O),alloc.$(O)
502
503 gnuplot.hlb : gnuplot.hlp
504         library/create/help gnuplot.hlb gnuplot.hlp
505
506 .IFDEF OLD_HLP
507 gnuplot.hlp : doc2hlp.$(X) [-.docs]gnuplot.doc
508         define/user sys$input [-.docs]gnuplot.doc
509         define/user sys$output []gnuplot.hlp
510         run doc2hlp.$(X)
511
512 doc2hlp.$(X) : [-.docs]doc2hlp.c [-.docs]termdoc.c
513         $(CC) /include=([-.docs],[],[-.term]) \
514              [-.docs]doc2hlp.c,[-.docs]termdoc.c
515         link /executable=doc2hlp.$(X) doc2hlp.$(O),termdoc.$(O)$(CRTL_SHARE)
516 .ELSE
517 gnuplot.hlp : [-.docs]gnuplot.rnh
518         RUNOFF $< /OUTPUT=$@
519
520 [-.docs]gnuplot.rnh : [-.docs]doc2rnh.$(X) [-.docs]gnuplot.doc
521         MCR $< [-.docs]gnuplot.doc $@
522
523 [-.docs]doc2rnh.$(X) : [-.docs]doc2rnh.$(O) [-.docs]termdoc.$(O)
524         link /executable=$@  $+ $(CRTL_SHARE)
525
526 [-.docs]doc2rnh.$(O) [-.docs]termdoc.$(O) : [-.docs]termdoc.c ![-.docs]allterm.h
527         $(CC) /object=$@ $(CFLAGS) /include=([],[-],[-.term]) $*.c
528 .ENDIF
529
530 term.$(O) : term.h term.c $(TERM)
531         $(CC) $(CFLAGS) $(TERMFLAGS) term.c /object=term.$(O)
532
533 $(OBJS) : plot.h
534
535 command.$(O) help.$(O) misc.$(O) : help.h
536
537 command.$(O) graphics.$(O) graph3d.$(O) misc.$(O) plot.$(O) set.$(O) show.$(O) term.O interpol.$(O) : setshow.h
538
539 command.$(O) fit.$(O) matrix.$(O) : fit.h
540
541 fit.$(O) matrix.$(O) : matrix.h
542
543 bitmap.$(O) term.$(O) : bitmap.h
544
545 clean :
546         purge/log
547         delete/log *.$(O);*
548         delete/log *.$(X);*
549         delete/log gnuplot.hlp;*,gnuplot.hlb;*
550         delete/log [-.docs]*.$(O);*,*.$(X);*,gnuplot.rnh;*
551         delete/log [-.demo]binary1.;*,binary2.;*,binary3.;*
552 $EOD
553 $ GOTO MAKEFILEDONE
554 $ !
555 $WRITECOM:
556 $ WRITE MAKE -
557     "$ ! Command file to compile/link gnuplot, gnuplot_x11, and make gnuplot.hlb"
558 $ WRITE MAKE "$ !"
559 $ WRITE MAKE "$ on error then goto finish"
560 $ WRITE MAKE "$ O = ""obj"""
561 $ WRITE MAKE "$ X = ""exe"""
562 $ IF (VAXC) THEN WRITE MAKE "$ CC = ""CC"""
563 $ IF (VAXC) THEN WRITE MAKE "$ EXTRALIB = """
564 $ IF (GNUC) THEN WRITE MAKE "$ CC = ""GCC/NOCASE"""
565 $ IF (GNUC) THEN WRITE MAKE "$ CRTL_SHARE = """
566 $ IF (GNUC) THEN WRITE MAKE "$ EXTRALIB = "",GNU_CC:[000000]GCCLIB/LIB"""
567 $ IF (DECC) THEN WRITE MAKE "$ CC = ""CC"""
568 $ IF (DECC .AND. .NOT. DECC$CRTL) THEN WRITE MAKE "$ EXTRALIB = """""
569 $ IF (DECC .AND. DECC$CRTL) THEN -
570     WRITE MAKE "$ EXTRALIB = "",SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY"""
571 $ IF (RTL .EQS. "VAXCRTL") THEN -
572     WRITE MAKE "$ CRTL_SHARE = "",SYS$DISK:[]VAXC.OPT/OPT"""
573 $ IF (RTL .NES. "VAXCRTL") THEN WRITE MAKE "$ CRTL_SHARE = """""
574 $ WRITE MAKE "$ CFLAGS = ""''CFLAGS'"""
575 $ WRITE MAKE "$ TERMFLAGS = ""/INCLUDE=([-],[-.TERM])"""
576 $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ define/nolog x11 decw$include"
577 $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ define/nolog sys sys$library"
578 $ WRITE MAKE "$ set verify"
579 $ IF (DECC$CRTL) THEN -
580     WRITE MAKE "$ define/nolog decc$crtlmap sys$library:decc$crtl.exe"
581 $ N = 0
582 $WRITECOM_L1:
583 $ FILE = F$ELEMENT (N, " ", COREOBJS)
584 $ IF (FILE .EQS. " ") THEN GOTO WRITECOM_D1
585 $ IF (FILE .EQS. "term") THEN WRITE MAKE "$ cc 'CFLAGS' 'TERMFLAGS' ", FILE, ".c"
586 $ IF (FILE .NES. "term") THEN WRITE MAKE "$ cc 'CFLAGS' ", FILE, ".c"
587 $ N = N + 1
588 $ GOTO WRITECOM_L1
589 $WRITECOM_D1:
590 $ WRITE MAKE "$ cc 'CFLAGS' version.c"
591 $ WRITE MAKE "$ cc 'CFLAGS' vms.c"
592 $ IF (GNUC) THEN WRITE MAKE "$ cc 'CFLAGS' GNU_CC_INCLUDE:[000000]_assert.c"
593 $ WRITE MAKE "$ !"
594 $ WRITE MAKE "$ link /executable=gnuplot.exe -"
595 $ N = 0
596 $WRITECOM_L2:
597 $ FILE = F$ELEMENT (N, " ", COREOBJS)
598 $ IF (FILE .EQS. " ") THEN GOTO WRITECOM_D2
599 $ WRITE MAKE "     ", FILE, ".obj, -"
600 $ N = N + 1
601 $ GOTO WRITECOM_L2
602 $WRITECOM_D2:
603 $ WRITE MAKE "     version.obj,vms.obj'EXTRALIB' 'CTRL_SHARE'"
604 $ WRITE MAKE "$ cc 'CFLAGS' bf_test.c"
605 $ WRITE MAKE "$ link /executable=bf_test.exe -"
606 $ WRITE MAKE "    bf_test.obj,binary.obj,alloc.obj'EXTRALIB' 'CTRL_SHARE'"
607 $ WRITE MAKE "$ cd [-.demo]"
608 $ WRITE MAKE "$ run [-.src]bf_test.exe"
609 $ WRITE MAKE "$ cd [-.src]"
610 $ IF (DECW) THEN WRITE MAKE "$ cc 'CFLAGS' gplt_x11.c"
611 $ IF (DECW) THEN WRITE MAKE "$ cc 'CFLAGS' stdfn.c"
612 $ IF (DECW) THEN WRITE MAKE "$ link /executable=gnuplot_x11.exe -"
613 $ IF (DECW) THEN WRITE MAKE "    gplt_x11.obj,stdfn.obj -"
614 $ IF (DECW) THEN WRITE MAKE "    'EXTRALIB' 'CTRL_SHARE',x11.opt/option"
615 $ COPY SYS$INPUT: MAKE
616 $ DECK
617 $ set def [-.docs]
618 $ if f$locate("ALL_TERM_DOC",CFLAGS).ne.f$length(CFLAGS) then -
619         copy /concatenate [-.term]*.trm []allterm.h
620 $ cc 'CFLAGS' /OBJ=doc2rnh.obj/include=([],[-],[-.term],[-.src]) doc2rnh.c
621 $ cc 'CFLAGS' /OBJ=termdoc.obj/include=([],[-],[-.term],[-.src]) termdoc.c
622 $ SET DEF [-.src]               ! CTRL_SHARE is defined as being in []
623 $ link [-.docs]doc2rnh.obj,termdoc.obj /exe=[-.docs]doc2rnh 'extralib''CTRL_SHARE'
624 $ doc2rnh := $sys$disk:[-.docs]doc2rnh
625 $ doc2rnh [-.docs]gnuplot.doc [-.docs]gnuplot.rnh
626 $ RUNOFF [-.docs]gnuplot.rnh
627 $ library/create/help sys$disk:[]gnuplot.hlb gnuplot.hlp
628 $!
629 $FINISH:
630 $EOD
631 $ WRITE MAKE "$ set noverify"
632 $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ deassign x11"
633 $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ deassign sys"
634 $ WRITE MAKE "$ exit"
635 $ GOTO MAKEFILEDONE