toolbox 21.3 KB
Newer Older
1 2
#! /bin/sh

3
##  toolbox for the VLC media player
Sam Hocevar's avatar
Sam Hocevar committed
4
##  $Id$
5
##
6 7
##  Copyright (C) 2005  the VideoLAN team
##
8
##  Authors: Samuel Hocevar <sam@zoy.org>
9
##           Rmi Denis-Courmont <rem # videolan.org>
10 11 12 13

###
###  Get a sane environment, just in case
###
14 15
LC_ALL=C
export LC_ALL
16 17 18 19 20 21 22 23 24 25 26 27
LANG=C
export LANG
CYGWIN=binmode
export CYGWIN

##
##  Give help
##
help()
{
  cat << EOF
recognized flags are:
Sam Hocevar's avatar
Sam Hocevar committed
28 29 30
  --update-vc             update Microsoft Visual Studio files
  --update-po             update translation files
  --update-includes       generate various include files
31
  --update-version        generate src/misc/version.c
Sam Hocevar's avatar
Sam Hocevar committed
32 33 34
  --update-glade          generate and fix Glade code
  --update-glade2         generate and fix Glade 2 code
  --update-flexml         generate and fix flexml and flex code
Sam Hocevar's avatar
Sam Hocevar committed
35
  --distclean             "make distclean" on steroids
36
  --dist-contrib          add the contrib dir to MAKE_DIST
37
  --make-woody <dir>      change distdir <dir> to a woody distdir
38 39 40 41
EOF
  exit 1
}

42 43 44 45 46
##
##  Extract stuff from Makefile.am
##
getfiles()
{
47
  awk 'BEGIN{a=0}{if(!a&&$0~/^'"$1"'[^-_a-zA-Z0-9]*=/){a=1;print$0;next;}if(a){if($0~/^[a-zA-Z]/){exit;}print $0}}' < "${srcdir}/Makefile.am" | \
48
    tr '\\ ' '\n\n' | \
Sam Hocevar's avatar
Sam Hocevar committed
49 50
    sed -ne 's/[^-$()_a-zA-Z0-9][^-$()_a-zA-Z0-9]*\([a-zA-Z]\)/\1/p' | \
    sed -e "s,^,${srcdir}/,"
51 52
}

53 54 55
###
###  argument check
###
56 57

if test "$1" = ""
58 59 60 61
then
  help
fi

62
case "$1" in
Sam Hocevar's avatar
Sam Hocevar committed
63
  --changelog|--update-changelog)
64
    action=changelog
65 66
    ;;
  --update-vc)
67
    action=vc
68 69
    ;;
  --update-po)
70
    action=po
71 72
    ;;
  --update-includes)
73
    action=includes
74
    ;;
75 76 77
  --update-version)
    action=version
    ;;
78 79 80
  --update-flexml)
    action=flexml
    ;;
81
  --update-glade|--fix-glade)
82
    action=glade
83
    ;;
84 85 86
  --update-glade2|--update-glade-2|--fix-glade2)
    action=glade2
    ;;
87 88 89
  --distclean)
    action=distclean
    ;;
90 91 92
  --make-woody)
    action=woody
    ;;
93 94 95
  --add-include)
    action=include
    ;;
96 97 98
  --dist-contrib)
    action=contrib
    ;;
99 100 101 102 103 104 105 106 107 108
  --help)
    help
    ;;
  *)
    echo "$0: unknown option $1"
    help
    ;;
esac
shift

