Skip to content
This repository

The code repository for the DCPU-16 Toolchain.

Octocat-spinner-32 CMakeScripts fixing readline issue #205 January 10, 2013
Octocat-spinner-32 api-demos Fix json-test so it compiles February 12, 2013
Octocat-spinner-32 cmake Finished implementation of linker policies. November 04, 2012
Octocat-spinner-32 contrib Updated sanitization script again. October 27, 2012
Octocat-spinner-32 docs Fixed a few more things in the "How DCPU-16 works" tutorial. November 21, 2012
Octocat-spinner-32 dtasm Added ability to provide error location via dhaltloc/dwarnloc. January 31, 2013
Octocat-spinner-32 dtcc integrating dtcc2 (dcpu-cc) February 10, 2013
Octocat-spinner-32 dtdb-gui ncurses fix January 10, 2013
Octocat-spinner-32 dtdb ncurses fix January 10, 2013
Octocat-spinner-32 dtemu Added ability to provide error location via dhaltloc/dwarnloc. January 31, 2013
Octocat-spinner-32 dtide finished renaming timer->clock December 17, 2012
Octocat-spinner-32 dtimg Fixed version information not showing in tools. November 05, 2012
Octocat-spinner-32 dtld Added ability to provide error location via dhaltloc/dwarnloc. January 31, 2013
Octocat-spinner-32 dtlua Clean up debug.h includes December 13, 2012
Octocat-spinner-32 dtmm Fixed curl linking on Windows December 31, 2012
Octocat-spinner-32 dtpolicy Added QScintilla2 library for Windows. November 05, 2012
Octocat-spinner-32 dtpp Added ability to provide error location via dhaltloc/dwarnloc. January 31, 2013
Octocat-spinner-32 examples Fix off-by-one error in :getscreen. November 01, 2012
Octocat-spinner-32 kernel Got packaging working for Windows installers. November 12, 2012
Octocat-spinner-32 libdcpu-cc @ c9aacab fixing asm block February 19, 2013
Octocat-spinner-32 libdcpu-ci-asm Hackily prevented .dat from being lexed as a local label January 24, 2013
Octocat-spinner-32 libdcpu-ci-dbgfmt Fixed rparse.c in compliance with the new pp November 09, 2012
Octocat-spinner-32 libdcpu-ci-objfmt Fixed rparse.c in compliance with the new pp November 09, 2012
Octocat-spinner-32 libdcpu-ld-policy Added support for kernel independent calling via .CALL directive. November 05, 2012
Octocat-spinner-32 libdcpu-ld fix for CPP, fix for stdlib, newest dcpu-cc, performance fixes in linker February 16, 2013
Octocat-spinner-32 libdcpu-pp-expr Fixed rparse.c in compliance with the new pp November 09, 2012
Octocat-spinner-32 libdcpu-pp fix for CPP, fix for stdlib, newest dcpu-cc, performance fixes in linker February 16, 2013
Octocat-spinner-32 libdcpu-vm-dbg Fixes for compilation warnings. January 28, 2013
Octocat-spinner-32 libdcpu-vm-python Add a vm_reset function December 13, 2012
Octocat-spinner-32 libdcpu-vm Fix issue #233 March 29, 2013
Octocat-spinner-32 libdcpu integrating dtcc2 (dcpu-cc) February 10, 2013
Octocat-spinner-32 modules @ bdc0de3 Updated 'modules' submodule. November 13, 2012
Octocat-spinner-32 package Added Mac packaging data. November 12, 2012
Octocat-spinner-32 stdlib-c Fixed strncmp function February 21, 2013
Octocat-spinner-32 tests Added ability to provide error location via dhaltloc/dwarnloc. January 31, 2013
Octocat-spinner-32 third-party Removed unused library. January 28, 2013
Octocat-spinner-32 tool-errgen Added error message for issue #191 and reverted previous fix. November 13, 2012
Octocat-spinner-32 .gitignore fixing windows build errors February 11, 2013
Octocat-spinner-32 .gitmodules fixing submodule February 12, 2013
Octocat-spinner-32 AUTHORS.txt Added myself to AUTHORS.txt October 04, 2012
Octocat-spinner-32 CMakeLists.txt integrating dtcc2 (dcpu-cc) February 10, 2013
Octocat-spinner-32 MIT-LICENSE.txt Fixed top level line endings. April 26, 2012
Octocat-spinner-32 README.md Improved Linux build README December 31, 2012
Octocat-spinner-32 package.bat Updated package.bat for Windows distribution. May 13, 2012
README.md

