1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-12-25 23:21:26 +03:00
libxml2/os400/make-include.sh
2014-10-04 21:13:48 +08:00

82 lines
2.0 KiB
Bash

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