109 110 111 112 113 114 115 116 117 118 119 120 121
##
##  Add includes to help doxygen
##
if test "${action}" = "include"
then
  case "$1" in
    */vlc_common.h|*/include/vlc/*);;
    */include/*.h) echo "#include <vlc_common.h>" ;;
  esac
  cat $1
  exit 0
fi

122 123 124
##
##  Update the CVS changelog
##
125
if test "${action}" = "changelog"
126
then
Sam Hocevar's avatar
Sam Hocevar committed
127 128
  YEAR="`date +%Y`"
  echo "toolbox --changelog no longer required. use this instead:"
129
  echo " svn log -v -r '{$YEAR-12-31}:{$YEAR-01-01}' > ChangeLog"
130
  exit 0
131 132
fi

133 134 135
##
##  Update the MSVC project files
##
136
if test "${action}" = "vc"
137
then
Sam Hocevar's avatar
Sam Hocevar committed
138
  echo "generating Visual Studio files"
139

Sam Hocevar's avatar
Sam Hocevar committed
140 141 142
  if test -z "${srcdir}"; then
    srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
  fi
Sam Hocevar's avatar
Sam Hocevar committed
143

144
  #  The evil ^M. printf '\r' does not work in Cygwin.
145 146
  M='
'
147

148 149 150
  #  Variables we get from configure.ac
  LIBVLC_VERSION=`sed -ne '/AC_INIT/s/.*,\(.*\))/\1/p' < configure.ac`
  LIBVLC_CODENAME=`sed -ne '/CODENAME=/s/.*"\(.*\)"/\1/p' < configure.ac`
151 152
  LIBVLC_SYMBOL=`echo $LIBVLC_VERSION | sed -e 'y/.-/__/'`

153
  #  Sources that get built under Win32 - FIXME: anyone wanna deuglify this? :)
154
  LIBVLC_SOURCES=`getfiles SOURCES_libvlc_common; getfiles SOURCES_libvlc_win32; getfiles SOURCES_libvlc_dirent; getfiles SOURCES_libvlc_getopt; getfiles SOURCES_libvlc_libc`
155

156
  LIBVLC_HEADERS=`getfiles HEADERS_include; getfiles HEADERS_include_built`
157

158
  LIBVLC_PKG_HEADERS=`getfiles dist_pkginclude_HEADERS`
159 160

  # Clean up
161
  rm -f evc/*.vcp msvc/*.dsp msvc/*.vcproj msvc/*.sln msvc/*.ncb
162

163 164 165
  # config files
  for target in evc/config.h msvc/config.h
  do
Sam Hocevar's avatar
Sam Hocevar committed
166
    printf "."
167 168 169 170 171 172
    rm -f ${target}
    sed -e "s/@CODENAME@/${LIBVLC_CODENAME}/" \
        -e "s/@VERSION@/${LIBVLC_VERSION}/" \
        -e "s/@SYMBOL@/${LIBVLC_SYMBOL}/" < ${target}.in > ${target}
  done

173 174 175
  # libvlc files
  for target in evc/libvlc.vcp msvc/libvlc.dsp
  do
Sam Hocevar's avatar
Sam Hocevar committed
176
    printf "."
177 178 179 180 181 182 183
    #  Top of the project file
    perl -pe 'if(/SOURCES/){last;}' < ${target}.in > ${target}
    #  The source files
    for file in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep -v "/.*/"`
    do
      cat >> ${target} << EOF
# Begin Source File${M}
184
SOURCE="..\\`echo ${file} | sed -e 's%/%\\\\%g'`"${M}
Gildas Bazin's avatar
 
Gildas Bazin committed
185
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
186 187 188 189 190 191 192 193 194 195
# End Source File${M}
EOF
    done
    for subdir in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep "/.*/" | cut -f2 -d/ | sort | uniq`
    do
      cat >> ${target} << EOF
# Begin Group "${subdir}"${M}
EOF
      for file in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep "/${subdir}/"`
      do
196
      subdir="`echo ${file} | sed -e 's%/[^/]*$%/%' | sed -e 's%/%\\\\%g'`"
197 198 199 200
      if test "${target}" = "evc/libvlc.vcp"
      then
        cat >> ${target} << EOF
# Begin Source File${M}
201
SOURCE="..\\`echo ${file} | sed -e 's%/%\\\\%g'`"${M}
Gildas Bazin's avatar
 
