1 | #!/bin/sh |
1 | #!/bin/sh |
2 | |
2 | |
3 | # extracts various bits of data form OpenCL heder files, which are expected to |
3 | # extracts various bits of data form OpenCL heder files, which are expected to |
4 | # be in CL/ |
4 | # be in CL/ |
5 | |
5 | |
|
|
6 | ALL_H="CL/cl.h CL/cl_ext.h CL/cl_gl.h CL/cl_gl_ext.h CL11/cl_d3d9.h CL/cl_d3d10.h CL12/cl_d3d11.h CL/cl_dx9_media_sharing.h" |
|
|
7 | |
6 | # constants |
8 | # constants |
7 | cat CL/cl.h CL/cl_ext.h CL/cl_gl.h CL/cl_gl_ext.h CL/cl_d3d10.h | |
9 | ( |
8 | perl -ne 'print "#ifdef CL_$1\nconst_iv($1)\n#endif\n" if /^#define CL_(\S+)/' >constiv.h |
10 | echo '// autogenerated by h_extract' |
|
|
11 | cat $ALL_H | |
|
|
12 | perl -ne 'print "const_iv($1)\n" if /^#define CL_(\S+)/' |
|
|
13 | cat CL/cl_platform.h | |
|
|
14 | perl -ne 'print "const_iv($1)\n" if /^#define CL_(\S+)\s+[^.]+\s*$/' | |
|
|
15 | sort | uniq | |
|
|
16 | perl -ne 'print unless /const_iv\((?:MAXFLOAT|INFINITY|NAN|HUGE_VALF?)\)/' |
|
|
17 | ) >constiv.h |
|
|
18 | |
|
|
19 | # fp constants |
|
|
20 | ( |
|
|
21 | echo '// autogenerated by h_extract' |
|
|
22 | cat CL/cl_platform.h | |
|
|
23 | perl -ne 'print "const_nv($1)\n" if /^#define\s+CL_(\S+)\s+.*\..*\s*$/' |
|
|
24 | echo "const_nv(MAXFLOAT)" |
|
|
25 | echo "const_nv(INFINITY)" |
|
|
26 | echo "const_nv(HUGE_VAL)" |
|
|
27 | echo "const_nv(HUGE_VALF)" |
|
|
28 | ) >constnv.h |
9 | |
29 | |
10 | # constants that look like enum values |
30 | # constants that look like enum values |
11 | cat CL/cl.h CL/cl_ext.h CL/cl_gl.h CL/cl_gl_ext.h CL/cl_d3d10.h | |
31 | ( |
|
|
32 | echo '// autogenerated by h_extract' |
|
|
33 | cat $ALL_H | |
12 | perl -ne 'print "#ifdef CL_$1\nconst_iv($1)\n#endif\n" if /^#define CL_(\S+)\s+0x[0-9a-fA-F]{4}/' >enumstr.h |
34 | perl -ne 'print "const_iv($1)\n" if /^#define CL_(\S+)\s+0x[0-9a-fA-F]{4}/' |
13 | |
35 | ) >enumstr.h |
14 | # *glGet*Info |
|
|
15 | <CL/cl.hpp perl -ne 'print "$1\n" if /^\s*F\((.*)\)\s*\\?\s*$/' >getinfo.txt |
|
|
16 | # DEVICE_DOUBLE_FP_CONFIG |
|
|
17 | # DEVICE_HALF_FP_CONFIG |
|
|
18 | # PLATFORM_ICD_SUFFIX_KHR |
|
|
19 | # PLATFORM_NOT_FOUND_KHR |
|
|
20 | # DEVICE_COMPUTE_CAPABILITY_MAJOR_NV |
|
|
21 | # DEVICE_COMPUTE_CAPABILITY_MINOR_NV |
|
|
22 | # DEVICE_REGISTERS_PER_BLOCK_NV |
|
|
23 | # DEVICE_WARP_SIZE_NV |
|
|
24 | # DEVICE_GPU_OVERLAP_NV |
|
|
25 | # DEVICE_KERNEL_EXEC_TIMEOUT_NV |
|
|
26 | # DEVICE_INTEGRATED_MEMORY_NV |
|
|
27 | # DEVICE_PROFILING_TIMER_OFFSET_AMD |
|
|
28 | |
36 | |
29 | # error codes |
37 | # error codes |
30 | ( |
38 | ( |
|
|
39 | echo '// autogenerated by h_extract' |
31 | echo "const_iv(SUCCESS)" |
40 | echo "const_iv(SUCCESS)" |
32 | cat CL/cl.h CL/cl_ext.h CL/cl_gl.h CL/cl_gl_ext.h CL/cl_d3d10.h | |
41 | cat $ALL_H | |
33 | perl -ne 'print "#ifdef CL_$1\nconst_iv($1)\n#endif\n" if !/#define CL_BUILD_(?:NONE|ERROR|IN_PROGRESS)/ && /^#define CL_(\S+)\s+-\d+\s*$/' |
42 | perl -ne 'print "const_iv($1)\n" if !/#define CL_BUILD_(?:NONE|ERROR|IN_PROGRESS)/ && /^#define CL_(\S+)\s+-\d+\s*$/' |
34 | ) >errstr.h |
43 | ) >errstr.h |
35 | |
44 | |
|
|
45 | # default constant values to -1 |
|
|
46 | ( |
|
|
47 | echo '// autogenerated by h_extract' |
|
|
48 | cat constiv.h | |
|
|
49 | perl -ne '/const_iv\((.*)\)/ or next; print "#ifndef CL_$1\n#define CL_$1 -1\n#endif\n"' |
|
|
50 | ) >default.h |
|
|
51 | |
|
|
52 | # *glGet*Info |
|
|
53 | ( |
|
|
54 | <CL/cl.hpp perl -ne 'print "$1\n" if /^\s*F\((.*)\)\s*\\?\s*$/' |
|
|
55 | # DEVICE_DOUBLE_FP_CONFIG |
|
|
56 | # DEVICE_HALF_FP_CONFIG |
|
|
57 | # PLATFORM_ICD_SUFFIX_KHR |
|
|
58 | # PLATFORM_NOT_FOUND_KHR |
|
|
59 | # DEVICE_COMPUTE_CAPABILITY_MAJOR_NV |
|
|
60 | # DEVICE_COMPUTE_CAPABILITY_MINOR_NV |
|
|
61 | # DEVICE_REGISTERS_PER_BLOCK_NV |
|
|
62 | # DEVICE_WARP_SIZE_NV |
|
|
63 | # DEVICE_GPU_OVERLAP_NV |
|
|
64 | # DEVICE_KERNEL_EXEC_TIMEOUT_NV |
|
|
65 | # DEVICE_INTEGRATED_MEMORY_NV |
|
|
66 | # DEVICE_PROFILING_TIMER_OFFSET_AMD |
|
|
67 | |
|
|
68 | cat <<EOF |
|
|
69 | cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type |
|
|
70 | cl_gl_texture_info, CL_GL_TEXTURE_TARGET, cl_GLenum |
|
|
71 | cl_gl_texture_info, CL_GL_MIPMAP_LEVEL, cl_GLint |
|
|
72 | cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier |
|
|
73 | cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier |
|
|
74 | cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, STRING_CLASS |
|
|
75 | cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_QUALIFIER, cl_kernel_arg_type_qualifier |
|
|
76 | cl_kernel_arg_info, CL_KERNEL_ARG_NAME, STRING_CLASS |
|
|
77 | EOF |
|
|
78 | ) | sort >getinfo.txt |
|
|
79 | |