xref: /curl/packages/OS400/make-include.sh (revision 5e46c290)
1#!/bin/sh
2#***************************************************************************
3#                                  _   _ ____  _
4#  Project                     ___| | | |  _ \| |
5#                             / __| | | | |_) | |
6#                            | (__| |_| |  _ <| |___
7#                             \___|\___/|_| \_\_____|
8#
9# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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#       Installation of the header files in the OS/400 library.
27#
28
29SCRIPTDIR=$(dirname "${0}")
30. "${SCRIPTDIR}/initscript.sh"
31cd "${TOPDIR}/include" || exit 1
32
33
34#       Create the OS/400 source program file for the header files.
35
36SRCPF="${LIBIFSNAME}/H.FILE"
37
38if action_needed "${SRCPF}"
39then    CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
40        CMD="${CMD} CCSID(${TGTCCSID}) TEXT('curl: Header files')"
41        CLcommand "${CMD}"
42fi
43
44
45#       Create the IFS directory for the header files.
46
47IFSINCLUDE="${IFSDIR}/include/curl"
48
49if action_needed "${IFSINCLUDE}"
50then    mkdir -p "${IFSINCLUDE}"
51fi
52
53
54#       Enumeration values are used as va_arg tagfields, so they MUST be
55#               integers.
56
57copy_hfile()
58
59{
60        destfile="${1}"
61        srcfile="${2}"
62        shift
63        shift
64        sed -e '1i\
65#pragma enum(int)\
66' "${@}" -e '$a\
67#pragma enum(pop)\
68' < "${srcfile}" > "${destfile}"
69}
70
71#       Copy the header files.
72
73for HFILE in curl/*.h ${SCRIPTDIR}/ccsidcurl.h
74do      case "$(basename "${HFILE}" .h)" in
75        stdcheaders|typecheck-gcc)
76                continue;;
77        esac
78
79        DEST="${SRCPF}/$(db2_name "${HFILE}" nomangle).MBR"
80
81        if action_needed "${DEST}" "${HFILE}"
82        then    copy_hfile "${DEST}" "${HFILE}"
83                IFSDEST="${IFSINCLUDE}/$(basename "${HFILE}")"
84                rm -f "${IFSDEST}"
85                ln -s "${DEST}" "${IFSDEST}"
86        fi
87done
88
89
90#       Copy the ILE/RPG header file, setting-up version number.
91
92versioned_copy "${SCRIPTDIR}/curl.inc.in" "${SRCPF}/CURL.INC.MBR"
93rm -f "${IFSINCLUDE}/curl.inc.rpgle"
94ln -s "${SRCPF}/CURL.INC.MBR" "${IFSINCLUDE}/curl.inc.rpgle"
95
96
97#       Duplicate file H as CURL to support more include path forms.
98
99if action_needed "${LIBIFSNAME}/CURL.FILE"
100then    :
101else    CLcommand "DLTF FILE(${TARGETLIB}/CURL)"
102fi
103
104CMD="CRTDUPOBJ OBJ(H) FROMLIB(${TARGETLIB}) OBJTYPE(*FILE) TOLIB(*FROMLIB)"
105CMD="${CMD} NEWOBJ(CURL) DATA(*YES)"
106CLcommand "${CMD}"
107