Return to initscript.sh CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / packages / OS400 |
1.1 ! misho 1: #!/bin/sh ! 2: #*************************************************************************** ! 3: # _ _ ____ _ ! 4: # Project ___| | | | _ \| | ! 5: # / __| | | | |_) | | ! 6: # | (__| |_| | _ <| |___ ! 7: # \___|\___/|_| \_\_____| ! 8: # ! 9: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. ! 10: # ! 11: # This software is licensed as described in the file COPYING, which ! 12: # you should have received as part of this distribution. The terms ! 13: # are also available at https://curl.haxx.se/docs/copyright.html. ! 14: # ! 15: # You may opt to use, copy, modify, merge, publish, distribute and/or sell ! 16: # copies of the Software, and permit persons to whom the Software is ! 17: # furnished to do so, under the terms of the COPYING file. ! 18: # ! 19: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY ! 20: # KIND, either express or implied. ! 21: # ! 22: ########################################################################### ! 23: ! 24: ! 25: setenv() ! 26: ! 27: { ! 28: # Define and export. ! 29: ! 30: eval ${1}="${2}" ! 31: export ${1} ! 32: } ! 33: ! 34: ! 35: case "${SCRIPTDIR}" in ! 36: /*) ;; ! 37: *) SCRIPTDIR="`pwd`/${SCRIPTDIR}" ! 38: esac ! 39: ! 40: while true ! 41: do case "${SCRIPTDIR}" in ! 42: */.) SCRIPTDIR="${SCRIPTDIR%/.}";; ! 43: *) break;; ! 44: esac ! 45: done ! 46: ! 47: # The script directory is supposed to be in $TOPDIR/packages/os400. ! 48: ! 49: TOPDIR=`dirname "${SCRIPTDIR}"` ! 50: TOPDIR=`dirname "${TOPDIR}"` ! 51: export SCRIPTDIR TOPDIR ! 52: ! 53: # Extract the SONAME from the library makefile. ! 54: ! 55: SONAME=`sed -e '/^VERSIONINFO=/!d' -e 's/^.* \([0-9]*\):.*$/\1/' -e 'q' \ ! 56: < "${TOPDIR}/lib/Makefile.am"` ! 57: export SONAME ! 58: ! 59: ! 60: ################################################################################ ! 61: # ! 62: # Tunable configuration parameters. ! 63: # ! 64: ################################################################################ ! 65: ! 66: setenv TARGETLIB 'CURL' # Target OS/400 program library. ! 67: setenv STATBNDDIR 'CURL_A' # Static binding directory. ! 68: setenv DYNBNDDIR 'CURL' # Dynamic binding directory. ! 69: setenv SRVPGM "CURL.${SONAME}" # Service program. ! 70: setenv TGTCCSID '500' # Target CCSID of objects. ! 71: setenv DEBUG '*ALL' # Debug level. ! 72: setenv OPTIMIZE '10' # Optimisation level ! 73: setenv OUTPUT '*NONE' # Compilation output option. ! 74: setenv TGTRLS 'V6R1M0' # Target OS release. ! 75: setenv IFSDIR '/curl' # Installation IFS directory. ! 76: ! 77: # Define ZLIB availability and locations. ! 78: ! 79: setenv WITH_ZLIB 0 # Define to 1 to enable. ! 80: setenv ZLIB_INCLUDE '/zlib/include' # ZLIB include IFS directory. ! 81: setenv ZLIB_LIB 'ZLIB' # ZLIB library. ! 82: setenv ZLIB_BNDDIR 'ZLIB_A' # ZLIB binding directory. ! 83: ! 84: # Define LIBSSH2 availability and locations. ! 85: ! 86: setenv WITH_LIBSSH2 0 # Define to 1 to enable. ! 87: setenv LIBSSH2_INCLUDE '/libssh2/include' # LIBSSH2 include IFS directory. ! 88: setenv LIBSSH2_LIB 'LIBSSH2' # LIBSSH2 library. ! 89: setenv LIBSSH2_BNDDIR 'LIBSSH2_A' # LIBSSH2 binding directory. ! 90: ! 91: ! 92: ################################################################################ ! 93: ! 94: # Need to get the version definitions. ! 95: ! 96: LIBCURL_VERSION=`grep '^#define *LIBCURL_VERSION ' \ ! 97: "${TOPDIR}/include/curl/curlver.h" | ! 98: sed 's/.*"\(.*\)".*/\1/'` ! 99: LIBCURL_VERSION_MAJOR=`grep '^#define *LIBCURL_VERSION_MAJOR ' \ ! 100: "${TOPDIR}/include/curl/curlver.h" | ! 101: sed 's/^#define *LIBCURL_VERSION_MAJOR *\([^ ]*\).*/\1/'` ! 102: LIBCURL_VERSION_MINOR=`grep '^#define *LIBCURL_VERSION_MINOR ' \ ! 103: "${TOPDIR}/include/curl/curlver.h" | ! 104: sed 's/^#define *LIBCURL_VERSION_MINOR *\([^ ]*\).*/\1/'` ! 105: LIBCURL_VERSION_PATCH=`grep '^#define *LIBCURL_VERSION_PATCH ' \ ! 106: "${TOPDIR}/include/curl/curlver.h" | ! 107: sed 's/^#define *LIBCURL_VERSION_PATCH *\([^ ]*\).*/\1/'` ! 108: LIBCURL_VERSION_NUM=`grep '^#define *LIBCURL_VERSION_NUM ' \ ! 109: "${TOPDIR}/include/curl/curlver.h" | ! 110: sed 's/^#define *LIBCURL_VERSION_NUM *0x\([^ ]*\).*/\1/'` ! 111: LIBCURL_TIMESTAMP=`grep '^#define *LIBCURL_TIMESTAMP ' \ ! 112: "${TOPDIR}/include/curl/curlver.h" | ! 113: sed 's/.*"\(.*\)".*/\1/'` ! 114: export LIBCURL_VERSION ! 115: export LIBCURL_VERSION_MAJOR LIBCURL_VERSION_MINOR LIBCURL_VERSION_PATCH ! 116: export LIBCURL_VERSION_NUM LIBCURL_TIMESTAMP ! 117: ! 118: ################################################################################ ! 119: # ! 120: # OS/400 specific definitions. ! 121: # ! 122: ################################################################################ ! 123: ! 124: LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB" ! 125: ! 126: ! 127: ################################################################################ ! 128: # ! 129: # Procedures. ! 130: # ! 131: ################################################################################ ! 132: ! 133: # action_needed dest [src] ! 134: # ! 135: # dest is an object to build ! 136: # if specified, src is an object on which dest depends. ! 137: # ! 138: # exit 0 (succeeds) if some action has to be taken, else 1. ! 139: ! 140: action_needed() ! 141: ! 142: { ! 143: [ ! -e "${1}" ] && return 0 ! 144: [ "${2}" ] || return 1 ! 145: [ "${1}" -ot "${2}" ] && return 0 ! 146: return 1 ! 147: } ! 148: ! 149: ! 150: # canonicalize_path path ! 151: # ! 152: # Return canonicalized path as: ! 153: # - Absolute ! 154: # - No . or .. component. ! 155: ! 156: canonicalize_path() ! 157: ! 158: { ! 159: if expr "${1}" : '^/' > /dev/null ! 160: then P="${1}" ! 161: else P="`pwd`/${1}" ! 162: fi ! 163: ! 164: R= ! 165: IFSSAVE="${IFS}" ! 166: IFS="/" ! 167: ! 168: for C in ${P} ! 169: do IFS="${IFSSAVE}" ! 170: case "${C}" in ! 171: .) ;; ! 172: ..) R=`expr "${R}" : '^\(.*/\)..*'` ! 173: ;; ! 174: ?*) R="${R}${C}/" ! 175: ;; ! 176: *) ;; ! 177: esac ! 178: done ! 179: ! 180: IFS="${IFSSAVE}" ! 181: echo "/`expr "${R}" : '^\(.*\)/'`" ! 182: } ! 183: ! 184: ! 185: # make_module module_name source_name [additional_definitions] ! 186: # ! 187: # Compile source name into ASCII module if needed. ! 188: # As side effect, append the module name to variable MODULES. ! 189: # Set LINK to "YES" if the module has been compiled. ! 190: ! 191: make_module() ! 192: ! 193: { ! 194: MODULES="${MODULES} ${1}" ! 195: MODIFSNAME="${LIBIFSNAME}/${1}.MODULE" ! 196: action_needed "${MODIFSNAME}" "${2}" || return 0; ! 197: SRCDIR=`dirname \`canonicalize_path "${2}"\`` ! 198: ! 199: # #pragma convert has to be in the source file itself, i.e. ! 200: # putting it in an include file makes it only active ! 201: # for that include file. ! 202: # Thus we build a temporary file with the pragma prepended to ! 203: # the source file and we compile that themporary file. ! 204: ! 205: echo "#line 1 \"${2}\"" > __tmpsrcf.c ! 206: echo "#pragma convert(819)" >> __tmpsrcf.c ! 207: echo "#line 1" >> __tmpsrcf.c ! 208: cat "${2}" >> __tmpsrcf.c ! 209: CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')" ! 210: # CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)" ! 211: CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)" ! 212: CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)" ! 213: CMD="${CMD} INCDIR('/qibm/proddata/qadrt/include'" ! 214: CMD="${CMD} '${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}'" ! 215: CMD="${CMD} '${TOPDIR}/packages/OS400'" ! 216: ! 217: if [ "${WITH_ZLIB}" != "0" ] ! 218: then CMD="${CMD} '${ZLIB_INCLUDE}'" ! 219: fi ! 220: ! 221: if [ "${WITH_LIBSSH2}" != "0" ] ! 222: then CMD="${CMD} '${LIBSSH2_INCLUDE}'" ! 223: fi ! 224: ! 225: CMD="${CMD} ${INCLUDES})" ! 226: CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})" ! 227: CMD="${CMD} OUTPUT(${OUTPUT})" ! 228: CMD="${CMD} OPTIMIZE(${OPTIMIZE})" ! 229: CMD="${CMD} DBGVIEW(${DEBUG})" ! 230: ! 231: DEFINES="${3} BUILDING_LIBCURL" ! 232: ! 233: if [ "${WITH_ZLIB}" != "0" ] ! 234: then DEFINES="${DEFINES} HAVE_LIBZ HAVE_ZLIB_H" ! 235: fi ! 236: ! 237: if [ "${WITH_LIBSSH2}" != "0" ] ! 238: then DEFINES="${DEFINES} USE_LIBSSH2 HAVE_LIBSSH2_H" ! 239: fi ! 240: ! 241: if [ "${DEFINES}" ] ! 242: then CMD="${CMD} DEFINE(${DEFINES})" ! 243: fi ! 244: ! 245: system "${CMD}" ! 246: rm -f __tmpsrcf.c ! 247: LINK=YES ! 248: } ! 249: ! 250: ! 251: # Determine DB2 object name from IFS name. ! 252: ! 253: db2_name() ! 254: ! 255: { ! 256: if [ "${2}" = 'nomangle' ] ! 257: then basename "${1}" | ! 258: tr 'a-z-' 'A-Z_' | ! 259: sed -e 's/\..*//' \ ! 260: -e 's/^\(.\).*\(.........\)$/\1\2/' ! 261: else basename "${1}" | ! 262: tr 'a-z-' 'A-Z_' | ! 263: sed -e 's/\..*//' \ ! 264: -e 's/^CURL_*/C/' \ ! 265: -e 's/^\(.\).*\(.........\)$/\1\2/' ! 266: fi ! 267: } ! 268: ! 269: ! 270: # Copy IFS file replacing version info. ! 271: ! 272: versioned_copy() ! 273: ! 274: { ! 275: sed -e "s/@LIBCURL_VERSION@/${LIBCURL_VERSION}/g" \ ! 276: -e "s/@LIBCURL_VERSION_MAJOR@/${LIBCURL_VERSION_MAJOR}/g" \ ! 277: -e "s/@LIBCURL_VERSION_MINOR@/${LIBCURL_VERSION_MINOR}/g" \ ! 278: -e "s/@LIBCURL_VERSION_PATCH@/${LIBCURL_VERSION_PATCH}/g" \ ! 279: -e "s/@LIBCURL_VERSION_NUM@/${LIBCURL_VERSION_NUM}/g" \ ! 280: -e "s/@LIBCURL_TIMESTAMP@/${LIBCURL_TIMESTAMP}/g" \ ! 281: < "${1}" > "${2}" ! 282: }