@@ -452,14 +452,8 @@ ifeq ($(uname_S),Windows)
452452 GIT_VERSION := $(GIT_VERSION).MSVC
453453 pathsep = ;
454454 # Assume that this is built in Git for Windows' SDK
455- ifeq (MINGW32,$(MSYSTEM))
456- prefix = /mingw32
457- else
458- ifeq (CLANGARM64,$(MSYSTEM))
459- prefix = /clangarm64
460- else
461- prefix = /mingw64
462- endif
455+ ifneq (,$(MSYSTEM))
456+ prefix = $(MINGW_PREFIX)
463457 endif
464458 # Prepend MSVC 64-bit tool-chain to PATH.
465459 #
@@ -513,7 +507,7 @@ ifeq ($(uname_S),Windows)
513507 NATIVE_CRLF = YesPlease
514508 DEFAULT_HELP_FORMAT = html
515509 SKIP_DASHED_BUILT_INS = YabbaDabbaDoo
516- ifeq (/mingw64 ,$(subst 32,64,$(subst clangarm,mingw,$(prefix)) ))
510+ ifneq ( ,$(MINGW_PREFIX ))
517511 # Move system config into top-level /etc/
518512 ETC_GITCONFIG = ../etc/gitconfig
519513 ETC_GITATTRIBUTES = ../etc/gitattributes
@@ -529,7 +523,9 @@ endif
529523 compat/win32/pthread.o compat/win32/syslog.o \
530524 compat/win32/trace2_win32_process_info.o \
531525 compat/win32/dirent.o compat/win32/fscache.o compat/win32/wsl.o
532- COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DENSURE_MSYSTEM_IS_SET -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
526+ COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY \
527+ -DENSURE_MSYSTEM_IS_SET="\"$(MSYSTEM)\"" -DMINGW_PREFIX="\"$(patsubst /%,%,$(MINGW_PREFIX))\"" \
528+ -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
533529 BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO
534530 # invalidcontinue.obj allows Git's source code to close the same file
535531 # handle twice, or to access the osfhandle of an already-closed stdout
@@ -747,26 +743,25 @@ ifeq ($(uname_S),MINGW)
747743 ifneq (,$(findstring -O,$(filter-out -O0 -Og,$(CFLAGS))))
748744 BASIC_LDFLAGS += -Wl,--dynamicbase
749745 endif
750- ifeq (MINGW32,$(MSYSTEM))
751- prefix = /mingw32
752- HOST_CPU = i686
753- BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
754- endif
755- ifeq (MINGW64,$(MSYSTEM))
756- prefix = /mingw64
757- HOST_CPU = x86_64
758- BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
759- else ifeq (CLANGARM64,$(MSYSTEM))
760- prefix = /clangarm64
761- HOST_CPU = aarch64
762- BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
763- else
764- COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
765- BASIC_LDFLAGS += -Wl,--large-address-aware
746+ ifneq (,$(MSYSTEM))
747+ ifeq ($(MINGW_PREFIX),$(filter-out /%,$(MINGW_PREFIX)))
748+ # Override if empty or does not start with a slash
749+ MINGW_PREFIX := /$(shell echo '$(MSYSTEM)' | tr A-Z a-z)
750+ endif
751+ prefix = $(MINGW_PREFIX)
752+ HOST_CPU = $(patsubst %-w64-mingw32,%,$(MINGW_CHOST))
753+ BASIC_LDFLAGS += -Wl,--pic-executable
754+ COMPAT_CFLAGS += -DDETECT_MSYS_TTY \
755+ -DENSURE_MSYSTEM_IS_SET="\"$(MSYSTEM)\"" \
756+ -DMINGW_PREFIX="\"$(patsubst /%,%,$(MINGW_PREFIX))\""
757+ ifeq (MINGW32,$(MSYSTEM))
758+ BASIC_LDFLAGS += -Wl,--large-address-aware
759+ endif
760+ # Move system config into top-level /etc/
761+ ETC_GITCONFIG = ../etc/gitconfig
762+ ETC_GITATTRIBUTES = ../etc/gitattributes
766763 endif
767- CC = gcc
768- COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -DDETECT_MSYS_TTY \
769- -DENSURE_MSYSTEM_IS_SET -fstack-protector-strong
764+ COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -fstack-protector-strong
770765 EXTLIBS += -lntdll
771766 EXTRA_PROGRAMS += headless-git$X
772767 INSTALL = /bin/install
@@ -776,62 +771,6 @@ ifeq ($(uname_S),MINGW)
776771 USE_LIBPCRE = YesPlease
777772 USE_MIMALLOC = YesPlease
778773 NO_PYTHON =
779- ifeq (/mingw64,$(subst 32,64,$(subst clangarm,mingw,$(prefix))))
780- # Move system config into top-level /etc/
781- ETC_GITCONFIG = ../etc/gitconfig
782- ETC_GITATTRIBUTES = ../etc/gitattributes
783- endif
784- MINGW_PREFIX := $(subst /,,$(prefix))
785-
786- DESTDIR_WINDOWS = $(shell cygpath -aw '$(DESTDIR_SQ)')
787- DESTDIR_MIXED = $(shell cygpath -am '$(DESTDIR_SQ)')
788- install-mingit-test-artifacts:
789- install -m755 -d '$(DESTDIR_SQ)/usr/bin'
790- printf '%s\n%s\n' >'$(DESTDIR_SQ)/usr/bin/perl' \
791- "#!/mingw64/bin/busybox sh" \
792- "exec \"$(shell cygpath -am /usr/bin/perl.exe)\" \"\$$@\""
793-
794- install -m755 -d '$(DESTDIR_SQ)'
795- printf '%s%s\n%s\n%s\n%s\n%s\n' >'$(DESTDIR_SQ)/init.bat' \
796- "PATH=$(DESTDIR_WINDOWS)\\$(MINGW_PREFIX)\\bin;" \
797- "C:\\WINDOWS;C:\\WINDOWS\\system32" \
798- "@set GIT_TEST_INSTALLED=$(DESTDIR_MIXED)/$(MINGW_PREFIX)/bin" \
799- "@`echo "$(DESTDIR_WINDOWS)" | sed 's/:.*/:/'`" \
800- "@cd `echo "$(DESTDIR_WINDOWS)" | sed 's/^.://'`\\test-git\\t" \
801- "@echo Now, run 'helper\\test-run-command testsuite'"
802-
803- install -m755 -d '$(DESTDIR_SQ)/test-git'
804- sed 's/^\(NO_PERL\|NO_PYTHON\)=.*/\1=YesPlease/' \
805- <GIT-BUILD-OPTIONS >'$(DESTDIR_SQ)/test-git/GIT-BUILD-OPTIONS'
806-
807- install -m755 -d '$(DESTDIR_SQ)/test-git/t/helper'
808- install -m755 $(TEST_PROGRAMS) '$(DESTDIR_SQ)/test-git/t/helper'
809- (cd t && $(TAR) cf - t[0-9][0-9][0-9][0-9] lib-diff) | \
810- (cd '$(DESTDIR_SQ)/test-git/t' && $(TAR) xf -)
811- install -m755 t/t556x_common t/*.sh '$(DESTDIR_SQ)/test-git/t'
812-
813- install -m755 -d '$(DESTDIR_SQ)/test-git/templates'
814- (cd templates && $(TAR) cf - blt) | \
815- (cd '$(DESTDIR_SQ)/test-git/templates' && $(TAR) xf -)
816-
817- # po/build/locale for t0200
818- install -m755 -d '$(DESTDIR_SQ)/test-git/po/build/locale'
819- (cd po/build/locale && $(TAR) cf - .) | \
820- (cd '$(DESTDIR_SQ)/test-git/po/build/locale' && $(TAR) xf -)
821-
822- # git-daemon.exe for t5802, git-http-backend.exe for t5560
823- install -m755 -d '$(DESTDIR_SQ)/$(MINGW_PREFIX)/bin'
824- install -m755 git-daemon.exe git-http-backend.exe \
825- '$(DESTDIR_SQ)/$(MINGW_PREFIX)/bin'
826-
827- # git-upload-archive (dashed) for t5000
828- install -m755 -d '$(DESTDIR_SQ)/$(MINGW_PREFIX)/bin'
829- install -m755 git-upload-archive.exe '$(DESTDIR_SQ)/$(MINGW_PREFIX)/bin'
830-
831- # git-difftool--helper for t7800
832- install -m755 -d '$(DESTDIR_SQ)/$(MINGW_PREFIX)/libexec/git-core'
833- install -m755 git-difftool--helper \
834- '$(DESTDIR_SQ)/$(MINGW_PREFIX)/libexec/git-core'
835774endif
836775ifeq ($(uname_S),QNX)
837776 COMPAT_CFLAGS += -DSA_RESTART=0
0 commit comments