Main Page
From EcereWiki
Contents |
Ecere SDK
The Ecere SDK is a Software Development Kit including:
- An elegant, easy to learn, C style object oriented programming language: eC
- A light, fast and flexible cross-platform GUI toolkit.
- An IDE including a code editor, visual object designer, project management and debugger.
- A powerful 2D/3D graphics engine.
- Libraries for networking, file access, databases, multithreading and much more.
The Ecere SDK is Free Open Source Software licensed under a revised BSD license.
Is it still under active development? Can I contribute?
Yes. Check out our:
- GitHub repository
- Bug Tracker (Mantis)
- Forums (open discussions and answers, support)
- IRC channel (#ecere on FreeNode)
Contributors are welcome! Please contact us through one of the above channels.
Yet a New Language... Why eC over ...?
C
- eC adds object oriented features to C
- Everything you can do in C, you can still do in eC.
- You can link in C modules or libraries, include C header files.
- No more need for header files or prototypes: modern import mechanism.
C++
- eC shares many basic OO concepts and syntax of C++, but offers simpler, more elegant code, geared specifically towards GUI development
- Properties implement setters/getters
- Events are implemented through eC's instance virtual methods
- You use . (dot) instead of -> (pointer arrow) for accessing heap objects members.
- You can link in C++ modules or libraries, at the C level (extern "C")
Java
- Because you want your applications to run natively, not in a virtual machine.
C#/.NET/CLI
- Because you want your applications to run on platforms other than Windows, and without requiring a huge framework to be installed.
Python
- Great language, but you might be missing C, prefer delimiting blocks by { } over indentation, or wish for a more compilation oriented language.
- eC's reflection support and dynamism was inspired by Python
Functional Language X
- Because you want to code something practical in a procedural and object-oriented manner.
What software is written in eC, with the Ecere SDK?
- The entire Ecere SDK itself is written in eC:
- The eC compiler is self hosting (but can be bootstrapped from a C compiler)
- The IDE is written in eC using the Ecere GUI toolkit
- The cross-platform GUI toolkit itself as well as the runtime library are all written in eC.
- You will find a lot of samples within the samples folder of the source package.
- You will also find Ecere Chess and Ecere Fractals Explorer on GitHub.
We have released a few binary applications that are not yet open-sourced:
- Acovel Media Player: A Media Library music player, based on the ffmpeg libraries (mp3, flac, ogg,...)
- Ecere Communicator: An Instant Messaging client that supports the AIM/ICQ/Jabber/MSN networks
- Ecere Corporation has been offering consulting services since 2005, building solutions for clients with the Ecere SDK.
- We are also developing medical software products, such as Paper2PACS, a tool for radiology clinics to scan paper requisitions and send them to PACS systems through DICOM for digital archiving.
Here is a list of other software developped with eC and the Ecere SDK. Please let us know if you create some cool software and would like us to add it to this list.
- najitool by Necdet Cokyazici and contributors
How do I install the SDK?
Source
You can grab the latest version from git with: git clone git://github.com/ecere/sdk.git
On Windows, msys-git works great.
If you don't have git set up, you can download a tarball or zipfile.
Windows
On Windows, you need MinGW or MinGW-w64 (only w64 supports 64 bit) to build the Ecere SDK, and applications as well.
The Ecere SDK 0.44 installer will install the Ecere SDK and MinGW together for you. It will also configure your Compiler Global Settings as well for you, a step you will have to do on your own if you do not use the installer.
You can also opt for a portable version of the SDK for which no installation is required. Learn more about it here. Each package comes pre-configured and ready to compile your projects out of the box. Just use your favorite decompression tool (7-zip, UnZip or Windows' Extraction Wizard for example) to extract the files. You can download the package that best fits your needs choosing from the following options:
- Portable Ecere SDK 0.44 Ryoan-ji Core (5MB) for bare minimum (provided you have your own MinGW)
- Portable Ecere SDK 0.44 Ryoan-ji MinGW (25MB) for a complete compiler solution
- Portable Ecere SDK 0.44 Ryoan-ji MinGW C++ (38MB) for C++ as well
- Portable Ecere SDK 0.44 Ryoan-ji AllInOne (59MB) for all that, samples and source code
You might also want to download or use your own version of MinGW, but be aware that there are issues with debug line numbers and MinGW/GCC 4.5, and any MinGW GDB > 7.0 has stepping issues.
For this reason the best MinGW/GCC version we recommend at this moment is GCC 4.4.0.
Once your compiling environment is set up, you should be able to build the SDK by simply running mingw32-make.
To install it, in Program Files\Ecere SDK, simply run mingw32-make install.
On Windows Vista/7 you must do this in an Elevated Command Prompt (Start, cmd, right click cmd.exe icon, Run as administrator), or make install will fail with an error.
Make sure to have previous instances of any Ecere application closed as well.
Please refer to these posts on the forums for more information:
How to install from source using the official MinGW installer
Linux
To install from source, you will need to ensure you have the proper dependencies installed.
Once the dependencies are set up, simply run make and sudo make install.
Look below for distribution specific information and available packages.
If you don't see text displayed, make sure you install the latest drivers for your video card, as older drivers had trouble with how Ecere displays text in the X graphics mode. An alternative would be to run it in OpenGL mode, but you might have to do that with textless menus: Alt V, Up, Right, Down, Enter.
You could also be seeing poor quality or not be seeing any text if you are missing good true type fonts. We recommend you install Bitstream Vera and Liberation Fonts. You can find some other free fonts, including Unicode fonts, in this blog post.
Debian / Ubuntu
You can install the Ecere SDK on Ubuntu using the apt-get system.
The Ecere SDK is now part of Ubuntu under the ecere-sdk meta-package, since 12.10 "Quantal Quetzal".
To install the latest official Ubuntu package from a terminal on Quantal or later, you can simply type:
sudo apt-get install ecere-sdk
We also have daily builds on our Launchpad PPA with the latest code from our Git repository.
To add our PPA to your system, bring up a terminal and enter:
sudo add-apt-repository ppa:ecere-team/ppa sudo apt-get update
Then to install the latest version of the Ecere SDK:
sudo apt-get install ecere-sdk
Alternatively, you can add the following line in the Settings/Software Sources dialog: (For debian squeeze, use lucid as ubuntu version)
deb http://ppa.launchpad.net/ecere-team/ppa/ubuntu YOUR_UBUNTU_VERSION_HERE main
Please refer to the Adding this PPA to your system section of our Launchpad PPA page for detailed instructions.
To build Ecere from source on Debian/Ubuntu, you will need the proper dev packages:
sudo apt-get install build-essential zlib1g-dev libpng12-dev libjpeg62-dev libncurses5-dev libfreetype6-dev libfontconfig1-dev libx11-dev libxrender-dev libgl1-mesa-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev
To build the 32 bit version of Ecere on a 64 bit system, you will need the 32 bit dependencies:
- 32 bit Dependencies on a 64 bit system:
sudo apt-get install build-essential ia32-libs libc6-dev-i386 lib32z1-dev lib32ncurses5-dev zlib1g-dev libpng12-dev libgif-dev libjpeg62-dev libncurses5-dev sudo apt-get install libfreetype6-dev libfontconfig1-dev libx11-dev libxrender-dev libgl1-mesa-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev lib32ffi-dev
If you are on Oneiric or Precise, it would seem that symlinks to the 32 bit libraries with their bare names are missing. You might require to do something like this:
sudo ln -s libz.so.1.2.3.4 /usr/lib32/libz.so sudo ln -s libncurses.so.5 /lib32/libncurses.so sudo ln -s libjpeg.so.62.0.0 /usr/lib/i386-linux-gnu/libjpeg.so sudo ln -s libpng.so.3 /usr/lib/i386-linux-gnu/libpng.so sudo ln -s libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so sudo ln -s libfontconfig.so.1.4.4 /usr/lib/i386-linux-gnu/libfontconfig.so sudo ln -s libX11.so.6.3.0 /usr/lib/i386-linux-gnu/libX11.so sudo ln -s libXrender.so.1 /usr/lib/i386-linux-gnu/libXrender.so sudo ln -s libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so sudo ln -s mesa/libGL.so.1.2 /usr/lib/i386-linux-gnu/libGL.so sudo ln -s libsqlite3.so.0.8.6 /usr/lib/i386-linux-gnu/libsqlite3.so
Until we find the proper way to do this, you might need to do something like:
sudo ln -s /usr/include/i686-linux-gnu/ffi.h /usr/include/i386-linux-gnu/ sudo ln -s /usr/include/i686-linux-gnu/ffitarget.h /usr/include/i386-linux-gnu/
With multi arch system, from Precise and up, you specify the build dependencies differently. I believe these are what worked for me:
sudo apt-get install build-essential ia32-libs gcc libfreetype6-dev:i386 libx11-dev libxrender-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev lib32ffi-dev libc6-i386 libfontconfig1-dev:i386 sudo apt-get install libc6-dev-i386 lib32z1-dev lib32tinfo-dev libgif-dev:i386 libncurses5-dev:i386 zlib1g-dev:i386 libjpeg62-dev:i386 libpng12-dev:i386 libgl1-mesa-dev:i386
Arch Linux
- 32 bit Package
- Dependencies: libpng freetype2 ncurses giflib libjpeg-turbo zlib fontconfig libxext libxrender mesa ttf-liberation ttf-bitstream-vera
- 64 bit Package
- 32 bit Dependencies on a 64 bit system: lib32-glibc lib32-gcc-libs lib32-libpng lib32-freetype2 lib32-ncurses lib32-giflib lib32-libjpeg-turbo lib32-zlib lib32-fontconfig lib32-libxext lib32-libxrender lib32-mesa ttf-liberation ttf-bitstream-vera gcc-libs-multilib gcc-multilib mesa
Red Hat / Fedora / CentOS
- Forum Topic
- Dependencies: groupinstall "Development Tools", zlibrary-devel libpng-devel giflib-devel libjpeg-devel ncurses-devel freetype-devel fontconfig-devel libX11-devel libXrender-devel libXext-devel mesa-libGLw-devel upx
Note: On older RedHat / CentOS with older releases of X.org (e.g. 5.2), the input method support locks up the IDE. A workaround is to comment out the XOpenIM() function call line in ecere/src/gui/drivers/XInterface.ec (~line 1071).
Gentoo / Sabayon
OS X
Please install from source. You will need to install the latest Xcode. Then add your toolchain bin directory to the path and set SYSROOT to the SDK directory. e.g. with Xcode 4.5.2:
export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin export SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk make
OS X support is currently limited to running through the X11 server.
The development of a Cocoa driver has begun and is the current focus. Contributions are welcome.
We're happy to announce that OS X support otherwise works properly now!
Documentation
- Programmer's Guide: The Ecere Tao of Programming
- API Reference: Documentor (F1 in the IDE)
- The samples: samples folder in the source package
- The forums
- Detailed matrices of supported features
- Quickstart guide to contributing to the eC compiler
- Building Ecere applications for the Android platform
- Misc eC language explanations
Return to www.ecere.com
Outdated Pages
All the following pages need to be reviewed, updated and moved out of this section.
Learn more
- Integrated Development Environment (IDE)
- eC Language
- Basic Utilities
- Building Graphical User Interfaces
- Networking
- 3D Graphics
- Collections
Additional References
- Ecere Programming Philosophy
- Ecere Library Features
- Ecere Library Dependencies
- Ecere Database Access (EDA)
- Computer Science Primer (Wikipedia) (Some Advanced Topics)
