File: README.VMS

package info (click to toggle)
fudgit 2.42-6
  • links: PTS
  • area: non-free
  • in suites: potato, woody
  • size: 2,468 kB
  • ctags: 2,375
  • sloc: ansic: 27,729; makefile: 793; yacc: 724; lex: 102; asm: 29; fortran: 15
file content (120 lines) | stat: -rw-r--r-- 3,992 bytes parent folder | download
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
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VMS
(I do not know if it works for Posix-VMS)

 You need:
   C-Compiler
   bison (or another yacc)
   flex (or another lex to build the helpfile)
   termcap-library
	- I was using the GNU-version termcap-1.2. It sould be available on
	  every gnu-mirror.

 To make fudgit.exe:
   edit [.src]fudgit.h
	Here is an example:
	#define HELPFILE	"tool$dir:[fudgit]fudgit.help"
	#define DEFPAGER	"" /* important ! */
	#define DEFSHELL	"" /* important ! */
	#define FORMAT		"%10.8e" /* not "% 10.8e" ! */
	#define VFORMAT		"%.3g"
	#define HISTORY		".hist_fudgit"
	#define PLOTTING	"gnuplot" /* use the command, not the filename sys$disk:gnuplot */

   edit [.src]makevms.com to set up the libraries and
	compiler-options correctly.

   check if install_dummy.c exists. Copy install.dummy_c (or another
   filename your 'tar' substituted for install.dummy.c) to install_dummy.c

   enter @makevms in [.src] and hope.

 To make the help-file:
   $ set default [.docs]
   $ cc splittmpl.c
   $ link splittmpl,sys$library:vaxcrtl/lib
   $ flex latex2help.l
   $ cc lexyy.c
   $ link /exe=latex2help lexyy.obj,sys$library:vaxcrtl/lib
   $ latex2help:=$sys$disk:[]latex2help
   $ splittmpl:=$sys$disk:[]splittmpl
   $ latex2help credits.tex [-]Credits
   $ splittmpl -help reference.tmpl
   $ latex2help reference.help fudgit.help


 Here are some remarks:
   - many compiler- and linker-warnings are normal.
   - there are no bessel-functions.
   - on small machines (or small quota) CC may run out of virtual memory.
	-> Split readline.c or use cc/nooptimize or gcc
   - using gcc is somewhat difficult:
	1. edit makevms.com appropriate
	2. create the file gcc_scanfile.h (see below)
	3. try it. Most probably gcc will report 'conflicting types'.
	   search the source-code for the prototype declaration of the
	   conflicting function and comment it out /* */. try again.
   - the pipes which execute the plot and pager-commands do not work
	 as you would expect:
	1. after pclose() the process is killed 5 seconds later. Therefore
	   a pager would be killed before you could read the text.
	2. if the command fails, the command-line-interprter (CLI)
	   still runs and interpretes the piped text as commands.
	   popen() reports succes, if the CLI is started succesful.
	   So if you type 'quit' in pmode, gnuplot will exit, but
	   not the CLI. You can type 'logout' to exit.
	   So be careful with the Pager-command.
   - CTRL-C aborts fudgit instead of generating signal SIGINT.
	 The temporary files are not deleted and the subprocess is not killed.
	 You can kill them with the command 'stop /id=PID'.
	 'show user /full' gives you the process-id.

   - still to do:
	readline: filename-completion with directories.
		handle to cursor-motion correct after an output to stderr.
		(it wraps in the next line.)
	fudgit: better pipes
		make helpfile
	ctrl-c: exit with Ft_catcher.
		Is readline/readline.c the culprit ? I could disable
		ctrl-c with sigsetmask(), but not make it call Ft_catcher.
		readline.c: line 641: SIGINT: kill (getpid(), sig)
		I had not the time to play with the VMS-exception-handler.
		more math-functions.

Here are the VMS-defines for gcc_scanfile.h
---------- gcc_scanfile.h -----------------
/* defines for fudgit. gcc cannot handle so much defines on command-line */

#ifndef VERSION
#define VERSION "2.3.4"
#endif
#ifndef DATE
#define DATE "sometime"
#endif
/* #define VOID_SIGHANDLER	*/
/* #define NOUNISTD_H		*/
/* #define NOMALLOC_H		*/
#define CODETYPE
#define Code void
#define USE_GETCWD
#define NOGAMMA
#define NOTRUNC
#define NORINT
#define NOCBRT
#define NOHYP_TRIGO
#define NODRAND48
#define NOJN_YN
#define NOY0_Y1
#define NOMALLINFO
#define MACROPOP
#define system vms_system
/* for Readline */
#define GNU_TERMCAP
#define getenv vms_getenv
------------ end of gcc_scanfile.h --------

   Klaus Reimann
   Breslauer Ring 27
   D-61381 Friedrichsdorf
   Klaus.Reimann@studbox.uni-stuttgart.de