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