third-party libs

This commit is contained in:
Benjamin Palko 2026-10-14 15:54:34 -04:00
parent f836927d3a
commit b154ee9266
3667 changed files with 854591 additions and 0 deletions

View file

@ -0,0 +1,3 @@
SUBDIRS = RPM
EXTRA_DIST = Makefile.am

View file

@ -0,0 +1 @@
curl.spec

View file

@ -0,0 +1,2 @@
EXTRA_DIST = README curl.spec.in

View file

@ -0,0 +1,33 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
( (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
for AIX Toolbox
Author: Tor Arntsen
The spec file in this directory is based on the Linux ssl and non-ssl
curl spec files, plus additions to make it AIX Toolbox compatible.
The AIX Toolbox setup (installs into /opt/freeware, with symlinks in
/usr/bin,/usr/lib,/usr/include) are based on IBM's aixtoolbox spec
file written by David Clissold <cliss@austin.ibm.com>, see
ftp://ftp.software.ibm.com/aixtoolbox/SPECS/curl-7.9.3-2.spec
This spec file is designed to be a drop-in replacement for the
old spec file found at the above link. Thus, like the old spec file
this version is also a unified ssl/non-ssl version. To get non-ssl
RPMs just pass --define 'nossl 1' to the command line when building
the RPM, e.g.
rpm -bb --define 'nossl 1' curl.spec
Default is to build with ssl support.
Lastly, the spec file expects the Curl source distribution file to be
in .tar.bz2 format.
The nifty cURL header of this README is a ripoff of the vms/readme file.

View file

@ -0,0 +1,132 @@
# Use --define 'nossl 1' on the command line to disable SSL detection
%{!?nossl:%define SSL 1}
%{?nossl:%define SSL 0}
%define name curl
%define version @VERSION@
%define release 1%{!?nossl:ssl}
%define curlroot %{_builddir}/%{name}-%{version}
Summary: get a file from a FTP or HTTP server.
Name: %{name}
Version: %{version}
Release: %{release}
License: MIT/X derivate
Vendor: Daniel Stenberg <Daniel.Stenberg@haxx.se>
Group: Applications/Internet
Source: %{name}-%{version}.tar.bz2
URL: http://curl.haxx.se/
Provides: curl
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Prefix: %{_prefix}
%description
curl is a client to get documents/files from servers, using any of the
supported protocols. The command is designed to work without user
interaction or any kind of interactivity.
curl offers many useful tricks like proxy support, user authentication,
ftp upload, HTTP post, file transfer resume and more.
%if %{SSL} == 1
Note: this version is compiled with SSL support.
%else
Note: this version is compiled without SSL support.
%endif
%package devel
Summary: Development files for the curl libary
Group: Development/Libraries
%if %{SSL} == 1
Requires: openssl >= 0.9.5
%endif
Requires: curl = %{version}
Provides: curl-devel
%description devel
libcurl is the core engine of curl; this packages contains all the
libs, headers, and manual pages to develop applications using libcurl.
%define DEFCC xlc
%prep
rm -rf %{curlroot}
%setup -q
%build
# Use the default compiler for this platform - gcc otherwise
if [[ -z "$CC" ]]
then
if test "X`type %{DEFCC} 2>/dev/null`" != 'X'; then
export CC=%{DEFCC}
else
export CC=gcc
fi
fi
cd %{curlroot} && (if [ -f configure.in ]; then mv -f configure.in configure.in.
rpm; fi)
./configure --prefix=%{prefix} \
%if %{SSL} == 1
--with-ssl
%else
--without-ssl
%endif
make
%install
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
make DESTDIR=%{buildroot} install-strip
( cd $RPM_BUILD_ROOT # same as %{buildroot}
for dir in bin include
do
mkdir -p usr/$dir
cd usr/$dir
ln -sf ../..%{prefix}/$dir/* .
cd -
done
mkdir -p usr/lib
cd usr/lib
ln -sf ../..%{prefix}/lib/* .
cd -
)
%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
%files
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/curl
%attr(0644,root,root) %{_mandir}/man1/curl.1*
%{_libdir}/libcurl.a
%if %{SSL} == 1
%{_datadir}/curl/curl-ca-bundle.crt
%endif
%doc CHANGES COPYING README RELEASE-NOTES
%doc docs/BUGS docs/CONTRIBUTE docs/FAQ docs/FEATURES docs/HISTORY
%doc docs/INSTALL docs/KNOWN_BUGS
%doc docs/MANUAL docs/RESOURCES docs/THANKS docs/VERSIONS docs/TODO
%doc docs/TheArtOfHttpScripting
%if %{SSL} == 1
%doc docs/SSLCERTS
%endif
/usr/bin/curl
/usr/lib/libcurl.a
%files devel
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/curl-config
%attr(0644,root,root) %{_mandir}/man1/curl-config.1*
%attr(0644,root,root) %{_mandir}/man3/*
%attr(0644,root,root) %{_includedir}/curl/*
%{_libdir}/libcurl.la
%doc docs/BINDINGS docs/INTERNALS docs/LICENSE-MIXING
/usr/bin/curl-config
/usr/include/curl

View file

@ -0,0 +1,11 @@
Gisle Vanem made curl build fine on DOS (and MingW) with djgpp, OpenSSL and his
Watt-32 stack.
'make djgpp' in the root curl dir should build it fine.
Note 1: djgpp 2.04 beta has a sscanf() bug so the URL parsing isn't
done proberly. Use djgpp 2.03 until they fix it.
Note 2: Compile Watt-32 (and OpenSSL) with the same version of djgpp.
Otherwise things go wrong because things like FS-extensions and
errnos have been changed between releases.

View file

@ -0,0 +1,136 @@
#
# Common defines for curl (djgpp/Watt-32)
#
# Assumes you've unpacked cURL with long-file names
# I.e use "set LFN=y" before untaring on Win9x/XP.
# Requires sed, yacc, rm and the usual stuff.
#
# Define TOPDIR before including this file.
.SUFFIXES: .exe .y
MAKEFILE = Makefile.dj
OBJ_DIR = djgpp
#
# Find out if using a UNIX-like shell or a DOS command interpreter
#
ifneq ($(findstring COMMAND.COM,$(SHELL)),COMMAND.COM)
ifneq ($(findstring CMD.EXE,$(SHELL)),CMD.EXE)
ifneq ($(findstring 4DOS.COM,$(SHELL)),4DOS.COM)
IS_UNIX_SHELL = 1
endif
endif
endif
#
# Define shell dependent commands and vars
#
ifeq ($(IS_UNIX_SHELL),1)
COPY = cp -f
DELETE = rm -f
MKDIR = mkdir
RMDIR = rm -f -r
DS = /
else
COPY = copy
DELETE = del
MKDIR = mkdir
RMDIR = rmdir
DS = \$(NOTHING)
endif
#
# OpenSSL is available from www.openssl.org and builds okay
# with djgpp/Watt-32. Set to 0 if you don't need https URLs
# (reduces curl.exe with approx 700 kB)
#
USE_SSL = 0
#
# Use zlib for contents encoding
#
USE_ZLIB = 0
#
# Use libidn for international domain names
#
USE_IDNA = 0
#
# Use Watt-32 IPv6 stack (only IPv6 name resolution working at the moment)
#
USE_IPV6 = 0
#
# Use C-Ares resolver library
#
USE_ARES = 0
#
# Enable debug code in libcurl/curl
#
USE_DEBUG = 0
#
# Enable memory tracking code in libcurl/curl
#
USE_CURLDEBUG = 0
default: all
#
# Root directory for Waterloo tcp/ip etc. Change to suite.
# WATT_ROOT should be set during Watt-32 install.
#
WATT32_ROOT = $(subst \,/,$(WATT_ROOT))
OPENSSL_ROOT = e:/net/openssl.099
ZLIB_ROOT = $(DJDIR)/contrib/zlib
LIBIDN_ROOT = $(TOPDIR)/../IDN/libidn
ARES_ROOT = $(TOPDIR)/ares
CC = gcc
YACC = bison -y
CFLAGS = -g -gcoff -O2 -I. -I$(TOPDIR)/include -I$(TOPDIR)/lib \
-I$(WATT32_ROOT)/inc -Wall -DHAVE_CONFIG_H
ifeq ($(USE_SSL),1)
CFLAGS += -DUSE_SSLEAY -DUSE_OPENSSL -I$(OPENSSL_ROOT)
endif
ifeq ($(USE_ZLIB),1)
CFLAGS += -DUSE_ZLIB -I$(ZLIB_ROOT)
endif
ifeq ($(USE_IPV6),1)
CFLAGS += -DENABLE_IPV6
endif
ifeq ($(USE_ARES),1)
CFLAGS += -DUSE_ARES -I$(ARES_ROOT)
endif
ifeq ($(USE_IDNA),1)
CFLAGS += -DHAVE_LIBIDN -DHAVE_IDN_FREE_H -DHAVE_IDN_FREE -DHAVE_TLD_H \
-DHAVE_TLD_STRERROR -I$(LIBIDN_ROOT)/lib
endif
ifeq ($(USE_DEBUG),1)
CFLAGS += -DDEBUG=1 -DDEBUGBUILD
endif
ifeq ($(USE_CURLDEBUG),1)
CFLAGS += -DCURLDEBUG
endif
$(OBJ_DIR):
$(MKDIR) $(OBJ_DIR)
$(OBJ_DIR)/%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
@echo
depend: $(DEPEND_PREREQ) $(MAKEFILE)
$(CC) -MM $(CFLAGS) $(CSOURCES) | \
sed -e 's/^\([a-zA-Z0-9_-]*\.o:\)/$$(OBJ_DIR)\/\1/' > depend.dj

View file

@ -0,0 +1 @@
curl.list

View file

@ -0,0 +1,3 @@
AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = README curl.list.in

View file

@ -0,0 +1,12 @@
EPM is a free UNIX software/file packaging program that generates distribution
archives from a list of files. EPM Can:
* Generate portable script-based distribution packages complete with
installation and removal scripts.
* Generate vendor distributions in AIX, BSD, Compaq Tru64, Debian, HP-UX,
IRIX, Red Hat, and Solaris formats.
* Provide a complete, cross-platform software distribution solution for your
applications.
http://www.easysw.com/epm/

View file

@ -0,0 +1,59 @@
# Directories...
$prefix=@prefix@
$exec_prefix=@exec_prefix@
$bindir=@bindir@
$confdir=@sysconfdir@
$docdir=@prefix@/doc
$mandir=@mandir@
$libdir=@libdir@
$srcdir=@top_srcdir@
$includedir=@includedir@
$datarootdir=@datarootdir@
# Product information
%product curl
%copyright 1998-2002 by Daniel Stenberg
%vendor Daniel Stenberg, <daniel@haxx.se>
%license ${srcdir}/MITX.txt
%readme ${srcdir}/README
%description Curl is a command line tool for transfering data specified
%description with URL syntax
%version @VERSION@
%packager Giuseppe "Cowo" Corbelli <cowo@lugbs.linux.it>
f 0644 cowo pppusers ${mandir}/man1/curl.1 ./docs/curl.1
f 0644 cowo pppusers ${mandir}/man1/curl-config.1 ./docs/curl-config.1
f 0644 cowo pppusers ${mandir}/man3/curl_easy_cleanup.3 ./docs/curl_easy_cleanup.3
f 0644 cowo pppusers ${mandir}/man3/curl_easy_getinfo.3 ./docs/curl_easy_getinfo.3
f 0644 cowo pppusers ${mandir}/man3/curl_easy_init.3 ./docs/curl_easy_init.3
f 0644 cowo pppusers ${mandir}/man3/curl_easy_perform.3 ./docs/curl_easy_perform.3
f 0644 cowo pppusers ${mandir}/man3/curl_easy_setopt.3 ./docs/curl_easy_setopt.3
f 0644 cowo pppusers ${mandir}/man3/curl_easy_duphandle.3 ./docs/curl_easy_duphandle.3
f 0644 cowo pppusers ${mandir}/man3/curl_formparse.3 ./docs/curl_formparse.3
f 0644 cowo pppusers ${mandir}/man3/curl_formadd.3 ./docs/curl_formadd.3
f 0644 cowo pppusers ${mandir}/man3/curl_formfree.3 ./docs/curl_formfree.3
f 0644 cowo pppusers ${mandir}/man3/curl_getdate.3 ./docs/curl_getdate.3
f 0644 cowo pppusers ${mandir}/man3/curl_getenv.3 ./docs/curl_getenv.3
f 0644 cowo pppusers ${mandir}/man3/curl_slist_append.3 ./docs/curl_slist_append.3
f 0644 cowo pppusers ${mandir}/man3/curl_slist_free_all.3 ./docs/curl_slist_free_all.3
f 0644 cowo pppusers ${mandir}/man3/curl_version.3 ./docs/curl_version.3
f 0644 cowo pppusers ${mandir}/man3/curl_escape.3 ./docs/curl_escape.3
f 0644 cowo pppusers ${mandir}/man3/curl_unescape.3 ./docs/curl_unescape.3
f 0644 cowo pppusers ${mandir}/man3/curl_strequal.3 ./docs/curl_strequal.3
f 0644 cowo pppusers ${mandir}/man3/curl_strnequal.3 ./docs/curl_strnequal.3
f 0644 cowo pppusers ${mandir}/man3/curl_mprintf.3 ./docs/curl_mprintf.3
f 0644 cowo pppusers ${mandir}/man3/curl_global_init.3 ./docs/curl_global_init.3
f 0644 cowo pppusers ${mandir}/man3/curl_global_cleanup.3 ./docs/curl_global_cleanup.3
f 0644 cowo pppusers ${mandir}/man3/libcurl.3 ./docs/libcurl.3
f 0755 cowo pppusers ${libdir}/libcurl.so.2.0.2 ./lib/.libs/libcurl.so.2.0.2
f 0755 cowo pppusers ${libdir}/libcurl.la ./lib/libcurl.la
f 0755 cowo pppusers ${libdir}/libcurl.la ./lib/.libs/libcurl.la
f 0644 cowo pppusers ${libdir}/libcurl.a ./lib/.libs/libcurl.a
f 0755 cowo pppusers ${bindir}/curl ./src/curl
f 0755 cowo pppusers ${bindir}/curl ./src/.libs/curl
f 0644 cowo pppusers ${includedir}/curl/curl.h ./include/curl/curl.h
f 0644 cowo pppusers ${includedir}/curl/easy.h ./include/curl/easy.h
f 0644 cowo pppusers ${includedir}/curl/mprintf.h ./include/curl/mprintf.h
f 0644 cowo pppusers ${includedir}/curl/stdcheaders.h ./include/curl/stdcheaders.h
f 0644 cowo pppusers ${includedir}/curl/types.h ./include/curl/types.h
f 0755 cowo pppusers ${bindir}/curl-config ./curl-config

View file

@ -0,0 +1 @@
SUBDIRS = RPM

View file

@ -0,0 +1,2 @@
curl-ssl.spec
curl.spec

View file

@ -0,0 +1,2 @@
EXTRA_DIST = README curl-ssl.spec.in curl.spec.in make_curl_rpm

View file

@ -0,0 +1,5 @@
Author: Daniel (I'm not trustworthy, replace this!)
Paul Marquis's 'make_curl_rpm' script is a fine example on how to automate the
jobs. You need to fill in your own name and email at least.

View file

@ -0,0 +1,84 @@
%define name curl-ssl
%define tarball curl
%define version 7.11.0
%define release 1
%define curlroot %{_builddir}/%{tarball}-%{version}
Summary: get a file from an FTP or HTTP server.
Name: %{name}
Version: %{version}
Release: %{release}
Copyright: MIT/X derivate
Vendor: Daniel Stenberg <Daniel.Stenberg@haxx.se>
Packager: Troy Engel <tengel@sonic.net>
Group: Utilities/Console
Source: %{tarball}-%{version}.tar.gz
URL: http://curl.haxx.se/
Provides: curl
Obsoletes: curl
BuildRoot: %{_tmppath}/%{tarball}-%{version}-root
Requires: openssl >= 0.9.5
%description
curl is a client to get documents/files from servers, using any of the
supported protocols. The command is designed to work without user
interaction or any kind of interactivity.
curl offers a busload of useful tricks like proxy support, user
authentication, ftp upload, HTTP post, file transfer resume and more.
%package devel
Summary: The includes, libs, and man pages to develop with libcurl
Group: Development/Libraries
Requires: openssl-devel >= 0.9.5
Provides: curl-devel
%description devel
libcurl is the core engine of curl; this packages contains all the libs,
headers, and manual pages to develop applications using libcurl.
%prep
%setup -q -n %{tarball}-%{version}
%build
cd %{curlroot} && (if [ -f configure.in ]; then mv -f configure.in configure.in.rpm; fi)
%configure
cd %{curlroot} && (if [ -f configure.in.rpm ]; then mv -f configure.in.rpm configure.in; fi)
make
%install
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
make DESTDIR=%{buildroot} install-strip
%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
[ "%{curlroot}" != "/" ] && rm -rf %{curlroot}
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/curl
%attr(0644,root,root) %{_mandir}/man1/curl.1*
%{_libdir}/libcurl.so*
%{_datadir}/curl/curl-ca-bundle.crt
%doc CHANGES COPYING README testcurl.sh docs/BUGS docs/SSLCERTS
%doc docs/CONTRIBUTE docs/FAQ docs/FEATURES docs/HISTORY docs/INSTALL
%doc docs/KNOWN_BUGS docs/MANUAL docs/RESOURCES docs/THANKS
%doc docs/TODO docs/VERSIONS docs/TheArtOfHttpScripting tests
%files devel
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/curl-config
%attr(0644,root,root) %{_mandir}/man1/curl-config.1*
%attr(0644,root,root) %{_mandir}/man3/*
%attr(0644,root,root) %{_includedir}/curl/*
%{_libdir}/libcurl.a
%{_libdir}/libcurl.la
%doc docs/BINDINGS docs/INTERNALS docs/examples/* docs/libcurl-the-guide

View file

@ -0,0 +1,84 @@
%define name curl
%define version @VERSION@
%define release 1
%define prefix /usr
%define builddir $RPM_BUILD_DIR/%{name}-%{version}
Summary: get a file from an FTP or HTTP server.
Name: %{name}
Version: %{version}
Release: %{release}
Copyright: MPL
Vendor: Daniel Stenberg <Daniel.Stenberg@haxx.se>
Packager: Loic Dachary <loic@senga.org>
Group: Utilities/Console
Source: %{name}-%{version}.tar.gz
URL: http://curl.haxx.se/
BuildRoot: /tmp/%{name}-%{version}-root
%description
curl is a client to get documents/files from servers, using any of the
supported protocols. The command is designed to work without user
interaction or any kind of interactivity.
curl offers a busload of useful tricks like proxy support, user
authentication, ftp upload, HTTP post, file transfer resume and more.
Note: this version is compiled without SSL (https:) support.
%package devel
Summary: The includes, libs, and man pages to develop with libcurl
Group: Development/Libraries
%description devel
libcurl is the core engine of curl; this packages contains all the libs,
headers, and manual pages to develop applications using libcurl.
%prep
rm -rf %{builddir}
%setup
%build
%configure --without-ssl --prefix=%{prefix}
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install-strip
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf %{builddir}
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/curl
%attr(0644,root,root) %{_mandir}/man1/*
%{prefix}/lib/libcurl.so*
%doc CHANGES LEGAL MITX.txt MPL-1.1.txt README docs/BUGS
%doc docs/CONTRIBUTE docs/FAQ docs/FEATURES docs/INSTALL docs/INTERNALS
%doc docs/LIBCURL docs/MANUAL docs/README* docs/RESOURCES docs/TODO
%doc docs/TheArtOfHttpScripting
%files devel
%defattr(-,root,root)
%attr(0644,root,root) %{_mandir}/man3/*
%attr(0644,root,root) %{_includedir}/curl/*
%{prefix}/lib/libcurl.a
%{prefix}/lib/libcurl.la
%doc docs/examples/*
%changelog
* Sun Jan 7 2001 Loic Dachary <loic@senga.org>
- use _mandir instead of prefix to locate man pages because
_mandir is not always prefix/man/man?.

View file

@ -0,0 +1,62 @@
#! /bin/sh
# script to build curl RPM from src RPM (SSL and non-SSL versions)
# initialize
top_dir=/usr/src/redhat
sources_dir=$top_dir/SOURCES
specs_dir=$top_dir/SPECS
rpms_dir=$top_dir/RPMS
arch=`rpm --showrc | awk 'NF == 3 && $2 == "_arch" { print $3 }'`
# fill in your own name and email here
packager_name="Mr Joe Packager Person"
packager_email='<Joe@packager.person>'
# make sure we're running as root
if test `id -u` -ne `id -u root`
then
echo "you must build the RPM as root"
exit 1
fi
# get version and release number
if test $# -lt 1
then
echo "version number?"
read version
else
version=$1
fi
if test $# -lt 2
then
echo "release number?"
read release
else
release=$2
fi
# build all the files
targets="curl curl-ssl"
for target in $targets
do
# make sure src RPM exist
src_rpm="$target-$version-$release.src.rpm"
if test -f $src_rpm
then
rpm -ivh $src_rpm
# replace packager in spec file
sed -e 's/^Packager: .*/Packager: $packager_name $packager_email/' $specs_dir/$target.spec > $specs_dir/$target-$version-$arch.spec
# build it
if ! rpm -ba $specs_dir/$target-$version-$arch.spec
then
echo "error building $target for $arch -- check output above"
fi
echo "$target rpm is now in $rpms_dir/$arch"
else
echo $src_rpm does not exist
fi
done

View file

@ -0,0 +1,32 @@
SUBDIRS = Win32 Linux Solaris EPM AIX vms
EXTRA_DIST = README \
DOS/README \
DOS/common.dj \
NetWare/get_ver.awk \
OS400/README.OS400 \
OS400/ccsidcurl.c \
OS400/ccsidcurl.h \
OS400/curl.inc.in \
OS400/initscript.sh \
OS400/make-include.sh \
OS400/make-lib.sh \
OS400/make-src.sh \
OS400/make-tests.sh \
OS400/makefile.sh \
OS400/os400sys.c \
OS400/os400sys.h \
Symbian/bwins/libcurlu.def \
Symbian/eabi/libcurlu.def \
Symbian/group/bld.inf \
Symbian/group/curl.iby \
Symbian/group/curl.mmp \
Symbian/group/curl.pkg \
Symbian/group/libcurl.iby \
Symbian/group/libcurl.mmp \
Symbian/group/libcurl.pkg \
Symbian/readme.txt \
TPF/curl.mak \
TPF/maketpf.env_curl \
TPF/maketpf.env_curllib

View file

@ -0,0 +1,75 @@
# ***************************************************************************
# * _ _ ____ _
# * Project ___| | | | _ \| |
# * / __| | | | |_) | |
# * | (__| |_| | _ <| |___
# * \___|\___/|_| \_\_____|
# *
# * Copyright (C) 1998 - 2008, 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 http://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.
# *
# ***************************************************************************
# awk script which fetches curl / ares version number and string from input
# file and writes them to STDOUT. Here you can get an awk version for Win32:
# http://www.gknw.net/development/prgtools/awk-20070501.zip
#
BEGIN {
if (match (ARGV[1], /curlver.h/)) {
while ((getline < ARGV[1]) > 0) {
if (match ($0, /^#define LIBCURL_COPYRIGHT "[^"]+"$/)) {
libcurl_copyright_str = substr($0, 28, length($0)-28);
}
else if (match ($0, /^#define LIBCURL_VERSION "[^"]+"$/)) {
libcurl_ver_str = substr($3, 2, length($3)-2);
}
else if (match ($0, /^#define LIBCURL_VERSION_MAJOR [0-9]+$/)) {
libcurl_ver_major = substr($3, 1, length($3));
}
else if (match ($0, /^#define LIBCURL_VERSION_MINOR [0-9]+$/)) {
libcurl_ver_minor = substr($3, 1, length($3));
}
else if (match ($0, /^#define LIBCURL_VERSION_PATCH [0-9]+$/)) {
libcurl_ver_patch = substr($3, 1, length($3));
}
}
libcurl_ver = libcurl_ver_major "," libcurl_ver_minor "," libcurl_ver_patch;
print "LIBCURL_VERSION = " libcurl_ver "";
print "LIBCURL_VERSION_STR = " libcurl_ver_str "";
print "LIBCURL_COPYRIGHT_STR = " libcurl_copyright_str "";
}
if (match (ARGV[1], /ares_version.h/)) {
while ((getline < ARGV[1]) > 0) {
if (match ($0, /^#define ARES_COPYRIGHT "[^"]+"$/)) {
libcares_copyright_str = substr($0, 25, length($0)-25);
}
else if (match ($0, /^#define ARES_VERSION_STR "[^"]+"$/)) {
libcares_ver_str = substr($3, 2, length($3)-2);
}
else if (match ($0, /^#define ARES_VERSION_MAJOR [0-9]+$/)) {
libcares_ver_major = substr($3, 1, length($3));
}
else if (match ($0, /^#define ARES_VERSION_MINOR [0-9]+$/)) {
libcares_ver_minor = substr($3, 1, length($3));
}
else if (match ($0, /^#define ARES_VERSION_PATCH [0-9]+$/)) {
libcares_ver_patch = substr($3, 1, length($3));
}
}
libcares_ver = libcares_ver_major "," libcares_ver_minor "," libcares_ver_patch;
print "LIBCARES_VERSION = " libcares_ver "";
print "LIBCARES_VERSION_STR = " libcares_ver_str "";
print "LIBCARES_COPYRIGHT_STR = " libcares_copyright_str "";
}
}

View file

@ -0,0 +1,262 @@
Implementation notes:
This is a true OS/400 implementation, not a PASE implementation (for PASE,
use AIX implementation).
The biggest problem with OS/400 is EBCDIC. Libcurl implements an internal
conversion mechanism, but it has been designed for computers that have a
single native character set. OS/400 default native character set varies
depending on the country for which it has been localized. And more, a job
may dynamically alter its "native" character set.
Several characters that do not have fixed code in EBCDIC variants are
used in libcurl strings. As a consequence, using the existing conversion
mechanism would have lead in a localized binary library - not portable across
countries.
For this reason, and because libcurl was originally designed for ASCII based
operating systems, the current OS/400 implementation uses ASCII as internal
character set. This has been accomplished using the QADRT library and
include files, a C and system procedures ASCII wrapper library. See IBM QADRT
description for more information.
This then results in libcurl being an ASCII library: any function string
argument is taken/returned in ASCII and a C/C++ calling program built around
QADRT may use libcurl functions as on any other platform.
QADRT does not define ASCII wrappers for all C/system procedures: the
OS/400 configuration header file and an additional module (os400sys.c) define
some more of them, that are used by libcurl and that QADRT left out.
To support all the different variants of EBCDIC, non-standard wrapper
procedures have been added to libcurl on OS/400: they provide an additional
CCSID (numeric Coded Character Set ID specific to OS/400) parameter for each
string argument. String values passed to callback procedures are NOT converted,
so text gathered this way is (probably !) ASCII.
Another OS/400 problem comes from the fact that the last fixed argument of a
vararg procedure may not be of type char, unsigned char, short or unsigned
short. Enums that are internally implemented by the C compiler as one of these
types are also forbidden. Libcurl uses enums as vararg procedure tagfields...
Happily, there is a pragma forcing enums to type "int". The original libcurl
header files are thus altered during build process to use this pragma, in
order to force libcurl enums of being type int (the pragma disposition in use
before inclusion is restored before resuming the including unit compilation).
Three SSL implementations were present in libcurl. Nevertheless, none of them
is available on OS/400. To support SSL on OS/400, a fourth implementation has
been added (qssl.[ch]). There is no way to have different certificate stores
for CAs and for personal/application certificates/key. More, the SSL context
may be defined as an application identifier in the main certificate store,
or as a keyring file. As a consequence, the meaning of some fields have been
slightly altered:
_ The "certificate identifier" is taken from CURLOPT_SSLCERT if defined, else
from CURLOPT_CAINFO.
_ The certificate identifier is then used as an application identifier in the
main certificate store. If successful, this context is used.
_ If the previous step failed, the certificate identifier is used as the file
name of a keyring. CURLOPT_KEYPASSWD is used here as the keyring password.
_ The default ca-bundle (CURLOPT_CAINFO) is set to the main certificate store's
keyring file name: this allows to use the system global CAs by default. (In that
case, the keyring password is safely recovered from the system... IBM dixit!)
Non-standard EBCDIC wrapper prototypes are defined in an additional header
file: ccsidcurl.h. These should be self-explanatory to an OS/400-aware
designer. CCSID 0 can be used to select the current job's CCSID.
Wrapper procedures with variable arguments are described below:
_ curl_easy_setopt_ccsid()
Variable arguments are a string pointer and a CCSID (unsigned int) for
options:
CURLOPT_CAINFO
CURLOPT_CAPATH
CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
CURLOPT_COOKIELIST
CURLOPT_CUSTOMREQUEST
CURLOPT_EGDSOCKET
CURLOPT_ENCODING
CURLOPT_FTPPORT
CURLOPT_FTP_ACCOUNT
CURLOPT_FTP_ALTERNATIVE_TO_USER
CURLOPT_INTERFACE
CURLOPT_KEYPASSWD
CURLOPT_KRBLEVEL
CURLOPT_NETRC_FILE
CURLOPT_COPYPOSTFIELDS
CURLOPT_PROXY
CURLOPT_PROXYUSERPWD
CURLOPT_RANDOM_FILE
CURLOPT_RANGE
CURLOPT_REFERER
CURLOPT_SSH_PRIVATE_KEYFILE
CURLOPT_SSH_PUBLIC_KEYFILE
CURLOPT_SSLCERT
CURLOPT_SSLCERTTYPE
CURLOPT_SSLENGINE
CURLOPT_SSLKEY
CURLOPT_SSLKEYTYPE
CURLOPT_SSL_CIPHER_LIST
CURLOPT_URL
CURLOPT_USERAGENT
CURLOPT_USERPWD
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
CURLOPT_CRLFILE
CURLOPT_ISSUERCERT
CURLOPT_USERNAME
CURLOPT_PASSWORD
CURLOPT_PROXYUSERNAME
CURLOPT_PROXYPASSWORD
CURLOPT_NOPROXY
CURLOPT_RTSP_SESSION_UID
CURLOPT_RTSP_STREAM_URI
CURLOPT_RTSP_TRANSPORT
CURLOPT_SOCKS5_GSSAPI_SERVICE
CURLOPT_MAIL_FROM
Else it is the same as for curl_easy_setopt().
Note that CURLOPT_ERRORBUFFER is not in the list above, since it gives the
address of an (empty) character buffer, not the address of a string.
CURLOPT_POSTFIELDS stores the address of static binary data (of type void *) and
thus is not converted. If CURLOPT_COPYPOSTFIELDS is issued after
CURLOPT_POSTFIELDSIZE != -1, the data size is adjusted according to the
CCSID conversion result length.
_ curl_formadd_ccsid()
In the variable argument list, string pointers should be followed by a (long)
CCSID for the following options:
CURLFORM_FILENAME
CURLFORM_CONTENTTYPE
CURLFORM_BUFFER
CURLFORM_FILE
CURLFORM_FILECONTENT
CURLFORM_COPYCONTENTS
CURLFORM_COPYNAME
CURLFORM_PTRNAME
If taken from an argument array, an additional array entry must follow each
entry containing one of the above option. This additional entry holds the CCSID
in its value field, and the option field is meaningless.
It is not possible to have a string pointer and its CCSID across a function
parameter/array boundary.
Please note that CURLFORM_PTRCONTENTS and CURLFORM_BUFFERPTR are considered
unconvertible strings and thus are NOT followed by a CCSID.
_ curl_easy_getinfo_ccsid
The following options are followed by a 'char * *' and a CCSID. Unlike
curl_easy_getinfo(), the value returned in the pointer should be freed after
use:
CURLINFO_EFFECTIVE_URL
CURLINFO_CONTENT_TYPE
CURLINFO_FTP_ENTRY_PATH
Other options are processed like in curl_easy_getinfo().
Standard compilation environment does support neither autotools nor make;
in fact, very few common utilities are available. As a consequence, the
config-os400.h has been coded manually and the compilation scripts are
a set of shell scripts stored in subdirectory packages/OS400.
The "curl" command and the test environment are currently not supported on
OS/400.
Protocols currently implemented on OS/400:
_ HTTP
_ HTTPS
_ FTP
_ FTPS
_ FTP with secure transmission.
_ LDAP
_ DICT
_ TELNET
Compiling on OS/400:
These instructions targets people who knows about OS/400, compiling, IFS and
archive extraction. Do not ask questions about these subjects if you're not
familiar with.
_ As a prerequisite, QADRT development environment must be installed.
_ Install the curl source directory in IFS.
_ Enter shell (QSH)
_ Change current directory to the curl installation directory
_ Change current directory to ./packages/OS400
_ Edit file iniscript.sh. You may want to change tunable configuration
parameters, like debug info generation, optimisation level, listing option,
target library, etc.
_ Copy any file in the current directory to makelog (i.e.:
cp initscript.sh makelog): this is intended to create the makelog file with
an ASCII CCSID!
_ Enter the command "sh makefile.sh > makelog 2>&1'
_ Examine the makelog file to check for compilation errors.
Leaving file initscript.sh unchanged, this will produce the following OS/400
objects:
_ Library CURL. All other objects will be stored in this library.
_ Modules for all libcurl units.
_ Binding directory CURL_A, to be used at calling program link time for
statically binding the modules (specify BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)
when creating a program using CURL_A).
_ Service program CURL.<soname>, where <soname> is extracted from the
lib/Makefile.am VERSION variable. To be used at calling program run-time
when this program has dynamically bound curl at link time.
_ Binding directory CURL. To be used to dynamically bind libcurl when linking a
calling program.
_ Source file H. It contains all the include members needed to compile a C/C++
module using libcurl, and an ILE/RPG /copy member for support in this
language.
_ Standard C/C++ libcurl include members in file H.
_ CCSIDCURL member in file H. This defines the non-standard EBCDIC wrappers for
C and C++.
_ CURL.INC member in file H. This defines everything needed by an ILE/RPG
program using libcurl.
_ LIBxxx modules and programs. Although the test environment is not supported
on OS/400, the libcurl test programs are compiled for manual tests.
Special programming consideration:
QADRT being used, the following points must be considered:
_ If static binding is used, service program QADRTTS must be linked too.
_ The EBCDIC CCSID used by QADRT is 37 by default, NOT THE JOB'S CCSID. If
another EBCDIC CCSID is required, it must be set via a locale through a call
to setlocale_a (QADRT's setlocale() ASCII wrapper) with category LC_ALL or
LC_CTYPE, or by setting environment variable QADRT_ENV_LOCALE to the locale
object path before executing the program.
_ Do not use original source include files unless you know what you are doing.
Use the installed members instead (in /QSYS.LIB/CURL.LIB/H.FILE).
ILE/RPG support:
Since 95% of the OS/400 programmers use ILE/RPG exclusively, a definition
/COPY member is provided for this language. To include all libcurl
definitions in an ILE/RPG module, line
h bnddir('CURL/CURL')
must figure in the program header, and line
d/copy curl/h,curl.inc
in the global data section of the module's source code.
No vararg procedure support exists in ILE/RPG: for this reason, the following
considerations apply:
_ Procedures curl_easy_setopt_long(), curl_easy_setopt_object(),
curl_easy_setopt_function() and curl_easy_setopt_offset() are all alias
prototypes to curl_easy_setopt(), but with different parameter lists.
_ Procedures curl_easy_getinfo_string(), curl_easy_getinfo_long(),
curl_easy_getinfo_double() and curl_easy_getinfo_slist() are all alias
prototypes to curl_easy_getinfo(), but with different parameter lists.
_ Procedures curl_multi_setopt_long(), curl_multi_setopt_object(),
curl_multi_setopt_function() and curl_multi_setopt_offset() are all alias
prototypes to curl_multi_setopt(), but with different parameter lists.
_ The prototype of procedure curl_formadd() allows specifying a pointer option
and the CURLFORM_END option. This makes possible to use an option array
without any additional definition. If some specific incompatible argument
list is used in the ILE/RPG program, the latter must define a specialised
alias. The same applies to curl_formadd_ccsid() too.
Since RPG cannot cast a long to a pointer, procedure curl_form_long_value()
is provided for that purpose: this allows storing a long value in the curl_forms
array.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,64 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2008, 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 http://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.
*
*
***************************************************************************/
#ifndef __CURL_CCSIDCURL_H
#define __CURL_CCSIDCURL_H
#include "curl.h"
#include "easy.h"
#include "multi.h"
CURL_EXTERN char * curl_version_ccsid(unsigned int ccsid);
CURL_EXTERN char * curl_easy_escape_ccsid(CURL * handle,
const char * string, int length,
unsigned int sccsid,
unsigned int dccsid);
CURL_EXTERN char * curl_easy_unescape_ccsid(CURL * handle, const char * string,
int length, int * outlength,
unsigned int sccsid,
unsigned int dccsid);
CURL_EXTERN struct curl_slist * curl_slist_append_ccsid(struct curl_slist * lst,
const char * data,
unsigned int ccsid);
CURL_EXTERN time_t curl_getdate_ccsid(const char * p, const time_t * unused,
unsigned int ccsid);
CURL_EXTERN curl_version_info_data * curl_version_info_ccsid(CURLversion stamp,
unsigned int csid);
CURL_EXTERN const char * curl_easy_strerror_ccsid(CURLcode error,
unsigned int ccsid);
CURL_EXTERN const char * curl_share_strerror_ccsid(CURLSHcode error,
unsigned int ccsid);
CURL_EXTERN const char * curl_multi_strerror_ccsid(CURLMcode error,
unsigned int ccsid);
CURL_EXTERN CURLcode curl_easy_getinfo_ccsid(CURL * curl, CURLINFO info, ...);
CURL_EXTERN CURLFORMcode curl_formadd_ccsid(struct curl_httppost * * httppost,
struct curl_httppost * * last_post,
...);
CURL_EXTERN char * curl_form_long_value(long value);
CURL_EXTERN int curl_formget_ccsid(struct curl_httppost * form, void * arg,
curl_formget_callback append,
unsigned int ccsid);
CURL_EXTERN CURLcode curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...);
#endif

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,176 @@
#!/bin/sh
case "${SCRIPTDIR}" in
/*) ;;
*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
esac
while true
do case "${SCRIPTDIR}" in
*/.) SCRIPTDIR="${SCRIPTDIR%/.}";;
*) break;;
esac
done
# The script directory is supposed to be in $TOPDIR/packages/os400.
TOPDIR=`dirname "${SCRIPTDIR}"`
TOPDIR=`dirname "${TOPDIR}"`
export SCRIPTDIR TOPDIR
# Extract the SONAME from the library makefile.
SONAME=`sed -e '/^VERSIONINFO=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' -e 'q' \
< "${TOPDIR}/lib/Makefile.am"`
export SONAME
################################################################################
#
# Tunable configuration parameters.
#
################################################################################
TARGETLIB='CURL' # Target OS/400 program library
STATBNDDIR='CURL_A' # Static binding directory.
DYNBNDDIR='CURL' # Dynamic binding directory.
SRVPGM="CURL.${SONAME}" # Service program.
TGTCCSID='500' # Target CCSID of objects
DEBUG='*ALL' # Debug level
OPTIMIZE='10' # Optimisation level
OUTPUT='*NONE' # Compilation output option.
TGTRLS='V5R3M0' # Target OS release
export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUT
export TGTRLS
################################################################################
# Need to get the version definitions.
LIBCURL_VERSION=`grep '^#define *LIBCURL_VERSION ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/.*"\(.*\)".*/\1/'`
LIBCURL_VERSION_MAJOR=`grep '^#define *LIBCURL_VERSION_MAJOR ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/^#define *LIBCURL_VERSION_MAJOR *\([^ ]*\).*/\1/'`
LIBCURL_VERSION_MINOR=`grep '^#define *LIBCURL_VERSION_MINOR ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/^#define *LIBCURL_VERSION_MINOR *\([^ ]*\).*/\1/'`
LIBCURL_VERSION_PATCH=`grep '^#define *LIBCURL_VERSION_PATCH ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/^#define *LIBCURL_VERSION_PATCH *\([^ ]*\).*/\1/'`
LIBCURL_VERSION_NUM=`grep '^#define *LIBCURL_VERSION_NUM ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/^#define *LIBCURL_VERSION_NUM *0x\([^ ]*\).*/\1/'`
LIBCURL_TIMESTAMP=`grep '^#define *LIBCURL_TIMESTAMP ' \
"${TOPDIR}/include/curl/curlver.h" |
sed 's/.*"\(.*\)".*/\1/'`
export LIBCURL_VERSION
export LIBCURL_VERSION_MAJOR LIBCURL_VERSION_MINOR LIBCURL_VERSION_PATCH
export LIBCURL_VERSION_NUM LIBCURL_TIMESTAMP
################################################################################
#
# OS/400 specific definitions.
#
################################################################################
LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
################################################################################
#
# Procedures.
#
################################################################################
# action_needed dest [src]
#
# dest is an object to build
# if specified, src is an object on which dest depends.
#
# exit 0 (succeeds) if some action has to be taken, else 1.
action_needed()
{
[ ! -e "${1}" ] && return 0
[ "${2}" ] || return 1
[ "${1}" -ot "${2}" ] && return 0
return 1
}
# make_module module_name source_name [additional_definitions]
#
# Compile source name into ASCII module if needed.
# As side effect, append the module name to variable MODULES.
# Set LINK to "YES" if the module has been compiled.
make_module()
{
MODULES="${MODULES} ${1}"
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
action_needed "${MODIFSNAME}" "${2}" || return 0;
# #pragma convert has to be in the source file itself, i.e.
# putting it in an include file makes it only active
# for that include file.
# Thus we build a temporary file with the pragma prepended to
# the source file and we compile that themporary file.
echo "#line 1 \"${2}\"" > __tmpsrcf.c
echo "#pragma convert(819)" >> __tmpsrcf.c
echo "#line 1" >> __tmpsrcf.c
cat "${2}" >> __tmpsrcf.c
CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
# CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)"
CMD="${CMD} LOCALETYPE(*LOCALE)"
CMD="${CMD} INCDIR('/qibm/proddata/qadrt/include'"
CMD="${CMD} '${TOPDIR}/include/curl' '${TOPDIR}/include'"
CMD="${CMD} '${TOPDIR}/packages/OS400' ${INCLUDES})"
CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
CMD="${CMD} OUTPUT(${OUTPUT})"
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
CMD="${CMD} DBGVIEW(${DEBUG})"
if [ "${3}" ]
then CMD="${CMD} DEFINE(${3})"
fi
system "${CMD}"
rm -f __tmpsrcf.c
LINK=YES
}
# Determine DB2 object name from IFS name.
db2_name()
{
basename "${1}" |
tr '[a-z-]' '[A-Z_]' |
sed -e 's/\..*//' \
-e 's/^\(..........\).*/\1/'
}
# Copy IFS file replacing version info.
versioned_copy()
{
sed -e "s/@LIBCURL_VERSION@/${LIBCURL_VERSION}/g" \
-e "s/@LIBCURL_VERSION_MAJOR@/${LIBCURL_VERSION_MAJOR}/g" \
-e "s/@LIBCURL_VERSION_MINOR@/${LIBCURL_VERSION_MINOR}/g" \
-e "s/@LIBCURL_VERSION_PATCH@/${LIBCURL_VERSION_PATCH}/g" \
-e "s/@LIBCURL_VERSION_NUM@/${LIBCURL_VERSION_NUM}/g" \
-e "s/@LIBCURL_TIMESTAMP@/${LIBCURL_TIMESTAMP}/g" \
< "${1}" > "${2}"
}

View file

@ -0,0 +1,72 @@
#!/bin/sh
#
# Installation of the include files in the OS/400 library.
#
SCRIPTDIR=`dirname "${0}"`
. "${SCRIPTDIR}/initscript.sh"
cd "${TOPDIR}/include"
# Produce the curlbuild.h include file if not yet in distribution (CVS).
if action_needed curl/curlbuild.h
then if action_needed curl/curlbuild.h curl/curlbuild.h.dist
then cp -p curl/curlbuild.h.dist curl/curlbuild.h
fi
fi
# Create the OS/400 source program file for the include files.
SRCPF="${LIBIFSNAME}/H.FILE"
if action_needed "${SRCPF}"
then CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('curl: Header files')"
system "${CMD}"
fi
# Enumeration values are used as va_arg tagfields, so they MUST be
# integers.
copy_hfile()
{
destfile="${1}"
srcfile="${2}"
shift
shift
sed -e '1i\
#pragma enum(int)\
' "${@}" -e '$a\
#pragma enum(pop)\
' < "${srcfile}" > "${destfile}"
}
# Copy the header files.
for HFILE in curl/*.h ${SCRIPTDIR}/ccsidcurl.h
do DEST="${SRCPF}/`db2_name \"${HFILE}\"`.MBR"
if action_needed "${DEST}" "${HFILE}"
then copy_hfile "${DEST}" "${HFILE}"
fi
done
# Copy the ILE/RPG include file, setting-up version number.
versioned_copy "${SCRIPTDIR}/curl.inc.in" "${SRCPF}/CURL.INC.MBR"
# Duplicate file H as CURL to support more include path forms.
if action_needed "${LIBIFSNAME}/CURL.FILE"
then :
else system "DLTF FILE(${TARGETLIB}/CURL)"
fi
CMD="CRTDUPOBJ OBJ(H) FROMLIB(${TARGETLIB}) OBJTYPE(*FILE) TOLIB(*FROMLIB)"
CMD="${CMD} NEWOBJ(CURL) DATA(*YES)"
system "${CMD}"

View file

@ -0,0 +1,192 @@
#!/bin/sh
#
# libcurl compilation script for the OS/400.
#
SCRIPTDIR=`dirname "${0}"`
. "${SCRIPTDIR}/initscript.sh"
cd "${TOPDIR}/lib"
# Create and compile the identification source file.
echo '#pragma comment(user, "libcurl version '"${LIBCURL_VERSION}"'")' > os400.c
echo '#pragma comment(date)' >> os400.c
echo '#pragma comment(copyright, "Copyright (C) 1998-2010 Daniel Stenberg et al. OS/400 version by P. Monnerat")' >> os400.c
make_module OS400 os400.c
LINK= # No need to rebuild service program yet.
MODULES=
# Get source list.
CSOURCES()
{
shift # Drop the equal sign.
CSOURCES="$*" # Get the file names.
}
HHEADERS()
{
shift # Drop the equal sign.
HHEADERS="$*" # Get the file names.
}
. Makefile.inc
# Compile the sources into modules.
INCLUDES="'`pwd`'"
make_module OS400SYS "${SCRIPTDIR}/os400sys.c"
make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c"
for SRC in ${CSOURCES}
do MODULE=`basename "${SRC}" .c |
tr '[a-z]' '[A-Z]' |
sed -e 's/^\(..........\).*/\1/'`
make_module "${MODULE}" "${SRC}"
done
# If needed, (re)create the static binding directory.
if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
then LINK=YES
fi
if [ "${LINK}" ]
then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
CMD="${CMD} TEXT('LibCurl API static binding directory')"
system "${CMD}"
for MODULE in ${MODULES}
do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
system "${CMD}"
done
fi
# The exportation file for service program creation must be in a DB2
# source file, so make sure it exists.
if action_needed "${LIBIFSNAME}/TOOLS.FILE"
then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
CMD="${CMD} TEXT('curl: build tools')"
system "${CMD}"
fi
# Gather the list of symbols to export.
EXPORTS=`grep '^CURL_EXTERN[ ]' \
"${TOPDIR}"/include/curl/*.h \
"${SCRIPTDIR}/ccsidcurl.h" |
sed -e 's/^.*CURL_EXTERN[ ]\(.*\)(.*$/\1/' \
-e 's/[ ]*$//' \
-e 's/^.*[ ][ ]*//' \
-e 's/^\*//' \
-e 's/(\(.*\))/\1/'`
# Create the service program exportation file in DB2 member if needed.
BSF="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
if action_needed "${BSF}" Makefile.am
then LINK=YES
fi
if [ "${LINK}" ]
then echo " STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('LIBCURL_${SONAME}')" \
> "${BSF}"
for EXPORT in ${EXPORTS}
do echo ' EXPORT SYMBOL("'"${EXPORT}"'")' >> "${BSF}"
done
echo ' ENDPGMEXP' >> "${BSF}"
fi
# Build the service program if needed.
if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
then LINK=YES
fi
if [ "${LINK}" ]
then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR})"
CMD="${CMD} BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)"
CMD="${CMD} TEXT('curl API library')"
CMD="${CMD} TGTRLS(${TGTRLS})"
system "${CMD}"
LINK=YES
fi
# If needed, (re)create the dynamic binding directory.
if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
then LINK=YES
fi
if [ "${LINK}" ]
then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
CMD="${CMD} TEXT('LibCurl API dynamic binding directory')"
system "${CMD}"
CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
system "${CMD}"
fi
# Rebuild the formdata test if needed.
if [ "${TEST_FORMDATA}" ]
then MODULES=
make_module TFORMDATA formdata.c "'_FORM_DEBUG' 'CURLDEBUG'"
make_module TSTREQUAL strequal.c "'_FORM_DEBUG' 'CURLDEBUG'"
make_module TMEMDEBUG memdebug.c "'_FORM_DEBUG' 'CURLDEBUG'"
make_module TMPRINTF mprintf.c "'_FORM_DEBUG' 'CURLDEBUG'"
make_module TSTRERROR strerror.c "'_FORM_DEBUG' 'CURLDEBUG'"
# The following modules should not be needed (see comment in
# formdata.c. However, there are some unsatisfied
# external references leading in the following
# modules to be (recursively) needed.
MODULES="${MODULES} EASY STRDUP SSLGEN QSSL HOSTIP HOSTIP4 HOSTIP6"
MODULES="${MODULES} URL HASH TRANSFER GETINFO COOKIE SENDF SELECT"
MODULES="${MODULES} INET_NTOP SHARE HOSTTHRE MULTI LLIST FTP HTTP"
MODULES="${MODULES} HTTP_DIGES HTTP_CHUNK HTTP_NEGOT TIMEVAL HOSTSYN"
MODULES="${MODULES} CONNECT SOCKS PROGRESS ESCAPE INET_PTON GETENV"
MODULES="${MODULES} DICT LDAP TELNET FILE TFTP NETRC PARSEDATE"
MODULES="${MODULES} SPEEDCHECK SPLAY BASE64 SECURITY IF2IP MD5"
MODULES="${MODULES} KRB5 OS400SYS"
PGMIFSNAME="${LIBIFSNAME}/TFORMDATA.PGM"
if action_needed "${PGMIFSNAME}"
then LINK=YES
fi
if [ "${LINK}" ]
then CMD="CRTPGM PGM(${TARGETLIB}/TFORMDATA)"
CMD="${CMD} ENTMOD(QADRT/QADRTMAIN2)"
CMD="${CMD} MODULE("
for MODULE in ${MODULES}
do CMD="${CMD} ${TARGETLIB}/${MODULE}"
done
CMD="${CMD} ) BNDSRVPGM(QADRTTS)"
CMD="${CMD} TGTRLS(${TGTRLS})"
system "${CMD}"
fi
fi

View file

@ -0,0 +1,4 @@
#!/bin/sh
#
#
# Not implemented yet on OS/400.

View file

@ -0,0 +1,114 @@
#!/bin/sh
#
# tests compilation script for the OS/400.
#
SCRIPTDIR=`dirname "${0}"`
. "${SCRIPTDIR}/initscript.sh"
cd "${TOPDIR}/tests"
# tests directory not implemented yet.
# Process the libtest subdirectory.
cd libtest
# Get definitions from the Makefile.inc file.
# The `sed' statement works as follows:
# _ Join \nl-separated lines.
# _ Retain only lines that begins with "identifier =".
# _ Turn these lines into shell variable assignments.
eval "`sed -e ': begin' \
-e '/\\\\$/{' \
-e 'N' \
-e 's/\\\\\\n/ /' \
-e 'b begin' \
-e '}' \
-e '/^[A-Za-z_][A-Za-z0-9_]*[ ]*[=]/b keep' \
-e 'd' \
-e ': keep' \
-e 's/[ ]*=[ ]*/=/' \
-e 's/=\\(.*[^ ]\\)[ ]*$/=\\"\\1\\"/' \
-e 's/\\$(\\([^)]*\\))/${\\1}/g' \
< Makefile.inc`"
# Special case: redefine chkhostname compilation parameters.
chkhostname_SOURCES=chkhostname.c
chkhostname_LDADD=curl_gethostname.o
# Compile all programs.
# The list is found in variable "noinst_PROGRAMS"
INCLUDES="'${TOPDIR}/tests/libtest' '${TOPDIR}/lib'"
for PGM in ${noinst_PROGRAMS}
do DB2PGM=`db2_name "${PGM}"`
PGMIFSNAME="${LIBIFSNAME}/${DB2PGM}.PGM"
# Extract preprocessor symbol definitions from compilation
# options for the program.
PGMCFLAGS="`eval echo \"\\${${PGM}_CFLAGS}\"`"
PGMDEFINES=
for FLAG in ${PGMCFLAGS}
do case "${FLAG}" in
-D?*) DEFINE="`echo \"${FLAG}\" | sed 's/^..//'`"
PGMDEFINES="${PGMDEFINES} '${DEFINE}'"
;;
esac
done
# Compile all C sources for the program into modules.
PGMSOURCES="`eval echo \"\\${${PGM}_SOURCES}\"`"
LINK=
MODULES=
for SOURCE in ${PGMSOURCES}
do case "${SOURCE}" in
*.c) # Special processing for libxxx.c files: their
# module name is determined by the target
# PROGRAM name.
case "${SOURCE}" in
lib*.c) MODULE="${DB2PGM}"
;;
*) MODULE=`db2_name "${SOURCE}"`
;;
esac
make_module "${MODULE}" "${SOURCE}" "${PGMDEFINES}"
if action_needed "${PGMIFSNAME}" "${MODIFSNAME}"
then LINK=yes
fi
;;
esac
done
# Link program if needed.
if [ "${LINK}" ]
then PGMLDADD="`eval echo \"\\${${PGM}_LDADD}\"`"
for LDARG in ${PGMLDADD}
do case "${LDARG}" in
-*) ;; # Ignore non-module.
*) MODULES="${MODULES} "`db2_name "${LDARG}"`
;;
esac
done
MODULES="`echo \"${MODULES}\" |
sed \"s/[^ ][^ ]*/${TARGETLIB}\/&/g\"`"
CMD="CRTPGM PGM(${TARGETLIB}/${DB2PGM})"
CMD="${CMD} ENTMOD(QADRT/QADRTMAIN2)"
CMD="${CMD} MODULE(${MODULES})"
CMD="${CMD} BNDSRVPGM(${TARGETLIB}/${SRVPGM} QADRTTS)"
CMD="${CMD} TGTRLS(${TGTRLS})"
system "${CMD}"
fi
done

View file

@ -0,0 +1,52 @@
#!/bin/sh
#
# curl compilation script for the OS/400.
#
#
# This is a shell script since make is not a standard component of OS/400.
SCRIPTDIR=`dirname "${0}"`
. "${SCRIPTDIR}/initscript.sh"
cd "${TOPDIR}"
# Create the OS/400 library if it does not exist.
if action_needed "${LIBIFSNAME}"
then CMD="CRTLIB LIB(${TARGETLIB}) TEXT('curl: multiprotocol support API')"
system "${CMD}"
fi
# Create the DOCS source file if it does not exist.
if action_needed "${LIBIFSNAME}/DOCS.FILE"
then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
system "${CMD}"
fi
# Copy some documentation files if needed.
for TEXT in "${TOPDIR}/COPYING" "${SCRIPTDIR}/README.OS400" \
"${TOPDIR}/CHANGES" "${TOPDIR}/docs/THANKS" "${TOPDIR}/docs/FAQ" \
"${TOPDIR}/docs/FEATURES" "${TOPDIR}/docs/SSLCERTS" \
"${TOPDIR}/docs/RESOURCES" "${TOPDIR}/docs/VERSIONS" \
"${TOPDIR}/docs/HISTORY"
do MEMBER="`basename \"${TEXT}\" .OS400`"
MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
if action_needed "${MEMBER}" "${TEXT}"
then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}') TOCCSID(${TGTCCSID})"
CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
system "${CMD}"
fi
done
# Build in each directory.
for SUBDIR in include lib src tests
do "${SCRIPTDIR}/make-${SUBDIR}.sh"
done

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,52 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2008, 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 http://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.
*
*
***************************************************************************/
/* OS/400 additional definitions. */
#ifndef __OS400_SYS_
#define __OS400_SYS_
/* Per-thread item identifiers. */
typedef enum {
LK_SSL_ERROR,
LK_LDAP_ERROR,
LK_CURL_VERSION,
LK_VERSION_INFO,
LK_VERSION_INFO_DATA,
LK_EASY_STRERROR,
LK_SHARE_STRERROR,
LK_MULTI_STRERROR,
LK_LAST
} localkey_t;
extern char * (* Curl_thread_buffer)(localkey_t key, long size);
/* Maximum string expansion factor due to character code conversion. */
#define MAX_CONV_EXPANSION 4 /* Can deal with UTF-8. */
#endif

27
third-party/curl-7.21.4/packages/README vendored Normal file
View file

@ -0,0 +1,27 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
PACKAGES
This directory and all its subdirectories are for special package
information, template, scripts and docs. The files herein should be of use for
those of you who want to package curl in a binary or source format using one
of those custom formats.
The hierarchy for these directories is something like this:
packages/[OS]/[FORMAT]/
Currently, we have Win32 and Linux for [OS]. There might be different formats
for the same OS so for Linux we have RPM as format.
We might need to add some differentiation for CPU as well, as there is
Linux-RPMs for several CPUs. However, it might not be necessary since the
packaging should be pretty much the same no matter what CPU that is used.
For each unique OS-FORMAT pair, there's a directory to "fill"! I'd like to
see a single README with as much details as possible, and then I'd like some
template files for the package process.

View file

@ -0,0 +1,38 @@
#
#
PKGADD_PKG="@PKGADD_PKG@"
PKGADD_NAME="@PACKAGE@-@VERSION@ - @PKGADD_NAME@"
PKGADD_VENDOR="@PKGADD_VENDOR@"
PKGADD_ARCH="@host_cpu@"
PKGADD_DESC="@PACKAGE@-@VERSION@ - @PKGADD_NAME@"
PKGADD_CLASSES=none
PKGADD_BASEDIR=/
PKGADD_FILE=${PKGADD_PKG}-@PACKAGE@-@VERSION@-@host@.pkg
package:
if [ ! -f release ]; then echo 0 > release; fi
if [ `find root -newer release -print|wc -l` -gt 0 ]; then expr `cat release` + 1 > release; fi
echo PKG=${PKGADD_PKG} > pkginfo
echo NAME=${PKGADD_NAME} >> pkginfo
echo VENDOR=${PKGADD_VENDOR} >> pkginfo
echo ARCH=${PKGADD_ARCH} >> pkginfo
echo DESC=${PKGADD_DESC} >> pkginfo
echo CLASSES=${PKGADD_CLASSES} >> pkginfo
echo BASEDIR=${PKGADD_BASEDIR} >> pkginfo
echo CATEGORY=application >> pkginfo
echo VERSION=`cat ./release` >> pkginfo
echo > prototype
for subdir in opt var etc usr; \
do if [ -d root/$$subdir ]; then \
pkgproto root/$$subdir=$$subdir >> prototype;\
fi; done
for file in pkginfo preinstall postinstall copyright; \
do if [ -f $$file ]; then \
echo "i $$file=$$file" >> prototype; \
fi; done
rm -rf ./tmp
mkdir ./tmp
pkgmk -o -d ./tmp
pkgtrans -so ./tmp ${top_srcdir}/../${PKGADD_FILE} ${PKGADD_PKG}

View file

@ -0,0 +1,60 @@
EXPORTS
curl_easy_cleanup @ 1 NONAME
curl_easy_duphandle @ 2 NONAME
curl_easy_escape @ 3 NONAME
curl_easy_getinfo @ 4 NONAME
curl_easy_init @ 5 NONAME
curl_easy_pause @ 6 NONAME
curl_easy_perform @ 7 NONAME
curl_easy_reset @ 8 NONAME
curl_easy_setopt @ 9 NONAME
curl_easy_strerror @ 10 NONAME
curl_easy_unescape @ 11 NONAME
curl_escape @ 12 NONAME
curl_formadd @ 13 NONAME
curl_formfree @ 14 NONAME
curl_formget @ 15 NONAME
curl_free @ 16 NONAME
curl_getdate @ 17 NONAME
curl_getenv @ 18 NONAME
curl_global_cleanup @ 19 NONAME
curl_global_init @ 20 NONAME
curl_global_init_mem @ 21 NONAME
curl_maprintf @ 22 NONAME
curl_mfprintf @ 23 NONAME
curl_mprintf @ 24 NONAME
curl_msnprintf @ 25 NONAME
curl_msprintf @ 26 NONAME
curl_multi_add_handle @ 27 NONAME
curl_multi_assign @ 28 NONAME
curl_multi_cleanup @ 29 NONAME
curl_multi_fdset @ 30 NONAME
curl_multi_info_read @ 31 NONAME
curl_multi_init @ 32 NONAME
curl_multi_perform @ 33 NONAME
curl_multi_remove_handle @ 34 NONAME
curl_multi_setopt @ 35 NONAME
curl_multi_socket @ 36 NONAME
curl_multi_socket_action @ 37 NONAME
curl_multi_socket_all @ 38 NONAME
curl_multi_strerror @ 39 NONAME
curl_multi_timeout @ 40 NONAME
curl_mvaprintf @ 41 NONAME
curl_mvfprintf @ 42 NONAME
curl_mvprintf @ 43 NONAME
curl_mvsnprintf @ 44 NONAME
curl_mvsprintf @ 45 NONAME
curl_share_cleanup @ 46 NONAME
curl_share_init @ 47 NONAME
curl_share_setopt @ 48 NONAME
curl_share_strerror @ 49 NONAME
curl_slist_append @ 50 NONAME
curl_slist_free_all @ 51 NONAME
curl_strequal @ 52 NONAME
curl_strnequal @ 53 NONAME
curl_unescape @ 54 NONAME
curl_version @ 55 NONAME
curl_version_info @ 56 NONAME
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME

View file

@ -0,0 +1,60 @@
EXPORTS
curl_easy_cleanup @ 1 NONAME
curl_easy_duphandle @ 2 NONAME
curl_easy_escape @ 3 NONAME
curl_easy_getinfo @ 4 NONAME
curl_easy_init @ 5 NONAME
curl_easy_pause @ 6 NONAME
curl_easy_perform @ 7 NONAME
curl_easy_reset @ 8 NONAME
curl_easy_setopt @ 9 NONAME
curl_easy_strerror @ 10 NONAME
curl_easy_unescape @ 11 NONAME
curl_escape @ 12 NONAME
curl_formadd @ 13 NONAME
curl_formfree @ 14 NONAME
curl_formget @ 15 NONAME
curl_free @ 16 NONAME
curl_getdate @ 17 NONAME
curl_getenv @ 18 NONAME
curl_global_cleanup @ 19 NONAME
curl_global_init @ 20 NONAME
curl_global_init_mem @ 21 NONAME
curl_maprintf @ 22 NONAME
curl_mfprintf @ 23 NONAME
curl_mprintf @ 24 NONAME
curl_msnprintf @ 25 NONAME
curl_msprintf @ 26 NONAME
curl_multi_add_handle @ 27 NONAME
curl_multi_assign @ 28 NONAME
curl_multi_cleanup @ 29 NONAME
curl_multi_fdset @ 30 NONAME
curl_multi_info_read @ 31 NONAME
curl_multi_init @ 32 NONAME
curl_multi_perform @ 33 NONAME
curl_multi_remove_handle @ 34 NONAME
curl_multi_setopt @ 35 NONAME
curl_multi_socket @ 36 NONAME
curl_multi_socket_action @ 37 NONAME
curl_multi_socket_all @ 38 NONAME
curl_multi_strerror @ 39 NONAME
curl_multi_timeout @ 40 NONAME
curl_mvaprintf @ 41 NONAME
curl_mvfprintf @ 42 NONAME
curl_mvprintf @ 43 NONAME
curl_mvsnprintf @ 44 NONAME
curl_mvsprintf @ 45 NONAME
curl_share_cleanup @ 46 NONAME
curl_share_init @ 47 NONAME
curl_share_setopt @ 48 NONAME
curl_share_strerror @ 49 NONAME
curl_slist_append @ 50 NONAME
curl_slist_free_all @ 51 NONAME
curl_strequal @ 52 NONAME
curl_strnequal @ 53 NONAME
curl_unescape @ 54 NONAME
curl_version @ 55 NONAME
curl_version_info @ 56 NONAME
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME

View file

@ -0,0 +1,10 @@
//
// libcurl and curl bld.inf file for Symbian OS
//
PRJ_EXPORTS
libcurl.iby /epoc32/rom/include/libcurl.iby
curl.iby /epoc32/rom/include/curl.iby
PRJ_MMPFILES
libcurl.mmp
curl.mmp

View file

@ -0,0 +1,15 @@
//
// curl file transfer utility command-line utility
//
// Use this file with buildrom to add curl to a device ROM
//
#ifndef CURL_IBY
#define CURL_IBY
#include <openenv.iby>
#include <libcurl.iby>
file=ABI_DIR\BUILD_DIR\curl.exe \sys\bin\curl.exe
#endif // CURL_IBY

View file

@ -0,0 +1,28 @@
//
// cURL network retrieval client
//
TARGET curl.exe
TARGETTYPE exe
UID 0x00000000 0xF0206442
SOURCEPATH ../../../src
SOURCE \
main.c hugehelp.c urlglob.c writeout.c writeenv.c \
getpass.c homedir.c curlutil.c os-specific.c xattr.c
SOURCEPATH ../../../lib
SOURCE \
rawstr.c nonblock.c
USERINCLUDE ../../../src ../../../lib ../../../include/curl
SYSTEMINCLUDE ../../../include /epoc32/include /epoc32/include/stdapis
LIBRARY euser.lib libc.lib libcurl.lib
STATICLIBRARY libcrt0.lib
CAPABILITY NetworkServices
EPOCSTACKSIZE 0x8000

View file

@ -0,0 +1,26 @@
; curl package defintion file
; Use with makesis to create a Symbian .sis package
;Language - standard language definitions
&EN
;Header - standard sis file header including version number
;Version scheme: curl's major, curl's minor, curl's subminor*100 + build number
; e.g. The third Symbian package of curl ver. 7.20.1 would have a SIS package
; version of 7, 20, 103
#{"curl"}, (0xF0206442), 7, 20, <please_update_version>, TYPE=SA
; Vendor name
%{"curl project"}
:"curl project"
; Embedded component
@"libcurl.sis",(0xF0206D00)
; A dependency on P.I.P.S. and the stdio server are probably good to have here
;(0x20009A80), *, *, *, {"Open C Standard Libraries"}
;(0x20009A81), *, *, *, {"P.I.P.S. for UIQ 3"}
;(0x20009AA2), *, *, *, {"Symbian OS STDIOSERVER"}
;Files - standard file specifications
"\epoc32\release\armv5\urel\curl.exe" - "$:\sys\bin\curl.exe"

View file

@ -0,0 +1,14 @@
//
// libcurl file transfer DLL
//
// Use this file with buildrom to add libcurl to a device ROM
//
#ifndef LIBCURL_IBY
#define LIBCURL_IBY
#include <openenv.iby>
file=ABI_DIR\BUILD_DIR\libcurl.dll \sys\bin\libcurl.dll
#endif // LIBCURL_IBY

View file

@ -0,0 +1,59 @@
//
// libcurl.dll cURL network retrieval client library
//
// Build-time options (uncomment these to enable)
#define ENABLE_ZLIB // Enable gzip/deflate decompression
//#define ENABLE_SSL // Enable SSL for HTTPS/FTPS (requires S60 Open C SDK)
TARGET libcurl.dll
TARGETTYPE dll
UID 0x1000008d 0xF0206D00
MACRO BUILDING_LIBCURL
#ifdef ENABLE_ZLIB
MACRO HAVE_LIBZ
#endif
#ifdef ENABLE_SSL
MACRO USE_SSLEAY
#endif
SOURCEPATH ../../../lib
SOURCE \
file.c timeval.c base64.c hostip.c progress.c formdata.c \
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
ldap.c ssluse.c version.c getenv.c escape.c mprintf.c telnet.c \
netrc.c getinfo.c transfer.c strequal.c easy.c security.c krb4.c \
curl_fnmatch.c fileinfo.c ftplistparser.c wildcard.c krb5.c \
memdebug.c http_chunks.c strtok.c connect.c llist.c hash.c multi.c \
content_encoding.c share.c http_digest.c md4.c md5.c curl_rand.c \
http_negotiate.c http_ntlm.c inet_pton.c strtoofft.c strerror.c \
hostares.c hostasyn.c hostip4.c hostip6.c hostsyn.c hostthre.c \
inet_ntop.c parsedate.c select.c gtls.c sslgen.c tftp.c splay.c \
strdup.c socks.c ssh.c nss.c qssl.c rawstr.c curl_addrinfo.c \
socks_gssapi.c socks_sspi.c curl_sspi.c slist.c nonblock.c \
curl_memrchr.c imap.c pop3.c smtp.c pingpong.c rtsp.c curl_threads.c \
warnless.c hmac.c polarssl.c curl_rtmp.c openldap.c curl_gethostname.c\
gopher.c
USERINCLUDE ../../../lib ../../../include/curl
#ifdef ENABLE_SSL
SYSTEMINCLUDE /epoc32/include/osextensions/stdapis
// Older versions of the SDK need this instead:
//USERINCLUDE /epoc32/include/stdapis/openssl
#endif
SYSTEMINCLUDE ../../../include /epoc32/include/stdapis /epoc32/include
LIBRARY euser.lib libc.lib
#ifdef ENABLE_ZLIB
LIBRARY ezlib.lib
#endif
#ifdef ENABLE_SSL
LIBRARY libssl.lib libcrypto.lib
#endif
CAPABILITY NetworkServices
EPOCALLOWDLLDATA

View file

@ -0,0 +1,22 @@
; libcurl package defintion file
; Use with makesis to create a Symbian .sis package
;Language - standard language definitions
&EN
;Header - standard sis file header including version number
;Version scheme: curl's major, curl's minor, curl's subminor*100 + build number
; e.g. The third Symbian package of curl ver. 7.20.1 would have a SIS package
; version of 7, 20, 103
#{"libcurl"}, (0xF0206D00), 7, 20, <please_update_version>, TYPE=SA
; Vendor name
%{"curl project"}
:"curl project"
; A dependency on P.I.P.S. is probably a good idea to add here
;(0x20009A80), *, *, *, {"Open C Standard Libraries"}
;(0x20009A81), *, *, *, {"P.I.P.S. for UIQ 3"}
;Files - standard file specifications
"\epoc32\release\armv5\urel\libcurl.dll" - "$:\sys\bin\libcurl.dll"

View file

@ -0,0 +1,93 @@
Curl on Symbian OS
==================
This is a basic port of curl and libcurl to Symbian OS. The port is
a straightforward one using Symbian's P.I.P.S. POSIX compatibility
layer, which was first available for OS version 9.1. A more complete
port would involve writing a Symbian C++ binding, or wrapping libcurl
as a Symbian application server with a C++ API to handle requests
from client applications as well as creating a GUI application to allow
file transfers. The author has no current plans to do so.
This means that integration with standard Symbian OS programs can be
tricky, since libcurl isn't designed with Symbian's native asynchronous
message passing idioms in mind. However, it may be possible to use libcurl
in an active object-based application through libcurl's multi interface.
The port is most easily used when porting POSIX applications to Symbian
OS using P.I.P.S. (a.k.a. Open C).
libcurl is built as a standard Symbian ordinal-linked DLL, and curl is
built as a text mode EXE application. They have not been Symbian
Signed, which is required in order to install them on most phones.
Following are some things to keep in mind when using this port.
curl notes
----------
When starting curl in the Windows emulator from the Windows command-line,
place a double-dash -- before the first curl command-line option.
e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/
Failure to do so may mean that some of your options won't be correctly
processed.
Symbian's ESHELL allows for redirecting stdin and stdout to files, but
stderr goes to the epocwind.out file (on the emulator). The standard
curl options -o, --stderr and --trace-ascii can be used to
redirect output to a file (or stdout) instead.
P.I.P.S. doesn't inherit the current working directory at startup from
the shell, so relative path names are always relative to
C:\Private\f0206442\.
P.I.P.S. provides no way to disable echoing of characters as they are
entered, so passwords typed in on the console will be visible. It also
line buffers keyboard input so interactive telnet sessions are not very
feasible.
All screen output disappears after curl exits, so after a command completes,
curl waits by default for Enter to be pressed before exiting. This behaviour
is suppressed when the -s option is given.
curl's "home directory" in Symbian is C:\Private\f0206442\. The .curlrc file
is read from this directory on startup.
libcurl notes
-------------
libcurl uses writable static data, so the EPOCALLOWDLLDATA option is
used in its MMP file, with the corresponding additional memory usage
and limitations on the Windows emulator.
curl_global_init() *must* be called (either explicitly or implicitly through
calling certain other libcurl functions) before any libcurl functions
that could allocate memory (like curl_getenv()).
P.I.P.S. doesn't support signals or the alarm() call, so some timeouts
(such as the connect timeout) are not honoured. This should not be
an issue once support for CURLRES_THREADED is added for Symbian.
P.I.P.S. causes a USER:87 panic if certain timeouts much longer than
half an hour are selected.
LDAP, SCP or SFTP methods are not supported due to lack of support for
the dependent libaries on Symbian.
gzip and deflate decompression is supported when the appropriate macro
is uncommented in the libcurl.mmp file.
SSL/TLS encryption is not enabled by default, but it is possible to add
when the OpenSSL libraries included in the S60 Open C SDK are available.
The appropriate macro in the libcurl.mmp file must be uncommented to
enable support.
NTLM authentication may not work on some servers due to the lack of
MD4 support in the OpenSSL libraries included with Open C.
Debug builds are not supported (i.e. --enable-debug) because they cause
additional symbol exports in the library which are not frozen in the .def
files.
Dan Fandrich
dan@coneharvesters.com
March 2010

View file

@ -0,0 +1,61 @@
#######################################################################
# #
# MAKEFILE NAME..... curl.mak #
# #
# DESCRIPTION..... This is the makefile for libcurl. #
# #
#######################################################################
APP := CURL
TPF_RUN_TPFSOCHK := NO
#######################################################################
# Define any additional libs needed to link
#######################################################################
LIBS := CRYP CSSL
#######################################################################
# Define the envs needed to build this module
#######################################################################
maketpf_env := curllib
maketpf_env += openssl
maketpf_env += base_rt
maketpf_env += system
#######################################################################
# Segments to be compiled with gcc compiler
#######################################################################
#
### lib directory:
include $(word 1,$(wildcard $(foreach d,$(TPF_ROOT),$d/opensource/curl/lib/Makefile.inc)) Makefile.inc_not_found)
C_SRC := $(CSOURCES)
#######################################################################
# Additions and overrides for gcc compiler flags
#######################################################################
# suppress expected warnings in the ported code:
CFLAGS_CURL += -w
# use SSL
# (overrides Curl's lib/config-tpf.h file)
CFLAGS_CURL += -DUSE_OPENSSL
CFLAGS_CURL += -DUSE_SSLEAY
# disable all protocols except FTP and HTTP
# (overrides Curl's lib/config-tpf.h file)
CFLAGS_CURL += -DCURL_DISABLE_DICT
CFLAGS_CURL += -DCURL_DISABLE_FILE
CFLAGS_CURL += -DCURL_DISABLE_LDAP
CFLAGS_CURL += -DCURL_DISABLE_TELNET
CFLAGS_CURL += -DCURL_DISABLE_TFTP
#######################################################################
# Include the maketpf.rules
#######################################################################
include maketpf.rules

View file

@ -0,0 +1,25 @@
################################################################################
################################################################################
#env TPF CURL Includes
################################################################################
################################################################################
################################################################################
# Define the directories where the shared objects reside
################################################################################
ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib)
################################################################################
# Set the include/header file directories
################################################################################
ROOTINCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include)
ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include/curl)
################################################################################
# Define "TPF" to enable TPF-specific code in Curl files.
################################################################################
CFLAGS_$(APP) += -D TPF

