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>