If you have encountered the error message “cURL is not an internal or external command” while using the command prompt or terminal, don’t worry. This error typically occurs when your operating system does not recognize the cURL program or is not installed correctly. In this step-by-step guide, we will walk you through the process of resolving this error.
Table of Contents
- Introduction
- Checking the cURL Installation
- Adding cURL to System Path
- Verifying the Installation
- Conclusion
- Frequently Asked Questions
- What does the error «cURL is not an internal or external command» mean?
- Why am I seeing the «cURL is not an internal or external command» error?
- How can I check if cURL is installed on my system?
- How can I fix the «cURL is not an internal or external command» error?
- What should I do after adding cURL to the system’s PATH?
- What if I still experience issues with cURL after following the steps?
Introduction Introduction
cURL is a powerful command-line tool used for transferring data using various protocols. It is widely used in web development, API testing, and other network-related tasks. However, if you see the “cURL is not an internal or external command” error, it means the system cannot locate the cURL executable.
Top ↑
Checking the cURL Installation Checking the cURL Installation
Before proceeding with any fixes, let’s first check if cURL is installed on your system. Open your command prompt or terminal and type the following command:
curl --version
If cURL is installed, you should see the version information displayed. If not, you need to install cURL on your system.
Top ↑
Adding cURL to System Path Adding cURL to System Path
To fix the “cURL is not an internal or external command” error, you may need to add the cURL executable to your system’s PATH environment variable. Here’s how to do it:
- Locate the directory where cURL is installed. This is typically in
C:\Program Files\curl
on Windows or/usr/bin/curl
Unix-based systems. - Copy the path to the cURL directory.
- Open the System Properties window on your computer. This can usually be done by right-clicking on “Computer” or “This PC” and selecting “Properties,” or by searching for “System” in the Start menu.
- Click on the “Advanced system settings” or “Advanced” tab.
- Click on the “Environment Variables” button.
- In the “System variables” section, scroll down and find the “Path” variable.
- Select the “Path” variable and click on the “Edit” button.
- Click on the “New” button and paste the path to the cURL directory that you copied earlier.
- Click “OK” to save the changes.
Top ↑
Verifying the Installation Verifying the Installation
To ensure that cURL is now recognized as an internal or external command, you can close and reopen your command prompt or terminal and type the following command:
curl --version
If everything was set up correctly, you should now see the version information for cURL without encountering the “not an internal or external command” error.
Top ↑
Conclusion Conclusion
Following these steps, you should be able to fix the “cURL is not an internal or external command” error and use cURL seamlessly in your command prompt or terminal. Remember to double-check the cURL installation and ensure it is added to the system’s PATH environment variable.
If you continue to experience issues with cURL, please consult the official cURL documentation or seek further assistance from the community. Happy coding!
Top ↑
Frequently Asked Questions Frequently Asked Questions
Here are some frequently asked questions regarding the “cURL is not an internal or external command” error:
What does the error “cURL is not an internal or external command” mean? What does the error “cURL is not an internal or external command” mean?
This error message typically occurs when the system cannot locate the cURL executable. It suggests that the cURL program is either not installed on the system or not recognized by the operating system.
Top ↑
Why am I seeing the “cURL is not an internal or external command” error? Why am I seeing the “cURL is not an internal or external command” error?
There are several possible reasons for this error:
1. cURL is not installed on your system.
2. The cURL executable is not added to the system’s PATH environment variable.
3. The cURL installation is corrupted or incomplete.
Top ↑
How can I check if cURL is installed on my system? How can I check if cURL is installed on my system?
To check if cURL is installed on your system, open your command prompt or terminal and type the following command:
curl --version
If cURL is installed, you should see the version information displayed. If not, you need to install cURL on your system.
Top ↑
How can I fix the “cURL is not an internal or external command” error? How can I fix the “cURL is not an internal or external command” error?
To fix this error, you may need to add the cURL executable to your system’s PATH environment variable.
Follow these steps:
1. Locate the directory where cURL is installed.
2. Copy the path to the cURL directory.
3. Open the System Properties window on your computer.
4. Click on the “Advanced system settings” or “Advanced” tab.
5. Click on the “Environment Variables” button.
6. In the “System variables” section, find the “Path” variable.
7. Select the “Path” variable and click on the “Edit” button.
8. Click on the “New” button and paste the path to the cURL directory.
9. Click “OK” to save the changes.
Top ↑
What should I do after adding cURL to the system’s PATH? What should I do after adding cURL to the system’s PATH?
After adding cURL to the system’s PATH, you should close and reopen your command prompt or terminal. Then, verify the installation by typing the following command:
curl --version
If everything was set up correctly, you should now see the version information for cURL without encountering the “not an internal or external command” error.
Top ↑
What if I still experience issues with cURL after following the steps? What if I still experience issues with cURL after following the steps?
If you continue to experience issues with cURL, it is recommended to consult the official cURL documentation or seek further assistance from the community. They can provide more specific troubleshooting steps based on your system configuration.
Remember, please refer to the official documentation or community support if you need further assistance.
Skip to content
Navigation Menu
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Description
I update the latest version of cmder. And the ‘curl’ command is not working.
OS: window10 16299.19
cmder version: v1.3.4
When I use Git Bash, the command is working as usual.
Metadata
Metadata
Development
No branches or pull requests
Issue actions
-
Главная
Список форумов
Модули и инструменты
-
Поиск
-
- Текущее время: 06 май 2025, 13:06
- Часовой пояс: UTC+03:00
Информация: Конференция переехала на GitHub. Старый форум доступен только для чтения.
-
MagTemTenebrius
- Сообщения: 1
- Зарегистрирован: 08 ноя 2017, 14:08
Curl
Доброго времени суток, хочу скачать несколько файлов через консоль с помощью команды curl. Но ругается, говорит
$ curl -s https://... | sh "curl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Apache-2.4
php-5.5
В php.ini
extension=php_curl.dll
Не закоментированно
-
eandr-67
- Сообщения: 69
- Зарегистрирован: 12 фев 2015, 22:17
Re: Curl
Сообщение
eandr-67 »
Ну так в PHP — свой модуль cURL. А в консоли — своё приложение cURL. И, разумеется, в Open Server этого приложения нет. Но что мешает скачать cURL для Windows на официальном сайте этой программы?
Содержание
- Как решить проблемы с Curl на Windows
- Проблема с Curl на Windows: как исправить и заставить работать
- Что такое Curl и зачем он нужен на Windows?
- Причины, по которым Curl может не работать на Windows
- Как установить Curl на Windows
- Устранение проблем с Curl на Windows
- Решение проблемы с неработающим Curl на Windows: проверьте версию и настройки
- Проверка подключения и наличия необходимых компонентов для работы Curl на Windows
- Дополнительные советы по использованию Curl на Windows
Как решить проблемы с Curl на Windows
В наше время, многие разработчики и системные администраторы сталкиваются с проблемой, когда у них не работает curl на Windows. Curl – это мощный инструмент командной строки, который позволяет отправлять и получать данные через URL-адреса с использованием различных протоколов, таких как HTTP, HTTPS, FTP и других.
Однако, когда вы пытаетесь использовать curl на Windows, вы можете столкнуться с разными ошибками или просто ничего не происходит. Это может быть вызвано несколькими причинами, и в этой статье мы рассмотрим некоторые из них, а также предложим возможные решения.
Одной из основных причин, почему curl может не работать на Windows, является отсутствие правильной установки или настройки curl. Необходимо проверить, что curl был установлен правильно и добавлен в системную переменную PATH. Если curl не добавлен в PATH, то командная строка не сможет найти его и, следовательно, не сможет его запустить.
Еще одним возможным фактором, препятствующим работе curl на Windows, является наличие блокировок файрволом или антивирусной программой. Часто безопасность виндовс-системы мешает curl выполнять запросы через сеть. В таком случае, вам необходимо проверить настройки файрвола или временно отключить антивирусную программу, чтобы убедиться, что curl может нормально функционировать.
Также, проблемы с curl на Windows могут возникнуть из-за отсутствия необходимых SSL-библиотек, которые необходимы для работы с HTTPS-протоколом. В этом случае вам необходимо убедиться, что система имеет все необходимые библиотеки и они находятся в правильном расположении.
Проблема с Curl на Windows: как исправить и заставить работать
Одной из наиболее распространенных причин, почему Curl может не работать на Windows, является отсутствие переменной среды или неправильная настройка пути к исполняемому файлу в переменной среды PATH. Для исправления этой проблемы, вам нужно добавить путь к исполняемому файлу Curl в переменную среды PATH. Для этого следуйте следующим шагам:
- Откройте Панель управления и найдите «Система».
- В разделе «Дополнительные параметры системы» выберите «Переменные среды».
- В разделе «Системные переменные» найдите переменную PATH и нажмите на кнопку «Изменить».
- В окне «Изменение системной переменной» нажмите на кнопку «Создать».
- Введите путь к исполняемому файлу Curl (например, C:\curl\bin) и нажмите «ОК».
- Убедитесь, что путь к исполняемому файлу Curl добавлен в список путей в переменной PATH.
После выполнения этих шагов, Curl должен работать на вашей системе Windows без проблем. Если проблемы со значением переменной среды PATH продолжаются, попробуйте перезагрузить компьютер после внесения изменений. Если это не решает проблему, проверьте, правильно ли установлен Curl на вашей системе и обновите его до последней версии, если это необходимо.
Что такое Curl и зачем он нужен на Windows?
Curl – это утилита командной строки, которая позволяет отправлять и получать данные через различные протоколы, такие как HTTP, FTP, SMTP и другие. Она была разработана для работы в Unix-подобных операционных системах, но также может быть использована на Windows. Curl предоставляет мощный функционал для автоматизированного взаимодействия с веб-серверами и другими ресурсами сети.
Зачем нужен Curl на Windows?
В Windows Curl может быть полезен для различных задач. Например, с помощью Curl можно выполнять HTTP-запросы и получать данные с веб-серверов, что позволяет тестировать и отлаживать веб-сервисы. Это особенно полезно для разработчиков, которые хотят проверить правильность работы своих API или проверить работу удаленного сервера.
В дополнение к этому, Curl на Windows может быть использован для автоматизации рутинных задач. Например, с помощью Curl можно создать скрипт, который будет периодически скачивать обновленные данные с определенного веб-сайта или отправлять автоматические уведомления по электронной почте.
В целом, Curl на Windows является мощным инструментом для программистов и веб-разработчиков, который позволяет взаимодействовать с веб-ресурсами и автоматизировать рутинные задачи. Он предоставляет широкий спектр возможностей и может быть полезен как для начинающих, так и для опытных специалистов.
Причины, по которым Curl может не работать на Windows
Одной из основных причин неработоспособности Curl на Windows является неправильная установка или отсутствие установленных зависимостей. Curl требует наличия определенных библиотек и драйверов для своей работы, и если они не установлены или находятся в неправильном месте, утилита не сможет корректно функционировать. Решением этой проблемы может быть переустановка Curl и установка всех необходимых компонентов согласно документации разработчика.
Еще одной распространенной причиной проблем с Curl на Windows является наличие конфликтов с другими программами или антивирусными средствами. Некоторые антивирусные программы могут блокировать работу Curl, считая его потенциально опасным или несанкционированным инструментом. В таком случае, рекомендуется временно отключить антивирусную программу и проверить работу Curl. Если проблема решается, то следует настроить антивирусное программное обеспечение таким образом, чтобы оно не блокировало Curl.
- Неправильная установка или отсутствие зависимостей
- Конфликты с другими программами или антивирусными средствами
В случае, если Curl по-прежнему не работает после выполнения всех необходимых действий, рекомендуется обратиться за помощью к специалистам технической поддержки или на официальный форум Curl. Они смогут оказать необходимую помощь в решении проблемы и вернуть вам функциональность этого полезного инструмента.
Как установить Curl на Windows
Установка Curl на Windows может быть достаточно простой, если следовать нескольким шагам:
- Скачайте исполняемый файл Curl с официального сайта. Рекомендуется выбрать версию, соответствующую вашей архитектуре Windows (32-бит или 64-бит).
- Распакуйте скачанный файл в удобную для вас директорию. Например, вы можете создать новую папку под названием «Curl» в корневом каталоге диска C: и распаковать файлы туда.
- Добавьте путь к исполняемому файлу Curl в переменную среды PATH. Это позволит вам запускать Curl из любой директории в командной строке без необходимости указывать полный путь к исполняемому файлу. Чтобы это сделать, откройте меню «Пуск» и найдите «Система» или «Свойства компьютера». Затем перейдите в раздел «Дополнительные параметры системы» и нажмите на кнопку «Переменные среды». В списке «Переменные среды системы» найдите переменную PATH и нажмите на кнопку «Изменить». Добавьте путь к директории, в которой находится исполняемый файл Curl, в конец значения переменной PATH, разделяя его символом точка с запятой (;).
- Перезагрузите командную строку или откройте новое окно командной строки, чтобы изменения переменной среды PATH вступили в силу. Теперь вы можете проверить, установлен ли Curl, введя команду «curl» в командной строке. Если Curl установлен правильно, вы увидите список доступных опций и команд Curl.
Теперь, когда Curl успешно установлен на вашей системе Windows, вы можете начать использовать его для отправки и получения данных с серверов посредством различных протоколов. Curl предоставляет широкий набор опций командной строки, которые позволяют вам конфигурировать запросы и обрабатывать полученные данные в соответствии с вашими потребностями.
Устранение проблем с Curl на Windows
Если вы владелец компьютера на операционной системе Windows и столкнулись с проблемами при использовании Curl, не отчаивайтесь. В этой статье мы рассмотрим несколько распространенных проблем с Curl на Windows и покажем вам, как их устранить.
Первая проблема, с которой вы можете столкнуться, — это отсутствие Curl в системной переменной PATH. Когда вы вводите команду Curl в командной строке, Windows пытается найти ее в пути поиска. Если Curl не находится в переменной PATH, вы получите сообщение об ошибке «curl не является внутренней или внешней командой, исполняемой программой или пакетным файлом». Чтобы исправить эту проблему, вам нужно добавить путь к исполняемому файлу Curl в системную переменную PATH. Вы можете сделать это следующим образом:
- Откройте панель управления и найдите раздел «Система».
- Выберите «Дополнительные параметры системы» и перейдите на вкладку «Дополнительно».
- Нажмите на кнопку «Переменные среды».
- В разделе «Системные переменные» найдите переменную PATH и нажмите на кнопку «Изменить».
- Добавьте путь к исполняемому файлу Curl в строку значений переменной PATH, разделив его символом «;».
- Нажмите «ОК» во всех диалоговых окнах, чтобы сохранить изменения.
Если проблема связана с сертификатами SSL, вы можете попробовать использовать флаг «—insecure» при выполнении команды Curl. Этот флаг отключает проверку сертификатов SSL и позволяет Curl продолжить выполнение запросов, даже если сертификаты являются недействительными или самоподписанными. Однако будьте осторожны при использовании этого флага, так как он может снизить безопасность ваших запросов.
Решение проблемы с неработающим Curl на Windows: проверьте версию и настройки
Если вы столкнулись с проблемой, когда Curl не работает на Windows, то есть несколько факторов, которые стоит проверить, чтобы разобраться в ситуации и найти решение. В данной статье мы рассмотрим два основных аспекта, которые могут быть причиной проблем с Curl на вашей операционной системе Windows: версия Curl и настройки.
Проверьте версию Curl. Версия Curl играет важную роль при его работе на Windows. Убедитесь, что у вас установлена последняя версия Curl, так как старые версии могут иметь некоторые известные ошибки. Для проверки версии откройте командную строку и введите команду curl --version
. Если у вас установлена устаревшая версия, посетите официальный сайт Curl и загрузите последнюю версию для Windows. После установки перезагрузите компьютер и попробуйте выполнить Curl снова.
Проверьте настройки Curl. Когда Curl не работает на Windows, может быть проблема с его настройками. Curl имеет конфигурационный файл, который может влиять на его функциональность. Найдите файл с именем «.curlrc» в своей домашней папке Windows (обычно это «C:\Users\Ваше_имяпользователя») и откройте его в текстовом редакторе. Убедитесь, что настройки в файле корректны и не вызывают конфликтов с другими программами или сетевыми настройками. Если есть какие-либо странные строки или настройки, удалите или закомментируйте их (добавьте символ # в начало строки). Сохраните изменения и попробуйте запустить Curl снова.
Проверив версию Curl и настройки, вы повышаете шансы на успешную работу Curl на операционной системе Windows. Не забывайте также проверить свое интернет-подключение и убедитесь, что нет проблем с вашей сетью или сервером. Если проблема все еще не решена, обратитесь за помощью к специалисту или на форумы, где пользователи могут поделиться своими опытом и решениями.
Проверка подключения и наличия необходимых компонентов для работы Curl на Windows
Для того чтобы успешно использовать Curl на операционной системе Windows, необходимо проверить наличие и правильность установки необходимых компонентов. В данной статье мы рассмотрим основные шаги проверки и подготовки системы перед работой с Curl.
Первым шагом является проверка наличия самого Curl на компьютере. Для этого можно открыть командную строку и ввести команду «curl -V». Если Curl уже установлен, то будет выведена информация о его версии. В противном случае, необходимо скачать и установить Curl с официального сайта проекта.
После установки Curl необходимо добавить его путь в переменную окружения PATH. Для этого откройте «Панель управления» -> «Система» -> «Дополнительные параметры системы» -> «Переменные среды». В разделе «Системные переменные» найдите переменную PATH и нажмите на кнопку «Изменить». В открывшемся окне добавьте путь к папке с установленным Curl (например, C:\curl) в список переменных и сохраните изменения.
Теперь можно проверить работу Curl с помощью простого теста. Откройте командную строку и выполните следующую команду: «curl https://www.example.com». Если Curl работает корректно, то вы увидите содержимое веб-страницы по адресу example.com. В случае возникновения ошибок, проверьте правильность установки и настройки Curl, а также наличие необходимых библиотек и компонентов.
Дополнительные советы по использованию Curl на Windows
В этой статье мы рассмотрели основные шаги по установке и использованию Curl на Windows. Однако, чтобы полностью воспользоваться всеми возможностями этого инструмента, рассмотрим несколько дополнительных советов.
1. Использование SSL сертификатов
Если вам необходимо работать с защищенными HTTPS-сайтами, вы можете использовать SSL сертификаты в Curl на Windows. Для этого вам нужно скачать необходимые сертификаты, добавить их в директорию curl и указать путь к файлам сертификатов при использовании команды Curl.
2. Передача файла с помощью Curl
Если вам необходимо передать файл с помощью Curl на Windows, вы можете воспользоваться параметром «-T» в команде Curl. Например, чтобы передать файл «example.txt», используйте следующую команду: curl -T example.txt http://example.com.
3. Использование кук для авторизации
Если вам необходимо авторизоваться на сайте с использованием кук, вы можете воспользоваться следующей командой в Curl на Windows: curl -b «Cookie1=Value1; Cookie2=Value2» http://example.com. Здесь «Cookie1=Value1; Cookie2=Value2» — это набор необходимых кук для авторизации.
4. Использование прокси-серверов
Если вам необходимо использовать прокси-сервер для отправки запросов с помощью Curl на Windows, вы можете указать его с помощью параметров «-x» или «—proxy». Например, curl -x proxy.example.com:8080 http://example.com.
Заключение
Использование Curl на Windows может быть очень полезным при работе с API и автоматизации задач. Следуя приведенным выше дополнительным советам, вы сможете более эффективно использовать Curl и расширить его функциональность для своих нужд. Не бойтесь экспериментировать и изучать дополнительные возможности этого мощного инструмента!
# Makefile.PL for Perl module WWW::Curl
# Check out the README file for more information.
use inc::Module::Install;
name 'WWW-Curl';
abstract 'Perl extension interface for libcurl';
author 'Cris Bailiff <c.bailiff+curl at devsecure.com>';
license 'MPL or MIT/X-derivate';
perl_version '5.006';
no_index directory => 'template';
# This is a hack. If you have libcurl installed, just specify curl.h below
# and comment out this line.
#requires_external_bin 'curl-config';
# This utility helper generates the constants function from curl.h
# It is normally only used by the maintainer, but if you're curl is older
# or missing some constants, you can delete curlopt-constants.c and re-run 'perl Makefile.PL'
# You may need to specify where to find curl.h on your platform
# These are guesses only, in case curl-config is not telling us.
#
my @includes = qw(
.
/usr/include
/usr/local/curl/include
/usr/local/include/curl
../../include
../curl/include
C:\\INCLUDE\\CURL
);
#
# Get curl to tell us where it is, if we can. May well not find anything on Windows
#
my $cflags = `curl-config --cflags`;
my $lflags = `curl-config --libs`;
# can't find link flags, make some guesses
if (!defined($lflags)) {
$lflags="-lcurl";
# Windows version of libcurl - not widely tested, feedback welcome!
if ($^O eq 'MSWin32') {
foreach my $try (@includes) {
if (-f $try . '\lib\libcurl_imp.lib') {
$lflags = $try . '\lib\libcurl_imp.lib' unless(-f $lflags);
last;
}
}
$lflags="libcurl.lib" unless ($lflags);
}
print "Guessing your linker flags as: $lflags\n";
}
my ($flag) = ($cflags =~ m/-I(\S+)/);
if (defined $flag) {
unshift @includes, $flag; # first guess
}
# try the path given on the command line, if any
if (defined($ARGV[0])) {
unshift @includes, $ARGV[0];
};
my $curl_d = "";
my $curl_h;
# otherwise try a list of common locations
foreach my $try (@includes) {
if (-f $try . "/curl/curl.h") {
$curl_d = $try;
$curl_h = $try . "/curl/curl.h";
last;
}
}
if (!defined($curl_h)) {
die "Cannot find curl.h - cannot build constants files - see Makefile.PL";
} else {
$curl_d = "-I" . $curl_d;
print "Found curl.h in $curl_h\n";
open(CURL_H, "<" . $curl_h) or die "Can't open curl.h\n";
my %cinit_types;
my %cinit_codes;
my @curlinfo;
my @curlshopt;
my @curllockopt;
while (<CURL_H>) {
if ($_ =~ m/CINIT\(/ and $_ !~ m/#/) {
my ($option, $type, $code) =
m/.*CINIT\((\w*)\s*,\s*(\w+)\s*,\s*(\d+).*/;
$cinit_types{$option} = $option;
$cinit_codes{$option} = $code;
} elsif ($_ =~ m/^#define CURLOPT_\w+ CURLOPT_\w+/) {
my ($option, $value) =
m/^#define CURLOPT_(\w+) CURLOPT_(\w+)/;
$cinit_types{$option} = $value;
} elsif ($_ =~ m/^\s*(CURLINFO_\w+)/) {
push @curlinfo, $1;
} elsif ($_ =~ m/^\s*(CURLSHOPT_\w+)/) {
push @curlshopt, $1;
} elsif ($_ =~ m/^\s*(CURL_LOCK_DATA_\w+)/) {
push @curllockopt, $1;
}
}
close(CURL_H);
# some things are ifdefed out...
foreach my $ifdef0 (qw(FLAGS PROGRESSMODE MOREDOCS)) {
delete $cinit_types{$ifdef0};
delete $cinit_codes{$ifdef0};
}
print "Building curlopt-constants.c for your libcurl version\n";
open(CURL_XS, ">curlopt-constants.c")
or die "Can't write curlopt-constants.c\n";
# boilerplate xs constant function here
print CURL_XS <<HERE
static int
constant(char *name, int arg)
{
errno = 0;
if (strncmp(name, "CURLINFO_", 9) == 0) {
name += 9;
switch (*name) {
HERE
;
foreach my $next_initial ('A' .. 'Z') {
print CURL_XS " case '$next_initial':\n";
my $count = 0;
foreach my $curlinfo_name (sort @curlinfo) {
my $initial = substr($curlinfo_name, 9, 1);
my $option = substr($curlinfo_name, 9);
if ($next_initial eq $initial) {
print CURL_XS
" if (strEQ(name, \"$option\")) return CURLINFO_$option;\n";
$count++;
}
}
if ($count or $next_initial eq 'Z') {
print CURL_XS " break;\n";
}
}
print CURL_XS " };\n";
print CURL_XS " }\n";
# CURLOPT_
print CURL_XS <<HERE2
if (strncmp(name, "CURLOPT_", 8) == 0) {
name += 8;
switch (*name) {
HERE2
;
foreach my $next_initial ('A' .. 'Z') {
print CURL_XS " case '$next_initial':\n";
my $count = 0;
foreach my $option (sort keys %cinit_types) {
my $initial = substr($option, 0, 1);
if ($next_initial eq $initial) {
print CURL_XS
" if (strEQ(name, \"$option\")) return CURLOPT_$cinit_types{$option};\n";
$count++;
}
}
if ($count or $next_initial eq 'Z') {
print CURL_XS " break;\n";
}
}
print CURL_XS " };\n";
print CURL_XS " }\n";
# CURLSHOPT_
print CURL_XS <<HERE2
if (strncmp(name, "CURLSHOPT_", 10) == 0) {
name += 10;
switch (*name) {
HERE2
;
foreach my $next_initial ('A' .. 'Z') {
print CURL_XS " case '$next_initial':\n";
my $count = 0;
foreach my $option (sort @curlshopt) {
my $initial = substr($option, 10, 1);
if ($next_initial eq $initial) {
my $optsuff = substr($option, 10);
print CURL_XS
" if (strEQ(name, \"$optsuff\")) return $option;\n";
$count++;
}
}
if ($count or $next_initial eq 'Z') {
print CURL_XS " break;\n";
}
}
print CURL_XS " };\n";
print CURL_XS " }\n";
# CURL_LOCK_DATA_
print CURL_XS <<HERE2
if (strncmp(name, "CURL_LOCK_DATA_", 15) == 0) {
name += 15;
switch (*name) {
HERE2
;
foreach my $next_initial ('A' .. 'Z') {
print CURL_XS " case '$next_initial':\n";
my $count = 0;
foreach my $option (sort @curllockopt) {
my $initial = substr($option, 15, 1);
if ($next_initial eq $initial) {
my $optsuff = substr($option, 15);
print CURL_XS
" if (strEQ(name, \"$optsuff\")) return $option;\n";
$count++;
}
}
if ($count or $next_initial eq 'Z') {
print CURL_XS " break;\n";
}
}
print CURL_XS " };\n";
print CURL_XS " }\n";
print CURL_XS <<HERE
errno = EINVAL;
return 0;
}
HERE
;
close(CURL_XS);
print "Building Easy.pm constants for your libcurl version\n";
open(EASY_PM, ">lib/WWW/Curl/Easy.pm") or die "Can't create lib/WWW/Curl/Easy.pm\n";
open(EASY_PM_IN, "template/Easy.pm.tmpl") or die "Can't read template/Easy.pm.tmpl\n";
while (my $line = <EASY_PM_IN>) {
if ($line !~ m/^\@CURLOPT_INCLUDE\@/) {
print EASY_PM $line;
} else {
foreach my $option (sort keys %cinit_types) {
next unless $option; # an empty CURLOPT_
print EASY_PM "CURLOPT_$option\n";
}
foreach my $option (sort @curlinfo) {
print EASY_PM $option . "\n";
}
}
}
close(EASY_PM);
close(EASY_PM_IN);
print "Building Share.pm constants for your libcurl version\n";
open(SHARE_PM, ">lib/WWW/Curl/Share.pm") or die "Can't create lib/WWW/Curl/Share.pm\n";
open(SHARE_PM_IN, "template/Share.pm.tmpl") or die "Can't read template/Share.pm.tmpl\n";
while (my $line = <SHARE_PM_IN>) {
if ($line !~ m/^(.*?)\@CURLSHOPT_INCLUDE\@/) {
print SHARE_PM $line;
} else {
foreach my $option (sort @curlshopt) {
print SHARE_PM $1 . $option . "\n";
}
foreach my $option (sort @curllockopt) {
print SHARE_PM $1 . $option . "\n";
}
}
}
close(SHARE_PM);
close(SHARE_PM_IN);
}
# Let Module::Install generate META.yml and other necessary files.
WriteMakefile(
'NAME' => 'WWW::Curl',
'VERSION_FROM' => 'lib/WWW/Curl.pm', # finds $VERSION
'LIBS' => $lflags, # e.g., '-lm'
'INC' => $curl_d, # e.g., '-I/usr/include/other'
'clean' => { FILES => "curlopt-constants.c head.out body.out" }
);