vlc-config.in.in 7.84 KB
Newer Older
Sam Hocevar's avatar
Sam Hocevar committed
1
2
3
4
5
#!/bin/sh

prefix="@prefix@"
exec_prefix="@exec_prefix@"
exec_prefix_set=no
6
datarootdir="@datarootdir@"
Sam Hocevar's avatar
Sam Hocevar committed
7
8
9
10
11
12
13

release="@release@"
debug="@debug@"
gprof="@gprof@"
cprof="@cprof@"
optim="@optim@"

14
15
plugins="@PLUGINS@ "
builtins="@BUILTINS@ "
Sam Hocevar's avatar
Sam Hocevar committed
16

Sam Hocevar's avatar
Sam Hocevar committed
17
18
19
20
21
cppflags=""
cflags=""
cxxflags=""
objcflags=""
ldflags=""
Sam Hocevar's avatar
Sam Hocevar committed
22

Sam Hocevar's avatar
Sam Hocevar committed
23
cflags_tuning="@CFLAGS_TUNING@"
24
25
cflags_optim_size="@CFLAGS_OPTIM_SIZE@"
cflags_optim_speed="@CFLAGS_OPTIM_SPEED@"
Sam Hocevar's avatar
Sam Hocevar committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cflags_optim_nodebug="@CFLAGS_OPTIM_NODEBUG@"
cflags_nooptim="@CFLAGS_NOOPTIM@"

#
#  Do not touch below this place unless you really know what you are doing
#
usage()
{
        cat << BLAH
Usage: vlc-config OPTIONS MODULES
Options:
        [--prefix[=DIR]]          set prefix
        [--exec-prefix[=DIR]]     set exec prefix
        [--version]               print version and exit
        [--linkage]               print linkage mode (c, c++, objc)
        [--target]                print targets and exit
42
        [--list]                  print modules names and exit
Sam Hocevar's avatar
Sam Hocevar committed
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
        [--libs]                  output linking flags
        [--cflags]                output C compilation flags
        [--cxxflags]              output C++ compilation flags
        [--objcflags]             output Objective C compilation flags
Modules:
        vlc                       the main VLC object
        plugin                    flags for plugin modules
        builtin                   flags for built-in modules
        pic                       flags for PIC code
        MODULE                    any available module (dummy, gtk, avi, etc.)
BLAH
        exit $1
}

register_flags()
{
  case "$1" in
    #@1@#
    *)
      ;;
  esac
}

register_targets()
{
  case "$1" in
    #@2@#
    *)
      ;;
  esac
}

if test $# -eq 0; then
        usage 1 1>&2
fi

#
#  No need to include the default @*FLAGS@ values here because they are
#  automatically added when using $(COMPILE), $(CXXCOMPILE) or $(OBJCCOMPILE)
#
83
if test "@includedir@" != "/usr/include"; then
Sam Hocevar's avatar
Sam Hocevar committed
84
85
  includes="-I@includedir@"
fi
86
87
if test "${top_builddir}" != ""; then
  top_builddir="${top_builddir}/"
zorglub's avatar
zorglub committed
88
89
elif test "${TOP_BUILDDIR}" != ""; then
  top_builddir="${TOP_BUILDDIR}/"
90
fi
91
includes="${includes}"
Sam Hocevar's avatar
Sam Hocevar committed
92
93
94
95
96
97
98
cppflags="${includes}"
module=""
linkage="c"

#
#  On Linux and Solaris, activate 64-bit off_t (by default under BSD)
#
99
cppflags="${cppflags} -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE"
Sam Hocevar's avatar
Sam Hocevar committed
100
101
102
103
104

#
#  Gettext, data and plugin location
#
cppflags="${cppflags} -DLOCALEDIR=\"@datadir@/locale\""
105
106
cppflags="${cppflags} -DDATA_PATH=\"@datadir@/vlc\""
cppflags="${cppflags} -DPLUGIN_PATH=\"@libdir@/vlc\""
Sam Hocevar's avatar
Sam Hocevar committed
107
108
109
110
111
112
113
114
115

#
#  Various additional defines
#
if [ "${debug}" = yes ]; then
  cppflags="${cppflags} -DDEBUG"
  cflags="${cflags} -g"
  cxxflags="${cxxflags} -g"
  objcflags="${objcflags} -g"
