GNU project C and C++ compiler
-save-temps
    Store the usual ``temporary'' intermediate files permanently; place them in the current directory and
    name them based on the source file.  Thus, compiling foo.c with -c -save-temps would produce files
    foo.i and foo.s, as well as foo.o.  This creates a preprocessed foo.i output file even though the
    compiler now normally uses an integrated preprocessor.
-o file
    Place output in file file.  This applies regardless to whatever sort of output is being produced,
    whether it be an executable file, an object file, an assembler file or preprocessed C code.

    If you specify -o when compiling more than one input file, or you are producing an executable file as
    output, all the source files on the command line will be compiled at once.

    If -o is not specified, the default is to put an executable file in a.out, the object file for
    source.suffix in source.o, its assembler file in source.s, and all preprocessed C source on standard
    output.
source manpages: h8300-hitachi-coff-gcc