Provided by: iraf-dev_2.17-1_amd64 bug

NAME

       xc - portable IRAF compile/link utility

SYNOPSIS

       xc [flags] files...

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:

            .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

       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).

FLAGS

       -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.

       -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.

       -c     Tells xc not to link, i.e., not to create an executable.

       -d     Causes debug messages to be printed during execution.

       -F, -f Do not delete the Fortran translation of an SPP source file.

       -g     Generates debugging information and (for VMS), links in the debugger.

       -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.

       -i2    Tells fortran to use I*2 by default.

       -i4    Tells fortran to use I*4 by default.

       -llib  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.

       -L     Creates a list file. VMS specific.

       -M, -m Tells the linker to create a link map.

       -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.

       -N     Same as -z for VMS.

       -Nh [filename]
              This tells xpp that the foreign definitions in the file specified should be used in
              preference to standard include files.

       -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.

       -O     Optimize object code produced; this is now the default, but this  switch  is  still
              provided for backwards compatibility.

       -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 must be specified when doing software development in  an  external
              or layered package.

       -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.

       -q     Disable optimization.  Opposite of -O.  Object code will be optimized by default.

       -s     Strips all symbols and debugging information.

       -S     Same as -s for VMS.

       -v     Verbose mode.  Causes messages to be printed during execution telling what  the  xc
              program is doing.

       -w     Suppress warnings.

       -X, -x Compile  and  link  for  debugging.   In  VMS/IRAF,  links  in the VMS debugger and
              symbols.

       -z     Create a non-shareable image (default).

SEE ALSO

       mkpkg(1), generic(1).

AUTHOR

       This manual page was taken from the xc.hlp file in the IRAF sources.