Sam Hocevar's avatar
Sam Hocevar committed
116
  ldflags="${ldflags} -g"
Sam Hocevar's avatar
Sam Hocevar committed
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
fi
if [ "${cprof}" = yes ]; then
  cppflags="${cppflags} -DCPROF"
  cflags="${cflags} -finstrument-functions"
  cxxflags="${cxxflags} -finstrument-functions"
  objcflags="${objcflags} -finstrument-functions"
fi
if [ "${gprof}" = yes ]; then
  cppflags="${cppflags} -DGPROF"
  cflags="${cflags} -pg"
  cxxflags="${cxxflags} -pg"
  objcflags="${objcflags} -pg"
  ldflags="${ldflags} -pg"
fi
if [ "${release}" = yes ]; then
  cppflags="${cppflags} -DHAVE_RELEASE"
fi
134
135
136
137
138
139
140
if [ "${optim}" = size ]; then
  cppflags="${cppflags} ${cflags_optim_size} ${cflags_tuning}"
  if [ "${debug}" != yes -a "${gprof}" != yes -a "${cprof}" != yes ]; then
    cppflags="${cppflags} ${cflags_optim_nodebug}"
  fi
elif [ "${optim}" = speed ]; then
  cppflags="${cppflags} ${cflags_optim_speed} ${cflags_tuning}"
Sam Hocevar's avatar
Sam Hocevar committed
141
142
143
144
145
146
147
148
149
150
151
152
  if [ "${debug}" != yes -a "${gprof}" != yes -a "${cprof}" != yes ]; then
    cppflags="${cppflags} ${cflags_optim_nodebug}"
  fi
else
  cppflags="${cppflags} ${cflags_nooptim}"
fi

#
#  The main argument loop
#
while test $# -gt 0; do
  case "$1" in
zorglub's avatar
zorglub committed
153
  -*=*) optarg=`echo "$1" | sed 's/-[_a-zA-Z0-9\-]*=//'` ;;
Sam Hocevar's avatar
Sam Hocevar committed
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
  *) optarg= ;;
  esac

  case "$1" in
    --prefix=*)
      prefix="${optarg}"
      if test "${exec_prefix_set}" = no ; then
        exec_prefix="${optarg}"
      fi
      ;;
    --prefix)
      echo_prefix=yes
      ;;
    --exec-prefix=*)
      exec_prefix="${optarg}"
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo_exec_prefix=yes
      ;;
    --version)
      echo "@VERSION@"
      exit 0
      ;;
    --linkage)
      echo_linkage=yes
      ;;
    --target)
      echo_target=yes
      ;;
184
185
186
    --list)
      echo_list=yes
      ;;
Sam Hocevar's avatar
Sam Hocevar committed
187
188
189
190
191
192
193
194
195
    --cflags)
      echo_cflags=yes
      ;;
    --cxxflags)
      echo_cxxflags=yes
      ;;
    --objcflags)
      echo_objcflags=yes
      ;;
196
197
198
199
    --ldflags)
      echo_ldflags=yes
      ;;
    --libs|-libs)
Sam Hocevar's avatar
Sam Hocevar committed
200
201
202
203
204
      echo_libs=yes
      ;;
    -*)
      usage 1 1>&1
      ;;
zorglub's avatar
zorglub committed
205
206
    libvlc)
      cppflags="${cppflags} -D__LIBVLC__ -I${top_builddir}src/misc"
Sam Hocevar's avatar
Sam Hocevar committed
207
208
209
      ;;
    plugin)
      echo_plugin=yes
zorglub's avatar
zorglub committed
210
      cppflags="${cppflags} -D__LIBVLC__ -D__PLUGIN__"
Sam Hocevar's avatar
Sam Hocevar committed
211
212
213
      ;;
    builtin)
      echo_builtin=yes
zorglub's avatar
zorglub committed
214
      cppflags="${cppflags} -D__LIBVLC__ -D__BUILTIN__"
Sam Hocevar's avatar
Sam Hocevar committed
215
      ;;
216
217
    pic)
      ;;
Sam Hocevar's avatar
Sam Hocevar committed
218
219
    mozilla)
      ;;
220
221
    external)
      echo_external=yes
222
      libs="${libs} -lvlc -lvlc-control"
223
      ;;      
