xref: /aosp_15_r20/external/curl/packages/OS400/make-tests.sh (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker#!/bin/sh
2*6236dae4SAndroid Build Coastguard Worker#***************************************************************************
3*6236dae4SAndroid Build Coastguard Worker#                                  _   _ ____  _
4*6236dae4SAndroid Build Coastguard Worker#  Project                     ___| | | |  _ \| |
5*6236dae4SAndroid Build Coastguard Worker#                             / __| | | | |_) | |
6*6236dae4SAndroid Build Coastguard Worker#                            | (__| |_| |  _ <| |___
7*6236dae4SAndroid Build Coastguard Worker#                             \___|\___/|_| \_\_____|
8*6236dae4SAndroid Build Coastguard Worker#
9*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>, et al.
10*6236dae4SAndroid Build Coastguard Worker#
11*6236dae4SAndroid Build Coastguard Worker# This software is licensed as described in the file COPYING, which
12*6236dae4SAndroid Build Coastguard Worker# you should have received as part of this distribution. The terms
13*6236dae4SAndroid Build Coastguard Worker# are also available at https://curl.se/docs/copyright.html.
14*6236dae4SAndroid Build Coastguard Worker#
15*6236dae4SAndroid Build Coastguard Worker# You may opt to use, copy, modify, merge, publish, distribute and/or sell
16*6236dae4SAndroid Build Coastguard Worker# copies of the Software, and permit persons to whom the Software is
17*6236dae4SAndroid Build Coastguard Worker# furnished to do so, under the terms of the COPYING file.
18*6236dae4SAndroid Build Coastguard Worker#
19*6236dae4SAndroid Build Coastguard Worker# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20*6236dae4SAndroid Build Coastguard Worker# KIND, either express or implied.
21*6236dae4SAndroid Build Coastguard Worker#
22*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: curl
23*6236dae4SAndroid Build Coastguard Worker#
24*6236dae4SAndroid Build Coastguard Worker###########################################################################
25*6236dae4SAndroid Build Coastguard Worker#
26*6236dae4SAndroid Build Coastguard Worker#       tests compilation script for the OS/400.
27*6236dae4SAndroid Build Coastguard Worker#
28*6236dae4SAndroid Build Coastguard Worker
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard WorkerSCRIPTDIR=$(dirname "${0}")
31*6236dae4SAndroid Build Coastguard Worker. "${SCRIPTDIR}/initscript.sh"
32*6236dae4SAndroid Build Coastguard Workercd "${TOPDIR}/tests" || exit 1
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard Worker
35*6236dae4SAndroid Build Coastguard Worker#       Build programs in a directory.
36*6236dae4SAndroid Build Coastguard Worker
37*6236dae4SAndroid Build Coastguard Workerbuild_all_programs()
38*6236dae4SAndroid Build Coastguard Worker
39*6236dae4SAndroid Build Coastguard Worker{
40*6236dae4SAndroid Build Coastguard Worker        #       Compile all programs.
41*6236dae4SAndroid Build Coastguard Worker        #       The list is found in variable "noinst_PROGRAMS"
42*6236dae4SAndroid Build Coastguard Worker
43*6236dae4SAndroid Build Coastguard Worker        # shellcheck disable=SC2034
44*6236dae4SAndroid Build Coastguard Worker        INCLUDES="'$(pwd)' '${TOPDIR}/lib' '${TOPDIR}/src'"
45*6236dae4SAndroid Build Coastguard Worker        MODS="${1}"
46*6236dae4SAndroid Build Coastguard Worker        SRVPGMS="${2}"
47*6236dae4SAndroid Build Coastguard Worker
48*6236dae4SAndroid Build Coastguard Worker        # shellcheck disable=SC2154
49*6236dae4SAndroid Build Coastguard Worker        for PGM in ${noinst_PROGRAMS}
50*6236dae4SAndroid Build Coastguard Worker        do      DB2PGM=$(db2_name "${PGM}")
51*6236dae4SAndroid Build Coastguard Worker                PGMIFSNAME="${LIBIFSNAME}/${DB2PGM}.PGM"
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker                #       Extract preprocessor symbol definitions from
54*6236dae4SAndroid Build Coastguard Worker                #               compilation options for the program.
55*6236dae4SAndroid Build Coastguard Worker
56*6236dae4SAndroid Build Coastguard Worker                PGMCFLAGS="$(eval echo "\${${PGM}_CFLAGS}")"
57*6236dae4SAndroid Build Coastguard Worker                PGMDFNS=
58*6236dae4SAndroid Build Coastguard Worker
59*6236dae4SAndroid Build Coastguard Worker                for FLAG in ${PGMCFLAGS}
60*6236dae4SAndroid Build Coastguard Worker                do      case "${FLAG}" in
61*6236dae4SAndroid Build Coastguard Worker                        -D?*)   # shellcheck disable=SC2001
62*6236dae4SAndroid Build Coastguard Worker                                DEFINE="$(echo "${FLAG}" | sed 's/^..//')"
63*6236dae4SAndroid Build Coastguard Worker                                PGMDFNS="${PGMDFNS} '${DEFINE}'"
64*6236dae4SAndroid Build Coastguard Worker                                ;;
65*6236dae4SAndroid Build Coastguard Worker                        esac
66*6236dae4SAndroid Build Coastguard Worker                done
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard Worker                #        Compile all C sources for the program into modules.
69*6236dae4SAndroid Build Coastguard Worker
70*6236dae4SAndroid Build Coastguard Worker                PGMSOURCES="$(eval echo "\${${PGM}_SOURCES}")"
71*6236dae4SAndroid Build Coastguard Worker                LINK=
72*6236dae4SAndroid Build Coastguard Worker                MODULES=
73*6236dae4SAndroid Build Coastguard Worker
74*6236dae4SAndroid Build Coastguard Worker                for SOURCE in ${PGMSOURCES}
75*6236dae4SAndroid Build Coastguard Worker                do      case "${SOURCE}" in
76*6236dae4SAndroid Build Coastguard Worker                        *.c)    #       Special processing for libxxx.c files:
77*6236dae4SAndroid Build Coastguard Worker                                #               their module name is determined
78*6236dae4SAndroid Build Coastguard Worker                                #               by the target PROGRAM name.
79*6236dae4SAndroid Build Coastguard Worker
80*6236dae4SAndroid Build Coastguard Worker                                case "${SOURCE}" in
81*6236dae4SAndroid Build Coastguard Worker                                lib*.c) MODULE="${DB2PGM}"
82*6236dae4SAndroid Build Coastguard Worker                                        ;;
83*6236dae4SAndroid Build Coastguard Worker                                *)      MODULE=$(db2_name "${SOURCE}")
84*6236dae4SAndroid Build Coastguard Worker                                        ;;
85*6236dae4SAndroid Build Coastguard Worker                                esac
86*6236dae4SAndroid Build Coastguard Worker
87*6236dae4SAndroid Build Coastguard Worker                                #       If source is in a sibling directory,
88*6236dae4SAndroid Build Coastguard Worker                                #               prefix module name with 'X'.
89*6236dae4SAndroid Build Coastguard Worker
90*6236dae4SAndroid Build Coastguard Worker                                case "${SOURCE}" in
91*6236dae4SAndroid Build Coastguard Worker                                ../*)   MODULE=$(db2_name "X${MODULE}")
92*6236dae4SAndroid Build Coastguard Worker                                            ;;
93*6236dae4SAndroid Build Coastguard Worker                                esac
94*6236dae4SAndroid Build Coastguard Worker
95*6236dae4SAndroid Build Coastguard Worker                                make_module "${MODULE}" "${SOURCE}" "${PGMDFNS}"
96*6236dae4SAndroid Build Coastguard Worker                                if action_needed "${PGMIFSNAME}" "${MODIFSNAME}"
97*6236dae4SAndroid Build Coastguard Worker                                then    LINK=yes
98*6236dae4SAndroid Build Coastguard Worker                                fi
99*6236dae4SAndroid Build Coastguard Worker                                ;;
100*6236dae4SAndroid Build Coastguard Worker                        esac
101*6236dae4SAndroid Build Coastguard Worker                done
102*6236dae4SAndroid Build Coastguard Worker
103*6236dae4SAndroid Build Coastguard Worker                #       Link program if needed.
104*6236dae4SAndroid Build Coastguard Worker
105*6236dae4SAndroid Build Coastguard Worker                if [ -n "${LINK}" ]
106*6236dae4SAndroid Build Coastguard Worker                then    PGMLDADD="$(eval echo "\${${PGM}_LDADD}")"
107*6236dae4SAndroid Build Coastguard Worker                        for M in ${PGMLDADD}
108*6236dae4SAndroid Build Coastguard Worker                        do      case "${M}" in
109*6236dae4SAndroid Build Coastguard Worker                                -*)     ;;              # Ignore non-module.
110*6236dae4SAndroid Build Coastguard Worker                                *)      MODULES="${MODULES} $(db2_name "${M}")"
111*6236dae4SAndroid Build Coastguard Worker                                        ;;
112*6236dae4SAndroid Build Coastguard Worker                                esac
113*6236dae4SAndroid Build Coastguard Worker                        done
114*6236dae4SAndroid Build Coastguard Worker                        MODULES="$(echo "${MODULES}" |
115*6236dae4SAndroid Build Coastguard Worker                            sed "s/[^ ][^ ]*/${TARGETLIB}\/&/g")"
116*6236dae4SAndroid Build Coastguard Worker                        CMD="CRTPGM PGM(${TARGETLIB}/${DB2PGM})"
117*6236dae4SAndroid Build Coastguard Worker                        CMD="${CMD} ENTMOD(${TARGETLIB}/CURLMAIN)"
118*6236dae4SAndroid Build Coastguard Worker                        CMD="${CMD} MODULE(${MODULES} ${MODS})"
119*6236dae4SAndroid Build Coastguard Worker                        CMD="${CMD} BNDSRVPGM(${SRVPGMS} QADRTTS)"
120*6236dae4SAndroid Build Coastguard Worker                        CMD="${CMD} TGTRLS(${TGTRLS})"
121*6236dae4SAndroid Build Coastguard Worker                        CLcommand "${CMD}"
122*6236dae4SAndroid Build Coastguard Worker                fi
123*6236dae4SAndroid Build Coastguard Worker        done
124*6236dae4SAndroid Build Coastguard Worker}
125*6236dae4SAndroid Build Coastguard Worker
126*6236dae4SAndroid Build Coastguard Worker
127*6236dae4SAndroid Build Coastguard Worker#       Build programs in the server directory.
128*6236dae4SAndroid Build Coastguard Worker
129*6236dae4SAndroid Build Coastguard Worker(
130*6236dae4SAndroid Build Coastguard Worker        cd server || exit 1
131*6236dae4SAndroid Build Coastguard Worker        get_make_vars Makefile.inc
132*6236dae4SAndroid Build Coastguard Worker        build_all_programs "${TARGETLIB}/OS400SYS"
133*6236dae4SAndroid Build Coastguard Worker)
134*6236dae4SAndroid Build Coastguard Worker
135*6236dae4SAndroid Build Coastguard Worker
136*6236dae4SAndroid Build Coastguard Worker#       Build all programs in the libtest subdirectory.
137*6236dae4SAndroid Build Coastguard Worker
138*6236dae4SAndroid Build Coastguard Worker(
139*6236dae4SAndroid Build Coastguard Worker        cd libtest || exit 1
140*6236dae4SAndroid Build Coastguard Worker        get_make_vars Makefile.inc
141*6236dae4SAndroid Build Coastguard Worker
142*6236dae4SAndroid Build Coastguard Worker        # shellcheck disable=SC2153
143*6236dae4SAndroid Build Coastguard Worker        build_all_programs "" "${TARGETLIB}/${SRVPGM}"
144*6236dae4SAndroid Build Coastguard Worker)
145