Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/external/curl/packages/OS400/make-tests.sh
2066 views
1
#!/bin/sh
2
#***************************************************************************
3
# _ _ ____ _
4
# Project ___| | | | _ \| |
5
# / __| | | | |_) | |
6
# | (__| |_| | _ <| |___
7
# \___|\___/|_| \_\_____|
8
#
9
# Copyright (C) Daniel Stenberg, <[email protected]>, 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.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
# SPDX-License-Identifier: curl
23
#
24
###########################################################################
25
#
26
# tests compilation script for the OS/400.
27
#
28
29
30
SCRIPTDIR=$(dirname "${0}")
31
. "${SCRIPTDIR}/initscript.sh"
32
cd "${TOPDIR}/tests" || exit 1
33
34
35
# Build programs in a directory.
36
37
build_all_programs()
38
39
{
40
# Compile all programs.
41
# The list is found in variable "noinst_PROGRAMS"
42
43
# shellcheck disable=SC2034
44
INCLUDES="'$(pwd)' '${TOPDIR}/lib' '${TOPDIR}/src'"
45
MODS="${1}"
46
SRVPGMS="${2}"
47
48
# shellcheck disable=SC2154
49
for PGM in ${noinst_PROGRAMS}
50
do DB2PGM=$(db2_name "${PGM}")
51
PGMIFSNAME="${LIBIFSNAME}/${DB2PGM}.PGM"
52
53
# Extract preprocessor symbol definitions from
54
# compilation options for the program.
55
56
PGMCFLAGS="$(eval echo "\${${PGM}_CFLAGS}")"
57
PGMDFNS=
58
59
for FLAG in ${PGMCFLAGS}
60
do case "${FLAG}" in
61
-D?*) # shellcheck disable=SC2001
62
DEFINE="$(echo "${FLAG}" | sed 's/^..//')"
63
PGMDFNS="${PGMDFNS} '${DEFINE}'"
64
;;
65
esac
66
done
67
68
# Compile all C sources for the program into modules.
69
70
PGMSOURCES="$(eval echo "\${${PGM}_SOURCES}")"
71
LINK=
72
MODULES=
73
74
for SOURCE in ${PGMSOURCES}
75
do case "${SOURCE}" in
76
*.c) # Special processing for libxxx.c files:
77
# their module name is determined
78
# by the target PROGRAM name.
79
80
case "${SOURCE}" in
81
lib*.c) MODULE="${DB2PGM}"
82
;;
83
*) MODULE=$(db2_name "${SOURCE}")
84
;;
85
esac
86
87
# If source is in a sibling directory,
88
# prefix module name with 'X'.
89
90
case "${SOURCE}" in
91
../*) MODULE=$(db2_name "X${MODULE}")
92
;;
93
esac
94
95
make_module "${MODULE}" "${SOURCE}" "${PGMDFNS}"
96
if action_needed "${PGMIFSNAME}" "${MODIFSNAME}"
97
then LINK=yes
98
fi
99
;;
100
esac
101
done
102
103
# Link program if needed.
104
105
if [ -n "${LINK}" ]
106
then PGMLDADD="$(eval echo "\${${PGM}_LDADD}")"
107
for M in ${PGMLDADD}
108
do case "${M}" in
109
-*) ;; # Ignore non-module.
110
*) MODULES="${MODULES} $(db2_name "${M}")"
111
;;
112
esac
113
done
114
MODULES="$(echo "${MODULES}" |
115
sed "s/[^ ][^ ]*/${TARGETLIB}\/&/g")"
116
CMD="CRTPGM PGM(${TARGETLIB}/${DB2PGM})"
117
CMD="${CMD} ENTMOD(${TARGETLIB}/CURLMAIN)"
118
CMD="${CMD} MODULE(${MODULES} ${MODS})"
119
CMD="${CMD} BNDSRVPGM(${SRVPGMS} QADRTTS)"
120
CMD="${CMD} TGTRLS(${TGTRLS})"
121
CLcommand "${CMD}"
122
fi
123
done
124
}
125
126
127
# Build programs in the server directory.
128
129
(
130
cd server || exit 1
131
get_make_vars Makefile.inc
132
build_all_programs "${TARGETLIB}/OS400SYS"
133
)
134
135
136
# Build all programs in the libtest subdirectory.
137
138
(
139
cd libtest || exit 1
140
get_make_vars Makefile.inc
141
142
# shellcheck disable=SC2153
143
build_all_programs "" "${TARGETLIB}/${SRVPGM}"
144
)
145
146