]>
Commit | Line | Data |
---|---|---|
b09a18c5 JMG |
1 | @echo off\r |
2 | Rem\r | |
3 | Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line\r | |
4 | Rem format, or else stock DOS/Windows shells will refuse to run it.\r | |
5 | Rem\r | |
6 | Rem This batch file unpacks the Bison distribution while simultaneously\r | |
7 | Rem renaming some of the files whose names are invalid on DOS or conflict\r | |
8 | Rem with other file names after truncation to DOS 8+3 namespace.\r | |
9 | Rem\r | |
10 | Rem Invoke like this:\r | |
11 | Rem\r | |
12 | Rem djunpack bison-XYZ.tar\r | |
13 | Rem\r | |
14 | Rem where XYZ is the version number. If the argument includes leading\r | |
15 | Rem directories, it MUST use backslashes, not forward slashes.\r | |
16 | Rem\r | |
17 | Rem The following 2 lines need to be changed with each new Bison release, to\r | |
18 | Rem be identical to the name of the top-level directory where the Bison\r | |
19 | Rem distribution unpacks itself.\r | |
20 | set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING\r | |
21 | if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk\r | |
22 | Rem If their environment space is too small, re-exec with a larger one\r | |
23 | command.com /e:4096 /c %0 %1\r | |
24 | GoTo End\r | |
25 | :EnvOk\r | |
26 | set ENVIRONMENT_SIZE_TEST_STRING=\r | |
27 | if "%1" == "" GoTo NoArgument\r | |
28 | if not exist %1 GoTo NoArchive\r | |
29 | Rem Extract top src dir from archive file.\r | |
30 | djtar -t %1 > top_src.dir\r | |
31 | Rem The following uses a feature of COPY whereby it does not copy\r | |
32 | Rem empty files. We need that because the previous line will create\r | |
33 | Rem an empty fnchange.tmp even if the command failed for some reason.\r | |
34 | copy top_src.dir junk.tmp > nul\r | |
35 | if not exist junk.tmp GoTo NoDjTar\r | |
36 | del junk.tmp\r | |
37 | sed "1{s/^.*bison-/djtar -x -p -o bison-/;s|$|djgpp/fnchange.lst %%1 > fnchange.tmp|};2,$d" top_src.dir > ext_list.bat\r | |
38 | Rem See the comment above about the reason for using COPY.\r | |
39 | copy ext_list.bat junk.tmp > nul\r | |
40 | if not exist junk.tmp GoTo NoSed\r | |
41 | del junk.tmp\r | |
42 | Rem Extract fnchange.lst from archive.\r | |
43 | call ext_list.bat %1\r | |
44 | del ext_list.bat\r | |
45 | sed "1{s|^.*bison-|s/@V@/bison-|;s|$|g|};2,$d" top_src.dir > version.sed\r | |
46 | sed -f version.sed < fnchange.tmp > fnchange.lst\r | |
47 | del version.sed\r | |
48 | del fnchange.tmp\r | |
49 | del top_src.dir\r | |
50 | Rem unpack the source distribution\r | |
51 | djtar -x -n fnchange.lst %1\r | |
52 | del fnchange.lst\r | |
53 | GoTo End\r | |
54 | :NoSed\r | |
55 | del junk.tmp\r | |
56 | echo FAIL: Sed is not available.\r | |
57 | GoTo End\r | |
58 | :NoDjTar\r | |
59 | del junk.tmp\r | |
60 | echo FAIL: DJTAR is not available or no fnchange.lst file in %1.\r | |
61 | GoTo End\r | |
62 | :NoArchive\r | |
63 | echo FAIL: the file %1 does not seem to exist.\r | |
64 | echo Remember that %1 cannot use forward slashes, only backslashes.\r | |
65 | GoTo End\r | |
66 | :NoArgument\r | |
67 | echo FAIL: no archive file has been specified.\r | |
68 | echo Remember that the file name cannot use forward slashes, only backslashes.\r | |
69 | :End\r |