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

3
##  toolbox for the VLC media player
Sam Hocevar's avatar
Sam Hocevar committed
4
##  $Id: toolbox,v 1.36 2003/07/01 19:17:32 sam Exp $
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
##
##  Authors: Samuel Hocevar <sam@zoy.org>

###
###  Get a sane environment, just in case
###
LANG=C
export LANG
CYGWIN=binmode
export CYGWIN

##
##  Give help
##
help()
{
  cat << EOF
recognized flags are:
Sam Hocevar's avatar
Sam Hocevar committed
23 24 25 26 27 28
  --update-vc             update Microsoft Visual Studio files
  --update-po             update translation files
  --update-includes       generate various include files
  --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
29
  --changelog             update the CVS changelog
Sam Hocevar's avatar
Sam Hocevar committed
30
  --distclean             "make distclean"
31 32 33 34
EOF
  exit 1
}

35 36 37 38 39
##
##  Extract stuff from Makefile.am
##
getfiles()
{
40
  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" | \
41
    tr '\\ ' '\n\n' | \
Sam Hocevar's avatar
Sam Hocevar committed
42 43
    sed -ne 's/[^-$()_a-zA-Z0-9][^-$()_a-zA-Z0-9]*\([a-zA-Z]\)/\1/p' | \
    sed -e "s,^,${srcdir}/,"
44 45
}

46 47 48
###
###  argument check
###
49 50

if test "$1" = ""
51 52 53 54
then
  help
fi

55
case "$1" in
Sam Hocevar's avatar
Sam Hocevar committed
56
  --changelog|--update-changelog)
57
    action=changelog
58 59
    ;;
  --update-vc)
60
    action=vc
61 62
    ;;
  --update-po)
63
    action=po
64 65
    ;;
  --update-includes)
66
    action=includes
67
    ;;
ipkiss's avatar
ipkiss committed
68 69 70
  --update-flexml)
    action=flexml
    ;;
71
  --update-glade|--fix-glade)
72
    action=glade
73
    ;;
74 75 76
  --update-glade2|--update-glade-2|--fix-glade2)
    action=glade2
    ;;
77 78 79
  --distclean)
    action=distclean
    ;;
80 81 82 83 84 85 86 87 88 89
  --help)
    help
    ;;
  *)
    echo "$0: unknown option $1"
    help
    ;;
esac
shift

90 91 92
##
##  Update the CVS changelog
##
93
if test "${action}" = "changelog"
94
then
Sam Hocevar's avatar
Sam Hocevar committed
95 96
  set -e
  set -x
97
  cvs2cl --help >/dev/null 2>&1 || exit 1
Sam Hocevar's avatar
Sam Hocevar committed
98 99
  rm -f ChangeLog ChangeLog.tmp
  cvs2cl --utc --hide-filenames --no-wrap -w --stdout -g -z9 | \
100
    sed -e 's/^[^0-9]/ /' -e 's/^  *$//' | \
Sam Hocevar's avatar
Sam Hocevar committed
101 102 103 104 105 106
    uniq > ChangeLog.tmp
  YEAR=`sed -e 's/\(....\)-..-.*/\1/;q' ChangeLog.tmp`
  LASTYEAR="$((${YEAR} - 1))"
  sed -ne "/^${YEAR}-..-../,/^${LASTYEAR}-..-../{/^${LASTYEAR}-..-../d;p}" \
    < ChangeLog.tmp > Changelog
  rm -f ChangeLog.tmp
107
  exit 0
Sam Hocevar's avatar
Sam Hocevar committed
108 109
  # To generate changelog for the year 2001:
  # sed -ne '/^2001/,/^2000/{/^2000/d;p}'
110 111
fi

112 113 114
##
##  Update the MSVC project files
##
115
if test "${action}" = "vc"
116 117 118
then
  echo "generating Visual Studio files..."

Sam Hocevar's avatar
Sam Hocevar committed
119
  srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
Sam Hocevar's avatar
Sam Hocevar committed
120

121
  #  The evil ^M
Sam Hocevar's avatar
Sam Hocevar committed
122
  M="`printf '\r'`"
123

124 125 126
  #  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`
127 128
  LIBVLC_SYMBOL=`echo $LIBVLC_VERSION | sed -e 'y/.-/__/'`

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

132
  LIBVLC_HEADERS=`getfiles HEADERS_include; getfiles HEADERS_include_built`
