SDCPP(1)
π SDCPP β bestie's guide to the C preprocessor for SDCC π
okay so this is the SDCPP(1) page from the General Commands Manual, and it's lowkey one of those pages that's like, tiny but also doing a LOT. grab a snack, we're getting into it β¨
πΈ NAME πΈ
sdcpp β C preprocessor for SDCC
π SYNOPSIS π
sdcppold [options] filename
(not me copying that exactly, yes the synopsis literally says sdcppold, that's what's on the page, i don't make the rules π«Ά)
π DESCRIPTION π
So this manual page documents, briefly, the sdccp command. And like β girliepop transparency moment β this page was written for the Debian GNU/Linux distribution because the original program doesn't have a manual page at all. π Instead, you can read the documentation in /usr/share/doc/sdcc-doc.
And what even is SDCC? It's a Freeware, retargettable, optimizing ANSI-C compiler designed for 8 bit Microprocessors. yes. iconic behaviour. π
β¨ OPTIONS β¨
okay this is the main character section, buckle up, there's like 64 of these and we're doing ALL of them, no skipping, we don't do that here π
-include <file>β pulls in the contents of<file>before any other files. like a lil pre-game π-imacros <file>β accepts the definition of macros found in<file>.-iprefix <path>β sets<path>as a prefix for the next two options. yes, the next two. look ahead, bestie π-iwithprefix <dir>β adds<dir>to the end of the system include path.-iwithprefixbefore <dir>β adds<dir>to the end of the main include path.-isystem <dir>β adds<dir>to the start of the system include path.-idirafter <dir>β adds<dir>to the end of the system include path.-I <dir>β adds<dir>to the end of the main include path.-I-β fine-grained include path control; see the info docs for the deets.-nostdincβ do NOT search system include directories. (heads up: dirs specified with-isystemwill still be used, so it's not a total lockdown π)-nostdinc++β do not search system include directories for C++.-o <file>β puts the output into<file>.-pedanticβ issues all warnings demanded by strict ISO C. strict queen energy π-pedantic-errorsβ issues-pedanticwarnings as errors instead. yeah. it's giving consequences.-trigraphsβ support ISO C trigraphs.-lang-cβ assumes the input sources are in C.-lang-c89β assumes the input sources are in C89.-lang-c++β assumes the input sources are in C++.-lang-objcβ assumes the input sources are in ObjectiveC.-lang-objc++β assumes the input sources are in ObjectiveC++.-lang-asmβ assumes the input sources are in assembler.-std=<std name>β specifies the conformance standard. one of:gnu89,gnu99,c89,c99,iso9899:1990,iso9899:199409,iso9899:1999. pick your fighter β-+β allows parsing of C++ style features.-wβ inhibits warning messages. silence. peace. π¦-Wtrigraphsβ warns if trigraphs are encountered.-Wno-trigraphsβ does not warn about trigraphs.-Wcomment{s}β warns if one comment starts inside another.-Wno-comment{s}β does not warn about comments.-Wtraditionalβ warns about features not present in traditional C;-Wno-traditionalβ does not warn about traditional C;-Wundefβ warns if an undefined macro is used by#if.-Wno-undefβ does not warn about testing undefined macros.-Wimportβ warns about the use of the#importdirective.-Wno-importβ does not warn about the use of#import.-Werrorβ treats all warnings as errors. every lil warning is a whole situation now π-Wno-errorβ does not treat warnings as errors.-Wsystem-headersβ does not suppress warnings from system headers.-Wno-system-headersβ suppresses warnings from system headers.-Wallβ enables all preprocessor warnings. the full lineup, the whole ensemble β¨-Mβ generates make dependencies.-MMβ same as-M, but ignores system header files.-MF <file>β writes dependency output to the given file.-MGβ treats missing header files as generated files.-MPβ generates phony targets for all headers.-MQ <target>β adds a MAKE-quoted target.-MT <target>β adds an unquoted target.-D<macro>β defines a<macro>with the string'1'as its value.-D<macro>=<val>β defines a<macro>with<val>as its value.-A<question> (<answer>)β asserts the<answer>to<question>.-A-<question> (<answer>)β disables<answer>to<question>.-U<macro>β undefines<macro>.-Hβ prints the name of header files as they are used.-Cβ does not discard comments. keep the receipts π-dMβ displays a list of macro definitions active at end.-dDβ preserves macro definitions in the output.-dNβ same as-dD, except that only the names are preserved.-dIβ includes#includedirectives in the output.-fpreprocessedβ treats the input file as already preprocessed.-ftabstop=<number>β distance between tab stops for column reporting.-Pβ does not generate#linedirectives.-$β does not allow'$'in identifiers.-remapβ remaps file names when including files.-vor--versionβ displays the version number.-hor--helpβ shows a summary of options.
π«Ά AUTHOR π«Ά
This manual page was written by Aurelien Jarno <aurel32@debian.org>, for the Debian GNU/Linux system β but it may be used by others. (shoutout to Aurelien, thank you for your service, we love a documented command π₯Ήπ)
and that's the whole page bestie!! you read all 64 options, i'm so proud of you fr fr ππ
πΈ signing off: this was theSDCPP(1)page, from the General Commands Manual β and if you were wondering about a date or a version number in the footer, the page as written only gives usSDCPP(1), so that's all we got. no cap. π
go forth and preprocess something iconic β¨π¦π
π¦ where this page comes from
- debian bookworm: sdcc 4.2.0+dfsg-1
- debian trixie: sdcc 4.5.0+dfsg-1
- ubuntu jammy: sdcc 4.0.0+dfsg-2
- ubuntu noble: sdcc 4.2.0+dfsg-1
- ubuntu questing: sdcc 4.5.0+dfsg-1
- ubuntu resolute: sdcc 4.5.0+dfsg-4
- ubuntu stonking: sdcc 4.5.0+dfsg-4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms