aboutsummaryrefslogtreecommitdiff
path: root/unix/boot/spp/xc.hlp
diff options
context:
space:
mode:
Diffstat (limited to 'unix/boot/spp/xc.hlp')
-rw-r--r--unix/boot/spp/xc.hlp197
1 files changed, 197 insertions, 0 deletions
diff --git a/unix/boot/spp/xc.hlp b/unix/boot/spp/xc.hlp
new file mode 100644
index 00000000..0e941b82
--- /dev/null
+++ b/unix/boot/spp/xc.hlp
@@ -0,0 +1,197 @@
+.help xc Oct89 softools
+.ih
+NAME
+xc -- portable IRAF compile/link utility
+.ih
+USAGE
+xc [flags] files
+.ih
+FLAGS
+.ls 10 -a
+To support VMS link options file. Next file is taken to be the VMS name
+of a link options file. This is primarily for using long lists of files
+or libraries and not for actual VMS Linker options, since XC adds continuation
+characters where it believes it is appropriate.
+.le
+.ls 10 -C
+Tells fortran to do array bound and other checking.
+By default no checking is done. From DCL fortran usually
+does array and overflow checking which is not used here.
+.le
+.ls 10 -c
+Tells \fIxc\fR not to link, i.e., not to create an executable.
+.le
+.ls 10 -d
+Causes debug messages to be printed during execution.
+.le
+.ls 10 -F, -f
+Do not delete the Fortran translation of an SPP source file.
+.le
+.ls 10 -g
+Generates debugging information and (for VMS), links in the debugger.
+.le
+.ls 10 -h
+Causes the executable to be linked as a host program, i.e., without the
+IRAF main and without searching the IRAF libraries, unless explicitly
+referenced on the command line. Used to compile and link host (e.g., Fortran)
+programs which may or may not reference the IRAF libraries.
+.le
+.ls 10 -i2
+Tells fortran to use I*2 by default.
+.le
+.ls 10 -i4
+Tells fortran to use I*4 by default.
+.le
+.ls 10 -l\fIlib\fR
+This tells the linker which libraries besides the standard
+ones to include. These must be either on the current
+directory, or in an IRAF system library (lib$ or hlib$).
+The library specification must be immediately after the option as in
+"-lxtools". No other option may follow the 'l' option in the same
+argument as in -lxtoolsO.
+.le
+.ls 10 -L
+Creates a list file. VMS specific.
+.le
+.ls 10 -M, -m
+Tells the linker to create a link map.
+.le
+.ls 10 -n
+Not really supported under VMS since "normal" users
+cannot install images. In Unix this is just a link
+option to make a shareable image.
+.le
+.ls 10 -N
+Same as -z for VMS.
+.le
+.ls 10 -Nh [filename]
+This tells xpp that the foreign definitions in the
+file specified should be used in preference to
+standard include files.
+.le
+.ls 10 -o
+This flag redirects the output of the compile if used in
+conjunction with -c option or specifies where the executable
+or object is to be placed. If not given the first file
+name is used to obtain the name for the executable or
+object.
+.le
+.ls 10 -O
+Optimize object code produced; this is now the default, but this switch
+is still provided for backwards compatibility.
+.le
+.ls 10 -p pkgname
+Load the package environment for the named external package, e.g.,
+"xc -c -p noao file.x". If the same package is always specified
+the environment variable or logical name PKGENV may be defined at the
+host level to accomplish the same thing. The package name \fImust\fR
+be specified when doing software development in an external or layered
+package.
+.le
+.ls 10 -P
+Check portability. This should be used all of the time in IRAF,
+but the VMS C compiler forces the use of non-standard
+constructs in some cases. Also <stdio.h> and <ctype.h> get
+complaints for the above reason. This may be used and probably
+should when working with Fortran due to Dec non-standard
+extension.
+.le
+.ls 10 -q
+Disable optimization. Opposite of -O. Object code will be optimized
+by default.
+.le
+.ls 10 -s
+Strips all symbols and debugging information.
+.le
+.ls 10 -S
+Same as -s for VMS.
+.le
+.ls 10 -v
+Verbose mode. Causes messages to be printed during execution telling
+what the \fIxc\fR program is doing.
+.le
+.ls 10 -w
+Suppress warnings.
+.le
+.ls 10 -X, -x
+Compile and link for debugging. In VMS/IRAF, links in the VMS debugger
+and symbols.
+.le
+.ls 10 -z
+Create a non-shareable image (default).
+.le
+.ih
+DESCRIPTION
+XC is a machine independent utility for compiling and linking IRAF
+tasks or files. The XC utility may also be used to compile and/or link
+non-IRAF files and tasks. The VMS version of XC supports all of the
+important flags except -D which VMS C doesn't support in any way.
+It can be used to generate fortran from xpp or ratfor code, to compile any
+number of files, and then link them if desired. XC accepts and maps IRAF
+virtual filenames, but since it is a standalone bootstrap utility the
+environment is not passed, hence logical directories cannot be used.
+
+The following extensions are supported by the VMS version of xc:
+.x, .r, .f, .ftn, .for, .c, .mar, .s, .o, .obj, .a, .olb, .e, .exe.
+It is suggested that everyone stick with the iraf virtual file name extensions.
+These are : .x, .r, .f, .c, .s, .o, .a, .e. The mapping of these to their
+VMS counterparts is:
+
+.ks
+.nf
+ .x -> .x SPP code
+ .r -> .r Ratfor code
+ .f -> .for Fortran code
+ .c -> .c C code
+ .s -> .mar Macro assembler code
+ .o -> .obj Object module
+ .a -> .olb Library file
+ .e -> .exe Executable Image
+.fi
+.ke
+
+
+XC is available both in the CL, via the foreign task interface, and as
+a standalone DCL callable task. Usage is equivalent in either case. Upper
+case flags must be quoted to be recognized (the upper case flags will be
+done away with at some point).
+.ih
+EXAMPLES
+Any upper case flags in the following examples must be doubly quoted in
+the CL, singly quoted in VMS, to make it to XC without VMS mapping
+everything to one case. Omit the "-x" flag on a UNIX system.
+
+1. Compile and link the source file "mytask.x" to produce the executable
+"mytask.e".
+
+ cl> xc mytask.x
+
+2. Translate the file "file.x" into Fortran.
+
+ cl> xc -f file.x
+
+3. Compile but do not link "mytask.x" and the support file "util.x".
+
+ cl> xc -c file.x util.x
+
+4. Now link these for debugging.
+
+ cl> xc -x file.o util.o
+
+5. Link the same files without the VMS debug stuff, but link in the library
+-ldeboor (the DeBoor spline routines) as well.
+
+ cl> xc file.o util.o -ldeboor
+
+XC is often combined with \fImkpkg\fR to automatically maintain large packages
+or libraries.
+.ih
+BUGS
+The -S flag should generate assembler
+output but does not presently do so in the VMS version. All case sensitive
+switches should be done away with in both the UNIX and VMS versions of the
+utility.
+.ih
+SEE ALSO
+mkpkg, generic
+.endhelp