#!/bin/sh # # Installation of the C header files in the OS/400 library. # # See Copyright for the status of this software. # # Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. # SCRIPTDIR=`dirname "${0}"` . "${SCRIPTDIR}/initscript.sh" cd "${TOPDIR}/include" # Create the OS/400 source program file for the C header files. SRCPF="${LIBIFSNAME}/LIBXML.FILE" if action_needed "${SRCPF}" then CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXML) RCDLEN(112)" CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: C/C++ header files')" system "${CMD}" fi # Create the IFS directory for the C header files. if action_needed "${IFSDIR}/include/libxml" then mkdir -p "${IFSDIR}/include/libxml" fi # Enumeration values may be used as va_arg tagfields, so they MUST be # integers. copy_hfile() { sed -e '1i\ #pragma enum(int)\ ' "${@}" -e '$a\ #pragma enum(pop)\ ' } # Copy the header files to DB2 library. Link from IFS include directory. for HFILE in "${TOPDIR}/os400/transcode.h" libxml/*.h libxml/*.h.in do CMD="cat \"${HFILE}\"" DEST="${SRCPF}/`db2_name \"${HFILE}\" nomangle`.MBR" case "`basename \"${HFILE}\"`" in xmlwin32version.h*) continue;; # Not on M$W ! *.in) CMD="${CMD} | versioned_copy";; xmlschemastypes.h) # Special case: rename colliding file. DEST="${SRCPF}/SCHMTYPES.MBR";; esac if action_needed "${DEST}" "${HFILE}" then eval "${CMD}" | copy_hfile > tmphdrfile # Need to translate to target CCSID. CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')" CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)" system "${CMD}" fi IFSFILE="${IFSDIR}/include/libxml/`basename \"${HFILE}\" .in`" if action_needed "${IFSFILE}" "${DEST}" then rm -f "${IFSFILE}" ln -s "${DEST}" "${IFSFILE}" fi done