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