1#!/bin/sh 2# 3# $FreeBSD$ 4# 5 6main() { 7 desc= 8 comment= 9 debug= 10 uclsource= 11 while getopts "do:s:u:" arg; do 12 case ${arg} in 13 d) 14 debug=1 15 ;; 16 o) 17 outname="${OPTARG}" 18 origname="${OPTARG}" 19 ;; 20 s) 21 srctree="${OPTARG}" 22 ;; 23 u) 24 uclfile="${OPTARG}" 25 ;; 26 *) 27 echo "Unknown argument" 28 ;; 29 esac 30 done 31 32 shift $(( ${OPTIND} - 1 )) 33 34 vital="false" 35 36 case "${outname}" in 37 clibs) 38 vital="true" 39 # clibs should not have any dependencies or anything 40 # else imposed on it. 41 ;; 42 caroot) 43 pkgdeps="openssl" 44 ;; 45 utilities) 46 uclfile="${uclfile}" 47 ;; 48 runtime) 49 outname="runtime" 50 _descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)" 51 vital="true" 52 ;; 53 *-lib32_dev) 54 outname="${outname%%-lib32_dev}" 55 _descr="32-bit Libraries, Development Files" 56 pkgdeps="${outname}" 57 ;; 58 *-lib32_dbg) 59 outname="${outname%%-lib32_dbg}" 60 _descr="32-bit Libraries, Debugging Symbols" 61 pkgdeps="${outname}" 62 ;; 63 *-lib32) 64 outname="${outname%%-lib32}" 65 _descr="32-bit Libraries" 66 pkgdeps="${outname}" 67 ;; 68 *-dev) 69 outname="${outname%%-dev}" 70 _descr="Development Files" 71 pkgdeps="${outname}" 72 ;; 73 *-dbg) 74 outname="${outname%%-dbg}" 75 _descr="Debugging Symbols" 76 pkgdeps="${outname}" 77 ;; 78 *-man) 79 outname="${outname%%-man}" 80 _descr="Manual Pages" 81 pkgdeps="${outname}" 82 ;; 83 ${origname}) 84 pkgdeps="runtime" 85 ;; 86 *) 87 uclfile="${outname##*}${origname}" 88 outname="${outname##*}${origname}" 89 ;; 90 esac 91 92 desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)" 93 comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)" 94 95 uclsource="${srctree}/release/packages/${outname}.ucl" 96 if [ ! -e "${uclsource}" ]; then 97 uclsource="${srctree}/release/packages/template.ucl" 98 fi 99 100 if [ ! -z "${debug}" ]; then 101 echo "" 102 echo "===============================================================" 103 echo "DEBUG:" 104 echo "_descr=${_descr}" 105 echo "outname=${outname}" 106 echo "origname=${origname}" 107 echo "srctree=${srctree}" 108 echo "uclfile=${uclfile}" 109 echo "desc=${desc}" 110 echo "comment=${comment}" 111 echo "vital=${vital}" 112 echo "cp ${uclsource} -> ${uclfile}" 113 echo "===============================================================" 114 echo "" 115 echo "" 116 echo "" 117 fi 118 119 [ -z "${comment}" ] && comment="${outname} package" 120 [ ! -z "${_descr}" ] && comment="${comment} (${_descr})" 121 [ -z "${desc}" ] && desc="${outname} package" 122 123 cp "${uclsource}" "${uclfile}" 124 if [ ! -z "${pkgdeps}" ]; then 125 cat <<EOF >> ${uclfile} 126deps: { 127 FreeBSD-${pkgdeps}: { 128 origin: "base", 129 version: "${PKG_VERSION}" 130 } 131} 132EOF 133 fi 134 cap_arg="$( make -f ${srctree}/share/mk/bsd.endian.mk -VCAP_MKDB_ENDIAN )" 135 sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \ 136 -e "s/%PKGNAME%/${origname}/" \ 137 -e "s/%COMMENT%/${comment}/" \ 138 -e "s/%DESC%/${desc}/" \ 139 -e "s/%VITAL%/${vital}/" \ 140 -e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \ 141 -e "s/%PKG_NAME_PREFIX%/${PKG_NAME_PREFIX}/" \ 142 -e "s|%PKG_WWW%|${PKG_WWW}|" \ 143 -e "s/%PKG_MAINTAINER%/${PKG_MAINTAINER}/" \ 144 ${uclfile} 145 return 0 146} 147 148main "${@}" 149