#!/bin/sh

prefix="/usr/local"
exec_prefix="${prefix}"
exec_prefix_set=no

release="no"
debug="no"
gprof="no"
cprof="no"
optim="no"

plugins=" dummy rc logger gestures memcpy es mpga m4v mpeg_system ps ts avi asf aac mp4 rawdv spudec mpeg_audio lpcm a52 dts cinepak deinterlace invert adjust wall transform distort clone crop motionblur float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 s16tofixed32 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32 trivial_resampler ugly_resampler linear_resampler bandlimited_resampler trivial_channel_mixer headphone_channel_mixer trivial_mixer spdif_mixer float32_mixer aout_file i420_rgb i420_yuy2 i422_yuy2 i420_ymga id3 m3u rawvideo wav araw demuxdump demuxsub adpcm a52sys au access_file access_udp access_http ipv4 access_mms access_ftp access_directory sap httpd http screensaver access_output_dummy access_output_udp access_output_file access_output_http mux_ts mux_ps mux_avi mux_mp4 mux_dummy packetizer_mpegaudio packetizer_mpegvideo packetizer_a52 packetizer_mpeg4video packetizer_mpeg4audio packetizer_copy stream_out_dummy stream_out_standard stream_out_es stream_out_duplicate stream_out_display dvdread dvdplay ts_dvbpsi mux_ts_dvbpsi ipv6 ogg mux_ogg mpgatofixed32 id3tag a52tofloat32 libmpeg2 vorbis packetizer_vorbis subsdec logo x11 xvideo vout_sdl aout_sdl freetype gtk gtk_main"
builtins=" ffmpeg stream_out_transcode"

cppflags=""
cflags=""
cxxflags=""
objcflags=""
ldflags=""

cflags_tuning=""
cflags_optim=" -O3 -ffast-math -funroll-loops"
cflags_optim_nodebug=" -fomit-frame-pointer"
cflags_nooptim=" -O2"

