Building From Source Code¶
The Ring programming language is a free open source product (MIT License).
You can build Ring using CMake or using Scripts (Batch Files or Shell Scripts).
The next steps explains building using scripts.
Building using Microsoft Windows¶
Get the source code
git clone http://github.com/ring-lang/ring.git
Build Ring (Compiler/VM)
cd ring/language/src
buildvc.bat
buildvcw.bat
Build Ring2EXE
cd ring/tools/ring2exe
buildring2exe.bat
Generate RingConsoleColors Source Code and Build
cd ring/extensions/ringconsolecolors
gencode.bat
buildvc.bat
Build RingInternet
cd ring/extensions/ringinternet
buildvc.bat
Generate RingLibCurl Source Code and Build
cd ring/extensions/ringcurl
gencode.bat
buildvc.bat
Generate RingZip Source Code and Build
cd ring/extensions/ringzip
gencode.bat
buildvc.bat
Build RingPM
cd ring/tools/ringpm
buildringpm.bat
Build RingODBC
cd ring/extensions/ringodbc
buildvc.bat
Build RingMySQL
cd ring/extensions/ringmysql
buildvc.bat
Build RingSQLite
cd ring/extensions/ringsqlite
buildvc.bat
Build RingPostgreSQL
cd ring/extensions/ringpostgresql
gencode.bat
buildvc.bat
Build RingOpenSSL
cd ring/extensions/ringopenssl
buildvc.bat
Build RingMurmurHash
cd ring/extensions/ringmurmurhash
buildvc.bat
Generate RingAllegro Source Code and Build
cd ring/extensions/ringallegro
gencode.bat
buildvc.bat
Generate RingLibuv Source Code and Build
cd ring/extensions/ringlibuv
gencode.bat
buildvc.bat
Generate RingFreeGLUT Source Code and Build
cd ring/extensions/ringfreeglut
gencode.bat
buildvc.bat
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions
Starting from OpenGL 1.1 to OpenGL 4.6
cd ring/extensions/ringopengl/opengl21
gencode.bat
buildvc.bat
Generate RingPostgreSQL Source Code and Build
cd ring/extensions/ringpostgresql
gencode.bat
buildvc.bat
Generate RingQt Source Code and Build
Tested using Qt 5.12 and Qt 5.15
For Qt 5.12 ( Install Qt 5.12 : https://download.qt.io/archive/qt/5.12/5.12.6/ )
cd ring/extensions/ringqt
gencodeqt512_nobluetooth.bat
buildqt512_nobluetooth.bat
To Copy the Qt runtime files to ring/bin folder
cd ring/extensions/ringqt/binupdate
installqt512.bat
For Qt 5.15 ( Install Qt 5.15 : https://www.qt.io/blog/qt-5.15-released )
cd ring/extensions/ringqt
gencodeqt515_nobluetooth.bat
buildqt515_nobluetooth.bat
To Copy the Qt runtime files to ring/bin folder
cd ring/extensions/ringqt/binupdate
installqt515.bat
To be able to call ring from any folder
cd ring/bin
install.bat
Add Ring/bin to System path
Hit "windows key".
Type "Edit the System environment variables"
Select "Advanced" tab.
Click on "Enviroment Variables..."
Double click on "Path"
Add at the end the new path separated by semicolon.
;C:\Ring\Bin
Run Ring Notepad
cd ring/tools/ringnotepad
ring rnote.ring
Building using Ubuntu Linux¶
Get the source code
git clone http://github.com/ring-lang/ring.git
Install Libraries
cd ring/language/src
./installdep.sh
Build Ring (Compiler/VM)
sudo ./buildgcc.sh
Build Ring2EXE
cd ring/tools/ring2exe
sudo ./buildring2exe.sh
Generate RingConsoleColors Source Code and Build
cd ring/extensions/ringconsolecolors
./gencode.sh
./buildgcc.sh
Build RingInternet
cd ring/extensions/ringinternet
./buildgcc.sh
Generate RingLibCurl Source Code and Build
cd ring/extensions/ringcurl
./gencode.sh
./buildgcc.sh
Generate RingZip Source Code and Build
cd ring/extensions/ringzip
./gencode.sh
./buildgcc.sh
Build RingPM
cd ring/tools/ringpm
sudo ./buildringpm.sh
Build RingODBC
cd ring/extensions/ringodbc
./buildgcc.sh
Build RingMySQL
cd ring/extensions/ringmysql
./buildgcc.sh
Build RingSQLite
cd ring/extensions/ringsqlite
./buildgcc.sh
Build RingPostgreSQL
cd ring/extensions/ringpostgresql
gencode.sh
buildgcc.sh
Build RingOpenSSL
cd ring/extensions/ringopenssl
./buildgcc.sh
Build RingMurmurHash
cd ring/extensions/ringmurmurhash
./buildgcc.sh
Generate RingAllegro Source Code and Build
cd ring/extensions/ringallegro
./gencode.sh
./buildgcc.sh
Generate RingLibuv Source Code and Build
We will build Libuv first
cd ring/extensions/ringlibuv/libuv
sudo apt-get install libtool m4 automake
sh autogen.sh
./configure
make
make check
sudo make install
Then we will build RingLibuv
cd ring/extensions/ringlibuv
./gencode.sh
./buildgcc.sh
Generate RingFreeGLUT Source Code and Build
cd ring/extensions/ringfreeglut
./gencode.sh
./buildgcc.sh
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions
Starting from OpenGL 1.1 to OpenGL 4.6
cd ring/extensions/ringopengl/opengl21
gencode.sh
buildgcc.sh
Generate RingPostgreSQL Source Code and Build
cd ring/extensions/ringpostgresql
./gencode.sh
./buildgcc.sh
Generate RingQt Source Code and Build
cd ring/extensions/ringqt
./gencode.sh
./buildgcc.sh
To be able to call ring from any folder
cd ring/bin
sudo ./install.sh
Run Ring Notepad
cd ring/tools/ringnotepad
ring rnote.ring
Building using Fedora Linux¶
Get the source code
git clone http://github.com/ring-lang/ring.git
Install Libraries
cd ring/language/src
./installdepfedora.sh
Build Ring (Compiler/VM)
sudo ./buildgcc.sh
Build Ring2EXE
cd ring/tools/ring2exe
sudo ./buildring2exe.sh
Generate RingConsoleColors Source Code and Build
cd ring/extensions/ringconsolecolors
./gencode.sh
./buildgcc.sh
Build RingInternet
cd ring/extensions/ringinternet
./buildgcc.sh
Generate RingLibCurl Source Code and Build
cd ring/extensions/ringcurl
./gencode.sh
./buildgcc.sh
Generate RingZip Source Code and Build
cd ring/extensions/ringzip
./gencode.sh
./buildgcc.sh
Build RingPM
cd ring/tools/ringpm
sudo ./buildringpm.sh
Build RingODBC
cd ring/extensions/ringodbc
./buildgcc.sh
Build RingMySQL
cd ring/extensions/ringmysql
./buildgccfedora.sh
Build RingSQLite
cd ring/extensions/ringsqlite
./buildgcc.sh
Build RingPostgreSQL
cd ring/extensions/ringpostgresql
gencode.sh
buildgcc.sh
Build RingOpenSSL
cd ring/extensions/ringopenssl
./buildgcc.sh
Build RingMurmurHash
cd ring/extensions/ringmurmurhash
./buildgcc.sh
Generate RingAllegro Source Code and Build
cd ring/extensions/ringallegro
./gencode.sh
./buildgcc.sh
Generate RingLibuv Source Code and Build
We will build Libuv first
cd ring/extensions/ringlibuv/libuv
sudo dnf install libtool m4 autoconf automake
sh autogen.sh
./configure
make
make check
sudo make install
Then we will build RingLibuv
cd ring/extensions/ringlibuv
./gencode.sh
./buildgcc.sh
Generate RingFreeGLUT Source Code and Build
cd ring/extensions/ringfreeglut
./gencode.sh
./buildgcc.sh
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions
Starting from OpenGL 1.1 to OpenGL 4.6
cd ring/extensions/ringopengl/opengl21
gencode.sh
buildgcc.sh
Generate RingPostgreSQL Source Code and Build
cd ring/extensions/ringpostgresql
./gencode.sh
./buildgcc.sh
Generate RingQt Source Code and Build
cd ring/extensions/ringqt
./gencode.sh
./buildgccfedora.sh
To be able to call ring from any folder
cd ring/bin
sudo ./install.sh
Run Ring Notepad
cd ring/tools/ringnotepad
ring rnote.ring
Building using MacOS X¶
Get the source code
git clone http://github.com/ring-lang/ring.git
Install homebrew (follow the directions on homebrew’s homepage). Install Libraries
cd ring/language/src
./installdepmac.sh
Build Ring (Compiler/VM)
./buildclang.sh
Build Ring2EXE
cd ring/tools/ring2exe
sudo ./buildring2exe.sh
Generate RingConsoleColors Source Code and Build
cd ring/extensions/ringconsolecolors
./gencode.sh
./buildclang.sh
Build RingInternet
cd ring/extensions/ringinternet
./buildclang.sh
Generate RingLibCurl Source Code and Build
cd ring/extensions/ringcurl
./gencode.sh
./buildclang.sh
Generate RingZip Source Code and Build
cd ring/extensions/ringzip
./gencode.sh
./buildclang.sh
Build RingPM
cd ring/tools/ringpm
sudo ./buildringpm.sh
Build RingODBC
cd ring/extensions/ringodbc
./buildclang.sh
Build RingMySQL
cd ring/extensions/ringmysql
./buildclang.sh
Build RingSQLite
cd ring/extensions/ringsqlite
./buildclang.sh
Build RingPostgreSQL
cd ring/extensions/ringpostgresql
gencode.sh
buildclang.sh
Build RingOpenSSL
cd ring/extensions/ringopenssl
./buildclang.sh
Build RingMurmurHash
cd ring/extensions/ringmurmurhash
./buildclang.sh
Generate RingAllegro Source Code and Build
cd ring/extensions/ringallegro
./gencode.sh
./buildclang.sh
Generate RingLibuv Source Code and Build
cd ring/extensions/ringlibuv
./gencode.sh
./buildclang.sh
Generate RingFreeGLUT Source Code and Build
cd ring/extensions/ringfreeglut
./gencode.sh
./buildclang.sh
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions Starting from OpenGL 1.1 to OpenGL 4.6
cd ring/extensions/ringopengl/opengl21
./gencode.sh
./buildclang.sh
Generate RingPostgreSQL Source Code and Build
cd ring/extensions/ringpostgresql
./gencode.sh
./buildclang.sh
Generate RingQt Source Code and Build
cd ring/extensions/ringqt
./gencodemac.sh
./buildclang.sh
To be able to call ring from any folder
cd ring/bin
sudo ./install.sh
Run Ring Notepad
cd ring/tools/ringnotepad
sudo ring rnote.ring