djunpack.bat 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. @echo off
  2. Rem
  3. Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
  4. Rem format, or else stock DOS/Windows shells will refuse to run it.
  5. Rem
  6. Rem This batch file unpacks the GDB distribution while simultaneously
  7. Rem renaming some of the files whose names are invalid on DOS or conflict
  8. Rem with other file names after truncation to DOS 8+3 namespace.
  9. Rem
  10. Rem Invoke like this:
  11. Rem
  12. Rem djunpack gdb-XYZ.tar
  13. Rem
  14. Rem where XYZ is the version number. If the argument includes leading
  15. Rem directories, it MUST use backslashes, not forward slashes.
  16. Rem
  17. Rem The following 2 lines need to be changed with each new GDB release, to
  18. Rem be identical to the name of the top-level directory where the GDB
  19. Rem distribution unpacks itself.
  20. set GDBVER=gdb-5.0
  21. if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
  22. Rem If their environment space is too small, re-exec with a larger one
  23. command.com /e:4096 /c %0 %1
  24. GoTo End
  25. :EnvOk
  26. if not exist %1 GoTo NoArchive
  27. djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
  28. Rem The following uses a feature of COPY whereby it does not copy
  29. Rem empty files. We need that because the previous line will create
  30. Rem an empty fnchange.tmp even if the command failed for some reason.
  31. copy fnchange.tmp junk.tmp > nul
  32. if not exist junk.tmp GoTo NoDjTar
  33. del junk.tmp
  34. sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst
  35. Rem See the comment above about the reason for using COPY.
  36. copy fnchange.lst junk.tmp > nul
  37. if not exist junk.tmp GoTo NoSed
  38. del junk.tmp
  39. djtar -x -n fnchange.lst %1
  40. GoTo End
  41. :NoSed
  42. echo FAIL: Sed is not available.
  43. GoTo End
  44. :NoDjTar
  45. echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
  46. GoTo End
  47. :NoArchive
  48. echo FAIL: the file %1 does not seem to exist.
  49. echo Remember that %1 cannot use forward slashes, only backslashes.
  50. GoTo End
  51. :End
  52. set GDBVER=