#
#  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
        [--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
    a52tofloat32)
      cppflags="${cppflags} "
      ldflags="${ldflags} -la52 -lm"
    ;;
    adjust)
      ldflags="${ldflags} -lm"
    ;;
    aout_sdl)
      cflags="${cflags} -I/usr/local/include/ -D_REENTRANT"
      ldflags="${ldflags} -L/usr/local/lib -L/usr/X11R6/lib -lSDL -pthread -lm -L/usr/X11R6/lib -lX11 -lXext -lusbhid"
    ;;
    distort)
      ldflags="${ldflags} -lm"
    ;;
    dvdplay)
      cppflags="${cppflags} "
      ldflags="${ldflags} -ldvdplay -ldvdread"
    ;;
    dvdread)
      ldflags="${ldflags} -ldvdread"
    ;;
    encoder_ffmpeg)
      cppflags="${cppflags} "
    ;;
    faad)
      ldflags="${ldflags} -lm"
    ;;
    ffmpeg)
      ldflags="${ldflags} -lavcodec -lm"
    ;;
    freetype)
      cflags="${cflags} -I/usr/X11R6/include -I/usr/X11R6/include/freetype2"
      ldflags="${ldflags} -L/usr/X11R6/lib -lfreetype"
    ;;
    gtk)
      cflags="${cflags} -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -D_REENTRANT -D_THREAD_SAFE -I/usr/X11R6/include -DNEED_GTK_MAIN"
      ldflags="${ldflags} -L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -Wl,-E -lgmodule -lgthread -lglib -lpthread -lintl -liconv -lXi -lXext -lX11 -lm"
    ;;
    gtk_main)
      cflags="${cflags} -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -D_REENTRANT -D_THREAD_SAFE -I/usr/X11R6/include -DNEED_GTK_MAIN -DNEED_GTK_MAIN"
      ldflags="${ldflags} -L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -Wl,-E -lgmodule -lgthread -lglib -lpthread -lintl -liconv -lXi -lXext -lX11 -lm"
    ;;
    headphone_channel_mixer)
      ldflags="${ldflags} -lm"
    ;;
    i420_rgb)
      ldflags="${ldflags} -lm"
    ;;
    i420_yuy2_mmx)
      cflags="${cflags} -fomit-frame-pointer"
    ;;
    id3tag)
      ldflags="${ldflags} -lid3tag -lz"
    ;;
    imdct)
      ldflags="${ldflags} -lm -lm"
    ;;
    imdct3dn)
      ldflags="${ldflags} -lm"
    ;;
    imdctsse)
      ldflags="${ldflags} -lm"
    ;;
    libmpeg2)
      ldflags="${ldflags} -lmpeg2"
    ;;
    logo)
      ldflags="${ldflags} -lpng -lz"
    ;;
    mozilla)
      cflags="${cflags} -fpic -fPIC"
      cxxflags="${cxxflags} -fpic -fPIC"
      linkage="c++"
      objcflags="${objcflags} -fpic -fPIC"
      if test "${linkage}" = "c"; then linkage="objc"; fi
      ldflags="${ldflags} -shared -fpic -fPIC"
    ;;
    mp4)
      ldflags="${ldflags} -lz"
    ;;
    mpgatofixed32)
      ldflags="${ldflags} -lmad"
    ;;
    mux_ogg)
      ldflags="${ldflags} -logg"
    ;;
    mux_ts_dvbpsi)
      ldflags="${ldflags} -ldvbpsi"
    ;;
    ogg)
      cppflags="${cppflags} -DHAVE_OGGPACKB"
      ldflags="${ldflags} -logg"
    ;;
    packetizer_vorbis)
      ldflags="${ldflags} -lvorbis -logg"
    ;;
    pda)
      cflags="${cflags} -DNEED_GTK_MAIN"
    ;;
    pic)
      cflags="${cflags} -fpic -fPIC"
      cxxflags="${cxxflags} -fpic -fPIC"
      linkage="c++"
      objcflags="${objcflags} -fpic -fPIC"
      if test "${linkage}" = "c"; then linkage="objc"; fi
    ;;
    plugin)
      cflags="${cflags} -fpic -fPIC"
      cxxflags="${cxxflags} -fpic -fPIC"
      objcflags="${objcflags} -fpic -fPIC"
      ldflags="${ldflags} -shared -lpthread -fpic -fPIC"
    ;;
    skins)
      ldflags="${ldflags} -lz"
    ;;
    stream_out_transcode)
      ldflags="${ldflags} -lvorbisenc -lvorbis -logg -lm"
    ;;
    subsdec)
      cppflags="${cppflags} "
      ldflags="${ldflags} /usr/local/lib/libiconv.a"
    ;;
    ts_dvbpsi)
      ldflags="${ldflags} -ldvbpsi"
    ;;
    vlc)
      ldflags="${ldflags} -lpthread /usr/local/lib/libintl.a /usr/local/lib/libiconv.a -L/usr/local/lib"
    ;;
    vorbis)
      ldflags="${ldflags} -lvorbis -logg"
    ;;
    vout_sdl)
      cflags="${cflags} -I/usr/local/include/ -D_REENTRANT"
      ldflags="${ldflags} -L/usr/local/lib -L/usr/X11R6/lib -lSDL -pthread -lm -L/usr/X11R6/lib -lX11 -lXext -lusbhid"
    ;;
    x11)
      cppflags="${cppflags} -I/usr/X11R6/include"
      ldflags="${ldflags} -lXinerama -L/usr/X11R6/lib -lX11 -lXext"
    ;;
    xvideo)
      cppflags="${cppflags} -I/usr/X11R6/include"
      ldflags="${ldflags} -lXinerama -L/usr/X11R6/lib -lX11 -lXext -lXv"
    ;;
    *)
      ;;
  esac
}

