Return to make-lib.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: # 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