CLCC - The OpenCL kernel Compiler

Version 0.3.0 (build: 25)

SourceForge.net project page: http://www.sourceforge.net/projects/clcc

Introduction
Benefits
Usage
License
Building
Compatibility
Changelog
Todo List
Credits

Introduction

CLCC is a compiler for OpenCL kernel source files. It is intended to be a tool for application developers who need to incorporate OpenCL source code into their programs and who want to verify their OpenCL code actually gets compiled by the driver before their program tries to compile it on-demand.

Benefits

The benefits of using CLCC are simple: when building an OpenCL application, you write "normal" code and OpenCL code. The normal code gets checked by your ordinary compiler, but the OpenCL code is not, leaving you with the task of handling compilation errors in your application code. Something which isn't always possible or easy.

By compiling your code with CLCC during the build phase, you can quickly spot errors and fix them in your favorite development environment.

Usage

CLCC can be invoked from the command-line using the following syntax:

Options are:

If you specify more than on OpenCL source file on the command line, the files are compiled into a single program. Note that this behavior differs from the behavior in version 0.1

License

This project is available under the Boost Software License, Version 1.0

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:

The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Building

To build CLCC you will need to have a copy of the Boost Libraries installed on your system. You will find these at http://www.boost.org This version was built against Boost version 1.47.0

To generate makefiles and/or project files for your favorite IDE on your favorite platform, you will need CMake version 2.8 or higher, which you can find at http://www.cmake.org

Parts of this code are Copyright (c) 2008-2009 The Khronos Group Inc. Find more information on OpenCL at http://www.khronos.org/opencl/

To build CLCC from source, follow these steps:

Compatibility

This code was built and tested on the following platforms:

The code should compile on any decent C++ compiler, but your mileage may vary.

Running

To run CLCC on any platform you will need a properly installed OpenCL driver. CLCC will attempt to locate the OpenCL dynamic library automatically, but if it fails you can try to pass it to CLCC by using the --clpath command line argument

Run-time dependencies

Changelog

v0.3 (2012-01-15)

v0.2 (2011-11-07)

v0.1 (2009-12-08)

Todo

Credits

CLCC was written by George van Venrooij of Organic Vectory B.V.
Contact him by e-mailing to: at george at organicvectory dot com

Contributions were made by the following authors:

(c) 2009-2012 Organic Vectory B.V. - http://www.organicvectory.com