Skip to content

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

License

Notifications You must be signed in to change notification settings

smallbasic/SmallBASIC

Repository files navigation

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/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"

2. 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)

3. setup config.h

./configure --enable-android

4. 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 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. 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:

   sudo apt-get install 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://seriss.com/public/fltk/fltk/trunk fltk-2.0 <press enter for username+password>
 $ git clone git://git.code.sf.net/p/smallbasic/git smallbasic-git
 $ 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

 $ ./configure --enable-sdl
 $ make

 On windows, install tools:
 http://www.gtk.org/download/win32.php

 $ ./configure --host=i686-w64-mingw32 --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 

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published