@matheusbsbs / matheus-bagliano / commits / f3f3d9366e
Fork 0

Makefile & configure: add a NO_FNMATCH flag

Windows and MinGW both lack fnmatch() in their C library and needed compat/fnmatch, but they had duplicate code for adding the compat function, and there was no Makefile flag or configure check for fnmatch. Change the Makefile it so that it's now possible to compile the compat function with a NO_FNMATCH=YesPlease flag, and add a configure probe for it. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed Oct 3, 2010 at 09:56 UTC f3f3d9366edc4c150c59df929198a77ecdf69cfd
3 files changed +20 -5
Makefile
+13 -5
@@ -68,6 +68,8 @@ all::
68 #
69 # Define NO_MKSTEMPS if you don't have mkstemps in the C library.
70 #
71 +# Define NO_FNMATCH if you don't have fnmatch in the C library.
72 +#
73 # Define NO_LIBGEN_H if you don't have libgen.h.
74 #
75 # Define NEEDS_LIBGEN if your libgen needs -lgen when linking
@@ -1035,6 +1037,7 @@ ifeq ($(uname_S),Windows)
1037 NO_UNSETENV = YesPlease
1038 NO_STRCASESTR = YesPlease
1039 NO_STRLCPY = YesPlease
1040 + NO_FNMATCH = YesPlease
1041 NO_MEMMEM = YesPlease
1042 # NEEDS_LIBICONV = YesPlease
1043 NO_ICONV = YesPlease
@@ -1064,8 +1067,8 @@ ifeq ($(uname_S),Windows)
1067 AR = compat/vcbuild/scripts/lib.pl
1068 CFLAGS =
1069 BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
1067 - COMPAT_OBJS = compat/msvc.o compat/fnmatch/fnmatch.o compat/winansi.o compat/win32/pthread.o
1068 - COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/fnmatch -Icompat/regex -Icompat/fnmatch -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
1070 + COMPAT_OBJS = compat/msvc.o compat/winansi.o compat/win32/pthread.o
1071 + COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
1072 BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
1073 EXTLIBS = advapi32.lib shell32.lib wininet.lib ws2_32.lib
1074 PTHREAD_LIBS =
@@ -1089,6 +1092,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
1092 NO_UNSETENV = YesPlease
1093 NO_STRCASESTR = YesPlease
1094 NO_STRLCPY = YesPlease
1095 + NO_FNMATCH = YesPlease
1096 NO_MEMMEM = YesPlease
1097 NEEDS_LIBICONV = YesPlease
1098 OLD_ICONV = YesPlease
@@ -1109,10 +1113,9 @@ ifneq (,$(findstring MINGW,$(uname_S)))
1113 NO_REGEX = YesPlease
1114 NO_PYTHON = YesPlease
1115 BLK_SHA1 = YesPlease
1112 - COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/fnmatch -Icompat/win32
1116 + COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/win32
1117 COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
1114 - COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/winansi.o \
1115 - compat/win32/pthread.o
1118 + COMPAT_OBJS += compat/mingw.o compat/winansi.o compat/win32/pthread.o
1119 EXTLIBS += -lws2_32
1120 PTHREAD_LIBS =
1121 X = .exe
@@ -1319,6 +1322,11 @@ endif
1322 ifdef NO_STRTOULL
1323 COMPAT_CFLAGS += -DNO_STRTOULL
1324 endif
1325 +ifdef NO_FNMATCH
1326 + COMPAT_CFLAGS += -Icompat/fnmatch
1327 + COMPAT_CFLAGS += -DNO_FNMATCH
1328 + COMPAT_OBJS += compat/fnmatch/fnmatch.o
1329 +endif
1330 ifdef NO_SETENV
1331 COMPAT_CFLAGS += -DNO_SETENV
1332 COMPAT_OBJS += compat/setenv.o
config.mak.in
+1
@@ -46,6 +46,7 @@ NO_IPV6=@NO_IPV6@
46 NO_C99_FORMAT=@NO_C99_FORMAT@
47 NO_HSTRERROR=@NO_HSTRERROR@
48 NO_STRCASESTR=@NO_STRCASESTR@
49 +NO_FNMATCH=@NO_FNMATCH@
50 NO_MEMMEM=@NO_MEMMEM@
51 NO_STRLCPY=@NO_STRLCPY@
52 NO_UINTMAX_T=@NO_UINTMAX_T@
configure.ac
+6
@@ -783,6 +783,12 @@ GIT_CHECK_FUNC(strcasestr,
783 [NO_STRCASESTR=YesPlease])
784 AC_SUBST(NO_STRCASESTR)
785 #
786 +# Define NO_FNMATCH if you don't have fnmatch
787 +GIT_CHECK_FUNC(fnmatch,
788 +[NO_FNMATCH=],
789 +[NO_FNMATCH=YesPlease])
790 +AC_SUBST(NO_FNMATCH)
791 +#
792 # Define NO_MEMMEM if you don't have memmem.
793 GIT_CHECK_FUNC(memmem,
794 [NO_MEMMEM=],