From 557cc55f6f398c0cd02571c077d5c73156820513 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Thu, 23 Aug 2007 14:30:24 +0000 Subject: Porting library to OS/400 --- packages/OS400/initscript.sh | 171 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 packages/OS400/initscript.sh (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh new file mode 100644 index 000000000..60d7de229 --- /dev/null +++ b/packages/OS400/initscript.sh @@ -0,0 +1,171 @@ +#!/bin/sh + +# $Id$ + +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 + + +################################################################################ +# +# Tunable configuration parameters. +# +################################################################################ + +TARGETLIB='CURL' # Target OS/400 program library +STATBNDDIR='CURL_A' # Static binding directory. +DYNBNDDIR='CURL' # Dynamic binding directory. +SRVPGM='CURL' # Service program. +TGTCCSID='500' # Target CCSID of objects +DEBUG='*ALL' # Debug level +OPTIMIZE='10' # Optimisation level +OUTPUT='*NONE' # Compilation output option. +TGTRLS='V5R1M0' # Target OS release + +export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUTC +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}" +} -- cgit v1.2.1 From a83e72692f6037c89dc9fc7b00c1b2a7a39c6508 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 10 Dec 2007 17:09:09 +0000 Subject: Define new options in OS400 RPG interface Port OS400 compilation scripts to >= V5R2M0 --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 60d7de229..f32e8915b 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -35,7 +35,7 @@ TGTCCSID='500' # Target CCSID of objects DEBUG='*ALL' # Debug level OPTIMIZE='10' # Optimisation level OUTPUT='*NONE' # Compilation output option. -TGTRLS='V5R1M0' # Target OS release +TGTRLS='V5R2M0' # Target OS release export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUTC export TGTRLS -- cgit v1.2.1 From 3ee32d79207845f976ee89830063a3faa689e566 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Wed, 16 Jan 2008 16:04:47 +0000 Subject: OS/400 update: New declarations in curl.h reported to curl.inc.in. Copyrights extended to 2008. SONAME handling introduced in build scripts. --- packages/OS400/initscript.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index f32e8915b..b851e366b 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -20,6 +20,12 @@ TOPDIR=`dirname "${SCRIPTDIR}"` TOPDIR=`dirname "${TOPDIR}"` export SCRIPTDIR TOPDIR +# Extract the SONAME from the library makefile. + +SONAME=`sed -e '/^VERSION=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' \ + < "${TOPDIR}/lib/Makefile.am"` +export SONAME + ################################################################################ # @@ -30,7 +36,7 @@ export SCRIPTDIR TOPDIR TARGETLIB='CURL' # Target OS/400 program library STATBNDDIR='CURL_A' # Static binding directory. DYNBNDDIR='CURL' # Dynamic binding directory. -SRVPGM='CURL' # Service program. +SRVPGM="CURL.${SONAME}" # Service program. TGTCCSID='500' # Target CCSID of objects DEBUG='*ALL' # Debug level OPTIMIZE='10' # Optimisation level -- cgit v1.2.1 From a08b6ae813df73c90b2cfc8364c4ff1eb0723d84 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 7 Apr 2008 13:09:17 +0000 Subject: Adapt OS400 SSL (qssl.h) to V5R4 Fix qssl.c wrong error message Upgrade OS400 wrappers and makefiles to 7.18.1 --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index b851e366b..4dcbe7235 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -156,7 +156,7 @@ db2_name() { basename "${1}" | - tr '[a-z]' '[A-Z]' | + tr '[a-z-]' '[A-Z_]' | sed -e 's/\..*//' \ -e 's/^\(..........\).*/\1/' } -- cgit v1.2.1 From 24bf52bc691cca9f8b3a668e26b4dd695ec4991c Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Tue, 20 May 2008 10:21:50 +0000 Subject: Adapting last changes to OS400: _ Updated packages/OS400/curl.inc.in with new definitions. _ New connect/bind/sendto/recvfrom wrappers to support AF_UNIX sockets. _ Include files line length shortened below 100 chars. _ Const parameter in lib/qssl.[ch]. _ Typos in packages/OS400/initscript.sh. --- packages/OS400/initscript.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 4dcbe7235..ad4aa7da2 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -40,10 +40,10 @@ SRVPGM="CURL.${SONAME}" # Service program. TGTCCSID='500' # Target CCSID of objects DEBUG='*ALL' # Debug level OPTIMIZE='10' # Optimisation level -OUTPUT='*NONE' # Compilation output option. +OUTPUT='*NONE' # Compilation output option. TGTRLS='V5R2M0' # Target OS release -export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUTC +export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUT export TGTRLS -- cgit v1.2.1 From fdcb0cd2bce920231af8c0218fe48f276817018b Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 25 Aug 2008 13:58:45 +0000 Subject: Adapting OS400 build scripts to new features: new curlbuild.h file and soname in VERSION --> VERSIONINFO --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index ad4aa7da2..308c6d72b 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -22,7 +22,7 @@ export SCRIPTDIR TOPDIR # Extract the SONAME from the library makefile. -SONAME=`sed -e '/^VERSION=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' \ +SONAME=`sed -e '/^VERSIONINFO=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' -e 'q' \ < "${TOPDIR}/lib/Makefile.am"` export SONAME -- cgit v1.2.1 From 1472be4d3e55e1f3c0c0d1fdbee77a45630f326b Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 16 Feb 2009 15:33:17 +0000 Subject: Preparation of imminent release: synchronizing OS400 wrappers + RPG binding to current state. --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 308c6d72b..15ae86ea5 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -156,7 +156,7 @@ db2_name() { basename "${1}" | - tr '[a-z-]' '[A-Z_]' | + tr '[a-z-]' '[A-Z_]' | sed -e 's/\..*//' \ -e 's/^\(..........\).*/\1/' } -- cgit v1.2.1 From 2309b4e330b96bc2e1f8e36b6184015e59544037 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 24 Mar 2010 11:02:54 +0100 Subject: remove the CVSish $Id$ lines --- packages/OS400/initscript.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 15ae86ea5..df6bf49b6 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -1,6 +1,5 @@ #!/bin/sh -# $Id$ case "${SCRIPTDIR}" in /*) ;; -- cgit v1.2.1 From c5e539c312af011e312bd82a9fef6c2c44061ca9 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Apr 2010 16:55:13 +0200 Subject: OS400 version V5R2M0 not supported anymore by IBM: default target release changed to V5R3M0. --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index df6bf49b6..9bf93a8e6 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -40,7 +40,7 @@ TGTCCSID='500' # Target CCSID of objects DEBUG='*ALL' # Debug level OPTIMIZE='10' # Optimisation level OUTPUT='*NONE' # Compilation output option. -TGTRLS='V5R2M0' # Target OS release +TGTRLS='V5R3M0' # Target OS release export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUT export TGTRLS -- cgit v1.2.1 From e3a9804d3aa5e4ea77311e7f7082ff27219b6d39 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Thu, 14 Jul 2011 17:07:35 +0200 Subject: Fix OS400 scripts to make it compilable again. Upgrade ILE/RPG binding to 7.21.7. Update OS400 documentation accordingly. --- packages/OS400/initscript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 9bf93a8e6..97e978158 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -155,7 +155,7 @@ db2_name() { basename "${1}" | - tr '[a-z-]' '[A-Z_]' | + tr 'a-z-' 'A-Z_' | sed -e 's/\..*//' \ -e 's/^\(..........\).*/\1/' } -- cgit v1.2.1 From e19917296f360159975214bcabbaf1713956c356 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Thu, 12 Apr 2012 19:13:23 +0200 Subject: OS400/initscript.sh: fix db2_name() module name generation Allow repeatable file name length reduction on file names with underscore or dash characters. This is done in order to better support libcurl's existing source file names and allow OS/400 package to build out of the box again. --- packages/OS400/initscript.sh | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index 97e978158..d28a8db11 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -157,6 +157,10 @@ db2_name() basename "${1}" | tr 'a-z-' 'A-Z_' | sed -e 's/\..*//' \ + -e 's/\([^_]\)[^_]*_\(.*\)/\1\2/' \ + -e 's/\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3/' \ + -e 's/\([^_]\)\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3\4/' \ + -e 's/\([^_]\)\([^_]\)\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3\4\5/' \ -e 's/^\(..........\).*/\1/' } -- cgit v1.2.1 From 4b994e14fbcd67c60023ee95f967719da24e3e94 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 12 Nov 2012 14:26:16 +0100 Subject: OS400: upgrade wrappers for the 7.28.1 release. --- packages/OS400/initscript.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'packages/OS400/initscript.sh') diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh index d28a8db11..c07355fc0 100644 --- a/packages/OS400/initscript.sh +++ b/packages/OS400/initscript.sh @@ -157,11 +157,8 @@ db2_name() basename "${1}" | tr 'a-z-' 'A-Z_' | sed -e 's/\..*//' \ - -e 's/\([^_]\)[^_]*_\(.*\)/\1\2/' \ - -e 's/\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3/' \ - -e 's/\([^_]\)\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3\4/' \ - -e 's/\([^_]\)\([^_]\)\([^_]\)\([^_]\)[^_]*_\(.*\)/\1\2\3\4\5/' \ - -e 's/^\(..........\).*/\1/' + -e 's/^CURL_*/C/' \ + -e 's/^\(.\).*\(.........\)$/\1\2/' } -- cgit v1.2.1