summaryrefslogtreecommitdiffhomepage
path: root/zlib/os400/make.sh
diff options
context:
space:
mode:
Diffstat (limited to 'zlib/os400/make.sh')
-rw-r--r--zlib/os400/make.sh366
1 files changed, 0 insertions, 366 deletions
diff --git a/zlib/os400/make.sh b/zlib/os400/make.sh
deleted file mode 100644
index 19eec11..0000000
--- a/zlib/os400/make.sh
+++ /dev/null
@@ -1,366 +0,0 @@
-#!/bin/sh
-#
-# ZLIB compilation script for the OS/400.
-#
-#
-# This is a shell script since make is not a standard component of OS/400.
-
-
-################################################################################
-#
-# Tunable configuration parameters.
-#
-################################################################################
-
-TARGETLIB='ZLIB' # Target OS/400 program library
-STATBNDDIR='ZLIB_A' # Static binding directory.
-DYNBNDDIR='ZLIB' # Dynamic binding directory.
-SRVPGM="ZLIB" # Service program.
-IFSDIR='/zlib' # IFS support base directory.
-TGTCCSID='500' # Target CCSID of objects
-DEBUG='*NONE' # Debug level
-OPTIMIZE='40' # Optimisation level
-OUTPUT='*NONE' # Compilation output option.
-TGTRLS='V6R1M0' # Target OS release
-
-export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM IFSDIR
-export TGTCCSID DEBUG OPTIMIZE OUTPUT TGTRLS
-
-
-################################################################################
-#
-# OS/400 specific definitions.
-#
-################################################################################
-
-LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
-
-
-################################################################################
-#
-# Procedures.
-#
-################################################################################
-
-# action_needed dest [src]
-#
-# dest is an object to build
-# if specified, src is an object on which dest depends.
-#
-# exit 0 (succeeds) if some action has to be taken, else 1.
-
-action_needed()
-
-{
- [ ! -e "${1}" ] && return 0
- [ "${2}" ] || return 1
- [ "${1}" -ot "${2}" ] && return 0
- return 1
-}
-
-
-# make_module module_name source_name [additional_definitions]
-#
-# Compile source name into module if needed.
-# As side effect, append the module name to variable MODULES.
-# Set LINK to "YES" if the module has been compiled.
-
-make_module()
-
-{
- MODULES="${MODULES} ${1}"
- MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
- CSRC="`basename \"${2}\"`"
-
- if action_needed "${MODIFSNAME}" "${2}"
- then :
- elif [ ! "`sed -e \"/<source name=\\\"${CSRC}\\\">/,/<\\\\/source>/!d\" \
- -e '/<depend /!d' \
- -e 's/.* name=\"\\([^\"]*\\)\".*/\\1/' < \"${TOPDIR}/treebuild.xml\" |
- while read HDR
- do if action_needed \"${MODIFSNAME}\" \"${IFSDIR}/include/${HDR}\"
- then echo recompile
- break
- fi
- done`" ]
- then return 0
- fi
-
- CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('${2}')"
- CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)"
- CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)"
- CMD="${CMD} INCDIR('${IFSDIR}/include' ${INCLUDES})"
- CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
- CMD="${CMD} OUTPUT(${OUTPUT})"
- CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
- CMD="${CMD} DBGVIEW(${DEBUG})"
- system "${CMD}"
- LINK=YES
-}
-
-
-# Determine DB2 object name from IFS name.
-
-db2_name()
-
-{
- basename "${1}" |
- tr 'a-z-' 'A-Z_' |
- sed -e 's/\..*//' \
- -e 's/^\(.\).*\(.........\)$/\1\2/'
-}
-
-
-# Force enumeration types to be the same size as integers.
-
-copy_hfile()
-
-{
- sed -e '1i\
-#pragma enum(int)\
-' "${@}" -e '$a\
-#pragma enum(pop)\
-'
-}
-
-
-################################################################################
-#
-# Script initialization.
-#
-################################################################################
-
-SCRIPTDIR=`dirname "${0}"`
-
-case "${SCRIPTDIR}" in
-/*) ;;
-*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
-esac
-
-while true
-do case "${SCRIPTDIR}" in
- */.) SCRIPTDIR="${SCRIPTDIR%/.}";;
- *) break;;
- esac
-done
-
-# The script directory is supposed to be in ${TOPDIR}/os400.
-
-TOPDIR=`dirname "${SCRIPTDIR}"`
-export SCRIPTDIR TOPDIR
-cd "${TOPDIR}"
-
-
-# Extract the version from the master compilation XML file.
-
-VERSION=`sed -e '/^<package /!d' \
- -e 's/^.* version="\([0-9.]*\)".*$/\1/' -e 'q' \
- < treebuild.xml`
-export VERSION
-
-################################################################################
-
-
-# Create the OS/400 library if it does not exist.
-
-if action_needed "${LIBIFSNAME}"
-then CMD="CRTLIB LIB(${TARGETLIB}) TEXT('ZLIB: Data compression API')"
- system "${CMD}"
-fi
-
-
-# Create the DOCS source file if it does not exist.
-
-if action_needed "${LIBIFSNAME}/DOCS.FILE"
-then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
- CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
- system "${CMD}"
-fi
-
-# Copy some documentation files if needed.
-
-for TEXT in "${TOPDIR}/ChangeLog" "${TOPDIR}/FAQ" \
- "${TOPDIR}/README" "${SCRIPTDIR}/README400"
-do MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${TEXT}\"`.MBR"
-
- if action_needed "${MEMBER}" "${TEXT}"
- then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}') TOCCSID(${TGTCCSID})"
- CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
- system "${CMD}"
- fi
-done
-
-
-# Create the OS/400 source program file for the C header files.
-
-SRCPF="${LIBIFSNAME}/H.FILE"
-
-if action_needed "${SRCPF}"
-then CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
- CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: C/C++ header files')"
- system "${CMD}"
-fi
-
-
-# Create the IFS directory for the C header files.
-
-if action_needed "${IFSDIR}/include"
-then mkdir -p "${IFSDIR}/include"
-fi
-
-# Copy the header files to DB2 library. Link from IFS include directory.
-
-for HFILE in "${TOPDIR}/"*.h
-do DEST="${SRCPF}/`db2_name \"${HFILE}\"`.MBR"
-
- if action_needed "${DEST}" "${HFILE}"
- then copy_hfile < "${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}"
- # touch -r "${HFILE}" "${DEST}"
- rm -f tmphdrfile
- fi
-
- IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
-
- if action_needed "${IFSFILE}" "${DEST}"
- then rm -f "${IFSFILE}"
- ln -s "${DEST}" "${IFSFILE}"
- fi
-done
-
-
-# Install the ILE/RPG header file.
-
-
-HFILE="${SCRIPTDIR}/zlib.inc"
-DEST="${SRCPF}/ZLIB.INC.MBR"
-
-if action_needed "${DEST}" "${HFILE}"
-then CMD="CPY OBJ('${HFILE}') TOOBJ('${DEST}')"
- CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
- system "${CMD}"
- # touch -r "${HFILE}" "${DEST}"
-fi
-
-IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
-
-if action_needed "${IFSFILE}" "${DEST}"
-then rm -f "${IFSFILE}"
- ln -s "${DEST}" "${IFSFILE}"
-fi
-
-
-# Create and compile the identification source file.
-
-echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c
-echo '#pragma comment(user, __DATE__)' >> os400.c
-echo '#pragma comment(user, __TIME__)' >> os400.c
-echo '#pragma comment(copyright, "Copyright (C) 1995-2017 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c
-make_module OS400 os400.c
-LINK= # No need to rebuild service program yet.
-MODULES=
-
-
-# Get source list.
-
-CSOURCES=`sed -e '/<source name="/!d' \
- -e 's/.* name="\([^"]*\)".*/\1/' < treebuild.xml`
-
-# Compile the sources into modules.
-
-for SRC in ${CSOURCES}
-do MODULE=`db2_name "${SRC}"`
- make_module "${MODULE}" "${SRC}"
-done
-
-
-# If needed, (re)create the static binding directory.
-
-if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
-then LINK=YES
-fi
-
-if [ "${LINK}" ]
-then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
- CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
- CMD="${CMD} TEXT('ZLIB static binding directory')"
- system "${CMD}"
-
- for MODULE in ${MODULES}
- do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
- CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
- system "${CMD}"
- done
-fi
-
-
-# The exportation file for service program creation must be in a DB2
-# source file, so make sure it exists.
-
-if action_needed "${LIBIFSNAME}/TOOLS.FILE"
-then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
- CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: build tools')"
- system "${CMD}"
-fi
-
-
-DEST="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
-
-if action_needed "${SCRIPTDIR}/bndsrc" "${DEST}"
-then CMD="CPY OBJ('${SCRIPTDIR}/bndsrc') TOOBJ('${DEST}')"
- CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
- system "${CMD}"
- # touch -r "${SCRIPTDIR}/bndsrc" "${DEST}"
- LINK=YES
-fi
-
-
-# Build the service program if needed.
-
-if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
-then LINK=YES
-fi
-
-if [ "${LINK}" ]
-then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
- CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
- CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
- CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR})"
- CMD="${CMD} TEXT('ZLIB ${VERSION} dynamic library')"
- CMD="${CMD} TGTRLS(${TGTRLS})"
- system "${CMD}"
- LINK=YES
-
- # Duplicate the service program for a versioned backup.
-
- BACKUP=`echo "${SRVPGM}${VERSION}" |
- sed -e 's/.*\(..........\)$/\1/' -e 's/\./_/g'`
- BACKUP="`db2_name \"${BACKUP}\"`"
- BKUPIFSNAME="${LIBIFSNAME}/${BACKUP}.SRVPGM"
- rm -f "${BKUPIFSNAME}"
- CMD="CRTDUPOBJ OBJ(${SRVPGM}) FROMLIB(${TARGETLIB})"
- CMD="${CMD} OBJTYPE(*SRVPGM) NEWOBJ(${BACKUP})"
- system "${CMD}"
-fi
-
-
-# If needed, (re)create the dynamic binding directory.
-
-if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
-then LINK=YES
-fi
-
-if [ "${LINK}" ]
-then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
- CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
- CMD="${CMD} TEXT('ZLIB dynamic binding directory')"
- system "${CMD}"
- CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
- CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
- system "${CMD}"
-fi