Annotation of embedaddon/curl/packages/OS400/make-lib.sh, revision 1.1
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: # libcurl compilation script for the OS/400.
! 25: #
! 26:
! 27: SCRIPTDIR=`dirname "${0}"`
! 28: . "${SCRIPTDIR}/initscript.sh"
! 29: cd "${TOPDIR}/lib"
! 30:
! 31: # Need to have IFS access to the mih/cipher header file.
! 32:
! 33: if action_needed cipher.mih '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR'
! 34: then rm -f cipher.mih
! 35: ln -s '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR' cipher.mih
! 36: fi
! 37:
! 38:
! 39: # Create and compile the identification source file.
! 40:
! 41: echo '#pragma comment(user, "libcurl version '"${LIBCURL_VERSION}"'")' > os400.c
! 42: echo '#pragma comment(user, __DATE__)' >> os400.c
! 43: echo '#pragma comment(user, __TIME__)' >> os400.c
! 44: echo '#pragma comment(copyright, "Copyright (C) 1998-2016 Daniel Stenberg et al. OS/400 version by P. Monnerat")' >> os400.c
! 45: make_module OS400 os400.c
! 46: LINK= # No need to rebuild service program yet.
! 47: MODULES=
! 48:
! 49:
! 50: # Get source list.
! 51:
! 52: sed -e ':begin' \
! 53: -e '/\\$/{' \
! 54: -e 's/\\$/ /' \
! 55: -e 'N' \
! 56: -e 'bbegin' \
! 57: -e '}' \
! 58: -e 's/\n//g' \
! 59: -e 's/[[:space:]]*$//' \
! 60: -e 's/^\([A-Za-z][A-Za-z0-9_]*\)[[:space:]]*=[[:space:]]*\(.*\)/\1="\2"/' \
! 61: -e 's/\$(\([A-Za-z][A-Za-z0-9_]*\))/${\1}/g' \
! 62: < Makefile.inc > tmpscript.sh
! 63: . ./tmpscript.sh
! 64:
! 65:
! 66: # Compile the sources into modules.
! 67:
! 68: INCLUDES="'`pwd`'"
! 69:
! 70: # Create a small C program to check ccsidcurl.c is up to date
! 71: if action_needed "${LIBIFSNAME}/CHKSTRINGS.PGM"
! 72: then
! 73: CMD="CRTBNDC PGM(${TARGETLIB}/CHKSTRINGS) SRCSTMF('${SCRIPTDIR}/chkstrings.c')"
! 74: CMD="${CMD} INCDIR('${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}' ${INCLUDES})"
! 75: system -i "${CMD}"
! 76: if [ $? -ne 0 ]
! 77: then
! 78: echo "ERROR: Failed to build CHKSTRINGS *PGM object!"
! 79: exit 2
! 80: else
! 81: ${LIBIFSNAME}/CHKSTRINGS.PGM
! 82: if [ $? -ne 0 ]
! 83: then
! 84: echo "ERROR: CHKSTRINGS failed!"
! 85: exit 2
! 86: fi
! 87: fi
! 88: fi
! 89:
! 90: make_module OS400SYS "${SCRIPTDIR}/os400sys.c"
! 91: make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c"
! 92:
! 93: for SRC in ${CSOURCES}
! 94: do MODULE=`db2_name "${SRC}"`
! 95: make_module "${MODULE}" "${SRC}"
! 96: done
! 97:
! 98:
! 99: # If needed, (re)create the static binding directory.
! 100:
! 101: if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
! 102: then LINK=YES
! 103: fi
! 104:
! 105: if [ "${LINK}" ]
! 106: then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
! 107: CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
! 108: CMD="${CMD} TEXT('LibCurl API static binding directory')"
! 109: system "${CMD}"
! 110:
! 111: for MODULE in ${MODULES}
! 112: do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
! 113: CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
! 114: system "${CMD}"
! 115: done
! 116: fi
! 117:
! 118:
! 119: # The exportation file for service program creation must be in a DB2
! 120: # source file, so make sure it exists.
! 121:
! 122: if action_needed "${LIBIFSNAME}/TOOLS.FILE"
! 123: then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
! 124: CMD="${CMD} TEXT('curl: build tools')"
! 125: system "${CMD}"
! 126: fi
! 127:
! 128:
! 129: # Gather the list of symbols to export.
! 130:
! 131: EXPORTS=`grep '^CURL_EXTERN[[:space:]]' \
! 132: "${TOPDIR}"/include/curl/*.h \
! 133: "${SCRIPTDIR}/ccsidcurl.h" |
! 134: sed -e 's/^.*CURL_EXTERN[[:space:]]\(.*\)(.*$/\1/' \
! 135: -e 's/[[:space:]]*$//' \
! 136: -e 's/^.*[[:space:]][[:space:]]*//' \
! 137: -e 's/^\*//' \
! 138: -e 's/(\(.*\))/\1/'`
! 139:
! 140: # Create the service program exportation file in DB2 member if needed.
! 141:
! 142: BSF="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
! 143:
! 144: if action_needed "${BSF}" Makefile.am
! 145: then LINK=YES
! 146: fi
! 147:
! 148: if [ "${LINK}" ]
! 149: then echo " STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('LIBCURL_${SONAME}')" \
! 150: > "${BSF}"
! 151: for EXPORT in ${EXPORTS}
! 152: do echo ' EXPORT SYMBOL("'"${EXPORT}"'")' >> "${BSF}"
! 153: done
! 154:
! 155: echo ' ENDPGMEXP' >> "${BSF}"
! 156: fi
! 157:
! 158:
! 159: # Build the service program if needed.
! 160:
! 161: if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
! 162: then LINK=YES
! 163: fi
! 164:
! 165: if [ "${LINK}" ]
! 166: then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
! 167: CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
! 168: CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
! 169: CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR}"
! 170: if [ "${WITH_ZLIB}" != 0 ]
! 171: then CMD="${CMD} ${ZLIB_LIB}/${ZLIB_BNDDIR}"
! 172: liblist -a "${ZLIB_LIB}"
! 173: fi
! 174: if [ "${WITH_LIBSSH2}" != 0 ]
! 175: then CMD="${CMD} ${LIBSSH2_LIB}/${LIBSSH2_BNDDIR}"
! 176: liblist -a "${LIBSSH2_LIB}"
! 177: fi
! 178: CMD="${CMD})"
! 179: CMD="${CMD} BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)"
! 180: CMD="${CMD} TEXT('curl API library')"
! 181: CMD="${CMD} TGTRLS(${TGTRLS})"
! 182: system "${CMD}"
! 183: LINK=YES
! 184: fi
! 185:
! 186:
! 187: # If needed, (re)create the dynamic binding directory.
! 188:
! 189: if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
! 190: then LINK=YES
! 191: fi
! 192:
! 193: if [ "${LINK}" ]
! 194: then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
! 195: CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
! 196: CMD="${CMD} TEXT('LibCurl API dynamic binding directory')"
! 197: system "${CMD}"
! 198: CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
! 199: CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
! 200: system "${CMD}"
! 201: fi
! 202:
! 203:
! 204: # Rebuild the formdata test if needed.
! 205:
! 206: if [ "${TEST_FORMDATA}" ]
! 207: then MODULES=
! 208: make_module TFORMDATA formdata.c "'_FORM_DEBUG' 'CURLDEBUG'"
! 209: make_module TSTREQUAL strequal.c "'_FORM_DEBUG' 'CURLDEBUG'"
! 210: make_module TMEMDEBUG memdebug.c "'_FORM_DEBUG' 'CURLDEBUG'"
! 211: make_module TMPRINTF mprintf.c "'_FORM_DEBUG' 'CURLDEBUG'"
! 212: make_module TSTRERROR strerror.c "'_FORM_DEBUG' 'CURLDEBUG'"
! 213: # The following modules should not be needed (see comment in
! 214: # formdata.c. However, there are some unsatisfied
! 215: # external references leading in the following
! 216: # modules to be (recursively) needed.
! 217: MODULES="${MODULES} EASY STRDUP SSLGEN GSKIT HOSTIP HOSTIP4 HOSTIP6"
! 218: MODULES="${MODULES} URL HASH TRANSFER GETINFO COOKIE SENDF SELECT"
! 219: MODULES="${MODULES} INET_NTOP SHARE HOSTTHRE MULTI LLIST FTP HTTP"
! 220: MODULES="${MODULES} HTTP_DIGES HTTP_CHUNK HTTP_NEGOT TIMEVAL HOSTSYN"
! 221: MODULES="${MODULES} CONNECT SOCKS PROGRESS ESCAPE INET_PTON GETENV"
! 222: MODULES="${MODULES} DICT LDAP TELNET FILE TFTP NETRC PARSEDATE"
! 223: MODULES="${MODULES} SPEEDCHECK SPLAY BASE64 SECURITY IF2IP MD5"
! 224: MODULES="${MODULES} KRB5 OS400SYS"
! 225:
! 226: PGMIFSNAME="${LIBIFSNAME}/TFORMDATA.PGM"
! 227:
! 228: if action_needed "${PGMIFSNAME}"
! 229: then LINK=YES
! 230: fi
! 231:
! 232: if [ "${LINK}" ]
! 233: then CMD="CRTPGM PGM(${TARGETLIB}/TFORMDATA)"
! 234: CMD="${CMD} ENTMOD(QADRT/QADRTMAIN2)"
! 235: CMD="${CMD} MODULE("
! 236:
! 237: for MODULE in ${MODULES}
! 238: do CMD="${CMD} ${TARGETLIB}/${MODULE}"
! 239: done
! 240:
! 241: CMD="${CMD} ) BNDSRVPGM(QADRTTS)"
! 242: CMD="${CMD} TGTRLS(${TGTRLS})"
! 243: system "${CMD}"
! 244: fi
! 245: fi
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>