Sam Hocevar's avatar
Sam Hocevar committed
224
225
226
227
228
229
230
231
232
233
234
235
236
237
    *)
      module="$1"
      ;;
  esac

  # Register per-module *FLAGS
  register_flags "$1"

  # Register module targets
  register_targets "$1"

  shift
done

zorglub's avatar
zorglub committed
238
239
libs="-L@libdir@"

Sam Hocevar's avatar
Sam Hocevar committed
240
241
242
#
#  If a module was requested, use its name
#
Sam Hocevar's avatar
Sam Hocevar committed
243
if test -n "${module}"; then
Sam Hocevar's avatar
Sam Hocevar committed
244
245
246
247
248
249
250
  cppflags="${cppflags} -DMODULE_NAME=${module} -DMODULE_NAME_IS_${module}"
fi

#
#  Output what we were asked
#
if test "${echo_linkage}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
251
  if test "${echo_plugin}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
252
253
254
255
    for module in `echo "${plugins}"`; do
      register_flags "${module}"
    done
  fi
Sam Hocevar's avatar
Sam Hocevar committed
256
  if test "${echo_builtin}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
257
258
259
260
261
262
263
264
265
    for module in `echo "${builtins}"`; do
      register_flags "${module}"
    done
  fi
  echo "${linkage}"
  exit 0
fi

if test "${echo_target}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
266
  if test "${echo_plugin}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
267
268
269
    for module in `echo "${plugins}"`; do
      register_targets "${module}"
    done
270
    for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_plugin "; done
271
    printf '\n'
Sam Hocevar's avatar
Sam Hocevar committed
272
  fi
Sam Hocevar's avatar
Sam Hocevar committed
273
  if test "${echo_builtin}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
274
275
276
    for module in `echo "${builtins}"`; do
      register_targets "${module}"
    done
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
277
    for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
278
    printf '\n'
Sam Hocevar's avatar
Sam Hocevar committed
279
280
281
282
  fi
  exit 0
fi

283
284
285
286
287
288
289
290
291
292
293
294
if test "${echo_list}" = yes; then
  if test "${echo_plugin}" = yes; then
    echo "${plugins}"
    printf '\n'
  fi
  if test "${echo_builtin}" = yes; then
    echo "${builtins}"
    printf '\n'
  fi
  exit 0
fi

Sam Hocevar's avatar
Sam Hocevar committed
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
if test "${echo_prefix}" = yes; then
  echo "${prefix}"
fi
if test "${echo_exec_prefix}" = yes; then
  echo "${exec_prefix}"
fi
if test "${echo_cppflags}" = yes; then
  echo "${cppflags}"
fi
if test "${echo_cflags}" = yes; then
  echo "${cppflags} ${cflags}"
fi
if test "${echo_cxxflags}" = yes; then
  echo "${cppflags} ${cxxflags}"
fi
if test "${echo_objcflags}" = yes; then
  echo "${cppflags} ${objcflags}"
fi
313
314
315
if test "${echo_ldflags}" = yes; then
  echo "${ldflags}"
fi
zorglub's avatar
zorglub committed
316
317
318
319
320

# Libs
# There are 4 possibilities
#  - We are a plugin or a builtin
#  - We are building from the outside (external):
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
321
#	- Give full libvlc linkflags + -lvlc (in libdir)
zorglub's avatar
zorglub committed
322
323
324
325
# 	- Link with builtins in libdir
#  - We are building something from the inside (builtin)
#       - Link with builtins in place
#  If you want something shared from the inside (binding),
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
326
#  you need "builtin vlc"
Sam Hocevar's avatar
Sam Hocevar committed
327
if test "${echo_libs}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
328
  if test "${echo_builtin}" = yes; then
Sam Hocevar's avatar
Sam Hocevar committed
329
330
331
332
    for module in `echo "${builtins}"`; do
      register_targets "${module}"
      register_flags "${module}"
    done
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
333
    for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
Sam Hocevar's avatar
Sam Hocevar committed
334
  fi
335
  if test "${echo_external}" = yes; then
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
336
    for module in `echo "${builtins}"`; do
337
      libs="${libs} @libdir@/vlc/lib${module}.a"
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
338
    done
339
340
341
342
343
    for module in `echo "${builtins}"`; do
      register_flags "${module}"
    done
    register_flags "vlc"
  fi
344
  echo "${libs}"
Sam Hocevar's avatar
Sam Hocevar committed
345
fi