aboutsummaryrefslogtreecommitdiffstats
path: root/packages/OS400/initscript.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packages/OS400/initscript.sh')
-rw-r--r--packages/OS400/initscript.sh108
1 files changed, 89 insertions, 19 deletions
diff --git a/packages/OS400/initscript.sh b/packages/OS400/initscript.sh
index 9bf93a8e..0105f5a9 100644
--- a/packages/OS400/initscript.sh
+++ b/packages/OS400/initscript.sh
@@ -1,6 +1,16 @@
#!/bin/sh
+setenv()
+
+{
+ # Define and export.
+
+ eval ${1}="${2}"
+ export ${1}
+}
+
+
case "${SCRIPTDIR}" in
/*) ;;
*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
@@ -32,18 +42,23 @@ export SONAME
#
################################################################################
-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
+setenv TARGETLIB 'CURL' # Target OS/400 program library.
+setenv STATBNDDIR 'CURL_A' # Static binding directory.
+setenv DYNBNDDIR 'CURL' # Dynamic binding directory.
+setenv SRVPGM "CURL.${SONAME}" # Service program.
+setenv TGTCCSID '500' # Target CCSID of objects.
+setenv DEBUG '*ALL' # Debug level.
+setenv OPTIMIZE '10' # Optimisation level
+setenv OUTPUT '*NONE' # Compilation output option.
+setenv TGTRLS 'V5R3M0' # Target OS release.
+setenv IFSDIR '/curl' # Installation IFS directory.
-export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM TGTCCSID DEBUG OPTIMIZE OUTPUT
-export TGTRLS
+# Define ZLIB availability and locations.
+
+setenv WITH_ZLIB 0 # Define to 1 to enable.
+setenv ZLIB_INCLUDE '/zlib/include' # ZLIB include IFS directory.
+setenv ZLIB_LIB 'ZLIB' # ZLIB library.
+setenv ZLIB_BNDDIR 'ZLIB_A' # ZLIB binding directory.
################################################################################
@@ -104,6 +119,41 @@ action_needed()
}
+# canonicalize_path path
+#
+# Return canonicalized path as:
+# - Absolute
+# - No . or .. component.
+
+canonicalize_path()
+
+{
+ if expr "${1}" : '^/' > /dev/null
+ then P="${1}"
+ else P="`pwd`/${1}"
+ fi
+
+ R=
+ IFSSAVE="${IFS}"
+ IFS="/"
+
+ for C in ${P}
+ do IFS="${IFSSAVE}"
+ case "${C}" in
+ .) ;;
+ ..) R=`expr "${R}" : '^\(.*/\)..*'`
+ ;;
+ ?*) R="${R}${C}/"
+ ;;
+ *) ;;
+ esac
+ done
+
+ IFS="${IFSSAVE}"
+ echo "/`expr "${R}" : '^\(.*\)/'`"
+}
+
+
# make_module module_name source_name [additional_definitions]
#
# Compile source name into ASCII module if needed.
@@ -116,6 +166,7 @@ make_module()
MODULES="${MODULES} ${1}"
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
action_needed "${MODIFSNAME}" "${2}" || return 0;
+ SRCDIR=`dirname \`canonicalize_path "${2}"\``
# #pragma convert has to be in the source file itself, i.e.
# putting it in an include file makes it only active
@@ -132,15 +183,27 @@ make_module()
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} '${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}'"
+ CMD="${CMD} '${TOPDIR}/packages/OS400'"
+
+ if [ "${WITH_ZLIB}" != "0" ]
+ then CMD="${CMD} '${ZLIB_INCLUDE}'"
+ fi
+
+ CMD="${CMD} ${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})"
+ DEFINES="${3}"
+
+ if [ "${WITH_ZLIB}" != "0" ]
+ then DEFINES="${DEFINES} HAVE_LIBZ HAVE_ZLIB_H"
+ fi
+
+ if [ "${DEFINES}" ]
+ then CMD="${CMD} DEFINE(${DEFINES})"
fi
system "${CMD}"
@@ -154,10 +217,17 @@ make_module()
db2_name()
{
- basename "${1}" |
- tr '[a-z-]' '[A-Z_]' |
- sed -e 's/\..*//' \
- -e 's/^\(..........\).*/\1/'
+ if [ "${2}" = 'nomangle' ]
+ then basename "${1}" |
+ tr 'a-z-' 'A-Z_' |
+ sed -e 's/\..*//' \
+ -e 's/^\(.\).*\(.........\)$/\1\2/'
+ else basename "${1}" |
+ tr 'a-z-' 'A-Z_' |
+ sed -e 's/\..*//' \
+ -e 's/^CURL_*/C/' \
+ -e 's/^\(.\).*\(.........\)$/\1\2/'
+ fi
}