3.2 Compilation-Driver Interface Syntax

The compilation-driver program (xc32-gcc) preprocesses, compiles, assembles, and links C and assembly-language modules and library archives. This driver orchestrates the build process so that you often don't need to know which individual programs preprocess, compile, assemble, and link. The driver calls the appropriate individual tools to complete the requested build process.

The driver uses an input file's extension to determine which are assembly source files that must be passed to the assembler. In addition, it distinguishes between .S and .s extensions to determine which assembly source files need to be preprocessed before assembly. The compilation driver passes files with a *.S (upper case) extension to the preprocessor and the preprocessed output to the assembler, while the driver sends a file with a *.s (lower case) extension directly to the assembler.

The basic form of the compilation-driver command line is:
xc32-gcc [options] files
Note: Command-line options and file name extensions are case sensitive.
Some driver options affect the assembly process; however, to pass an assembler option to the assembler from the compilation driver, use the driver’s -Wa option with the assembly option as its argument. The argument must not contain white space. In the following example:
xc32-gcc -mprocessor=ATSAME54P20A
                                        -mdfp="Microchip/SAME54_DFP/3.9.244" -I"./include" ASMfile.S
-o"ASMfile.o" -DMYMACRO=1 -Wa,-ah="ASMfile.lst"
the -ah="ASMfile.lst" option is passed directly to the assembler.
Note: To use the xc32-gcc compilation driver from MPLAB X IDE, be sure to select the XC32 Compiler Toolchain for your project.