xref: /freebsd/release/packages/generate-ucl.sh (revision 47cf7c780a3ebdd4b2daf2060fbd1598d384e798)
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