Changes

Programming:Cross Development

2,861 bytes added, 05:58, 9 January 2013
Add "Integrated toolchains" section.
= Tools needed for cross development =
 
== Integrated toolchains ==
 
An integrated cross-development toolchain is a time saver for development as it automates all necessary steps from a full set of source materials (source code, graphics, music, parameters in whatever format is practical for editing, etc) to one or several formats ready to run on the target machines. It also sometimes includes automatically launching or notifying an emulator or target device. See e.g. [http://en.wikipedia.org/wiki/Build_automation#Advantages Build Automation on wikipedia].
 
Such a design has several advantage:
* allows the usage of any text/graphic editor of modern platforms
* you can change anything in one or more source files and you get an updated build quickly without error-prone manual steps
* allows arbitrary transform or generation of intermediary files (code or data).
* makes easy to have specific builds (e.g. for automated tests like to check if a different compiler produces correct code, variant build for slightly different targets)
* since most material are text files or small independent files, it benefits hugely from modern tools for revision control like [http://en.wikipedia.org/wiki/Git_%28software%29 Git] which makes sharing and merging code between developers much easier, increasing the time saved.
 
An ideal toolchain does not force its user into specific ways of doing things but is flexible enough to let the user adjust for whatever specific needs (use different languages, compilers, linkers, etc). Along with a properly designed and structured source tree, this makes projects less dependent on specific tools used to build them, and be more resilient to [http://en.wikipedia.org/wiki/Bit_rot bit rot] due to [http://en.wikipedia.org/wiki/Software_rot#Environment_change software build environment change].
 
Please note that an integrated toolchain has little to do with anything visible on-screen. A good toolchain can be triggered by most flexible enough graphical environments and generally produces a text log of the work done.
 
There are some attempts at creating toolchains targeting the CPC:
 
* Currently active (as of end of 2012): on [http://www.cpcwiki.eu/forum/off-topic/cpc-sdk-for-linuxunix/ CPC SDK for Linux/Unix] PlukoMandy mentions http://code.google.com/p/cpcsdk
* 2012-11-12 [http://www.cpcwiki.eu/forum/programming/recommended-linux-cross-dev-tool-chain/ Recommended Linux cross-dev tool chain?] mentions a makefile-based toolchain targeting dsk images or tapes
* 2009-06-16 [http://www.cpcwiki.eu/forum/emulators/my-new-cross-development-kit/new/#new My new cross-development kit] explain what is basically a toolchain but link is broken as of 2013-01-08
 
== Linux ==
=== Cross compilers (C) ===
 
For tutorial, see http://www.cpcmania.com/Docs/Programming/Programming.htm by Mochilote
* [[Z88DK]]
* [[SDCC]], notably [[SDCC and CPC]] had hints and practical examples about the principles of writing in C for CPC.
* [[PhrozenC]]
45
edits