1
1
#! /bin/sh
2
2
# $Id$
3
- # Copyright (c) 2011-2020 Pierre Pronchery <khorben@defora.org>
3
+ # Copyright (c) 2011-2022 Pierre Pronchery <khorben@defora.org>
4
4
#
5
5
# Redistribution and use in source and binary forms, with or without
6
6
# modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,7 @@ DEVNULL="/dev/null"
31
31
PROGNAME=" pkgconfig.sh"
32
32
# executables
33
33
DEBUG=" _debug"
34
- INSTALL=" install -m 0644 "
34
+ INSTALL=" install"
35
35
MKDIR=" mkdir -m 0755 -p"
36
36
RM=" rm -f"
37
37
SED=" sed"
@@ -40,6 +40,101 @@ SED="sed"
40
40
41
41
42
42
# functions
43
+ # pkgconfig
44
+ _pkgconfig ()
45
+ {
46
+ # check the variables
47
+ if [ -z " $PACKAGE " ]; then
48
+ _error " The PACKAGE variable needs to be set"
49
+ return $?
50
+ fi
51
+ if [ -z " $VERSION " ]; then
52
+ _error " The VERSION variable needs to be set"
53
+ return $?
54
+ fi
55
+ [ -z " $BINDIR " ] && BINDIR=" $PREFIX /bin"
56
+ [ -z " $DATADIR " ] && DATADIR=" $PREFIX /share"
57
+ [ -z " $INCLUDEDIR " ] && INCLUDEDIR=" $PREFIX /include"
58
+ [ -z " $LIBDIR " ] && LIBDIR=" $PREFIX /lib"
59
+ [ -z " $LIBEXECDIR " ] && LIBEXECDIR=" $PREFIX /libexec"
60
+ [ -z " $MANDIR " ] && MANDIR=" $DATADIR /man"
61
+ [ -z " $SBINDIR " ] && SBINDIR=" $PREFIX /sbin"
62
+ if [ -z " $SYSCONFDIR " ]; then
63
+ SYSCONFDIR=" $PREFIX /etc"
64
+ [ " $PREFIX " = " /usr" ] && SYSCONFDIR=" /etc"
65
+ fi
66
+ PKGCONFIG=" $PREFIX /lib/pkgconfig"
67
+
68
+ while [ $# -gt 0 ]; do
69
+ target=" $1 "
70
+ shift
71
+
72
+ # clean
73
+ [ " $clean " -ne 0 ] && continue
74
+
75
+ # uninstall
76
+ if [ " $uninstall " -eq 1 ]; then
77
+ $DEBUG $RM -- " $PKGCONFIG /$target " || return 2
78
+ continue
79
+ fi
80
+
81
+ # install
82
+ if [ " $install " -eq 1 ]; then
83
+ source=" ${target# $OBJDIR } "
84
+ $DEBUG $MKDIR -- " $PKGCONFIG " || return 2
85
+ mode=" -m 0644"
86
+ basename=" $source "
87
+ if [ " ${source##*/ } " != " $source " ]; then
88
+ basename=" ${source##*/ } "
89
+ fi
90
+ $DEBUG $INSTALL $mode " $target " " $PKGCONFIG /$basename " \
91
+ || return 2
92
+ continue
93
+ fi
94
+
95
+ # portability
96
+ RPATH=
97
+ if [ " $PREFIX " != " /usr" ]; then
98
+ RPATH=" -Wl,-rpath-link,\$ {libdir} -Wl,-rpath,\$ {libdir}"
99
+ case $( uname -s) in
100
+ " Darwin" )
101
+ RPATH=" -Wl,-rpath,\$ {libdir}"
102
+ ;;
103
+ " SunOS" )
104
+ RPATH=" -Wl,-R\$ {libdir}"
105
+ ;;
106
+ esac
107
+ fi
108
+
109
+ # create
110
+ source=" ${target# $OBJDIR } "
111
+ source=" ${source} .in"
112
+ ([ -z " $OBJDIR " ] || $DEBUG $MKDIR -- " ${target%/* } " ) \
113
+ || return 2
114
+ $DEBUG $SED -e " s;@VENDOR@;$VENDOR ;g" \
115
+ -e " s;@PACKAGE@;$PACKAGE ;g" \
116
+ -e " s;@VERSION@;$VERSION ;g" \
117
+ -e " s;@PREFIX@;$PREFIX ;g" \
118
+ -e " s;@BINDIR@;$BINDIR ;g" \
119
+ -e " s;@DATADIR@;$DATADIR ;g" \
120
+ -e " s;@INCLUDEDIR@;$INCLUDEDIR ;g" \
121
+ -e " s;@LIBDIR@;$LIBDIR ;g" \
122
+ -e " s;@LIBEXECDIR@;$LIBEXECDIR ;g" \
123
+ -e " s;@MANDIR@;$MANDIR ;g" \
124
+ -e " s;@PWD@;$PWD ;g" \
125
+ -e " s;@RPATH@;$RPATH ;g" \
126
+ -e " s;@SBINDIR@;$SBINDIR ;g" \
127
+ -e " s;@SYSCONFDIR@;$SYSCONFDIR ;g" \
128
+ -- " $source " > " $target "
129
+ if [ $? -ne 0 ]; then
130
+ $RM -- " $target " 2> " $DEVNULL "
131
+ return 2
132
+ fi
133
+ done
134
+ return 0
135
+ }
136
+
137
+
43
138
# debug
44
139
_debug ()
45
140
{
@@ -94,91 +189,10 @@ while getopts "ciuO:P:" name; do
94
189
esac
95
190
done
96
191
shift $(( $OPTIND - 1 ))
97
- if [ $# -lt 0 ]; then
192
+ if [ $# -lt 1 ]; then
98
193
_usage
99
194
exit $?
100
195
fi
101
196
102
- # check the variables
103
- if [ -z " $PACKAGE " ]; then
104
- _error " The PACKAGE variable needs to be set"
105
- exit $?
106
- fi
107
- if [ -z " $VERSION " ]; then
108
- _error " The VERSION variable needs to be set"
109
- exit $?
110
- fi
111
- [ -z " $BINDIR " ] && BINDIR=" $PREFIX /bin"
112
- [ -z " $DATADIR " ] && DATADIR=" $PREFIX /share"
113
- [ -z " $INCLUDEDIR " ] && INCLUDEDIR=" $PREFIX /include"
114
- [ -z " $LIBDIR " ] && LIBDIR=" $PREFIX /lib"
115
- [ -z " $LIBEXECDIR " ] && LIBEXECDIR=" $PREFIX /libexec"
116
- [ -z " $MANDIR " ] && MANDIR=" $DATADIR /man"
117
- if [ -z " $SYSCONFDIR " ]; then
118
- SYSCONFDIR=" $PREFIX /etc"
119
- [ " $PREFIX " = " /usr" ] && SYSCONFDIR=" /etc"
120
- fi
121
-
122
- PKGCONFIG=" $PREFIX /lib/pkgconfig"
123
197
exec 3>&1
124
- while [ $# -gt 0 ]; do
125
- target=" $1 "
126
- shift
127
-
128
- # clean
129
- [ " $clean " -ne 0 ] && continue
130
-
131
- # uninstall
132
- if [ " $uninstall " -eq 1 ]; then
133
- $DEBUG $RM -- " $PKGCONFIG /$target " || exit 2
134
- continue
135
- fi
136
-
137
- # install
138
- if [ " $install " -eq 1 ]; then
139
- source=" ${target# $OBJDIR } "
140
- $DEBUG $MKDIR -- " $PKGCONFIG " || exit 2
141
- basename=" $source "
142
- if [ " ${source##*/ } " != " $source " ]; then
143
- basename=" ${source##*/ } "
144
- fi
145
- $DEBUG $INSTALL " $target " " $PKGCONFIG /$basename " || exit 2
146
- continue
147
- fi
148
-
149
- # portability
150
- RPATH=
151
- if [ " $PREFIX " != " /usr" ]; then
152
- RPATH=" -Wl,-rpath-link,\$ {libdir} -Wl,-rpath,\$ {libdir}"
153
- case $( uname -s) in
154
- " Darwin" )
155
- RPATH=" -Wl,-rpath,\$ {libdir}"
156
- ;;
157
- " SunOS" )
158
- RPATH=" -Wl,-R\$ {libdir}"
159
- ;;
160
- esac
161
- fi
162
-
163
- # create
164
- source=" ${target# $OBJDIR } "
165
- source=" ${source} .in"
166
- ([ -z " $OBJDIR " ] || $DEBUG $MKDIR -- " ${target%/* } " ) || exit 2
167
- $DEBUG $SED -e " s;@PACKAGE@;$PACKAGE ;g" \
168
- -e " s;@VERSION@;$VERSION ;g" \
169
- -e " s;@PREFIX@;$PREFIX ;g" \
170
- -e " s;@BINDIR@;$BINDIR ;g" \
171
- -e " s;@DATADIR@;$DATADIR ;g" \
172
- -e " s;@INCLUDEDIR@;$INCLUDEDIR ;g" \
173
- -e " s;@LIBDIR@;$LIBDIR ;g" \
174
- -e " s;@LIBEXECDIR@;$LIBEXECDIR ;g" \
175
- -e " s;@MANDIR@;$MANDIR ;g" \
176
- -e " s;@PWD@;$PWD ;g" \
177
- -e " s;@RPATH@;$RPATH ;g" \
178
- -e " s;@SYSCONFDIR@;$SYSCONFDIR ;g" \
179
- -- " $source " > " $target "
180
- if [ $? -ne 0 ]; then
181
- $DEBUG $RM -- " $target "
182
- exit 2
183
- fi
184
- done
198
+ _pkgconfig " $@ "
0 commit comments