Menu

Tree [a4a771] 0.11.16 /
 History

HTTPS access


File Date Author Commit
 debian 2014-09-06 Chris Warren-Smith Chris Warren-Smith [a4a771] COMMON: map,ref,try/catch,ismap,isref,array,str...
 documentation 2012-10-03 Chris Warren-Smith Chris Warren-Smith [e69ae6] DOCS added mkref.bas to generate help text from...
 ide 2014-08-31 Chris Warren-Smith Chris Warren-Smith [97f2e2] COMMON: Implemented TRY CATCH THROW
 images 2013-10-16 Chris Warren-Smith Chris Warren-Smith [8c5cb0] FLTK: fix for cygwin build
 plugins 2010-04-23 chrisws chrisws [ac19b8] publish command now lives under file menu.
 rpm 2010-11-01 chrisws chrisws [b0d803] cleanup build subdirs not required for src release
 samples 2014-09-06 Chris Warren-Smith Chris Warren-Smith [a4a771] COMMON: map,ref,try/catch,ismap,isref,array,str...
 src 2014-09-06 Chris Warren-Smith Chris Warren-Smith [a4a771] COMMON: map,ref,try/catch,ismap,isref,array,str...
 web 2014-06-12 Chris Warren-Smith Chris Warren-Smith [9242a5] ANDROID: add tool to generate SB qrcodes
 AUTHORS 2012-05-07 Chris Warren-Smith Chris Warren-Smith [13cfe6] Cleanup obsolete modules; see SVN repo in sourc...
 COPYING 2012-05-28 Chris Warren-Smith Chris Warren-Smith [7ab5f4] UNIX cleanup refactoring to fix unix console build
 ChangeLog 2014-09-06 Chris Warren-Smith Chris Warren-Smith [a4a771] COMMON: map,ref,try/catch,ismap,isref,array,str...
 Makefile.am 2014-08-11 Chris Warren-Smith Chris Warren-Smith [18dd8d] COMMON: fix deb build
 NEWS 2009-06-12 chrisws chrisws [3fccc2] updated DOFORM API for fltk version
 README 2014-07-23 Chris Warren-Smith Chris Warren-Smith [abbe3a] ANDROID: update build
 autogen.sh 2012-05-20 Chris Warren-Smith Chris Warren-Smith [4e3ecf] Code cleanup and reorganisation.
 configure.ac 2014-09-06 Chris Warren-Smith Chris Warren-Smith [a4a771] COMMON: map,ref,try/catch,ismap,isref,array,str...

Read Me

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-20140321/sdk
export TARGET_DEVICE=arm
export PLATFORM_PREFIX=~/android-sdk/android-ext/
export PATH=${PLATFORM_PREFIX}/bin:${PATH}
export NDK=~/android-sdk/android-ndk-r9d
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.12/
  CFLAGS="-std=gnu99" ./configure --host=arm-linux-androideabi --prefix=/png
  make
  make install DESTDIR=$(pwd)

  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

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 
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.