register_targets()
{
  case "$1" in
    access_file) list="${list} access/libaccess_file" ;;
    access_directory) list="${list} access/libaccess_directory" ;;
    access_udp) list="${list} access/libaccess_udp" ;;
    access_http) list="${list} access/libaccess_http" ;;
    access_ftp) list="${list} access/libaccess_ftp" ;;
    slp) list="${list} access/libslp" ;;
    cdda) list="${list} access/libcdda" ;;
    dvb) list="${list} access/dvb/libdvb" ;;
    dvd) list="${list} access/dvd/libdvd" ;;
    dvdplay) list="${list} access/dvdplay/libdvdplay" ;;
    dvdread) list="${list} access/dvdread/libdvdread" ;;
    access_mms) list="${list} access/mms/libaccess_mms" ;;
    pvr) list="${list} access/pvr/libpvr" ;;
    satellite) list="${list} access/satellite/libsatellite" ;;
    v4l) list="${list} access/v4l/libv4l" ;;
    vcd) list="${list} access/vcd/libvcd" ;;
    access_output_dummy) list="${list} access_output/libaccess_output_dummy" ;;
    access_output_file) list="${list} access_output/libaccess_output_file" ;;
    access_output_udp) list="${list} access_output/libaccess_output_udp" ;;
    access_output_http) list="${list} access_output/libaccess_output_http" ;;
    trivial_channel_mixer) list="${list} audio_filter/channel_mixer/libtrivial_channel_mixer" ;;
    headphone_channel_mixer) list="${list} audio_filter/channel_mixer/libheadphone_channel_mixer" ;;
    float32tos16) list="${list} audio_filter/converter/libfloat32tos16" ;;
    float32tos8) list="${list} audio_filter/converter/libfloat32tos8" ;;
    float32tou16) list="${list} audio_filter/converter/libfloat32tou16" ;;
    float32tou8) list="${list} audio_filter/converter/libfloat32tou8" ;;
    a52tospdif) list="${list} audio_filter/converter/liba52tospdif" ;;
    a52tofloat32) list="${list} audio_filter/converter/liba52tofloat32" ;;
    dtstospdif) list="${list} audio_filter/converter/libdtstospdif" ;;
    fixed32tos16) list="${list} audio_filter/converter/libfixed32tos16" ;;
    s16tofixed32) list="${list} audio_filter/converter/libs16tofixed32" ;;
    fixed32tofloat32) list="${list} audio_filter/converter/libfixed32tofloat32" ;;
    s16tofloat32) list="${list} audio_filter/converter/libs16tofloat32" ;;
    s16tofloat32swab) list="${list} audio_filter/converter/libs16tofloat32swab" ;;
    s8tofloat32) list="${list} audio_filter/converter/libs8tofloat32" ;;
    u8tofixed32) list="${list} audio_filter/converter/libu8tofixed32" ;;
    u8tofloat32) list="${list} audio_filter/converter/libu8tofloat32" ;;
    mpgatofixed32) list="${list} audio_filter/converter/libmpgatofixed32" ;;
    trivial_resampler) list="${list} audio_filter/resampler/libtrivial_resampler" ;;
    ugly_resampler) list="${list} audio_filter/resampler/libugly_resampler" ;;
    linear_resampler) list="${list} audio_filter/resampler/liblinear_resampler" ;;
    bandlimited_resampler) list="${list} audio_filter/resampler/libbandlimited_resampler" ;;
    coreaudio_resampler) list="${list} audio_filter/resampler/libcoreaudio_resampler" ;;
    trivial_mixer) list="${list} audio_mixer/libtrivial_mixer" ;;
    float32_mixer) list="${list} audio_mixer/libfloat32_mixer" ;;
    spdif_mixer) list="${list} audio_mixer/libspdif_mixer" ;;
    alsa) list="${list} audio_output/libalsa" ;;
    arts) list="${list} audio_output/libarts" ;;
    coreaudio) list="${list} audio_output/libcoreaudio" ;;
    aout_directx) list="${list} audio_output/libaout_directx" ;;
    esd) list="${list} audio_output/libesd" ;;
    aout_file) list="${list} audio_output/libaout_file" ;;
    oss) list="${list} audio_output/liboss" ;;
    aout_sdl) list="${list} audio_output/libaout_sdl" ;;
    waveout) list="${list} audio_output/libwaveout" ;;
    a52) list="${list} codec/liba52" ;;
    dts) list="${list} codec/libdts" ;;
    flacdec) list="${list} codec/libflacdec" ;;
    lpcm) list="${list} codec/liblpcm" ;;
    araw) list="${list} codec/libaraw" ;;
    vorbis) list="${list} codec/libvorbis" ;;
    tarkin) list="${list} codec/libtarkin" ;;
    theora) list="${list} codec/libtheora" ;;
    tremor) list="${list} codec/libtremor" ;;
    dv) list="${list} codec/libdv" ;;
    xvid) list="${list} codec/libxvid" ;;
    adpcm) list="${list} codec/libadpcm" ;;
    mpeg_audio) list="${list} codec/libmpeg_audio" ;;
    libmpeg2) list="${list} codec/liblibmpeg2" ;;
    rawvideo) list="${list} codec/librawvideo" ;;
    quicktime) list="${list} codec/libquicktime" ;;
    a52old) list="${list} codec/a52old/liba52old" ;;
    downmix) list="${list} codec/a52old/downmix/libdownmix" ;;
    downmixsse) list="${list} codec/a52old/downmix/libdownmixsse" ;;
    downmix3dn) list="${list} codec/a52old/downmix/libdownmix3dn" ;;
    imdct) list="${list} codec/a52old/imdct/libimdct" ;;
    imdctsse) list="${list} codec/a52old/imdct/libimdctsse" ;;
    imdct3dn) list="${list} codec/a52old/imdct/libimdct3dn" ;;
    cinepak) list="${list} codec/cinepak/libcinepak" ;;
    faad) list="${list} codec/faad/libfaad" ;;
    ffmpeg) list="${list} codec/ffmpeg/libffmpeg" ;;
    postprocessing_c) list="${list} codec/ffmpeg/postprocessing/libpostprocessing_c" ;;
    postprocessing_mmx) list="${list} codec/ffmpeg/postprocessing/libpostprocessing_mmx" ;;
    postprocessing_mmxext) list="${list} codec/ffmpeg/postprocessing/libpostprocessing_mmxext" ;;
    mpeg_audio) list="${list} codec/mpeg_audio/libmpeg_audio" ;;
    mpeg_video_old) list="${list} codec/mpeg_video/libmpeg_video_old" ;;
    idct) list="${list} codec/mpeg_video/idct/libidct" ;;
    idctclassic) list="${list} codec/mpeg_video/idct/libidctclassic" ;;
    idctmmx) list="${list} codec/mpeg_video/idct/libidctmmx" ;;
    idctmmxext) list="${list} codec/mpeg_video/idct/libidctmmxext" ;;
    idctaltivec) list="${list} codec/mpeg_video/idct/libidctaltivec" ;;
    motion) list="${list} codec/mpeg_video/motion/libmotion" ;;
    motionmmx) list="${list} codec/mpeg_video/motion/libmotionmmx" ;;
    motionmmxext) list="${list} codec/mpeg_video/motion/libmotionmmxext" ;;
    motion3dnow) list="${list} codec/mpeg_video/motion/libmotion3dnow" ;;
    motionaltivec) list="${list} codec/mpeg_video/motion/libmotionaltivec" ;;
    spudec) list="${list} codec/spudec/libspudec" ;;
    subsdec) list="${list} codec/subsdec/libsubsdec" ;;
    gestures) list="${list} control/libgestures" ;;
    http) list="${list} control/libhttp" ;;
    joystick) list="${list} control/libjoystick" ;;
    corba) list="${list} control/corba/libcorba" ;;
    lirc) list="${list} control/lirc/liblirc" ;;
    rc) list="${list} control/rc/librc" ;;
    a52sys) list="${list} demux/liba52sys" ;;
    flac) list="${list} demux/libflac" ;;
    ogg) list="${list} demux/libogg" ;;
    m3u) list="${list} demux/libm3u" ;;
    demuxdump) list="${list} demux/libdemuxdump" ;;
    rawdv) list="${list} demux/librawdv" ;;
    au) list="${list} demux/libau" ;;
    wav) list="${list} demux/libwav" ;;
    aac) list="${list} demux/libaac" ;;
    mkv) list="${list} demux/libmkv" ;;
    asf) list="${list} demux/asf/libasf" ;;
    avi) list="${list} demux/avi/libavi" ;;
    mp4) list="${list} demux/mp4/libmp4" ;;
    mpeg_system) list="${list} demux/mpeg/libmpeg_system" ;;
    es) list="${list} demux/mpeg/libes" ;;
    m4v) list="${list} demux/mpeg/libm4v" ;;
    ps) list="${list} demux/mpeg/libps" ;;
    ts) list="${list} demux/mpeg/libts" ;;
    ts_dvbpsi) list="${list} demux/mpeg/libts_dvbpsi" ;;
    mpga) list="${list} demux/mpeg/libmpga" ;;
    id3) list="${list} demux/util/libid3" ;;
    id3tag) list="${list} demux/util/libid3tag" ;;
    demuxsub) list="${list} demux/util/libdemuxsub" ;;
    encoder_xvid) list="${list} encoder/libencoder_xvid" ;;
    encoder_ffmpeg) list="${list} encoder/ffmpeg/libencoder_ffmpeg" ;;
    beos) list="${list} gui/beos/libbeos" ;;
    pda) list="${list} gui/pda/libpda" ;;
    gtk) list="${list} gui/gtk/libgtk" ;;
    gnome) list="${list} gui/gtk/libgnome" ;;
    gtk2) list="${list} gui/gtk2/libgtk2" ;;
    gnome2) list="${list} gui/gtk2/libgnome2" ;;
    kde) list="${list} gui/kde/libkde" ;;
    macosx) list="${list} gui/macosx/libmacosx" ;;
    ncurses) list="${list} gui/ncurses/libncurses" ;;
    qnx) list="${list} gui/qnx/libqnx" ;;
    qt) list="${list} gui/qt/libqt" ;;
    skins) list="${list} gui/skins/libskins" ;;
    wxwindows) list="${list} gui/wxwindows/libwxwindows" ;;
    gtk_main) list="${list} misc/libgtk_main" ;;
    gnome_main) list="${list} misc/libgnome_main" ;;
    gtk2_main) list="${list} misc/libgtk2_main" ;;
    gnome2_main) list="${list} misc/libgnome2_main" ;;
    sap) list="${list} misc/libsap" ;;
    screensaver) list="${list} misc/libscreensaver" ;;
    qte_main) list="${list} misc/libqte_main" ;;
    freetype) list="${list} misc/libfreetype" ;;
    httpd) list="${list} misc/libhttpd" ;;
    dummy) list="${list} misc/dummy/libdummy" ;;
    logger) list="${list} misc/logger/liblogger" ;;
    memcpy) list="${list} misc/memcpy/libmemcpy" ;;
    memcpymmx) list="${list} misc/memcpy/libmemcpymmx" ;;
    memcpymmxext) list="${list} misc/memcpy/libmemcpymmxext" ;;
    memcpy3dn) list="${list} misc/memcpy/libmemcpy3dn" ;;
    memcpyaltivec) list="${list} misc/memcpy/libmemcpyaltivec" ;;
    ipv4) list="${list} misc/network/libipv4" ;;
    ipv6) list="${list} misc/network/libipv6" ;;
    test1) list="${list} misc/testsuite/libtest1" ;;
    test2) list="${list} misc/testsuite/libtest2" ;;
    test3) list="${list} misc/testsuite/libtest3" ;;
    test4) list="${list} misc/testsuite/libtest4" ;;
    mux_dummy) list="${list} mux/libmux_dummy" ;;
    mux_avi) list="${list} mux/libmux_avi" ;;
    mux_ogg) list="${list} mux/libmux_ogg" ;;
    mux_mp4) list="${list} mux/libmux_mp4" ;;
    mux_ps) list="${list} mux/mpeg/libmux_ps" ;;
    mux_ts) list="${list} mux/mpeg/libmux_ts" ;;
    mux_ts_dvbpsi) list="${list} mux/mpeg/libmux_ts_dvbpsi" ;;
    packetizer_copy) list="${list} packetizer/libpacketizer_copy" ;;
    packetizer_a52) list="${list} packetizer/libpacketizer_a52" ;;
    packetizer_mpegaudio) list="${list} packetizer/libpacketizer_mpegaudio" ;;
    packetizer_mpegvideo) list="${list} packetizer/libpacketizer_mpegvideo" ;;
    packetizer_mpeg4video) list="${list} packetizer/libpacketizer_mpeg4video" ;;
    packetizer_mpeg4audio) list="${list} packetizer/libpacketizer_mpeg4audio" ;;
    packetizer_vorbis) list="${list} packetizer/libpacketizer_vorbis" ;;
    stream_out_dummy) list="${list} stream_out/libstream_out_dummy" ;;
    stream_out_standard) list="${list} stream_out/libstream_out_standard" ;;
    stream_out_transcode) list="${list} stream_out/libstream_out_transcode" ;;
    stream_out_duplicate) list="${list} stream_out/libstream_out_duplicate" ;;
    stream_out_es) list="${list} stream_out/libstream_out_es" ;;
    stream_out_display) list="${list} stream_out/libstream_out_display" ;;
    i420_rgb) list="${list} video_chroma/libi420_rgb" ;;
    i420_rgb_mmx) list="${list} video_chroma/libi420_rgb_mmx" ;;
    i420_yuy2) list="${list} video_chroma/libi420_yuy2" ;;
    i420_yuy2_mmx) list="${list} video_chroma/libi420_yuy2_mmx" ;;
    i422_yuy2) list="${list} video_chroma/libi422_yuy2" ;;
    i422_yuy2_mmx) list="${list} video_chroma/libi422_yuy2_mmx" ;;
    i420_ymga) list="${list} video_chroma/libi420_ymga" ;;
    i420_ymga_mmx) list="${list} video_chroma/libi420_ymga_mmx" ;;
    transform) list="${list} video_filter/libtransform" ;;
    invert) list="${list} video_filter/libinvert" ;;
    adjust) list="${list} video_filter/libadjust" ;;
    distort) list="${list} video_filter/libdistort" ;;
    wall) list="${list} video_filter/libwall" ;;
    clone) list="${list} video_filter/libclone" ;;
    crop) list="${list} video_filter/libcrop" ;;
    motionblur) list="${list} video_filter/libmotionblur" ;;
    logo) list="${list} video_filter/liblogo" ;;
    deinterlace) list="${list} video_filter/deinterlace/libdeinterlace" ;;
    aa) list="${list} video_output/libaa" ;;
    fb) list="${list} video_output/libfb" ;;
    ggi) list="${list} video_output/libggi" ;;
    glide) list="${list} video_output/libglide" ;;
    vout_sdl) list="${list} video_output/libvout_sdl" ;;
    svgalib) list="${list} video_output/libsvgalib" ;;
    wingdi) list="${list} video_output/libwingdi" ;;
    vout_encoder) list="${list} video_output/libvout_encoder" ;;
    vout_directx) list="${list} video_output/directx/libvout_directx" ;;
    mga) list="${list} video_output/mga/libmga" ;;
    xmga) list="${list} video_output/mga/libxmga" ;;
    qte) list="${list} video_output/qte/libqte" ;;
    x11) list="${list} video_output/x11/libx11" ;;
    xvideo) list="${list} video_output/x11/libxvideo" ;;
    scope) list="${list} visualization/scope/libscope" ;;
    xosd) list="${list} visualization/xosd/libxosd" ;;
    *)
      ;;
  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)
