/* * TCC - Tiny C Compiler * * Copyright (c) 2001-2004 Fabrice Bellard * Copyright (c) 2025 d0p1 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #ifdef HAVE_CONFIG_H # include "config.h" #endif /* HAVE_CONFIG_H */ #include "libtcc.h" static const char help_str[] = "Tiny C Compiler "PACKAGE_VERSION" - Copyright (C) 2001-2006 Fabrice Bellard\n" "Usage: tcc [options...] [-o outfile] [-c] infile(s)...\n" "General options:\n" " -c compile only - generate an object file\n" " -o outfile set output filename\n" " -run run compiled source\n" " -fflag set or reset (with 'no-' prefix) 'flag' (see tcc -hh)\n" " -Wwarning set or reset (with 'no-' prefix) 'warning' (see tcc -hh)\n" " -w disable all warnings\n" " -v --version show version\n" " -vv show search paths or loaded files\n" " -h -hh show this, show more help\n" " -bench show compilation statistics\n" " - use stdin pipe as infile\n" " @listfile read arguments from listfile\n" "Preprocessor options:\n" " -Idir add include path 'dir'\n" " -Dsym[=val] define 'sym' with value 'val'\n" " -Usym undefine 'sym'\n" " -E preprocess only\n" "Linker options:\n" " -Ldir add library path 'dir'\n" " -llib link with dynamic or static library 'lib'\n" " -r generate (relocatable) object file\n" " -rdynamic export all global symbols to dynamic linker\n" " -soname set name for shared library to be used at runtime\n" " -Wl,-opt[=val] set linker option (see tcc -hh)\n" "Debugger options:\n" " -g generate stab runtime debug info\n" " -gdwarf[-x] generate dwarf runtime debug info\n" "Misc. options:\n" " -std=version define __STDC_VERSION__ according to version (c11/gnu11)\n" " -x[c|a|b|n] specify type of the next infile (C,ASM,BIN,NONE)\n" " -nostdinc do not use standard system include paths\n" " -nostdlib do not link with standard crt and libraries\n" " -Bdir set tcc's private include/library dir\n" " -M[M]D generate make dependency file [ignore system files]\n" " -M[M] as above but no other output\n" " -MF file specify dependency file name\n" "Tools:\n" " create library : tcc -ar [crstvx] lib [files]\n" ; static const char help_more_str[] = "Tiny C Compiler "PACKAGE_VERSION" - More Options\n" "Special options:\n" " -P -P1 with -E: no/alternative #line output\n" " -dD -dM with -E: output #define directives\n" " -pthread same as -D_REENTRANT and -lpthread\n" " -On same as -D__OPTIMIZE__ for n > 0\n" " -Wp,-opt same as -opt\n" " -include file include 'file' above each input file\n" " -isystem dir add 'dir' to system include path\n" " -static link to static libraries (not recommended)\n" " -dumpversion print version\n" " -print-search-dirs print search paths\n" " -dt with -run/-E: auto-define 'test_...' macros\n" "Ignored options:\n" " -arch -C --param -pedantic -pipe -s -traditional\n" "-W[no-]... warnings:\n" " all turn on some (*) warnings\n" " error[=warning] stop after warning (any or specified)\n" " write-strings strings are const\n" " unsupported warn about ignored options, pragmas, etc.\n" " implicit-function-declaration warn for missing prototype (*)\n" " discarded-qualifiers warn when const is dropped (*)\n" "-f[no-]... flags:\n" " unsigned-char default char is unsigned\n" " signed-char default char is signed\n" " common use common section instead of bss\n" " leading-underscore decorate extern symbols\n" " ms-extensions allow anonymous struct in struct\n" " dollars-in-identifiers allow '$' in C symbols\n" " reverse-funcargs evaluate function arguments right to left\n" " gnu89-inline 'extern inline' is like 'static inline'\n" " asynchronous-unwind-tables create eh_frame section [on]\n" " test-coverage create code coverage code\n" "-m... target specific options:\n" " ms-bitfields use MSVC bitfield layout\n" "-Wl,... linker options:\n" " -nostdlib do not link with standard crt/libs\n" " -[no-]whole-archive load lib(s) fully/only as needed\n" " -export-all-symbols same as -rdynamic\n" " -export-dynamic same as -rdynamic\n" " -image-base= -Ttext= set base address of executable\n" " -section-alignment= set section alignment in executable\n" " -rpath= set dynamic library search path\n" " -enable-new-dtags set DT_RUNPATH instead of DT_RPATH\n" " -soname= set DT_SONAME elf tag\n" " -Bsymbolic set DT_SYMBOLIC elf tag\n" " -oformat=[coff,binary] set executable output format\n" " -init= -fini= -Map= -as-needed -O (ignored)\n" "Predefined macros:\n" " tcc -E -dM - < /dev/null\n" "See also the manual for more details.\n" ; static const char version_str[] = "tcc version "PACKAGE_VERSION" (i386)\n"; int main(int argc, char *argv[]) { TCCState *s; }