1#!/bin/sh 2# 3# 4 5main() { 6 desc= 7 comment= 8 debug= 9 uclsource= 10 while getopts "do:s:u:" arg; do 11 case ${arg} in 12 d) 13 debug=1 14 ;; 15 o) 16 outname="${OPTARG}" 17 origname="${OPTARG}" 18 ;; 19 s) 20 srctree="${OPTARG}" 21 ;; 22 u) 23 uclfile="${OPTARG}" 24 ;; 25 *) 26 echo "Unknown argument" 27 ;; 28 esac 29 done 30 31 shift $(( ${OPTIND} - 1 )) 32 33 case "${outname}" in 34 bootloader) 35 pkgdeps="" 36 ;; 37 certctl) 38 pkgdeps="caroot openssl" 39 ;; 40 clang) 41 pkgdeps="lld libcompiler_rt-dev" 42 ;; 43 periodic) 44 pkgdeps="cron" 45 ;; 46 rcmds) 47 # the RPC daemons require rpcbind 48 pkgdeps="utilities" 49 ;; 50 51 # -dev packages that have no corresponding non-dev package 52 # as a dependency. 53 libcompat-dev|libcompiler_rt-dev|liby-dev) 54 outname=${outname%%-dev} 55 _descr="Development Files" 56 ;; 57 libcompat-lib32_dev|libcompiler_rt-lib32_dev|liby-lib32_dev) 58 outname=${outname%%-lib32_dev} 59 _descr="32-bit Libraries, Development Files" 60 ;; 61 libcompat-man|libelftc-man) 62 outname=${outname%%-man} 63 _descr="Manual Pages" 64 ;; 65 utilities) 66 uclfile="${uclfile}" 67 ;; 68 runtime) 69 outname="runtime" 70 _descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)" 71 ;; 72 *-lib32_dev) 73 outname="${outname%%-lib32_dev}" 74 _descr="32-bit Libraries, Development Files" 75 pkgdeps="${outname}" 76 ;; 77 *-lib32_dbg) 78 outname="${outname%%-lib32_dbg}" 79 _descr="32-bit Libraries, Debugging Symbols" 80 pkgdeps="${outname}" 81 ;; 82 *-lib32) 83 outname="${outname%%-lib32}" 84 _descr="32-bit Libraries" 85 pkgdeps="${outname}" 86 ;; 87 *-dev) 88 outname="${outname%%-dev}" 89 _descr="Development Files" 90 pkgdeps="${outname}" 91 ;; 92 *-dbg) 93 outname="${outname%%-dbg}" 94 _descr="Debugging Symbols" 95 pkgdeps="${outname}" 96 ;; 97 *-man) 98 outname="${outname%%-man}" 99 _descr="Manual Pages" 100 pkgdeps="${outname}" 101 ;; 102 ${origname}) 103 ;; 104 *) 105 uclfile="${outname##*}${origname}" 106 outname="${outname##*}${origname}" 107 ;; 108 esac 109 110 desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)" 111 comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)" 112 113 uclsource="${srctree}/release/packages/template.ucl" 114 115 if [ -n "${debug}" ]; then 116 echo "" 117 echo "===============================================================" 118 echo "DEBUG:" 119 echo "_descr=${_descr}" 120 echo "outname=${outname}" 121 echo "origname=${origname}" 122 echo "srctree=${srctree}" 123 echo "uclfile=${uclfile}" 124 echo "desc=${desc}" 125 echo "comment=${comment}" 126 echo "vital=${vital}" 127 echo "cp ${uclsource} -> ${uclfile}" 128 echo "===============================================================" 129 echo "" 130 echo "" 131 echo "" 132 fi 133 134 [ -z "${comment}" ] && comment="${outname} package" 135 [ -n "${_descr}" ] && comment="${comment} (${_descr})" 136 [ -z "${desc}" ] && desc="${outname} package" 137 138 cp "${uclsource}" "${uclfile}" 139 if [ -n "${pkgdeps}" ]; then 140 echo 'deps: {' >> ${uclfile} 141 for dep in ${pkgdeps}; do 142 cat <<EOF >> ${uclfile} 143 ${PKG_NAME_PREFIX}-${dep}: { 144 origin: "base", 145 version: "${PKG_VERSION}" 146 } 147EOF 148 done 149 echo '}' >> ${uclfile} 150 fi 151 cap_arg="$( make -f ${srctree}/share/mk/bsd.endian.mk -VCAP_MKDB_ENDIAN )" 152 ${srctree}/release/packages/generate-ucl.lua \ 153 VERSION "${PKG_VERSION}" \ 154 PKGNAME "${origname}" \ 155 PKGGENNAME "${outname}" \ 156 PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ 157 COMMENT "${comment}" \ 158 DESC "${desc}" \ 159 CAP_MKDB_ENDIAN "${cap_arg}" \ 160 PKG_WWW "${PKG_WWW}" \ 161 PKG_MAINTAINER "${PKG_MAINTAINER}" \ 162 UCLFILES "${srctree}/release/packages/" \ 163 ${uclfile} ${uclfile} 164 165 return 0 166} 167 168main "${@}" 169