#
if test "${prefix}/include" != "/usr/include"; then
  includes="-I${prefix}/include"
fi
if test "${top_builddir}" != ""; then
  top_builddir="${top_builddir}/"
fi
cppflags="${includes}"
libs="-L${exec_prefix}/lib"
module=""
linkage="c"

#
#  On Linux and Solaris, activate 64-bit off_t (by default under BSD)
#
cppflags="${cppflags} -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -D_GNU_SOURCE"

#
#  Gettext, data and plugin location
#
cppflags="${cppflags} -DLOCALEDIR=\"${prefix}/share/locale\""
cppflags="${cppflags} -DDATA_PATH=\"${prefix}/share/vlc\""
cppflags="${cppflags} -DPLUGIN_PATH=\"${prefix}/lib/vlc\""

#
#  Various additional defines
#
if [ "${debug}" = yes ]; then
  cppflags="${cppflags} -DDEBUG"
  cflags="${cflags} -g"
  cxxflags="${cxxflags} -g"
  objcflags="${objcflags} -g"
  ldflags="${ldflags} -g"
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
if [ "${optim}" = yes ]; then
  cppflags="${cppflags} ${cflags_optim} ${cflags_tuning}"
  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
  -*=*) optarg=`echo "$1" | sed 's/-_a-zA-Z0-9*=//'` ;;
  *) 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 "0.6.2"
      exit 0
      ;;
    --linkage)
      echo_linkage=yes
      ;;
    --target)
      echo_target=yes
      ;;
    --cflags)
      echo_cflags=yes
      ;;
    --cxxflags)
      echo_cxxflags=yes
      ;;
    --objcflags)
      echo_objcflags=yes
      ;;
    --libs)
      echo_libs=yes
      ;;
    -*)
      usage 1 1>&1
      ;;
    vlc)
      cppflags="${cppflags} -D__VLC__"
      ;;
    plugin)
      echo_plugin=yes
      cppflags="${cppflags} -D__VLC__ -D__PLUGIN__"
      ;;
    pic)
      echo_pic=yes
      ;;
    builtin)
      echo_builtin=yes
      cppflags="${cppflags} -D__VLC__ -D__BUILTIN__"
      ;;
    mozilla)
      ;;
    *)
      module="$1"
      ;;
  esac

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

  # Register module targets
  register_targets "$1"

  shift
