Source: freebasic
Section: devel
Priority: optional
Maintainer: SJ_Zero <sj@fbxl.net>
Build-Depends:
 debhelper-compat (= 13),
 binutils,
 dos2unix,
 git,
 make,
 pkgconf,
 xz-utils,
 libncurses-dev,
 libtinfo-dev,
 libgpm-dev,
 libffi-dev,
 libasound2-dev,
 libpulse-dev,
 libgl1-mesa-dev | libgl-dev,
 libx11-dev,
 libxext-dev,
 libxrender-dev,
 libxrandr-dev,
 libxpm-dev,
 emscripten <!nojs>,
 nodejs <!nojs>,
 openjdk-17-jdk-headless <android>,
 android-sdk <android>,
 android-sdk-platform-tools <android>,
 android-sdk-build-tools <android>,
 dalvik-exchange <android>,
 android-sdk-platform-23 <android> | google-android-platform-26-installer <android>,
 google-android-ndk-r28-installer <android>,
 aapt <android>,
 apksigner <android>,
 zip <android>,
 unzip <android>,
 devkitppc <wii>,
 libogc <wii>,
 gamecube-tools <wii>
Standards-Version: 4.6.2
Homepage: https://freebasic.net/
Vcs-Browser: https://github.com/freebasic/fbc
Vcs-Git: https://github.com/freebasic/fbc.git
Rules-Requires-Root: no

Package: freebasic
Architecture: any
Depends:
 ${shlibs:Depends},
 ${misc:Depends},
 gcc,
 libc-dev,
 libncurses-dev
Recommends:
 freebasic-bindings (= ${binary:Version})
Breaks:
 freebasic-runtime (<< ${binary:Version}),
 freebasic-dev (<< ${binary:Version})
Replaces:
 freebasic-runtime (<< ${binary:Version}),
 freebasic-dev (<< ${binary:Version})
Description: BASIC compiler compatible with QuickBASIC (fbc)
 FreeBASIC is a free/open source BASIC compiler largely compatible with
 Microsoft QuickBASIC.
 .
 This package provides the fbc compiler executable, native runtime libraries,
 startup objects, and core include files needed to compile and link
 FreeBASIC programs on Debian-based systems.

Package: freebasic-runtime
Section: oldlibs
Architecture: all
Depends:
 ${misc:Depends},
 freebasic (= ${binary:Version})
Description: transitional package for the FreeBASIC runtime
 This transitional package depends on freebasic, which now contains the
 compiler, runtime libraries, startup objects, and core include files needed
 for a usable native FreeBASIC installation.

Package: freebasic-dev
Section: oldlibs
Architecture: all
Depends:
 ${misc:Depends},
 freebasic-bindings (= ${binary:Version})
Description: transitional package for FreeBASIC bindings
 This transitional package depends on freebasic-bindings. The FreeBASIC base
 compiler package now contains the core development files, while optional
 third-party binding headers are packaged separately.

Package: freebasic-bindings
Section: libdevel
Architecture: all
Depends:
 ${misc:Depends},
 freebasic (= ${binary:Version})
Breaks:
 freebasic-dev (<< ${binary:Version})
Replaces:
 freebasic-dev (<< ${binary:Version})
Recommends:
 pkgconf,
 zlib1g-dev,
 libbz2-dev,
 libzip-dev,
 libpng-dev,
 libjpeg-dev,
 libgif-dev,
 libx11-dev,
 libxext-dev,
 libxpm-dev,
 libxrandr-dev,
 libxrender-dev,
 libglu1-mesa-dev | libglu-dev,
 libsdl2-dev,
 libsdl2-image-dev,
 libsdl2-mixer-dev,
 libsdl2-ttf-dev,
 libopenal-dev,
 libalut-dev,
 libasound2-dev,
 libpulse-dev,
 libcairo2-dev,
 libfontconfig-dev,
 libfreetype-dev,
 libcurl4-openssl-dev,
 libdevil-dev,
 libgoocanvas-2.0-dev,
 liblua5.3-dev,
 libmng-dev
Suggests:
 libpcre2-dev,
 libtre-dev,
 libxml2-dev,
 libexpat1-dev,
 liballegro4-dev,
 liballegro5-dev,
 libgtk-3-dev,
 libglib2.0-dev,
 libsqlite3-dev,
 libpq-dev,
 default-libmysqlclient-dev,
 libgsl-dev
Description: third-party FreeBASIC binding headers
 This package contains optional FreeBASIC bindings for common third-party
 C libraries and platform APIs.
 .
 Installing this package is recommended for compiling programs that use
 external libraries such as SDL, OpenGL, zlib, curl, SQLite, GTK, or similar
 bindings.

Package: freebasic-examples
Section: doc
Architecture: all
Depends:
 ${misc:Depends},
 ttf-bitstream-vera
Recommends:
 freebasic (= ${binary:Version}),
 freebasic-bindings (= ${binary:Version}),
 pkgconf,
 zlib1g-dev,
 libbz2-dev,
 libzip-dev,
 libcurl4-openssl-dev,
 libpng-dev,
 libjpeg-dev,
 libgif-dev,
 libx11-dev,
 libxext-dev,
 libxpm-dev,
 libxrandr-dev,
 libxrender-dev,
 libglu1-mesa-dev | libglu-dev,
 libsdl2-dev,
 libsdl2-image-dev,
 libsdl2-mixer-dev,
 libsdl2-ttf-dev,
 libopenal-dev,
 libalut-dev,
 libasound2-dev,
 libpulse-dev,
 libcairo2-dev,
 libfontconfig-dev,
 libfreetype-dev,
 libpcre2-dev,
 libtre-dev,
 libxml2-dev,
 libexpat1-dev,
 liballegro4-dev,
 liballegro5-dev,
 libgtk-3-dev,
 libglib2.0-dev,
 libsqlite3-dev,
 libpq-dev,
 default-libmysqlclient-dev,
 libgsl-dev,
 libdevil-dev,
 libgoocanvas-2.0-dev,
 liblua5.3-dev,
 libmng-dev,
 default-jdk-headless
