Normal vs. Standalone FreeBASIC
 

Когда идет построение из исходного кода, FreeBASIC может быть сконфигурирован и установлен в одной из двух сборок:

Normal build (по умолчанию)
Standalone build
 
Normal расположение каталога:
  • bin/
    • fbc.exe
    • ld.exe
    • <target>-ld.exe
    • другие нативные инструменты и инструменты кросс-компиляции ...
  • include/
    • freebasic/
      • fbgfx.bi
      • другие заголовки...
  • lib/
    • freebasic/
      • libfb.a (нативная)
      • другие библиотеки...
    • <target>-freebasic/
      • libfb.a (для другой платформы)
      • другие библиотеки для платформы...
Standalone расположение каталога:
  • bin/
    • <target>/
      • ld.exe
      • другие утилиты...
  • inc/
    • fbgfx.bi
    • другие заголовки...
  • lib/
    • <target>/
      • libfb.a
      • другие библиотеки...
  • fbc.exe
 
Отличия от standalone build:

  • fbc помещается в bin/, как и другие программы
  • Поиск для заголовков в include/freebasic/, вместо inc/ или include/
  • Поиск для библиотек в lib/freebasic/ вместо lib/
  • Поиск для binutils/gcc 1) в bin/ и 2) , опираясь на PATH
  • Поиск для crt/gcc библиотек 1) в lib/freebasic/ и 2) запуск "gcc -print-file-name=..."
  • -target принимает системные триплеты например "i686-pc-linux-gnu"
  • целевое имя, данное при помощи -target предваряет gcc/binutils имена программ при кросс-компилировании
  • совместим со стандартом /usr или /usr/local каталогов
  • обычно используется для выпуска FB-Linux
  • использует windres из Binutils для компиляции win32 скриптов ресурсов

Это заставляет Normal Build FB интегрироваться с GNU/Linux дистрибутивами и другими подобными Unix системами вполне прилично, и также позволяет устанавливать FreeBASIC в MinGW или деревья DJGPP, и даже позволяет FB работать с binutils/gcc, кросс-компилирующим toolchains.
Отличия от normal build:

  • fbc бинарные файлы находятся на верхнем уровне, не внутри bin/
  • ищет инструменты внутри bin/<target>/, не в bin/
  • Поиск для FB заголовков в inc/, не в include/freebasic/
  • Поиск для библиотек в lib/<target>/, не в lib/freebasic/
  • не пытается полагаться на PATH и используемые системные утилиты
  • не пытается запросить GCC для поиска файлов
  • -target принимает только простые целевые имена FB, никакие системные триплеты
  • обычно используется для FB-DOS и FB-win32-релизов
  • Использует GoRC чтобы компилировать скрипты ресурсов Win32

standalone build предназначена, чтобы использоваться для автономных установок, таких как традиционный FB-win32 и выпуски FB-DOS. Это также позволяет добавлять fbc в PATH, не имея необходимости добавлять каталог bin/ .