Provided by: iraf-dev_2.16.1+2018.11.01-3_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.