1*7c568831SAndroid Build Coastguard Worker#!/bin/sh 2*7c568831SAndroid Build Coastguard Worker# 3*7c568831SAndroid Build Coastguard Worker# Installation of the C 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}/include" 13*7c568831SAndroid Build Coastguard Worker 14*7c568831SAndroid Build Coastguard Worker 15*7c568831SAndroid Build Coastguard Worker# Create the OS/400 source program file for the C header files. 16*7c568831SAndroid Build Coastguard Worker 17*7c568831SAndroid Build Coastguard WorkerSRCPF="${LIBIFSNAME}/LIBXML.FILE" 18*7c568831SAndroid Build Coastguard Worker 19*7c568831SAndroid Build Coastguard Workerif action_needed "${SRCPF}" 20*7c568831SAndroid Build Coastguard Workerthen CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXML) RCDLEN(112)" 21*7c568831SAndroid Build Coastguard Worker CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: C/C++ 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# Create the IFS directory for the C header files. 27*7c568831SAndroid Build Coastguard Worker 28*7c568831SAndroid Build Coastguard Workerif action_needed "${IFSDIR}/include/libxml" 29*7c568831SAndroid Build Coastguard Workerthen mkdir -p "${IFSDIR}/include/libxml" 30*7c568831SAndroid Build Coastguard Workerfi 31*7c568831SAndroid Build Coastguard Worker 32*7c568831SAndroid Build Coastguard Worker 33*7c568831SAndroid Build Coastguard Worker 34*7c568831SAndroid Build Coastguard Worker# Enumeration values may be used as va_arg tagfields, so they MUST be 35*7c568831SAndroid Build Coastguard Worker# integers. 36*7c568831SAndroid Build Coastguard Worker 37*7c568831SAndroid Build Coastguard Workercopy_hfile() 38*7c568831SAndroid Build Coastguard Worker 39*7c568831SAndroid Build Coastguard Worker{ 40*7c568831SAndroid Build Coastguard Worker sed -e '1i\ 41*7c568831SAndroid Build Coastguard Worker#pragma enum(int)\ 42*7c568831SAndroid Build Coastguard Worker' "${@}" -e '$a\ 43*7c568831SAndroid Build Coastguard Worker#pragma enum(pop)\ 44*7c568831SAndroid Build Coastguard Worker' 45*7c568831SAndroid Build Coastguard Worker} 46*7c568831SAndroid Build Coastguard Worker 47*7c568831SAndroid Build Coastguard Worker# Copy the header files to DB2 library. Link from IFS include directory. 48*7c568831SAndroid Build Coastguard Worker 49*7c568831SAndroid Build Coastguard Workerfor HFILE in "${TOPDIR}/os400/transcode.h" libxml/*.h libxml/*.h.in 50*7c568831SAndroid Build Coastguard Workerdo CMD="cat \"${HFILE}\"" 51*7c568831SAndroid Build Coastguard Worker DEST="${SRCPF}/`db2_name \"${HFILE}\" nomangle`.MBR" 52*7c568831SAndroid Build Coastguard Worker 53*7c568831SAndroid Build Coastguard Worker case "`basename \"${HFILE}\"`" in 54*7c568831SAndroid Build Coastguard Worker 55*7c568831SAndroid Build Coastguard Worker *.in) CMD="${CMD} | versioned_copy";; 56*7c568831SAndroid Build Coastguard Worker 57*7c568831SAndroid Build Coastguard Worker xmlschemastypes.h) # Special case: rename colliding file. 58*7c568831SAndroid Build Coastguard Worker DEST="${SRCPF}/SCHMTYPES.MBR";; 59*7c568831SAndroid Build Coastguard Worker 60*7c568831SAndroid Build Coastguard Worker esac 61*7c568831SAndroid Build Coastguard Worker 62*7c568831SAndroid Build Coastguard Worker if action_needed "${DEST}" "${HFILE}" 63*7c568831SAndroid Build Coastguard Worker then eval "${CMD}" | copy_hfile > tmphdrfile 64*7c568831SAndroid Build Coastguard Worker 65*7c568831SAndroid Build Coastguard Worker # Need to translate to target CCSID. 66*7c568831SAndroid Build Coastguard Worker 67*7c568831SAndroid Build Coastguard Worker CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')" 68*7c568831SAndroid Build Coastguard Worker CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)" 69*7c568831SAndroid Build Coastguard Worker system "${CMD}" 70*7c568831SAndroid Build Coastguard Worker fi 71*7c568831SAndroid Build Coastguard Worker 72*7c568831SAndroid Build Coastguard Worker IFSFILE="${IFSDIR}/include/libxml/`basename \"${HFILE}\" .in`" 73*7c568831SAndroid Build Coastguard Worker 74*7c568831SAndroid Build Coastguard Worker if action_needed "${IFSFILE}" "${DEST}" 75*7c568831SAndroid Build Coastguard Worker then rm -f "${IFSFILE}" 76*7c568831SAndroid Build Coastguard Worker ln -s "${DEST}" "${IFSFILE}" 77*7c568831SAndroid Build Coastguard Worker fi 78*7c568831SAndroid Build Coastguard Workerdone 79