| #!/bin/sh | 
 | #*************************************************************************** | 
 | #                                  _   _ ____  _ | 
 | #  Project                     ___| | | |  _ \| | | 
 | #                             / __| | | | |_) | | | 
 | #                            | (__| |_| |  _ <| |___ | 
 | #                             \___|\___/|_| \_\_____| | 
 | # | 
 | # Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al. | 
 | # | 
 | # This software is licensed as described in the file COPYING, which | 
 | # you should have received as part of this distribution. The terms | 
 | # are also available at https://curl.se/docs/copyright.html. | 
 | # | 
 | # You may opt to use, copy, modify, merge, publish, distribute and/or sell | 
 | # copies of the Software, and permit persons to whom the Software is | 
 | # furnished to do so, under the terms of the COPYING file. | 
 | # | 
 | # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | 
 | # KIND, either express or implied. | 
 | # | 
 | # SPDX-License-Identifier: curl | 
 | # | 
 | ########################################################################### | 
 | # | 
 | #       tests compilation script for the OS/400. | 
 | # | 
 |  | 
 |  | 
 | SCRIPTDIR=`dirname "${0}"` | 
 | . "${SCRIPTDIR}/initscript.sh" | 
 | cd "${TOPDIR}/tests" | 
 |  | 
 |  | 
 | #       tests directory not implemented yet. | 
 |  | 
 |  | 
 | #       Process the libtest subdirectory. | 
 |  | 
 | cd libtest | 
 |  | 
 | #       Get definitions from the Makefile.inc file. | 
 | #       The `sed' statement works as follows: | 
 | #       _ Join \nl-separated lines. | 
 | #       _ Retain only lines that begins with "identifier =". | 
 | #       _ Turn these lines into shell variable assignments. | 
 |  | 
 | eval "`sed -e ': begin'                                                 \ | 
 |         -e '/\\\\$/{'                                                   \ | 
 |         -e 'N'                                                          \ | 
 |         -e 's/\\\\\\n/ /'                                               \ | 
 |         -e 'b begin'                                                    \ | 
 |         -e '}'                                                          \ | 
 |         -e '/^[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[=]/b keep'             \ | 
 |         -e 'd'                                                          \ | 
 |         -e ': keep'                                                     \ | 
 |         -e 's/[[:space:]]*=[[:space:]]*/=/'                             \ | 
 |         -e 's/=\\(.*[^[:space:]]\\)[[:space:]]*$/=\\"\\1\\"/'           \ | 
 |         -e 's/\\$(\\([^)]*\\))/${\\1}/g'                                \ | 
 |         < Makefile.inc`" | 
 |  | 
 | #       Special case: redefine chkhostname compilation parameters. | 
 |  | 
 | chkhostname_SOURCES=chkhostname.c | 
 | chkhostname_LDADD=curl_gethostname.o | 
 |  | 
 | #       Compile all programs. | 
 | #       The list is found in variable "noinst_PROGRAMS" | 
 |  | 
 | INCLUDES="'${TOPDIR}/tests/libtest' '${TOPDIR}/lib'" | 
 |  | 
 | for PGM in ${noinst_PROGRAMS} | 
 | do      DB2PGM=`db2_name "${PGM}"` | 
 |         PGMIFSNAME="${LIBIFSNAME}/${DB2PGM}.PGM" | 
 |  | 
 |         #       Extract preprocessor symbol definitions from compilation | 
 |         #               options for the program. | 
 |  | 
 |         PGMCFLAGS="`eval echo \"\\${${PGM}_CFLAGS}\"`" | 
 |         PGMDEFINES= | 
 |  | 
 |         for FLAG in ${PGMCFLAGS} | 
 |         do      case "${FLAG}" in | 
 |                 -D?*)   DEFINE="`echo \"${FLAG}\" | sed 's/^..//'`" | 
 |                         PGMDEFINES="${PGMDEFINES} '${DEFINE}'" | 
 |                         ;; | 
 |                 esac | 
 |         done | 
 |  | 
 |         #        Compile all C sources for the program into modules. | 
 |  | 
 |         PGMSOURCES="`eval echo \"\\${${PGM}_SOURCES}\"`" | 
 |         LINK= | 
 |         MODULES= | 
 |  | 
 |         for SOURCE in ${PGMSOURCES} | 
 |         do      case "${SOURCE}" in | 
 |                 *.c)    #       Special processing for libxxx.c files: their | 
 |                         #               module name is determined by the target | 
 |                         #               PROGRAM name. | 
 |  | 
 |                         case "${SOURCE}" in | 
 |                         lib*.c) MODULE="${DB2PGM}" | 
 |                                 ;; | 
 |                         *)      MODULE=`db2_name "${SOURCE}"` | 
 |                                 ;; | 
 |                         esac | 
 |  | 
 |                         make_module "${MODULE}" "${SOURCE}" "${PGMDEFINES}" | 
 |                         if action_needed "${PGMIFSNAME}" "${MODIFSNAME}" | 
 |                         then    LINK=yes | 
 |                         fi | 
 |                         ;; | 
 |                 esac | 
 |         done | 
 |  | 
 |         #       Link program if needed. | 
 |  | 
 |         if [ "${LINK}" ] | 
 |         then    PGMLDADD="`eval echo \"\\${${PGM}_LDADD}\"`" | 
 |                 for LDARG in ${PGMLDADD} | 
 |                 do      case "${LDARG}" in | 
 |                         -*)     ;;              # Ignore non-module. | 
 |                         *)      MODULES="${MODULES} "`db2_name "${LDARG}"` | 
 |                                 ;; | 
 |                         esac | 
 |                 done | 
 |                 MODULES="`echo \"${MODULES}\" | | 
 |                     sed \"s/[^ ][^ ]*/${TARGETLIB}\/&/g\"`" | 
 |                 CMD="CRTPGM PGM(${TARGETLIB}/${DB2PGM})" | 
 |                 CMD="${CMD} ENTMOD(QADRT/QADRTMAIN2)" | 
 |                 CMD="${CMD} MODULE(${MODULES})" | 
 |                 CMD="${CMD} BNDSRVPGM(${TARGETLIB}/${SRVPGM} QADRTTS)" | 
 |                 CMD="${CMD} TGTRLS(${TGTRLS})" | 
 |                 system "${CMD}" | 
 |         fi | 
 | done |