Blame os400/make-include.sh

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