mirror of
https://github.com/curl/curl.git
synced 2025-04-24 16:40:32 +08:00
OS400: avoid using awk in the build scripts
Awk is a PASE program and its use may cause a failure depending on the CCSID of the calling script (IBM bug?). For this reason, revert to an sed-only solution to extract the exported symbols from the header files. Closes #12826
This commit is contained in:
parent
a911f4ffe6
commit
627c8c598f
@ -98,26 +98,21 @@ fi
|
||||
|
||||
|
||||
# Gather the list of symbols to export.
|
||||
# First use awk to pull all CURL_EXTERN function prototypes from
|
||||
# the header files, pass through to sed to strip CURL_DEPRECATED(..)
|
||||
# and CURL_TEMP_PRINTF(..) then back to awk to pull the string
|
||||
# immediately to the left of a bracket stripping any spaces or *'s.
|
||||
# - Unfold lines from the header files so that they contain a semicolon.
|
||||
# - Keep only CURL_EXTERN definitions.
|
||||
# - Remove the CURL_DEPRECATED and CURL_TEMP_PRINTF macro calls.
|
||||
# - Drop the parenthesized function arguments and what follows.
|
||||
# - Keep the trailing function name only.
|
||||
|
||||
EXPORTS=`cat "${TOPDIR}"/include/curl/*.h "${SCRIPTDIR}/ccsidcurl.h" |
|
||||
sed -e 'H;s/.*//;x;s/\n//;s/.*/& /' \
|
||||
-e '/^CURL_EXTERN[[:space:]]/!d' \
|
||||
-e '/\;/!{x;d;}' \
|
||||
-e 's/ CURL_DEPRECATED([^)]*)//g' \
|
||||
-e 's/ CURL_TEMP_PRINTF([^)]*)//g' \
|
||||
-e 's/[[:space:]]*(.*$//' \
|
||||
-e 's/^.*[^A-Za-z0-9_]\([A-Za-z0-9_]*\)$/\1/'`
|
||||
|
||||
EXPORTS=`awk '/^CURL_EXTERN/,/;/' \
|
||||
"${TOPDIR}"/include/curl/*.h \
|
||||
"${SCRIPTDIR}/ccsidcurl.h" |
|
||||
sed 's/ CURL_DEPRECATED(.*)//g;s/ CURL_TEMP_PRINTF(.*)//g' |
|
||||
awk '{br=index($0,"("); \
|
||||
if (br) { \
|
||||
for(c=br-1; ;c--) { \
|
||||
if (c==1) { \
|
||||
print substr($0,c,br-1); break \
|
||||
} else if (match(substr($0, c, br-c), "[ *]") != 0) { \
|
||||
print substr($0, c+1, br-c-1); break \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
}'`
|
||||
|
||||
# Create the service program exportation file in DB2 member if needed.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user