summaryrefslogtreecommitdiff
path: root/sofort/tools/pkgconf.sh
blob: a69c25b5ae0e85db58a9a5406c14b4ab3646c308 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/sh

# pkgconf.sh: generate a pkgconf manifest file.
# this file is covered by COPYING.SOFORT.

set -eu

# prefix, exec_prefix
if [ "$PKGCONF_PREFIX" = "$PKGCONF_EXEC_PREFIX" ]; then
	pkgconf_prefix="${PKGCONF_PREFIX}"
	pkgconf_exec_prefix='${prefix}'
else
	pkgconf_prefix="${PKGCONF_PREFIX}"
	pkgconf_exec_prefix="${PKGCONF_EXEC_PREFIX}"
fi


# (relative) includedir
if [ -z "$PKGCONF_INCLUDEDIR" ]; then
	pkgconf_includedir=
	pkgconf_cflags=
else
	prefix=$(dirname "$PKGCONF_INCLUDEDIR")
	base=$(basename "$PKGCONF_INCLUDEDIR")

	if [ "$prefix" = '/' ]; then
		prefix=
	fi

	if [ "$prefix/$base" = "$PKGCONF_PREFIX/$base" ]; then
		pkgconf_includedir='${prefix}/'"${base}"
		pkgconf_cflags='-I${includedir}'
	else
		pkgconf_includedir="${PKGCONF_INCLUDEDIR}"
		pkgconf_cflags='-I${includedir}'
	fi
fi


# (relative) libdir (blank unless needed)
if [ -z "$PKGCONF_LIBDIR" ]; then
	pkgconf_libdir=
else
	prefix=$(dirname "$PKGCONF_LIBDIR")
	base=$(basename "$PKGCONF_LIBDIR")

	if [ "$prefix" = '/' ]; then
		prefix=
	fi

	if [ "$prefix/$base" = "$PKGCONF_EXEC_PREFIX/$base" ]; then
		pkgconf_libdir='${exec_prefix}/'"${base}"
	else
		pkgconf_libdir='${prefix}/'"${PKGCONF_LIBDIR}"
	fi
fi


# ldflags (--libs)
if [ -n "$pkgconf_libdir" ] &&  [ -n "${PKGCONF_NAME}" ]; then
	pkgconf_ldflags='-L${libdir}'" -l${PKGCONF_NAME}"
elif [ -n "${PKGCONF_NAME}" ]; then
	pkgconf_ldflags="-l${PKGCONF_NAME}"
else
	pkgconf_ldflags='-L${libdir}'
fi


# cflags
if [ -n "$pkgconf_cflags" ] || [ -n "${PKGCONF_DEFS}" ]; then
	pkgconf_cflags="$pkgconf_cflags ${PKGCONF_DEFS}"
	pkgconf_cflags=$(printf '%s' "$pkgconf_cflags" | sed -e 's/^[ \t]*//g')
fi


# repo (optional)
if [ -z "${PKGCONF_REPO}" ]; then
	pkgconf_repo='#'
else
	pkgconf_repo="Repo:        ${PKGCONF_REPO}"
fi

# patches (optional)
if [ -z "${PKGCONF_PSRC}" ]; then
	pkgconf_psrc='#'
else
	pkgconf_psrc="Patches:     ${PKGCONF_PSRC}"
fi

# distro (optional)
if [ -z "${PKGCONF_DURL}" ]; then
	pkgconf_durl='#'
else
	pkgconf_durl="Distro:      ${PKGCONF_DURL}"
fi

# bug reports (optional)
if [ -z "${PKGCONF_BUGS}" ]; then
	pkgconf_bugs='#'
else
	pkgconf_bugs="Bug reports: ${PKGCONF_BUGS}"
fi

# project home page (optional)
if [ -z "${PKGCONF_HOME}" ]; then
	pkgconf_home='#'
else
	pkgconf_home="Home page:   ${PKGCONF_HOME}"
fi


# output (without trailing spaces)
cat << _EOF | grep -v '^#' | sed 's/[ \t]*$//'
###
prefix=$pkgconf_prefix
exec_prefix=$pkgconf_exec_prefix
includedir=$pkgconf_includedir
libdir=$pkgconf_libdir

Name:        ${PKGCONF_NAME}
Description: ${PKGCONF_DESC}
URL:         ${PKGCONF_USRC}
Version:     ${PKGCONF_VERSION}
$pkgconf_repo
$pkgconf_psrc
$pkgconf_durl
$pkgconf_bugs
$pkgconf_home

Cflags:      $pkgconf_cflags
Libs:        $pkgconf_ldflags
###
_EOF

# all done
exit 0