Gildas Bazin committed
202
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
!IF "\$(CFG)" == "libvlc - Win32 (WCE MIPS) Release"${M}
# PROP Output_Dir "MIPSRel\\${subdir}"${M}
# PROP Intermediate_Dir "MIPSRel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE MIPS) Debug"${M}
# PROP Output_Dir "MIPSDbg\\${subdir}"${M}
# PROP Intermediate_Dir "MIPSDbg\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE SH4) Release"${M}
# PROP Output_Dir "SH4Rel\\${subdir}"${M}
# PROP Intermediate_Dir "SH4Rel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE SH4) Debug"${M}
# PROP Output_Dir "SH4Dbg\\${subdir}"${M}
# PROP Intermediate_Dir "SH4Dbg\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE SH3) Release"${M}
# PROP Output_Dir "SH3Rel\\${subdir}"${M}
# PROP Intermediate_Dir "SH3Rel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE SH3) Debug"${M}
# PROP Output_Dir "SH3Dbg\\${subdir}"${M}
# PROP Intermediate_Dir "SH3Dbg\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARM) Release"${M}
# PROP Output_Dir "ARMRel\\${subdir}"${M}
# PROP Intermediate_Dir "ARMRel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARM) Debug"${M}
# PROP Output_Dir "ARMDbg\\${subdir}"${M}
# PROP Intermediate_Dir "ARMDbg\\${subdir}"${M}
227 228 229 230 231 232
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARMV4) Release"${M}
# PROP Output_Dir "ARMV4Rel\\${subdir}"${M}
# PROP Intermediate_Dir "ARMV4Rel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE ARMV4) Debug"${M}
# PROP Output_Dir "ARMV4Dbg\\${subdir}"${M}
# PROP Intermediate_Dir "ARMV4Dbg\\${subdir}"${M}
233 234 235 236 237 238
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86em) Release"${M}
# PROP Output_Dir "X86EMRel\\${subdir}"${M}
# PROP Intermediate_Dir "X86EMRel\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 (WCE x86em) Debug"${M}
# PROP Output_Dir "X86EMDbg\\${subdir}"${M}
# PROP Intermediate_Dir "X86EMDbg\\${subdir}"${M}
239 240 241 242 243 244 245 246 247 248 249 250
!ELSEIF  "\$(CFG)" == "libvlc - Win32 (WCE emulator) Debug"${M}
# PROP Output_Dir "emulatorDbg\\${subdir}"${M}
# PROP Intermediate_Dir "emulatorDbg\\${subdir}"${M}
!ELSEIF  "\$(CFG)" == "libvlc - Win32 (WCE emulator) Release"${M}
# PROP Output_Dir "emulatorRel\\${subdir}"${M}
# PROP Intermediate_Dir "emulatorRel\\${subdir}"${M}
!ELSEIF  "\$(CFG)" == "libvlc - Win32 (WCE x86) Debug"${M}
# PROP Output_Dir "X86Dbg\\${subdir}"${M}
# PROP Intermediate_Dir "X86Dbg\\${subdir}"${M}
!ELSEIF  "\$(CFG)" == "libvlc - Win32 (WCE x86) Release"${M}
# PROP Output_Dir "X86Rel\\${subdir}"${M}
# PROP Intermediate_Dir "X86Rel\\${subdir}"${M}
251 252 253 254 255 256
!ENDIF${M}
# End Source File${M}
EOF
        else
          cat >> ${target} << EOF
# Begin Source File${M}
257
SOURCE="..\\`echo ${file} | sed -e 's%/%\\\\%g'`"${M}
Gildas Bazin's avatar
 
Gildas Bazin committed
258
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
!IF "\$(CFG)" == "libvlc - Win32 Release"${M}
# PROP Output_Dir "Release\\${subdir}"${M}
# PROP Intermediate_Dir "Release\\${subdir}"${M}
!ELSEIF "\$(CFG)" == "libvlc - Win32 Debug"${M}
# PROP Output_Dir "Debug\\${subdir}"${M}
# PROP Intermediate_Dir "Debug\\${subdir}"${M}
!ENDIF${M}
# End Source File${M}
EOF
        fi
      done
      cat >> ${target} << EOF
# End Group${M}
EOF
    done
    #  The headers
    perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){if(/HEADERS/){last;}print $_}' < ${target}.in >> ${target}
    for file in ${LIBVLC_HEADERS}
    do
      cat >> ${target} << EOF
# Begin Source File${M}
280
SOURCE="..\\`echo ${file} | sed -e 's%/%\\\\%g'`"${M}
281 282 283 284 285 286 287 288 289 290
# End Source File${M}
EOF
    done
    cat >> ${target} << EOF