Description: FreeBASIC example source programs
 This package contains the FreeBASIC example source tree, including console,
 graphics, networking, sfxlib, and third-party binding examples.

Package: freebasic-doc
Section: doc
Architecture: all
Depends:
 ${misc:Depends}
Suggests:
 freebasic
Description: FreeBASIC documentation and manual
 This package contains the FreeBASIC documentation, including the official
 manual, language reference, and additional text files distributed with the
 compiler. The documentation is installed under /usr/share/doc/freebasic/.

Package: freebasic-js
Architecture: any
Build-Profiles: <!nojs>
Depends:
 ${shlibs:Depends},
 ${misc:Depends},
 emscripten,
 nodejs
Description: FreeBASIC compiler driver for Emscripten/JavaScript
 This package provides fbc-js, a native FreeBASIC compiler executable that
 defaults to the js-asmjs/Emscripten target, plus the target runtime libraries
 and JavaScript support assets needed to build browser or Node.js output.
 It also includes fbc-js-app, a small helper for browser game directories with
 preloaded current-directory assets.

Package: freebasic-android
Architecture: any
Build-Profiles: <android>
Depends:
 ${shlibs:Depends},
 ${misc:Depends},
 openjdk-17-jdk-headless | default-jdk-headless,
 android-sdk,
 android-sdk-platform-tools,
 android-sdk-build-tools,
 dalvik-exchange,
 android-sdk-platform-23 | google-android-platform-26-installer,
 google-android-ndk-r28-installer,
 aapt,
 apksigner,
 zip,
 unzip
Recommends:
 adb,
 google-android-emulator-installer,
 google-android-cmdline-tools-19.0-installer
Description: FreeBASIC compiler driver for Android APKs
 This package provides fbc-android, a native FreeBASIC compiler driver that
 defaults to building universal APKs for Android ARMv7, AArch64, and x86_64,
 plus Android runtime libraries, headers, and APK build templates needed to
 produce signed debug APK files.

Package: freebasic-wii
Architecture: any
Build-Profiles: <wii>
Depends:
 ${shlibs:Depends},
 ${misc:Depends},
 devkitppc,
 libogc,
 gamecube-tools
Recommends:
 dolphin-emu
Description: FreeBASIC compiler driver for Nintendo Wii homebrew
 This package provides fbc-wii, a native FreeBASIC compiler driver that
 defaults to the Nintendo Wii/powerpc target, plus Wii runtime libraries
 and headers needed to build libogc homebrew programs. The driver can also
 stage a boot.dol folder with relative-path assets for older game code.

Package: freebasic-nuttx
Architecture: any
Depends:
 ${misc:Depends},
 freebasic (= ${binary:Version}),
 make,
 python3,
 git,
 patch,
 kconfig-frontends-nox,
 curl | wget,
 gcc-riscv64-unknown-elf,
 binutils-riscv64-unknown-elf,
 picolibc-riscv64-unknown-elf
Recommends:
 qemu-system-misc
Description: FreeBASIC NuttX/RISC-V board workflow tools
 This package provides helper commands and the source SDK needed to build
 FreeBASIC programs as NuttX RISC-V loadable modules. The ESP32-P4 and
 Waveshare RP2350-PiZero workflows can fetch and build matching NuttX
 firmware images, and the ESP32-P4 workflow can deploy programs to an
 Ethernet-connected board over its NuttX console. The lower-level RISC-V
 helper can also drive QEMU smoke tests.

Package: freebasic-full
Section: metapackages
Architecture: all
Depends:
 freebasic (= ${binary:Version}),
 freebasic-bindings (= ${binary:Version}),
 freebasic-examples (= ${binary:Version}),
 freebasic-doc (= ${binary:Version}),
 ${misc:Depends},
 pkgconf
Recommends:
 freebasic-js (= ${binary:Version}),
 freebasic-wii (= ${binary:Version}),
 freebasic-nuttx (= ${binary:Version}),
 zlib1g-dev,
 libbz2-dev,
 libzip-dev,
 libcurl4-openssl-dev,
 libpng-dev,
 libjpeg-dev,
 libgif-dev,
 libx11-dev,
 libxext-dev,
 libxpm-dev,
 libxrandr-dev,
 libxrender-dev,
 libglu1-mesa-dev | libglu-dev,
 libsdl2-dev,
 libsdl2-image-dev,
 libsdl2-mixer-dev,
 libsdl2-ttf-dev,
 libopenal-dev,
 libalut-dev,
 libasound2-dev,
 libpulse-dev,
 libcairo2-dev,
 libfontconfig-dev,
 libfreetype-dev,
 libpcre2-dev,
 libtre-dev,
 libxml2-dev,
 libexpat1-dev,
 liballegro4-dev,
 liballegro5-dev,
 libgtk-3-dev,
 libglib2.0-dev,
 libsqlite3-dev,
 libpq-dev,
 default-libmysqlclient-dev,
 libgsl-dev,
 libdevil-dev,
 libgoocanvas-2.0-dev,
 liblua5.3-dev,
 libmng-dev,
 default-jdk-headless
Suggests:
 libpipewire-0.3-dev
Description: Full FreeBASIC installation (metapackage)
 This metapackage installs the full FreeBASIC toolchain including compiler,
 runtime, headers, and documentation, plus a broad set of common development
 libraries used by FreeBASIC examples.
