8
8
LANG=C
9
9
LC_ALL=C
10
10
LOADLIBS=1
11
+ EXT=so
12
+ [ " ` uname` " = Darwin ] && EXT=dylib
11
13
12
14
export LANG
13
15
export LC_ALL
@@ -61,11 +63,7 @@ generate_configh () {
61
63
if [ ! " $oldlib " = " $lib " ]; then
62
64
[ -n " $oldlib " ] && echo " 0"
63
65
oldlib=$lib
64
- if type perl > /dev/null 2>&1 ; then
65
- uclib=$( echo $lib | perl -pe ' tr/[a-z]/[A-Z]/' )
66
- else
67
- uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
68
- fi
66
+ uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
69
67
echo
70
68
echo " #define R_${uclib} _STATIC_PLUGINS \\ "
71
69
plugins=" ${plugins} __${uclib} "
@@ -74,17 +72,13 @@ generate_configh () {
74
72
done
75
73
[ -n " $oldlib " ] && echo " 0"
76
74
77
- # FILL EMPTY PLUGIN ARRAYS WITH LOVE
75
+ # CAREFULLY FILL EMPTY PLUGIN ARRAYS
78
76
for a in ${SHARED} ; do
79
77
lib=$( echo $a | cut -d . -f 1) # library
80
78
plg=$( echo $a | cut -d . -f 2) # plugin name
81
79
if [ ! " $oldlib " = " $lib " ]; then
82
80
oldlib=$lib
83
- if type perl > /dev/null 2>&1 ; then
84
- uclib=$( echo $lib | perl -pe ' tr/[a-z]/[A-Z]/' )
85
- else
86
- uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
87
- fi
81
+ uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
88
82
if [ -z " ` echo ${plugins} | grep __${uclib} ` " ]; then
89
83
plugins=" ${plugins} __${uclib} "
90
84
echo
@@ -105,40 +99,35 @@ generate_asmdinc() {
105
99
}
106
100
107
101
generate_configmk () {
102
+ splugins=" "
108
103
plugins=" "
109
104
oldlib=" "
110
- for a in ${STATIC} ; do
105
+ for a in ` echo " ${STATIC} ${SHARED} " | tr " " " \n " | sort ` ; do
111
106
lib=$( echo $a | cut -d . -f 1) # library
112
107
plg=$( echo $a | cut -d . -f 2) # plugin name
113
108
if [ ! " $oldlib " = " $lib " ]; then
114
109
[ -n " $oldlib " ] && printf " \n"
115
110
oldlib=$lib
116
- if type perl > /dev/null 2>&1 ; then
117
- uclib=$( echo $lib | perl -pe ' tr/[a-z]/[A-Z]/' )
118
- else
119
- uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
120
- fi
121
- printf " STATIC_${uclib} _PLUGINS= "
111
+ uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
112
+ printf " STATIC_${uclib} _PLUGINS="
122
113
plugins=" ${plugins} __${uclib} "
123
114
fi
124
- printf " p/${plg} .mk "
115
+ printf " p/${plg} .mk"
125
116
done
126
117
127
118
echo
128
119
129
- # fill the holes with love
130
120
for a in ${SHARED} ; do
131
121
lib=$( echo $a | cut -d . -f 1) # library
132
- if type perl > /dev/null 2>&1 ; then
133
- uclib=$( echo $lib | perl -pe ' tr/[a-z]/[A-Z]/' )
134
- else
135
- uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
136
- fi
137
- if [ -z " ` echo ${plugins} | grep __${uclib} ` " ]; then
138
- plugins=" ${plugins} __${uclib} "
139
- echo " STATIC_${uclib} _PLUGINS="
122
+ plg=$( echo $a | cut -d . -f 2) # plugin name
123
+ uclib=$( echo $lib | tr ' [a-z]' ' [A-Z]' )
124
+ if [ -z " ` echo ${splugins} | grep __${uclib} ` " ]; then
125
+ splugins=" ${splugins} __${uclib} "
126
+ printf " SHARED_${uclib} _TARGETS="
140
127
fi
128
+ printf " p/io_${plg} .${EXT} "
141
129
done
130
+ echo
142
131
}
143
132
144
133
generate () {
@@ -167,7 +156,6 @@ sub () {
167
156
n=" " ; for a in $1 ; do [ $a = $2 ] && continue ; n=" $n $a " ; done ; echo $n
168
157
}
169
158
170
-
171
159
echo | sort -t. > /dev/null 2>&1
172
160
if [ $? = 0 ]; then
173
161
SORT=" sort -t."
@@ -197,11 +185,23 @@ make_shared () {
197
185
198
186
make_ () { : ; }
199
187
200
-
201
188
MODE=" "
202
189
DONOTHING=0
203
190
DEFCFG=dist/plugins-cfg/plugins.def.cfg
204
191
192
+ check_conflicts () {
193
+ CONFLICT=0
194
+ for a in $STATIC ; do
195
+ for b in $SHARED ; do
196
+ if [ " $a " = " $b " ]; then
197
+ echo " \x1b[1mError\x1b[0m: Conflict \x1b[44m$a \x1b[0m is defined as STATIC and SHARED"
198
+ CONFLICT=1
199
+ fi
200
+ done
201
+ done
202
+ return $CONFLICT
203
+ }
204
+
205
205
rmstatic () {
206
206
C=0
207
207
if [ -z " $1 " ]; then
@@ -255,6 +255,8 @@ if [ - != "${RMSTATIC}" ]; then
255
255
exit 0
256
256
fi
257
257
258
+ check_conflicts || exit 1
259
+
258
260
[ ${DONOTHING} = 0 ] && generate
259
261
260
262
echo SHARED: ${SHARED}
0 commit comments