DCPU-16 Toolchain

  • Windows build status; Windows build status
  • Linux build status; Linux build status
  • Mac build status; Mac build status

The build server and it's waterfall status can be accessed from http://bb.dcputoolcha.in:8080/waterfall.

Binaries

You can download binaries for Windows from the main http://dcputoolcha.in/ website.

Source

Instructions for Windows

IMPORTANT NOTICE: GnuWin32 no longer works as it is too out-of-date to support the reentrant lexer and parser used in the preprocesser system. If you used the old instructions, you must now uninstall the GnuWin32 versions, remove GnuWin32 from your PATH and then follow the instructions below.

You need to install Cygwin. You can do this by downloading Cygwin from this link:

Ensure that during the setup process you select the Flex and Bison packages during installation. Do not install CMake under Cygwin. You should install Cygwin into a path without spaces (it will inform you to do this).

Once installed, you must then add the Cygwin bin/ folder (located under where-ever you installed Cygwin) to your system PATH environment variable (Google has the answer if you don't know how to do this). For example, I install Cygwin in C:\UNIX, thus the path for me to add would be C:\UNIX\bin.

You must then install CMake; you can download CMake from:

You now need to add CMake to your system PATH. CMake does offer to do this for you in the installer, but occasionally this will fail and you will need to do it yourself.

Once CMake is installed, start a command prompt (you must open a new command prompt since you modified PATH) and type the following commands:

> cd path/to/repo
> cmake -G "Visual Studio 10"

Otherwise, this should work correctly and produce a Visual Studio 2010 solution that you can open up in Visual Studio 2010 C++ Express and compile!

Cygwin Notice

When using Cygwin, then there are some important notes:

  • You must use the Windows version of CMake. You can't have this installed as part of Cygwin.
  • and most importantly you must initially run cmake -G "Visual Studio 10" from the command prompt. Cygwin's case sensitivity causes the initial configuration and detection of the C compiler to fail. You will need to terminate all instances of MSBuild.exe and run the configuration again from the command prompt if this occurs.
  • Once you have done the initial configuration, you may then run cmake from Cygwin to update project files; it's just the initial configuration that can't be done in Cygwin.

Instructions for Linux

Installing libraries

First you have to install some required libraries

Ubuntu 12.04
$ sudo apt-get install bison flex cmake build-essential libreadline-dev libsdl1.2-dev libcurl4-openssl-dev 
Fedora 16

IMPORTANT NOTICE: Build Instructions outdated libcurl dev headers need to be installed aswell

$ sudo yum install bison flex cmake mesa-lib* zlib-devel libpng-devel
$ sudo yum groupinstall "Development Tools"

Getting the sources from Git

Next clone the repository into a new folder

$ git clone git://github.com/DCPUTeam/DCPUToolchain.git dcputoolchain
$ cd dcputoolchain

Building

Now generate the Makefiles and and compile with

[dcputoolchain]$ cmake . && make

There's a possible issue about generating error definitions with the CMake scripts. If the make fails for you try this instead:

[dcputoolchain]$ cmake . && make -C libdcpu && make

Instructions for Mac

First install Xcode which should install everything you need to compile.

Next, you'll need to install a few other things, I'll be using homebrew for this, which you can download here, but you could use port, fink or any other way you want to install it.

You will need to install cmake, git and sdl.

IMPORTANT NOTICE: Build Instructions outdated libcurl dev headers need to be installed aswell

$ brew install cmake
$ brew install git
$ brew install sdl

Now that you've installed git, you should be able to clone DCPUToolchain if you haven't already.

$ git clone https://github.com/DCPUTeam/DCPUToolchain.git dcputoolchain
$ cd dcputoolchain

Now we can build it.

[dcputoolchain]$ cmake . && make

If everything looks like it didn't crash and burn, then you should find everything you need in dcputoolchain/Debug

Instructions for Emscripten

We have dropped support for Emscripten builds. As the toolchain increases in functionality, having full Emscripten support was no longer practical.

Something went wrong with that request. Please try again.