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 Android port
1. Setup .bashrc:
export PATH=$PATH:~/android-sdk/adt-bundle-linux-x86_64-20131030/sdk/platform-tools
export ANDROID_SDK_ROOT=~/android-sdk/adt-bundle-linux-x86_64-20131030/sdk
export TARGET_DEVICE=arm
export PLATFORM_PREFIX=~/android-sdk/android-ext/
export PATH=${PLATFORM_PREFIX}/bin:${PATH}
export NDK=~/android-sdk/android-ndk-r9b
export NDK_PLATFORM=android-9
export ANDROID_LOG_TAGS="DEBUG:I smallbasic:I AndroidRuntime:E *:S"
2. Build PNG + FreeType:
First, prepare the cross-compiler from the NDK:
$NDK_PATH/build/tools/make-standalone-toolchain.sh \
--platform=$NDK_PLATFORM --install-dir=$PLATFORM_PREFIX
Then use it to cross-compile the tools:
cd libpng-1.6.6/
CFLAGS="-std=gnu99" ./configure --host=arm-linux-androideabi --prefix=/png
make
make install DESTDIR=$(pwd)
cd freetype-2.4.10/
CFLAGS="-std=gnu99" ./configure --host=arm-linux-androideabi --prefix=/freetype --without-zlib --without-png
make
make install DESTDIR=$(pwd)
3. Build common
./configure --enable-android --host=arm-linux-androideabi
4. Build the native activity
$ cd src/platform/andoid/jni && $NDK/ndk-build
$ cd - && cd ide/android/ && ant release install
Useful adb commands for debugging:
adb shell dumpsys cpuinfo
adb shell top -m 10
== Building the TIZEN port
1. Download and install the Tizen IDE
2. Add the following lines to .bashrc
TIZEN_SDK=${HOME}/tizen-sdk
TIZEN_ROOTSTRAP=${TIZEN_SDK}/platforms/mobile-3.0/rootstraps/mobile-3.0-device.native
export TIZEN_BIN=${TIZEN_SDK}/tools/arm-linux-gnueabi-gcc-4.5/bin
export TIZEN_LIBS=${HOME}/tizen-lib
export PATH=${PATH}:${TIZEN_BIN}:~/bin
export CHOST=arm-linux-gnueabi
export LDFLAGS="--sysroot=${TIZEN_ROOTSTRAP} -L${TIZEN_LIBS}/lib"
export CPPFLAGS="--sysroot=${TIZEN_ROOTSTRAP} -fmessage-length=0 -fPIC\
-I${TIZEN_ROOTSTRAP}/usr/include -I${TIZEN_LIBS}/include"
export CFLAGS=${CPPFLAGS}
3. Build the common components
./configure --enable-tizen
4. Build the project using Tizen IDE
== Building the MoSync port
1. Download and install the MoSync IDE: http://www.mosync.com/download
2. Download and install cygwin: http://www.cygwin.com/
Install the following packages:
- automake
- autoconf
- pkg-config
- make
3. Download and unzip SmallBASIC from github:
https://github.com/smallbasic/SmallBASIC/zipball/master
Unzip the resulting smallbasic-SmallBASIC-xxx.zip file into a clean directory (the following steps will refer to this as $SB_HOME).
4. Build the common components:
$ cd $SB_HOME
$ sh autogen.sh
$ ./configure --enable-mosync
$ make -s
You should now see libsb_common.a in $SB_HOME/src/platform/mosync/common
Next, copy the dot files in $SB_HOME/ide/mosync into $SB_HOME
5. Setup the MoSync IDE project
Launch the MoSync IDE, then create a new workspace.
Click: Import / MoSync / Exiting MoSync project into workspace
Select root directory = $SB_HOME
Enter Ctrl+B to build the project.
6. Useful bash profile settings for MoSync android development:
alias adb="/c/Program\ Files\ \(x86\)/Android/android-sdk/platform-tools/adb.exe"
export ANDROID_LOG_TAGS="ActivityManager:I maWriteLog:I *:S"
alias adebug="adb -d logcat -c && adb -d logcat"
===========================================================================
== Setup instructions for building FLTK version under a fresh ubuntu system
1. Install tools using synaptic package manager. Be sure to accept all included
dependencies. Note, some of these are only required for building FLTK to
completion but are not actually used in SmallBASIC:
* subversion
* autotools-dev
* autogen
* autoconf
* libxft-dev
* g++
* libxi-dev
* libgl1-mesa-dev
* libglut3-dev
* libsdl1.2-dev
* libreadline-dev
2. Download code from subversion:
$ mkdir src && cd src
$ svn co http://svn.easysw.com/public/fltk/fltk/trunk fltk-2.0
$ svn co https://smallbasic.svn.sourceforge.net/svnroot/smallbasic/trunk/smallbasic
$ cd fltk-2.0
$ make (needs to complete at least up to building tests)
$ sudo make install
$ cd ../smallbasic
$ sh autogen.sh
$ configure --enable-fltk
$ make
$ sudo make install
== Setup instructions for building FLTK version under cygwin
Install cygwin along with mingw-gcc
./configure --host=i686-w64-mingw32 --enable-fltk
For 64 bit build:
./configure --host=x86_64-w64-mingw32 --enable-fltk
--- Old instructions ---
Download and install cygwin
--> http://www.cygwin.com/
Download and install MingW
--> http://sourceforge.net/projects/mingw/
Setup $HOME/.bash_profile:
--cut-here--
export PATH="/cygdrive/c/MinGW/bin:/usr/local/bin:/bin:"
alias make=mingw32-make
--cut-here--
Obtain and install FLTK as per the ubuntu instructions, then update
the fltk makeinclude file:
STRIP = /cygdrive/c/cygwin/bin/strip
LIBCOMMAND = /cygdrive/c/cygwin/bin/ar cr
RANLIB = /cygdrive/c/cygwin/bin/ranlib
== Building the GTK version
$ ./configure --enable-gtk
$ make
== Building the N770 version
$ ./configure --enable-gtk --enable-hildon
$ make deb
== Building the SDL version
Optionally install guichan - see http://guichan.sourceforge.net/wiki/index.php
$ ./configure --enable-sdl
$ make
== 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
== .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