# Begin Group "vlc"${M}
EOF
    for file in ${LIBVLC_PKG_HEADERS}
    do
      cat >> ${target} << EOF
# Begin Source File${M}
291
SOURCE="..\\`echo ${file} | sed -e 's%/%\\\\%g'`"${M}
292 293 294 295 296 297 298 299 300 301
# End Source File${M}
EOF
    done
    cat >> ${target} << EOF
# End Group${M}
EOF
    perl -e 'while(<>){if(/HEADERS/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
  done

  # plugins files
Sam Hocevar's avatar
Sam Hocevar committed
302
  for dir in `sed -ne 's,modules/\(.*\)/Makefile,\1,p' ${srcdir}/configure.ac`
303
  do
Sam Hocevar's avatar
Sam Hocevar committed
304 305
    mf="${srcdir}/modules/${dir}/Modules.am"
    for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf}`
306
    do
Sam Hocevar's avatar
Sam Hocevar committed
307 308 309 310 311 312
      # this is an attempt at getting a list of plugin sources... we take the
      # production and remove everything that does not contain "module", which
      # means you miss $(NULL), but other variables too.
      allfiles=`grep -v '[^-_a-zA-Z0-9]*#' ${mf} | awk 'BEGIN{a=0}{if(!a&&$0~/^SOURCES_'${mod}'[^-_a-zA-Z0-9]*=/){a=1;print$0;next;}if(a){if($0~/^[a-zA-Z]/){exit;}print $0}}' | tr '\\ ' '\n\n' | grep '\.'`
      hfiles=`for i in ${allfiles} ; do echo "$i" ; done | grep '\.h$'`
      cfiles=`for i in ${allfiles} ; do echo "$i" ; done | grep -v '\.h$'`
313
      for msdir in evc msvc
314
      do
315 316 317
        test "${msdir}" = "evc" && suf="vcp" || suf="dsp"
        source="${msdir}/plugins.${suf}.in"
        target="${msdir}/plugin_${mod}.${suf}"
Sam Hocevar's avatar
Sam Hocevar committed
318
        printf "."
Sam Hocevar's avatar
Sam Hocevar committed
319 320 321 322
        perl -pe 'if(/SOURCES/){last;} s/PLUGIN/'${mod}'/g' < ${source} > ${target}
        for cfile in ${cfiles}
        do
          cat >> ${target} << EOF
323
# Begin Source File${M}
Sam Hocevar's avatar
Sam Hocevar committed
324 325
SOURCE="..\\modules\\`echo ${dir}/${cfile} | sed 's,/,\\\\,g'`"${M}
# ADD CPP /D "__VLC__" /D "__PLUGIN__"  /D "MODULE_NAME=${mod}" /D "MODULE_NAME_IS_${mod}" ${M}
326 327 328 329 330 331
!IF "\$(CFG)" == "plugin_${mod} - Win32 Release"${M}
# PROP Output_Dir "Release\\modules\\`echo ${dir} | sed 's,/,\\\\,g'`"${M}
# PROP Intermediate_Dir "Release\\modules\\`echo ${dir} | sed 's,/,\\\\,g'`"${M}
!ELSEIF "\$(CFG)" == "plugin_${mod} - Win32 Debug"${M}
# PROP Output_Dir "Debug\\modules\\`echo ${dir} | sed 's,/,\\\\,g'`"${M}
# PROP Intermediate_Dir "Debug\\modules\\`echo ${dir} | sed 's,/,\\\\,g'`"${M}
332 333
# End Source File${M}
EOF
Sam Hocevar's avatar
Sam Hocevar committed
334 335 336 337 338 339 340
        done
        # sed is really nicer for this... unfortunately it's broken under cygwin
        # sed -ne '1,/SOURCES/d; /HEADERS/,$d; p' < ${source} >> ${target}
        perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){if(/HEADERS/){last;}print $_}' < ${source} >> ${target}
        for hfile in ${hfiles}
        do
          cat >> ${target} << EOF
341
# Begin Source File${M}
Sam Hocevar's avatar
Sam Hocevar committed
342
SOURCE="..\\modules\\`echo ${dir}/${hfile} | sed 's,/,\\\\,g'`"${M}
343 344
# End Source File${M}
EOF
Sam Hocevar's avatar
Sam Hocevar committed
345 346 347
        done
        # sed -ne '1,/HEADERS/d; p' < ${source} >> ${target}
        perl -e 'while(<>){if(/HEADERS/){last;}}while(<>){print $_}' < ${source} >> ${target}
348 349 350 351 352 353 354
      done
    done
  done

  # vlc files
  for target in evc/vlc.vcp msvc/vlc.dsp
  do
Sam Hocevar's avatar
Sam Hocevar committed
355
    printf "."
356 357 358 359 360 361 362 363 364 365 366 367
    #  Top of the project file
    perl -pe 'if(/SOURCES/){last;}' < ${target}.in > ${target}
    #  The source files
      cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\src\\vlc.c"${M}
# End Source File${M}
EOF
    #  Bottom of the project file - handles resource files too
    perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
  done

Sam Hocevar's avatar
Sam Hocevar committed
368
  echo " done."
369 370 371 372 373 374
  exit 0
fi

##
##  Update the potfiles because no one ever does it
##
375
if test "${action}" = "po"
376
then
377
  # find out the source files
378 379 380
  echo "WARNING: you should run \"make update-po\" instead!" >&2
  make update-po
  exit $?
381 382
fi

383 384 385
##
##  Create include files
##
386
if test "${action}" = "includes"
387
then
Sam Hocevar's avatar
Sam Hocevar committed
388
  #set -x
389

Sam Hocevar's avatar
Sam Hocevar committed
390 391 392
  if test -z "${srcdir}"; then
    srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
  fi
393 394 395
  if test -z "${builddir}"; then
    builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`"
  fi