133

134
  LIBVLC_PKG_HEADERS=`getfiles dist_pkginclude_HEADERS`
135 136 137 138

  # Clean up
  rm -f evc/*.vcp msvc/*.dsp

139 140 141 142 143 144 145 146 147 148
  # config files
  for target in evc/config.h msvc/config.h
  do
    echo "${target}"
    rm -f ${target}
    sed -e "s/@CODENAME@/${LIBVLC_CODENAME}/" \
        -e "s/@VERSION@/${LIBVLC_VERSION}/" \
        -e "s/@SYMBOL@/${LIBVLC_SYMBOL}/" < ${target}.in > ${target}
  done

149 150 151 152 153 154 155 156 157 158 159 160
  # libvlc files
  for target in evc/libvlc.vcp msvc/libvlc.dsp
  do
    echo "${target}"
    #  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}
SOURCE="..\\`echo $file | sed -e 's%/%\\\\%g'`"${M}
gbazin's avatar
 
gbazin committed
161
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
# 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
      if test "${target}" = "evc/libvlc.vcp"
      then
        cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\`echo $file | sed -e 's%/%\\\\%g'`"${M}
gbazin's avatar
 
gbazin committed
177
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
!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}
!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}
!ENDIF${M}
# End Source File${M}
EOF
        else
          cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\`echo $file | sed -e 's%/%\\\\%g'`"${M}
gbazin's avatar
 
gbazin committed
215
# ADD CPP /D "__VLC__" /D PLUGIN_PATH=\\".\\" /D DATA_PATH=\\"share\\"${M}
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
!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}
SOURCE="..\\`echo $file | sed -e 's%/%\\\\%g'`"${M}
# 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}
SOURCE="..\\`echo $file | sed -e 's%/%\\\\%g'`"${M}
# 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
  grep '^L_[^ ]*_pic =' Modules.am | while read a b c
  do
    makefile="`echo $c | sed -e 's@/[^/]*$@/Modules.am@'`"
    plugin="`echo $a | sed 's/L_\(.*\)_pic/\1/'`"
    # 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.
266
    cfiles=`grep -v '[^-_a-zA-Z0-9]*#' ${makefile} | awk 'BEGIN{a=0}{if(!a&&$0~/^SOURCES_'${plugin}'[^-_a-zA-Z0-9]*=/){a=1;print$0;next;}if(a){if($0~/^[a-zA-Z]/){exit;}print $0}}' | tr '\\ ' '\n\n' | sed -ne 's,/,\\\\,g; s/.*modules/modules/p'`
267 268 269 270 271 272 273 274 275 276 277 278 279 280
    hfiles=`for i in ${cfiles} ; do echo $i ; done | grep '\.h$'`
    cfiles=`for i in ${cfiles} ; do echo $i ; done | grep -v '\.h$'`
    for dir in evc msvc
    do
      test "${dir}" = "evc" && suf="vcp" || suf="dsp"
      source="${dir}/plugins.${suf}.in"
      target="${dir}/plugin_${plugin}.${suf}"
      echo "${target}"
      perl -pe 'if(/SOURCES/){last;} s/PLUGIN/'${plugin}'/g' < ${source} > ${target}
      for cfile in ${cfiles}
      do
        cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\${cfile}"${M}
gbazin's avatar
 
gbazin committed
281
# ADD CPP /D "__VLC__" /D "__PLUGIN__"  /D "MODULE_NAME=${plugin}" /D "MODULE_NAME_IS_${plugin}" ${M}
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
# End Source File${M}
EOF
      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
# Begin Source File${M}
SOURCE="..\\${hfile}"${M}
# End Source File${M}
EOF
      done
      # sed -ne '1,/HEADERS/d; p' < ${source} >> ${target}
      perl -e 'while(<>){if(/HEADERS/){last;}}while(<>){print $_}' < ${source} >> ${target}
    done
  done

  # vlc files
  for target in evc/vlc.vcp msvc/vlc.dsp
  do
    echo "${target}"
    #  Top of the project file
    perl -pe 'if(/SOURCES/){last;}' < ${target}.in > ${target}
    #  The source files
    if test "${target}" = "evc/vlc.vcp"
    then
      cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\evc\\vlc.c"${M}
# End Source File${M}
EOF
    else
      cat >> ${target} << EOF
# Begin Source File${M}
SOURCE="..\\src\\vlc.c"${M}
# End Source File${M}
EOF
    fi
    #  Bottom of the project file - handles resource files too
    perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
  done

  echo "done."
  exit 0
fi

##
##  Update the potfiles because no one ever does it
##
333
if test "${action}" = "po"
334
then
335 336
  # create a fake file containing win32 strings
  rm -f modules/gui/win32/strings.cpp
337 338 339 340 341 342
  #printf "/* Automatically generated by 'toolbox --update-po', please don't compile */\n" > modules/gui/win32/strings.cpp
  #find modules/gui/win32 -name '*.dfm' | while read file
  #do
  #  printf "\n/*\n * from $file:\n */\n\n" >> modules/gui/win32/strings.cpp
  #  perl -ne 'chop; chop; if( / (Caption|Text|Hint) / || $buffer =~ /[+=] *$/ ) { $buffer =~ s/\+ *$//; $buffer .= $_; } if( $buffer =~ /'"'"' *$/) { $buffer =~ s/'"'"'/"/g; $buffer =~ s/\\/\\\\/g; $buffer =~ s/=/= _(/; print $buffer." );\n"; $buffer = "";}' < $file | grep -v '"-*"' | grep -v '"http://' | grep -v '"vlcs"' >> modules/gui/win32/strings.cpp || exit 1
  #done
