$ ! CONFIGURE.VMS -- configure command file for VMS $ ! $ ! Writen by John.Hasstedt@sunysb.edu. This command file creates config.h $ ! and either a make file or a command file. These files are based on the $ ! makefile.vms and buildvms.com files distributed with previous versions $ ! of gnuplot. $ ! $ ! Options are specified on the command line. I just set symbols on the $ ! command line to 1. This is rather crude, but it works. $ ! $ ! The options are: $ ! $ ! DECC, GNUC, VAXC -- The compiler. I have only tested this with DECC. $ ! MMS, MMK, MAK, COM -- The build procedure. If you specify MMS or MMK, $ ! you get DESCRIP.MMS in the [.SRC] directory; if you specify MAK, $ ! you get MAKEFILE. in the [.SRC] directory; if you specify COM, you $ ! get BUILD.COM in the [.SRC] directory. $ ! DECC$CRTL -- Use the DECC$CRTL backport library. See $ ! SYS$LIBRARY:DECC$CRTL.README for information on it. $ ! READLINE -- Use the included readline function. $ ! USE_MOUSE -- Include the mouse code $ ! $ ! For example, $ ! @CONFIGURE.VMS GNUC MAK $ ! will create [.SRC]MAKEFILE. with commands for building with GNUC. $ ! $ ! makefile.vms had the comments: $ ! ------------------------------------------------------------------------- $ ! use with the MAKE that was posted by Tony Ivanov (tony@gvgpvd.GVG.TEK.COM) $ ! in comp.os.vms on 5 December 1988 $ ! $ ! Modified 23 June 1999 to work with MMK; it should also work with MMS. $ ! John.Hasstedt@sunysb.edu. $ ! ------------------------------------------------------------------------- $ ! $ ! buildvms.com had the comment: $ ! ------------------------------------------------------------------------- $ ! lph: modified for compatibility with VMS 4.x (which lacks 'if ... endif'), $ ! but made the default DECC $ ! ------------------------------------------------------------------------- $ ! $ ! I have tried to maintain compatibility with V4.x--I have not used $ ! 'if ... endif' or 'gosub'; however, I do not have a V4.x system to test $ ! it on. $ ! $ ! The comments below are from buildvms.com about defining CFLAGS on $ ! different platforms. If you have problems compiling, these comments $ ! may help. If you need to change CFLAGS, you can change it below, or $ ! you can change it in the make file this file generates. Most of the $ ! defines are not necessary because I now use config.h. $ ! $ !----------------------------------------------------------------- $ ! A generic starting point $ ! $ !$ CFLAGS = "/NOWARN/NOOP/DEFINE=(''x11'NO_GIH,PIPES,''rtl')''pfix'" $ ! $ ! ---------------------------------------------------------------- $ ! $ ! For VMS 4.7 and VAX C v2.4 $ ! ("Compiler abort - virtual memory limits exceeded" if attempt $ ! to include all applicable terminals, but otherwise builds OK. $ ! Runtime problem: an exit handler error, also w/ gcc build; $ ! a VAXCRTL atexit bug?) $ ! $ ! Note: VAX uses D_FLOAT, maximum exponent ca 10e +/- 38; $ ! will cause problems with some of the demos $ ! $ !$ CFLAGS = "/NOOP/DEFINE=(HAVE_GETCWD, HAVE_SLEEP, "- $ ! +"SHORT_TERMLIST, NO_GIH,PIPES, ''rtl')" $ !$ ! $ ! $ !----------------------------------------------------------------- $ ! $ ! This will build with gcc v1.42 on VMS 4.7 $ ! (no virtual memory limit problem) $ ! $ ! gcc v1.42 string.h can prefix str routines w/ gnu_ (ifdef GCC_STRINGS) $ ! but the routines in GCCLIB are not prefixed w/ gcc_ :-( $ ! link with GCCLIB, then ignore the link warnings about multiple $ ! definitions of STR... in C$STRINGS $ ! $ ! GCC v1.42 has a locale.h, but neither gcc nor VMS v4.7 VAXCRTL has $ ! the setlocale function $ ! $ ! $ ! Note: _assert.c defines assert_gcc, if ndef NDEBUG, but $ ! cgm.trm undefines NDEBUG, so we always compile/link _assert.c $ ! $ !$ CFLAGS = "/NOOP/DEFINE=(''x11', HAVE_GETCWD,"- $ ! +" HAVE_SLEEP, NO_GIH, PIPES, ''rtl')" $ ! $ !----------------------------------------------------------------- $ VAXC = 0 $ GNUC = 0 $ DECC = 0 $ MMS = 0 $ MMK = 0 $ MAK = 0 $ COM = 0 $ DECC$CRTL = 0 $ READLINE = 0 $ USE_MOUSE = 0 $ ! $ IF (P1 .NES. "") THEN 'P1' = 1 $ IF (P2 .NES. "") THEN 'P2' = 1 $ IF (P3 .NES. "") THEN 'P3' = 1 $ IF (P4 .NES. "") THEN 'P4' = 1 $ IF (P5 .NES. "") THEN 'P5' = 1 $ IF (P6 .NES. "") THEN 'P6' = 1 $ IF (P7 .NES. "") THEN 'P7' = 1 $ IF (P8 .NES. "") THEN 'P8' = 1 $ ! $ ! Get compiler. I first check if the compiler was specified on the command $ ! line. If it wasn't, I check for what compiler is on the system. If $ ! there are several options, I use DECC, then GNUC, then VAXC. $ ! $ COMPILER = "" $ IF (VAXC) THEN COMPILER = "VAXC" $ IF (GNUC) THEN COMPILER = "GNUC" $ IF (DECC) THEN COMPILER = "DECC" $ IF (COMPILER .NES. "") THEN GOTO HAVECOMPILER $ VAXC = 1 $ GNUC = F$TRNLNM("GNU_CC") .NES. "" $ DECC = F$SEARCH("SYS$SYSTEM:DECC$COMPILER.EXE") .NES. "" $ IF (VAXC) THEN COMPILER = "VAXC" $ IF (GNUC) THEN COMPILER = "GNUC" $ IF (DECC) THEN COMPILER = "DECC" $HAVECOMPILER: $ ! $ ! Get the make tool. I first check if the tool was specified on the command $ ! line. If it wasn't, I check for what tool is on the system. If there are $ ! several options, I use MMS, then MMK, then MAKE, then the command file. $ ! $ MAKETOOL = "" $ IF (COM) THEN MAKETOOL = "COM" $ IF (MAK) THEN MAKETOOL = "MAKE" $ IF (MMK) THEN MAKETOOL = "MMK" $ IF (MMS) THEN MAKETOOL = "MMS" $ IF (MAKETOOL .NES. "") THEN GOTO HAVEMAKETOOL $ COM = 1 $ MAK = F$TYPE(MAKE) .NES. "" $ MMK = F$TYPE(MMK) .NES. "" $ MMS = F$SEARCH("SYS$SYSTEM:MMS.EXE") .NES. "" $ IF (COM) THEN MAKETOOL = "COM" $ IF (MAK) THEN MAKETOOL = "MAKE" $ IF (MMK) THEN MAKETOOL = "MMK" $ IF (MMS) THEN MAKETOOL = "MMS" $HAVEMAKETOOL: $ ! $ ! Check if the system has DECWindows. $ ! $ DECW = F$TRNLNM("DECW$INCLUDE") .NES. "" $ ! $ ! Get the architecture. $ ! $ ALPHA = F$GETSYI("HW_MODEL") .GE. 1024 $ ! $ ! Define symbols for things that vary with compiler: RTL (run time library), $ ! DPML (Digital Portable Math Library), and __CRTL_VER (DECC RTL version). $ ! $ DECC = 0 $ GNUC = 0 $ VAXC = 0 $ GOTO 'COMPILER' $ ! $DECC: $ DECC = 1 $ RTL = "DECCRTL" $ DPML = F$SEARCH("SYS$LIBRARY:DPML$SHR.EXE") .NES. "" $ IF (DECC$CRTL) THEN DEFINE/NOLOG DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE $ EXTRALIB = "" $ IF (DECC$CRTL) THEN EXTRALIB = ",SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY" $ CC/OBJECT=DEFINE_CRTL_VER.OBJ SYS$INPUT #include #include #include #include #ifndef __CRTL_VER # define __CRTL_VER __VMS_VER #endif main () { static $DESCRIPTOR(crtl,"__CRTL_VER"); struct dsc$descriptor_s val = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0}; static int tab = {1}; char str[10]; val.dsc$w_length = sprintf (str, "%d", __CRTL_VER); val.dsc$a_pointer = str; exit (lib$set_symbol (&crtl, &val, &tab)); } $ LINK/EXECUTABLE=DEFINE_CRTL_VER.EXE DEFINE_CRTL_VER.OBJ'EXTRALIB' $ RUN DEFINE_CRTL_VER.EXE $ DELETE/NOCONFIRM/NOLOG DEFINE_CRTL_VER.OBJ;*,DEFINE_CRTL_VER.EXE;* $ IF (DECC$CRTL) THEN DEASSIGN DECC$CRTLMAP $ __CRTL_VER = F$INTEGER(__CRTL_VER) $ GOTO COMPILERDONE $ ! $GNUC: $ GNUC = 1 $ IF (ALPHA) THEN RTL = "DECCRTL" $ IF (.NOT. ALPHA) THEN RTL = "VAXCRTL" $ IF (ALPHA) THEN DPML = F$SEARCH("SYS$LIBRARY:DPML$SHR.EXE") .NES. "" $ IF (.NOT. ALPHA) THEN DPML = 0 $ __CRTL_VER = 0 $ GOTO COMPILERDONE $ ! $VAXC: $ VAXC = 1 $ RTL = "VAXCRTL" $ DPML = 0 $ __CRTL_VER = 0 $ GOTO COMPILERDONE $ ! $COMPILERDONE: $ ! $ WRITE SYS$OUTPUT "Compiler: ", COMPILER $ WRITE SYS$OUTPUT "Make Tool: ", MAKETOOL $ WRITE SYS$OUTPUT "Run time library: ", RTL $ IF (__CRTL_VER .NE. 0) THEN WRITE SYS$OUTPUT "CRTL version: ", __CRTL_VER $ WRITE SYS$OUTPUT "Use DECC$CRTL: ", DECC$CRTL $ WRITE SYS$OUTPUT "Use readline: ", READLINE $ WRITE SYS$OUTPUT "Use mouse: ", USE_MOUSE $ ! $ ! Read in config.hin and write config.h. Define DCL symbols for all the $ ! symbols in config.hin, then write config.h, replacing the #undef with $ ! #define where necessary. Defining a symbol as 0 means to leave it #undef; $ ! defining it as 1 means to define it; defining it as a string means it $ ! should be defined as a string. $ ! $ const = 0 $ HAVE_STRINGIZE = DECC $ inline = 0 $ RETSIGTYPE = "void" $ size_t = 0 $ STAT_MACROS_BROKEN = 0 $ STDC_HEADERS = DECC $ X_DISPLAY_MISSING = 0 $ time_t = 0 $ HAVE_ATEXIT = DECC $ HAVE_BCOPY = DECC $ HAVE_BZERO = DECC $ HAVE_DOPRNT = 0 $ HAVE_ERF = DPML $ HAVE_ERFC = DPML $ HAVE_GAMMA = 0 $ HAVE_GETCWD = 1 $ HAVE_INDEX = DECC $ HAVE_LGAMMA = DECC .AND. ALPHA $ HAVE_MEMCPY = DECC $ HAVE_MEMMOVE = DECC $ HAVE_MEMSET = DECC $ HAVE_ON_EXIT = 0 $ HAVE_PCLOSE = __CRTL_VER .GE. 70000000 $ HAVE_POLL = 0 $ HAVE_POPEN = __CRTL_VER .GE. 70000000 $ HAVE_RINDEX = DECC $ HAVE_SELECT = 0 $ HAVE_SETVBUF = DECC $ HAVE_SLEEP = 1 $ HAVE_SNPRINTF = 0 $ HAVE_STPCPY = 0 $ HAVE_STRCASECMP = __CRTL_VER .GE. 70000000 $ HAVE_STRCHR = DECC $ HAVE_STRCSPN = DECC $ HAVE_STRDUP = __CRTL_VER .GE. 70000000 $ HAVE_STRERROR = DECC $ HAVE_STRICMP = 0 $ HAVE_STRNCASECMP = __CRTL_VER .GE. 70000000 $ HAVE_STRNICMP = 0 $ HAVE_STRRCHR = DECC $ HAVE_STRSTR = DECC $ HAVE_SYSINFO = 0 $ HAVE_TCGETATTR = 0 $ HAVE_VFPRINTF = 0 $ HAVE_ERRNO_H = DECC $ HAVE_FLOAT_H = DECC $ HAVE_LIBC_H = 0 $ HAVE_LIMITS_H = DECC $ HAVE_LOCALE_H = DECC $ HAVE_MALLOC_H = 0 $ HAVE_MATH_H = DECC $ HAVE_POLL_H = 0 $ HAVE_SGTTY_H = 0 $ HAVE_STDLIB_H = DECC $ HAVE_STRING_H = DECC $ HAVE_SYS_BSDTYPES_H = 0 $ HAVE_SYS_IOCTL_H = DECC $ HAVE_SYS_PARAM_H = 0 $ HAVE_SYS_SELECT_H = 0 $ HAVE_SYS_SOCKET_H = DECC $ HAVE_SYS_STAT_H = DECC $ HAVE_SYS_SYSTEMINFO_H = 0 $ HAVE_SYS_TIME_H = DECC $ HAVE_SYS_TIMEB_H = DECC $ HAVE_SYS_TYPES_H = DECC $ HAVE_SYS_UTSNAME_H = __CRTL_VER .GE. 70000000 $ HAVE_TERMIOS_H = 0 $ HAVE_TIME_H = DECC $ HAVE_UNISTD_H = DECC $ HAVE_VALUES_H = 0 $ HAVE_LIBM = DECC $ PACKAGE = 0 $ VERSION = 0 $ PROTOTYPES = DECC $ X11 = DECW $ GNUPLOT_X11 = 0 $ MSDOS = 0 $ DOS32 = 0 $ DJSVGA = 0 $ GRX21 = 0 $ EXTERN_ERRNO = 0 $ PIPES = __CRTL_VER .LT. 70000000 $ SELECT_TYPE_ARG1 = 0 $ SELECT_TYPE_ARG234 = 0 $ SELECT_TYPE_ARG5 = 0 $ LINUXVGA = 0 $ HAVE_LIBREADLINE = 0 $ GNUPLOT_HISTORY = 0 $ ! READLINE = 0 ! READLINE is defined above $ UNIXPLOT = 0 $ GNUGRAPH = 0 $ GNU_PLOTUTILS = 0 $ HAVE_LIBGD = 0 $ HAVE_LIBPNG = 0 $ CGI = 0 $ SUN = 0 $ NOCWDRC = 0 $ THIN_PLATE_SPLINES_GRID = 0 $ COLUMN_HELP = 0 $ IRIS = 0 $ MGR = 0 $ RGIP = 0 $ ! USE_MOUSE = 0 ! USE_MOUSE is defined above $ ! $ OPEN/READ IN CONFIG.HIN $ OPEN/WRITE OUT CONFIG.H $CONFIGLOOP: $ READ/END=CONFIGDONE IN REC $ IF (F$ELEMENT(0," ",REC) .NES. "#undef") THEN GOTO WRITELINE $ SYM = F$ELEMENT(1," ",REC) $ IF (F$TYPE('SYM') .EQS. "") THEN GOTO NOSYMBOL $ VAL = 'SYM' $ IF (F$TYPE(VAL) .EQS. "STRING" .OR. VAL .NE. 0) THEN - REC = "#define " + SYM + " " + F$STRING(VAL) $ GOTO WRITELINE $NOSYMBOL: $ WRITE SYS$OUTPUT "No DCL symbol for ", REC $WRITELINE: $ WRITE OUT REC $ GOTO CONFIGLOOP $CONFIGDONE: $ CLOSE IN $ CLOSE OUT $ ! $ ! Get a list of files from [.src]makefile.all. Skip lines until I find $ ! COREOBJS =, then read and extract the file names until I find a line $ ! that does not end in \. $ ! $ OPEN/READ IN [.SRC]MAKEFILE.ALL $FILELOOP1: $ READ/END=DONE IN REC $ IF (F$EXTRACT(0,8,REC) .NES. "COREOBJS") THEN GOTO FILELOOP1 $ REC = REC - "COREOBJS" - "=" $ REC = REC - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" $ COREOBJS = F$EDIT (REC-"\", "TRIM,COMPRESS") $ IF (F$ELEMENT(1,"\",REC) .EQS. "\") THEN GOTO FILELOOPDONE $FILELOOP2: $ READ/END=DONE IN REC $ REC = REC - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" - ".$(O)" $ COREOBJS = COREOBJS + " " + F$EDIT (REC-"\", "TRIM,COMPRESS") $ IF (F$ELEMENT(1,"\",REC) .NES. "\") THEN GOTO FILELOOP2 $FILELOOPDONE: $ CLOSE IN $ IF (.NOT. READLINE) THEN COREOBJS = COREOBJS - "readline " - " readline" $ ! $ ! List of terminal files; all are in [.term] and have an extension of .trm. $ ! $ CORETERM = "aed cgi dumb dxf dxy eepic epson fig hp26 hp2648 hpgl hpljii " - + "imagen iris4d kyo latex pbm pc post qms regis sun t410x tek " - + "unixpc unixplot v384 x11" $ OTHERTERM = "[-.term]impcodes.h [-.term]object.h gplt_x11.c" $ ! $ ! Define CFLAGS. $ ! $ CFLAGS = "/DEFINE=(NO_GIH,HAVE_CONFIG_H,''RTL')/INCLUDE=[-]" $ IF (DECC) THEN CFLAGS = CFLAGS + "/PREFIX=ALL" $ ! $ ! Write the make file. $ ! $ GOTO 'MAKETOOL' $MMS: $MMK: $ OPEN/WRITE MAKE [.SRC]DESCRIP.MMS $ GOTO WRITEMAKE $MAK: $ OPEN/WRITE MAKE [.SRC]MAKEFILE. $ GOTO WRITEMAKE $COM: $ OPEN/WRITE MAKE [.SRC]BUILD.COM $ GOTO WRITECOM $MAKEFILEDONE: $ CLOSE MAKE $ ! $ ! Write the option files $ ! $ OPEN/WRITE OPT [.SRC]GNUPLOT.OPT $ N = 0 $OPTLOOP: $ FILE = F$ELEMENT (N, " ", COREOBJS) $ IF (FILE .EQS. " ") THEN GOTO OPTDONE $ WRITE OPT FILE, ".obj" $ N = N + 1 $ GOTO OPTLOOP $OPTDONE: $ WRITE OPT "version.obj" $ CLOSE OPT $ IF (RTL .EQS. "DECCRTL") THEN GOTO NOVAXCOPT $ OPEN/WRITE OPT [.SRC]VAXC.OPT $ WRITE OPT "sys$library:vaxcrtl.exe/share" $ CLOSE OPT $NOVAXCOPT: $ IF (.NOT. DECW) THEN GOTO NODECW $ OPEN/WRITE OPT [.SRC]X11.OPT $ WRITE OPT "sys$library:decw$xlibshr.exe/share" $ CLOSE OPT $NODECW: $ EXIT $ ! $WRITEMAKE: $ WRITE MAKE "O = obj" $ WRITE MAKE "X = exe" $ IF (VAXC) THEN WRITE MAKE "CC = CC" $ IF (VAXC) THEN WRITE MAKE "EXTRALIB =" $ IF (GNUC) THEN WRITE MAKE "CC = GCC/NOCASE" $ IF (GNUC) THEN WRITE MAKE "CRTL_SHARE =" $ IF (GNUC) THEN WRITE MAKE "EXTRALIB = ,GNU_CC:[000000]GCCLIB/LIB" $ IF (DECC) THEN WRITE MAKE "CC = CC" $ IF (DECC .AND. .NOT. DECC$CRTL) THEN WRITE MAKE "EXTRALIB =" $ IF (DECC .AND. DECC$CRTL) THEN - WRITE MAKE "EXTRALIB = ,SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY" $ IF (RTL .EQS. "VAXCRTL") THEN - WRITE MAKE "CRTL_SHARE = ,SYS$DISK:[]VAXC.OPT/OPT" $ IF (RTL .NES. "VAXCRTL") THEN WRITE MAKE "CRTL_SHARE =" $ WRITE MAKE "CFLAGS = ", CFLAGS $ WRITE MAKE "TERMFLAGS = /INCLUDE=([-],[-.TERM])" $ WRITE MAKE "" $ WRITE MAKE "OBJS = \" $ N = 0 $WRITEMAKE_L1: $ FILE = F$ELEMENT (N, " ", COREOBJS) $ IF (FILE .EQS. " ") THEN GOTO WRITEMAKE_D1 $ WRITE MAKE " ", FILE, ".$(O) \" $ N = N + 1 $ GOTO WRITEMAKE_L1 $WRITEMAKE_D1: $ WRITE MAKE " version.$(O) vms.$(O)" $ WRITE MAKE "" $ WRITE MAKE "TERM = \" $ N = 0 $WRITEMAKE_L2: $ FILE = F$ELEMENT (N, " ", CORETERM) $ IF (FILE .EQS. " ") THEN GOTO WRITEMAKE_D2 $ WRITE MAKE " [-.term]", FILE, ".trm \" $ N = N + 1 $ GOTO WRITEMAKE_L2 $WRITEMAKE_D2: $ WRITE MAKE " ", OTHERTERM $ WRITE MAKE "" $ ALL = "" $ IF (DECC$CRTL) THEN ALL = ALL + " logicals" $ ALL = ALL + " gnuplot.$(X)" $ IF (DECW) THEN ALL = ALL + " gnuplot_x11.$(X)" $ ALL = ALL + " gnuplot.hlp gnuplot.hlb \" $ WRITE MAKE "all : ", ALL $ WRITE MAKE " [-.demo]binary1. [-.demo]binary2. [-.demo]binary3." $ WRITE MAKE " @ ! a no-op to suppress a MMS warning" $ WRITE MAKE "" $ IF (DECC$CRTL) THEN WRITE MAKE "logicals :" $ IF (DECC$CRTL) THEN - WRITE MAKE " @ define/nolog decc$crtlmap sys$library:decc$crtl.exe" $ WRITE MAKE "" $ COPY SYS$INPUT: MAKE $ DECK gnuplot.$(X) : $(OBJS) link /executable=gnuplot.$(X) \ vms.$(O),gnuplot.opt/option$(EXTRALIB)$(CRTL_SHARE) gnuplot_x11.$(X) : gplt_x11.$(O) stdfn.$(O) link /executable=gnuplot_x11.$(X) \ gplt_x11.$(O),stdfn.$(O),x11.opt/option$(EXTRALIB)$(CRTL_SHARE) gplt_x11.$(O) : gplt_x11.c $(CC) $(CFLAGS) $(X11FLAGS) $< [-.demo]binary1. [-.demo]binary2. [-.demo]binary3. : bf_test.$(X) set default [-.demo] run [-.src]bf_test.$(X) set default [-.src] bf_test.$(X) : bf_test.$(O) binary.$(O) alloc.$(O) link /executable=bf_test.$(X) bf_test.$(O),binary.$(O),alloc.$(O) gnuplot.hlb : gnuplot.hlp library/create/help gnuplot.hlb gnuplot.hlp .IFDEF OLD_HLP gnuplot.hlp : doc2hlp.$(X) [-.docs]gnuplot.doc define/user sys$input [-.docs]gnuplot.doc define/user sys$output []gnuplot.hlp run doc2hlp.$(X) doc2hlp.$(X) : [-.docs]doc2hlp.c [-.docs]termdoc.c $(CC) /include=([-.docs],[],[-.term]) \ [-.docs]doc2hlp.c,[-.docs]termdoc.c link /executable=doc2hlp.$(X) doc2hlp.$(O),termdoc.$(O)$(CRTL_SHARE) .ELSE gnuplot.hlp : [-.docs]gnuplot.rnh RUNOFF $< /OUTPUT=$@ [-.docs]gnuplot.rnh : [-.docs]doc2rnh.$(X) [-.docs]gnuplot.doc MCR $< [-.docs]gnuplot.doc $@ [-.docs]doc2rnh.$(X) : [-.docs]doc2rnh.$(O) [-.docs]termdoc.$(O) link /executable=$@ $+ $(CRTL_SHARE) [-.docs]doc2rnh.$(O) [-.docs]termdoc.$(O) : [-.docs]termdoc.c ![-.docs]allterm.h $(CC) /object=$@ $(CFLAGS) /include=([],[-],[-.term]) $*.c .ENDIF term.$(O) : term.h term.c $(TERM) $(CC) $(CFLAGS) $(TERMFLAGS) term.c /object=term.$(O) $(OBJS) : plot.h command.$(O) help.$(O) misc.$(O) : help.h command.$(O) graphics.$(O) graph3d.$(O) misc.$(O) plot.$(O) set.$(O) show.$(O) term.O interpol.$(O) : setshow.h command.$(O) fit.$(O) matrix.$(O) : fit.h fit.$(O) matrix.$(O) : matrix.h bitmap.$(O) term.$(O) : bitmap.h clean : purge/log delete/log *.$(O);* delete/log *.$(X);* delete/log gnuplot.hlp;*,gnuplot.hlb;* delete/log [-.docs]*.$(O);*,*.$(X);*,gnuplot.rnh;* delete/log [-.demo]binary1.;*,binary2.;*,binary3.;* $EOD $ GOTO MAKEFILEDONE $ ! $WRITECOM: $ WRITE MAKE - "$ ! Command file to compile/link gnuplot, gnuplot_x11, and make gnuplot.hlb" $ WRITE MAKE "$ !" $ WRITE MAKE "$ on error then goto finish" $ WRITE MAKE "$ O = ""obj""" $ WRITE MAKE "$ X = ""exe""" $ IF (VAXC) THEN WRITE MAKE "$ CC = ""CC""" $ IF (VAXC) THEN WRITE MAKE "$ EXTRALIB = """ $ IF (GNUC) THEN WRITE MAKE "$ CC = ""GCC/NOCASE""" $ IF (GNUC) THEN WRITE MAKE "$ CRTL_SHARE = """ $ IF (GNUC) THEN WRITE MAKE "$ EXTRALIB = "",GNU_CC:[000000]GCCLIB/LIB""" $ IF (DECC) THEN WRITE MAKE "$ CC = ""CC""" $ IF (DECC .AND. .NOT. DECC$CRTL) THEN WRITE MAKE "$ EXTRALIB = """"" $ IF (DECC .AND. DECC$CRTL) THEN - WRITE MAKE "$ EXTRALIB = "",SYS$LIBRARY:DECC$CRTL.OLB/LIBRARY""" $ IF (RTL .EQS. "VAXCRTL") THEN - WRITE MAKE "$ CRTL_SHARE = "",SYS$DISK:[]VAXC.OPT/OPT""" $ IF (RTL .NES. "VAXCRTL") THEN WRITE MAKE "$ CRTL_SHARE = """"" $ WRITE MAKE "$ CFLAGS = ""''CFLAGS'""" $ WRITE MAKE "$ TERMFLAGS = ""/INCLUDE=([-],[-.TERM])""" $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ define/nolog x11 decw$include" $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ define/nolog sys sys$library" $ WRITE MAKE "$ set verify" $ IF (DECC$CRTL) THEN - WRITE MAKE "$ define/nolog decc$crtlmap sys$library:decc$crtl.exe" $ N = 0 $WRITECOM_L1: $ FILE = F$ELEMENT (N, " ", COREOBJS) $ IF (FILE .EQS. " ") THEN GOTO WRITECOM_D1 $ IF (FILE .EQS. "term") THEN WRITE MAKE "$ cc 'CFLAGS' 'TERMFLAGS' ", FILE, ".c" $ IF (FILE .NES. "term") THEN WRITE MAKE "$ cc 'CFLAGS' ", FILE, ".c" $ N = N + 1 $ GOTO WRITECOM_L1 $WRITECOM_D1: $ WRITE MAKE "$ cc 'CFLAGS' version.c" $ WRITE MAKE "$ cc 'CFLAGS' vms.c" $ IF (GNUC) THEN WRITE MAKE "$ cc 'CFLAGS' GNU_CC_INCLUDE:[000000]_assert.c" $ WRITE MAKE "$ !" $ WRITE MAKE "$ link /executable=gnuplot.exe -" $ N = 0 $WRITECOM_L2: $ FILE = F$ELEMENT (N, " ", COREOBJS) $ IF (FILE .EQS. " ") THEN GOTO WRITECOM_D2 $ WRITE MAKE " ", FILE, ".obj, -" $ N = N + 1 $ GOTO WRITECOM_L2 $WRITECOM_D2: $ WRITE MAKE " version.obj,vms.obj'EXTRALIB' 'CTRL_SHARE'" $ WRITE MAKE "$ cc 'CFLAGS' bf_test.c" $ WRITE MAKE "$ link /executable=bf_test.exe -" $ WRITE MAKE " bf_test.obj,binary.obj,alloc.obj'EXTRALIB' 'CTRL_SHARE'" $ WRITE MAKE "$ cd [-.demo]" $ WRITE MAKE "$ run [-.src]bf_test.exe" $ WRITE MAKE "$ cd [-.src]" $ IF (DECW) THEN WRITE MAKE "$ cc 'CFLAGS' gplt_x11.c" $ IF (DECW) THEN WRITE MAKE "$ cc 'CFLAGS' stdfn.c" $ IF (DECW) THEN WRITE MAKE "$ link /executable=gnuplot_x11.exe -" $ IF (DECW) THEN WRITE MAKE " gplt_x11.obj,stdfn.obj -" $ IF (DECW) THEN WRITE MAKE " 'EXTRALIB' 'CTRL_SHARE',x11.opt/option" $ COPY SYS$INPUT: MAKE $ DECK $ set def [-.docs] $ if f$locate("ALL_TERM_DOC",CFLAGS).ne.f$length(CFLAGS) then - copy /concatenate [-.term]*.trm []allterm.h $ cc 'CFLAGS' /OBJ=doc2rnh.obj/include=([],[-],[-.term],[-.src]) doc2rnh.c $ cc 'CFLAGS' /OBJ=termdoc.obj/include=([],[-],[-.term],[-.src]) termdoc.c $ SET DEF [-.src] ! CTRL_SHARE is defined as being in [] $ link [-.docs]doc2rnh.obj,termdoc.obj /exe=[-.docs]doc2rnh 'extralib''CTRL_SHARE' $ doc2rnh := $sys$disk:[-.docs]doc2rnh $ doc2rnh [-.docs]gnuplot.doc [-.docs]gnuplot.rnh $ RUNOFF [-.docs]gnuplot.rnh $ library/create/help sys$disk:[]gnuplot.hlb gnuplot.hlp $! $FINISH: $EOD $ WRITE MAKE "$ set noverify" $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ deassign x11" $ IF (VAXC .AND. DECW) THEN WRITE MAKE "$ deassign sys" $ WRITE MAKE "$ exit" $ GOTO MAKEFILEDONE