@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= |