Patrick Monnerat | e72b4e7 | 2014-03-04 17:26:13 +0100 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Installation of the C header files in the OS/400 library. |
| 4 | # |
| 5 | # See Copyright for the status of this software. |
| 6 | # |
| 7 | # Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. |
| 8 | # |
| 9 | |
| 10 | SCRIPTDIR=`dirname "${0}"` |
| 11 | . "${SCRIPTDIR}/initscript.sh" |
| 12 | cd "${TOPDIR}/include" |
| 13 | |
| 14 | |
| 15 | # Create the OS/400 source program file for the C header files. |
| 16 | |
| 17 | SRCPF="${LIBIFSNAME}/LIBXML.FILE" |
| 18 | |
| 19 | if action_needed "${SRCPF}" |
| 20 | then CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXML) RCDLEN(112)" |
| 21 | CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: C/C++ header files')" |
| 22 | system "${CMD}" |
| 23 | fi |
| 24 | |
| 25 | |
| 26 | # Create the IFS directory for the C header files. |
| 27 | |
| 28 | if action_needed "${IFSDIR}/include/libxml" |
| 29 | then mkdir -p "${IFSDIR}/include/libxml" |
| 30 | fi |
| 31 | |
| 32 | |
| 33 | |
| 34 | # Enumeration values may be used as va_arg tagfields, so they MUST be |
| 35 | # integers. |
| 36 | |
| 37 | copy_hfile() |
| 38 | |
| 39 | { |
| 40 | sed -e '1i\ |
| 41 | #pragma enum(int)\ |
| 42 | ' "${@}" -e '$a\ |
| 43 | #pragma enum(pop)\ |
| 44 | ' |
| 45 | } |
| 46 | |
| 47 | # Copy the header files to DB2 library. Link from IFS include directory. |
| 48 | |
| 49 | for HFILE in "${TOPDIR}/os400/transcode.h" libxml/*.h libxml/*.h.in |
| 50 | do CMD="cat \"${HFILE}\"" |
| 51 | DEST="${SRCPF}/`db2_name \"${HFILE}\" nomangle`.MBR" |
| 52 | |
| 53 | case "`basename \"${HFILE}\"`" in |
| 54 | |
| 55 | xmlwin32version.h*) |
| 56 | continue;; # Not on M$W ! |
| 57 | |
| 58 | *.in) CMD="${CMD} | versioned_copy";; |
| 59 | |
| 60 | xmlschemastypes.h) # Special case: rename colliding file. |
| 61 | DEST="${SRCPF}/SCHMTYPES.MBR";; |
| 62 | |
| 63 | esac |
| 64 | |
| 65 | if action_needed "${DEST}" "${HFILE}" |
| 66 | then eval "${CMD}" | copy_hfile > tmphdrfile |
| 67 | |
| 68 | # Need to translate to target CCSID. |
| 69 | |
| 70 | CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')" |
| 71 | CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)" |
| 72 | system "${CMD}" |
| 73 | fi |
| 74 | |
| 75 | IFSFILE="${IFSDIR}/include/libxml/`basename \"${HFILE}\" .in`" |
| 76 | |
| 77 | if action_needed "${IFSFILE}" "${DEST}" |
| 78 | then rm -f "${IFSFILE}" |
| 79 | ln -s "${DEST}" "${IFSFILE}" |
| 80 | fi |
| 81 | done |