343 344 345 346 347
  # find out the source files
  rm -f po/POTFILES.in
  echo "# automatically created by toolbox --update-po" > po/POTFILES.in
  echo "" >> po/POTFILES.in
  echo "# main sources" >> po/POTFILES.in
Sam Hocevar's avatar
Sam Hocevar committed
348
  find include src -name '*.[chm]' -o -name '*.[ch]pp' | sort >> po/POTFILES.in
349 350
  echo "" >> po/POTFILES.in
  echo "# modules" >> po/POTFILES.in
Sam Hocevar's avatar
Sam Hocevar committed
351
  find modules -name '*.[chm]' -o -name '*.[ch]pp' | grep -v 'gui/win32/' | sort >> po/POTFILES.in
352
  # clean old potfiles
353 354
  cd po
  rm -f vlc.pot
355 356 357
  # update
  make vlc.pot || exit 1
  make update-po || exit 1
358 359 360 361 362
  cd ..

  exit 0
fi

363 364 365
##
##  Create include files
##
366
if test "${action}" = "includes"
367
then
Sam Hocevar's avatar
Sam Hocevar committed
368
  #set -x
369

Sam Hocevar's avatar
Sam Hocevar committed
370
  srcdir="`sed -ne 's/^srcdir *= *//p' < Makefile`"
371
  LIBVLC_HEADERS=`getfiles HEADERS_include`
Sam Hocevar's avatar
Sam Hocevar committed
372
  BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' vlc-config`
373

Sam Hocevar's avatar
Sam Hocevar committed
374
  file="${srcdir}/include/vlc_symbols.h"
375 376 377 378 379 380 381 382 383

  rm -f ${file}.in
  echo '/* DO NOT EDIT THIS FILE! See Makefile.am */' >> ${file}.in
  echo 'struct module_symbols_t {' >> ${file}.in
  cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/    \1 (* \2_inner) \3;/' >> ${file}.in
  echo '};' >> ${file}.in
  echo '#ifdef __PLUGIN__' >> ${file}.in
  cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/#   define \2 p_symbols->\2_inner/' >> ${file}.in
  echo '#endif /* __PLUGIN__ */' >> ${file}.in
Sam Hocevar's avatar
Sam Hocevar committed
384
  if diff >/dev/null 2>&1 ${file} ${file}.in
385 386
  then
    rm -f ${file}.in
Sam Hocevar's avatar
Sam Hocevar committed
387
  else
Sam Hocevar's avatar
Sam Hocevar committed
388
    echo "creating new ${file}"
Sam Hocevar's avatar
Sam Hocevar committed
389
    mv -f ${file}.in ${file}
390 391
  fi

Sam Hocevar's avatar
Sam Hocevar committed
392
  file="${srcdir}/src/misc/modules_plugin.h"
