329 lines
7.3 KiB
C
329 lines
7.3 KiB
C
/* tailor.h -- target dependent definitions
|
|
* Copyright (C) 1992-1993 Jean-loup Gailly.
|
|
* This is free software; you can redistribute it and/or modify it under the
|
|
* terms of the GNU General Public License, see the file COPYING.
|
|
*/
|
|
|
|
/* The target dependent definitions should be defined here only.
|
|
* The target dependent functions should be defined in tailor.c.
|
|
*/
|
|
|
|
/* $Id: tailor.h,v 1.2 1993/10/15 23:05:48 jtc Exp $ */
|
|
|
|
#if defined(__MSDOS__) && !defined(MSDOS)
|
|
# define MSDOS
|
|
#endif
|
|
|
|
#if defined(__OS2__) && !defined(OS2)
|
|
# define OS2
|
|
#endif
|
|
|
|
#if defined(OS2) && defined(MSDOS) /* MS C under OS/2 */
|
|
# undef MSDOS
|
|
#endif
|
|
|
|
#ifdef MSDOS
|
|
# ifdef __GNUC__
|
|
/* DJGPP version 1.09+ on MS-DOS.
|
|
* The DJGPP 1.09 stat() function must be upgraded before gzip will
|
|
* fully work.
|
|
* No need for DIRENT, since <unistd.h> defines POSIX_SOURCE which
|
|
* implies DIRENT.
|
|
*/
|
|
# define near
|
|
# else
|
|
# define MAXSEG_64K
|
|
# ifdef __TURBOC__
|
|
# define NO_OFF_T
|
|
# ifdef __BORLANDC__
|
|
# define DIRENT
|
|
# else
|
|
# define NO_UTIME
|
|
# endif
|
|
# else /* MSC */
|
|
# define HAVE_SYS_UTIME_H
|
|
# define NO_UTIME_H
|
|
# endif
|
|
# endif
|
|
# define PATH_SEP2 '\\'
|
|
# define PATH_SEP3 ':'
|
|
# define MAX_PATH_LEN 128
|
|
# define NO_MULTIPLE_DOTS
|
|
# define MAX_EXT_CHARS 3
|
|
# define Z_SUFFIX "z"
|
|
# define NO_CHOWN
|
|
# define PROTO
|
|
# define STDC_HEADERS
|
|
# define NO_SIZE_CHECK
|
|
# define casemap(c) tolow(c) /* Force file names to lower case */
|
|
# include <io.h>
|
|
# define OS_CODE 0x00
|
|
# define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
|
|
# if !defined(NO_ASM) && !defined(ASMV)
|
|
# define ASMV
|
|
# endif
|
|
#else
|
|
# define near
|
|
#endif
|
|
|
|
#ifdef OS2
|
|
# define PATH_SEP2 '\\'
|
|
# define PATH_SEP3 ':'
|
|
# define MAX_PATH_LEN 260
|
|
# ifdef OS2FAT
|
|
# define NO_MULTIPLE_DOTS
|
|
# define MAX_EXT_CHARS 3
|
|
# define Z_SUFFIX "z"
|
|
# define casemap(c) tolow(c)
|
|
# endif
|
|
# define NO_CHOWN
|
|
# define PROTO
|
|
# define STDC_HEADERS
|
|
# include <io.h>
|
|
# define OS_CODE 0x06
|
|
# define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
|
|
# ifdef _MSC_VER
|
|
# define HAVE_SYS_UTIME_H
|
|
# define NO_UTIME_H
|
|
# define MAXSEG_64K
|
|
# undef near
|
|
# define near _near
|
|
# endif
|
|
# ifdef __EMX__
|
|
# define HAVE_SYS_UTIME_H
|
|
# define NO_UTIME_H
|
|
# define DIRENT
|
|
# define EXPAND(argc,argv) \
|
|
{_response(&argc, &argv); _wildcard(&argc, &argv);}
|
|
# endif
|
|
# ifdef __BORLANDC__
|
|
# define DIRENT
|
|
# endif
|
|
# ifdef __ZTC__
|
|
# define NO_DIR
|
|
# define NO_UTIME_H
|
|
# include <dos.h>
|
|
# define EXPAND(argc,argv) \
|
|
{response_expand(&argc, &argv);}
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef WIN32 /* Windows NT */
|
|
# define HAVE_SYS_UTIME_H
|
|
# define NO_UTIME_H
|
|
# define PATH_SEP2 '\\'
|
|
# define PATH_SEP3 ':'
|
|
# define MAX_PATH_LEN 260
|
|
# define NO_CHOWN
|
|
# define PROTO
|
|
# define STDC_HEADERS
|
|
# define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
|
|
# include <io.h>
|
|
# include <malloc.h>
|
|
# ifdef NTFAT
|
|
# define NO_MULTIPLE_DOTS
|
|
# define MAX_EXT_CHARS 3
|
|
# define Z_SUFFIX "z"
|
|
# define casemap(c) tolow(c) /* Force file names to lower case */
|
|
# endif
|
|
# define OS_CODE 0x0b
|
|
#endif
|
|
|
|
#ifdef MSDOS
|
|
# ifdef __TURBOC__
|
|
# include <alloc.h>
|
|
# define DYN_ALLOC
|
|
/* Turbo C 2.0 does not accept static allocations of large arrays */
|
|
void * fcalloc (unsigned items, unsigned size);
|
|
void fcfree (void *ptr);
|
|
# else /* MSC */
|
|
# include <malloc.h>
|
|
# define fcalloc(nitems,itemsize) halloc((long)(nitems),(itemsize))
|
|
# define fcfree(ptr) hfree(ptr)
|
|
# endif
|
|
#else
|
|
# ifdef MAXSEG_64K
|
|
# define fcalloc(items,size) calloc((items),(size))
|
|
# else
|
|
# define fcalloc(items,size) malloc((size_t)(items)*(size_t)(size))
|
|
# endif
|
|
# define fcfree(ptr) free(ptr)
|
|
#endif
|
|
|
|
#if defined(VAXC) || defined(VMS)
|
|
# define PATH_SEP ']'
|
|
# define PATH_SEP2 ':'
|
|
# define SUFFIX_SEP ';'
|
|
# define NO_MULTIPLE_DOTS
|
|
# define Z_SUFFIX "-gz"
|
|
# define RECORD_IO 1
|
|
# define casemap(c) tolow(c)
|
|
# define OS_CODE 0x02
|
|
# define OPTIONS_VAR "GZIP_OPT"
|
|
# define STDC_HEADERS
|
|
# define NO_UTIME
|
|
# define EXPAND(argc,argv) vms_expand_args(&argc,&argv);
|
|
# include <file.h>
|
|
# define unlink delete
|
|
# ifdef VAXC
|
|
# define NO_FCNTL_H
|
|
# include <unixio.h>
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef AMIGA
|
|
# define PATH_SEP2 ':'
|
|
# define STDC_HEADERS
|
|
# define OS_CODE 0x01
|
|
# define ASMV
|
|
# ifdef __GNUC__
|
|
# define DIRENT
|
|
# define HAVE_UNISTD_H
|
|
# else /* SASC */
|
|
# define NO_STDIN_FSTAT
|
|
# define SYSDIR
|
|
# define NO_SYMLINK
|
|
# define NO_CHOWN
|
|
# define NO_FCNTL_H
|
|
# include <fcntl.h> /* for read() and write() */
|
|
# define direct dirent
|
|
extern void _expand_args(int *argc, char ***argv);
|
|
# define EXPAND(argc,argv) _expand_args(&argc,&argv);
|
|
# undef O_BINARY /* disable useless --ascii option */
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(ATARI) || defined(atarist)
|
|
# ifndef STDC_HEADERS
|
|
# define STDC_HEADERS
|
|
# define HAVE_UNISTD_H
|
|
# define DIRENT
|
|
# endif
|
|
# define ASMV
|
|
# define OS_CODE 0x05
|
|
# ifdef TOSFS
|
|
# define PATH_SEP2 '\\'
|
|
# define PATH_SEP3 ':'
|
|
# define MAX_PATH_LEN 128
|
|
# define NO_MULTIPLE_DOTS
|
|
# define MAX_EXT_CHARS 3
|
|
# define Z_SUFFIX "z"
|
|
# define NO_CHOWN
|
|
# define casemap(c) tolow(c) /* Force file names to lower case */
|
|
# define NO_SYMLINK
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef MACOS
|
|
# define PATH_SEP ':'
|
|
# define DYN_ALLOC
|
|
# define PROTO
|
|
# define NO_STDIN_FSTAT
|
|
# define NO_CHOWN
|
|
# define NO_UTIME
|
|
# define chmod(file, mode) (0)
|
|
# define OPEN(name, flags, mode) open(name, flags)
|
|
# define OS_CODE 0x07
|
|
# ifdef MPW
|
|
# define isatty(fd) ((fd) <= 2)
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef __50SERIES /* Prime/PRIMOS */
|
|
# define PATH_SEP '>'
|
|
# define STDC_HEADERS
|
|
# define NO_MEMORY_H
|
|
# define NO_UTIME_H
|
|
# define NO_UTIME
|
|
# define NO_CHOWN
|
|
# define NO_STDIN_FSTAT
|
|
# define NO_SIZE_CHECK
|
|
# define NO_SYMLINK
|
|
# define RECORD_IO 1
|
|
# define casemap(c) tolow(c) /* Force file names to lower case */
|
|
# define put_char(c) put_byte((c) & 0x7F)
|
|
# define get_char(c) ascii2pascii(get_byte())
|
|
# define OS_CODE 0x0F /* temporary, subject to change */
|
|
# ifdef SIGTERM
|
|
# undef SIGTERM /* We don't want a signal handler for SIGTERM */
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(pyr) && !defined(NOMEMCPY) /* Pyramid */
|
|
# define NOMEMCPY /* problem with overlapping copies */
|
|
#endif
|
|
|
|
#ifdef TOPS20
|
|
# define OS_CODE 0x0a
|
|
#endif
|
|
|
|
#ifndef unix
|
|
# define NO_ST_INO /* don't rely on inode numbers */
|
|
#endif
|
|
|
|
|
|
/* Common defaults */
|
|
|
|
#ifndef OS_CODE
|
|
# define OS_CODE 0x03 /* assume Unix */
|
|
#endif
|
|
|
|
#ifndef PATH_SEP
|
|
# define PATH_SEP '/'
|
|
#endif
|
|
|
|
#ifndef casemap
|
|
# define casemap(c) (c)
|
|
#endif
|
|
|
|
#ifndef OPTIONS_VAR
|
|
# define OPTIONS_VAR "GZIP"
|
|
#endif
|
|
|
|
#ifndef Z_SUFFIX
|
|
# define Z_SUFFIX ".gz"
|
|
#endif
|
|
|
|
#ifdef MAX_EXT_CHARS
|
|
# define MAX_SUFFIX MAX_EXT_CHARS
|
|
#else
|
|
# define MAX_SUFFIX 30
|
|
#endif
|
|
|
|
#ifndef MAKE_LEGAL_NAME
|
|
# ifdef NO_MULTIPLE_DOTS
|
|
# define MAKE_LEGAL_NAME(name) make_simple_name(name)
|
|
# else
|
|
# define MAKE_LEGAL_NAME(name)
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef MIN_PART
|
|
# define MIN_PART 3
|
|
/* keep at least MIN_PART chars between dots in a file name. */
|
|
#endif
|
|
|
|
#ifndef EXPAND
|
|
# define EXPAND(argc,argv)
|
|
#endif
|
|
|
|
#ifndef RECORD_IO
|
|
# define RECORD_IO 0
|
|
#endif
|
|
|
|
#ifndef SET_BINARY_MODE
|
|
# define SET_BINARY_MODE(fd)
|
|
#endif
|
|
|
|
#ifndef OPEN
|
|
# define OPEN(name, flags, mode) open(name, flags, mode)
|
|
#endif
|
|
|
|
#ifndef get_char
|
|
# define get_char() get_byte()
|
|
#endif
|
|
|
|
#ifndef put_char
|
|
# define put_char(c) put_byte(c)
|
|
#endif
|