Sam Hocevar's avatar
Sam Hocevar committed
396
  BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' vlc-config`
397

398
  file="${builddir}/src/misc/modules_builtin.h"
399

400
  rm -f ${file}.tmp && cp ${srcdir}/src/misc/modules_builtin.h.in ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
401
  if test -n "${BUILTINS}"
402 403 404 405 406 407 408 409 410 411
  then
    for i in `echo ${BUILTINS}`
    do
      echo "int vlc_entry__`echo $i | sed -e 'y@/@_@' -e 's@\..*@@'`( module_t* );" >>${file}.tmp
    done
    echo "" >> ${file}.tmp
  fi
  echo "#define ALLOCATE_ALL_BUILTINS() \\" >> ${file}.tmp
  echo "    do \\" >> ${file}.tmp
  echo "    { \\" >> ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
412
  if test -n "${BUILTINS}"
413 414 415 416 417 418 419 420
  then
    for i in `echo ${BUILTINS}`
    do
      echo "        ALLOCATE_BUILTIN(`echo $i | sed -e 'y@/@_@' -e 's@\..*@@'`); \\" >> ${file}.tmp
    done
  fi
  echo "    } while( 0 );" >> ${file}.tmp
  echo "" >> ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
421
  if diff >/dev/null 2>&1 ${file} ${file}.tmp
422 423
  then
    rm -f ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
424
  else
Sam Hocevar's avatar
Sam Hocevar committed
425
    echo "creating new ${file}"
Sam Hocevar's avatar
Sam Hocevar committed
426
    mv -f ${file}.tmp ${file}
427 428 429 430 431
  fi

  exit 0
fi

