mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
DJGPP support added
This commit is contained in:
28
ChangeLog
28
ChangeLog
@@ -1,3 +1,31 @@
|
||||
2002-02-13 Guerrero, Juan Manuel <st001906@hrz1.hrz.tu-darmstadt.de>
|
||||
|
||||
* doc/bison.texinfo: Add DJGPP specific information about
|
||||
file name extensions used on different file systems.
|
||||
|
||||
* src/files.c (output_files): MSDOS conditional removed.
|
||||
New macro EXT_TYPE will provide at runtime the appropiate
|
||||
output file extension.
|
||||
(skeleton_find) [MSDOS]: __DJGPP__ conditional added to
|
||||
inhibit the use of DOSish code. POSIX like behaviour.
|
||||
|
||||
* src/getargs.c [AS_FILE_NAME]: __DJGPP__ conditional added.
|
||||
Check at runtime if LFN-API (case preserving) is available or not.
|
||||
Do not unconditionly convert upper case strings in lower case strings.
|
||||
|
||||
* src/system.h [MSDOS] [__GO32__]: __DJGPP__ conditional added.
|
||||
__GO32__ is obsolete and its use is deprecated.
|
||||
[MSDOS]: __DJGPP__ conditional added. Use pathconf
|
||||
to choose POSIX or DOS file extensions at run time.
|
||||
[MSDOS] [__DJGPP__]: New macro EXT_TYPE. If LFN-API is
|
||||
available, the src or header file extension (.c or .h) will be
|
||||
added to the output file name. If no LFN-API is available no src
|
||||
or header file extension will be added to the output file name.
|
||||
[MSDOS] [!__DJGPP__]: New macro EXT_TYPE. Src file and header
|
||||
file extension will never be added to the output file name.
|
||||
[!MSDOS]: New macro EXT_TYPE. Src file and header file
|
||||
extensions will always be added to the output file name.
|
||||
|
||||
2002-02-11 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* tests/regression.at (%nonassoc and eof): Don't include non
|
||||
|
||||
2
NEWS
2
NEWS
@@ -3,6 +3,8 @@ Bison News
|
||||
|
||||
Changes in version 1.33a:
|
||||
|
||||
* DJGPP support added.
|
||||
|
||||
* Fix portability problems within the test suite.
|
||||
|
||||
Changes in version 1.33, 2002-02-07:
|
||||
|
||||
@@ -304,6 +304,8 @@ Invoking Bison
|
||||
* Bison Options:: All the options described in detail,
|
||||
in alphabetical order by short options.
|
||||
* Option Cross Key:: Alphabetical list of long options.
|
||||
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||
depending on the DOS/Windows file system flavour used.
|
||||
* VMS Invocation:: Bison command syntax on VMS.
|
||||
|
||||
Copying This Manual
|
||||
@@ -5047,6 +5049,8 @@ will produce @file{output.c++} and @file{outfile.h++}.
|
||||
in alphabetical order by short options.
|
||||
* Environment Variables:: Variables which affect Bison execution.
|
||||
* Option Cross Key:: Alphabetical list of long options.
|
||||
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||
depending on the DOS/Windows file system flavour used.
|
||||
* VMS Invocation:: Bison command syntax on VMS.
|
||||
@end menu
|
||||
|
||||
@@ -5244,6 +5248,39 @@ the corresponding short option.
|
||||
@end example
|
||||
@end ifinfo
|
||||
|
||||
@node Extension Limitations Under DOS
|
||||
@section Extension Limitations under DOS
|
||||
@cindex extension limitations under DOS
|
||||
@cindex DOS
|
||||
|
||||
On DOS/Windows 9X systems the file name extensions of the output files,
|
||||
like @file{.tab.c}, that may be used depend on the file system in use.
|
||||
The plain DOS file system has limited file name length, does not allow
|
||||
the use of a set of certain illicit characters and does not allow more
|
||||
than a single dot in the file name.
|
||||
|
||||
The DJGPP port of @code{bison} will detect at runtime if (LFN) long file name
|
||||
support is available or not. LFN support will be available in a DOS session
|
||||
under Windows 9X and successors. Windows NT 4.0 needs a special LFN driver
|
||||
(@file(ntlfn08b.zip) or later available at any simtelnet mirror in the /v2misc
|
||||
dir) for proper LFN support in a DOS session. If LFN support is available the
|
||||
DJGPP port of @code{bison} will use the standard POSIX file name extensions
|
||||
of the output files. If LFN support is not available, then the DJGPP port
|
||||
of @code{bison} will use DOS specific file name extensions.
|
||||
|
||||
@noindent This table summarizes the used extensions:
|
||||
|
||||
@multitable @columnfractions 0.1 0.45 0.45
|
||||
@item @tab LFN extension (Win9X) @tab SFN extension (plain DOS)
|
||||
@item @tab @file{.tab.c} @tab @file{_tab.c}
|
||||
@item @tab @file{.tab.h} @tab @file{_tab.h}
|
||||
@item @tab @file{.tab.cpp} @tab @file{_tab.cpp}
|
||||
@item @tab @file{.tab.hpp} @tab @file{_tab.hpp}
|
||||
@item @tab @file{.output} @tab @file{.out}
|
||||
@item @tab @file{.stype.h} @tab @file{.sth}
|
||||
@item @tab @file{.guard.c} @tab @file{.guc}
|
||||
@end multitable
|
||||
|
||||
@node VMS Invocation
|
||||
@section Invoking Bison under VMS
|
||||
@cindex invoking Bison under VMS
|
||||
|
||||
12
src/files.c
12
src/files.c
@@ -214,7 +214,7 @@ skeleton_find (const char *envvar, const char *skeleton_name)
|
||||
{
|
||||
const char *res = getenv (envvar);
|
||||
|
||||
#if defined (MSDOS) || defined (_WIN32)
|
||||
#if (defined (MSDOS) && !defined(__DJGPP__)) || defined (_WIN32)
|
||||
const char *cp = getenv ("INIT");
|
||||
if (!res)
|
||||
{
|
||||
@@ -249,7 +249,7 @@ skeleton_find (const char *envvar, const char *skeleton_name)
|
||||
strcpy (res + (cp - program_name), skel_name);
|
||||
}
|
||||
}
|
||||
#endif /* defined (MSDOS) || defined (_WIN32) */
|
||||
#endif /* (defined (MSDOS) && !defined (__DJGPP__)) || defined (_WIN32) */
|
||||
if (!res)
|
||||
res = skeleton_name;
|
||||
|
||||
@@ -452,9 +452,7 @@ compute_output_file_names (void)
|
||||
spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
|
||||
|
||||
attrsfile = stringappend (short_base_name, EXT_STYPE_H);
|
||||
#ifndef MSDOS
|
||||
attrsfile = stringappend (attrsfile, header_extension);
|
||||
#endif /* MSDOS */
|
||||
attrsfile = stringappend (attrsfile, EXT_TYPE (header_extension));
|
||||
|
||||
}
|
||||
|
||||
@@ -523,9 +521,7 @@ output_files (void)
|
||||
obstack_save (&attrs_obstack, attrsfile);
|
||||
obstack_free (&attrs_obstack, NULL);
|
||||
temp_name = stringappend (short_base_name, EXT_GUARD_C);
|
||||
#ifndef MSDOS
|
||||
temp_name = stringappend (temp_name, src_extension);
|
||||
#endif /* MSDOS */
|
||||
temp_name = stringappend (temp_name, EXT_TYPE (src_extension));
|
||||
obstack_save (&guard_obstack, temp_name);
|
||||
obstack_free (&guard_obstack, NULL);
|
||||
}
|
||||
|
||||
@@ -160,10 +160,15 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
|
||||
| Process the options. |
|
||||
`----------------------*/
|
||||
|
||||
/* Under DOS, there is no difference on the case. This can be
|
||||
/* Under plain DOS, there is no difference on the case. This can be
|
||||
troublesome when looking for `.tab' etc. */
|
||||
#ifdef MSDOS
|
||||
# define AS_FILE_NAME(File) (strlwr (File), (File))
|
||||
# if defined (__DJGPP__)
|
||||
/* Windows 9X and successors are case sensitive. */
|
||||
# define AS_FILE_NAME(File) ((pathconf ((File), _PC_NAME_MAX) > 12) ? (File) : (strlwr (File), (File)))
|
||||
# else
|
||||
# define AS_FILE_NAME(File) (strlwr (File), (File))
|
||||
# endif
|
||||
#else
|
||||
# define AS_FILE_NAME(File) (File)
|
||||
#endif
|
||||
|
||||
24
src/system.h
24
src/system.h
@@ -239,7 +239,7 @@ do { \
|
||||
# define MINSHORT -32768
|
||||
#endif
|
||||
|
||||
#if defined (MSDOS) && !defined (__GO32__)
|
||||
#if defined (MSDOS) && !defined (__GO32__) && !defined (__DJGPP__)
|
||||
# define BITS_PER_WORD 16
|
||||
# define MAXTABLE 16383
|
||||
#else
|
||||
@@ -261,19 +261,31 @@ do { \
|
||||
# define EXT_OUTPUT ".output"
|
||||
# define EXT_STYPE_H "_stype"
|
||||
# define EXT_GUARD_C "_guard"
|
||||
# define EXT_TYPE(ext) (ext)
|
||||
#else /* ! VMS */
|
||||
# ifdef MSDOS
|
||||
/* MS DOS. */
|
||||
# define EXT_TAB "_tab"
|
||||
# define EXT_OUTPUT ".out"
|
||||
# define EXT_STYPE_H ".sth"
|
||||
# define EXT_GUARD_C ".guc"
|
||||
# if defined (__DJGPP__)
|
||||
/* DJGPP */
|
||||
# define EXT_TAB ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".tab" : "_tab")
|
||||
# define EXT_OUTPUT ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".output" : ".out")
|
||||
# define EXT_STYPE_H ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".stype" : ".sth")
|
||||
# define EXT_GUARD_C ((pathconf (NULL, _PC_NAME_MAX) > 12) ? ".guard" : ".guc")
|
||||
# define EXT_TYPE(ext) ((pathconf (NULL, _PC_NAME_MAX) > 12) ? (ext) : "")
|
||||
# else /* ! __DJGPP__ */
|
||||
/* MS DOS. */
|
||||
# define EXT_TAB "_tab"
|
||||
# define EXT_OUTPUT ".out"
|
||||
# define EXT_STYPE_H ".sth"
|
||||
# define EXT_GUARD_C ".guc"
|
||||
# define EXT_TYPE(ext) ""
|
||||
# endif
|
||||
# else /* ! MSDOS */
|
||||
/* Standard. */
|
||||
# define EXT_TAB ".tab"
|
||||
# define EXT_OUTPUT ".output"
|
||||
# define EXT_STYPE_H ".stype"
|
||||
# define EXT_GUARD_C ".guard"
|
||||
# define EXT_TYPE(ext) (ext)
|
||||
# endif /* ! MSDOS */
|
||||
#endif /* ! VMS */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user