| 1 |
root |
1.1 |
use ExtUtils::MakeMaker; |
| 2 |
|
|
|
| 3 |
root |
1.7 |
print <<EOF; |
| 4 |
|
|
|
| 5 |
|
|
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
| 6 |
|
|
|
| 7 |
|
|
|
| 8 |
|
|
OpenCL does not have good backwards compatibility - for example, the only |
| 9 |
|
|
way to create a 2D image in OpenCL 1.1 is clCreateImage2D, which is not |
| 10 |
|
|
available anymore with OpenCL 1.2. |
| 11 |
|
|
|
| 12 |
|
|
The OpenCL module can often emulate OpenCL 1.1 functions using OpenCL 1.2 |
| 13 |
|
|
functions, but even though your OpenCL library might contain the OpenCL |
| 14 |
root |
1.8 |
1.2 functions, they might be nonfunctional and crash. |
| 15 |
root |
1.7 |
|
| 16 |
|
|
Do you want to prefer the OpenCL 1.1 API over the 1.2 API where possible? |
| 17 |
|
|
|
| 18 |
|
|
EOF |
| 19 |
|
|
|
| 20 |
root |
1.11 |
my $DEFINE = " -DPREFER_1_1=" . (0 + (prompt ("Prefer OpenCL 1.1 over 1.2 functions (y/n)?", "y") =~ /[yY]/)); |
| 21 |
|
|
|
| 22 |
|
|
print <<EOF; |
| 23 |
|
|
|
| 24 |
|
|
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
| 25 |
|
|
|
| 26 |
|
|
|
| 27 |
|
|
This module needs to link against both the OpenCL and pthread libraries |
| 28 |
|
|
(even on windows). If you wish you can override the LIBS argument now. If |
| 29 |
|
|
not, just press enter to accept the default. |
| 30 |
|
|
|
| 31 |
|
|
EOF |
| 32 |
|
|
|
| 33 |
|
|
my $LIBS = prompt "Value for LIBS?", "-lOpenCL -lpthread"; |
| 34 |
|
|
|
| 35 |
|
|
print <<EOF; |
| 36 |
|
|
|
| 37 |
|
|
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
| 38 |
|
|
|
| 39 |
|
|
|
| 40 |
|
|
Sometimes you need to define extra compilation options (for example, the |
| 41 |
|
|
hypothetical OpenCL 1.3 header files might require you to define something |
| 42 |
|
|
like CL_USE_DEPRECATED_OPENCL_1_2_APIS). You can do this here, or simply |
| 43 |
|
|
press enter. |
| 44 |
|
|
|
| 45 |
|
|
EOF |
| 46 |
|
|
|
| 47 |
|
|
my $EXTRADEFS = prompt "Any extra -D options?", ""; |
| 48 |
root |
1.7 |
|
| 49 |
root |
1.1 |
WriteMakefile( |
| 50 |
|
|
dist => { |
| 51 |
|
|
PREOP => 'pod2text OpenCL.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', |
| 52 |
|
|
COMPRESS => 'gzip -9v', |
| 53 |
|
|
SUFFIX => '.gz', |
| 54 |
|
|
}, |
| 55 |
root |
1.3 |
PREREQ_PM => { |
| 56 |
root |
1.10 |
common::sense => 3, |
| 57 |
|
|
Async::Interrupt => 1.1, |
| 58 |
root |
1.2 |
}, |
| 59 |
root |
1.11 |
DEFINE => "$DEFINE $EXTRADEFS", |
| 60 |
root |
1.1 |
NAME => "OpenCL", |
| 61 |
|
|
VERSION_FROM => "OpenCL.pm", |
| 62 |
root |
1.11 |
LIBS => [$LIBS], |
| 63 |
root |
1.1 |
); |
| 64 |
|
|
|