SmallBASIC
SmallBASIC is a fast and easy to learn BASIC language interpreter ideal for everyday calculations, scripts and prototypes. SmallBASIC includes trigonometric, matrices and algebra functions, a built in IDE, a powerful string library, system, sound, and graphic commands along with structured programming syntax
SmallBASIC is a fast and easy to learn BASIC language interpreter ideal for everyday calculations, scripts and prototypes. SmallBASIC includes trigonometric, matrices and algebra functions, a built in IDE, a powerful string library, system, sound, and graphic commands along with structured programming syntax. The project is written primarily in C, distributed under the GNU General Public License v3.0 license, first published in 2012. Key topics include: basic, basic-programming, interpreter, matrices, pixel-art.
SmallBASIC is a fast and easy to learn BASIC language interpreter ideal for everyday calculations, scripts and prototypes. SmallBASIC includes trigonometric, matrices and algebra functions, a built in IDE, a powerful string library, system, sound, and graphic commands along with structured programming syntax.
Building the SDL version
LINUX
Install packages
Ubuntu (25.04)
sudo apt install git autotools-dev automake make gcc g++ libsdl3-dev libfreetype-dev libfontconfig-dev xxd
Manjaro (Arch)
sudo pacman -S gcc make autoconf automake sdl3 freetype2 fontconfig pkgconf vim
Initial setup
$ git clone https://github.com/smallbasic/SmallBASIC.git
$ cd SmallBASIC
$ sh autogen.sh
Build
$ ./configure --enable-sdl
$ make
Install (optional)
$ sudo make install
This will install sbasicg in /usr/local/bin
Run
$ cd ./src/platform/sdl/
$ sbasicg
Build the Debian package (optional)
$ sudo apt-get install dpkg-dev build-essential debhelper
$ make deb
WINDOWS
Install tools: https://www.gtk.org/download/windows.php
$ ./configure --host=i686-w64-mingw32 --enable-sdl
$ make
Cross-compiling for Windows under Linux
$ sudo apt-get install mingw-w64
$ ./configure --host=i686-w64-mingw32 --prefix=/devsw/mingw --enable-sdl
Note: requires building SDL2 and freetype-2 into the prefix folder
MacOSX
Install packages
Open the terminal window, then type the following commands at the prompt:
$ brew install sdl2
$ brew install freetype
$ brew link --overwrite freetype
$ brew install fontconfig
$ brew install autotools
$ brew install automake
$ brew install autoconf
Initial setup
$ git clone https://github.com/smallbasic/SmallBASIC.git
$ cd SmallBASIC
$ sh autogen.sh
Build
$ ./configure --enable-sdl
$ make
Run
$ cd /src/platform/sdl
$ ./sbasicg
Building the non-graphical console version (cygwin or linux)
$ ./configure && make
Windows 32 bit mingw console:
$./configure --host=i686-w64-mingw32 && make
Windows 64 bit mingw console:
$./configure --host=x86_64-w64-mingw32 && make
Building web-server sbasicw
Linux
Install microhttp library
Ubuntu
$ sudo apt install libmicrohttpd-dev
Manjaro
$ sudo pacman -S libmicrohttpd
Build
$ ./configure --enable-web
$ make
Building the Android port
- Setup .bashrc
export PATH=$PATH:~/android-sdk/depot_tools:~/android-sdk/android-sdk-linux/platform-tools/
export ANDROID_SDK_ROOT=~/android-sdk/android-sdk-linux
export TARGET_DEVICE=arm
export PLATFORM_PREFIX=~/android-sdk/android-ext/
export PATH=${PLATFORM_PREFIX}/bin:${PATH}
export NDK=~/android-sdk/android-ndk-r10d
export NDK_PLATFORM=android-19
export ANDROID_LOG_TAGS="DEBUG:I smallbasic:I AndroidRuntime:E *:S"
- Build FreeType
First, prepare the cross-compiler from the NDK:
$NDK_PATH/build/tools/make-standalone-toolchain.sh \
--platform=$NDK_PLATFORM --install-dir=$PLATFORM_PREFIX --arch=arm
Then use it to cross-compile the tools:
cd freetype-2.5.3/
CFLAGS="-std=gnu99" ./configure --host=arm-linux-androideabi --prefix=/freetype --without-zlib --without-png --without-harfbuzz
make
make install DESTDIR=$(pwd)
- setup config.h
./configure --enable-android
- Build the native activity
$ cd src/platform/andoid/jni && $NDK/ndk-build NDK_DEBUG=0
$ cd - && cd ide/android/ && ant release install
Useful adb commands for debugging:
adb shell dumpsys cpuinfo
adb shell top -m 10
Building the FLTK version
Install and build FLTK 1.4
$ cd ~/github
$ git clone https://github.com/fltk/fltk.git
$ sudo make install
Build
$ cd ~/github/SmallBASIC
$ ./configure --enable-fltk
$ make -s
.indent.pro settings
-brf -nbap -br -brs -cdb -cdw -ce -cli0 -fca -i2 -l110 -lc110 -lp
-nbbo -nbc -ncs -nip -npcs -npsl -nut -ppi0 -sc
Contributors
Showing top 6 contributors by commit count.
