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