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 <[email protected]>, 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}/CONTRIBUTING" "${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
|
---|