XC(1)
π XC β the IRAF compile/link bestie (man page, section 1) π
okay so like. XC(1), IRAF commands, section 1. she's a portable IRAF compile/link utility and she's literally the moment. π
β¨ NAME β¨
xc β portable IRAF compile/link utility. that's her. that's the whole vibe. π¦
β¨ SYNOPSIS β¨
xc [flags] files...
β¨ DESCRIPTION β¨
so XC is a machine independent utility for compiling and linking IRAF tasks or files. bestie she is versatile. she can also compile and/or link non-IRAF files and tasks, no gatekeeping. π«Ά
she can generate fortran from xpp or ratfor code, compile any number of files, and then link them if you want. XC accepts and maps IRAF virtual filenames, but β and this is the part where you gotta listen β since she's a standalone bootstrap utility, the environment is not passed, so logical directories cannot be used. no cap. π
It is suggested that everyone stick with the iraf virtual file name extensions. like, everybody. peer pressure but make it helpful. those extensions are: .x, .r, .f, .c, .s, .o, .a, .e. and here's what they mean, in order, iconic to iconic:
.xβ SPP code.rβ Ratfor code.fβ Fortran code.cβ C code.sβ Macro assembler code.oβ Object module.aβ Library file.eβ Executable Image
XC is available both in the CL and as a standalone task. usage is equivalent in either case, so pick your fighter, she doesn't care. π
β¨ FLAGS β¨
-cβ tells xc not to link, aka not to create an executable. we're just vibing with the compiling, no final product. π-dβ causes debug messages to be printed during execution. she's oversharing, let her. π₯-F,-fβ do not delete the Fortran translation of an SPP source file. keep the receipts bestie.-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. she's going independent. π-Hβ link a host program as with-h, but include the VOS libraries. same energy, extra libraries, slay. β-Aβ force architecture specific include files. assertive. we love her.-Cβ link a host program which has a C main. we may need to tweak the command line as a special case here since we normally assume Fortran sources. it's giving special treatment and honestly she earned it. π-/flag,-//fooβ pass flag to host compiler without further interpretation.-/flagbecomes-foo,-//foobecomesfoo. relay that message verbatim, no editing, no notes. π-Ddefineβ pass a-Ddefineflag on to the host compiler. simple. clean. delivered. β¨-Idirβ pass a-Idirflag on to the host compiler. a special case is-Inolibcwhich disables automatic inclusion of the IRAF LIBC includes (hlib$libc). that's the exception bestie, write it down. πΈ-llib,-Ldirβ this tells the linker which library files or library directories besides the standard ones to include. these must be either on the current directory, or in an IRAF system library (lib$orhlib$). 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. like ma'am, do not do that. π-Nβ generates the output temp file in/tmpduring the link, then moves it to the output directory in one operation when done. for cases such as linking in an NFS-mounted directory, where all the NFS i/o may slow the link down excessively. she's avoiding the lag fr fr. π-Nh [filename]β this tells xpp that the foreign definitions in the file specified should be used in preference to standard include files. main character definitions only. π-oβ this flag redirects the output of the compile if used in conjunction with-coption, 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. so basically, name your baby or she'll name it for you. πΌ-Oβ optimize object code produced; this is now the default, but this switch is still provided for backwards compatibility. she's always been optimizing, the flag is just nostalgia at this point. π§-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 namePKGENVmay 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. mandatory bestie, not optional. π«Ά-qβ disable optimization. opposite of-O. object code will be optimized by default. so like,-qis the "no thoughts head empty" button. π-wβ suppress warnings. forwarded to the compiler and linker. we're ignoring the haters and also the diagnostics. π-xβ compile and link for debugging. detective mode activated. π-z,-e,-t,-T,-sβ ignored. provided for backward compatibility. they're just here for the nostalgia, they do nothing, iconic behavior honestly. π-Vβ print XC version identification. she'll tell you who she is. β
β¨ SEE ALSO β¨
mkpkg(1), generic(1). go read those next bestie, they're in the group chat too. π
β¨ AUTHOR β¨
this manual page was taken from the xc.hlp file in the IRAF sources. credit where credit is due. π
okay that's the whole page!! this one shipped as IRAF 2.17, dated June 2021, and yes the girlies were thriving that summer. go compile something and text me when it works. bye bestie, slay, periodt ππ β¨
π¦ where this page comes from
- debian trixie: iraf-dev 2.18.1-2 Β· IRAF
- ubuntu questing: iraf-dev 2.18.1-2
- ubuntu resolute: iraf-dev 2.18.1-2build1 Β· IRAF
- ubuntu stonking: iraf-dev 2.18.1-2build1 Β· IRAF
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms