Blame os400/make.sh

Packit Service a31ea6
#!/bin/sh
Packit Service a31ea6
#
Packit Service a31ea6
#       libxml2 compilation script for the OS/400.
Packit Service a31ea6
#       This is a shell script since make is not a standard component of OS/400.
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}"
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
#       Create the OS/400 library if it does not exist.
Packit Service a31ea6
Packit Service a31ea6
if action_needed "${LIBIFSNAME}"
Packit Service a31ea6
then    CMD="CRTLIB LIB(${TARGETLIB})"
Packit Service a31ea6
        CMD="${CMD} TEXT('libxml2: XML parser and toolkit API')"
Packit Service a31ea6
        system "${CMD}"
Packit Service a31ea6
fi
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
#       Create the DOCS source file if it does not exist.
Packit Service a31ea6
Packit Service a31ea6
if action_needed "${LIBIFSNAME}/DOCS.FILE"
Packit Service a31ea6
then    CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
Packit Service a31ea6
        CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
Packit Service a31ea6
        system "${CMD}"
Packit Service a31ea6
fi
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
#       Copy some documentation files if needed.
Packit Service a31ea6
Packit Service a31ea6
for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog"                   \
Packit Service a31ea6
    "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README"        \
Packit Service a31ea6
    "${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO"           \
Packit Service a31ea6
    "${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400"
Packit Service a31ea6
do      if [ -f "${TEXT}" ]
Packit Service a31ea6
        then    MEMBER="`basename \"${TEXT}\" .OS400`"
Packit Service a31ea6
                MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
Packit Service a31ea6
Packit Service a31ea6
                if action_needed "${MEMBER}" "${TEXT}"
Packit Service a31ea6
                then    # Sources are in UTF-8.
Packit Service a31ea6
                        rm -f "${TOPDIR}/tmpfile"[12]
Packit Service a31ea6
                        CMD="CPY OBJ('${TEXT}') TOOBJ('${TOPDIR}/tmpfile1')"
Packit Service a31ea6
                        CMD="${CMD} FROMCCSID(1208) TOCCSID(${TGTCCSID})"
Packit Service a31ea6
                        CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
Packit Service a31ea6
                        system "${CMD}"
Packit Service a31ea6
                        # Make sure all lines are < 100 characters.
Packit Service a31ea6
                        sed -e 's/.\{99\}/&\
Packit Service a31ea6
/g' -e 's/\n$//' "${TOPDIR}/tmpfile1" > "${TOPDIR}/tmpfile2"
Packit Service a31ea6
                        CMD="CPY OBJ('${TOPDIR}/tmpfile2') TOOBJ('${MEMBER}')"
Packit Service a31ea6
                        CMD="${CMD} TOCCSID(${TGTCCSID})"
Packit Service a31ea6
                        CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
Packit Service a31ea6
                        system "${CMD}"
Packit Service a31ea6
                fi
Packit Service a31ea6
        fi
Packit Service a31ea6
done
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
#       Build files from template.
Packit Service a31ea6
Packit Service a31ea6
configFile()
Packit Service a31ea6
Packit Service a31ea6
{
Packit Service a31ea6
        args=`set | sed -e '/^[A-Za-z_][A-Za-z0-9_]*=/!d'               \
Packit Service a31ea6
                        -e 's/[\/\\\\&]/\\\\&/g'                        \
Packit Service a31ea6
                        -e "s/'/'\\\\\\''/g"                            \
Packit Service a31ea6
                        -e 's/^\([^=]*\)=\(.*\)$/-e '\''s\/@\1@\/\2\/g'\'/`
Packit Service a31ea6
        eval sed ${args} < "${1}".in > "${1}"
Packit Service a31ea6
}
Packit Service a31ea6
Packit Service a31ea6
configFile include/libxml/xmlversion.h
Packit Service a31ea6
configFile os400/os400config.h
Packit Service a31ea6
mv os400/os400config.h config.h
Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
#       Build in each directory.
Packit Service a31ea6
Packit Service a31ea6
for SUBDIR in include rpg src
Packit Service a31ea6
do      "${SCRIPTDIR}/make-${SUBDIR}.sh"
Packit Service a31ea6
done