diff --git a/Makefile b/Makefile index 334fe4ec41..3046056024 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,9 @@ all: # # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent. # +# Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks +# d_type in struct dirent (latest Cygwin -- will be fixed soonish). +# # Define NO_STRCASESTR if you don't have strcasestr. # # Define NO_SETENV if you don't have setenv in the C library. @@ -236,6 +239,7 @@ ifeq ($(uname_S),SunOS) ALL_CFLAGS += -D__EXTENSIONS__ endif ifeq ($(uname_O),Cygwin) + NO_D_TYPE_IN_DIRENT = YesPlease NO_D_INO_IN_DIRENT = YesPlease NO_STRCASESTR = YesPlease NEEDS_LIBICONV = YesPlease @@ -337,6 +341,9 @@ ifdef NEEDS_NSL LIBS += -lnsl SIMPLE_LIB += -lnsl endif +ifdef NO_D_TYPE_IN_DIRENT + ALL_CFLAGS += -DNO_D_TYPE_IN_DIRENT +endif ifdef NO_D_INO_IN_DIRENT ALL_CFLAGS += -DNO_D_INO_IN_DIRENT endif diff --git a/cache.h b/cache.h index 29c9e819d6..3d79c55a29 100644 --- a/cache.h +++ b/cache.h @@ -10,7 +10,7 @@ #define deflateBound(c,s) ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11) #endif -#ifdef DT_UNKNOWN +#if defined(DT_UNKNOWN) && !NO_D_TYPE_IN_DIRENT #define DTYPE(de) ((de)->d_type) #else #define DT_UNKNOWN 0