Coder Social home page Coder Social logo

ngage-toolchain's Introduction

N-Gage SDK.

ngage-toolchain

A toolchain for Symbian S60v1 devices such as the Nokia N-Gage.

In addition to a modern build system based on CMake, the toolchain also includes other modern libraries in the latest version, such as:

  • Simple DirectMedia Layer (SDL) 2.24.2
  • Lua 5.4.4
  • SDL2_gfx 1.0.6

What is this all about?

First of all, this is not a leak of the so far unreleased Nokia N-Gage SDK (which was ultimately just an extended Symbian SDK), but a comprehensive system that allows the original and freely available Symbian S60v1 SDK to be used with modern tools such as CMake and Visual Studio 2022.

This toolchain is the core of this project and provides the basis for all projects that build on it.

The problem

Developing apps for Symbian is unnecessarily complicated. That was no different 20 years ago than it is today and is certainly one of the main reasons why a homebrew scene never emerged for the Nokia N-Gage.

Until now, the easiest way to do this was to set up a virtual machine, install the SDK and a completely outdated version of Visual Studio. In addition, there was the proprietary build system, which required a Perl installation that could be installed along with it.

In a nutshell, Symbian development has never been a convenient thing.

The solution

CMake, because it provides a perfect foundation for automating complicated build procedures and is natively supported by many modern development environments such as Visual Studio.

Even though this project is still in its early stages, it is already possible to compile apps for the platform in a relatively uncomplicated manner. Overall, the toolchain has a modular design and can be extended by additional libraries as needed.

Where do I start?

Clone the toolchain:

git clone https://github.com/ngagesdk/ngage-toolchain.git

Create the environment variable $NGAGESDK and set it to the root-directory of the toolchain.
Important: Since normalizing paths with CMake does not seem to work properly, be sure to use slashes instead of backslashes, e.g. C:/ngage-toolchain.

Once you are done, open the setup directory in Visual Studio and wait until the CMake solution has finished generating. Then build the project so that the necessary dependencies are downloaded and installed.

Important

The GCC compiler for Symbian S60 is based on Cygwin. For it to work, its path %NGAGESDK%\sdk\sdk\6.1\Shared\EPOC32\gcc\bin should be included in your $PATH environment variable, otherwise it will not be able to find the file cygwin1.dll.

Licence and Credits

If you are interested in the Nokia N-Gage in general, you are cordially invited to visit our small online community. You can find us on Discord, Telegram and in #ngage on EFnet.

ngage-toolchain's People

Contributors

mupfdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ngage-toolchain's Issues

Update GCC to version 4.6.4, add Linux support

In the long run, it would make sense for the compiler to be replaced by one that is somewhat more up-to-date.
This would also be interesting for development on *nix-based operating systems.

The latest possible version would be 4.6.4, as support for ARM PE executables was removed in later versions.

Unfortunately, I have not been successful in my previous attempts and could use some help in this regard.

Path environment set?

Hey yall, so anyways i am just wondering, how do i set the path environment on visual studio 2022 for the ngagesdk. because i just git cloned the repository and it worked out well. but i got confused when it told me to create a new path enviorment variable and yes, i read the tutorial line to line, but anyways how do i set the environment on visual studio 2022 with the ngagesdk!

Document installation for all platforms

Right now README.md suggests that this is a Windows-only solution, based on mentions of reliance on Cygwin and Visual Studio, while I was able to build under Linux just by setting NGAGESDK, then executing cd setup && cmake . && make. Please reword that document, so that some *nix-based developers don't get scared away by notion that this can only be built on Windows.

Does ngage-toolchain run in GitHub workflows?

Hello!

I'm currently working on a setup-sdl GitHub action to provide SDL in any GitHub project.
You can just add the following in your workflow yml, and it will build sdl.

    - uses: madebr/setup-sdl@master

It has some inputs to configure cmake toolchains etc.
See https://github.com/madebr/setup-sdl/blob/master/action.yml

Now, @FtZPetruska and me are testing compatibility with a few toolchains, one of which is the ngage sdk.
This resulted in this GitHub workflow yml.

When testing this, it hangs in the detection phase of CMake: https://github.com/madebr/setup-SDL-test/actions/runs/5307711863/jobs/9606495744

  cmake -S "C:/setupsdl/3d17b1314f3b93fd9ed24e7079ec85309da29cc307b5bba8e67127943386a891/source" -B "C:/setupsdl/3d17b1314f3b93fd9ed24e7079ec85309da29cc307b5bba8e67127943386a891/build" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_TOOLCHAIN_FILE="D:\a\setup-SDL-test\setup-SDL-test\ngage-toolchain\cmake\ngage-toolchain.cmake" -GNinja
  -- Found PkgConfig: C:/Strawberry/perl/bin/pkg-config.bat (found version "0.26") 
  -- Looking for __GLIBC__
  Error: The operation was canceled.

Are we missing something here?

eka2l1 error

hey yall, so anyways i was trying to install ngagesdk, but when i type make into the terminal it gives me a error the error says: Error copying file "home/ngage-toolchain/sdk/../cmake/stub-eka2l1.cmake" to "home/ngage-toolchain/sdk/eka2l1/CMakeLists.txt".
make[2]: *** [CMakeFiles/EKA2L1.dir/build.make:103: EKA2L1-prefix/src/EKA2L1-stamp/EKA2L1-patch] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/EKA2L1.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
IDK what this means so can you help me please!

How To compile test apps?

hey, so anyways i installed the ngagesdk and all that jazz but how do i compile the examples and run them on ngage hardware? Because I want to compile the example test applications.

How to compile examples?

hey yall, so anyways i want to compile the test applications for the ngagesdk but idk how to compile the apps, so can you help me please.

Path Issue

Hey yall, so anyways i did the git clone to the ngage-toolchain and it went well but when i cd to the root directory then changed directories in the projects folder and it went great. but then I had a issue, when i type in cmake . it gives me a error, the error says "CMake Error at CMakeLists.txt:6 (message):
The environment variable NGAGESDK needs to be defined."
IDK what to do about this error, how do I set the path to the ngage-toolchan for the sdk!

How To create a cmake file for ngagesdk?

hey guys so anyways, i was trying to create my own cmake file via the sdl2 cmakelists.txt file but here's the problem when i try to compile it in visual studio 2022, it gives me a 404 error, idk what to do anymore so can you help me get it compiling?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.