xref: /aosp_15_r20/external/libxml2/os400/make-rpg.sh (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker#!/bin/sh
2*7c568831SAndroid Build Coastguard Worker#
3*7c568831SAndroid Build Coastguard Worker#       Installation of the ILE/RPG header files in the OS/400 library.
4*7c568831SAndroid Build Coastguard Worker#
5*7c568831SAndroid Build Coastguard Worker#       See Copyright for the status of this software.
6*7c568831SAndroid Build Coastguard Worker#
7*7c568831SAndroid Build Coastguard Worker#       Author: Patrick Monnerat <[email protected]>, DATASPHERE S.A.
8*7c568831SAndroid Build Coastguard Worker#
9*7c568831SAndroid Build Coastguard Worker
10*7c568831SAndroid Build Coastguard WorkerSCRIPTDIR=`dirname "${0}"`
11*7c568831SAndroid Build Coastguard Worker. "${SCRIPTDIR}/initscript.sh"
12*7c568831SAndroid Build Coastguard Workercd "${TOPDIR}/os400/libxmlrpg"
13*7c568831SAndroid Build Coastguard Worker
14*7c568831SAndroid Build Coastguard Worker
15*7c568831SAndroid Build Coastguard Worker#       Create the OS/400 source program file for the ILE/RPG header files.
16*7c568831SAndroid Build Coastguard Worker
17*7c568831SAndroid Build Coastguard WorkerSRCPF="${LIBIFSNAME}/LIBXMLRPG.FILE"
18*7c568831SAndroid Build Coastguard Worker
19*7c568831SAndroid Build Coastguard Workerif action_needed "${SRCPF}"
20*7c568831SAndroid Build Coastguard Workerthen    CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXMLRPG) RCDLEN(112)"
21*7c568831SAndroid Build Coastguard Worker        CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: ILE/RPG header files')"
22*7c568831SAndroid Build Coastguard Worker        system "${CMD}"
23*7c568831SAndroid Build Coastguard Workerfi
24*7c568831SAndroid Build Coastguard Worker
25*7c568831SAndroid Build Coastguard Worker
26*7c568831SAndroid Build Coastguard Worker#       Map file names to DB2 name syntax.
27*7c568831SAndroid Build Coastguard Worker
28*7c568831SAndroid Build Coastguard Workerfor HFILE in *.rpgle *.rpgle.in
29*7c568831SAndroid Build Coastguard Workerdo      NAME="`basename \"${HFILE}\" .in`"
30*7c568831SAndroid Build Coastguard Worker        VAR="`basename \"${NAME}\" .rpgle`"
31*7c568831SAndroid Build Coastguard Worker        VAL="`db2_name \"${NAME}\" nomangle`"
32*7c568831SAndroid Build Coastguard Worker
33*7c568831SAndroid Build Coastguard Worker        if [ "${VAR}" = 'xmlschemastypes' ]
34*7c568831SAndroid Build Coastguard Worker        then    VAL=SCHMTYPES
35*7c568831SAndroid Build Coastguard Worker        fi
36*7c568831SAndroid Build Coastguard Worker
37*7c568831SAndroid Build Coastguard Worker        eval "VAR_${VAR}=\"${VAL}\""
38*7c568831SAndroid Build Coastguard Worker        echo "${VAR} s/${VAR}/${VAL}/g"
39*7c568831SAndroid Build Coastguard Workerdone > tmpsubstfile1
40*7c568831SAndroid Build Coastguard Worker
41*7c568831SAndroid Build Coastguard Worker#       Order substitution commands so that a prefix appears after all
42*7c568831SAndroid Build Coastguard Worker#               file names beginning with the prefix.
43*7c568831SAndroid Build Coastguard Worker
44*7c568831SAndroid Build Coastguard Workersort -r tmpsubstfile1 | sed 's/^[^ ]*[ ]*//' > tmpsubstfile2
45*7c568831SAndroid Build Coastguard Worker
46*7c568831SAndroid Build Coastguard Worker
47*7c568831SAndroid Build Coastguard Workerchange_include()
48*7c568831SAndroid Build Coastguard Worker
49*7c568831SAndroid Build Coastguard Worker{
50*7c568831SAndroid Build Coastguard Worker        sed -e '\#^....../include  *"libxmlrpg/#{'                      \
51*7c568831SAndroid Build Coastguard Worker            -e 's///'                                                   \
52*7c568831SAndroid Build Coastguard Worker            -e 's/".*//'                                                \
53*7c568831SAndroid Build Coastguard Worker            -f tmpsubstfile2                                            \
54*7c568831SAndroid Build Coastguard Worker            -e 's#.*#      /include libxmlrpg,&#'                       \
55*7c568831SAndroid Build Coastguard Worker            -e '}'
56*7c568831SAndroid Build Coastguard Worker}
57*7c568831SAndroid Build Coastguard Worker
58*7c568831SAndroid Build Coastguard Worker
59*7c568831SAndroid Build Coastguard Worker#       Create the IFS directory for the ILE/RPG header files.
60*7c568831SAndroid Build Coastguard Worker
61*7c568831SAndroid Build Coastguard WorkerRPGIFSDIR="${IFSDIR}/include/libxmlrpg"
62*7c568831SAndroid Build Coastguard Worker
63*7c568831SAndroid Build Coastguard Workerif action_needed "${RPGIFSDIR}"
64*7c568831SAndroid Build Coastguard Workerthen    mkdir -p "${RPGIFSDIR}"
65*7c568831SAndroid Build Coastguard Workerfi
66*7c568831SAndroid Build Coastguard Worker
67*7c568831SAndroid Build Coastguard Worker#       Copy the header files to IFS ILE/RPG include directory.
68*7c568831SAndroid Build Coastguard Worker#       Copy them with include path editing to the DB2 library.
69*7c568831SAndroid Build Coastguard Worker
70*7c568831SAndroid Build Coastguard Workerfor HFILE in *.rpgle *.rpgle.in
71*7c568831SAndroid Build Coastguard Workerdo      IFSCMD="cat \"${HFILE}\""
72*7c568831SAndroid Build Coastguard Worker        DB2CMD="change_include < \"${HFILE}\""
73*7c568831SAndroid Build Coastguard Worker        IFSFILE="`basename \"${HFILE}\" .in`"
74*7c568831SAndroid Build Coastguard Worker
75*7c568831SAndroid Build Coastguard Worker        case "${HFILE}" in
76*7c568831SAndroid Build Coastguard Worker
77*7c568831SAndroid Build Coastguard Worker        *.in)   IFSCMD="${IFSCMD} | versioned_copy"
78*7c568831SAndroid Build Coastguard Worker                DB2CMD="${DB2CMD} | versioned_copy"
79*7c568831SAndroid Build Coastguard Worker                ;;
80*7c568831SAndroid Build Coastguard Worker        esac
81*7c568831SAndroid Build Coastguard Worker
82*7c568831SAndroid Build Coastguard Worker        IFSDEST="${RPGIFSDIR}/${IFSFILE}"
83*7c568831SAndroid Build Coastguard Worker
84*7c568831SAndroid Build Coastguard Worker        if action_needed "${IFSDEST}" "${HFILE}"
85*7c568831SAndroid Build Coastguard Worker        then    eval "${IFSCMD}" > "${IFSDEST}"
86*7c568831SAndroid Build Coastguard Worker        fi
87*7c568831SAndroid Build Coastguard Worker
88*7c568831SAndroid Build Coastguard Worker        eval DB2MBR="\"\${VAR_`basename \"${IFSDEST}\" .rpgle`}\""
89*7c568831SAndroid Build Coastguard Worker        DB2DEST="${SRCPF}/${DB2MBR}.MBR"
90*7c568831SAndroid Build Coastguard Worker
91*7c568831SAndroid Build Coastguard Worker        if action_needed "${DB2DEST}" "${HFILE}"
92*7c568831SAndroid Build Coastguard Worker        then    eval "${DB2CMD}" | change_include > tmphdrfile
93*7c568831SAndroid Build Coastguard Worker
94*7c568831SAndroid Build Coastguard Worker                #       Need to translate to target CCSID.
95*7c568831SAndroid Build Coastguard Worker
96*7c568831SAndroid Build Coastguard Worker                CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DB2DEST}')"
97*7c568831SAndroid Build Coastguard Worker                CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
98*7c568831SAndroid Build Coastguard Worker                system "${CMD}"
99*7c568831SAndroid Build Coastguard Worker        fi
100*7c568831SAndroid Build Coastguard Workerdone
101