1 |
use ExtUtils::MakeMaker; |
2 |
|
3 |
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 |
1.2 functions, they might be nonfunctional and crash. |
15 |
|
16 |
Do you want to prefer the OpenCL 1.1 API over the 1.2 API where possible? |
17 |
|
18 |
EOF |
19 |
|
20 |
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 |
|
49 |
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 |
PREREQ_PM => { |
56 |
common::sense => 3, |
57 |
Async::Interrupt => 1.1, |
58 |
}, |
59 |
DEFINE => "$DEFINE $EXTRADEFS", |
60 |
NAME => "OpenCL", |
61 |
VERSION_FROM => "OpenCL.pm", |
62 |
LIBS => [$LIBS], |
63 |
); |
64 |
|