Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CSC(1)			FreeBSD	General	Commands Manual			CSC(1)

     csc -- driver program for the CHICKEN Scheme compiler

     csc [OPTION ...] [FILENAME	...]

     csc is a program that invokes the CHICKEN compiler	and the	host systems C
     compiler to generate an executable	from a Scheme source file or C files
     generated by CHICKEN.

     FILENAME is a Scheme source file name with	optional extension or a
     C/C++/Objective-C source, object or library file name with	extension.
     OPTION may	be one of the following:

     General options:

     -h, -help
	     Display usage text	and exit.

     -v, -verbose
	     Show compiler notes and tool-invocations.

     -vv     Display information about translation progress.

     -vvv    Display information about all compilation stages.

	     Display Scheme compiler version and exit.

	     Display release number and	exit.

     File and pathname options:

     -o	FILENAME, -output-file FILENAME
	     Specifies target executable name.

     -I	PATHNAME, -include-path	PATHNAME
	     Specifies alternative path	for included files.

	     Write compiler to stdout (implies -t).

     -s, -shared, -dynamic
	     Generate dynamically loadable shared object file.

     Language options:

     -D	SYMBOL,	-feature SYMBOL
	     Register feature identifier.

     -no-feature SYMBOL
	     Disable builtin feature identifier.

     -c++    Compile via a C++ source file (.cpp).

     -objc   Compile via Objective-C source file (.m).

     Syntax related options:

     -i, -case-insensitive
	     Don't preserve case of read symbols.

     -K, -keyword-style	STYLE
	     Enable alternative	keyword-syntax (prefix,	suffix or none).

	     Disables list delimiter synonyms.

	     Disables support for escaped symbols.

	     Disables the CHICKEN extensions to	R5RS syntax.

	     Macros are	made available at run-time.

     -j	MODULE,	-emit-import-library MODULE
	     Write compile-time	module information into	separate file.

     -J, -emit-all-import-libraries
	     Emit import-libraries for all defined modules.

	     Disable expansion of compiler-macros.

     -m	NAME, -module NAME
	     Wrap compiled code	in module of the given name.

     -M, -module-registration
	     Always generate module registration code, even when import	li-
	     braries are emitted.

     -N, -no-module-registration
	     Do	not generate module registration code. Overrides

     Translation options:

     -x, -explicit-use
	     Do	not use	units `library'	and `eval' by default.

     -P, -check-syntax
	     Stop compilation after macro-expansion.

     -A, -analyze-only
	     Stop compilation after first analysis pass.

     Debugging options:

     -w, -no-warnings
	     Disable warnings.

     -d0, -d1, -d2, -d3, -debug-level NUMBER
	     Set level of available debugging information.

	     Disable rudimentary debugging information.

	     Executable	emits profiling	information.

	     Executable	emits profiling	information in append mode.

     -profile-name FILENAME
	     Name of the generated profile information file.

     -types FILENAME
	     Load additional type database.

     Optimization options:

     -O, -O0, -O1, -O2,	-O3, -O4, -O5, -optimize-level NUMBER
	     Enable certain sets of optimization options.

	     Enable leaf routine optimization.

	     Standard procedures may be	redefined.

     -u, -unsafe
	     Disable safety checks.

     -local  Assume globals are	only modified in current file.

     -b, -block
	     Enable block-compilation.

	     Disable interrupts	in compiled code.

     -f, -fixnum-arithmetic
	     Assume all	numbers	are fixnums.

	     Disables detection	of stack-overflows.

	     Enable inlining.

     -inline-limit LIMIT
	     Set inlining threshold.

	     Enable cross-module inlining.

	     Perform type-based	specialization of primitive calls.

     -oi FILENAME, -emit-inline-file FILENAME
	     Generate file with	globally inlinable procedures (implies -inline

     -consult-inline-file FILENAME
	     Explicitly	load inline file.

     -ot FILENAME, -emit-types-file FILENAME
	     Write type-declaration information	into file.

	     Disable argument count checks.

	     Disable bound variable checks.

	     Disable procedure call checks.

	     Disable procedure call checks only	for usual bindings.

	     Disable procedure call checks for toplevel	bindings.

	     Assume variable do	not change their type.

	     Combine groups of local procedures	into dispatch loop.

     -lfa2   Perform additional	lightweight flow-analysis pass.

     -unroll-limit LIMIT
	     Specifies inlining	limit for self-recursive calls.

     Configuration options:

     -unit NAME
	     Compile file as a library unit.

     -uses NAME
	     Declare library unit as used.

     -heap-size	NUMBER
	     Specifies heap-size of compiled executable.

     -nursery NUMBER -stack-size NUMBER
	     Specifies nursery size of compiled	executable.

     -X	FILENAME, -extend FILENAME
	     Load file before compilation commences.

     -prelude EXPRESSION
	     Add expression to beginning of source file.

     -postlude EXPRESSION
	     Add expression to end of source file.

     -prologue FILENAME
	     Include file before main source file.

     -epilogue FILENAME
	     Include file after	main source file.

     -e, -embedded
	     Compile as	embedded (don't	generate `main()').

     -gui    Compile as	GUI application.

     -link NAME
	     Link extension with compiled executable (implies `-uses').

     -R	NAME, -require-extension NAME
	     Require extension and import in compiled code.

     -dll, -library
	     Compile multiple units into a dynamic library.

     -libdir DIRECTORY
	     Override location of runtime library directory.

     Options to	other passes:

     -C	OPTION
	     Pass option to C compiler.

     -L	OPTION
	     Pass option to linker.

	     Pass "-I_DIR_" to C compiler (add include path).

	     Pass "-L_DIR_" to linker (add library path).

     -k	     Keep intermediate files.

     -c	     Stop after	compilation to object files.

     -t	     Stop after	translation to C.

     -cc COMPILER
	     Select a C	compiler other than the	default.

     -cxx COMPILER
	     Select a C++ compiler other than the default.

     -ld COMPILER
	     Select a linker other than	the default.

	     Link with static CHICKEN libraries	and extensions.

	     Pass "-F_DIR_" to C compiler (add framework header	path on	Mac OS

     -framework	NAME
	     Passed to linker on Mac OS	X.

     -rpath PATHNAME
	     Add directory to runtime library search path.

	     Pass linker options.

     -strip  Strip resulting binary.

     Inquiry options:

     -home   Show home-directory (where	support	files go).

	     Show required C-compiler flags and	exit.

	     Show required linker flags	and exit.

     -libs   Show required libraries and exit.

	     Show name of default C compiler used.

	     Show name of default C++ compiler used.

	     Show name of default linker used.

	     Just show commands	executed, don't	run them (implies `-v').

     Obscure options:

     -debug MODES
	     Display debugging output for the given modes.

     -compiler PATHNAME
	     Use a compiler other than the default `chicken'.

     -raw    Do	not generate implicit init- and	exit code.

	     Emit prototypes for callbacks before foreign declarations.

	     Always emit import	libraries, even	when their contents haven't
	     changed.  The default behaviour is	to preserve existing import

	     Do	not refer to repository	for extensions.

	     Do	not remove shadowed macros.

     -host   Compile for host when configured for cross-compiling.

	     Load extensions from executable path.

	     Link support file to be used from a deployed executable (sets
	     `rpath' accordingly, if supported on this platform.)

	     Embed manifest on Windows to supress elevation warnings for pro-
	     grams named `install' or `setup'.

     Options can be collapsed if unambiguous, so "-vkfO" is the	same as	"-v -k
     -fixnum-arithmetic	-optimize".

     The following environment variables change	the behaviour of csc:

     CSC_OPTIONS  Can hold default options that	should be passed to every in-
		  vocation of csc.

     The csc utility exits 0 on	success, and >0	if an error occurs.


     More information can be found in the CHICKEN User's Manual:

     The CHICKEN Team

     Submit bug	reports	by e-mail to

FreeBSD	13.0			 Apr 26, 2017			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help