View file

@ -0,0 +1,57 @@
################################################################################
################################################################################
#env TPF CURL Library Source and Output
################################################################################
################################################################################
################################################################################
# Define the directories where the shared objects reside
################################################################################
ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib)
################################################################################
# Define the directories where the loadables (XXXXVV) are to be written
################################################################################
ROOTLOADDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/load)
################################################################################
# Define the location of the export files used by the LD postprocessor
# - currently expected that .exp files will also live in lib dir
################################################################################
ROOTEXPDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/output/exp)
################################################################################
# Define the object file directory name
################################################################################
ROOTOBJDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/obj)
################################################################################
# Define the listing files directory name
################################################################################
ROOTLSTDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lst)
################################################################################
# Set the include/header file directories
################################################################################
ROOTINCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/lib)
ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include)
ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include/curl)
################################################################################
# Set the C file directories
################################################################################
ROOTCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/lib)
################################################################################
# Define "TPF" to enable TPF-specific code in Curl files.
################################################################################
CFLAGS_$(APP) += -D TPF

View file

@ -0,0 +1,3 @@
SUBDIRS = cygwin
EXTRA_DIST = README

View file

@ -0,0 +1,53 @@
Author: Jörn Hartroth
DESCRIPTION
(If you're only looking for precompiled win32 binaries, go visit
http://curl.haxx.se/download.html)
Packaging of the curl binaries for Win32 should at this point in time be based
on the InfoZip (zip/unzip) archiver family as the de-facto standard for
Windows archives. A package should contain the main binary curl.exe along with
the appropriate documentation and license information files. For development
releases, you should also include the header directory and probably the
compiled binaries of libcurl and the appropriate Makefiles/project definition
files for the compiler used.
A simple packaging mechanism can be based on a set of batch files which call
zip.exe with the appropriate files from the curl distribution - see the
samples included below (Long lines have been split with "\" as the split
marker, you'll want to rejoin the pieces to be all on one line in the batch
file). Call any of these batch files - after compiling the curl binaries -
with a single parameter specifying the name of the archive file to be created.
It is implicitely assumed that all of the binary files (curl.exe, libcurl.a,
etc) have previously been copied to the main directory of the curl source
package (the directory where the main README resides), because that is where
they should end up in the zip archive. The archive should *not* be built with
absolute path information because the user will want to locally extract the
archive contents and shift the binaries to his executable directory.
SCRIPT_TEMPLATES
curlpkg.bat:
zip -9 %1 curl.exe CHANGES LEGAL MPL-1.0.txt README \
docs/FAQ docs/FEATURES docs/README.curl docs/README.win32 docs/TODO
curldevpkg.bat:
zip -9 %1 curl.exe include\README include\curl\*.h CHANGES docs\* \
curl.spec curl-ssl.spec LEGAL lib/Makefile.m32 src/Makefile.m32 \
libcurl.a libcurl.dll libcurldll.a MPL-1.0.txt README
PROCEDURE_EXAMPLE
A standard packaging routine (for MingW32) using the above batch files could
go like this:
(No SSL) (With SSL)
cd <curl-sourcedir>\lib cd <curl-sourcedir>\lib
make -f Makefile.m32 make -f Makefile.m32 SSL=1
cd ..\src cd ..\src
make -f Makefile.m32 make -f Makefile.m32 SSL=1
cd .. cd ..
copy lib\libcurl.a . copy lib\libcurl.a .
copy src\curl.exe . copy src\curl.exe .
curlpkg curl-win32-nossl.zip curlpkg curl-win32-ssl.zip

View file

@ -0,0 +1,62 @@
EXTRA_DIST = README
#
# Build a Cygwin binary tar ball
#
# Read the README file for details on using this Makefile
#
# NOTE: As I'm not particularly familiar with Makefiles, this was the
# best I could come up with. It should probably be enhanced someday
# to actually use the correct target and pre-requisite names, etc...
# If anyone else wants to volunteer, feel free ;-)
#
# Cygwin build number (default to "1")
CYGBUILD = 1
# Cygwin tarball build dir (fully-qualified name, gets deleted when done)
cygwintmp = $(CURDIR)/tmp_binbuild
cygwinbin:
rm -rf $(cygwintmp)
rm -rf $(cygwintmp)-dev
$(MAKE) -C $(top_builddir) DESTDIR=$(cygwintmp) install-strip
# $(STRIP) $(cygwintmp)/usr/bin/cygcurl-?.dll
$(mkinstalldirs) \
$(cygwintmp)$(datadir)/doc/Cygwin \
$(cygwintmp)$(datadir)/doc/$(PACKAGE)-$(VERSION) \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/libcurl \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/examples \
$(cygwintmp)-dev$(mandir)
#
# copy some files into the binary install dir
cp $(srcdir)/README \
$(cygwintmp)$(datadir)/doc/Cygwin/$(PACKAGE)-$(VERSION)-$(CYGBUILD).README
cd $(top_srcdir) ; cp CHANGES COPYING README RELEASE-NOTES docs/* \
$(cygwintmp)$(datadir)/doc/$(PACKAGE)-$(VERSION) ; pwd
cd $(cygwintmp)$(datadir)/doc/$(PACKAGE)-$(VERSION) ; rm *.1 Makefile*
#
# copy some files into the -dev install dir, remove some from binary
cp $(top_srcdir)/docs/libcurl/*.html \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/libcurl
cp $(top_srcdir)/docs/examples/* \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/examples
rm $(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/examples/Makefile*
cp $(top_srcdir)/docs/examples/Makefile.example \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)/examples
mv $(cygwintmp)$(datadir)/doc/$(PACKAGE)-$(VERSION)/BINDINGS \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)
mv $(cygwintmp)$(datadir)/doc/$(PACKAGE)-$(VERSION)/INTERNALS \
$(cygwintmp)-dev$(datadir)/doc/$(PACKAGE)-$(VERSION)
mv $(cygwintmp)/usr/include $(cygwintmp)-dev/usr
mv $(cygwintmp)/usr/lib $(cygwintmp)-dev/usr
mv $(cygwintmp)$(mandir)/man3 $(cygwintmp)-dev$(mandir)
#
# create both tar files, and delete tmp folders
cd $(cygwintmp) ; tar cjf \
$(PACKAGE)-$(VERSION)-$(CYGBUILD).tar.bz2 usr
mv $(cygwintmp)/*.tar.bz2 . && rm -rf $(cygwintmp)
#
cd $(cygwintmp)-dev ; tar cjf \
$(PACKAGE)-devel-$(VERSION)-$(CYGBUILD).tar.bz2 usr
mv $(cygwintmp)-dev/*.tar.bz2 . && rm -rf $(cygwintmp)-dev

View file

@ -0,0 +1,114 @@
Curl is a tool for transferring files with URL syntax, supporting
FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP.
Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
FTP uploading, kerberos, HTTP form based upload, proxies,
cookies, user+password authentication, file transfer resume,
http proxy tunneling and a busload of other useful tricks.
See /usr/doc/curl-$(VERSION)/FEATURES for more info.
Dependencies:
- Cygwin
- OpenSSL 0.9.6b-2+ (*)
(*) cURL can be built without SSL support, see below for details
Canonical Homepage and Downloads:
http://curl.haxx.se/
http://curl.haxx.se/download.html
Cygwin specific source files (a .README template and a Makefile
for building binary tarballs) are maintained in the upstream
CVS at: <srctop>/packages/Win32/cygwin/
Build Instructions (to recompile from the cygwin source tarball):
---STANDARD (with SSL) RELEASE---
Download the source (either the official release or the cygwin version),
unpack it (done for you if using setup.exe), then:
$ ./configure --prefix=/usr --mandir=/usr/share/man # (*)
$ make
$ make test # optional
$ make install # (**)
(*) The Cygwin project now (as of sometime in 2003) prefers man pages
within /usr/share/man, as opposed to the default /usr/man.
(**) LibTool 1.4.2 had a bug related to cygwin's use of ".exe" extensions,
such that "make install" blew up at curl.exe. See this URL for details:
http://mail.gnu.org/pipermail/libtool/2001-September/005549.html
The copy of ltmain.sh that is distributed with cURL includes this patch.
As of curl 7.9.1, the official source compiles (under Cygwin) and tests
100% cleanly OOTB (Out Of The Box)
---NO SSL RELEASE---
Same as standard, except for the configure step, which changes to:
$ ./configure --prefix=/usr --mandir=/usr/share/man --without-ssl
NOTE: the standard release is what is available via Cygwin's setup.exe;
the no-ssl release is only available from the curl website
Packaging Instructions:
---BINARY---
Compile cleanly as described above, then:
$ make cygwinbin CYGBUILD=n
where n is the cygwin release number (e.g. the "1" in curl-7.9-1),
and "CYGBUILD=n" is optional (n defaults to 1 if not specified)
Assuming everything worked, you'll find your binary tarballs in
$(buildtop)/packages/Win32/cygwin/
---SOURCE---
1. download & unpack the pristine source
2. rename the source dir to add the "-$(REL)" suffix, e.g.:
$ mv curl-7.9 curl-7.9-1
3. unpack the pristine source once more, so you'll end up
with 2 directories: "curl-7.9" and "curl-7.9-1" in this example
3. add a CYGWIN-PATCHES directory, and add this readme to it
$ cd curl-7.9-1; mkdir CYGWIN-PATCHES
$ cp packages/Win32/cygwin/README CYGWIN-PATCHES/curl-7.9-1.README
4. if applicable, document any changes in the README file
5. create a patch which, when applied
(using `patch -p1 < curl-7.9-$(REL).patch`)
will remove any changes you've made to the pristine source:
$ cd ..
$ diff -Nrup curl-7.9-1 curl-7.9 > curl-7.9-1.patch
and then move it into the CYGWIN-PATCHES directory
$ mv curl-7.9-1.patch curl-7.9-1/CYGWIN-PATCHES
6. pack the new source dir into a tar.bz2 file:
$ tar cfj curl-7.9-1-src.tar.bz2 curl-7.9-1
---SETUP.HINT---
@ curl
sdesc: "a client that groks URLs"
ldesc: "Curl is a tool for transferring files with URL syntax,
supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE
and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
FTP uploading, kerberos, HTTP form based upload, proxies,
cookies, user+password authentication, file transfer resume,
http proxy tunneling and a busload of other useful tricks."
category: Web Libs
requires: cygwin openssl
@ curl-devel
sdesc: "(lib)cURL headers, static libraries, developer docs and samples"
ldesc: "curl-devel is the developer-oriented (non-run-time) parts
of the cURL package. It includes header files, static libraries,
example source code snippets, and the libcurl man pages."
category: Web Libs Devel
requires: cygwin openssl curl
Cygwin port maintained by:
Kevin Roth <kproth @ users . sourceforge . net>
Questions about cURL should be directed to curl-users@cool.haxx.se.
Questions about this cygwin package go to cygwin@cygwin.com.

View file

@ -0,0 +1,16 @@
EXTRA_DIST = build_vms.com \
curlmsg.h \
curlmsg.msg \
curlmsg.sdl \
curlmsg_vms.h \
hpssl_alpha.opt \
hpssl_ia64.opt \
hpssl_vax.opt \
ldap.opt \
openssl_alpha.opt \
openssl_ia64.opt \
openssl_vax.opt \
openssl_ssl_alpha.opt \
openssl_ssl_ia64.opt \
openssl_ssl_vax.opt \
readme

View file

@ -0,0 +1,583 @@
$! BUILD_VMS.COM
$!
$! I've taken the original build_vms.com, supplied by Nico Baggus, if
$! memory serves me correctly, and made some modifications.
$!
$! SSL support is controlled by logical names. If SSL$INCLUDE is
$! defined, then it is assumed that HP's SSL product has been installed.
$! If OPENSSL is defined, but SSL$INCLUDE is not, then OpenSSL will be
$! used. If neither logical name is defined, then SSL support will not
$! be compiled/linked in. Command-line options NOHPSSL and NOSSL can be
$! specified to override the automatic SSL selection.
$!
$! Command-line Options:
$!
$! CLEAN Delete product files for this host architecture. (No
$! build done.)
$! CLEAN_ALL Delete product files for all host architectures. (No
$! build done.)
$!
$! 64 Compile with 64-bit pointers.
$! CCQUAL=x Add "x" to the C compiler qualifiers.
$! DEBUG Compile and link with debug.
$! IEEE Use IEEE floating point. (Alpha.)
$! LARGE Enable large-file support. (Non-VAX, VMS >= V7.2.)
$! LDAP Enable LDAP support.
$! LIST Create C compiler listings and linker maps.
$! NOHPSSL Don't use HP SSL, even if available.
$! NOSSL Don't use any SSL, even if available.
$! OSSLOLB Use OpenSSL object libraries (.OLB), even if shared
$! images (.EXE) are available.
$!
$! DCL Symbols:
$!
$! CURL_CCDEFS="c_macro_1=value1 [, c_macro_2=value2 [...]]"
$! Compile with these additional C macros defined.
$!
$! Revisions:
$!
$! 2-DEC-2003, MSK, the "original" version.
$! It works for me. Your mileage may vary.
$! 13-JAN-2004, MSK, moved this procedure to the [.packages.vms] directory
$! and updated it to do hardware dependent builds.
$! 29-JAN-2004, MSK, moved logical defines into defines.com
$! 6-FEB-2004, MSK, put in various SSL support bits
$! 9-MAR-2004, MSK, the config-vms.h* files are now copied to the lib and
$! src directories as curl_config.h.
$! 15-MAR-2004, MSK, All of the curlmsg*.* files have also been moved to
$! this build directory. They will be copied to the src
$! directory before build. The .msg file will be compiled
$! to get the .obj for messages, but the .h and .sdl files
$! are not automatically created since they partly rely on
$! the freeware SDL tool.
$! 8-FEB-2005, MSK, merged the two config-vms.h* files into one that uses
$! USE_SSLEAY to define if the target has SSL support built
$! in. Changed the cc/define parameter accordingly.
$! 11-FEB-2005, MSK, If [--.LIB]AMIGAOS.C and NWLIB.C are there, rename them
$! 23-MAR-2005, MSK, relocated cc_qual define so that DEBUG option would work
$! 25-APR-2007, STL, allow compilation in 64-bit mode.
$! 13-DEC-2009. SMS, Changed to skip unwanted source files without
$! renaming the original files.
$! Eliminated needless, persistent logical names.
$! Added CURL_CCDEFS DCL symbol for user-specified C
$! macro definitions.
$! Added CLEAN and CLEAN_ALL options.
$! Added CCQUAL option for user-specified C compiler
$! qualifiers.
$! Added IEEE option for IEEE floating point (Alpha).
$! Added LARGE option for large-file support.
$! Added OSSLOLB option, and support for OpenSSL
$! shared images.
$! Changed to put listing and map files into lisdir:.
$! Changed to avoid case confusion on ODS5 disks.
$! Added more default dev:[dir] save+restore.
$! Moved remaining "defines.com" code (back) into
$! here, eliminating the hard-coded OpenSSL nonsense.
$! Changed to use F$GETSYI( "ARCH_NAME") (or
$! equivalent) to name architecture-specific product
$! file destination directory, and to create the
$! directory if needed (obviating inclusion of these
$! directories and dummy files in the distribution
$! kit).
$! Changed the "compile" subroutine to break the CC
$! command across multiple lines to avoid DCL
$! line-too-long problems.
$! Changed "vo_c" messages to show the CC qualifiers
$! once, not with every compile command.
$!
$!
$! Save the original default dev:[dir], and arrange for its restoration
$! at exit.
$!
$ curl = ""
$ orig_def = f$environment( "DEFAULT")
$ on error then goto Common_Exit
$ on control_y then goto Common_Exit
$!
$ ctrl_y = 1556
$ proc = f$environment( "PROCEDURE")
$ proc_dev_dir = -
f$parse( proc, , , "DEVICE")+ f$parse( proc, , , "DIRECTORY")
$!
$! Verbose output message stuff. Define symbol to "write sys$output" or "!".
$! vo_c - verbose output for compile
$! vo_l - link
$! vo_o - object check
$!
$ vo_c = "write sys$output"
$ vo_l = "write sys$output"
$ vo_o = "!"
$!
$! Determine the main distribution directory ("[--]") in an
$! ODS5-tolerant (case-insensitive) way. (We do assume that the only
$! "]" is the one at the end.)
$!
$ set default 'proc_dev_dir'
$ set default [--]
$ top_dev_dir = f$environment( "DEFAULT")- "]"
$!
$! Define the architecture-specific product file destination directory
$! name(s).
$!
$ if (f$getsyi( "HW_MODEL") .lt. 1024)
$ then
$ arch_name = "VAX"
$ else
$ arch_name = ""
$ arch_name = arch_name+ f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if (arch_name .eqs. "") then arch_name = "UNK"
$ endif
$!
$ exedir = proc_dev_dir- "]"+ ".''arch_name']"
$ lisdir = exedir
$ objdir = exedir
$!
$! Interpret command-line options.
$!
$ hpssl = 0
$ ldap = 0
$ list = 0
$ nohpssl = 0
$ nossl = 0
$ openssl = 0
$ osslolb = 0
$ cc_qual1 = ""
$ cc_qual2 = ""
$ cc_defs = "HAVE_CONFIG_H=1"
$ if (f$type( CURL_CCDEFS) .nes. "")
$ then
$ CURL_CCDEFS = f$edit( CURL_CCDEFS, "TRIM")
$ cc_defs = cc_defs+ ", "+ CURL_CCDEFS
$ endif
$ link_qual = ""
$ msg_qual = "/object = ''objdir'"
$ ssl_opt = ""
$!
$ arg = 1
$arg_loop:
$ p = "p''arg'"
$ arg_val = 'p'
$ if (arg_val .eqs. "") then goto arg_loop_out
$ arg_val = f$edit( arg_val, "upcase")
$!
$ if (arg_val .eqs. "CLEAN")
$ then
$ prods = "''exedir'*.*;*"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir+ arch_name+ ".DIR;1"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ goto Common_Exit
$ endif
$!
$ if (arg_val .eqs. "CLEAN_ALL")
$ then
$ prods = proc_dev_dir- "]"+ ".ALPHA]*.*;*"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir+ "ALPHA"+ ".DIR;1"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir- "]"+ ".IA64]*.*;*"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir+ "IA64"+ ".DIR;1"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir- "]"+ ".VAX]*.*;*"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ prods = proc_dev_dir+ "VAX"+ ".DIR;1"
$ if (f$search( prods) .nes. "") then delete /log 'prods'
$ goto Common_Exit
$ endif
$!
$ if (arg_val .eqs. "64")
$ then
$ cc_qual1 = cc_qual1+ " /POINTER = 64"
$ goto arg_loop_end
$ endif
$!
$ if (f$extract( 0, 6, arg_val) .eqs. "CCQUAL")
$ then
$ opts = f$edit( arg_val, "COLLAPSE")
$ eq = f$locate( "=", opts)
$ cc_qual2 = f$extract( (eq+ 1), 1000, opts)
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "DEBUG")
$ then
$ cc_qual1 = cc_qual1+ " /debug /nooptimize"
$ link_qual = link_qual+ " /debug"
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "IEEE")
$ then
$ cc_qual1 = cc_qual1+ " /FLOAT = IEEE_FLOAT"
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "LARGE")
$ then
$ if (arch_name .eqs. "VAX")
$ then
$ write sys$output """LARGE"" is ignored on VAX."
$ else
$ cc_defs = cc_defs+ ", _LARGEFILE=1"
$ endif
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "LDAP")
$ then
$ ldap = 1
$ goto arg_loop_end
$ endif
$!
$ if (f$extract( 0, 4, arg_val) .eqs. "LIST")
$ then
$ list = 1
$ cc_qual1 = cc_qual1+ " /list = ''lisdir' /show = (all, nomessages)"
$ link_qual = link_qual+ " /map = ''lisdir'"
$ msg_qual = msg_qual+ " /list = ''lisdir'"
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "NOHPSSL")
$ then
$ nohpssl = 1
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "NOSSL")
$ then
$ nossl = 1
$ goto arg_loop_end
$ endif
$!
$ if (arg_val .eqs. "OSSLOLB")
$ then
$ osslolb = 1
$ goto arg_loop_end
$ endif
$!
$ write sys$output "Unrecognized command-line option: ''arg_val'"
$ goto Common_Exit
$!
$arg_loop_end:
$ arg = arg+ 1
$ goto arg_loop
$arg_loop_out:
$!
$! CC /LIST, LINK /MAP, and MESSAGE /LIST are defaults in batch mode,
$! so be explicit when they're not desired.
$!
$ if (list .eq. 0)
$ then
$ cc_qual1 = cc_qual1+ " /nolist"
$ link_qual = link_qual+ " /nomap"
$ msg_qual = msg_qual+ " /nolist"
$ endif
$!
$! Create product directory, if needed.
$!
$ if (f$search( proc_dev_dir+ arch_name+ ".DIR;1") .eqs. "")
$ then
$ create /directory 'exedir'
$ endif
$!
$! Detect available (but not prohibited) SSL software.
$!
$ if (.not. nossl)
$ then
$ if (f$trnlnm( "OPENSSL") .nes. "")
$ then
$ cc_defs = cc_defs+ ", USE_SSLEAY=1"
$ if ((f$trnlnm( "SSL$INCLUDE") .nes. "") .and. (.not. nohpssl))
$ then
$! Use HP SSL.
$ hpssl = 1
$ ssl_opt = ", ''proc_dev_dir'hpssl_"+ -
f$getsyi("ARCH_NAME")+ ".opt /options"
$ else
$! Use OpenSSL. Assume object libraries, unless shared images
$! are found (and not prohibited).
$ openssl = 1
$ ssl_opt = ", ssllib:libssl.olb /library"+ -
", ssllib:libcrypto.olb /library"
$ if (osslolb .eq. 0)
$ then
if ((f$search( "ssllib:ssl_libcrypto.exe") .nes. "") .and. -
(f$search( "ssllib:ssl_libssl.exe") .nes. ""))
$ then
$! OpenSSL shared images with "SSL_xxx.EXE names.
$ openssl = 2
$ ssl_opt = ", ''proc_dev_dir'openssl_ssl_"+ -
f$getsyi("ARCH_NAME")+ ".opt /options"
$ else
$ if ((f$search( "ssllib:libcrypto.exe") .nes. "") .and. -
(f$search( "ssllib:libssl.exe") .nes. ""))
$ then
$! OpenSSL shared images with "xxx.EXE names.
$ openssl = 3
$ ssl_opt = ", ''proc_dev_dir'openssl_"+ -
f$getsyi("ARCH_NAME")+ ".opt /options"
$ endif
$ endif
$ endif
$ endif
$ endif
$ endif
$!
$! LDAP.
$!
$ if (ldap .eq. 0)
$ then
$ cc_defs = cc_defs+ ", CURL_DISABLE_LDAP=1"
$ endif
$!
$! Form CC qualifiers.
$!
$ cc_defs = "/define = (''cc_defs')"
$ cc_qual2 = cc_qual2+ " /object = ''objdir'"+ -
" /include = ([-.lib], [-.src],"+ -
" [-.packages.vms], [-.packages.vms.''arch_name'])"
$!
$ 'vo_c' "CC opts:", -
" ''cc_defs'", -
" ''cc_qual1'", -
" ''cc_qual2'"
$!
$! Inform the victim of our plans.
$!
$ if (hpssl)
$ then
$ 'vo_c' "%CURL-I-BLDHPSSL, building with HP SSL support"
$ else
$ if (openssl .ne. 0)
$ then
$ if (openssl .eq. 1)
$ then
$ 'vo_c' -
"%CURL-I-BLDOSSL_OLB, building with OpenSSL (object library) support"
$ else
$ 'vo_c' -
"%CURL-I-BLDOSSL_EXE, building with OpenSSL (shared image) support"
$ endif
$ else
$ 'vo_c' "%CURL-I-BLDNOSSL, building with NO SSL support"
$ endif
$ endif
$!
$! Announce destination and SSL directories.
$!
$ 'vo_c' " OBJDIR = ''objdir'"
$ 'vo_c' " EXEDIR = ''exedir'"
$!
$ if (openssl .ne. 0)
$ then
$ ssllib = f$trnlnm( "ssllib")
$ if (ssllib .eqs. "")
$ then
$ ssllib = "(undefined)"
$ endif
$ 'vo_c' " SSLLIB = ''ssllib'"
$!
$ if (openssl .eq. 1)
$ then
$ ossl_lib1 = f$trnlnm( "ssllib")+ "LIBSSL.OLB"
$ ossl_lib2 = f$trnlnm( "ssllib")+ "LIBCRYPTO.OLB"
$ msg = "object libraries"
$ else
$ if (openssl .eq. 2)
$ then
$ ossl_lib1 = f$trnlnm( "ssllib")+ "SSL_LIBSSL.EXE"
$ ossl_lib2 = f$trnlnm( "ssllib")+ "SSL_LIBCRYPTO.EXE"
$ else
$ ossl_lib1 = f$trnlnm( "ssllib")+ "LIBSSL.EXE"
$ ossl_lib2 = f$trnlnm( "ssllib")+ "LIBCRYPTO.EXE"
$ endif
$ msg = "shared images"
$ endif
$ if ((f$search( ossl_lib1) .eqs. "") .or. -
(f$search( ossl_lib2) .eqs. ""))
$ then
$ write sys$output "Can't find OpenSSL ''msg':"
$ write sys$output " ''ossl_lib1'"
$ write sys$output " ''ossl_lib2'"
$ goto Common_Exit
$ endif
$ endif
$!
$! Define the "curl" (process) logical name for "#include <curl/xxx.h>".
$!
$ curl = f$trnlnm( "curl", "LNM$PROCESS")
$ if (curl .nes. "")
$ then
$ write sys$output ""
$ write sys$output -
"Process logical name ""curl"" is already defined, but this procedure"
$ write sys$output -
"would override that definition. Use a command like"
$ write sys$output -
" deassign /process curl"
$ write sys$output -
"to cancel that logical name definition, and then and re-run this procedure."
$ write sys$output ""
$ goto Common_Exit
$ endif
$ define curl 'top_dev_dir'.include.curl]
$!
$! Copy the VMS-specific config file into the product directory.
$!
$ call MoveIfDiff 'top_dev_dir'.lib]config-vms.h 'objdir'curl_config.h
$!
$ on control_y then goto Common_Exit
$!
$ set default 'proc_dev_dir'
$ call build "[--.lib]" "*.c" "''objdir'CURLLIB.OLB" "amigaos, nwlib, nwos"
$ if ($status .eq. ctrl_y) then goto Common_Exit
$ call build "[--.src]" "*.c" "''objdir'CURLSRC.OLB"
$ if ($status .eq. ctrl_y) then goto Common_Exit
$ call build "[]" "*.msg" "''objdir'CURLSRC.OLB"
$ if ($status .eq. ctrl_y) then goto Common_Exit
$!
$ ldap_opt = ""
$ if (ldap .ne. 0) then ldap_opt = ", ''proc_dev_dir'ldap.opt /options"
$!
$ if (openssl .ne. 0)
$ then
$ if (openssl .eq. 1)
$ then
$ 'vo_l' "%CURL-I-LINK_OSSL, linking with OpenSSL (object library)"
$ else
$ 'vo_l' "%CURL-I-LINK_HPSSL, linking with OpenSSL (shared image)"
$ endif
$ else
$ if (hpssl)
$ then
$ 'vo_l' "%CURL-I-LINK_HPSSL, linking with HP SSL"
$ else
$ 'vo_l' "%CURL-I-LINK_NOSSL, linking with NO SSL support"
$ endif
$ endif
$!
$ link 'link_qual' /executable = 'exedir'CURL.EXE -
'objdir'curlsrc.olb /library /include = (main, curlmsg), -
'objdir'curllib.olb /library -
'ssl_opt' -
'ldap_opt'
$!
$ goto Common_Exit
$!
$! Subroutine to build everything with a filetype passed in via P2 in
$! the directory passed in via P1 and put it in the object library named
$! via P3. Exclude items in P4.
$!
$build: subroutine
$ build_def = f$environment( "default")
$ on control_y then goto EndLoop ! SS$_CONTROLY
$ sts = 1 ! SS$_NORMAL.
$! set noon
$ set default 'p1'
$ search = p2
$ reset = f$search("reset")
$ if f$search( p3) .eqs. ""
$ then
$ librarian /create /object 'p3'
$ endif
$ reject_list__ = ","+ f$edit( p4, "COLLAPSE, UPCASE")+ ","
$ reject_list___len = f$length( reject_list__)
$ reset = f$search( "reset", 1)
$Loop:
$ file = f$search( search, 1)
$ if file .eqs. "" then goto EndLoop
$! Skip a name if it's in the P4 exclusion list.
$ if (p4 .nes. "")
$ then
$ name__ = ","+ -
f$edit( f$parse( file, , , "NAME", "SYNTAX_ONLY"), "UPCASE")+ -
","
$ if (f$locate( name__, reject_list__) .lt. reject_list___len)
$ then
$ goto Loop
$ endif
$ endif
$ objfile = f$parse( "''objdir'.OBJ;", file)
$ obj = f$search( objfile, 2)
$ if (obj .nes. "")
$ then
$ if (f$cvtime(f$file(file,"rdt")) .gts. f$cvtime(f$file(obj,"rdt")))
$ then
$ call compile 'file'
$ sts = $status
$ if .not. sts
$ then
$ goto EndLoop
$ endif
$ librarian /object 'p3' 'objfile'
$ else
$ 'vo_o' "%CURL-I-OBJUTD, ", objfile, " is up to date"
$ endif
$ else
$ 'vo_o' "%CURL-I-OBJDNE, ", file, " does not exist"
$ call compile 'file'
$ sts = $status
$ if .not. sts
$ then
$ goto EndLoop
$ endif
$ librarian /object 'p3' 'objfile'
$ endif
$ goto Loop
$EndLoop:
$!!! purge
$ set default 'build_def'
$ exit 'sts'
$ endsubroutine ! Build
$!
$! Based on the file TYPE, do the right compile command.
$! Only C and MSG supported.
$!
$compile: subroutine
$ on control_y then return ctrl_y ! SS$_CONTROLY
$! set noon
$ file = p1
$ qual = p2+ p3+ p4+ p5+ p6+ p7+ p8
$ typ = f$edit( f$parse( file, , , "TYPE"), "UPCASE") - "."
$ if (typ .eqs. "C")
$ then
$ 'vo_c' "CC (opts) ", file
$ CC 'cc_defs' -
'cc_qual1' -
'cc_qual2' -
'file'
$ else
$ cmd_msg = "MESSAGE "+ msg_qual
$ x = cmd_'typ'
$ 'vo_c' x," ",file
$ 'x' 'file'
$ endif
$ ENDSUBROUTINE ! Compile
$!
$! Do a diff of the file specified in P1 with that in P2. If different
$! copy P1 to P2. This also covers if P2 doesn't exist, but not if P2
$! is an invalid filespec.
$!
$MoveIfDiff: subroutine
$ set NoOn
$ define /user_mode sys$error nl:
$ define /user_mode sys$output nl:
$ differences 'p1' 'p2'
$ status = $status
$ if ( status .ne. %X006C8009) ! if status is not "no diff"
$ then
$ copy 'p1' 'p2'
$ purge /nolog 'p2'
$ endif
$ on control_y then return ctrl_y ! SS$_CONTROLY
$ ENDSUBROUTINE ! MoveIfDiff
$!
$Common_Exit:
$ set default 'orig_def'
$ if ((curl .eqs. "") .and. (f$trnlnm( "curl", "LNM$PROCESS") .nes. ""))
$ then
$ deassign curl
$ endif
$ exit

View file

@ -0,0 +1,119 @@
#ifndef HEADER_CURLMSG_H
#define HEADER_CURLMSG_H
#pragma __member_alignment __save
#pragma __nomember_alignment
/* */
/* CURLMSG.H */
/* */
/* SDL File Generated by VAX-11 Message V04-00 on 3-SEP-2008 13:33:54.09 */
/* */
/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H */
/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE, */
/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH */
/* MESSAGE/SDL. THE .H FILE IS CREATED USING THE FREEWARE SDL TOOL */
/* AGAINST THE .SDL FILE WITH SDL/ALPHA/LANG=CC COMMAND. */
/* */
/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT */
/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF */
/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF */
/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE */
/* CURLE_ ONES IN INCLUDE/CURL.H. THE MESSAGE UTILITY MANUAL STATES */
/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT */
/* EXCEED 31 CHARACTERS." WITH A PREFIX OF FIVE THAT LEAVES US WITH 26 */
/* FOR THE MESSAGE NAME. */
/* */
/* IF YOU UPDATE THIS FILE, UPDATE CURLMSG_VMS.H SO THAT THEY ARE IN SYNC */
/* */
#define CURL_FACILITY 3841
#define CURL_OK 251756553
#define CURL_UNSUPPORTED_PROTOCOL 251756562
#define CURL_FAILED_INIT 251756570
#define CURL_URL_MALFORMAT 251756578
#define CURL_OBSOLETE4 251756586
#define CURL_COULDNT_RESOLVE_PROXY 251756594
#define CURL_COULDNT_RESOLVE_HOST 251756602
#define CURL_COULDNT_CONNECT 251756610
#define CURL_FTP_WEIRD_SERVER_REPLY 251756618
#define CURL_FTP_ACCESS_DENIED 251756626
#define CURL_OBSOLETE10 251756634
#define CURL_FTP_WEIRD_PASS_REPLY 251756642
#define CURL_OBSOLETE12 251756650
#define CURL_FTP_WEIRD_PASV_REPLY 251756658
#define CURL_FTP_WEIRD_227_FORMAT 251756666
#define CURL_FTP_CANT_GET_HOST 251756674
#define CURL_OBSOLETE16 251756682
#define CURL_FTP_COULDNT_SET_TYPE 251756690
#define CURL_PARTIAL_FILE 251756698
#define CURL_FTP_COULDNT_RETR_FILE 251756706
#define CURL_OBSOLETE20 251756714
#define CURL_QUOTE_ERROR 251756722
#define CURL_HTTP_RETURNED_ERROR 251756730
#define CURL_WRITE_ERROR 251756738
#define CURL_OBSOLETE24 251756746
#define CURL_UPLOAD_FAILED 251756754
#define CURL_READ_ERROR 251756762
#define CURL_OUT_OF_MEMORY 251756770
#define CURL_OPERATION_TIMEOUTED 251756778
#define CURL_OBSOLETE29 251756786
#define CURL_FTP_PORT_FAILED 251756794
#define CURL_FTP_COULDNT_USE_REST 251756802
#define CURL_OBSOLETE32 251756810
#define CURL_RANGE_ERROR 251756818
#define CURL_HTTP_POST_ERROR 251756826
#define CURL_SSL_CONNECT_ERROR 251756834
#define CURL_BAD_DOWNLOAD_RESUME 251756842
#define CURL_FILE_COULDNT_READ_FILE 251756850
#define CURL_LDAP_CANNOT_BIND 251756858
#define CURL_LDAP_SEARCH_FAILED 251756866
#define CURL_OBSOLETE40 251756874
#define CURL_FUNCTION_NOT_FOUND 251756882
#define CURL_ABORTED_BY_CALLBACK 251756890
#define CURL_BAD_FUNCTION_ARGUMENT 251756898
#define CURL_OBSOLETE44 251756906
#define CURL_INTERFACE_FAILED 251756914
#define CURL_OBSOLETE46 251756922
#define CURL_TOO_MANY_REDIRECTS 251756930
#define CURL_UNKNOWN_TELNET_OPTION 251756938
#define CURL_TELNET_OPTION_SYNTAX 251756946
#define CURL_OBSOLETE50 251756954
#define CURL_PEER_FAILED_VERIF 251756962
#define CURL_GOT_NOTHING 251756970
#define CURL_SSL_ENGINE_NOTFOUND 251756978
#define CURL_SSL_ENGINE_SETFAILED 251756986
#define CURL_SEND_ERROR 251756994
#define CURL_RECV_ERROR 251757002
#define CURL_OBSOLETE57 251757010
#define CURL_SSL_CERTPROBLEM 251757018
#define CURL_SSL_CIPHER 251757026
#define CURL_SSL_CACERT 251757034
#define CURL_BAD_CONTENT_ENCODING 251757042
#define CURL_LDAP_INVALID_URL 251757050
#define CURL_FILESIZE_EXCEEDED 251757058
#define CURL_USE_SSL_FAILED 251757066
#define CURL_SEND_FAIL_REWIND 251757074
#define CURL_SSL_ENGINE_INITFAILED 251757082
#define CURL_LOGIN_DENIED 251757090
#define CURL_TFTP_NOTFOUND 251757098
#define CURL_TFTP_PERM 251757106
#define CURL_REMOTE_DISK_FULL 251757114
#define CURL_TFTP_ILLEGAL 251757122
#define CURL_TFTP_UNKNOWNID 251757130
#define CURL_REMOTE_FILE_EXISTS 251757138
#define CURL_TFTP_NOSUCHUSER 251757146
#define CURL_CONV_FAILED 251757154
#define CURL_CONV_REQD 251757162
#define CURL_SSL_CACERT_BADFILE 251757170
#define CURL_REMOTE_FILE_NOT_FOUND 251757178
#define CURL_SSH 251757186
#define CURL_SSL_SHUTDOWN_FAILED 251757194
#define CURL_AGAIN 251757202
#define CURL_SSL_CRL_BADFILE 251757210
#define CURL_SSL_ISSUER_ERROR 251757218
#define CURL_CURL_LAST 251757226
#pragma __member_alignment __restore
#endif /* HEADER_CURLMSG_H */

View file

@ -0,0 +1,111 @@
!
! These VMS error codes are generated by taking apart the curl.h
! file and putting all the CURLE_* enum stuff into this file,
! CURLMSG.MSG. An .SDL file is created from this file with
! MESSAGE/SDL. The .H file is created using the freeware SDL tool
! against the .SDL file with SDL/ALPHA/LANG=CC command.
!
! With the exception of CURLE_OK, all of the messages are at
! the error severity level. With the exception of
! PEER_FAILED_VERIF, which is a shortened form of
! PEER_FAILED_VERIFICATION, these are the same names as the
! CURLE_ ones in include/curl.h. The Message Utility manual states
! "The combined length of the prefix and the message symbol name cannot
! exceed 31 characters." With a prefix of five that leaves us with 26
! for the message name.
!
! If you update this file also update curlmsg_vms.h so that they are in sync
!
.TITLE CURLMSG Message files
.FACILITY CURL,1793 /PREFIX=CURL_
.BASE 1
.SEVERITY SUCCESS
OK <normal successful completion>
.SEVERITY ERROR
UNSUPPORTED_PROTOCOL <unsupported protocol>
FAILED_INIT <failed init>
URL_MALFORMAT <URL malformat>
OBSOLETE4 <obsolete error code>
COULDNT_RESOLVE_PROXY <could not resolve proxy>
COULDNT_RESOLVE_HOST <could not resolve host>
COULDNT_CONNECT <could not connect>
FTP_WEIRD_SERVER_REPLY <FTP weird server reply>
FTP_ACCESS_DENIED <FTP access denied>
OBSOLETE10 <obsolete error code>
FTP_WEIRD_PASS_REPLY <FTP weird PASS reply>
OBSOLETE12 <obsolete error code>
FTP_WEIRD_PASV_REPLY <FTP weird PASV reply>
FTP_WEIRD_227_FORMAT <FTP weird 227 format>
FTP_CANT_GET_HOST <FTP can not get host>
OBSOLETE16 <obsolete error code>
FTP_COULDNT_SET_TYPE <FTP could not set type>
PARTIAL_FILE <partial file>
FTP_COULDNT_RETR_FILE <FTP could not RETR file>
OBSOLETE20 <obsolete error code>
QUOTE_ERROR <quote command error>
HTTP_RETURNED_ERROR <HTTP returned error>
WRITE_ERROR <write error>
OBSOLETE24 <obsolete error code>
UPLOAD_FAILED <failed upload command>
READ_ERROR <read error, could not open/read file>
OUT_OF_MEMORY <out of memory>
OPERATION_TIMEOUTED <operation timed out, timeout time was reached>
OBSOLETE29 <obsolete error code>
FTP_PORT_FAILED <FTP PORT operation failed>
FTP_COULDNT_USE_REST <FTP REST command failed>
OBSOLETE32 <obsolete error code>
RANGE_ERROR <RANGE command error>
HTTP_POST_ERROR <HTTP POST error>
SSL_CONNECT_ERROR <SSL connect error>
BAD_DOWNLOAD_RESUME <bad download resume>
FILE_COULDNT_READ_FILE <FILE could not read file>
LDAP_CANNOT_BIND <LDAP cannot bind>
LDAP_SEARCH_FAILED <LDAP search failed>
OBSOLETE40 <obsolete error code>
FUNCTION_NOT_FOUND <function not found>
ABORTED_BY_CALLBACK <aborted by callback>
BAD_FUNCTION_ARGUMENT <bad function argument>
OBSOLETE44 <obsolete error code>
INTERFACE_FAILED <CURLOPT_INTERFACE failed>
OBSOLETE46 <obsolete error code>
TOO_MANY_REDIRECTS <too many redirects>
UNKNOWN_TELNET_OPTION <unknown TELNET option>
TELNET_OPTION_SYNTAX <malformed TELNET option syntax>
OBSOLETE50 <obsolete error code>
PEER_FAILED_VERIF <peer certificate or fingerprint failed>
GOT_NOTHING <got nothing>
SSL_ENGINE_NOTFOUND <SSL crypto engine not found>
SSL_ENGINE_SETFAILED <SSL can not set SSL crypto engine as default>
SEND_ERROR <SEND error, failure sending network data>
RECV_ERROR <RECV error, failure receiving network data>
OBSOLETE57 <obsolete error code>
SSL_CERTPROBLEM <SSL problem with the local certificate>
SSL_CIPHER <SSL CIPHER, could not use specified cipher>
SSL_CACERT <SSL CACERT, problem with the CA cert (path?)>
BAD_CONTENT_ENCODING <unrecognized transfer encoding>
LDAP_INVALID_URL <LDAP invalid url>
FILESIZE_EXCEEDED <maximum file size exceeded>
USE_SSL_FAILED <requested FTP SSL level failed>
SEND_FAIL_REWIND <sending data requires a rewind that failed>
SSL_ENGINE_INITFAILED <failed to initialise ENGINE>
LOGIN_DENIED <user or password not accepted. failed to login>
TFTP_NOTFOUND <file not found on server>
TFTP_PERM <permission problem on server>
REMOTE_DISK_FULL <out of disk space on server>
TFTP_ILLEGAL <illegal TFTP operation>
TFTP_UNKNOWNID <unknown transfer ID>
REMOTE_FILE_EXISTS <file already exists>
TFTP_NOSUCHUSER <no such user>
CONV_FAILED <conversion failed>
CONV_REQD <caller must register conversion callbacks>
SSL_CACERT_BADFILE <could not load CACERT file>
REMOTE_FILE_NOT_FOUND <remote file not found>
SSH <unspecified error from the SSH layer>
SSL_SHUTDOWN_FAILED <failed to shut down the SSL connection>
AGAIN <socket not ready, wait and try again>
SSL_CRL_BADFILE <could not load CRL file, missing or wrong format>
SSL_ISSUER_ERROR <issuer check failed>
CURL_LAST <CURLMSG.MSG is out of sync with the source code>
.END

View file

@ -0,0 +1,115 @@
MODULE $CURDEF;
/*
/* This SDL File Generated by VAX-11 Message V04-00 on 3-SEP-2008 13:33:54.09
/*
/* $ID: CURLMSG.MSG,V 1.7 2008-05-30 23:51:09 CURLVMS EXP $
/*
/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H
/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE,
/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH
/* MESSAGE/SDL. THE .H FILE IS CREATED USING THE FREEWARE SDL TOOL
/* AGAINST THE .SDL FILE WITH SDL/ALPHA/LANG=CC COMMAND.
/*
/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT
/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF
/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF
/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE
/* CURLE_ ONES IN INCLUDE/CURL.H. THE MESSAGE UTILITY MANUAL STATES
/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT
/* EXCEED 31 CHARACTERS." WITH A PREFIX OF FIVE THAT LEAVES US WITH 26
/* FOR THE MESSAGE NAME.
/*
/* IF YOU UPDATE THIS FILE ALSO UPDATE CURLMSG_VMS.H SO THAT THEY ARE IN SYNC
/*
CONSTANT
"FACILITY" EQUALS 3841 PREFIX "CURL" TAG ""
,"OK" EQUALS %X0F018009 PREFIX "CURL" TAG ""
,"UNSUPPORTED_PROTOCOL" EQUALS %X0F018012 PREFIX "CURL" TAG ""
,"FAILED_INIT" EQUALS %X0F01801A PREFIX "CURL" TAG ""
,"URL_MALFORMAT" EQUALS %X0F018022 PREFIX "CURL" TAG ""
,"OBSOLETE4" EQUALS %X0F01802A PREFIX "CURL" TAG ""
,"COULDNT_RESOLVE_PROXY" EQUALS %X0F018032 PREFIX "CURL" TAG ""
,"COULDNT_RESOLVE_HOST" EQUALS %X0F01803A PREFIX "CURL" TAG ""
,"COULDNT_CONNECT" EQUALS %X0F018042 PREFIX "CURL" TAG ""
,"FTP_WEIRD_SERVER_REPLY" EQUALS %X0F01804A PREFIX "CURL" TAG ""
,"FTP_ACCESS_DENIED" EQUALS %X0F018052 PREFIX "CURL" TAG ""
,"OBSOLETE10" EQUALS %X0F01805A PREFIX "CURL" TAG ""
,"FTP_WEIRD_PASS_REPLY" EQUALS %X0F018062 PREFIX "CURL" TAG ""
,"OBSOLETE12" EQUALS %X0F01806A PREFIX "CURL" TAG ""
,"FTP_WEIRD_PASV_REPLY" EQUALS %X0F018072 PREFIX "CURL" TAG ""
,"FTP_WEIRD_227_FORMAT" EQUALS %X0F01807A PREFIX "CURL" TAG ""
,"FTP_CANT_GET_HOST" EQUALS %X0F018082 PREFIX "CURL" TAG ""
,"OBSOLETE16" EQUALS %X0F01808A PREFIX "CURL" TAG ""
,"FTP_COULDNT_SET_TYPE" EQUALS %X0F018092 PREFIX "CURL" TAG ""
,"PARTIAL_FILE" EQUALS %X0F01809A PREFIX "CURL" TAG ""
,"FTP_COULDNT_RETR_FILE" EQUALS %X0F0180A2 PREFIX "CURL" TAG ""
,"OBSOLETE20" EQUALS %X0F0180AA PREFIX "CURL" TAG ""
,"QUOTE_ERROR" EQUALS %X0F0180B2 PREFIX "CURL" TAG ""
,"HTTP_RETURNED_ERROR" EQUALS %X0F0180BA PREFIX "CURL" TAG ""
,"WRITE_ERROR" EQUALS %X0F0180C2 PREFIX "CURL" TAG ""
,"OBSOLETE24" EQUALS %X0F0180CA PREFIX "CURL" TAG ""
,"UPLOAD_FAILED" EQUALS %X0F0180D2 PREFIX "CURL" TAG ""
,"READ_ERROR" EQUALS %X0F0180DA PREFIX "CURL" TAG ""
,"OUT_OF_MEMORY" EQUALS %X0F0180E2 PREFIX "CURL" TAG ""
,"OPERATION_TIMEOUTED" EQUALS %X0F0180EA PREFIX "CURL" TAG ""
,"OBSOLETE29" EQUALS %X0F0180F2 PREFIX "CURL" TAG ""
,"FTP_PORT_FAILED" EQUALS %X0F0180FA PREFIX "CURL" TAG ""
,"FTP_COULDNT_USE_REST" EQUALS %X0F018102 PREFIX "CURL" TAG ""
,"OBSOLETE32" EQUALS %X0F01810A PREFIX "CURL" TAG ""
,"RANGE_ERROR" EQUALS %X0F018112 PREFIX "CURL" TAG ""
,"HTTP_POST_ERROR" EQUALS %X0F01811A PREFIX "CURL" TAG ""
,"SSL_CONNECT_ERROR" EQUALS %X0F018122 PREFIX "CURL" TAG ""
,"BAD_DOWNLOAD_RESUME" EQUALS %X0F01812A PREFIX "CURL" TAG ""
,"FILE_COULDNT_READ_FILE" EQUALS %X0F018132 PREFIX "CURL" TAG ""
,"LDAP_CANNOT_BIND" EQUALS %X0F01813A PREFIX "CURL" TAG ""
,"LDAP_SEARCH_FAILED" EQUALS %X0F018142 PREFIX "CURL" TAG ""
,"OBSOLETE40" EQUALS %X0F01814A PREFIX "CURL" TAG ""
,"FUNCTION_NOT_FOUND" EQUALS %X0F018152 PREFIX "CURL" TAG ""
,"ABORTED_BY_CALLBACK" EQUALS %X0F01815A PREFIX "CURL" TAG ""
,"BAD_FUNCTION_ARGUMENT" EQUALS %X0F018162 PREFIX "CURL" TAG ""
,"OBSOLETE44" EQUALS %X0F01816A PREFIX "CURL" TAG ""
,"INTERFACE_FAILED" EQUALS %X0F018172 PREFIX "CURL" TAG ""
,"OBSOLETE46" EQUALS %X0F01817A PREFIX "CURL" TAG ""
,"TOO_MANY_REDIRECTS" EQUALS %X0F018182 PREFIX "CURL" TAG ""
,"UNKNOWN_TELNET_OPTION" EQUALS %X0F01818A PREFIX "CURL" TAG ""
,"TELNET_OPTION_SYNTAX" EQUALS %X0F018192 PREFIX "CURL" TAG ""
,"OBSOLETE50" EQUALS %X0F01819A PREFIX "CURL" TAG ""
,"PEER_FAILED_VERIF" EQUALS %X0F0181A2 PREFIX "CURL" TAG ""
,"GOT_NOTHING" EQUALS %X0F0181AA PREFIX "CURL" TAG ""
,"SSL_ENGINE_NOTFOUND" EQUALS %X0F0181B2 PREFIX "CURL" TAG ""
,"SSL_ENGINE_SETFAILED" EQUALS %X0F0181BA PREFIX "CURL" TAG ""
,"SEND_ERROR" EQUALS %X0F0181C2 PREFIX "CURL" TAG ""
,"RECV_ERROR" EQUALS %X0F0181CA PREFIX "CURL" TAG ""
,"OBSOLETE57" EQUALS %X0F0181D2 PREFIX "CURL" TAG ""
,"SSL_CERTPROBLEM" EQUALS %X0F0181DA PREFIX "CURL" TAG ""
,"SSL_CIPHER" EQUALS %X0F0181E2 PREFIX "CURL" TAG ""
,"SSL_CACERT" EQUALS %X0F0181EA PREFIX "CURL" TAG ""
,"BAD_CONTENT_ENCODING" EQUALS %X0F0181F2 PREFIX "CURL" TAG ""
,"LDAP_INVALID_URL" EQUALS %X0F0181FA PREFIX "CURL" TAG ""
,"FILESIZE_EXCEEDED" EQUALS %X0F018202 PREFIX "CURL" TAG ""
,"USE_SSL_FAILED" EQUALS %X0F01820A PREFIX "CURL" TAG ""
,"SEND_FAIL_REWIND" EQUALS %X0F018212 PREFIX "CURL" TAG ""
,"SSL_ENGINE_INITFAILED" EQUALS %X0F01821A PREFIX "CURL" TAG ""
,"LOGIN_DENIED" EQUALS %X0F018222 PREFIX "CURL" TAG ""
,"TFTP_NOTFOUND" EQUALS %X0F01822A PREFIX "CURL" TAG ""
,"TFTP_PERM" EQUALS %X0F018232 PREFIX "CURL" TAG ""
,"REMOTE_DISK_FULL" EQUALS %X0F01823A PREFIX "CURL" TAG ""
,"TFTP_ILLEGAL" EQUALS %X0F018242 PREFIX "CURL" TAG ""
,"TFTP_UNKNOWNID" EQUALS %X0F01824A PREFIX "CURL" TAG ""
,"REMOTE_FILE_EXISTS" EQUALS %X0F018252 PREFIX "CURL" TAG ""
,"TFTP_NOSUCHUSER" EQUALS %X0F01825A PREFIX "CURL" TAG ""
,"CONV_FAILED" EQUALS %X0F018262 PREFIX "CURL" TAG ""
,"CONV_REQD" EQUALS %X0F01826A PREFIX "CURL" TAG ""
,"SSL_CACERT_BADFILE" EQUALS %X0F018272 PREFIX "CURL" TAG ""
,"REMOTE_FILE_NOT_FOUND" EQUALS %X0F01827A PREFIX "CURL" TAG ""
,"SSH" EQUALS %X0F018282 PREFIX "CURL" TAG ""
,"SSL_SHUTDOWN_FAILED" EQUALS %X0F01828A PREFIX "CURL" TAG ""
,"AGAIN" EQUALS %X0F018292 PREFIX "CURL" TAG ""
,"SSL_CRL_BADFILE" EQUALS %X0F01829A PREFIX "CURL" TAG ""
,"SSL_ISSUER_ERROR" EQUALS %X0F0182A2 PREFIX "CURL" TAG ""
,"CURL_LAST" EQUALS %X0F0182AA PREFIX "CURL" TAG ""
;
END_MODULE;

View file

@ -0,0 +1,120 @@
#ifndef HEADER_CURLMSG_VMS_H
#define HEADER_CURLMSG_VMS_H
/* */
/* CURLMSG_VMS.H */
/* */
/* This defines the necessary bits to change CURLE_* error codes to VMS */
/* style error codes. CURLMSG.H is built from CURLMSG.SDL which is built */
/* from CURLMSG.MSG. The vms_cond array is used to return VMS errors by */
/* putting the VMS error codes into the array offset based on CURLE_* code. */
/* */
/* If you update CURLMSG.MSG make sure to update this file to match. */
/* */
#include "curlmsg.h"
/*
#define FAC_CURL 0xC01
#define FAC_SYSTEM 0
#define MSG_NORMAL 0
*/
/*
#define SEV_WARNING 0
#define SEV_SUCCESS 1
#define SEV_ERROR 2
#define SEV_INFO 3
#define SEV_FATAL 4
*/
static const long vms_cond[] =
{
CURL_OK,
CURL_UNSUPPORTED_PROTOCOL,
CURL_FAILED_INIT,
CURL_URL_MALFORMAT,
CURL_OBSOLETE4,
CURL_COULDNT_RESOLVE_PROXY,
CURL_COULDNT_RESOLVE_HOST,
CURL_COULDNT_CONNECT,
CURL_FTP_WEIRD_SERVER_REPLY,
CURL_FTP_ACCESS_DENIED,
CURL_OBSOLETE10,
CURL_FTP_WEIRD_PASS_REPLY,
CURL_OBSOLETE12,
CURL_FTP_WEIRD_PASV_REPLY,
CURL_FTP_WEIRD_227_FORMAT,
CURL_FTP_CANT_GET_HOST,
CURL_OBSOLETE16,
CURL_FTP_COULDNT_SET_TYPE,
CURL_PARTIAL_FILE,
CURL_FTP_COULDNT_RETR_FILE,
CURL_OBSOLETE20,
CURL_QUOTE_ERROR,
CURL_HTTP_RETURNED_ERROR,
CURL_WRITE_ERROR,
CURL_OBSOLETE24,
CURL_UPLOAD_FAILED,
CURL_READ_ERROR,
CURL_OUT_OF_MEMORY,
CURL_OPERATION_TIMEOUTED,
CURL_OBSOLETE29,
CURL_FTP_PORT_FAILED,
CURL_FTP_COULDNT_USE_REST,
CURL_OBSOLETE32,
CURL_RANGE_ERROR,
CURL_HTTP_POST_ERROR,
CURL_SSL_CONNECT_ERROR,
CURL_BAD_DOWNLOAD_RESUME,
CURL_FILE_COULDNT_READ_FILE,
CURL_LDAP_CANNOT_BIND,
CURL_LDAP_SEARCH_FAILED,
CURL_OBSOLETE40,
CURL_FUNCTION_NOT_FOUND,
CURL_ABORTED_BY_CALLBACK,
CURL_BAD_FUNCTION_ARGUMENT,
CURL_OBSOLETE44,
CURL_INTERFACE_FAILED,
CURL_OBSOLETE46,
CURL_TOO_MANY_REDIRECTS,
CURL_UNKNOWN_TELNET_OPTION,
CURL_TELNET_OPTION_SYNTAX,
CURL_OBSOLETE50,
CURL_PEER_FAILED_VERIF,
CURL_GOT_NOTHING,
CURL_SSL_ENGINE_NOTFOUND,
CURL_SSL_ENGINE_SETFAILED,
CURL_SEND_ERROR,
CURL_RECV_ERROR,
CURL_OBSOLETE57,
CURL_SSL_CERTPROBLEM,
CURL_SSL_CIPHER,
CURL_SSL_CACERT,
CURL_BAD_CONTENT_ENCODING,
CURL_LDAP_INVALID_URL,
CURL_FILESIZE_EXCEEDED,
CURL_USE_SSL_FAILED,
CURL_SEND_FAIL_REWIND,
CURL_SSL_ENGINE_INITFAILED,
CURL_LOGIN_DENIED,
CURL_TFTP_NOTFOUND,
CURL_TFTP_PERM,
CURL_REMOTE_DISK_FULL,
CURL_TFTP_ILLEGAL,
CURL_TFTP_UNKNOWNID,
CURL_REMOTE_FILE_EXISTS,
CURL_TFTP_NOSUCHUSER,
CURL_CONV_FAILED,
CURL_CONV_REQD,
CURL_SSL_CACERT_BADFILE,
CURL_REMOTE_FILE_NOT_FOUND,
CURL_SSH,
CURL_SSL_SHUTDOWN_FAILED,
CURL_AGAIN,
CURLE_SSL_CRL_BADFILE,
CURLE_SSL_ISSUER_ERROR,
CURL_CURL_LAST
};
#endif /* HEADER_CURLMSG_VMS_H */

View file

@ -0,0 +1,2 @@
SYS$LIBRARY:SSL$LIBCRYPTO_SHR32.EXE/SHARE
SYS$LIBRARY:SSL$LIBSSL_SHR32.EXE/SHARE

View file

@ -0,0 +1,2 @@
SYS$LIBRARY:SSL$LIBCRYPTO_SHR.EXE/SHARE
SYS$LIBRARY:SSL$LIBSSL_SHR.EXE/SHARE

View file

@ -0,0 +1,2 @@
SYS$LIBRARY:SSL$LIBCRYPTO_SHR32.EXE/SHARE
SYS$LIBRARY:SSL$LIBSSL_SHR32.EXE/SHARE

View file

@ -0,0 +1 @@
SYS$SHARE:LDAP$SHR.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:LIBCRYPTO.EXE /SHARE
SSLLIB:LIBSSL.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:LIBCRYPTO.EXE /SHARE
SSLLIB:LIBSSL.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:SSL_LIBCRYPTO.EXE /SHARE
SSLLIB:SSL_LIBSSL.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:SSL_LIBCRYPTO.EXE /SHARE
SSLLIB:SSL_LIBSSL.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:SSL_LIBCRYPTO.EXE /SHARE
SSLLIB:SSL_LIBSSL.EXE /SHARE

View file

@ -0,0 +1,2 @@
SSLLIB:LIBCRYPTO.EXE /SHARE
SSLLIB:LIBSSL.EXE /SHARE

View file

@ -0,0 +1,70 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
( (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
for OpenVMS
History:
9-MAR-2004, Created this readme. file. Marty Kuhrt (MSK).
15-MAR-2004, MSK, Updated to reflect the new files in this directory.
14-FEB-2005, MSK, removed config-vms.h_with* file comments
10-FEB-2010, SMS. General update.
Prerequisites:
OpenVMS V7.0 or later (any platform)
DECC V6.5 or later
OpenSSL or hp SSL, if you want SSL support
What is Here:
This directory contains the following files:
build_vms.com Build procedure.
config-vms.h VMS-specific config.h.
curlmsg.h C header defining cURL status code macros.
curlmsg.msg Error message source for curlmsg.h and curlmsg.sdl.
curlmsg.sdl SDL source defining cURL status code constants.
curlmsg_vms.h Mapping of cURL status codes to VMS-form codes.
hpssl_alpha.opt LINK options file for HP SSL on Alpha.
hpssl_ia64.opt LINK options file for HP SSL on IA64.
hpssl_vax.opt LINK options file for HP SSL on VAX.
ldap.opt LINK options file for LDAP.
Makefile.am cURL kit file list for this directory.
Makefile.in cURL kit makefile source for this directory.
openssl_alpha.opt LINK options file for OpenSSL on Alpha.
openssl_ia64.opt LINK options file for OpenSSL on IA64.
openssl_ssl_alpha.opt LINK options file for OpenSSL (SSL_ prefix) on Alpha.
openssl_ssl_ia64.opt LINK options file for OpenSSL (SSL_ prefix) on IA64.
openssl_ssl_vax.opt LINK options file for OpenSSL (SSL_ prefix) on VAX.
openssl_vax.opt LINK options file for OpenSSL on VAX.
readme. This file.
How to Build:
The (brute-force) builder is [.packages.vms]build_vms.com. Comments in
this procedure describe various optional parameters which enable or
disable optional program features, or which control the build in other
ways. Product files (.EXE, .H, .LIS, .MAP, .OBJ, .OLB, ...) should be
produced in an architecture-specific subdirectory under this directory
([.ALPHA], [.IA64], [.VAX]).
Example build commands:
@ [.packages.vms]build_vms.com CLEAN
@ [.packages.vms]build_vms.com LARGE LDAP
submit /noprint [.packages.vms]build_vms.com /param = (LARGE, LDAP)
Other Notes:
The test suites are not supported as of 7.11.0.
The curlmsg.sdl and curlmsg.h files are generated from curlmsg.msg.
This is not done automatically, since the .MSG file is a hand edit
of the relevant stuff from the curl.h file. If you want to do this
yourself you'll need the SDL package from the freeware collection.