You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.0 KiB
81 lines
2.0 KiB
#!/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
|
|
|