]> git.saurik.com Git - bison.git/blob - djgpp/djunpack.bat
Simplify y.tab.c when location tracking is disabled.
[bison.git] / djgpp / djunpack.bat
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 Bison 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 Copyright (C) 2005, 2006, 2007, 2008-2009 Free Software Foundation,
11 Rem Inc.
12 Rem
13 Rem This program is free software: you can redistribute it and/or modify
14 Rem it under the terms of the GNU General Public License as published by
15 Rem the Free Software Foundation, either version 3 of the License, or
16 Rem (at your option) any later version.
17 Rem
18 Rem This program is distributed in the hope that it will be useful,
19 Rem but WITHOUT ANY WARRANTY; without even the implied warranty of
20 Rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 Rem GNU General Public License for more details.
22 Rem
23 Rem You should have received a copy of the GNU General Public License
24 Rem along with this program. If not, see <http://www.gnu.org/licenses/>.
25 Rem
26 Rem
27 Rem Invoke like this:
28 Rem
29 Rem djunpack bison-XYZ.tar.gz
30 Rem or
31 Rem djunpack bison-XYZ.tar.bz2
32 Rem
33 Rem where XYZ is the version number. If the argument includes leading
34 Rem directories, it MUST use backslashes, not forward slashes.
35 Rem
36
37 set ENVIRONMENT_SIZE_TEST_STRING=ENVIRONMENT_SIZE_TEST_STRING
38 if "%ENVIRONMENT_SIZE_TEST_STRING%"=="ENVIRONMENT_SIZE_TEST_STRING" GoTo EnvOk
39 Rem If their environment space is too small, re-exec with a larger one
40 command.com /e:4096 /c %0 %1
41 GoTo End
42
43 :EnvOk
44 set ENVIRONMENT_SIZE_TEST_STRING=
45 if "%1" == "" GoTo NoArgument
46 if not exist %1 GoTo NoArchive
47 Rem Extract top src dir from archive file.
48 djtar -t %1 > top_src.dir
49 Rem The following uses a feature of COPY whereby it does not copy
50 Rem empty files. We need that because the previous line will create
51 Rem an empty fnchange.tmp even if the command failed for some reason.
52 copy top_src.dir junk.tmp > nul
53 if not exist junk.tmp GoTo NoDjTar
54 del junk.tmp
55 sed "1{s/^.*bison-/djtar -x -p -o bison-/;s|$|djgpp/fnchange.lst %%1 > fnchange.tmp|};2,$d" top_src.dir > ext_list.bat
56 Rem See the comment above about the reason for using COPY.
57 copy ext_list.bat junk.tmp > nul
58 if not exist junk.tmp GoTo NoSed
59 del junk.tmp
60 Rem Extract fnchange.lst from archive.
61 call ext_list.bat %1
62 del ext_list.bat
63 sed "1{s|^.*bison-|s/@V@/bison-|;s|$|g|};2,$d" top_src.dir > version.sed
64 sed -f version.sed < fnchange.tmp > fnchange.lst
65 del version.sed
66 del fnchange.tmp
67 del top_src.dir
68 Rem unpack the source distribution
69 djtar -x -n fnchange.lst %1
70 del fnchange.lst
71 GoTo End
72
73 :NoSed
74 del junk.tmp
75 echo FAIL: Sed is not available.
76 GoTo End
77 :NoDjTar
78 del junk.tmp
79 echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
80 GoTo End
81 :NoArchive
82 echo FAIL: the file %1 does not seem to exist.
83 echo Remember that %1 cannot use forward slashes, only backslashes.
84 GoTo End
85 :NoArgument
86 echo FAIL: no archive file has been specified.
87 echo Remember that the file name cannot use forward slashes, only backslashes.
88 :End