{{fbdoc item="title" value="Normal vs. Standalone FreeBASIC"}}----

When built from source, ""FreeBASIC"" can be configured for and installed in one of these two different setups:

<<{{fbdoc item="section" value="Normal build (default)"}}
<<>>{{fbdoc item="section" value="Standalone build"}}
>>::c::<<Normal directory layout:
	- bin/
		- fbc.exe
		- [<target>-]ld.exe
		- //other tools for native/cross compilation...//
	- include/
		- freebasic/
			- fbgfx.bi
			- //other headers...//
	- lib/
		- freebasic/
			- <target>/
				- libfb.a
				- //other libraries...//
<<>>Standalone directory layout:
	- bin/
		- <target>/
			- ld.exe
			- //other tools...//
	- inc/
		- fbgfx.bi
		- //other headers...//
	- lib/
		- <target>/
			- libfb.a
			- //other libraries...//
	- fbc.exe
>>::c::<<Differences to the standalone build:

	- fbc is located in ##bin/##, like other programs
	- looks for includes in ##include/freebasic/##, instead of ##inc/##, to cleanly separate FB headers from system headers
	- looks for its own libraries in ##lib/freebasic/## instead of ##lib/##, to cleanly separate FB libraries from system libraries
	- looks for binutils/gcc 1) in ##bin/## and 2) by relying on ##PATH##
	- looks for crt/gcc libraries 1) in ##lib/freebasic/## and 2) by running "##gcc -print-file-name=...##"
	- ##[[CompilerOpttarget|-target]]## option accepts system triplets such as "##i686-pc-linux-gnu##" or "##x86_64-w64-mingw32##"
	- the target name given to the ##[[CompilerOpttarget|-target]]## option is prepended to the gcc/binutils program names when cross-compiling
	- compatible with the standard ##/usr## or ##/usr/local## directories
	- typically used for the FB-linux release
	- uses ##windres## from binutils to compile win32 resource scripts

This makes the normal FB build integrate with GNU/Linux distributions and other Unix-like systems pretty well, allows fbc to be installed into ""MinGW"" or DJGPP trees next to gcc, and allows fbc to work with binutils/gcc cross-compiling toolchains.
<<>>Differences to the normal build:

	- the fbc binary is located at the toplevel, not inside ##bin/##
	- looks for tools inside ##bin/<target>/##, i.e. it uses ##bin/<target>/ld.exe## instead of ##bin/[<target>-]ld.exe##
	- looks for FB includes in ##inc/##, not in ##include/freebasic/##
	- looks for libraries in ##lib/##, not in ##lib/freebasic/##
	- does not try to rely on ##PATH## and use system tools
	- does not try to query gcc to find files
	- ##[[CompilerOpttarget|-target]]## only accepts simple FB target names, no system triplets
	- typically used for the FB-dos and FB-win32 releases
	- uses ""GoRC"" to compile win32 resource scripts

The standalone build is intended to be used for self-contained installations such as the traditional FB-win32 and FB-dos releases. It also allows adding fbc to the PATH, without having to add the whole ##bin/## directory.
>>::c::

{{fbdoc item="back" value="DevToc|FreeBASIC Developer Information"}}
{{fbdoc item="back" value="DocToc|Table of Contents"}}