| #!/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 |