Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/pkg
Path: blob/main/external/curl/packages/OS400/make-lib.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
# libcurl compilation script for the OS/400.
27
#
28
29
SCRIPTDIR=$(dirname "${0}")
30
. "${SCRIPTDIR}/initscript.sh"
31
cd "${TOPDIR}/lib" || exit 1
32
33
# Need to have IFS access to the mih/cipher header file.
34
35
if action_needed cipher.mih '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR'
36
then rm -f cipher.mih
37
ln -s '/QSYS.LIB/QSYSINC.LIB/MIH.FILE/CIPHER.MBR' cipher.mih
38
fi
39
40
41
# Create and compile the identification source file.
42
43
{
44
echo '#pragma comment(user, "libcurl version '"${LIBCURL_VERSION}"'")'
45
echo '#pragma comment(user, __DATE__)'
46
echo '#pragma comment(user, __TIME__)'
47
echo '#pragma comment(copyright, "Copyright (C) Daniel Stenberg et al. OS/400 version by P. Monnerat")'
48
} > os400.c
49
make_module OS400 os400.c BUILDING_LIBCURL
50
LINK= # No need to rebuild service program yet.
51
MODULES=
52
53
54
# Get source list (CSOURCES variable).
55
56
get_make_vars Makefile.inc
57
58
59
# Compile the sources into modules.
60
61
# shellcheck disable=SC2034
62
INCLUDES="'$(pwd)'"
63
64
make_module OS400SYS "${SCRIPTDIR}/os400sys.c" BUILDING_LIBCURL
65
make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c" BUILDING_LIBCURL
66
67
for SRC in ${CSOURCES}
68
do MODULE=$(db2_name "${SRC}")
69
make_module "${MODULE}" "${SRC}" BUILDING_LIBCURL
70
done
71
72
73
# If needed, (re)create the static binding directory.
74
75
if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
76
then LINK=YES
77
fi
78
79
if [ -n "${LINK}" ]
80
then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
81
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
82
CMD="${CMD} TEXT('LibCurl API static binding directory')"
83
CLcommand "${CMD}"
84
85
for MODULE in ${MODULES}
86
do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
87
CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
88
CLcommand "${CMD}"
89
done
90
fi
91
92
93
# The exportation file for service program creation must be in a DB2
94
# source file, so make sure it exists.
95
96
if action_needed "${LIBIFSNAME}/TOOLS.FILE"
97
then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
98
CMD="${CMD} TEXT('curl: build tools')"
99
CLcommand "${CMD}"
100
fi
101
102
103
# Gather the list of symbols to export.
104
# - Unfold lines from the header files so that they contain a semicolon.
105
# - Keep only CURL_EXTERN definitions.
106
# - Remove the CURL_DEPRECATED and CURL_TEMP_PRINTF macro calls.
107
# - Drop the parenthesized function arguments and what follows.
108
# - Keep the trailing function name only.
109
110
EXPORTS=$(cat "${TOPDIR}"/include/curl/*.h "${SCRIPTDIR}/ccsidcurl.h" |
111
sed -e 'H;s/.*//;x;s/\n//;s/.*/& /' \
112
-e '/^CURL_EXTERN[[:space:]]/!d' \
113
-e '/\;/!{x;d;}' \
114
-e 's/ CURL_DEPRECATED([^)]*)//g' \
115
-e 's/ CURL_TEMP_PRINTF([^)]*)//g' \
116
-e 's/[[:space:]]*(.*$//' \
117
-e 's/^.*[^A-Za-z0-9_]\([A-Za-z0-9_]*\)$/\1/')
118
119
120
# Create the service program exportation file in DB2 member if needed.
121
122
BSF="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
123
124
if action_needed "${BSF}" Makefile.am
125
then LINK=YES
126
fi
127
128
if [ -n "${LINK}" ]
129
then echo " STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('LIBCURL_${SONAME}')" \
130
> "${BSF}"
131
for EXPORT in ${EXPORTS}
132
do echo ' EXPORT SYMBOL("'"${EXPORT}"'")' >> "${BSF}"
133
done
134
135
echo ' ENDPGMEXP' >> "${BSF}"
136
fi
137
138
139
# Build the service program if needed.
140
141
if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
142
then LINK=YES
143
fi
144
145
if [ -n "${LINK}" ]
146
then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
147
CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
148
CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
149
CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR}"
150
if [ "${WITH_ZLIB}" != 0 ]
151
then CMD="${CMD} ${ZLIB_LIB}/${ZLIB_BNDDIR}"
152
liblist -a "${ZLIB_LIB}"
153
fi
154
if [ "${WITH_LIBSSH2}" != 0 ]
155
then CMD="${CMD} ${LIBSSH2_LIB}/${LIBSSH2_BNDDIR}"
156
liblist -a "${LIBSSH2_LIB}"
157
fi
158
CMD="${CMD})"
159
CMD="${CMD} BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)"
160
CMD="${CMD} TEXT('curl API library')"
161
CMD="${CMD} TGTRLS(${TGTRLS})"
162
CLcommand "${CMD}"
163
LINK=YES
164
fi
165
166
167
# If needed, (re)create the dynamic binding directory.
168
169
if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
170
then LINK=YES
171
fi
172
173
if [ -n "${LINK}" ]
174
then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
175
CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
176
CMD="${CMD} TEXT('LibCurl API dynamic binding directory')"
177
CLcommand "${CMD}"
178
CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
179
CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
180
CLcommand "${CMD}"
181
fi
182
183