432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
##
##  Create version file
##
if test "${action}" = "version"
then
  if test -z "${srcdir}"; then
    srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
  fi
  if test -z "${builddir}"; then
    builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`"
  fi
  if test -z "${CC}"; then
    CC="`sed -ne 's/^CC *= *//p' < Makefile`"
  fi

  VLC_COMPILE_TIME=`LC_ALL=C LANG=C date`
  VLC_COMPILE_BY=`whoami`
  VLC_COMPILE_HOST=`hostname`
450
  VLC_COMPILE_DOMAIN=`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`
451 452 453 454
  VLC_COMPILER=`$CC -v 2>&1 | tail -n 1`
  if which svnversion 2>&1 >/dev/null; then
    VLC_CHANGESET=`svnversion $srcdir`
  else
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
455
    VLC_CHANGESET='exported'
456 457 458
  fi

  cat >| src/misc/version.c << EOF
459 460 461 462 463
/* DO NOT EDIT THIS FILE - IT IS REGENERATED AT EVERY COMPILE -
 * IT GIVES BETTER TRACKING OFF VLC STABLE AND DEVELOPMENT VERSIONS
 * WETHER THEY ARE BUILD BY OTHERS OR DURING DEVELOPMENT OR FOR THE
 * OFFICIAL VLC STABLE RELEASES.
 */
464 465 466 467 468 469
const char psz_vlc_compile_time[] = "${VLC_COMPILE_TIME}";
const char psz_vlc_compile_by[] = "${VLC_COMPILE_BY}";
const char psz_vlc_compile_host[] = "${VLC_COMPILE_HOST}";
const char psz_vlc_compile_domain[] = "${VLC_COMPILE_DOMAIN}";
const char psz_vlc_compiler[] = "${VLC_COMPILER}";
const char psz_vlc_changeset[] = "${VLC_CHANGESET}";
470

471 472 473
EOF
fi

474 475 476
##
##  Fix glade-generated files
##
477
if test "${action}" = "glade"
478 479 480 481 482 483 484 485 486 487
then
  for file in modules/gui/gtk/gnome.glade modules/gui/gtk/gtk.glade modules/gui/familiar/familiar.glade
  do
    echo "generating code from $file"
    glade -w $file || exit 1
  done

  for file in modules/gui/gtk/gnome_interface.c modules/gui/gtk/gtk_interface.c modules/gui/familiar/interface.c
  do
    echo "fixing $file"
Sam Hocevar's avatar
Sam Hocevar committed
488
    if grep "DO NOT EDIT THIS FILE" $file >/dev/null 2>&1
489 490 491 492 493 494 495 496 497
    then
      rm -f $file.$$.bak
      cat > $file.$$.bak << EOF
/* This file was created automatically by glade and fixed by bootstrap */

#include <vlc/vlc.h>
EOF
      sed -e 1,7d \
          -e 's#_(\(".:..:.."\))#\1#' \
498
          -e 's#_(\("[a-z0-9]*://[^"]*"\))#\1#' \
499 500
          -e 's#_("---")#"---"#' \
          -e 's#_("--")#"--"#' \
Sam Hocevar's avatar
Sam Hocevar committed
501
          -e 's#_(\("/dev/[^"]*"\))#"\1"#' \
502 503 504 505 506 507 508 509 510
          -e 's#_(\("./."\))#\1#' \
          < $file >> $file.$$.bak
      mv -f $file.$$.bak $file
    fi
  done

  for file in modules/gui/gtk/gtk_support.h modules/gui/familiar/support.h
  do
    echo "fixing $file"
Sam Hocevar's avatar
Sam Hocevar committed
511
    if grep "DO NOT EDIT THIS FILE" $file >/dev/null 2>&1
512 513 514 515 516 517 518 519 520 521 522 523 524 525
    then
      rm -f $file.$$.bak
      sed -e 's/DO NOT EDIT.*/Created by glade, fixed by bootstrap/' \
          -e 's,<config.h>,<vlc/vlc.h>,' \
          -e 's,#if.*ENABLE_NLS.*,#if 0 /* Disabled by bootstrap */,' \
          -e 's,#else,/* & */,' \
          < $file > $file.$$.bak
      mv -f $file.$$.bak $file
    fi
  done

  exit 0
fi

526 527 528 529 530
##
##  Fix glade2-generated files
##
if test "${action}" = "glade2"
then
Sam Hocevar's avatar
Sam Hocevar committed
531
  for file in modules/gui/gtk2/gnome2.glade modules/gui/gtk2/gtk2.glade modules/gui/pda/pda.glade
532 533 534 535 536
  do
    echo "generating code from $file"
    glade-2 -w $file || exit 1
  done

Sam Hocevar's avatar
Sam Hocevar committed
537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559
  for file in modules/gui/pda/pda_interface.c
  do
    echo "fixing $file"
    if grep "DO NOT EDIT THIS FILE" $file >/dev/null 2>&1
    then
      rm -f $file.$$.bak
      cat > $file.$$.bak << EOF
/* This file was created automatically by glade2 and fixed by bootstrap */

#include <vlc/vlc.h>
EOF
      sed -e 1,7d \
          -e 's#_(\(".:..:.."\))#\1#' \
          -e 's#_(\("[a-z0-9]*://[^"]*"\))#\1#' \
          -e 's#_("---")#"---"#' \
          -e 's#_("--")#"--"#' \
          -e 's#_(\("/dev/[^"]*"\))#\1#' \
          -e 's#_(\("./."\))#\1#' \
          < $file >> $file.$$.bak
      mv -f $file.$$.bak $file
    fi
  done

560 561 562
  exit 0
fi

563 564 565 566 567 568 569
##
##  Make distclean
##
if test "${action}" = "distclean"
then
  set -x
  # a naive sanity check to make sure we are in a VLC tree
Gildas Bazin's avatar
 
Gildas Bazin committed
570
  test -f vlc.spec.mdk -a -f debian/rules || exit 1
571
  # let's rock!
572
  find . -type f '(' -name '*.[oa]' -o -name '*.so' -o -name '*.sl' -o -name '*.dylib' -o -name '*.dll' -o -name .dirstamp -o '(' '(' ! -path '\./doc/developer/Makefile\.in' ')' -a -name Makefile.in ')' -o -name 'stamp-h*' -o -name '*~' -o -name '*.bak' -o -name '*.moc.cpp' ')' -exec rm -f '{}' ';'
Sam Hocevar's avatar
Sam Hocevar committed
573
  (cd autotools && find . -name '[a-z]*' -maxdepth 1 -exec rm -f '{}' ';')
574
  (cd debian && find . -type d '(' -name '[a-z]*' ! -name 'patches' ')' -maxdepth 1 -exec rm -Rf '{}' ';')
575 576
  find msvc -type f -name '*.dsp' -exec rm -f '{}' ';'
  find evc -type f -name '*.vcp' -exec rm -f '{}' ';'
577
  find . -type d -name '.deps' -exec rm -Rf '{}' ';'
578
  # there's some more cruft all around
579
  rm -f config.h config.log config.status
580 581 582 583 584 585
  rm -f vlc vlc-config Makefile Modules.am
  rm -Rf autom4te.cache
  rm -f mozilla/vlcintf.h mozilla/vlcintf.xpt
  # FIXME: a lot of Makefiles are still there
fi

586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616
##
## Add the extras/contrib dir to the distribution
##
if test "${action}" = "contrib"
then
  set -x
  if test ! -d "${distdir}/extras"
  then
    mkdir "${distdir}/extras"
  fi
  if test ! -d "${distdir}/extras/contrib"
  then
    mkdir "${distdir}/extras/contrib"
  fi
  cp "${srcdir}/extras/contrib/Makefile" "${distdir}/extras/contrib/Makefile"
  cp "${srcdir}/extras/contrib/README" "${distdir}/extras/contrib/README"
  cp "${srcdir}/extras/contrib/bootstrap" "${distdir}/extras/contrib/bootstrap"
  cp "${srcdir}/extras/contrib/change_prefix.sh" "${distdir}/extras/contrib/change_prefix.sh"
  if test ! -d "${distdir}/extras/contrib/src"
  then
    mkdir "${distdir}/extras/contrib/src"
  fi
  cp "${srcdir}/extras/contrib/src/Makefile" "${distdir}/extras/contrib/src/Makefile"
  cp "${srcdir}/extras/contrib/src/packages.mak" "${distdir}/extras/contrib/src/packages.mak"
  if test ! -d "${distdir}/extras/contrib/src/Patches"
  then
    mkdir "${distdir}/extras/contrib/src/Patches"
  fi
  cp ${srcdir}/extras/contrib/src/Patches/* "${distdir}/extras/contrib/src/Patches/"
fi

Sam Hocevar's avatar
Sam Hocevar committed
617 618 619
##
##  Build a woody-friendly package
##
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637
if test "${action}" = "woody"
then
  set -ex
  test -d "$1"

  # changelog: replace (1.2.3-4) with (1.2.3-0woody.4)
  sed -e 's/^vlc (\([^)]*\)-\([^-)]*\))/vlc-woody (\1-0woody.\2)/' \
      -e 's/ unstable; / stable; /' \
      < "$1/debian/changelog" > "$1/debian/changelog.woody"
  mv "$1/debian/changelog.woody" "$1/debian/changelog"

  # control: replace liba52-*-dev with a52dec-dev (>=0.7.3)
  #                  libdv*-dev with libdv-dev
  #                  kdelibs4-dev with kdelibs-dev
  #                  libqt3-mt-dev libqt3-compat-headers with libqt-dev
  #                  libarts1-dev with libarts-dev
  #                  libdvdread3-dev with libdvdread2-dev
  #                  libdvdplay0-dev (>=1.0.1-2) with libdvdplay0-dev
638
  #                  libxosd-dev (>=2.2.4-1.3) with libxosd-dev
Sam Hocevar's avatar
Sam Hocevar committed
639
  #                  ttf-freefont with ttf-thryomanes
Sam Hocevar's avatar
Sam Hocevar committed
640
  #                  dvb-dev (>= 1.0.1-6) with dvb-dev
641 642 643
  #          remove libwxgtk2.4-dev
  #                 libidl0 (workaround for mozilla-dev's bad deps)
  #                 libglib2.0-0 (workaround for mozilla-dev's bad deps)
644
  #                 gcc-3.2 (workaround for an ICE in gcc-3.3)
Sam Hocevar's avatar
Sam Hocevar committed
645
  #          change Section: gnome with Section: graphics
646 647 648 649 650 651 652 653 654 655
  #                 Section: kde with Section: kde
  #                 Section: libdevel with Section: devel
  sed -e 's/liba52-[^-]*-dev/a52dec-dev (>=0.7.3)/' \
      -e 's/libdv[0-9]*-dev/libdv-dev/' \
      -e 's/kdelibs[0-9]*-dev/kdelibs-dev/' \
      -e 's/libqt[0-9]*-mt-dev/libqt-dev/' \
      -e 's/, libqt[0-9]*-compat-headers[^,]*//' \
      -e 's/libarts[0-9]*-dev/libarts-dev/' \
      -e 's/libdvdread[0-9]*-dev/libdvdread2-dev/' \
      -e 's/, libdvdplay0-dev[^,]*/, libdvdplay0-dev/' \
656
      -e 's/, libxosd-dev[^,]*/, libxosd-dev/' \
Sam Hocevar's avatar
Sam Hocevar committed
657
      -e 's/, ttf-freefont[^,]*/, ttf-thryomanes/' \
Sam Hocevar's avatar
Sam Hocevar committed
658
      -e 's/, dvb-dev[^,]*/, dvb-dev/' \
659 660 661 662
      -e 's/, libwx[^,]*//' \
      -e '/Package: wxvlc/,/^ *$/d' \
      -e 's/, libidl0[^,]*//' \
      -e 's/, libglib2.0-0[^,]*//' \
663
      -e 's/, gcc-3.2[^,]*//' \
664 665 666 667 668 669 670 671 672 673 674 675 676
      -e 's/Section: gnome/Section: graphics/' \
      -e 's/Section: kde/Section: graphics/' \
      -e 's/Section: libdevel/Section: devel/' \
      < "$1/debian/control" > "$1/debian/control.woody"
  mv "$1/debian/control.woody" "$1/debian/control"

  # rules: remove wxwindows and skins stuff
  sed -e '/# Package: wxvlc/,/^ *$/d' \
      -e 's,--enable-wxwindows,--disable-wxwindows,' \
      -e 's,--enable-skins,--disable-skins,' \
      < "$1/debian/rules" > "$1/debian/rules.woody"
  mv "$1/debian/rules.woody" "$1/debian/rules"
  chmod 0755 "$1/debian/rules"
677 678

  # modules/misc/freetype.c: replace the default font
Sam Hocevar's avatar
Sam Hocevar committed
679
  sed -e 's,freefont/FreeSerifBold.ttf,thryomanes/thryb___.ttf,' \
680 681
      < "$1/modules/misc/freetype.c" > "$1/modules/misc/freetype.c.woody"
  mv "$1/modules/misc/freetype.c.woody" "$1/modules/misc/freetype.c"
682 683
fi