• Æ
    Makefile & configure: add a NO_FNMATCH_CASEFOLD flag · 4de066b6
    Ævar Arnfjörð Bjarmason 提交于
    On some platforms (like Solaris) there is a fnmatch, but it doesn't
    support the GNU FNM_CASEFOLD extension that's used by the
    jj/icase-directory series' fnmatch_icase wrapper.
    
    Change the Makefile so that it's now possible to set
    NO_FNMATCH_CASEFOLD=YesPlease on those systems, and add a configure
    probe for it.
    
    Unlike the NO_REGEX check we don't add AC_INCLUDES_DEFAULT to our
    headers. This is because on a GNU system the definition of
    FNM_CASEFOLD in fnmatch.h is guarded by:
    
        #if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
    
    One of the headers AC_INCLUDES_DEFAULT includes ends up defining one
    of those, so if we'd use it we'd always get
    NO_FNMATCH_CASEFOLD=YesPlease on GNU systems, even though they have
    FNM_CASEFOLD.
    
    When checking the flags we use:
    
        ifdef NO_FNMATCH
        ...
        else
        ifdef NO_FNMATCH_CASEFOLD
        ...
        endif
        endif
    
    The "else" so that we don't link against compat/fnmatch/fnmatch.o
    twice if both NO_FNMATCH and NO_FNMATCH_CASEFOLD are defined.
    Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    4de066b6
config.mak.in 1.7 KB