Home | History | Annotate | Download | only in os400
      1 #!/bin/sh
      2 #
      3 #       libxml2 compilation script for the OS/400.
      4 #       This is a shell script since make is not a standard component of OS/400.
      5 #
      6 #       See Copyright for the status of this software.
      7 #
      8 #       Author: Patrick Monnerat <pm (at] datasphere.ch>, DATASPHERE S.A.
      9 #
     10 
     11 SCRIPTDIR=`dirname "${0}"`
     12 . "${SCRIPTDIR}/initscript.sh"
     13 cd "${TOPDIR}"
     14 
     15 
     16 #       Create the OS/400 library if it does not exist.
     17 
     18 if action_needed "${LIBIFSNAME}"
     19 then    CMD="CRTLIB LIB(${TARGETLIB})"
     20         CMD="${CMD} TEXT('libxml2: XML parser and toolkit API')"
     21         system "${CMD}"
     22 fi
     23 
     24 
     25 #       Create the DOCS source file if it does not exist.
     26 
     27 if action_needed "${LIBIFSNAME}/DOCS.FILE"
     28 then    CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
     29         CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
     30         system "${CMD}"
     31 fi
     32 
     33 
     34 #       Copy some documentation files if needed.
     35 
     36 for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog"                   \
     37     "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README"        \
     38     "${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO"           \
     39     "${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400"
     40 do      if [ -f "${TEXT}" ]
     41         then    MEMBER="`basename \"${TEXT}\" .OS400`"
     42                 MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
     43 
     44                 if action_needed "${MEMBER}" "${TEXT}"
     45                 then    # Sources are in UTF-8.
     46                         rm -f "${TOPDIR}/tmpfile"[12]
     47                         CMD="CPY OBJ('${TEXT}') TOOBJ('${TOPDIR}/tmpfile1')"
     48                         CMD="${CMD} FROMCCSID(1208) TOCCSID(${TGTCCSID})"
     49                         CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
     50                         system "${CMD}"
     51                         # Make sure all lines are < 100 characters.
     52                         sed -e 's/.\{99\}/&\
     53 /g' -e 's/\n$//' "${TOPDIR}/tmpfile1" > "${TOPDIR}/tmpfile2"
     54                         CMD="CPY OBJ('${TOPDIR}/tmpfile2') TOOBJ('${MEMBER}')"
     55                         CMD="${CMD} TOCCSID(${TGTCCSID})"
     56                         CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
     57                         system "${CMD}"
     58                 fi
     59         fi
     60 done
     61 
     62 
     63 #       Build files from template.
     64 
     65 configFile()
     66 
     67 {
     68         args=`set | sed -e '/^[A-Za-z_][A-Za-z0-9_]*=/!d'               \
     69                         -e 's/[\/\\\\&]/\\\\&/g'                        \
     70                         -e "s/'/'\\\\\\''/g"                            \
     71                         -e 's/^\([^=]*\)=\(.*\)$/-e '\''s\/@\1@\/\2\/g'\'/`
     72         eval sed ${args} < "${1}".in > "${1}"
     73 }
     74 
     75 configFile include/libxml/xmlversion.h
     76 configFile os400/os400config.h
     77 mv os400/os400config.h config.h
     78 
     79 
     80 #       Build in each directory.
     81 
     82 for SUBDIR in include rpg src
     83 do      "${SCRIPTDIR}/make-${SUBDIR}.sh"
     84 done
     85