orignal
7 years ago
30 changed files with 45988 additions and 0 deletions
@ -0,0 +1,17 @@ |
|||||||
|
CC = gcc |
||||||
|
|
||||||
|
LIBS = -Lcompat/lib -lcurl -lOpenCL -L/mingw32/lib -lwldap32 -lws2_32 -ljansson -lpthread |
||||||
|
LDFLAGS = -s -Wl,-rpath,/usr/local/lib -Wl,-Bstatic -static-libgcc |
||||||
|
CFLAGS = -Os -DCURL_STATICLIB -DWIN32 -DWIN32_LEAN_AND_MEAN -Wno-deprecated-declarations -Wformat -Icompat/include |
||||||
|
OBJS = miner.o ocl.o util.o streebog.o |
||||||
|
|
||||||
|
all: gostoclminer |
||||||
|
|
||||||
|
%.o: %.c $(HEADERS) |
||||||
|
$(CC) -c $(CFLAGS) -o $@ $< |
||||||
|
|
||||||
|
gostoclminer: $(OBJS) |
||||||
|
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
||||||
|
|
||||||
|
clean: |
||||||
|
$(RM) *.o gostoclminer |
@ -0,0 +1,126 @@ |
|||||||
|
/**********************************************************************************
|
||||||
|
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
**********************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||||
|
|
||||||
|
#ifndef __OPENCL_CL_D3D10_H |
||||||
|
#define __OPENCL_CL_D3D10_H |
||||||
|
|
||||||
|
#include <d3d10.h> |
||||||
|
#include <CL/cl.h> |
||||||
|
#include <CL/cl_platform.h> |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* cl_khr_d3d10_sharing */ |
||||||
|
#define cl_khr_d3d10_sharing 1 |
||||||
|
|
||||||
|
typedef cl_uint cl_d3d10_device_source_khr; |
||||||
|
typedef cl_uint cl_d3d10_device_set_khr; |
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
// Error Codes
|
||||||
|
#define CL_INVALID_D3D10_DEVICE_KHR -1002 |
||||||
|
#define CL_INVALID_D3D10_RESOURCE_KHR -1003 |
||||||
|
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 |
||||||
|
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 |
||||||
|
|
||||||
|
// cl_d3d10_device_source_nv
|
||||||
|
#define CL_D3D10_DEVICE_KHR 0x4010 |
||||||
|
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 |
||||||
|
|
||||||
|
// cl_d3d10_device_set_nv
|
||||||
|
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 |
||||||
|
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 |
||||||
|
|
||||||
|
// cl_context_info
|
||||||
|
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 |
||||||
|
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C |
||||||
|
|
||||||
|
// cl_mem_info
|
||||||
|
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 |
||||||
|
|
||||||
|
// cl_image_info
|
||||||
|
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 |
||||||
|
|
||||||
|
// cl_command_type
|
||||||
|
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 |
||||||
|
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 |
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( |
||||||
|
cl_platform_id platform, |
||||||
|
cl_d3d10_device_source_khr d3d_device_source, |
||||||
|
void * d3d_object, |
||||||
|
cl_d3d10_device_set_khr d3d_device_set, |
||||||
|
cl_uint num_entries, |
||||||
|
cl_device_id * devices, |
||||||
|
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D10Buffer * resource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D10Texture2D * resource, |
||||||
|
UINT subresource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D10Texture3D * resource, |
||||||
|
UINT subresource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif // __OPENCL_CL_D3D10_H
|
||||||
|
|
@ -0,0 +1,126 @@ |
|||||||
|
/**********************************************************************************
|
||||||
|
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
**********************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||||
|
|
||||||
|
#ifndef __OPENCL_CL_D3D11_H |
||||||
|
#define __OPENCL_CL_D3D11_H |
||||||
|
|
||||||
|
#include <d3d11.h> |
||||||
|
#include <CL/cl.h> |
||||||
|
#include <CL/cl_platform.h> |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* cl_khr_d3d11_sharing */ |
||||||
|
#define cl_khr_d3d11_sharing 1 |
||||||
|
|
||||||
|
typedef cl_uint cl_d3d11_device_source_khr; |
||||||
|
typedef cl_uint cl_d3d11_device_set_khr; |
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
// Error Codes
|
||||||
|
#define CL_INVALID_D3D11_DEVICE_KHR -1006 |
||||||
|
#define CL_INVALID_D3D11_RESOURCE_KHR -1007 |
||||||
|
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 |
||||||
|
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 |
||||||
|
|
||||||
|
// cl_d3d11_device_source
|
||||||
|
#define CL_D3D11_DEVICE_KHR 0x4019 |
||||||
|
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A |
||||||
|
|
||||||
|
// cl_d3d11_device_set
|
||||||
|
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B |
||||||
|
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C |
||||||
|
|
||||||
|
// cl_context_info
|
||||||
|
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D |
||||||
|
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D |
||||||
|
|
||||||
|
// cl_mem_info
|
||||||
|
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E |
||||||
|
|
||||||
|
// cl_image_info
|
||||||
|
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F |
||||||
|
|
||||||
|
// cl_command_type
|
||||||
|
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 |
||||||
|
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 |
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( |
||||||
|
cl_platform_id platform, |
||||||
|
cl_d3d11_device_source_khr d3d_device_source, |
||||||
|
void * d3d_object, |
||||||
|
cl_d3d11_device_set_khr d3d_device_set, |
||||||
|
cl_uint num_entries, |
||||||
|
cl_device_id * devices, |
||||||
|
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D11Buffer * resource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D11Texture2D * resource, |
||||||
|
UINT subresource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
ID3D11Texture3D * resource, |
||||||
|
UINT subresource, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif // __OPENCL_CL_D3D11_H
|
||||||
|
|
@ -0,0 +1,127 @@ |
|||||||
|
/**********************************************************************************
|
||||||
|
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
**********************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||||
|
|
||||||
|
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H |
||||||
|
#define __OPENCL_CL_DX9_MEDIA_SHARING_H |
||||||
|
|
||||||
|
#include <CL/cl.h> |
||||||
|
#include <CL/cl_platform.h> |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
/* cl_khr_dx9_media_sharing */ |
||||||
|
#define cl_khr_dx9_media_sharing 1 |
||||||
|
|
||||||
|
typedef cl_uint cl_dx9_media_adapter_type_khr; |
||||||
|
typedef cl_uint cl_dx9_media_adapter_set_khr; |
||||||
|
|
||||||
|
#if defined(_WIN32) |
||||||
|
#include <d3d9.h> |
||||||
|
typedef struct _cl_dx9_surface_info_khr |
||||||
|
{ |
||||||
|
IDirect3DSurface9 *resource; |
||||||
|
HANDLE shared_handle; |
||||||
|
} cl_dx9_surface_info_khr; |
||||||
|
#endif |
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
// Error Codes
|
||||||
|
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 |
||||||
|
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 |
||||||
|
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 |
||||||
|
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 |
||||||
|
|
||||||
|
// cl_media_adapter_type_khr
|
||||||
|
#define CL_ADAPTER_D3D9_KHR 0x2020 |
||||||
|
#define CL_ADAPTER_D3D9EX_KHR 0x2021 |
||||||
|
#define CL_ADAPTER_DXVA_KHR 0x2022 |
||||||
|
|
||||||
|
// cl_media_adapter_set_khr
|
||||||
|
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 |
||||||
|
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 |
||||||
|
|
||||||
|
// cl_context_info
|
||||||
|
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 |
||||||
|
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 |
||||||
|
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 |
||||||
|
|
||||||
|
// cl_mem_info
|
||||||
|
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 |
||||||
|
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 |
||||||
|
|
||||||
|
// cl_image_info
|
||||||
|
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A |
||||||
|
|
||||||
|
// cl_command_type
|
||||||
|
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B |
||||||
|
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C |
||||||
|
|
||||||
|
/******************************************************************************/ |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( |
||||||
|
cl_platform_id platform, |
||||||
|
cl_uint num_media_adapters, |
||||||
|
cl_dx9_media_adapter_type_khr * media_adapter_type, |
||||||
|
void * media_adapters, |
||||||
|
cl_dx9_media_adapter_set_khr media_adapter_set, |
||||||
|
cl_uint num_entries, |
||||||
|
cl_device_id * devices, |
||||||
|
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( |
||||||
|
cl_context context, |
||||||
|
cl_mem_flags flags, |
||||||
|
cl_dx9_media_adapter_type_khr adapter_type, |
||||||
|
void * surface_info, |
||||||
|
cl_uint plane, |
||||||
|
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( |
||||||
|
cl_command_queue command_queue, |
||||||
|
cl_uint num_objects, |
||||||
|
const cl_mem * mem_objects, |
||||||
|
cl_uint num_events_in_wait_list, |
||||||
|
const cl_event * event_wait_list, |
||||||
|
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif // __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||||
|
|
@ -0,0 +1,533 @@ |
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008-2013 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
******************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 14835 $ on $Date: 2011-05-26 11:32:00 -0700 (Thu, 26 May 2011) $ */ |
||||||
|
|
||||||
|
/* cl_ext.h contains OpenCL extensions which don't have external */ |
||||||
|
/* (OpenGL, D3D) dependencies. */ |
||||||
|
|
||||||
|
#ifndef __CL_EXT_H |
||||||
|
#define __CL_EXT_H |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __APPLE__ |
||||||
|
#include <OpenCL/cl.h> |
||||||
|
#include <AvailabilityMacros.h> |
||||||
|
#else |
||||||
|
#include <CL/cl.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/* cl_khr_fp16 extension - no extension #define since it has no functions */ |
||||||
|
#define CL_DEVICE_HALF_FP_CONFIG 0x1033 |
||||||
|
|
||||||
|
/* Memory object destruction
|
||||||
|
* |
||||||
|
* Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR |
||||||
|
* |
||||||
|
* Registers a user callback function that will be called when the memory object is deleted and its resources |
||||||
|
* freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback |
||||||
|
* stack associated with memobj. The registered user callback functions are called in the reverse order in |
||||||
|
* which they were registered. The user callback functions are called and then the memory object is deleted |
||||||
|
* and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be |
||||||
|
* notified when the memory referenced by host_ptr, specified when the memory object is created and used as |
||||||
|
* the storage bits for the memory object, can be reused or freed. |
||||||
|
* |
||||||
|
* The application may not call CL api's with the cl_mem object passed to the pfn_notify. |
||||||
|
* |
||||||
|
* Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
||||||
|
* before using. |
||||||
|
*/ |
||||||
|
#define cl_APPLE_SetMemObjectDestructor 1 |
||||||
|
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */, |
||||||
|
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), |
||||||
|
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
|
||||||
|
/* Context Logging Functions
|
||||||
|
* |
||||||
|
* The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). |
||||||
|
* Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
||||||
|
* before using. |
||||||
|
* |
||||||
|
* clLogMessagesToSystemLog fowards on all log messages to the Apple System Logger |
||||||
|
*/ |
||||||
|
#define cl_APPLE_ContextLoggingFunctions 1 |
||||||
|
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * /* errstr */, |
||||||
|
const void * /* private_info */, |
||||||
|
size_t /* cb */, |
||||||
|
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ |
||||||
|
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * /* errstr */, |
||||||
|
const void * /* private_info */, |
||||||
|
size_t /* cb */, |
||||||
|
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ |
||||||
|
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */, |
||||||
|
const void * /* private_info */, |
||||||
|
size_t /* cb */, |
||||||
|
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
|
||||||
|
/************************
|
||||||
|
* cl_khr_icd extension * |
||||||
|
************************/ |
||||||
|
#define cl_khr_icd 1 |
||||||
|
|
||||||
|
/* cl_platform_info */ |
||||||
|
#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 |
||||||
|
|
||||||
|
/* Additional Error Codes */ |
||||||
|
#define CL_PLATFORM_NOT_FOUND_KHR -1001 |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clIcdGetPlatformIDsKHR(cl_uint /* num_entries */, |
||||||
|
cl_platform_id * /* platforms */, |
||||||
|
cl_uint * /* num_platforms */); |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( |
||||||
|
cl_uint /* num_entries */, |
||||||
|
cl_platform_id * /* platforms */, |
||||||
|
cl_uint * /* num_platforms */); |
||||||
|
|
||||||
|
|
||||||
|
/* Extension: cl_khr_image2D_buffer
|
||||||
|
* |
||||||
|
* This extension allows a 2D image to be created from a cl_mem buffer without a copy. |
||||||
|
* The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t. |
||||||
|
* Both the sampler and sampler-less read_image built-in functions are supported for 2D images |
||||||
|
* and 2D images created from a buffer. Similarly, the write_image built-ins are also supported |
||||||
|
* for 2D images created from a buffer. |
||||||
|
* |
||||||
|
* When the 2D image from buffer is created, the client must specify the width, |
||||||
|
* height, image format (i.e. channel order and channel data type) and optionally the row pitch |
||||||
|
* |
||||||
|
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels. |
||||||
|
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*************************************
|
||||||
|
* cl_khr_initalize_memory extension * |
||||||
|
*************************************/ |
||||||
|
|
||||||
|
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E |
||||||
|
|
||||||
|
|
||||||
|
/**************************************
|
||||||
|
* cl_khr_terminate_context extension * |
||||||
|
**************************************/ |
||||||
|
|
||||||
|
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F |
||||||
|
#define CL_CONTEXT_TERMINATE_KHR 0x2010 |
||||||
|
|
||||||
|
#define cl_khr_terminate_context 1 |
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extension: cl_khr_spir |
||||||
|
* |
||||||
|
* This extension adds support to create an OpenCL program object from a |
||||||
|
* Standard Portable Intermediate Representation (SPIR) instance |
||||||
|
*/ |
||||||
|
|
||||||
|
// KHR SPIR extension (Section 9.15.2 in the extension SPEC)
|
||||||
|
// TODO: The values have been approved by khronos and waiting to be updated in official header file.
|
||||||
|
#define CL_DEVICE_SPIR_VERSIONS 0x40E0 |
||||||
|
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 |
||||||
|
|
||||||
|
/******************************************
|
||||||
|
* cl_nv_device_attribute_query extension * |
||||||
|
******************************************/ |
||||||
|
/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ |
||||||
|
#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 |
||||||
|
#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 |
||||||
|
#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 |
||||||
|
#define CL_DEVICE_WARP_SIZE_NV 0x4003 |
||||||
|
#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 |
||||||
|
#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 |
||||||
|
#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 |
||||||
|
|
||||||
|
/*********************************
|
||||||
|
* cl_amd_device_memory_flags * |
||||||
|
*********************************/ |
||||||
|
#define cl_amd_device_memory_flags 1 |
||||||
|
#define CL_MEM_USE_PERSISTENT_MEM_AMD (1 << 6) // Alloc from GPU's CPU visible heap
|
||||||
|
|
||||||
|
/* cl_device_info */ |
||||||
|
#define CL_DEVICE_MAX_ATOMIC_COUNTERS_EXT 0x4032 |
||||||
|
|
||||||
|
/*********************************
|
||||||
|
* cl_amd_device_attribute_query * |
||||||
|
*********************************/ |
||||||
|
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 |
||||||
|
#define CL_DEVICE_TOPOLOGY_AMD 0x4037 |
||||||
|
#define CL_DEVICE_BOARD_NAME_AMD 0x4038 |
||||||
|
#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 |
||||||
|
#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 |
||||||
|
#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 |
||||||
|
#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 |
||||||
|
#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 |
||||||
|
#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 |
||||||
|
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 |
||||||
|
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 |
||||||
|
#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 |
||||||
|
#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 |
||||||
|
#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 |
||||||
|
#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A |
||||||
|
#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B |
||||||
|
|
||||||
|
typedef union |
||||||
|
{ |
||||||
|
struct { cl_uint type; cl_uint data[5]; } raw; |
||||||
|
struct { cl_uint type; cl_char unused[17]; cl_char bus; cl_char device; cl_char function; } pcie; |
||||||
|
} cl_device_topology_amd; |
||||||
|
|
||||||
|
#define CL_DEVICE_TOPOLOGY_TYPE_PCIE_AMD 1 |
||||||
|
|
||||||
|
/*************
|
||||||
|
* cl_amd_hsa * |
||||||
|
**************/ |
||||||
|
#define CL_HSA_ENABLED_AMD (1ull << 62) |
||||||
|
#define CL_HSA_DISABLED_AMD (1ull << 63) |
||||||
|
|
||||||
|
|
||||||
|
/**************************
|
||||||
|
* cl_amd_offline_devices * |
||||||
|
**************************/ |
||||||
|
#define CL_CONTEXT_OFFLINE_DEVICES_AMD 0x403F |
||||||
|
|
||||||
|
#ifdef CL_VERSION_1_1 |
||||||
|
/***********************************
|
||||||
|
* cl_ext_device_fission extension * |
||||||
|
***********************************/ |
||||||
|
#define cl_ext_device_fission 1 |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL *clReleaseDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL *clRetainDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
typedef cl_ulong cl_device_partition_property_ext; |
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clCreateSubDevicesEXT( cl_device_id /*in_device*/, |
||||||
|
const cl_device_partition_property_ext * /* properties */, |
||||||
|
cl_uint /*num_entries*/, |
||||||
|
cl_device_id * /*out_devices*/, |
||||||
|
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
( CL_API_CALL * clCreateSubDevicesEXT_fn)( cl_device_id /*in_device*/, |
||||||
|
const cl_device_partition_property_ext * /* properties */, |
||||||
|
cl_uint /*num_entries*/, |
||||||
|
cl_device_id * /*out_devices*/, |
||||||
|
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
/* cl_device_partition_property_ext */ |
||||||
|
#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 |
||||||
|
#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 |
||||||
|
#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 |
||||||
|
#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 |
||||||
|
|
||||||
|
/* clDeviceGetInfo selectors */ |
||||||
|
#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 |
||||||
|
#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 |
||||||
|
#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 |
||||||
|
#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 |
||||||
|
#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 |
||||||
|
|
||||||
|
/* clGetImageInfo enum */ |
||||||
|
#define CL_IMAGE_BYTE_PITCH_AMD 0x4059 |
||||||
|
|
||||||
|
/* error codes */ |
||||||
|
#define CL_DEVICE_PARTITION_FAILED_EXT -1057 |
||||||
|
#define CL_INVALID_PARTITION_COUNT_EXT -1058 |
||||||
|
#define CL_INVALID_PARTITION_NAME_EXT -1059 |
||||||
|
|
||||||
|
/* CL_AFFINITY_DOMAINs */ |
||||||
|
#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 |
||||||
|
#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 |
||||||
|
#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 |
||||||
|
#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 |
||||||
|
#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 |
||||||
|
#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 |
||||||
|
/* cl_device_partition_property_ext list terminators */ |
||||||
|
#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
||||||
|
#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
||||||
|
#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) |
||||||
|
|
||||||
|
/*********************************
|
||||||
|
* cl_qcom_ext_host_ptr extension |
||||||
|
*********************************/ |
||||||
|
|
||||||
|
#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) |
||||||
|
|
||||||
|
#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 |
||||||
|
#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 |
||||||
|
#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 |
||||||
|
#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 |
||||||
|
#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 |
||||||
|
#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 |
||||||
|
#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 |
||||||
|
#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 |
||||||
|
|
||||||
|
typedef cl_uint cl_image_pitch_info_qcom; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clGetDeviceImageInfoQCOM(cl_device_id device, |
||||||
|
size_t image_width, |
||||||
|
size_t image_height, |
||||||
|
const cl_image_format *image_format, |
||||||
|
cl_image_pitch_info_qcom param_name, |
||||||
|
size_t param_value_size, |
||||||
|
void *param_value, |
||||||
|
size_t *param_value_size_ret); |
||||||
|
|
||||||
|
typedef struct _cl_mem_ext_host_ptr |
||||||
|
{ |
||||||
|
// Type of external memory allocation.
|
||||||
|
// Legal values will be defined in layered extensions.
|
||||||
|
cl_uint allocation_type; |
||||||
|
|
||||||
|
// Host cache policy for this external memory allocation.
|
||||||
|
cl_uint host_cache_policy; |
||||||
|
|
||||||
|
} cl_mem_ext_host_ptr; |
||||||
|
|
||||||
|
/*********************************
|
||||||
|
* cl_qcom_ion_host_ptr extension |
||||||
|
*********************************/ |
||||||
|
|
||||||
|
#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 |
||||||
|
|
||||||
|
typedef struct _cl_mem_ion_host_ptr |
||||||
|
{ |
||||||
|
// Type of external memory allocation.
|
||||||
|
// Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations.
|
||||||
|
cl_mem_ext_host_ptr ext_host_ptr; |
||||||
|
|
||||||
|
// ION file descriptor
|
||||||
|
int ion_filedesc; |
||||||
|
|
||||||
|
// Host pointer to the ION allocated memory
|
||||||
|
void* ion_hostptr; |
||||||
|
|
||||||
|
} cl_mem_ion_host_ptr; |
||||||
|
|
||||||
|
#endif /* CL_VERSION_1_1 */ |
||||||
|
|
||||||
|
#ifdef CL_VERSION_1_2 |
||||||
|
/********************************
|
||||||
|
* cl_amd_bus_addressable_memory * |
||||||
|
********************************/ |
||||||
|
|
||||||
|
/* cl_mem flag - bitfield */ |
||||||
|
#define CL_MEM_BUS_ADDRESSABLE_AMD (1<<30) |
||||||
|
#define CL_MEM_EXTERNAL_PHYSICAL_AMD (1<<31) |
||||||
|
|
||||||
|
#define CL_COMMAND_WAIT_SIGNAL_AMD 0x4080 |
||||||
|
#define CL_COMMAND_WRITE_SIGNAL_AMD 0x4081 |
||||||
|
#define CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD 0x4082 |
||||||
|
|
||||||
|
typedef struct _cl_bus_address_amd |
||||||
|
{ |
||||||
|
cl_ulong surface_bus_address; |
||||||
|
cl_ulong marker_bus_address; |
||||||
|
} cl_bus_address_amd; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueWaitSignalAMD_fn)( cl_command_queue /*command_queue*/, |
||||||
|
cl_mem /*mem_object*/, |
||||||
|
cl_uint /*value*/, |
||||||
|
cl_uint /*num_events*/, |
||||||
|
const cl_event * /*event_wait_list*/, |
||||||
|
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueWriteSignalAMD_fn)( cl_command_queue /*command_queue*/, |
||||||
|
cl_mem /*mem_object*/, |
||||||
|
cl_uint /*value*/, |
||||||
|
cl_ulong /*offset*/, |
||||||
|
cl_uint /*num_events*/, |
||||||
|
const cl_event * /*event_list*/, |
||||||
|
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueMakeBuffersResidentAMD_fn)( cl_command_queue /*command_queue*/, |
||||||
|
cl_uint /*num_mem_objs*/, |
||||||
|
cl_mem * /*mem_objects*/, |
||||||
|
cl_bool /*blocking_make_resident*/, |
||||||
|
cl_bus_address_amd * /*bus_addresses*/, |
||||||
|
cl_uint /*num_events*/, |
||||||
|
const cl_event * /*event_list*/, |
||||||
|
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
/*******************************************
|
||||||
|
* Shared Virtual Memory (SVM) extension |
||||||
|
* The declarations match the order, naming and values of the original 2.0 |
||||||
|
* standard, except for the fact that we added the _AMD suffix to each |
||||||
|
* symbol |
||||||
|
*******************************************/ |
||||||
|
typedef cl_bitfield cl_device_svm_capabilities_amd; |
||||||
|
typedef cl_bitfield cl_svm_mem_flags_amd; |
||||||
|
typedef cl_uint cl_kernel_exec_info_amd; |
||||||
|
|
||||||
|
/* cl_device_info */ |
||||||
|
#define CL_DEVICE_SVM_CAPABILITIES_AMD 0x1053 |
||||||
|
#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT_AMD 0x1054 |
||||||
|
|
||||||
|
/* cl_device_svm_capabilities_amd */ |
||||||
|
#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_AMD (1 << 0) |
||||||
|
#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_AMD (1 << 1) |
||||||
|
#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_AMD (1 << 2) |
||||||
|
#define CL_DEVICE_SVM_ATOMICS_AMD (1 << 3) |
||||||
|
|
||||||
|
/* cl_svm_mem_flags_amd */ |
||||||
|
#define CL_MEM_SVM_FINE_GRAIN_BUFFER_AMD (1 << 10) |
||||||
|
#define CL_MEM_SVM_ATOMICS_AMD (1 << 11) |
||||||
|
|
||||||
|
/* cl_mem_info */ |
||||||
|
#define CL_MEM_USES_SVM_POINTER_AMD 0x1109 |
||||||
|
|
||||||
|
/* cl_kernel_exec_info_amd */ |
||||||
|
#define CL_KERNEL_EXEC_INFO_SVM_PTRS_AMD 0x11B6 |
||||||
|
#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_AMD 0x11B7 |
||||||
|
|
||||||
|
/* cl_command_type */ |
||||||
|
#define CL_COMMAND_SVM_FREE_AMD 0x1209 |
||||||
|
#define CL_COMMAND_SVM_MEMCPY_AMD 0x120A |
||||||
|
#define CL_COMMAND_SVM_MEMFILL_AMD 0x120B |
||||||
|
#define CL_COMMAND_SVM_MAP_AMD 0x120C |
||||||
|
#define CL_COMMAND_SVM_UNMAP_AMD 0x120D |
||||||
|
|
||||||
|
typedef CL_API_ENTRY void* |
||||||
|
(CL_API_CALL * clSVMAllocAMD_fn)( |
||||||
|
cl_context /* context */, |
||||||
|
cl_svm_mem_flags_amd /* flags */, |
||||||
|
size_t /* size */, |
||||||
|
unsigned int /* alignment */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY void |
||||||
|
(CL_API_CALL * clSVMFreeAMD_fn)( |
||||||
|
cl_context /* context */, |
||||||
|
void* /* svm_pointer */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueSVMFreeAMD_fn)( |
||||||
|
cl_command_queue /* command_queue */, |
||||||
|
cl_uint /* num_svm_pointers */, |
||||||
|
void** /* svm_pointers */, |
||||||
|
void (CL_CALLBACK *)( /*pfn_free_func*/ |
||||||
|
cl_command_queue /* queue */, |
||||||
|
cl_uint /* num_svm_pointers */, |
||||||
|
void** /* svm_pointers */, |
||||||
|
void* /* user_data */), |
||||||
|
void* /* user_data */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event* /* event_wait_list */, |
||||||
|
cl_event* /* event */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueSVMMemcpyAMD_fn)( |
||||||
|
cl_command_queue /* command_queue */, |
||||||
|
cl_bool /* blocking_copy */, |
||||||
|
void* /* dst_ptr */, |
||||||
|
const void* /* src_ptr */, |
||||||
|
size_t /* size */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event* /* event_wait_list */, |
||||||
|
cl_event* /* event */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueSVMMemFillAMD_fn)( |
||||||
|
cl_command_queue /* command_queue */, |
||||||
|
void* /* svm_ptr */, |
||||||
|
const void* /* pattern */, |
||||||
|
size_t /* pattern_size */, |
||||||
|
size_t /* size */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event* /* event_wait_list */, |
||||||
|
cl_event* /* event */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueSVMMapAMD_fn)( |
||||||
|
cl_command_queue /* command_queue */, |
||||||
|
cl_bool /* blocking_map */, |
||||||
|
cl_map_flags /* map_flags */, |
||||||
|
void* /* svm_ptr */, |
||||||
|
size_t /* size */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event* /* event_wait_list */, |
||||||
|
cl_event* /* event */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clEnqueueSVMUnmapAMD_fn)( |
||||||
|
cl_command_queue /* command_queue */, |
||||||
|
void* /* svm_ptr */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event* /* event_wait_list */, |
||||||
|
cl_event* /* event */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clSetKernelArgSVMPointerAMD_fn)( |
||||||
|
cl_kernel /* kernel */, |
||||||
|
cl_uint /* arg_index */, |
||||||
|
const void * /* arg_value */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int |
||||||
|
(CL_API_CALL * clSetKernelExecInfoAMD_fn)( |
||||||
|
cl_kernel /* kernel */, |
||||||
|
cl_kernel_exec_info_amd /* param_name */, |
||||||
|
size_t /* param_value_size */, |
||||||
|
const void * /* param_value */ |
||||||
|
) CL_EXT_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
#endif /* CL_VERSION_1_2 */ |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
|
||||||
|
#endif /* __CL_EXT_H */ |
@ -0,0 +1,162 @@ |
|||||||
|
/**********************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
**********************************************************************************/ |
||||||
|
|
||||||
|
#ifndef __OPENCL_CL_GL_H |
||||||
|
#define __OPENCL_CL_GL_H |
||||||
|
|
||||||
|
#ifdef __APPLE__ |
||||||
|
#include <OpenCL/cl.h> |
||||||
|
#else |
||||||
|
#include <CL/cl.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
typedef cl_uint cl_gl_object_type; |
||||||
|
typedef cl_uint cl_gl_texture_info; |
||||||
|
typedef cl_uint cl_gl_platform_info; |
||||||
|
typedef struct __GLsync *cl_GLsync; |
||||||
|
|
||||||
|
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ |
||||||
|
#define CL_GL_OBJECT_BUFFER 0x2000 |
||||||
|
#define CL_GL_OBJECT_TEXTURE2D 0x2001 |
||||||
|
#define CL_GL_OBJECT_TEXTURE3D 0x2002 |
||||||
|
#define CL_GL_OBJECT_RENDERBUFFER 0x2003 |
||||||
|
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E |
||||||
|
#define CL_GL_OBJECT_TEXTURE1D 0x200F |
||||||
|
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 |
||||||
|
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 |
||||||
|
|
||||||
|
/* cl_gl_texture_info */ |
||||||
|
#define CL_GL_TEXTURE_TARGET 0x2004 |
||||||
|
#define CL_GL_MIPMAP_LEVEL 0x2005 |
||||||
|
#define CL_GL_NUM_SAMPLES 0x2012 |
||||||
|
|
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||||
|
clCreateFromGLBuffer(cl_context /* context */, |
||||||
|
cl_mem_flags /* flags */, |
||||||
|
cl_GLuint /* bufobj */, |
||||||
|
int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||||
|
clCreateFromGLTexture(cl_context /* context */, |
||||||
|
cl_mem_flags /* flags */, |
||||||
|
cl_GLenum /* target */, |
||||||
|
cl_GLint /* miplevel */, |
||||||
|
cl_GLuint /* texture */, |
||||||
|
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||||
|
clCreateFromGLRenderbuffer(cl_context /* context */, |
||||||
|
cl_mem_flags /* flags */, |
||||||
|
cl_GLuint /* renderbuffer */, |
||||||
|
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clGetGLObjectInfo(cl_mem /* memobj */, |
||||||
|
cl_gl_object_type * /* gl_object_type */, |
||||||
|
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clGetGLTextureInfo(cl_mem /* memobj */, |
||||||
|
cl_gl_texture_info /* param_name */, |
||||||
|
size_t /* param_value_size */, |
||||||
|
void * /* param_value */, |
||||||
|
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clEnqueueAcquireGLObjects(cl_command_queue /* command_queue */, |
||||||
|
cl_uint /* num_objects */, |
||||||
|
const cl_mem * /* mem_objects */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event * /* event_wait_list */, |
||||||
|
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */, |
||||||
|
cl_uint /* num_objects */, |
||||||
|
const cl_mem * /* mem_objects */, |
||||||
|
cl_uint /* num_events_in_wait_list */, |
||||||
|
const cl_event * /* event_wait_list */, |
||||||
|
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
|
||||||
|
// Deprecated OpenCL 1.1 APIs
|
||||||
|
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
||||||
|
clCreateFromGLTexture2D(cl_context /* context */, |
||||||
|
cl_mem_flags /* flags */, |
||||||
|
cl_GLenum /* target */, |
||||||
|
cl_GLint /* miplevel */, |
||||||
|
cl_GLuint /* texture */, |
||||||
|
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
||||||
|
|
||||||
|
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
||||||
|
clCreateFromGLTexture3D(cl_context /* context */, |
||||||
|
cl_mem_flags /* flags */, |
||||||
|
cl_GLenum /* target */, |
||||||
|
cl_GLint /* miplevel */, |
||||||
|
cl_GLuint /* texture */, |
||||||
|
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
||||||
|
|
||||||
|
/* cl_khr_gl_sharing extension */ |
||||||
|
|
||||||
|
#define cl_khr_gl_sharing 1 |
||||||
|
|
||||||
|
typedef cl_uint cl_gl_context_info; |
||||||
|
|
||||||
|
/* Additional Error Codes */ |
||||||
|
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 |
||||||
|
|
||||||
|
/* cl_gl_context_info */ |
||||||
|
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 |
||||||
|
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 |
||||||
|
|
||||||
|
/* Additional cl_context_properties */ |
||||||
|
#define CL_GL_CONTEXT_KHR 0x2008 |
||||||
|
#define CL_EGL_DISPLAY_KHR 0x2009 |
||||||
|
#define CL_GLX_DISPLAY_KHR 0x200A |
||||||
|
#define CL_WGL_HDC_KHR 0x200B |
||||||
|
#define CL_CGL_SHAREGROUP_KHR 0x200C |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_int CL_API_CALL |
||||||
|
clGetGLContextInfoKHR(const cl_context_properties * /* properties */, |
||||||
|
cl_gl_context_info /* param_name */, |
||||||
|
size_t /* param_value_size */, |
||||||
|
void * /* param_value */, |
||||||
|
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||||
|
|
||||||
|
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( |
||||||
|
const cl_context_properties * properties, |
||||||
|
cl_gl_context_info param_name, |
||||||
|
size_t param_value_size, |
||||||
|
void * param_value, |
||||||
|
size_t * param_value_size_ret); |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __OPENCL_CL_GL_H */ |
@ -0,0 +1,69 @@ |
|||||||
|
/**********************************************************************************
|
||||||
|
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
**********************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 14826 $ on $Date: 2011-05-26 07:40:43 -0700 (Thu, 26 May 2011) $ */ |
||||||
|
|
||||||
|
/* cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have */ |
||||||
|
/* OpenGL dependencies. */ |
||||||
|
|
||||||
|
#ifndef __OPENCL_CL_GL_EXT_H |
||||||
|
#define __OPENCL_CL_GL_EXT_H |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __APPLE__ |
||||||
|
#include <OpenCL/cl_gl.h> |
||||||
|
#else |
||||||
|
#include <CL/cl_gl.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/*
|
||||||
|
* For each extension, follow this template |
||||||
|
* cl_VEN_extname extension */ |
||||||
|
/* #define cl_VEN_extname 1
|
||||||
|
* ... define new types, if any |
||||||
|
* ... define new tokens, if any |
||||||
|
* ... define new APIs, if any |
||||||
|
* |
||||||
|
* If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header |
||||||
|
* This allows us to avoid having to decide whether to include GL headers or GLES here. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* cl_khr_gl_event extension |
||||||
|
* See section 9.9 in the OpenCL 1.1 spec for more information |
||||||
|
*/ |
||||||
|
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D |
||||||
|
|
||||||
|
extern CL_API_ENTRY cl_event CL_API_CALL |
||||||
|
clCreateEventFromGLsyncKHR(cl_context /* context */, |
||||||
|
cl_GLsync /* cl_GLsync */, |
||||||
|
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1; |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __OPENCL_CL_GL_EXT_H */ |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,54 @@ |
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
* copy of this software and/or associated documentation files (the |
||||||
|
* "Materials"), to deal in the Materials without restriction, including |
||||||
|
* without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||||
|
* permit persons to whom the Materials are furnished to do so, subject to |
||||||
|
* the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included |
||||||
|
* in all copies or substantial portions of the Materials. |
||||||
|
* |
||||||
|
* THE MATERIALS ARE 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 AND NONINFRINGEMENT. |
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||||
|
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||||
|
******************************************************************************/ |
||||||
|
|
||||||
|
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||||
|
|
||||||
|
#ifndef __OPENCL_H |
||||||
|
#define __OPENCL_H |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __APPLE__ |
||||||
|
|
||||||
|
#include <OpenCL/cl.h> |
||||||
|
#include <OpenCL/cl_gl.h> |
||||||
|
#include <OpenCL/cl_gl_ext.h> |
||||||
|
#include <OpenCL/cl_ext.h> |
||||||
|
|
||||||
|
#else |
||||||
|
|
||||||
|
#include <CL/cl.h> |
||||||
|
#include <CL/cl_gl.h> |
||||||
|
#include <CL/cl_gl_ext.h> |
||||||
|
#include <CL/cl_ext.h> |
||||||
|
|
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __OPENCL_H */ |
||||||
|
|
@ -0,0 +1,600 @@ |
|||||||
|
#ifndef __glut_h__ |
||||||
|
#define __glut_h__ |
||||||
|
|
||||||
|
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ |
||||||
|
|
||||||
|
/* This program is freely distributable without licensing fees and is
|
||||||
|
provided without guarantee or warrantee expressed or implied. This |
||||||
|
program is -not- in the public domain. */ |
||||||
|
|
||||||
|
#if defined(_WIN32) |
||||||
|
|
||||||
|
/* GLUT 3.7 now tries to avoid including <windows.h>
|
||||||
|
to avoid name space pollution, but Win32's <GL/gl.h> |
||||||
|
needs APIENTRY and WINGDIAPI defined properly. */ |
||||||
|
# if 0 |
||||||
|
# define WIN32_LEAN_AND_MEAN |
||||||
|
# include <windows.h> |
||||||
|
# else |
||||||
|
/* XXX This is from Win32's <windef.h> */ |
||||||
|
# ifndef APIENTRY |
||||||
|
# define GLUT_APIENTRY_DEFINED |
||||||
|
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) |
||||||
|
# define APIENTRY __stdcall |
||||||
|
# else |
||||||
|
# define APIENTRY |
||||||
|
# endif |
||||||
|
# endif |
||||||
|
/* XXX This is from Win32's <winnt.h> */ |
||||||
|
# ifndef CALLBACK |
||||||
|
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) |
||||||
|
# define CALLBACK __stdcall |
||||||
|
# else |
||||||
|
# define CALLBACK |
||||||
|
# endif |
||||||
|
# endif |
||||||
|
/* XXX This is from Win32's <wingdi.h> and <winnt.h> */ |
||||||
|
# ifndef WINGDIAPI |
||||||
|
# define GLUT_WINGDIAPI_DEFINED |
||||||
|
# define WINGDIAPI __declspec(dllimport) |
||||||
|
# endif |
||||||
|
/* XXX This is from Win32's <ctype.h> */ |
||||||
|
# ifndef _WCHAR_T_DEFINED |
||||||
|
typedef unsigned short wchar_t; |
||||||
|
# define _WCHAR_T_DEFINED |
||||||
|
# endif |
||||||
|
# endif |
||||||
|
|
||||||
|
#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ |
||||||
|
#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ |
||||||
|
#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ |
||||||
|
#ifndef _WIN64 |
||||||
|
#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ |
||||||
|
#else |
||||||
|
#pragma comment (lib, "glut64.lib") /* link with Win32 GLUT lib */ |
||||||
|
#endif |
||||||
|
|
||||||
|
#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ |
||||||
|
#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ |
||||||
|
|
||||||
|
#endif |
||||||
|
|
||||||
|
#include <GL/gl.h> |
||||||
|
#include <GL/glu.h> |
||||||
|
|
||||||
|
/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ |
||||||
|
#if !defined(_WIN32) |
||||||
|
#define APIENTRY |
||||||
|
#define GLUT_APIENTRY_DEFINED |
||||||
|
#define CALLBACK |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
/**
|
||||||
|
GLUT API revision history: |
||||||
|
|
||||||
|
GLUT_API_VERSION is updated to reflect incompatible GLUT |
||||||
|
API changes (interface changes, semantic changes, deletions, |
||||||
|
or additions). |
||||||
|
|
||||||
|
GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 |
||||||
|
|
||||||
|
GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, |
||||||
|
extension. Supports new input devices like tablet, dial and button |
||||||
|
box, and Spaceball. Easy to query OpenGL extensions. |
||||||
|
|
||||||
|
GLUT_API_VERSION=3 glutMenuStatus added. |
||||||
|
|
||||||
|
GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, |
||||||
|
glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic |
||||||
|
video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, |
||||||
|
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, |
||||||
|
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). |
||||||
|
**/ |
||||||
|
#ifndef GLUT_API_VERSION /* allow this to be overriden */ |
||||||
|
#define GLUT_API_VERSION 3 |
||||||
|
#endif |
||||||
|
|
||||||
|
/**
|
||||||
|
GLUT implementation revision history: |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT |
||||||
|
API revisions and implementation revisions (ie, bug fixes). |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of |
||||||
|
GLUT Xlib-based implementation. 11/29/94 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of |
||||||
|
GLUT Xlib-based implementation providing GLUT version 2 |
||||||
|
interfaces. |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner |
||||||
|
and video resize. 1/3/97 |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. |
||||||
|
|
||||||
|
GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 release with GameGLUT support. |
||||||
|
**/ |
||||||
|
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ |
||||||
|
#define GLUT_XLIB_IMPLEMENTATION 13 |
||||||
|
#endif |
||||||
|
|
||||||
|
/* Display mode bit masks. */ |
||||||
|
#define GLUT_RGB 0 |
||||||
|
#define GLUT_RGBA GLUT_RGB |
||||||
|
#define GLUT_INDEX 1 |
||||||
|
#define GLUT_SINGLE 0 |
||||||
|
#define GLUT_DOUBLE 2 |
||||||
|
#define GLUT_ACCUM 4 |
||||||
|
#define GLUT_ALPHA 8 |
||||||
|
#define GLUT_DEPTH 16 |
||||||
|
#define GLUT_STENCIL 32 |
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
#define GLUT_MULTISAMPLE 128 |
||||||
|
#define GLUT_STEREO 256 |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
#define GLUT_LUMINANCE 512 |
||||||
|
#endif |
||||||
|
|
||||||
|
/* Mouse buttons. */ |
||||||
|
#define GLUT_LEFT_BUTTON 0 |
||||||
|
#define GLUT_MIDDLE_BUTTON 1 |
||||||
|
#define GLUT_RIGHT_BUTTON 2 |
||||||
|
|
||||||
|
/* Mouse button state. */ |
||||||
|
#define GLUT_DOWN 0 |
||||||
|
#define GLUT_UP 1 |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
/* function keys */ |
||||||
|
#define GLUT_KEY_F1 1 |
||||||
|
#define GLUT_KEY_F2 2 |
||||||
|
#define GLUT_KEY_F3 3 |
||||||
|
#define GLUT_KEY_F4 4 |
||||||
|
#define GLUT_KEY_F5 5 |
||||||
|
#define GLUT_KEY_F6 6 |
||||||
|
#define GLUT_KEY_F7 7 |
||||||
|
#define GLUT_KEY_F8 8 |
||||||
|
#define GLUT_KEY_F9 9 |
||||||
|
#define GLUT_KEY_F10 10 |
||||||
|
#define GLUT_KEY_F11 11 |
||||||
|
#define GLUT_KEY_F12 12 |
||||||
|
/* directional keys */ |
||||||
|
#define GLUT_KEY_LEFT 100 |
||||||
|
#define GLUT_KEY_UP 101 |
||||||
|
#define GLUT_KEY_RIGHT 102 |
||||||
|
#define GLUT_KEY_DOWN 103 |
||||||
|
#define GLUT_KEY_PAGE_UP 104 |
||||||
|
#define GLUT_KEY_PAGE_DOWN 105 |
||||||
|
#define GLUT_KEY_HOME 106 |
||||||
|
#define GLUT_KEY_END 107 |
||||||
|
#define GLUT_KEY_INSERT 108 |
||||||
|
#endif |
||||||
|
|
||||||
|
/* Entry/exit state. */ |
||||||
|
#define GLUT_LEFT 0 |
||||||
|
#define GLUT_ENTERED 1 |
||||||
|
|
||||||
|
/* Menu usage state. */ |
||||||
|
#define GLUT_MENU_NOT_IN_USE 0 |
||||||
|
#define GLUT_MENU_IN_USE 1 |
||||||
|
|
||||||
|
/* Visibility state. */ |
||||||
|
#define GLUT_NOT_VISIBLE 0 |
||||||
|
#define GLUT_VISIBLE 1 |
||||||
|
|
||||||
|
/* Window status state. */ |
||||||
|
#define GLUT_HIDDEN 0 |
||||||
|
#define GLUT_FULLY_RETAINED 1 |
||||||
|
#define GLUT_PARTIALLY_RETAINED 2 |
||||||
|
#define GLUT_FULLY_COVERED 3 |
||||||
|
|
||||||
|
/* Color index component selection values. */ |
||||||
|
#define GLUT_RED 0 |
||||||
|
#define GLUT_GREEN 1 |
||||||
|
#define GLUT_BLUE 2 |
||||||
|
|
||||||
|
/* Layers for use. */ |
||||||
|
#define GLUT_NORMAL 0 |
||||||
|
#define GLUT_OVERLAY 1 |
||||||
|
|
||||||
|
#if defined(_WIN32) |
||||||
|
/* Stroke font constants (use these in GLUT program). */ |
||||||
|
#define GLUT_STROKE_ROMAN ((void*)0) |
||||||
|
#define GLUT_STROKE_MONO_ROMAN ((void*)1) |
||||||
|
|
||||||
|
/* Bitmap font constants (use these in GLUT program). */ |
||||||
|
#define GLUT_BITMAP_9_BY_15 ((void*)2) |
||||||
|
#define GLUT_BITMAP_8_BY_13 ((void*)3) |
||||||
|
#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) |
||||||
|
#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
#define GLUT_BITMAP_HELVETICA_10 ((void*)6) |
||||||
|
#define GLUT_BITMAP_HELVETICA_12 ((void*)7) |
||||||
|
#define GLUT_BITMAP_HELVETICA_18 ((void*)8) |
||||||
|
#endif |
||||||
|
#else |
||||||
|
/* Stroke font opaque addresses (use constants instead in source code). */ |
||||||
|
extern void *glutStrokeRoman; |
||||||
|
extern void *glutStrokeMonoRoman; |
||||||
|
|
||||||
|
/* Stroke font constants (use these in GLUT program). */ |
||||||
|
#define GLUT_STROKE_ROMAN (&glutStrokeRoman) |
||||||
|
#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) |
||||||
|
|
||||||
|
/* Bitmap font opaque addresses (use constants instead in source code). */ |
||||||
|
extern void *glutBitmap9By15; |
||||||
|
extern void *glutBitmap8By13; |
||||||
|
extern void *glutBitmapTimesRoman10; |
||||||
|
extern void *glutBitmapTimesRoman24; |
||||||
|
extern void *glutBitmapHelvetica10; |
||||||
|
extern void *glutBitmapHelvetica12; |
||||||
|
extern void *glutBitmapHelvetica18; |
||||||
|
|
||||||
|
/* Bitmap font constants (use these in GLUT program). */ |
||||||
|
#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) |
||||||
|
#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) |
||||||
|
#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) |
||||||
|
#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) |
||||||
|
#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) |
||||||
|
#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) |
||||||
|
#endif |
||||||
|
#endif |
||||||
|
|
||||||
|
/* glutGet parameters. */ |
||||||
|
#define GLUT_WINDOW_X 100 |
||||||
|
#define GLUT_WINDOW_Y 101 |
||||||
|
#define GLUT_WINDOW_WIDTH 102 |
||||||
|
#define GLUT_WINDOW_HEIGHT 103 |
||||||
|
#define GLUT_WINDOW_BUFFER_SIZE 104 |
||||||
|
#define GLUT_WINDOW_STENCIL_SIZE 105 |
||||||
|
#define GLUT_WINDOW_DEPTH_SIZE 106 |
||||||
|
#define GLUT_WINDOW_RED_SIZE 107 |
||||||
|
#define GLUT_WINDOW_GREEN_SIZE 108 |
||||||
|
#define GLUT_WINDOW_BLUE_SIZE 109 |
||||||
|
#define GLUT_WINDOW_ALPHA_SIZE 110 |
||||||
|
#define GLUT_WINDOW_ACCUM_RED_SIZE 111 |
||||||
|
#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 |
||||||
|
#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 |
||||||
|
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 |
||||||
|
#define GLUT_WINDOW_DOUBLEBUFFER 115 |
||||||
|
#define GLUT_WINDOW_RGBA 116 |
||||||
|
#define GLUT_WINDOW_PARENT 117 |
||||||
|
#define GLUT_WINDOW_NUM_CHILDREN 118 |
||||||
|
#define GLUT_WINDOW_COLORMAP_SIZE 119 |
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
#define GLUT_WINDOW_NUM_SAMPLES 120 |
||||||
|
#define GLUT_WINDOW_STEREO 121 |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
#define GLUT_WINDOW_CURSOR 122 |
||||||
|
#endif |
||||||
|
#define GLUT_SCREEN_WIDTH 200 |
||||||
|
#define GLUT_SCREEN_HEIGHT 201 |
||||||
|
#define GLUT_SCREEN_WIDTH_MM 202 |
||||||
|
#define GLUT_SCREEN_HEIGHT_MM 203 |
||||||
|
#define GLUT_MENU_NUM_ITEMS 300 |
||||||
|
#define GLUT_DISPLAY_MODE_POSSIBLE 400 |
||||||
|
#define GLUT_INIT_WINDOW_X 500 |
||||||
|
#define GLUT_INIT_WINDOW_Y 501 |
||||||
|
#define GLUT_INIT_WINDOW_WIDTH 502 |
||||||
|
#define GLUT_INIT_WINDOW_HEIGHT 503 |
||||||
|
#define GLUT_INIT_DISPLAY_MODE 504 |
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
#define GLUT_ELAPSED_TIME 700 |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||||
|
#define GLUT_WINDOW_FORMAT_ID 123 |
||||||
|
#endif |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
/* glutDeviceGet parameters. */ |
||||||
|
#define GLUT_HAS_KEYBOARD 600 |
||||||
|
#define GLUT_HAS_MOUSE 601 |
||||||
|
#define GLUT_HAS_SPACEBALL 602 |
||||||
|
#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 |
||||||
|
#define GLUT_HAS_TABLET 604 |
||||||
|
#define GLUT_NUM_MOUSE_BUTTONS 605 |
||||||
|
#define GLUT_NUM_SPACEBALL_BUTTONS 606 |
||||||
|
#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 |
||||||
|
#define GLUT_NUM_DIALS 608 |
||||||
|
#define GLUT_NUM_TABLET_BUTTONS 609 |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||||
|
#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 |
||||||
|
#define GLUT_DEVICE_KEY_REPEAT 611 |
||||||
|
#define GLUT_HAS_JOYSTICK 612 |
||||||
|
#define GLUT_OWNS_JOYSTICK 613 |
||||||
|
#define GLUT_JOYSTICK_BUTTONS 614 |
||||||
|
#define GLUT_JOYSTICK_AXES 615 |
||||||
|
#define GLUT_JOYSTICK_POLL_RATE 616 |
||||||
|
#endif |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
/* glutLayerGet parameters. */ |
||||||
|
#define GLUT_OVERLAY_POSSIBLE 800 |
||||||
|
#define GLUT_LAYER_IN_USE 801 |
||||||
|
#define GLUT_HAS_OVERLAY 802 |
||||||
|
#define GLUT_TRANSPARENT_INDEX 803 |
||||||
|
#define GLUT_NORMAL_DAMAGED 804 |
||||||
|
#define GLUT_OVERLAY_DAMAGED 805 |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
/* glutVideoResizeGet parameters. */ |
||||||
|
#define GLUT_VIDEO_RESIZE_POSSIBLE 900 |
||||||
|
#define GLUT_VIDEO_RESIZE_IN_USE 901 |
||||||
|
#define GLUT_VIDEO_RESIZE_X_DELTA 902 |
||||||
|
#define GLUT_VIDEO_RESIZE_Y_DELTA 903 |
||||||
|
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 |
||||||
|
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 |
||||||
|
#define GLUT_VIDEO_RESIZE_X 906 |
||||||
|
#define GLUT_VIDEO_RESIZE_Y 907 |
||||||
|
#define GLUT_VIDEO_RESIZE_WIDTH 908 |
||||||
|
#define GLUT_VIDEO_RESIZE_HEIGHT 909 |
||||||
|
#endif |
||||||
|
|
||||||
|
/* glutUseLayer parameters. */ |
||||||
|
#define GLUT_NORMAL 0 |
||||||
|
#define GLUT_OVERLAY 1 |
||||||
|
|
||||||
|
/* glutGetModifiers return mask. */ |
||||||
|
#define GLUT_ACTIVE_SHIFT 1 |
||||||
|
#define GLUT_ACTIVE_CTRL 2 |
||||||
|
#define GLUT_ACTIVE_ALT 4 |
||||||
|
|
||||||
|
/* glutSetCursor parameters. */ |
||||||
|
/* Basic arrows. */ |
||||||
|
#define GLUT_CURSOR_RIGHT_ARROW 0 |
||||||
|
#define GLUT_CURSOR_LEFT_ARROW 1 |
||||||
|
/* Symbolic cursor shapes. */ |
||||||
|
#define GLUT_CURSOR_INFO 2 |
||||||
|
#define GLUT_CURSOR_DESTROY 3 |
||||||
|
#define GLUT_CURSOR_HELP 4 |
||||||
|
#define GLUT_CURSOR_CYCLE 5 |
||||||
|
#define GLUT_CURSOR_SPRAY 6 |
||||||
|
#define GLUT_CURSOR_WAIT 7 |
||||||
|
#define GLUT_CURSOR_TEXT 8 |
||||||
|
#define GLUT_CURSOR_CROSSHAIR 9 |
||||||
|
/* Directional cursors. */ |
||||||
|
#define GLUT_CURSOR_UP_DOWN 10 |
||||||
|
#define GLUT_CURSOR_LEFT_RIGHT 11 |
||||||
|
/* Sizing cursors. */ |
||||||
|
#define GLUT_CURSOR_TOP_SIDE 12 |
||||||
|
#define GLUT_CURSOR_BOTTOM_SIDE 13 |
||||||
|
#define GLUT_CURSOR_LEFT_SIDE 14 |
||||||
|
#define GLUT_CURSOR_RIGHT_SIDE 15 |
||||||
|
#define GLUT_CURSOR_TOP_LEFT_CORNER 16 |
||||||
|
#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 |
||||||
|
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 |
||||||
|
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 |
||||||
|
/* Inherit from parent window. */ |
||||||
|
#define GLUT_CURSOR_INHERIT 100 |
||||||
|
/* Blank cursor. */ |
||||||
|
#define GLUT_CURSOR_NONE 101 |
||||||
|
/* Fullscreen crosshair (if available). */ |
||||||
|
#define GLUT_CURSOR_FULL_CROSSHAIR 102 |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT initialization sub-API. */ |
||||||
|
extern void APIENTRY glutInit(int *argcp, char **argv); |
||||||
|
extern void APIENTRY glutInitDisplayMode(unsigned int mode); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
extern void APIENTRY glutInitDisplayString(const char *string); |
||||||
|
#endif |
||||||
|
extern void APIENTRY glutInitWindowPosition(int x, int y); |
||||||
|
extern void APIENTRY glutInitWindowSize(int width, int height); |
||||||
|
extern void APIENTRY glutMainLoop(void); |
||||||
|
|
||||||
|
/* GLUT window sub-API. */ |
||||||
|
extern int APIENTRY glutCreateWindow(const char *title); |
||||||
|
extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); |
||||||
|
extern void APIENTRY glutDestroyWindow(int win); |
||||||
|
extern void APIENTRY glutPostRedisplay(void); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) |
||||||
|
extern void APIENTRY glutPostWindowRedisplay(int win); |
||||||
|
#endif |
||||||
|
extern void APIENTRY glutSwapBuffers(void); |
||||||
|
extern int APIENTRY glutGetWindow(void); |
||||||
|
extern void APIENTRY glutSetWindow(int win); |
||||||
|
extern void APIENTRY glutSetWindowTitle(const char *title); |
||||||
|
extern void APIENTRY glutSetIconTitle(const char *title); |
||||||
|
extern void APIENTRY glutPositionWindow(int x, int y); |
||||||
|
extern void APIENTRY glutReshapeWindow(int width, int height); |
||||||
|
extern void APIENTRY glutPopWindow(void); |
||||||
|
extern void APIENTRY glutPushWindow(void); |
||||||
|
extern void APIENTRY glutIconifyWindow(void); |
||||||
|
extern void APIENTRY glutShowWindow(void); |
||||||
|
extern void APIENTRY glutHideWindow(void); |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
extern void APIENTRY glutFullScreen(void); |
||||||
|
extern void APIENTRY glutSetCursor(int cursor); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
extern void APIENTRY glutWarpPointer(int x, int y); |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT overlay sub-API. */ |
||||||
|
extern void APIENTRY glutEstablishOverlay(void); |
||||||
|
extern void APIENTRY glutRemoveOverlay(void); |
||||||
|
extern void APIENTRY glutUseLayer(GLenum layer); |
||||||
|
extern void APIENTRY glutPostOverlayRedisplay(void); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) |
||||||
|
extern void APIENTRY glutPostWindowOverlayRedisplay(int win); |
||||||
|
#endif |
||||||
|
extern void APIENTRY glutShowOverlay(void); |
||||||
|
extern void APIENTRY glutHideOverlay(void); |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT menu sub-API. */ |
||||||
|
extern int APIENTRY glutCreateMenu(void (*)(int)); |
||||||
|
extern void APIENTRY glutDestroyMenu(int menu); |
||||||
|
extern int APIENTRY glutGetMenu(void); |
||||||
|
extern void APIENTRY glutSetMenu(int menu); |
||||||
|
extern void APIENTRY glutAddMenuEntry(const char *label, int value); |
||||||
|
extern void APIENTRY glutAddSubMenu(const char *label, int submenu); |
||||||
|
extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); |
||||||
|
extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); |
||||||
|
extern void APIENTRY glutRemoveMenuItem(int item); |
||||||
|
extern void APIENTRY glutAttachMenu(int button); |
||||||
|
extern void APIENTRY glutDetachMenu(int button); |
||||||
|
|
||||||
|
/* GLUT window callback sub-API. */ |
||||||
|
extern void APIENTRY glutDisplayFunc(void (*func)(void)); |
||||||
|
extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); |
||||||
|
extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); |
||||||
|
extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); |
||||||
|
extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); |
||||||
|
extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); |
||||||
|
extern void APIENTRY glutEntryFunc(void (*func)(int state)); |
||||||
|
extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); |
||||||
|
extern void APIENTRY glutIdleFunc(void (*func)(void)); |
||||||
|
extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); |
||||||
|
extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); |
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); |
||||||
|
extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); |
||||||
|
extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); |
||||||
|
extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); |
||||||
|
extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); |
||||||
|
extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); |
||||||
|
extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); |
||||||
|
extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); |
||||||
|
extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||||
|
extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); |
||||||
|
extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); |
||||||
|
extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); |
||||||
|
#endif |
||||||
|
#endif |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT color index sub-API. */ |
||||||
|
extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); |
||||||
|
extern GLfloat APIENTRY glutGetColor(int ndx, int component); |
||||||
|
extern void APIENTRY glutCopyColormap(int win); |
||||||
|
|
||||||
|
/* GLUT state retrieval sub-API. */ |
||||||
|
extern int APIENTRY glutGet(GLenum type); |
||||||
|
extern int APIENTRY glutDeviceGet(GLenum type); |
||||||
|
#if (GLUT_API_VERSION >= 2) |
||||||
|
/* GLUT extension support sub-API */ |
||||||
|
extern int APIENTRY glutExtensionSupported(const char *name); |
||||||
|
#endif |
||||||
|
#if (GLUT_API_VERSION >= 3) |
||||||
|
extern int APIENTRY glutGetModifiers(void); |
||||||
|
extern int APIENTRY glutLayerGet(GLenum type); |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT font sub-API */ |
||||||
|
extern void APIENTRY glutBitmapCharacter(void *font, int character); |
||||||
|
extern int APIENTRY glutBitmapWidth(void *font, int character); |
||||||
|
extern void APIENTRY glutStrokeCharacter(void *font, int character); |
||||||
|
extern int APIENTRY glutStrokeWidth(void *font, int character); |
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); |
||||||
|
extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); |
||||||
|
#endif |
||||||
|
|
||||||
|
/* GLUT pre-built models sub-API */ |
||||||
|
extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); |
||||||
|
extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); |
||||||
|
extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); |
||||||
|
extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); |
||||||
|
extern void APIENTRY glutWireCube(GLdouble size); |
||||||
|
extern void APIENTRY glutSolidCube(GLdouble size); |
||||||
|
extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); |
||||||
|
extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); |
||||||
|
extern void APIENTRY glutWireDodecahedron(void); |
||||||
|
extern void APIENTRY glutSolidDodecahedron(void); |
||||||
|
extern void APIENTRY glutWireTeapot(GLdouble size); |
||||||
|
extern void APIENTRY glutSolidTeapot(GLdouble size); |
||||||
|
extern void APIENTRY glutWireOctahedron(void); |
||||||
|
extern void APIENTRY glutSolidOctahedron(void); |
||||||
|
extern void APIENTRY glutWireTetrahedron(void); |
||||||
|
extern void APIENTRY glutSolidTetrahedron(void); |
||||||
|
extern void APIENTRY glutWireIcosahedron(void); |
||||||
|
extern void APIENTRY glutSolidIcosahedron(void); |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||||
|
/* GLUT video resize sub-API. */ |
||||||
|
extern int APIENTRY glutVideoResizeGet(GLenum param); |
||||||
|
extern void APIENTRY glutSetupVideoResizing(void); |
||||||
|
extern void APIENTRY glutStopVideoResizing(void); |
||||||
|
extern void APIENTRY glutVideoResize(int x, int y, int width, int height); |
||||||
|
extern void APIENTRY glutVideoPan(int x, int y, int width, int height); |
||||||
|
|
||||||
|
/* GLUT debugging sub-API. */ |
||||||
|
extern void APIENTRY glutReportErrors(void); |
||||||
|
#endif |
||||||
|
|
||||||
|
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||||
|
/* GLUT device control sub-API. */ |
||||||
|
/* glutSetKeyRepeat modes. */ |
||||||
|
#define GLUT_KEY_REPEAT_OFF 0 |
||||||
|
#define GLUT_KEY_REPEAT_ON 1 |
||||||
|
#define GLUT_KEY_REPEAT_DEFAULT 2 |
||||||
|
|
||||||
|
/* Joystick button masks. */ |
||||||
|
#define GLUT_JOYSTICK_BUTTON_A 1 |
||||||
|
#define GLUT_JOYSTICK_BUTTON_B 2 |
||||||
|
#define GLUT_JOYSTICK_BUTTON_C 4 |
||||||
|
#define GLUT_JOYSTICK_BUTTON_D 8 |
||||||
|
|
||||||
|
extern void APIENTRY glutIgnoreKeyRepeat(int ignore); |
||||||
|
extern void APIENTRY glutSetKeyRepeat(int repeatMode); |
||||||
|
extern void APIENTRY glutForceJoystickFunc(void); |
||||||
|
|
||||||
|
/* GLUT game mode sub-API. */ |
||||||
|
/* glutGameModeGet. */ |
||||||
|
#define GLUT_GAME_MODE_ACTIVE 0 |
||||||
|
#define GLUT_GAME_MODE_POSSIBLE 1 |
||||||
|
#define GLUT_GAME_MODE_WIDTH 2 |
||||||
|
#define GLUT_GAME_MODE_HEIGHT 3 |
||||||
|
#define GLUT_GAME_MODE_PIXEL_DEPTH 4 |
||||||
|
#define GLUT_GAME_MODE_REFRESH_RATE 5 |
||||||
|
#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 |
||||||
|
|
||||||
|
extern void APIENTRY glutGameModeString(const char *string); |
||||||
|
extern int APIENTRY glutEnterGameMode(void); |
||||||
|
extern void APIENTRY glutLeaveGameMode(void); |
||||||
|
extern int APIENTRY glutGameModeGet(GLenum mode); |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
|
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef GLUT_APIENTRY_DEFINED |
||||||
|
# undef GLUT_APIENTRY_DEFINED |
||||||
|
# undef APIENTRY |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef GLUT_WINGDIAPI_DEFINED |
||||||
|
# undef GLUT_WINGDIAPI_DEFINED |
||||||
|
# undef WINGDIAPI |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __glut_h__ */ |
@ -0,0 +1,693 @@ |
|||||||
|
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||||
|
# include/curl/Makefile. Generated from Makefile.in by configure.
|
||||||
|
|
||||||
|
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
am__is_gnu_make = { \
|
||||||
|
if test -z '$(MAKELEVEL)'; then \
|
||||||
|
false; \
|
||||||
|
elif test -n '$(MAKE_HOST)'; then \
|
||||||
|
true; \
|
||||||
|
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||||
|
true; \
|
||||||
|
else \
|
||||||
|
false; \
|
||||||
|
fi; \
|
||||||
|
} |
||||||
|
am__make_running_with_option = \
|
||||||
|
case $${target_option-} in \
|
||||||
|
?) ;; \
|
||||||
|
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||||
|
"target option '$${target_option-}' specified" >&2; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
has_opt=no; \
|
||||||
|
sane_makeflags=$$MAKEFLAGS; \
|
||||||
|
if $(am__is_gnu_make); then \
|
||||||
|
sane_makeflags=$$MFLAGS; \
|
||||||
|
else \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
bs=\\; \
|
||||||
|
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||||
|
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
skip_next=no; \
|
||||||
|
strip_trailopt () \
|
||||||
|
{ \
|
||||||
|
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||||
|
}; \
|
||||||
|
for flg in $$sane_makeflags; do \
|
||||||
|
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||||
|
case $$flg in \
|
||||||
|
*=*|--*) continue;; \
|
||||||
|
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||||
|
-*I?*) strip_trailopt 'I';; \
|
||||||
|
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||||
|
-*O?*) strip_trailopt 'O';; \
|
||||||
|
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||||
|
-*l?*) strip_trailopt 'l';; \
|
||||||
|
-[dEDm]) skip_next=yes;; \
|
||||||
|
-[JT]) skip_next=yes;; \
|
||||||
|
esac; \
|
||||||
|
case $$flg in \
|
||||||
|
*$$target_option*) has_opt=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
test $$has_opt = yes |
||||||
|
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
||||||
|
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
||||||
|
pkgdatadir = $(datadir)/curl |
||||||
|
pkglibdir = $(libdir)/curl |
||||||
|
pkglibexecdir = $(libexecdir)/curl |
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
||||||
|
install_sh_DATA = $(install_sh) -c -m 644 |
||||||
|
install_sh_PROGRAM = $(install_sh) -c |
||||||
|
install_sh_SCRIPT = $(install_sh) -c |
||||||
|
INSTALL_HEADER = $(INSTALL_DATA) |
||||||
|
transform = $(program_transform_name) |
||||||
|
NORMAL_INSTALL = : |
||||||
|
PRE_INSTALL = : |
||||||
|
POST_INSTALL = : |
||||||
|
NORMAL_UNINSTALL = : |
||||||
|
PRE_UNINSTALL = : |
||||||
|
POST_UNINSTALL = : |
||||||
|
build_triplet = i686-w64-mingw32 |
||||||
|
host_triplet = i686-w64-mingw32 |
||||||
|
subdir = include/curl |
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-functions.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-override.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-translit.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||||
|
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||||
|
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||||
|
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac |
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4) |
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
|
||||||
|
$(am__DIST_COMMON) |
||||||
|
mkinstalldirs = $(install_sh) -d |
||||||
|
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h |
||||||
|
CONFIG_CLEAN_FILES = |
||||||
|
CONFIG_CLEAN_VPATH_FILES = |
||||||
|
AM_V_P = $(am__v_P_$(V)) |
||||||
|
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) |
||||||
|
am__v_P_0 = false |
||||||
|
am__v_P_1 = : |
||||||
|
AM_V_GEN = $(am__v_GEN_$(V)) |
||||||
|
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) |
||||||
|
am__v_GEN_0 = @echo " GEN " $@; |
||||||
|
am__v_GEN_1 = |
||||||
|
AM_V_at = $(am__v_at_$(V)) |
||||||
|
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) |
||||||
|
am__v_at_0 = @ |
||||||
|
am__v_at_1 = |
||||||
|
SOURCES = |
||||||
|
DIST_SOURCES = |
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac |
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac; |
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |
||||||
|
am__install_max = 40 |
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }' |
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |
||||||
|
am__uninstall_files_from_dir = { \
|
||||||
|
test -z "$$files" \
|
||||||
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
|
} |
||||||
|
am__installdirs = "$(DESTDIR)$(pkgincludedir)" |
||||||
|
HEADERS = $(pkginclude_HEADERS) |
||||||
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
||||||
|
# Read a list of newline-separated strings from the standard input,
|
||||||
|
# and print each of them once, without duplicates. Input order is
|
||||||
|
# *not* preserved.
|
||||||
|
am__uniquify_input = $(AWK) '\
|
||||||
|
BEGIN { nonempty = 0; } \
|
||||||
|
{ items[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in items) print i; }; } \
|
||||||
|
' |
||||||
|
# Make sure the list of sources is unique. This is necessary because,
|
||||||
|
# e.g., the same source file might be shared among _SOURCES variables
|
||||||
|
# for different programs/libraries.
|
||||||
|
am__define_uniq_tagged_files = \
|
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | $(am__uniquify_input)` |
||||||
|
ETAGS = etags |
||||||
|
CTAGS = ctags |
||||||
|
am__DIST_COMMON = $(srcdir)/Makefile.in |
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
||||||
|
pkgincludedir = $(includedir)/curl |
||||||
|
ACLOCAL = ${SHELL} /home/Кирилл/curl-7.56.0/missing aclocal-1.15 |
||||||
|
AMTAR = $${TAR-tar} |
||||||
|
AM_DEFAULT_VERBOSITY = 0 |
||||||
|
AR = /mingw32/bin/ar |
||||||
|
AS = as |
||||||
|
AUTOCONF = ${SHELL} /home/Кирилл/curl-7.56.0/missing autoconf |
||||||
|
AUTOHEADER = ${SHELL} /home/Кирилл/curl-7.56.0/missing autoheader |
||||||
|
AUTOMAKE = ${SHELL} /home/Кирилл/curl-7.56.0/missing automake-1.15 |
||||||
|
AWK = gawk |
||||||
|
BLANK_AT_MAKETIME = |
||||||
|
CC = gcc |
||||||
|
CCDEPMODE = depmode=gcc3 |
||||||
|
CFLAGS = -Werror-implicit-function-declaration -O2 -Wno-system-headers |
||||||
|
CFLAG_CURL_SYMBOL_HIDING = |
||||||
|
CODE_COVERAGE_CFLAGS = |
||||||
|
CODE_COVERAGE_CPPFLAGS = |
||||||
|
CODE_COVERAGE_CXXFLAGS = |
||||||
|
CODE_COVERAGE_ENABLED = no |
||||||
|
CODE_COVERAGE_LDFLAGS = |
||||||
|
CODE_COVERAGE_LIBS = |
||||||
|
CONFIGURE_OPTIONS = " '--prefix=/mingw32'" |
||||||
|
CPP = gcc -E |
||||||
|
CPPFLAGS = -I/mingw32/include -I/mingw32/include -I/mingw32/include |
||||||
|
CPPFLAG_CURL_STATICLIB = |
||||||
|
CURLVERSION = 7.56.0 |
||||||
|
CURL_CA_BUNDLE = |
||||||
|
CURL_CFLAG_EXTRAS = |
||||||
|
CURL_DISABLE_DICT = |
||||||
|
CURL_DISABLE_FILE = |
||||||
|
CURL_DISABLE_FTP = |
||||||
|
CURL_DISABLE_GOPHER = |
||||||
|
CURL_DISABLE_HTTP = |
||||||
|
CURL_DISABLE_IMAP = |
||||||
|
CURL_DISABLE_LDAP = |
||||||
|
CURL_DISABLE_LDAPS = |
||||||
|
CURL_DISABLE_POP3 = |
||||||
|
CURL_DISABLE_PROXY = |
||||||
|
CURL_DISABLE_RTSP = |
||||||
|
CURL_DISABLE_SMB = |
||||||
|
CURL_DISABLE_SMTP = |
||||||
|
CURL_DISABLE_TELNET = |
||||||
|
CURL_DISABLE_TFTP = |
||||||
|
CURL_LT_SHLIB_VERSIONED_FLAVOUR = |
||||||
|
CURL_NETWORK_AND_TIME_LIBS = -lws2_32 |
||||||
|
CURL_NETWORK_LIBS = -lws2_32 |
||||||
|
CURL_WITH_MULTI_SSL = |
||||||
|
CXX = g++ |
||||||
|
CXXCPP = g++ -E |
||||||
|
CXXDEPMODE = depmode=gcc3 |
||||||
|
CXXFLAGS = -g -O2 |
||||||
|
CYGPATH_W = cygpath -w |
||||||
|
DEFAULT_SSL_BACKEND = no |
||||||
|
DEFS = -DHAVE_CONFIG_H |
||||||
|
DEPDIR = .deps |
||||||
|
DLLTOOL = dlltool |
||||||
|
DSYMUTIL = |
||||||
|
DUMPBIN = |
||||||
|
ECHO_C = |
||||||
|
ECHO_N = -n |
||||||
|
ECHO_T = |
||||||
|
EGREP = /usr/bin/grep -E |
||||||
|
ENABLE_SHARED = yes |
||||||
|
ENABLE_STATIC = yes |
||||||
|
EXEEXT = .exe |
||||||
|
FGREP = /usr/bin/grep -F |
||||||
|
GCOV = |
||||||
|
GENHTML = |
||||||
|
GREP = /usr/bin/grep |
||||||
|
HAVE_GNUTLS_SRP = |
||||||
|
HAVE_LDAP_SSL = 1 |
||||||
|
HAVE_LIBZ = 1 |
||||||
|
HAVE_OPENSSL_SRP = 1 |
||||||
|
IDN_ENABLED = |
||||||
|
INSTALL = /usr/bin/install -c |
||||||
|
INSTALL_DATA = ${INSTALL} -m 644 |
||||||
|
INSTALL_PROGRAM = ${INSTALL} |
||||||
|
INSTALL_SCRIPT = ${INSTALL} |
||||||
|
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s |
||||||
|
IPV6_ENABLED = 1 |
||||||
|
LCOV = |
||||||
|
LD = C:/msys64/mingw32/i686-w64-mingw32/bin/ld.exe |
||||||
|
LDFLAGS = -L/mingw32/lib -L/mingw32/lib -L/mingw32/lib |
||||||
|
LIBCURL_LIBS = -lnghttp2 -lrtmp -lssh2 -lssl -lcrypto -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lwldap32 -lz -lws2_32 |
||||||
|
LIBMETALINK_CPPFLAGS = |
||||||
|
LIBMETALINK_LDFLAGS = |
||||||
|
LIBMETALINK_LIBS = |
||||||
|
LIBOBJS = |
||||||
|
LIBS = -lnghttp2 -lrtmp -lssh2 -lssl -lcrypto -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lwldap32 -lz -lws2_32 |
||||||
|
LIBTOOL = $(SHELL) $(top_builddir)/libtool |
||||||
|
LIPO = |
||||||
|
LN_S = ln |
||||||
|
LTLIBOBJS = |
||||||
|
LT_SYS_LIBRARY_PATH = |
||||||
|
MAINT = # |
||||||
|
MAKEINFO = ${SHELL} /home/Кирилл/curl-7.56.0/missing makeinfo |
||||||
|
MANIFEST_TOOL = : |
||||||
|
MANOPT = -man |
||||||
|
MKDIR_P = /usr/bin/mkdir -p |
||||||
|
NM = /mingw32/bin/nm -B |
||||||
|
NMEDIT = |
||||||
|
NROFF = /usr/bin/nroff |
||||||
|
NSS_LIBS = |
||||||
|
OBJDUMP = objdump |
||||||
|
OBJEXT = o |
||||||
|
OTOOL = |
||||||
|
OTOOL64 = |
||||||
|
PACKAGE = curl |
||||||
|
PACKAGE_BUGREPORT = a suitable curl mailing list: https://curl.haxx.se/mail/ |
||||||
|
PACKAGE_NAME = curl |
||||||
|
PACKAGE_STRING = curl - |
||||||
|
PACKAGE_TARNAME = curl |
||||||
|
PACKAGE_URL = |
||||||
|
PACKAGE_VERSION = - |
||||||
|
PATH_SEPARATOR = : |
||||||
|
PERL = /usr/bin/perl |
||||||
|
PKGADD_NAME = curl - a client that groks URLs |
||||||
|
PKGADD_PKG = HAXXcurl |
||||||
|
PKGADD_VENDOR = curl.haxx.se |
||||||
|
PKGCONFIG = /usr/bin/pkg-config |
||||||
|
RANDOM_FILE = /dev/urandom |
||||||
|
RANLIB = ranlib |
||||||
|
REQUIRE_LIB_DEPS = yes |
||||||
|
SED = /usr/bin/sed |
||||||
|
SET_MAKE = |
||||||
|
SHELL = /bin/sh |
||||||
|
SSL_ENABLED = 1 |
||||||
|
SSL_LIBS = -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 |
||||||
|
STRIP = strip |
||||||
|
SUPPORT_FEATURES = SSL IPv6 libz AsynchDNS NTLM TLS-SRP HTTP2 HTTPS-proxy |
||||||
|
SUPPORT_PROTOCOLS = DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP |
||||||
|
USE_ARES = |
||||||
|
USE_AXTLS = |
||||||
|
USE_CYASSL = |
||||||
|
USE_DARWINSSL = |
||||||
|
USE_GNUTLS = |
||||||
|
USE_GNUTLS_NETTLE = |
||||||
|
USE_LIBRTMP = 1 |
||||||
|
USE_LIBSSH2 = 1 |
||||||
|
USE_MBEDTLS = |
||||||
|
USE_NGHTTP2 = 1 |
||||||
|
USE_NSS = |
||||||
|
USE_OPENLDAP = |
||||||
|
USE_POLARSSL = |
||||||
|
USE_SCHANNEL = |
||||||
|
USE_UNIX_SOCKETS = |
||||||
|
USE_WINDOWS_SSPI = |
||||||
|
VERSION = - |
||||||
|
VERSIONNUM = 073800 |
||||||
|
ZLIB_LIBS = -lz |
||||||
|
ZSH_FUNCTIONS_DIR = ${prefix}/share/zsh/site-functions |
||||||
|
abs_builddir = /home/Кирилл/curl-7.56.0/include/curl |
||||||
|
abs_srcdir = /home/Кирилл/curl-7.56.0/include/curl |
||||||
|
abs_top_builddir = /home/Кирилл/curl-7.56.0 |
||||||
|
abs_top_srcdir = /home/Кирилл/curl-7.56.0 |
||||||
|
ac_ct_AR = |
||||||
|
ac_ct_CC = gcc |
||||||
|
ac_ct_CXX = g++ |
||||||
|
ac_ct_DUMPBIN = |
||||||
|
am__include = include |
||||||
|
am__leading_dot = . |
||||||
|
am__quote = |
||||||
|
am__tar = $${TAR-tar} chof - "$$tardir" |
||||||
|
am__untar = $${TAR-tar} xf - |
||||||
|
bindir = ${exec_prefix}/bin |
||||||
|
build = i686-w64-mingw32 |
||||||
|
build_alias = i686-w64-mingw32 |
||||||
|
build_cpu = i686 |
||||||
|
build_os = mingw32 |
||||||
|
build_vendor = w64 |
||||||
|
builddir = . |
||||||
|
datadir = ${datarootdir} |
||||||
|
datarootdir = ${prefix}/share |
||||||
|
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} |
||||||
|
dvidir = ${docdir} |
||||||
|
exec_prefix = ${prefix} |
||||||
|
host = i686-w64-mingw32 |
||||||
|
host_alias = |
||||||
|
host_cpu = i686 |
||||||
|
host_os = mingw32 |
||||||
|
host_vendor = w64 |
||||||
|
htmldir = ${docdir} |
||||||
|
includedir = ${prefix}/include |
||||||
|
infodir = ${datarootdir}/info |
||||||
|
install_sh = ${SHELL} /home/Кирилл/curl-7.56.0/install-sh |
||||||
|
libdir = ${exec_prefix}/lib |
||||||
|
libexecdir = ${exec_prefix}/libexec |
||||||
|
libext = a |
||||||
|
localedir = ${datarootdir}/locale |
||||||
|
localstatedir = ${prefix}/var |
||||||
|
mandir = ${datarootdir}/man |
||||||
|
mkdir_p = $(MKDIR_P) |
||||||
|
oldincludedir = /usr/include |
||||||
|
pdfdir = ${docdir} |
||||||
|
prefix = /mingw32 |
||||||
|
program_transform_name = s,x,x, |
||||||
|
psdir = ${docdir} |
||||||
|
runstatedir = ${localstatedir}/run |
||||||
|
sbindir = ${exec_prefix}/sbin |
||||||
|
sharedstatedir = ${prefix}/com |
||||||
|
srcdir = . |
||||||
|
subdirs = |
||||||
|
sysconfdir = ${prefix}/etc |
||||||
|
target_alias = |
||||||
|
top_build_prefix = ../../ |
||||||
|
top_builddir = ../.. |
||||||
|
top_srcdir = ../.. |
||||||
|
|
||||||
|
#***************************************************************************
|
||||||
|
# _ _ ____ _
|
||||||
|
# Project ___| | | | _ \| |
|
||||||
|
# / __| | | | |_) | |
|
||||||
|
# | (__| |_| | _ <| |___
|
||||||
|
# \___|\___/|_| \_\_____|
|
||||||
|
#
|
||||||
|
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
#
|
||||||
|
# This software is licensed as described in the file COPYING, which
|
||||||
|
# you should have received as part of this distribution. The terms
|
||||||
|
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
#
|
||||||
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
# copies of the Software, and permit persons to whom the Software is
|
||||||
|
# furnished to do so, under the terms of the COPYING file.
|
||||||
|
#
|
||||||
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
# KIND, either express or implied.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
pkginclude_HEADERS = \
|
||||||
|
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||||
|
typecheck-gcc.h system.h |
||||||
|
|
||||||
|
all: all-am |
||||||
|
|
||||||
|
.SUFFIXES: |
||||||
|
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --foreign include/curl/Makefile |
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac; |
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
|
||||||
|
$(top_srcdir)/configure: # $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
$(am__aclocal_m4_deps): |
||||||
|
|
||||||
|
mostlyclean-libtool: |
||||||
|
-rm -f *.lo |
||||||
|
|
||||||
|
clean-libtool: |
||||||
|
-rm -rf .libs _libs |
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS) |
||||||
|
@$(NORMAL_INSTALL) |
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||||
|
done |
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS: |
||||||
|
@$(NORMAL_UNINSTALL) |
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) |
||||||
|
|
||||||
|
ID: $(am__tagged_files) |
||||||
|
$(am__define_uniq_tagged_files); mkid -fID $$unique |
||||||
|
tags: tags-am |
||||||
|
TAGS: tags |
||||||
|
|
||||||
|
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \ |
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi |
||||||
|
ctags: ctags-am |
||||||
|
|
||||||
|
CTAGS: ctags |
||||||
|
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique |
||||||
|
|
||||||
|
GTAGS: |
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here" |
||||||
|
cscopelist: cscopelist-am |
||||||
|
|
||||||
|
cscopelist-am: $(am__tagged_files) |
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
case "$(srcdir)" in \
|
||||||
|
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||||
|
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||||
|
esac; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f "$$i"; then \
|
||||||
|
echo "$(subdir)/$$i"; \
|
||||||
|
else \
|
||||||
|
echo "$$sdir/$$i"; \
|
||||||
|
fi; \
|
||||||
|
done >> $(top_builddir)/cscope.files |
||||||
|
|
||||||
|
distclean-tags: |
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
||||||
|
|
||||||
|
distdir: $(DISTFILES) |
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done |
||||||
|
check-am: all-am |
||||||
|
check: check-am |
||||||
|
all-local: |
||||||
|
all-am: Makefile $(HEADERS) all-local |
||||||
|
installdirs: |
||||||
|
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done |
||||||
|
install: install-am |
||||||
|
install-exec: install-exec-am |
||||||
|
install-data: install-data-am |
||||||
|
uninstall: uninstall-am |
||||||
|
|
||||||
|
install-am: all-am |
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
||||||
|
|
||||||
|
installcheck: installcheck-am |
||||||
|
install-strip: |
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi |
||||||
|
mostlyclean-generic: |
||||||
|
|
||||||
|
clean-generic: |
||||||
|
|
||||||
|
distclean-generic: |
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
||||||
|
|
||||||
|
maintainer-clean-generic: |
||||||
|
@echo "This command is intended for maintainers to use" |
||||||
|
@echo "it deletes files that may require special tools to rebuild." |
||||||
|
clean: clean-am |
||||||
|
|
||||||
|
clean-am: clean-generic clean-libtool mostlyclean-am |
||||||
|
|
||||||
|
distclean: distclean-am |
||||||
|
-rm -f Makefile |
||||||
|
distclean-am: clean-am distclean-generic distclean-tags |
||||||
|
|
||||||
|
dvi: dvi-am |
||||||
|
|
||||||
|
dvi-am: |
||||||
|
|
||||||
|
html: html-am |
||||||
|
|
||||||
|
html-am: |
||||||
|
|
||||||
|
info: info-am |
||||||
|
|
||||||
|
info-am: |
||||||
|
|
||||||
|
install-data-am: install-pkgincludeHEADERS |
||||||
|
|
||||||
|
install-dvi: install-dvi-am |
||||||
|
|
||||||
|
install-dvi-am: |
||||||
|
|
||||||
|
install-exec-am: |
||||||
|
|
||||||
|
install-html: install-html-am |
||||||
|
|
||||||
|
install-html-am: |
||||||
|
|
||||||
|
install-info: install-info-am |
||||||
|
|
||||||
|
install-info-am: |
||||||
|
|
||||||
|
install-man: |
||||||
|
|
||||||
|
install-pdf: install-pdf-am |
||||||
|
|
||||||
|
install-pdf-am: |
||||||
|
|
||||||
|
install-ps: install-ps-am |
||||||
|
|
||||||
|
install-ps-am: |
||||||
|
|
||||||
|
installcheck-am: |
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am |
||||||
|
-rm -f Makefile |
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic |
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am |
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
||||||
|
|
||||||
|
pdf: pdf-am |
||||||
|
|
||||||
|
pdf-am: |
||||||
|
|
||||||
|
ps: ps-am |
||||||
|
|
||||||
|
ps-am: |
||||||
|
|
||||||
|
uninstall-am: uninstall-pkgincludeHEADERS |
||||||
|
|
||||||
|
.MAKE: install-am install-strip |
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ |
||||||
|
clean-generic clean-libtool cscopelist-am ctags ctags-am \
|
||||||
|
distclean distclean-generic distclean-libtool distclean-tags \
|
||||||
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
|
install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||||
|
install-ps install-ps-am install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||||
|
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||||
|
uninstall-am uninstall-pkgincludeHEADERS |
||||||
|
|
||||||
|
.PRECIOUS: Makefile |
||||||
|
|
||||||
|
|
||||||
|
checksrc: |
||||||
|
@/usr/bin/perl $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||||
|
|
||||||
|
# for debug builds, we scan the sources on all regular make invokes
|
||||||
|
#all-local: checksrc
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT: |
@ -0,0 +1,34 @@ |
|||||||
|
#***************************************************************************
|
||||||
|
# _ _ ____ _
|
||||||
|
# Project ___| | | | _ \| |
|
||||||
|
# / __| | | | |_) | |
|
||||||
|
# | (__| |_| | _ <| |___
|
||||||
|
# \___|\___/|_| \_\_____|
|
||||||
|
#
|
||||||
|
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
#
|
||||||
|
# This software is licensed as described in the file COPYING, which
|
||||||
|
# you should have received as part of this distribution. The terms
|
||||||
|
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
#
|
||||||
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
# copies of the Software, and permit persons to whom the Software is
|
||||||
|
# furnished to do so, under the terms of the COPYING file.
|
||||||
|
#
|
||||||
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
# KIND, either express or implied.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
pkginclude_HEADERS = \
|
||||||
|
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||||
|
typecheck-gcc.h system.h |
||||||
|
|
||||||
|
pkgincludedir= $(includedir)/curl |
||||||
|
|
||||||
|
checksrc: |
||||||
|
@@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||||
|
|
||||||
|
if CURLDEBUG |
||||||
|
# for debug builds, we scan the sources on all regular make invokes
|
||||||
|
all-local: checksrc |
||||||
|
endif |
@ -0,0 +1,693 @@ |
|||||||
|
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@ |
||||||
|
|
||||||
|
VPATH = @srcdir@ |
||||||
|
am__is_gnu_make = { \
|
||||||
|
if test -z '$(MAKELEVEL)'; then \
|
||||||
|
false; \
|
||||||
|
elif test -n '$(MAKE_HOST)'; then \
|
||||||
|
true; \
|
||||||
|
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||||
|
true; \
|
||||||
|
else \
|
||||||
|
false; \
|
||||||
|
fi; \
|
||||||
|
} |
||||||
|
am__make_running_with_option = \
|
||||||
|
case $${target_option-} in \
|
||||||
|
?) ;; \
|
||||||
|
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||||
|
"target option '$${target_option-}' specified" >&2; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
has_opt=no; \
|
||||||
|
sane_makeflags=$$MAKEFLAGS; \
|
||||||
|
if $(am__is_gnu_make); then \
|
||||||
|
sane_makeflags=$$MFLAGS; \
|
||||||
|
else \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
bs=\\; \
|
||||||
|
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||||
|
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
skip_next=no; \
|
||||||
|
strip_trailopt () \
|
||||||
|
{ \
|
||||||
|
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||||
|
}; \
|
||||||
|
for flg in $$sane_makeflags; do \
|
||||||
|
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||||
|
case $$flg in \
|
||||||
|
*=*|--*) continue;; \
|
||||||
|
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||||
|
-*I?*) strip_trailopt 'I';; \
|
||||||
|
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||||
|
-*O?*) strip_trailopt 'O';; \
|
||||||
|
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||||
|
-*l?*) strip_trailopt 'l';; \
|
||||||
|
-[dEDm]) skip_next=yes;; \
|
||||||
|
-[JT]) skip_next=yes;; \
|
||||||
|
esac; \
|
||||||
|
case $$flg in \
|
||||||
|
*$$target_option*) has_opt=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
test $$has_opt = yes |
||||||
|
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
||||||
|
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@ |
||||||
|
pkglibdir = $(libdir)/@PACKAGE@ |
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
||||||
|
install_sh_DATA = $(install_sh) -c -m 644 |
||||||
|
install_sh_PROGRAM = $(install_sh) -c |
||||||
|
install_sh_SCRIPT = $(install_sh) -c |
||||||
|
INSTALL_HEADER = $(INSTALL_DATA) |
||||||
|
transform = $(program_transform_name) |
||||||
|
NORMAL_INSTALL = : |
||||||
|
PRE_INSTALL = : |
||||||
|
POST_INSTALL = : |
||||||
|
NORMAL_UNINSTALL = : |
||||||
|
PRE_UNINSTALL = : |
||||||
|
POST_UNINSTALL = : |
||||||
|
build_triplet = @build@ |
||||||
|
host_triplet = @host@ |
||||||
|
subdir = include/curl |
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-functions.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-override.m4 \
|
||||||
|
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-translit.m4 \
|
||||||
|
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||||
|
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||||
|
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||||
|
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.ac |
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4) |
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
|
||||||
|
$(am__DIST_COMMON) |
||||||
|
mkinstalldirs = $(install_sh) -d |
||||||
|
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h |
||||||
|
CONFIG_CLEAN_FILES = |
||||||
|
CONFIG_CLEAN_VPATH_FILES = |
||||||
|
AM_V_P = $(am__v_P_@AM_V@) |
||||||
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
||||||
|
am__v_P_0 = false |
||||||
|
am__v_P_1 = : |
||||||
|
AM_V_GEN = $(am__v_GEN_@AM_V@) |
||||||
|
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
||||||
|
am__v_GEN_0 = @echo " GEN " $@; |
||||||
|
am__v_GEN_1 = |
||||||
|
AM_V_at = $(am__v_at_@AM_V@) |
||||||
|
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
||||||
|
am__v_at_0 = @ |
||||||
|
am__v_at_1 = |
||||||
|
SOURCES = |
||||||
|
DIST_SOURCES = |
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac |
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac; |
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |
||||||
|
am__install_max = 40 |
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }' |
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |
||||||
|
am__uninstall_files_from_dir = { \
|
||||||
|
test -z "$$files" \
|
||||||
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
|
} |
||||||
|
am__installdirs = "$(DESTDIR)$(pkgincludedir)" |
||||||
|
HEADERS = $(pkginclude_HEADERS) |
||||||
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
||||||
|
# Read a list of newline-separated strings from the standard input,
|
||||||
|
# and print each of them once, without duplicates. Input order is
|
||||||
|
# *not* preserved.
|
||||||
|
am__uniquify_input = $(AWK) '\
|
||||||
|
BEGIN { nonempty = 0; } \
|
||||||
|
{ items[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in items) print i; }; } \
|
||||||
|
' |
||||||
|
# Make sure the list of sources is unique. This is necessary because,
|
||||||
|
# e.g., the same source file might be shared among _SOURCES variables
|
||||||
|
# for different programs/libraries.
|
||||||
|
am__define_uniq_tagged_files = \
|
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | $(am__uniquify_input)` |
||||||
|
ETAGS = etags |
||||||
|
CTAGS = ctags |
||||||
|
am__DIST_COMMON = $(srcdir)/Makefile.in |
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
||||||
|
pkgincludedir = $(includedir)/curl |
||||||
|
ACLOCAL = @ACLOCAL@ |
||||||
|
AMTAR = @AMTAR@ |
||||||
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
||||||
|
AR = @AR@ |
||||||
|
AS = @AS@ |
||||||
|
AUTOCONF = @AUTOCONF@ |
||||||
|
AUTOHEADER = @AUTOHEADER@ |
||||||
|
AUTOMAKE = @AUTOMAKE@ |
||||||
|
AWK = @AWK@ |
||||||
|
BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@ |
||||||
|
CC = @CC@ |
||||||
|
CCDEPMODE = @CCDEPMODE@ |
||||||
|
CFLAGS = @CFLAGS@ |
||||||
|
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ |
||||||
|
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ |
||||||
|
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ |
||||||
|
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ |
||||||
|
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ |
||||||
|
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ |
||||||
|
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ |
||||||
|
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ |
||||||
|
CPP = @CPP@ |
||||||
|
CPPFLAGS = @CPPFLAGS@ |
||||||
|
CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ |
||||||
|
CURLVERSION = @CURLVERSION@ |
||||||
|
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ |
||||||
|
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ |
||||||
|
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ |
||||||
|
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ |
||||||
|
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ |
||||||
|
CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ |
||||||
|
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ |
||||||
|
CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ |
||||||
|
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ |
||||||
|
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ |
||||||
|
CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ |
||||||
|
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ |
||||||
|
CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ |
||||||
|
CURL_DISABLE_SMB = @CURL_DISABLE_SMB@ |
||||||
|
CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ |
||||||
|
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ |
||||||
|
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ |
||||||
|
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@ |
||||||
|
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@ |
||||||
|
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ |
||||||
|
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@ |
||||||
|
CXX = @CXX@ |
||||||
|
CXXCPP = @CXXCPP@ |
||||||
|
CXXDEPMODE = @CXXDEPMODE@ |
||||||
|
CXXFLAGS = @CXXFLAGS@ |
||||||
|
CYGPATH_W = @CYGPATH_W@ |
||||||
|
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@ |
||||||
|
DEFS = @DEFS@ |
||||||
|
DEPDIR = @DEPDIR@ |
||||||
|
DLLTOOL = @DLLTOOL@ |
||||||
|
DSYMUTIL = @DSYMUTIL@ |
||||||
|
DUMPBIN = @DUMPBIN@ |
||||||
|
ECHO_C = @ECHO_C@ |
||||||
|
ECHO_N = @ECHO_N@ |
||||||
|
ECHO_T = @ECHO_T@ |
||||||
|
EGREP = @EGREP@ |
||||||
|
ENABLE_SHARED = @ENABLE_SHARED@ |
||||||
|
ENABLE_STATIC = @ENABLE_STATIC@ |
||||||
|
EXEEXT = @EXEEXT@ |
||||||
|
FGREP = @FGREP@ |
||||||
|
GCOV = @GCOV@ |
||||||
|
GENHTML = @GENHTML@ |
||||||
|
GREP = @GREP@ |
||||||
|
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ |
||||||
|
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ |
||||||
|
HAVE_LIBZ = @HAVE_LIBZ@ |
||||||
|
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@ |
||||||
|
IDN_ENABLED = @IDN_ENABLED@ |
||||||
|
INSTALL = @INSTALL@ |
||||||
|
INSTALL_DATA = @INSTALL_DATA@ |
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
||||||
|
IPV6_ENABLED = @IPV6_ENABLED@ |
||||||
|
LCOV = @LCOV@ |
||||||
|
LD = @LD@ |
||||||
|
LDFLAGS = @LDFLAGS@ |
||||||
|
LIBCURL_LIBS = @LIBCURL_LIBS@ |
||||||
|
LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@ |
||||||
|
LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ |
||||||
|
LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ |
||||||
|
LIBOBJS = @LIBOBJS@ |
||||||
|
LIBS = @LIBS@ |
||||||
|
LIBTOOL = @LIBTOOL@ |
||||||
|
LIPO = @LIPO@ |
||||||
|
LN_S = @LN_S@ |
||||||
|
LTLIBOBJS = @LTLIBOBJS@ |
||||||
|
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ |
||||||
|
MAINT = @MAINT@ |
||||||
|
MAKEINFO = @MAKEINFO@ |
||||||
|
MANIFEST_TOOL = @MANIFEST_TOOL@ |
||||||
|
MANOPT = @MANOPT@ |
||||||
|
MKDIR_P = @MKDIR_P@ |
||||||
|
NM = @NM@ |
||||||
|
NMEDIT = @NMEDIT@ |
||||||
|
NROFF = @NROFF@ |
||||||
|
NSS_LIBS = @NSS_LIBS@ |
||||||
|
OBJDUMP = @OBJDUMP@ |
||||||
|
OBJEXT = @OBJEXT@ |
||||||
|
OTOOL = @OTOOL@ |
||||||
|
OTOOL64 = @OTOOL64@ |
||||||
|
PACKAGE = @PACKAGE@ |
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@ |
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@ |
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
||||||
|
PACKAGE_URL = @PACKAGE_URL@ |
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@ |
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@ |
||||||
|
PERL = @PERL@ |
||||||
|
PKGADD_NAME = @PKGADD_NAME@ |
||||||
|
PKGADD_PKG = @PKGADD_PKG@ |
||||||
|
PKGADD_VENDOR = @PKGADD_VENDOR@ |
||||||
|
PKGCONFIG = @PKGCONFIG@ |
||||||
|
RANDOM_FILE = @RANDOM_FILE@ |
||||||
|
RANLIB = @RANLIB@ |
||||||
|
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ |
||||||
|
SED = @SED@ |
||||||
|
SET_MAKE = @SET_MAKE@ |
||||||
|
SHELL = @SHELL@ |
||||||
|
SSL_ENABLED = @SSL_ENABLED@ |
||||||
|
SSL_LIBS = @SSL_LIBS@ |
||||||
|
STRIP = @STRIP@ |
||||||
|
SUPPORT_FEATURES = @SUPPORT_FEATURES@ |
||||||
|
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ |
||||||
|
USE_ARES = @USE_ARES@ |
||||||
|
USE_AXTLS = @USE_AXTLS@ |
||||||
|
USE_CYASSL = @USE_CYASSL@ |
||||||
|
USE_DARWINSSL = @USE_DARWINSSL@ |
||||||
|
USE_GNUTLS = @USE_GNUTLS@ |
||||||
|
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ |
||||||
|
USE_LIBRTMP = @USE_LIBRTMP@ |
||||||
|
USE_LIBSSH2 = @USE_LIBSSH2@ |
||||||
|
USE_MBEDTLS = @USE_MBEDTLS@ |
||||||
|
USE_NGHTTP2 = @USE_NGHTTP2@ |
||||||
|
USE_NSS = @USE_NSS@ |
||||||
|
USE_OPENLDAP = @USE_OPENLDAP@ |
||||||
|
USE_POLARSSL = @USE_POLARSSL@ |
||||||
|
USE_SCHANNEL = @USE_SCHANNEL@ |
||||||
|
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ |
||||||
|
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ |
||||||
|
VERSION = @VERSION@ |
||||||
|
VERSIONNUM = @VERSIONNUM@ |
||||||
|
ZLIB_LIBS = @ZLIB_LIBS@ |
||||||
|
ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ |
||||||
|
abs_builddir = @abs_builddir@ |
||||||
|
abs_srcdir = @abs_srcdir@ |
||||||
|
abs_top_builddir = @abs_top_builddir@ |
||||||
|
abs_top_srcdir = @abs_top_srcdir@ |
||||||
|
ac_ct_AR = @ac_ct_AR@ |
||||||
|
ac_ct_CC = @ac_ct_CC@ |
||||||
|
ac_ct_CXX = @ac_ct_CXX@ |
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
||||||
|
am__include = @am__include@ |
||||||
|
am__leading_dot = @am__leading_dot@ |
||||||
|
am__quote = @am__quote@ |
||||||
|
am__tar = @am__tar@ |
||||||
|
am__untar = @am__untar@ |
||||||
|
bindir = @bindir@ |
||||||
|
build = @build@ |
||||||
|
build_alias = @build_alias@ |
||||||
|
build_cpu = @build_cpu@ |
||||||
|
build_os = @build_os@ |
||||||
|
build_vendor = @build_vendor@ |
||||||
|
builddir = @builddir@ |
||||||
|
datadir = @datadir@ |
||||||
|
datarootdir = @datarootdir@ |
||||||
|
docdir = @docdir@ |
||||||
|
dvidir = @dvidir@ |
||||||
|
exec_prefix = @exec_prefix@ |
||||||
|
host = @host@ |
||||||
|
host_alias = @host_alias@ |
||||||
|
host_cpu = @host_cpu@ |
||||||
|
host_os = @host_os@ |
||||||
|
host_vendor = @host_vendor@ |
||||||
|
htmldir = @htmldir@ |
||||||
|
includedir = @includedir@ |
||||||
|
infodir = @infodir@ |
||||||
|
install_sh = @install_sh@ |
||||||
|
libdir = @libdir@ |
||||||
|
libexecdir = @libexecdir@ |
||||||
|
libext = @libext@ |
||||||
|
localedir = @localedir@ |
||||||
|
localstatedir = @localstatedir@ |
||||||
|
mandir = @mandir@ |
||||||
|
mkdir_p = @mkdir_p@ |
||||||
|
oldincludedir = @oldincludedir@ |
||||||
|
pdfdir = @pdfdir@ |
||||||
|
prefix = @prefix@ |
||||||
|
program_transform_name = @program_transform_name@ |
||||||
|
psdir = @psdir@ |
||||||
|
runstatedir = @runstatedir@ |
||||||
|
sbindir = @sbindir@ |
||||||
|
sharedstatedir = @sharedstatedir@ |
||||||
|
srcdir = @srcdir@ |
||||||
|
subdirs = @subdirs@ |
||||||
|
sysconfdir = @sysconfdir@ |
||||||
|
target_alias = @target_alias@ |
||||||
|
top_build_prefix = @top_build_prefix@ |
||||||
|
top_builddir = @top_builddir@ |
||||||
|
top_srcdir = @top_srcdir@ |
||||||
|
|
||||||
|
#***************************************************************************
|
||||||
|
# _ _ ____ _
|
||||||
|
# Project ___| | | | _ \| |
|
||||||
|
# / __| | | | |_) | |
|
||||||
|
# | (__| |_| | _ <| |___
|
||||||
|
# \___|\___/|_| \_\_____|
|
||||||
|
#
|
||||||
|
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
#
|
||||||
|
# This software is licensed as described in the file COPYING, which
|
||||||
|
# you should have received as part of this distribution. The terms
|
||||||
|
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
#
|
||||||
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
# copies of the Software, and permit persons to whom the Software is
|
||||||
|
# furnished to do so, under the terms of the COPYING file.
|
||||||
|
#
|
||||||
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
# KIND, either express or implied.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
pkginclude_HEADERS = \
|
||||||
|
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||||
|
typecheck-gcc.h system.h |
||||||
|
|
||||||
|
all: all-am |
||||||
|
|
||||||
|
.SUFFIXES: |
||||||
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) |
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --foreign include/curl/Makefile |
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac; |
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
|
||||||
|
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||||
|
$(am__aclocal_m4_deps): |
||||||
|
|
||||||
|
mostlyclean-libtool: |
||||||
|
-rm -f *.lo |
||||||
|
|
||||||
|
clean-libtool: |
||||||
|
-rm -rf .libs _libs |
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS) |
||||||
|
@$(NORMAL_INSTALL) |
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||||
|
done |
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS: |
||||||
|
@$(NORMAL_UNINSTALL) |
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) |
||||||
|
|
||||||
|
ID: $(am__tagged_files) |
||||||
|
$(am__define_uniq_tagged_files); mkid -fID $$unique |
||||||
|
tags: tags-am |
||||||
|
TAGS: tags |
||||||
|
|
||||||
|
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \ |
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi |
||||||
|
ctags: ctags-am |
||||||
|
|
||||||
|
CTAGS: ctags |
||||||
|
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique |
||||||
|
|
||||||
|
GTAGS: |
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here" |
||||||
|
cscopelist: cscopelist-am |
||||||
|
|
||||||
|
cscopelist-am: $(am__tagged_files) |
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
case "$(srcdir)" in \
|
||||||
|
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||||
|
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||||
|
esac; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f "$$i"; then \
|
||||||
|
echo "$(subdir)/$$i"; \
|
||||||
|
else \
|
||||||
|
echo "$$sdir/$$i"; \
|
||||||
|
fi; \
|
||||||
|
done >> $(top_builddir)/cscope.files |
||||||
|
|
||||||
|
distclean-tags: |
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
||||||
|
|
||||||
|
distdir: $(DISTFILES) |
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done |
||||||
|
check-am: all-am |
||||||
|
check: check-am |
||||||
|
@CURLDEBUG_FALSE@all-local: |
||||||
|
all-am: Makefile $(HEADERS) all-local |
||||||
|
installdirs: |
||||||
|
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done |
||||||
|
install: install-am |
||||||
|
install-exec: install-exec-am |
||||||
|
install-data: install-data-am |
||||||
|
uninstall: uninstall-am |
||||||
|
|
||||||
|
install-am: all-am |
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
||||||
|
|
||||||
|
installcheck: installcheck-am |
||||||
|
install-strip: |
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi |
||||||
|
mostlyclean-generic: |
||||||
|
|
||||||
|
clean-generic: |
||||||
|
|
||||||
|
distclean-generic: |
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
||||||
|
|
||||||
|
maintainer-clean-generic: |
||||||
|
@echo "This command is intended for maintainers to use" |
||||||
|
@echo "it deletes files that may require special tools to rebuild." |
||||||
|
clean: clean-am |
||||||
|
|
||||||
|
clean-am: clean-generic clean-libtool mostlyclean-am |
||||||
|
|
||||||
|
distclean: distclean-am |
||||||
|
-rm -f Makefile |
||||||
|
distclean-am: clean-am distclean-generic distclean-tags |
||||||
|
|
||||||
|
dvi: dvi-am |
||||||
|
|
||||||
|
dvi-am: |
||||||
|
|
||||||
|
html: html-am |
||||||
|
|
||||||
|
html-am: |
||||||
|
|
||||||
|
info: info-am |
||||||
|
|
||||||
|
info-am: |
||||||
|
|
||||||
|
install-data-am: install-pkgincludeHEADERS |
||||||
|
|
||||||
|
install-dvi: install-dvi-am |
||||||
|
|
||||||
|
install-dvi-am: |
||||||
|
|
||||||
|
install-exec-am: |
||||||
|
|
||||||
|
install-html: install-html-am |
||||||
|
|
||||||
|
install-html-am: |
||||||
|
|
||||||
|
install-info: install-info-am |
||||||
|
|
||||||
|
install-info-am: |
||||||
|
|
||||||
|
install-man: |
||||||
|
|
||||||
|
install-pdf: install-pdf-am |
||||||
|
|
||||||
|
install-pdf-am: |
||||||
|
|
||||||
|
install-ps: install-ps-am |
||||||
|
|
||||||
|
install-ps-am: |
||||||
|
|
||||||
|
installcheck-am: |
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am |
||||||
|
-rm -f Makefile |
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic |
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am |
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
||||||
|
|
||||||
|
pdf: pdf-am |
||||||
|
|
||||||
|
pdf-am: |
||||||
|
|
||||||
|
ps: ps-am |
||||||
|
|
||||||
|
ps-am: |
||||||
|
|
||||||
|
uninstall-am: uninstall-pkgincludeHEADERS |
||||||
|
|
||||||
|
.MAKE: install-am install-strip |
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ |
||||||
|
clean-generic clean-libtool cscopelist-am ctags ctags-am \
|
||||||
|
distclean distclean-generic distclean-libtool distclean-tags \
|
||||||
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
|
install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||||
|
install-ps install-ps-am install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||||
|
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||||
|
uninstall-am uninstall-pkgincludeHEADERS |
||||||
|
|
||||||
|
.PRECIOUS: Makefile |
||||||
|
|
||||||
|
|
||||||
|
checksrc: |
||||||
|
@@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||||
|
|
||||||
|
# for debug builds, we scan the sources on all regular make invokes
|
||||||
|
@CURLDEBUG_TRUE@all-local: checksrc |
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT: |
@ -0,0 +1,77 @@ |
|||||||
|
#ifndef __CURL_CURLVER_H |
||||||
|
#define __CURL_CURLVER_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
|
||||||
|
/* This header file contains nothing but libcurl version info, generated by
|
||||||
|
a script at release-time. This was made its own header file in 7.11.2 */ |
||||||
|
|
||||||
|
/* This is the global package copyright */ |
||||||
|
#define LIBCURL_COPYRIGHT "1996 - 2017 Daniel Stenberg, <daniel@haxx.se>." |
||||||
|
|
||||||
|
/* This is the version number of the libcurl package from which this header
|
||||||
|
file origins: */ |
||||||
|
#define LIBCURL_VERSION "7.56.0" |
||||||
|
|
||||||
|
/* The numeric version number is also available "in parts" by using these
|
||||||
|
defines: */ |
||||||
|
#define LIBCURL_VERSION_MAJOR 7 |
||||||
|
#define LIBCURL_VERSION_MINOR 56 |
||||||
|
#define LIBCURL_VERSION_PATCH 0 |
||||||
|
|
||||||
|
/* This is the numeric version of the libcurl version number, meant for easier
|
||||||
|
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will |
||||||
|
always follow this syntax: |
||||||
|
|
||||||
|
0xXXYYZZ |
||||||
|
|
||||||
|
Where XX, YY and ZZ are the main version, release and patch numbers in |
||||||
|
hexadecimal (using 8 bits each). All three numbers are always represented |
||||||
|
using two digits. 1.2 would appear as "0x010200" while version 9.11.7 |
||||||
|
appears as "0x090b07". |
||||||
|
|
||||||
|
This 6-digit (24 bits) hexadecimal number does not show pre-release number, |
||||||
|
and it is always a greater number in a more recent release. It makes |
||||||
|
comparisons with greater than and less than work. |
||||||
|
|
||||||
|
Note: This define is the full hex number and _does not_ use the |
||||||
|
CURL_VERSION_BITS() macro since curl's own configure script greps for it |
||||||
|
and needs it to contain the full number. |
||||||
|
*/ |
||||||
|
#define LIBCURL_VERSION_NUM 0x073800 |
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the date and time when the full source package was created. The |
||||||
|
* timestamp is not stored in git, as the timestamp is properly set in the |
||||||
|
* tarballs by the maketgz script. |
||||||
|
* |
||||||
|
* The format of the date follows this template: |
||||||
|
* |
||||||
|
* "2007-11-23" |
||||||
|
*/ |
||||||
|
#define LIBCURL_TIMESTAMP "2017-10-04" |
||||||
|
|
||||||
|
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) |
||||||
|
#define CURL_AT_LEAST_VERSION(x,y,z) \ |
||||||
|
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) |
||||||
|
|
||||||
|
#endif /* __CURL_CURLVER_H */ |
@ -0,0 +1,102 @@ |
|||||||
|
#ifndef __CURL_EASY_H |
||||||
|
#define __CURL_EASY_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
CURL_EXTERN CURL *curl_easy_init(void); |
||||||
|
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); |
||||||
|
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); |
||||||
|
CURL_EXTERN void curl_easy_cleanup(CURL *curl); |
||||||
|
|
||||||
|
/*
|
||||||
|
* NAME curl_easy_getinfo() |
||||||
|
* |
||||||
|
* DESCRIPTION |
||||||
|
* |
||||||
|
* Request internal information from the curl session with this function. The |
||||||
|
* third argument MUST be a pointer to a long, a pointer to a char * or a |
||||||
|
* pointer to a double (as the documentation describes elsewhere). The data |
||||||
|
* pointed to will be filled in accordingly and can be relied upon only if the |
||||||
|
* function returns CURLE_OK. This function is intended to get used *AFTER* a |
||||||
|
* performed transfer, all results from this function are undefined until the |
||||||
|
* transfer is completed. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); |
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NAME curl_easy_duphandle() |
||||||
|
* |
||||||
|
* DESCRIPTION |
||||||
|
* |
||||||
|
* Creates a new curl session handle with the same options set for the handle |
||||||
|
* passed in. Duplicating a handle could only be a matter of cloning data and |
||||||
|
* options, internal state info and things like persistent connections cannot |
||||||
|
* be transferred. It is useful in multithreaded applications when you can run |
||||||
|
* curl_easy_duphandle() for each new thread to avoid a series of identical |
||||||
|
* curl_easy_setopt() invokes in every thread. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); |
||||||
|
|
||||||
|
/*
|
||||||
|
* NAME curl_easy_reset() |
||||||
|
* |
||||||
|
* DESCRIPTION |
||||||
|
* |
||||||
|
* Re-initializes a CURL handle to the default values. This puts back the |
||||||
|
* handle to the same state as it was in when it was just created. |
||||||
|
* |
||||||
|
* It does keep: live connections, the Session ID cache, the DNS cache and the |
||||||
|
* cookies. |
||||||
|
*/ |
||||||
|
CURL_EXTERN void curl_easy_reset(CURL *curl); |
||||||
|
|
||||||
|
/*
|
||||||
|
* NAME curl_easy_recv() |
||||||
|
* |
||||||
|
* DESCRIPTION |
||||||
|
* |
||||||
|
* Receives data from the connected socket. Use after successful |
||||||
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, |
||||||
|
size_t *n); |
||||||
|
|
||||||
|
/*
|
||||||
|
* NAME curl_easy_send() |
||||||
|
* |
||||||
|
* DESCRIPTION |
||||||
|
* |
||||||
|
* Sends data over the connected socket. Use after successful |
||||||
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, |
||||||
|
size_t buflen, size_t *n); |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,50 @@ |
|||||||
|
#ifndef __CURL_MPRINTF_H |
||||||
|
#define __CURL_MPRINTF_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
|
||||||
|
#include <stdarg.h> |
||||||
|
#include <stdio.h> /* needed for FILE */ |
||||||
|
#include "curl.h" /* for CURL_EXTERN */ |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
CURL_EXTERN int curl_mprintf(const char *format, ...); |
||||||
|
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); |
||||||
|
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); |
||||||
|
CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, |
||||||
|
const char *format, ...); |
||||||
|
CURL_EXTERN int curl_mvprintf(const char *format, va_list args); |
||||||
|
CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); |
||||||
|
CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); |
||||||
|
CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, |
||||||
|
const char *format, va_list args); |
||||||
|
CURL_EXTERN char *curl_maprintf(const char *format, ...); |
||||||
|
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __CURL_MPRINTF_H */ |
@ -0,0 +1,439 @@ |
|||||||
|
#ifndef __CURL_MULTI_H |
||||||
|
#define __CURL_MULTI_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
/*
|
||||||
|
This is an "external" header file. Don't give away any internals here! |
||||||
|
|
||||||
|
GOALS |
||||||
|
|
||||||
|
o Enable a "pull" interface. The application that uses libcurl decides where |
||||||
|
and when to ask libcurl to get/send data. |
||||||
|
|
||||||
|
o Enable multiple simultaneous transfers in the same thread without making it |
||||||
|
complicated for the application. |
||||||
|
|
||||||
|
o Enable the application to select() on its own file descriptors and curl's |
||||||
|
file descriptors simultaneous easily. |
||||||
|
|
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* This header file should not really need to include "curl.h" since curl.h |
||||||
|
* itself includes this file and we expect user applications to do #include |
||||||
|
* <curl/curl.h> without the need for especially including multi.h. |
||||||
|
* |
||||||
|
* For some reason we added this include here at one point, and rather than to |
||||||
|
* break existing (wrongly written) libcurl applications, we leave it as-is |
||||||
|
* but with this warning attached. |
||||||
|
*/ |
||||||
|
#include "curl.h" |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
extern "C" { |
||||||
|
#endif |
||||||
|
|
||||||
|
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) |
||||||
|
typedef struct Curl_multi CURLM; |
||||||
|
#else |
||||||
|
typedef void CURLM; |
||||||
|
#endif |
||||||
|
|
||||||
|
typedef enum { |
||||||
|
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
|
||||||
|
curl_multi_socket*() soon */ |
||||||
|
CURLM_OK, |
||||||
|
CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ |
||||||
|
CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ |
||||||
|
CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ |
||||||
|
CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ |
||||||
|
CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ |
||||||
|
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ |
||||||
|
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
|
||||||
|
attempted to get added - again */ |
||||||
|
CURLM_LAST |
||||||
|
} CURLMcode; |
||||||
|
|
||||||
|
/* just to make code nicer when using curl_multi_socket() you can now check
|
||||||
|
for CURLM_CALL_MULTI_SOCKET too in the same style it works for |
||||||
|
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ |
||||||
|
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM |
||||||
|
|
||||||
|
/* bitmask bits for CURLMOPT_PIPELINING */ |
||||||
|
#define CURLPIPE_NOTHING 0L |
||||||
|
#define CURLPIPE_HTTP1 1L |
||||||
|
#define CURLPIPE_MULTIPLEX 2L |
||||||
|
|
||||||
|
typedef enum { |
||||||
|
CURLMSG_NONE, /* first, not used */ |
||||||
|
CURLMSG_DONE, /* This easy handle has completed. 'result' contains
|
||||||
|
the CURLcode of the transfer */ |
||||||
|
CURLMSG_LAST /* last, not used */ |
||||||
|
} CURLMSG; |
||||||
|
|
||||||
|
struct CURLMsg { |
||||||
|
CURLMSG msg; /* what this message means */ |
||||||
|
CURL *easy_handle; /* the handle it concerns */ |
||||||
|
union { |
||||||
|
void *whatever; /* message-specific data */ |
||||||
|
CURLcode result; /* return code for transfer */ |
||||||
|
} data; |
||||||
|
}; |
||||||
|
typedef struct CURLMsg CURLMsg; |
||||||
|
|
||||||
|
/* Based on poll(2) structure and values.
|
||||||
|
* We don't use pollfd and POLL* constants explicitly |
||||||
|
* to cover platforms without poll(). */ |
||||||
|
#define CURL_WAIT_POLLIN 0x0001 |
||||||
|
#define CURL_WAIT_POLLPRI 0x0002 |
||||||
|
#define CURL_WAIT_POLLOUT 0x0004 |
||||||
|
|
||||||
|
struct curl_waitfd { |
||||||
|
curl_socket_t fd; |
||||||
|
short events; |
||||||
|
short revents; /* not supported yet */ |
||||||
|
}; |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_init() |
||||||
|
* |
||||||
|
* Desc: inititalize multi-style curl usage |
||||||
|
* |
||||||
|
* Returns: a new CURLM handle to use in all 'curl_multi' functions. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLM *curl_multi_init(void); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_add_handle() |
||||||
|
* |
||||||
|
* Desc: add a standard curl handle to the multi stack |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, |
||||||
|
CURL *curl_handle); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_remove_handle() |
||||||
|
* |
||||||
|
* Desc: removes a curl handle from the multi stack again |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, |
||||||
|
CURL *curl_handle); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_fdset() |
||||||
|
* |
||||||
|
* Desc: Ask curl for its fd_set sets. The app can use these to select() or |
||||||
|
* poll() on. We want curl_multi_perform() called as soon as one of |
||||||
|
* them are ready. |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, |
||||||
|
fd_set *read_fd_set, |
||||||
|
fd_set *write_fd_set, |
||||||
|
fd_set *exc_fd_set, |
||||||
|
int *max_fd); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_wait() |
||||||
|
* |
||||||
|
* Desc: Poll on all fds within a CURLM set as well as any |
||||||
|
* additional fds passed to the function. |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, |
||||||
|
struct curl_waitfd extra_fds[], |
||||||
|
unsigned int extra_nfds, |
||||||
|
int timeout_ms, |
||||||
|
int *ret); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_perform() |
||||||
|
* |
||||||
|
* Desc: When the app thinks there's data available for curl it calls this |
||||||
|
* function to read/write whatever there is right now. This returns |
||||||
|
* as soon as the reads and writes are done. This function does not |
||||||
|
* require that there actually is data available for reading or that |
||||||
|
* data can be written, it can be called just in case. It returns |
||||||
|
* the number of handles that still transfer data in the second |
||||||
|
* argument's integer-pointer. |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. *NOTE* that this only |
||||||
|
* returns errors etc regarding the whole multi stack. There might |
||||||
|
* still have occurred problems on invidual transfers even when this |
||||||
|
* returns OK. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, |
||||||
|
int *running_handles); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_cleanup() |
||||||
|
* |
||||||
|
* Desc: Cleans up and removes a whole multi stack. It does not free or |
||||||
|
* touch any individual easy handles in any way. We need to define |
||||||
|
* in what state those handles will be if this function is called |
||||||
|
* in the middle of a transfer. |
||||||
|
* |
||||||
|
* Returns: CURLMcode type, general multi error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_info_read() |
||||||
|
* |
||||||
|
* Desc: Ask the multi handle if there's any messages/informationals from |
||||||
|
* the individual transfers. Messages include informationals such as |
||||||
|
* error code from the transfer or just the fact that a transfer is |
||||||
|
* completed. More details on these should be written down as well. |
||||||
|
* |
||||||
|
* Repeated calls to this function will return a new struct each |
||||||
|
* time, until a special "end of msgs" struct is returned as a signal |
||||||
|
* that there is no more to get at this point. |
||||||
|
* |
||||||
|
* The data the returned pointer points to will not survive calling |
||||||
|
* curl_multi_cleanup(). |
||||||
|
* |
||||||
|
* The 'CURLMsg' struct is meant to be very simple and only contain |
||||||
|
* very basic information. If more involved information is wanted, |
||||||
|
* we will provide the particular "transfer handle" in that struct |
||||||
|
* and that should/could/would be used in subsequent |
||||||
|
* curl_easy_getinfo() calls (or similar). The point being that we |
||||||
|
* must never expose complex structs to applications, as then we'll |
||||||
|
* undoubtably get backwards compatibility problems in the future. |
||||||
|
* |
||||||
|
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out |
||||||
|
* of structs. It also writes the number of messages left in the |
||||||
|
* queue (after this read) in the integer the second argument points |
||||||
|
* to. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, |
||||||
|
int *msgs_in_queue); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_strerror() |
||||||
|
* |
||||||
|
* Desc: The curl_multi_strerror function may be used to turn a CURLMcode |
||||||
|
* value into the equivalent human readable error string. This is |
||||||
|
* useful for printing meaningful error messages. |
||||||
|
* |
||||||
|
* Returns: A pointer to a zero-terminated error message. |
||||||
|
*/ |
||||||
|
CURL_EXTERN const char *curl_multi_strerror(CURLMcode); |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_socket() and |
||||||
|
* curl_multi_socket_all() |
||||||
|
* |
||||||
|
* Desc: An alternative version of curl_multi_perform() that allows the |
||||||
|
* application to pass in one of the file descriptors that have been |
||||||
|
* detected to have "action" on them and let libcurl perform. |
||||||
|
* See man page for details. |
||||||
|
*/ |
||||||
|
#define CURL_POLL_NONE 0 |
||||||
|
#define CURL_POLL_IN 1 |
||||||
|
#define CURL_POLL_OUT 2 |
||||||
|
#define CURL_POLL_INOUT 3 |
||||||
|
#define CURL_POLL_REMOVE 4 |
||||||
|
|
||||||
|
#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD |
||||||
|
|
||||||
|
#define CURL_CSELECT_IN 0x01 |
||||||
|
#define CURL_CSELECT_OUT 0x02 |
||||||
|
#define CURL_CSELECT_ERR 0x04 |
||||||
|
|
||||||
|
typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ |
||||||
|
curl_socket_t s, /* socket */ |
||||||
|
int what, /* see above */ |
||||||
|
void *userp, /* private callback
|
||||||
|
pointer */ |
||||||
|
void *socketp); /* private socket
|
||||||
|
pointer */ |
||||||
|
/*
|
||||||
|
* Name: curl_multi_timer_callback |
||||||
|
* |
||||||
|
* Desc: Called by libcurl whenever the library detects a change in the |
||||||
|
* maximum number of milliseconds the app is allowed to wait before |
||||||
|
* curl_multi_socket() or curl_multi_perform() must be called |
||||||
|
* (to allow libcurl's timed events to take place). |
||||||
|
* |
||||||
|
* Returns: The callback should return zero. |
||||||
|
*/ |
||||||
|
typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ |
||||||
|
long timeout_ms, /* see above */ |
||||||
|
void *userp); /* private callback
|
||||||
|
pointer */ |
||||||
|
|
||||||
|
CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, |
||||||
|
int *running_handles); |
||||||
|
|
||||||
|
CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, |
||||||
|
curl_socket_t s, |
||||||
|
int ev_bitmask, |
||||||
|
int *running_handles); |
||||||
|
|
||||||
|
CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, |
||||||
|
int *running_handles); |
||||||
|
|
||||||
|
#ifndef CURL_ALLOW_OLD_MULTI_SOCKET |
||||||
|
/* This macro below was added in 7.16.3 to push users who recompile to use
|
||||||
|
the new curl_multi_socket_action() instead of the old curl_multi_socket() |
||||||
|
*/ |
||||||
|
#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) |
||||||
|
#endif |
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_timeout() |
||||||
|
* |
||||||
|
* Desc: Returns the maximum number of milliseconds the app is allowed to |
||||||
|
* wait before curl_multi_socket() or curl_multi_perform() must be |
||||||
|
* called (to allow libcurl's timed events to take place). |
||||||
|
* |
||||||
|
* Returns: CURLM error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, |
||||||
|
long *milliseconds); |
||||||
|
|
||||||
|
#undef CINIT /* re-using the same name as in curl.h */ |
||||||
|
|
||||||
|
#ifdef CURL_ISOCPP |
||||||
|
#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num |
||||||
|
#else |
||||||
|
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ |
||||||
|
#define LONG CURLOPTTYPE_LONG |
||||||
|
#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT |
||||||
|
#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT |
||||||
|
#define OFF_T CURLOPTTYPE_OFF_T |
||||||
|
#define CINIT(name,type,number) CURLMOPT_/**/name = type + number |
||||||
|
#endif |
||||||
|
|
||||||
|
typedef enum { |
||||||
|
/* This is the socket callback function pointer */ |
||||||
|
CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), |
||||||
|
|
||||||
|
/* This is the argument passed to the socket callback */ |
||||||
|
CINIT(SOCKETDATA, OBJECTPOINT, 2), |
||||||
|
|
||||||
|
/* set to 1 to enable pipelining for this multi handle */ |
||||||
|
CINIT(PIPELINING, LONG, 3), |
||||||
|
|
||||||
|
/* This is the timer callback function pointer */ |
||||||
|
CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), |
||||||
|
|
||||||
|
/* This is the argument passed to the timer callback */ |
||||||
|
CINIT(TIMERDATA, OBJECTPOINT, 5), |
||||||
|
|
||||||
|
/* maximum number of entries in the connection cache */ |
||||||
|
CINIT(MAXCONNECTS, LONG, 6), |
||||||
|
|
||||||
|
/* maximum number of (pipelining) connections to one host */ |
||||||
|
CINIT(MAX_HOST_CONNECTIONS, LONG, 7), |
||||||
|
|
||||||
|
/* maximum number of requests in a pipeline */ |
||||||
|
CINIT(MAX_PIPELINE_LENGTH, LONG, 8), |
||||||
|
|
||||||
|
/* a connection with a content-length longer than this
|
||||||
|
will not be considered for pipelining */ |
||||||
|
CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), |
||||||
|
|
||||||
|
/* a connection with a chunk length longer than this
|
||||||
|
will not be considered for pipelining */ |
||||||
|
CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), |
||||||
|
|
||||||
|
/* a list of site names(+port) that are blacklisted from
|
||||||
|
pipelining */ |
||||||
|
CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), |
||||||
|
|
||||||
|
/* a list of server types that are blacklisted from
|
||||||
|
pipelining */ |
||||||
|
CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), |
||||||
|
|
||||||
|
/* maximum number of open connections in total */ |
||||||
|
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), |
||||||
|
|
||||||
|
/* This is the server push callback function pointer */ |
||||||
|
CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14), |
||||||
|
|
||||||
|
/* This is the argument passed to the server push callback */ |
||||||
|
CINIT(PUSHDATA, OBJECTPOINT, 15), |
||||||
|
|
||||||
|
CURLMOPT_LASTENTRY /* the last unused */ |
||||||
|
} CURLMoption; |
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_setopt() |
||||||
|
* |
||||||
|
* Desc: Sets options for the multi handle. |
||||||
|
* |
||||||
|
* Returns: CURLM error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, |
||||||
|
CURLMoption option, ...); |
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_multi_assign() |
||||||
|
* |
||||||
|
* Desc: This function sets an association in the multi handle between the |
||||||
|
* given socket and a private pointer of the application. This is |
||||||
|
* (only) useful for curl_multi_socket uses. |
||||||
|
* |
||||||
|
* Returns: CURLM error code. |
||||||
|
*/ |
||||||
|
CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, |
||||||
|
curl_socket_t sockfd, void *sockp); |
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name: curl_push_callback |
||||||
|
* |
||||||
|
* Desc: This callback gets called when a new stream is being pushed by the |
||||||
|
* server. It approves or denies the new stream. |
||||||
|
* |
||||||
|
* Returns: CURL_PUSH_OK or CURL_PUSH_DENY. |
||||||
|
*/ |
||||||
|
#define CURL_PUSH_OK 0 |
||||||
|
#define CURL_PUSH_DENY 1 |
||||||
|
|
||||||
|
struct curl_pushheaders; /* forward declaration only */ |
||||||
|
|
||||||
|
CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, |
||||||
|
size_t num); |
||||||
|
CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, |
||||||
|
const char *name); |
||||||
|
|
||||||
|
typedef int (*curl_push_callback)(CURL *parent, |
||||||
|
CURL *easy, |
||||||
|
size_t num_headers, |
||||||
|
struct curl_pushheaders *headers, |
||||||
|
void *userp); |
||||||
|
|
||||||
|
#ifdef __cplusplus |
||||||
|
} /* end of extern "C" */ |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,33 @@ |
|||||||
|
#ifndef __STDC_HEADERS_H |
||||||
|
#define __STDC_HEADERS_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
|
||||||
|
#include <sys/types.h> |
||||||
|
|
||||||
|
size_t fread(void *, size_t, size_t, FILE *); |
||||||
|
size_t fwrite(const void *, size_t, size_t, FILE *); |
||||||
|
|
||||||
|
int strcasecmp(const char *, const char *); |
||||||
|
int strncasecmp(const char *, const char *, size_t); |
||||||
|
|
||||||
|
#endif /* __STDC_HEADERS_H */ |
@ -0,0 +1,471 @@ |
|||||||
|
#ifndef __CURL_SYSTEM_H |
||||||
|
#define __CURL_SYSTEM_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Try to keep one section per platform, compiler and architecture, otherwise, |
||||||
|
* if an existing section is reused for a different one and later on the |
||||||
|
* original is adjusted, probably the piggybacking one can be adversely |
||||||
|
* changed. |
||||||
|
* |
||||||
|
* In order to differentiate between platforms/compilers/architectures use |
||||||
|
* only compiler built in predefined preprocessor symbols. |
||||||
|
* |
||||||
|
* curl_off_t |
||||||
|
* ---------- |
||||||
|
* |
||||||
|
* For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit |
||||||
|
* wide signed integral data type. The width of this data type must remain |
||||||
|
* constant and independent of any possible large file support settings. |
||||||
|
* |
||||||
|
* As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit |
||||||
|
* wide signed integral data type if there is no 64-bit type. |
||||||
|
* |
||||||
|
* As a general rule, curl_off_t shall not be mapped to off_t. This rule shall |
||||||
|
* only be violated if off_t is the only 64-bit data type available and the |
||||||
|
* size of off_t is independent of large file support settings. Keep your |
||||||
|
* build on the safe side avoiding an off_t gating. If you have a 64-bit |
||||||
|
* off_t then take for sure that another 64-bit data type exists, dig deeper |
||||||
|
* and you will find it. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#if defined(__DJGPP__) || defined(__GO32__) |
||||||
|
# if defined(__DJGPP__) && (__DJGPP__ > 1) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__SALFORDC__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__BORLANDC__) |
||||||
|
# if (__BORLANDC__ < 0x520) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__TURBOC__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__WATCOMC__) |
||||||
|
# if defined(__386__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__POCC__) |
||||||
|
# if (__POCC__ < 280) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# elif defined(_MSC_VER) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__LCC__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__SYMBIAN32__) |
||||||
|
# if defined(__EABI__) /* Treat all ARM compilers equally */ |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(__CW32__) |
||||||
|
# pragma longlong on |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(__VC32__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int |
||||||
|
|
||||||
|
#elif defined(__MWERKS__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(_WIN32_WCE) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__MINGW32__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_WS2TCPIP_H 1 |
||||||
|
|
||||||
|
#elif defined(__VMS) |
||||||
|
# if defined(__VAX) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int |
||||||
|
|
||||||
|
#elif defined(__OS400__) |
||||||
|
# if defined(__ILEC400__) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
# endif |
||||||
|
|
||||||
|
#elif defined(__MVS__) |
||||||
|
# if defined(__IBMC__) || defined(__IBMCPP__) |
||||||
|
# if defined(_ILP32) |
||||||
|
# elif defined(_LP64) |
||||||
|
# endif |
||||||
|
# if defined(_LONG_LONG) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(_LP64) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
# endif |
||||||
|
|
||||||
|
#elif defined(__370__) |
||||||
|
# if defined(__IBMC__) || defined(__IBMCPP__) |
||||||
|
# if defined(_ILP32) |
||||||
|
# elif defined(_LP64) |
||||||
|
# endif |
||||||
|
# if defined(_LONG_LONG) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(_LP64) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
# endif |
||||||
|
|
||||||
|
#elif defined(TPF) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
#elif defined(__TINYC__) /* also known as tcc */ |
||||||
|
|
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
|
||||||
|
#elif defined(__SUNPRO_C) /* Oracle Solaris Studio */ |
||||||
|
# if !defined(__LP64) && (defined(__ILP32) || \ |
||||||
|
defined(__i386) || defined(__sparcv8)) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(__LP64) || \ |
||||||
|
defined(__amd64) || defined(__sparcv9) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
|
||||||
|
/* ===================================== */ |
||||||
|
/* KEEP MSVC THE PENULTIMATE ENTRY */ |
||||||
|
/* ===================================== */ |
||||||
|
|
||||||
|
#elif defined(_MSC_VER) |
||||||
|
# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||||
|
# else |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
|
||||||
|
/* ===================================== */ |
||||||
|
/* KEEP GENERIC GCC THE LAST ENTRY */ |
||||||
|
/* ===================================== */ |
||||||
|
|
||||||
|
#elif defined(__GNUC__) |
||||||
|
# if !defined(__LP64__) && \ |
||||||
|
(defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ |
||||||
|
defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ |
||||||
|
defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ |
||||||
|
defined(__XTENSA__) || \ |
||||||
|
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4)) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T LL |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||||
|
# elif defined(__LP64__) || \ |
||||||
|
defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ |
||||||
|
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# endif |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||||
|
# define CURL_PULL_SYS_TYPES_H 1 |
||||||
|
# define CURL_PULL_SYS_SOCKET_H 1 |
||||||
|
|
||||||
|
#else |
||||||
|
/* generic "safe guess" on old 32 bit style */ |
||||||
|
# define CURL_TYPEOF_CURL_OFF_T long |
||||||
|
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||||
|
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||||
|
# define CURL_SUFFIX_CURL_OFF_T L |
||||||
|
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||||
|
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||||
|
#endif |
||||||
|
|
||||||
|
#ifdef _AIX |
||||||
|
/* AIX needs <sys/poll.h> */ |
||||||
|
#define CURL_PULL_SYS_POLL_H |
||||||
|
#endif |
||||||
|
|
||||||
|
|
||||||
|
/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ |
||||||
|
/* ws2tcpip.h is required here to properly make type definitions below. */ |
||||||
|
#ifdef CURL_PULL_WS2TCPIP_H |
||||||
|
# include <winsock2.h> |
||||||
|
# include <windows.h> |
||||||
|
# include <ws2tcpip.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ |
||||||
|
/* sys/types.h is required here to properly make type definitions below. */ |
||||||
|
#ifdef CURL_PULL_SYS_TYPES_H |
||||||
|
# include <sys/types.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ |
||||||
|
/* sys/socket.h is required here to properly make type definitions below. */ |
||||||
|
#ifdef CURL_PULL_SYS_SOCKET_H |
||||||
|
# include <sys/socket.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ |
||||||
|
/* sys/poll.h is required here to properly make type definitions below. */ |
||||||
|
#ifdef CURL_PULL_SYS_POLL_H |
||||||
|
# include <sys/poll.h> |
||||||
|
#endif |
||||||
|
|
||||||
|
/* Data type definition of curl_socklen_t. */ |
||||||
|
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T |
||||||
|
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; |
||||||
|
#endif |
||||||
|
|
||||||
|
/* Data type definition of curl_off_t. */ |
||||||
|
|
||||||
|
#ifdef CURL_TYPEOF_CURL_OFF_T |
||||||
|
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; |
||||||
|
#endif |
||||||
|
|
||||||
|
/*
|
||||||
|
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow |
||||||
|
* these to be visible and exported by the external libcurl interface API, |
||||||
|
* while also making them visible to the library internals, simply including |
||||||
|
* curl_setup.h, without actually needing to include curl.h internally. |
||||||
|
* If some day this section would grow big enough, all this should be moved |
||||||
|
* to its own header file. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Figure out if we can use the ## preprocessor operator, which is supported |
||||||
|
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ |
||||||
|
* or __cplusplus so we need to carefully check for them too. |
||||||
|
*/ |
||||||
|
|
||||||
|
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ |
||||||
|
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ |
||||||
|
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ |
||||||
|
defined(__ILEC400__) |
||||||
|
/* This compiler is believed to have an ISO compatible preprocessor */ |
||||||
|
#define CURL_ISOCPP |
||||||
|
#else |
||||||
|
/* This compiler is believed NOT to have an ISO compatible preprocessor */ |
||||||
|
#undef CURL_ISOCPP |
||||||
|
#endif |
||||||
|
|
||||||
|
/*
|
||||||
|
* Macros for minimum-width signed and unsigned curl_off_t integer constants. |
||||||
|
*/ |
||||||
|
|
||||||
|
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) |
||||||
|
# define __CURL_OFF_T_C_HLPR2(x) x |
||||||
|
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) |
||||||
|
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||||
|
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) |
||||||
|
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||||
|
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) |
||||||
|
#else |
||||||
|
# ifdef CURL_ISOCPP |
||||||
|
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix |
||||||
|
# else |
||||||
|
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix |
||||||
|
# endif |
||||||
|
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) |
||||||
|
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) |
||||||
|
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* __CURL_SYSTEM_H */ |
@ -0,0 +1,683 @@ |
|||||||
|
#ifndef __CURL_TYPECHECK_GCC_H |
||||||
|
#define __CURL_TYPECHECK_GCC_H |
||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _ |
||||||
|
* Project ___| | | | _ \| | |
||||||
|
* / __| | | | |_) | | |
||||||
|
* | (__| |_| | _ <| |___ |
||||||
|
* \___|\___/|_| \_\_____| |
||||||
|
* |
||||||
|
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||||
|
* |
||||||
|
* This software is licensed as described in the file COPYING, which |
||||||
|
* you should have received as part of this distribution. The terms |
||||||
|
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||||
|
* |
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||||
|
* copies of the Software, and permit persons to whom the Software is |
||||||
|
* furnished to do so, under the terms of the COPYING file. |
||||||
|
* |
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||||
|
* KIND, either express or implied. |
||||||
|
* |
||||||
|
***************************************************************************/ |
||||||
|
|
||||||
|
/* wraps curl_easy_setopt() with typechecking */ |
||||||
|
|
||||||
|
/* To add a new kind of warning, add an
|
||||||
|
* if(_curl_is_sometype_option(_curl_opt)) |
||||||
|
* if(!_curl_is_sometype(value)) |
||||||
|
* _curl_easy_setopt_err_sometype(); |
||||||
|
* block and define _curl_is_sometype_option, _curl_is_sometype and |
||||||
|
* _curl_easy_setopt_err_sometype below |
||||||
|
* |
||||||
|
* NOTE: We use two nested 'if' statements here instead of the && operator, in |
||||||
|
* order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x |
||||||
|
* when compiling with -Wlogical-op. |
||||||
|
* |
||||||
|
* To add an option that uses the same type as an existing option, you'll just |
||||||
|
* need to extend the appropriate _curl_*_option macro |
||||||
|
*/ |
||||||
|
#define curl_easy_setopt(handle, option, value) \ |
||||||
|
__extension__ ({ \ |
||||||
|
__typeof__(option) _curl_opt = option; \ |
||||||
|
if(__builtin_constant_p(_curl_opt)) { \ |
||||||
|
if(_curl_is_long_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_long(value)) \ |
||||||
|
_curl_easy_setopt_err_long(); \ |
||||||
|
if(_curl_is_off_t_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_off_t(value)) \ |
||||||
|
_curl_easy_setopt_err_curl_off_t(); \ |
||||||
|
if(_curl_is_string_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_string(value)) \ |
||||||
|
_curl_easy_setopt_err_string(); \ |
||||||
|
if(_curl_is_write_cb_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_write_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_write_callback(); \ |
||||||
|
if((_curl_opt) == CURLOPT_READFUNCTION) \ |
||||||
|
if(!_curl_is_read_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_read_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ |
||||||
|
if(!_curl_is_ioctl_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_ioctl_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ |
||||||
|
if(!_curl_is_sockopt_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_sockopt_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ |
||||||
|
if(!_curl_is_opensocket_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_opensocket_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ |
||||||
|
if(!_curl_is_progress_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_progress_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ |
||||||
|
if(!_curl_is_debug_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_debug_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ |
||||||
|
if(!_curl_is_ssl_ctx_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_ssl_ctx_cb(); \ |
||||||
|
if(_curl_is_conv_cb_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_conv_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_conv_cb(); \ |
||||||
|
if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ |
||||||
|
if(!_curl_is_seek_cb(value)) \ |
||||||
|
_curl_easy_setopt_err_seek_cb(); \ |
||||||
|
if(_curl_is_cb_data_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_cb_data(value)) \ |
||||||
|
_curl_easy_setopt_err_cb_data(); \ |
||||||
|
if((_curl_opt) == CURLOPT_ERRORBUFFER) \ |
||||||
|
if(!_curl_is_error_buffer(value)) \ |
||||||
|
_curl_easy_setopt_err_error_buffer(); \ |
||||||
|
if((_curl_opt) == CURLOPT_STDERR) \ |
||||||
|
if(!_curl_is_FILE(value)) \ |
||||||
|
_curl_easy_setopt_err_FILE(); \ |
||||||
|
if(_curl_is_postfields_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_postfields(value)) \ |
||||||
|
_curl_easy_setopt_err_postfields(); \ |
||||||
|
if((_curl_opt) == CURLOPT_HTTPPOST) \ |
||||||
|
if(!_curl_is_arr((value), struct curl_httppost)) \ |
||||||
|
_curl_easy_setopt_err_curl_httpost(); \ |
||||||
|
if((_curl_opt) == CURLOPT_MIMEPOST) \ |
||||||
|
if(!_curl_is_ptr((value), curl_mime)) \ |
||||||
|
_curl_easy_setopt_err_curl_mimepost(); \ |
||||||
|
if(_curl_is_slist_option(_curl_opt)) \ |
||||||
|
if(!_curl_is_arr((value), struct curl_slist)) \ |
||||||
|
_curl_easy_setopt_err_curl_slist(); \ |
||||||
|
if((_curl_opt) == CURLOPT_SHARE) \ |
||||||
|
if(!_curl_is_ptr((value), CURLSH)) \ |
||||||
|
_curl_easy_setopt_err_CURLSH(); \ |
||||||
|
} \ |
||||||
|
curl_easy_setopt(handle, _curl_opt, value); \ |
||||||
|
}) |
||||||
|
|
||||||
|
/* wraps curl_easy_getinfo() with typechecking */ |
||||||
|
/* FIXME: don't allow const pointers */ |
||||||
|
#define curl_easy_getinfo(handle, info, arg) \ |
||||||
|
__extension__ ({ \ |
||||||
|
__typeof__(info) _curl_info = info; \ |
||||||
|
if(__builtin_constant_p(_curl_info)) { \ |
||||||
|
if(_curl_is_string_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), char *)) \ |
||||||
|
_curl_easy_getinfo_err_string(); \ |
||||||
|
if(_curl_is_long_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), long)) \ |
||||||
|
_curl_easy_getinfo_err_long(); \ |
||||||
|
if(_curl_is_double_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), double)) \ |
||||||
|
_curl_easy_getinfo_err_double(); \ |
||||||
|
if(_curl_is_slist_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), struct curl_slist *)) \ |
||||||
|
_curl_easy_getinfo_err_curl_slist(); \ |
||||||
|
if(_curl_is_tlssessioninfo_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), struct curl_tlssessioninfo *)) \ |
||||||
|
_curl_easy_getinfo_err_curl_tlssesssioninfo(); \ |
||||||
|
if(_curl_is_certinfo_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), struct curl_certinfo *)) \ |
||||||
|
_curl_easy_getinfo_err_curl_certinfo(); \ |
||||||
|
if(_curl_is_socket_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), curl_socket_t)) \ |
||||||
|
_curl_easy_getinfo_err_curl_socket(); \ |
||||||
|
if(_curl_is_off_t_info(_curl_info)) \ |
||||||
|
if(!_curl_is_arr((arg), curl_off_t)) \ |
||||||
|
_curl_easy_getinfo_err_curl_off_t(); \ |
||||||
|
} \ |
||||||
|
curl_easy_getinfo(handle, _curl_info, arg); \ |
||||||
|
}) |
||||||
|
|
||||||
|
/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(),
|
||||||
|
* for now just make sure that the functions are called with three |
||||||
|
* arguments |
||||||
|
*/ |
||||||
|
#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) |
||||||
|
#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) |
||||||
|
|
||||||
|
|
||||||
|
/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
|
||||||
|
* functions */ |
||||||
|
|
||||||
|
/* To define a new warning, use _CURL_WARNING(identifier, "message") */ |
||||||
|
#define _CURL_WARNING(id, message) \ |
||||||
|
static void __attribute__((__warning__(message))) \ |
||||||
|
__attribute__((__unused__)) __attribute__((__noinline__)) \ |
||||||
|
id(void) { __asm__(""); } |
||||||
|
|
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_long, |
||||||
|
"curl_easy_setopt expects a long argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, |
||||||
|
"curl_easy_setopt expects a curl_off_t argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_string, |
||||||
|
"curl_easy_setopt expects a " |
||||||
|
"string ('char *' or char[]) argument for this option" |
||||||
|
) |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_write_callback, |
||||||
|
"curl_easy_setopt expects a curl_write_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_read_cb, |
||||||
|
"curl_easy_setopt expects a curl_read_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, |
||||||
|
"curl_easy_setopt expects a curl_ioctl_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, |
||||||
|
"curl_easy_setopt expects a curl_sockopt_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, |
||||||
|
"curl_easy_setopt expects a " |
||||||
|
"curl_opensocket_callback argument for this option" |
||||||
|
) |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_progress_cb, |
||||||
|
"curl_easy_setopt expects a curl_progress_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_debug_cb, |
||||||
|
"curl_easy_setopt expects a curl_debug_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, |
||||||
|
"curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_conv_cb, |
||||||
|
"curl_easy_setopt expects a curl_conv_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_seek_cb, |
||||||
|
"curl_easy_setopt expects a curl_seek_callback argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_cb_data, |
||||||
|
"curl_easy_setopt expects a " |
||||||
|
"private data pointer as argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_error_buffer, |
||||||
|
"curl_easy_setopt expects a " |
||||||
|
"char buffer of CURL_ERROR_SIZE as argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_FILE, |
||||||
|
"curl_easy_setopt expects a 'FILE *' argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_postfields, |
||||||
|
"curl_easy_setopt expects a 'void *' or 'char *' argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, |
||||||
|
"curl_easy_setopt expects a 'struct curl_httppost *' " |
||||||
|
"argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_mimepost, |
||||||
|
"curl_easy_setopt expects a 'curl_mime *' " |
||||||
|
"argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_slist, |
||||||
|
"curl_easy_setopt expects a 'struct curl_slist *' argument for this option") |
||||||
|
_CURL_WARNING(_curl_easy_setopt_err_CURLSH, |
||||||
|
"curl_easy_setopt expects a CURLSH* argument for this option") |
||||||
|
|
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_string, |
||||||
|
"curl_easy_getinfo expects a pointer to 'char *' for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_long, |
||||||
|
"curl_easy_getinfo expects a pointer to long for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_double, |
||||||
|
"curl_easy_getinfo expects a pointer to double for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, |
||||||
|
"curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, |
||||||
|
"curl_easy_getinfo expects a pointer to " |
||||||
|
"'struct curl_tlssessioninfo *' for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_certinfo, |
||||||
|
"curl_easy_getinfo expects a pointer to " |
||||||
|
"'struct curl_certinfo *' for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_socket, |
||||||
|
"curl_easy_getinfo expects a pointer to curl_socket_t for this info") |
||||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, |
||||||
|
"curl_easy_getinfo expects a pointer to curl_off_t for this info") |
||||||
|
|
||||||
|
/* groups of curl_easy_setops options that take the same type of argument */ |
||||||
|
|
||||||
|
/* To add a new option to one of the groups, just add
|
||||||
|
* (option) == CURLOPT_SOMETHING |
||||||
|
* to the or-expression. If the option takes a long or curl_off_t, you don't |
||||||
|
* have to do anything |
||||||
|
*/ |
||||||
|
|
||||||
|
/* evaluates to true if option takes a long argument */ |
||||||
|
#define _curl_is_long_option(option) \ |
||||||
|
(0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) |
||||||
|
|
||||||
|
#define _curl_is_off_t_option(option) \ |
||||||
|
((option) > CURLOPTTYPE_OFF_T) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a char* argument */ |
||||||
|
#define _curl_is_string_option(option) \ |
||||||
|
((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ |
||||||
|
(option) == CURLOPT_ACCEPT_ENCODING || \ |
||||||
|
(option) == CURLOPT_CAINFO || \ |
||||||
|
(option) == CURLOPT_CAPATH || \ |
||||||
|
(option) == CURLOPT_COOKIE || \ |
||||||
|
(option) == CURLOPT_COOKIEFILE || \ |
||||||
|
(option) == CURLOPT_COOKIEJAR || \ |
||||||
|
(option) == CURLOPT_COOKIELIST || \ |
||||||
|
(option) == CURLOPT_CRLFILE || \ |
||||||
|
(option) == CURLOPT_CUSTOMREQUEST || \ |
||||||
|
(option) == CURLOPT_DEFAULT_PROTOCOL || \ |
||||||
|
(option) == CURLOPT_DNS_INTERFACE || \ |
||||||
|
(option) == CURLOPT_DNS_LOCAL_IP4 || \ |
||||||
|
(option) == CURLOPT_DNS_LOCAL_IP6 || \ |
||||||
|
(option) == CURLOPT_DNS_SERVERS || \ |
||||||
|
(option) == CURLOPT_EGDSOCKET || \ |
||||||
|
(option) == CURLOPT_FTPPORT || \ |
||||||
|
(option) == CURLOPT_FTP_ACCOUNT || \ |
||||||
|
(option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ |
||||||
|
(option) == CURLOPT_INTERFACE || \ |
||||||
|
(option) == CURLOPT_ISSUERCERT || \ |
||||||
|
(option) == CURLOPT_KEYPASSWD || \ |
||||||
|
(option) == CURLOPT_KRBLEVEL || \ |
||||||
|
(option) == CURLOPT_LOGIN_OPTIONS || \ |
||||||
|
(option) == CURLOPT_MAIL_AUTH || \ |
||||||
|
(option) == CURLOPT_MAIL_FROM || \ |
||||||
|
(option) == CURLOPT_NETRC_FILE || \ |
||||||
|
(option) == CURLOPT_NOPROXY || \ |
||||||
|
(option) == CURLOPT_PASSWORD || \ |
||||||
|
(option) == CURLOPT_PINNEDPUBLICKEY || \ |
||||||
|
(option) == CURLOPT_PRE_PROXY || \ |
||||||
|
(option) == CURLOPT_PROXY || \ |
||||||
|
(option) == CURLOPT_PROXYPASSWORD || \ |
||||||
|
(option) == CURLOPT_PROXYUSERNAME || \ |
||||||
|
(option) == CURLOPT_PROXYUSERPWD || \ |
||||||
|
(option) == CURLOPT_PROXY_CAINFO || \ |
||||||
|
(option) == CURLOPT_PROXY_CAPATH || \ |
||||||
|
(option) == CURLOPT_PROXY_CRLFILE || \ |
||||||
|
(option) == CURLOPT_PROXY_KEYPASSWD || \ |
||||||
|
(option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ |
||||||
|
(option) == CURLOPT_PROXY_SERVICE_NAME || \ |
||||||
|
(option) == CURLOPT_PROXY_SSLCERT || \ |
||||||
|
(option) == CURLOPT_PROXY_SSLCERTTYPE || \ |
||||||
|
(option) == CURLOPT_PROXY_SSLKEY || \ |
||||||
|
(option) == CURLOPT_PROXY_SSLKEYTYPE || \ |
||||||
|
(option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ |
||||||
|
(option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ |
||||||
|
(option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ |
||||||
|
(option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ |
||||||
|
(option) == CURLOPT_RANDOM_FILE || \ |
||||||
|
(option) == CURLOPT_RANGE || \ |
||||||
|
(option) == CURLOPT_REFERER || \ |
||||||
|
(option) == CURLOPT_RTSP_SESSION_ID || \ |
||||||
|
(option) == CURLOPT_RTSP_STREAM_URI || \ |
||||||
|
(option) == CURLOPT_RTSP_TRANSPORT || \ |
||||||
|
(option) == CURLOPT_SERVICE_NAME || \ |
||||||
|
(option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ |
||||||
|
(option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ |
||||||
|
(option) == CURLOPT_SSH_KNOWNHOSTS || \ |
||||||
|
(option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ |
||||||
|
(option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ |
||||||
|
(option) == CURLOPT_SSLCERT || \ |
||||||
|
(option) == CURLOPT_SSLCERTTYPE || \ |
||||||
|
(option) == CURLOPT_SSLENGINE || \ |
||||||
|
(option) == CURLOPT_SSLKEY || \ |
||||||
|
(option) == CURLOPT_SSLKEYTYPE || \ |
||||||
|
(option) == CURLOPT_SSL_CIPHER_LIST || \ |
||||||
|
(option) == CURLOPT_TLSAUTH_PASSWORD || \ |
||||||
|
(option) == CURLOPT_TLSAUTH_TYPE || \ |
||||||
|
(option) == CURLOPT_TLSAUTH_USERNAME || \ |
||||||
|
(option) == CURLOPT_UNIX_SOCKET_PATH || \ |
||||||
|
(option) == CURLOPT_URL || \ |
||||||
|
(option) == CURLOPT_USERAGENT || \ |
||||||
|
(option) == CURLOPT_USERNAME || \ |
||||||
|
(option) == CURLOPT_USERPWD || \ |
||||||
|
(option) == CURLOPT_XOAUTH2_BEARER || \ |
||||||
|
0) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a curl_write_callback argument */ |
||||||
|
#define _curl_is_write_cb_option(option) \ |
||||||
|
((option) == CURLOPT_HEADERFUNCTION || \ |
||||||
|
(option) == CURLOPT_WRITEFUNCTION) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a curl_conv_callback argument */ |
||||||
|
#define _curl_is_conv_cb_option(option) \ |
||||||
|
((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ |
||||||
|
(option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ |
||||||
|
(option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a data argument to pass to a callback */ |
||||||
|
#define _curl_is_cb_data_option(option) \ |
||||||
|
((option) == CURLOPT_CHUNK_DATA || \ |
||||||
|
(option) == CURLOPT_CLOSESOCKETDATA || \ |
||||||
|
(option) == CURLOPT_DEBUGDATA || \ |
||||||
|
(option) == CURLOPT_FNMATCH_DATA || \ |
||||||
|
(option) == CURLOPT_HEADERDATA || \ |
||||||
|
(option) == CURLOPT_INTERLEAVEDATA || \ |
||||||
|
(option) == CURLOPT_IOCTLDATA || \ |
||||||
|
(option) == CURLOPT_OPENSOCKETDATA || \ |
||||||
|
(option) == CURLOPT_PRIVATE || \ |
||||||
|
(option) == CURLOPT_PROGRESSDATA || \ |
||||||
|
(option) == CURLOPT_READDATA || \ |
||||||
|
(option) == CURLOPT_SEEKDATA || \ |
||||||
|
(option) == CURLOPT_SOCKOPTDATA || \ |
||||||
|
(option) == CURLOPT_SSH_KEYDATA || \ |
||||||
|
(option) == CURLOPT_SSL_CTX_DATA || \ |
||||||
|
(option) == CURLOPT_WRITEDATA || \ |
||||||
|
0) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a POST data argument (void* or char*) */ |
||||||
|
#define _curl_is_postfields_option(option) \ |
||||||
|
((option) == CURLOPT_POSTFIELDS || \ |
||||||
|
(option) == CURLOPT_COPYPOSTFIELDS || \ |
||||||
|
0) |
||||||
|
|
||||||
|
/* evaluates to true if option takes a struct curl_slist * argument */ |
||||||
|
#define _curl_is_slist_option(option) \ |
||||||
|
((option) == CURLOPT_HTTP200ALIASES || \ |
||||||
|
(option) == CURLOPT_HTTPHEADER || \ |
||||||
|
(option) == CURLOPT_MAIL_RCPT || \ |
||||||
|
(option) == CURLOPT_POSTQUOTE || \ |
||||||
|
(option) == CURLOPT_PREQUOTE || \ |
||||||
|
(option) == CURLOPT_PROXYHEADER || \ |
||||||
|
(option) == CURLOPT_QUOTE || \ |
||||||
|
(option) == CURLOPT_RESOLVE || \ |
||||||
|
(option) == CURLOPT_TELNETOPTIONS || \ |
||||||
|
0) |
||||||
|
|
||||||
|
/* groups of curl_easy_getinfo infos that take the same type of argument */ |
||||||
|
|
||||||
|
/* evaluates to true if info expects a pointer to char * argument */ |
||||||
|
#define _curl_is_string_info(info) \ |
||||||
|
(CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) |
||||||
|
|
||||||
|
/* evaluates to true if info expects a pointer to long argument */ |
||||||
|
#define _curl_is_long_info(info) \ |
||||||
|
(CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) |
||||||
|
|
||||||
|
/* evaluates to true if info expects a pointer to double argument */ |
||||||
|
#define _curl_is_double_info(info) \ |
||||||
|
(CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) |
||||||
|
|
||||||
|
/* true if info expects a pointer to struct curl_slist * argument */ |
||||||
|
#define _curl_is_slist_info(info) \ |
||||||
|
(((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) |
||||||
|
|
||||||
|
/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ |
||||||
|
#define _curl_is_tlssessioninfo_info(info) \ |
||||||
|
(((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) |
||||||
|
|
||||||
|
/* true if info expects a pointer to struct curl_certinfo * argument */ |
||||||
|
#define _curl_is_certinfo_info(info) ((info) == CURLINFO_CERTINFO) |
||||||
|
|
||||||
|
/* true if info expects a pointer to struct curl_socket_t argument */ |
||||||
|
#define _curl_is_socket_info(info) \ |
||||||
|
(CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) |
||||||
|
|
||||||
|
/* true if info expects a pointer to curl_off_t argument */ |
||||||
|
#define _curl_is_off_t_info(info) \ |
||||||
|
(CURLINFO_OFF_T < (info)) |
||||||
|
|
||||||
|
|
||||||
|
/* typecheck helpers -- check whether given expression has requested type*/ |
||||||
|
|
||||||
|
/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros,
|
||||||
|
* otherwise define a new macro. Search for __builtin_types_compatible_p |
||||||
|
* in the GCC manual. |
||||||
|
* NOTE: these macros MUST NOT EVALUATE their arguments! The argument is |
||||||
|
* the actual expression passed to the curl_easy_setopt macro. This |
||||||
|
* means that you can only apply the sizeof and __typeof__ operators, no |
||||||
|
* == or whatsoever. |
||||||
|
*/ |
||||||
|
|
||||||
|
/* XXX: should evaluate to true iff expr is a pointer */ |
||||||
|
#define _curl_is_any_ptr(expr) \ |
||||||
|
(sizeof(expr) == sizeof(void *)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is NULL */ |
||||||
|
/* XXX: must not evaluate expr, so this check is not accurate */ |
||||||
|
#define _curl_is_NULL(expr) \ |
||||||
|
(__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) |
||||||
|
|
||||||
|
/* evaluates to true if expr is type*, const type* or NULL */ |
||||||
|
#define _curl_is_ptr(expr, type) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), type *) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), const type *)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is one of type[], type*, NULL or const type* */ |
||||||
|
#define _curl_is_arr(expr, type) \ |
||||||
|
(_curl_is_ptr((expr), type) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), type [])) |
||||||
|
|
||||||
|
/* evaluates to true if expr is a string */ |
||||||
|
#define _curl_is_string(expr) \ |
||||||
|
(_curl_is_arr((expr), char) || \ |
||||||
|
_curl_is_arr((expr), signed char) || \ |
||||||
|
_curl_is_arr((expr), unsigned char)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is a long (no matter the signedness)
|
||||||
|
* XXX: for now, int is also accepted (and therefore short and char, which |
||||||
|
* are promoted to int when passed to a variadic function) */ |
||||||
|
#define _curl_is_long(expr) \ |
||||||
|
(__builtin_types_compatible_p(__typeof__(expr), long) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), signed long) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), int) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), signed int) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), short) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), signed short) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), char) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), signed char) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned char)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_off_t */ |
||||||
|
#define _curl_is_off_t(expr) \ |
||||||
|
(__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ |
||||||
|
/* XXX: also check size of an char[] array? */ |
||||||
|
#define _curl_is_error_buffer(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), char *) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(expr), char[])) |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type (const) void* or (const) FILE* */ |
||||||
|
#if 0 |
||||||
|
#define _curl_is_cb_data(expr) \ |
||||||
|
(_curl_is_ptr((expr), void) || \ |
||||||
|
_curl_is_ptr((expr), FILE)) |
||||||
|
#else /* be less strict */ |
||||||
|
#define _curl_is_cb_data(expr) \ |
||||||
|
_curl_is_any_ptr(expr) |
||||||
|
#endif |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type FILE* */ |
||||||
|
#define _curl_is_FILE(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
(__builtin_types_compatible_p(__typeof__(expr), FILE *))) |
||||||
|
|
||||||
|
/* evaluates to true if expr can be passed as POST data (void* or char*) */ |
||||||
|
#define _curl_is_postfields(expr) \ |
||||||
|
(_curl_is_ptr((expr), void) || \ |
||||||
|
_curl_is_arr((expr), char)) |
||||||
|
|
||||||
|
/* FIXME: the whole callback checking is messy...
|
||||||
|
* The idea is to tolerate char vs. void and const vs. not const |
||||||
|
* pointers in arguments at least |
||||||
|
*/ |
||||||
|
/* helper: __builtin_types_compatible_p distinguishes between functions and
|
||||||
|
* function pointers, hide it */ |
||||||
|
#define _curl_callback_compatible(func, type) \ |
||||||
|
(__builtin_types_compatible_p(__typeof__(func), type) || \ |
||||||
|
__builtin_types_compatible_p(__typeof__(func) *, type)) |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_read_callback or "similar" */ |
||||||
|
#define _curl_is_read_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), __typeof__(fread) *) || \ |
||||||
|
_curl_callback_compatible((expr), curl_read_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback4) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback5) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_read_callback6)) |
||||||
|
typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); |
||||||
|
typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); |
||||||
|
typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); |
||||||
|
typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); |
||||||
|
typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); |
||||||
|
typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_write_callback or "similar" */ |
||||||
|
#define _curl_is_write_cb(expr) \ |
||||||
|
(_curl_is_read_cb(expr) || \ |
||||||
|
_curl_callback_compatible((expr), __typeof__(fwrite) *) || \ |
||||||
|
_curl_callback_compatible((expr), curl_write_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback4) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback5) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_write_callback6)) |
||||||
|
typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); |
||||||
|
typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, |
||||||
|
const void *); |
||||||
|
typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); |
||||||
|
typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); |
||||||
|
typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, |
||||||
|
const void *); |
||||||
|
typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ |
||||||
|
#define _curl_is_ioctl_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_ioctl_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback4)) |
||||||
|
typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); |
||||||
|
typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); |
||||||
|
typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); |
||||||
|
typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ |
||||||
|
#define _curl_is_sockopt_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_sockopt_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_sockopt_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_sockopt_callback2)) |
||||||
|
typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); |
||||||
|
typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, |
||||||
|
curlsocktype); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_opensocket_callback or
|
||||||
|
"similar" */ |
||||||
|
#define _curl_is_opensocket_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_opensocket_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback4)) |
||||||
|
typedef curl_socket_t (*_curl_opensocket_callback1) |
||||||
|
(void *, curlsocktype, struct curl_sockaddr *); |
||||||
|
typedef curl_socket_t (*_curl_opensocket_callback2) |
||||||
|
(void *, curlsocktype, const struct curl_sockaddr *); |
||||||
|
typedef curl_socket_t (*_curl_opensocket_callback3) |
||||||
|
(const void *, curlsocktype, struct curl_sockaddr *); |
||||||
|
typedef curl_socket_t (*_curl_opensocket_callback4) |
||||||
|
(const void *, curlsocktype, const struct curl_sockaddr *); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_progress_callback or "similar" */ |
||||||
|
#define _curl_is_progress_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_progress_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_progress_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_progress_callback2)) |
||||||
|
typedef int (*_curl_progress_callback1)(void *, |
||||||
|
double, double, double, double); |
||||||
|
typedef int (*_curl_progress_callback2)(const void *, |
||||||
|
double, double, double, double); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_debug_callback or "similar" */ |
||||||
|
#define _curl_is_debug_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_debug_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback4) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback5) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback6) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback7) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_debug_callback8)) |
||||||
|
typedef int (*_curl_debug_callback1) (CURL *, |
||||||
|
curl_infotype, char *, size_t, void *); |
||||||
|
typedef int (*_curl_debug_callback2) (CURL *, |
||||||
|
curl_infotype, char *, size_t, const void *); |
||||||
|
typedef int (*_curl_debug_callback3) (CURL *, |
||||||
|
curl_infotype, const char *, size_t, void *); |
||||||
|
typedef int (*_curl_debug_callback4) (CURL *, |
||||||
|
curl_infotype, const char *, size_t, const void *); |
||||||
|
typedef int (*_curl_debug_callback5) (CURL *, |
||||||
|
curl_infotype, unsigned char *, size_t, void *); |
||||||
|
typedef int (*_curl_debug_callback6) (CURL *, |
||||||
|
curl_infotype, unsigned char *, size_t, const void *); |
||||||
|
typedef int (*_curl_debug_callback7) (CURL *, |
||||||
|
curl_infotype, const unsigned char *, size_t, void *); |
||||||
|
typedef int (*_curl_debug_callback8) (CURL *, |
||||||
|
curl_infotype, const unsigned char *, size_t, const void *); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ |
||||||
|
/* this is getting even messier... */ |
||||||
|
#define _curl_is_ssl_ctx_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_ssl_ctx_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, |
||||||
|
const void *); |
||||||
|
#ifdef HEADER_SSL_H |
||||||
|
/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
|
||||||
|
* this will of course break if we're included before OpenSSL headers... |
||||||
|
*/ |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); |
||||||
|
typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, |
||||||
|
const void *); |
||||||
|
#else |
||||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; |
||||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; |
||||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; |
||||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; |
||||||
|
#endif |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_conv_callback or "similar" */ |
||||||
|
#define _curl_is_conv_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_conv_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_conv_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_conv_callback2) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_conv_callback3) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_conv_callback4)) |
||||||
|
typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); |
||||||
|
typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); |
||||||
|
typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); |
||||||
|
typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); |
||||||
|
|
||||||
|
/* evaluates to true if expr is of type curl_seek_callback or "similar" */ |
||||||
|
#define _curl_is_seek_cb(expr) \ |
||||||
|
(_curl_is_NULL(expr) || \ |
||||||
|
_curl_callback_compatible((expr), curl_seek_callback) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_seek_callback1) || \ |
||||||
|
_curl_callback_compatible((expr), _curl_seek_callback2)) |
||||||
|
typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); |
||||||
|
typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); |
||||||
|
|
||||||
|
|
||||||
|
#endif /* __CURL_TYPECHECK_GCC_H */ |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue