# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 73
- 74
- 75
- 76
- 77
…
- 365
- 366

Compiler Command-Line Driver
 2012-2013 Microchip Technology Inc. DS50002071C-page 75
5.2.3 Input File Types
The compilation driver distinguishes source files, intermediate files and library files
solely by the file type, or extension. It recognizes the following file extensions, which
are case-sensitive.
There are no compiler restrictions imposed on the names of source files, but be aware
of case, name-length and other restrictions imposed by your operating system. If you
are using an IDE, avoid assembly source files whose basename is the same as the
basename of any project in which the file is used. This may result in the source file
being overwritten by a temporary file during the build process.
The terms source file and module are often used when talking about computer
programs. They are often used interchangeably, but they refer to the source code at
different points in the compilation sequence.
XC16_EXEC_
PREFIX
PIC30_EXEC_
PREFIX
If the environment variable is set, it specifies a prefix to use in the
names of subprograms executed by the compiler. No directory
delimiter is added when this prefix is combined with the name of a
subprogram, but you can specify a prefix that ends with a slash if you
wish. If the compiler cannot find the subprogram using the specified
prefix, it tries looking in your PATH environment variable.
If the environment variable is not set or set to an empty value, the
compiler driver chooses an appropriate value based on the standard
installation. If the installation has not been modified, this will result in
the driver being able to locate the required subprograms.
Other prefixes specified with the -B command line option take
precedence over the user- or driver-defined value of the variable.
Under normal circumstances it is best to leave this value undefined
and let the driver locate subprograms itself.
XC16_LIBRARY_
PATH
PIC30_LIBRARY_
PATH
This variables value is a semicolon-separated list of directories, much
like PATH. This variable specifies a list of directories to be passed to
the linker. The drivers default evaluation of this variable is:
<install-path>\lib; <install-path>\support\gld.
XC16_OMF
PIC30_OMF
Specifies the OMF (Object Module Format) to be used by the compiler.
By default, the tools create ELF object files. If the environment
variable has the value coff, the tools will create COFF object files.
TMPDIR If the variable is set, it specifies the directory to use for temporary files.
The compiler uses temporary files to hold the output of one stage of
compilation that is to be used as input to the next stage: for example,
the output of the preprocessor, which is the input to the compiler
proper.
TABLE 5-2: FILE NAMES
Extensions Definition
file.c A C source file that must be preprocessed.
file.h A header file (not to be compiled or linked).
file.i A C source file that should not be preprocessed.
file.o An object file.
file.p A pre procedural-abstraction assembly language file.
file.s Assembler code.
file.S Assembler code that must be preprocessed.
other A file to be passed to the linker.
TABLE 5-1: COMPILER-RELATED ENVIRONMENTAL VARIABLES
Variable Definition

- 1
- 2
…
- 73
- 74
- 75
- 76
- 77
…
- 365
- 366