FreeBASIC Build Options

Building FreeBASIC from sources uses a makefile that is intended to be used 
on a host to build the run time library, graphics library, and the 
FreeBASIC compiler itself.  The makefile accepts a number of configuration 
options or variables.

Environment Variables
   SOURCE_DATE_EPOCH
      Set the build date for the compilation.  See 
      SOURCE_DATE_EPOCH Specification.  The SOURCE_DATE_EPOCH environment 
      variable specifies a build time constant (a decimal unsigned integer 
      in unix time format) to be used during the build process.  Setting 
      this variable sets the values to be returned by __DATE__, __TIME__, 
      and __DATE_ISO__ built-in macros when a source is compiled.  This in 
      turn affects the values returned by __FB_BUILD_DATE__ and 
      __FB_BUILD_DATE_ISO__ when fbc compiler itself is built.

Build Options
   FB[C|L]FLAGS
      to set -g -exx etc. for the compiler build and/or link
   CFLAGS
      same for the rtlib and gfxlib2 build
   prefix
      install/uninstall directory, default: /usr/local
   TARGET
      GNU triplet for cross-compiling
   MULTILIB
      "32", "64" or empty for cross-compiling using a gcc multilib 
      toolchain
   FBC, CC, AR
      fbc, gcc, ar programs (TARGET may be prefixed to CC/AR)
   V=1
      to see full command lines
   ENABLE_STANDALONE=1
      build source tree into self-contained FB installation
   ENABLE_PREFIX=1
      use "-d ENABLE_PREFIX=$(prefix)" to hard-code the prefix into fbc
   ENABLE_SUFFIX=-0.24
      append a string like "-0.24" to fbc/FB dir names, and use "-d 
      ENABLE_SUFFIX=$(ENABLE_SUFFIX)" (non-standalone only)
   ENABLE_LIB64=1
      use prefix/lib64/ instead of prefix/lib/ for 64bit libs 
      (non-standalone only)
   ENABLE_STRIPALL=1
      use "-d ENABLE_STRIPALL" with all targets
   ENABLE_STRIPALL=0
      disable "-d ENABLE_STRIPALL" with all targets
   FBSHA1=1
      determine the sha-1 of the current commit in repo and store it in the 
      compiler
   FBSHA1=some-sha-1
      explicitly indicate the sha-1 to store in the compiler
   FBPACKAGE
      bindist: The package/archive file name without path or extension
   FBPACKSUFFIX
      bindist: Allows adding a custom suffix to the normal package name 
      (and the toplevel dir in the archive)
   FBMANIFEST
      bindist: The manifest file name without path or extension
   FBVERSION
      bindist/gitdist: FB version number
   DISABLE_DOCS
      bindist: Don't package readme/changelog/manpage/examples
   BUILD_PREFIX
      automatically set depending on the target but can override for 
      special builds where the build tools have different file naming than 
      the target to build (i.e. cross compiling)
   DISABLE_GAS64_DEBUG
      use "-d DISABLE_GAS64_DEBUG" (see below)

compiler source code configuration (FBCFLAGS, FBLFLAGS)
   -d ENABLE_STANDALONE
      build for a self-contained installation
   -d ENABLE_SUFFIX=-0.24
      assume FB's lib dir uses the given suffix (non-standalone only)
   -d ENABLE_PREFIX=/some/path
      hard-code specific $(prefix) into fbc
   -d ENABLE_LIB64
      use prefix/lib64/ instead of prefix/lib/ for 64bit libs 
      (non-standalone only)
   -d ENABLE_STRIPALL
      configure fbc to pass down '--strip-all' to linker by default
   -d FBSHA1=some-sha-1
      store 'some-sha-1' in the compiler for version information
   -d DISABLE_GAS64_DEBUG
      disable gas64 debugging comments in asm files even if FB_DEBUG is 
      defined (-g)

internal makefile configuration (but can override)
   libsubdir
      override the library directory - default is set depending on TARGET
   objsubdir
      override object file directory - default is set depending on TARGET
   fbcobjdir
      override compiler object directory - default is set depending on 
      TARGET

fbrt source code configuration (FBRTCFLAGS, FBRTLFLAGS)
   FBRTCFLAGS
      override the compiler flags when building fbrt library
   FBRTLFLAGS
      override the linker flags then building fbrt library

rtlib/gfxlib2 source code configuration (CFLAGS)
   -DDISABLE_X11
      build without X11 headers (disables X11 gfx driver)
   -DDISABLE_GPM
      build without gpm.h (disables GetMouse in the Linux terminal 
      (TERM=linux), although the TERM=xterm variant keeps working)
   -DDISABLE_FFI
      build without ffi.h (disables ThreadCall)
   -DDISABLE_OPENGL
      build without OpenGL headers (disables OpenGL gfx drivers)
   -DDISABLE_FBDEV
      build without Linux framebuffer device headers (disables Linux fbdev 
      gfx driver)
   -DDISABLE_D3D10
      build without DirectX 10 driver (disable D2D driver in windows)