393 394 395 396 397 398

  rm -f ${file}.tmp && cp ${file}.in ${file}.tmp
  sed -e 's#.*\$[I][d]:.*# * Automatically generated from '${file}'.in by bootstrap#' < ${file}.in > ${file}.tmp
  echo '#define STORE_SYMBOLS( p_symbols ) \' >> ${file}.tmp
  cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/    (p_symbols)->\2_inner = \2; \\/' >> ${file}.tmp
  echo '' >> ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
399
  if diff >/dev/null 2>&1 ${file} ${file}.tmp
400 401
  then
    rm -f ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
402
  else
Sam Hocevar's avatar
Sam Hocevar committed
403
    echo "creating new ${file}"
Sam Hocevar's avatar
Sam Hocevar committed
404
    mv -f ${file}.tmp ${file}
405 406
  fi

Sam Hocevar's avatar
Sam Hocevar committed
407
  file="${srcdir}/src/misc/modules_builtin.h"
408 409

  rm -f ${file}.tmp && cp ${file}.in ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
410
  if test -n "${BUILTINS}"
411 412 413 414 415 416 417 418 419 420
  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
421
  if test -n "${BUILTINS}"
422 423 424 425 426 427 428 429
  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
430
  if diff >/dev/null 2>&1 ${file} ${file}.tmp
431 432
  then
    rm -f ${file}.tmp
Sam Hocevar's avatar
Sam Hocevar committed
433
  else
Sam Hocevar's avatar
Sam Hocevar committed
434
    echo "creating new ${file}"
Sam Hocevar's avatar
Sam Hocevar committed
435
    mv -f ${file}.tmp ${file}
436 437 438 439 440
  fi

  exit 0
fi

441 442 443
##
##  Fix glade-generated files
##
444
if test "${action}" = "glade"
445 446 447 448 449 450 451 452 453 454
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
455
    if grep "DO NOT EDIT THIS FILE" $file >/dev/null 2>&1
456 457 458 459 460 461 462 463 464
    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#' \
465
          -e 's#_(\("[a-z0-9]*://[^"]*"\))#\1#' \
466 467 468 469 470 471 472 473 474 475 476 477
          -e 's#_("---")#"---"#' \
          -e 's#_("--")#"--"#' \
          -e 's#_("/dev/dvd")#"/dev/dvd"#' \
          -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
478
    if grep "DO NOT EDIT THIS FILE" $file >/dev/null 2>&1
479 480 481 482 483 484 485 486 487 488 489 490 491 492
    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

493 494 495 496 497 498 499 500 501 502 503 504 505 506
##
##  Fix glade2-generated files
##
if test "${action}" = "glade2"
then
  for file in modules/gui/gtk2/gnome2.glade modules/gui/gtk2/gtk2.glade
  do
    echo "generating code from $file"
    glade-2 -w $file || exit 1
  done

  exit 0
fi

ipkiss's avatar
ipkiss committed
507 508 509 510 511 512 513 514 515 516 517 518 519 520
##
##  Fix flexml-generated files
##
if test "${action}" = "flexml"
then
  cd modules/gui/skins/parser
  flexml -SH -a skin.act skin.dtd
  # comment the dummy main function
  file=skin.c
  sed 's@int main@//int main@' < $file > $file.$$.bak
  mv -f $file.$$.bak $file
  flex -oflex.c -BLs skin.l
fi

521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536
##
##  Make distclean
##
if test "${action}" = "distclean"
then
  set -x
  # a naive sanity check to make sure we are in a VLC tree
  test -f vlc.spec -a -f debian/rules || exit 1
  # let's rock!
  find . -type f '(' -name '*.[oa]' -o -name '*.so' -o -name '*.sl' -o -name '*.dylib' -o -name '*.dll' -o -name .dirstamp -o -name Makefile.in -o -name 'stamp-h*' -o -name '*~' -o -name '*.bak' -o -name '*.moc.cpp' ')' -exec rm -f '{}' ';'
  (cd autotools && find . -name '[a-z]*' -exec rm -f '{}' ';')
  (cd debian && find . -type d -name '[a-z]*' -maxdepth 1 -exec rm -Rf '{}' ';')
  find msvc -type f -name '*.dsp' -exec rm -f '{}' ';'
  find evc -type f -name '*.vcp' -exec rm -f '{}' ';'
  #find . -type d -name '.deps' -exec rm -Rf '{}' ';'
  # there's some more cruft all around
537
  rm -f config.h config.log config.status
538 539 540 541 542 543
  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