done

#
#  If a module was requested, use its name
#
if test -n "${module}"; then
  cppflags="${cppflags} -DMODULE_NAME=${module} -DMODULE_NAME_IS_${module}"
fi

#
#  Output what we were asked
#
if test "${echo_linkage}" = yes; then
  if test "${echo_plugin}" = yes; then
    for module in `echo "${plugins}"`; do
      register_flags "${module}"
    done
  fi
  if test "${echo_builtin}" = yes; then
    for module in `echo "${builtins}"`; do
      register_flags "${module}"
    done
  fi
  echo "${linkage}"
  exit 0
fi

if test "${echo_target}" = yes; then
  if test "${echo_plugin}" = yes; then
    for module in `echo "${plugins}"`; do
      register_targets "${module}"
    done
    for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_plugin "; done
    printf '\n'
  fi
  if test "${echo_builtin}" = yes; then
    for module in `echo "${builtins}"`; do
      register_targets "${module}"
    done
    if test "${echo_pic}" = yes; then
      for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_pic.a "; done
    else
      for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
    fi
    printf '\n'
  fi
  exit 0
fi

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
if test "${echo_libs}" = yes; then
  if test "${echo_builtin}" = yes; then
    for module in `echo "${builtins}"`; do
      register_targets "${module}"
      register_flags "${module}"
    done
    if test "${echo_pic}" = yes; then
      for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_pic.a "; done
    else
      for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
    fi
  fi
  echo "${libs} ${ldflags}"
fi

