| @echo off |
| Rem |
| Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line |
| Rem format, or else stock DOS/Windows shells will refuse to run it. |
| Rem |
| Rem This batch file unpacks the GDB distribution while simultaneously |
| Rem renaming some of the files whose names are invalid on DOS or conflict |
| Rem with other file names after truncation to DOS 8+3 namespace. |
| Rem |
| Rem Invoke like this: |
| Rem |
| Rem djunpack gdb-XYZ.tar |
| Rem |
| Rem where XYZ is the version number. If the argument includes leading |
| Rem directories, it MUST use backslashes, not forward slashes. |
| Rem |
| Rem The following 2 lines need to be changed with each new GDB release, to |
| Rem be identical to the name of the top-level directory where the GDB |
| Rem distribution unpacks itself. |
| set GDBVER=gdb-5.0 |
| if "%GDBVER%"=="gdb-5.0" GoTo EnvOk |
| Rem If their environment space is too small, re-exec with a larger one |
| command.com /e:4096 /c %0 %1 |
| GoTo End |
| :EnvOk |
| if not exist %1 GoTo NoArchive |
| djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp |
| Rem The following uses a feature of COPY whereby it does not copy |
| Rem empty files. We need that because the previous line will create |
| Rem an empty fnchange.tmp even if the command failed for some reason. |
| copy fnchange.tmp junk.tmp > nul |
| if not exist junk.tmp GoTo NoDjTar |
| del junk.tmp |
| sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst |
| Rem See the comment above about the reason for using COPY. |
| copy fnchange.lst junk.tmp > nul |
| if not exist junk.tmp GoTo NoSed |
| del junk.tmp |
| djtar -x -n fnchange.lst %1 |
| GoTo End |
| :NoSed |
| echo FAIL: Sed is not available. |
| GoTo End |
| :NoDjTar |
| echo FAIL: DJTAR is not available or no fnchange.lst file in %1. |
| GoTo End |
| :NoArchive |
| echo FAIL: the file %1 does not seem to exist. |
| echo Remember that %1 cannot use forward slashes, only backslashes. |
| GoTo End |
| :End |
| set GDBVER= |