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 |
|
|
|