diff --git a/llvm/Makefile.config.in b/llvm/Makefile.config.in index d066e772cbb0..94dce300bbf3 100644 --- a/llvm/Makefile.config.in +++ b/llvm/Makefile.config.in @@ -265,3 +265,11 @@ BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@ ALL_BINDINGS := @ALL_BINDINGS@ OCAML_LIBDIR := @OCAML_LIBDIR@ +# When compiling under Mingw/Cygwin, executables such as tblgen +# expect Windows paths, whereas the build system uses Unix paths. +# The function SYSPATH transforms Unix paths into Windows paths. +ifneq (,$(findstring -mno-cygwin, $(CXX))) + SYSPATH = $(shell echo $(1) | cygpath -m -f -) +else + SYSPATH = $(1) +endif diff --git a/llvm/lib/VMCore/Makefile b/llvm/lib/VMCore/Makefile index 2e283ec10cd7..35ef865b8f15 100644 --- a/llvm/lib/VMCore/Makefile +++ b/llvm/lib/VMCore/Makefile @@ -21,7 +21,7 @@ INTRINSICTDS := $(wildcard $(PROJ_SRC_ROOT)/include/llvm/Intrinsics*.td) $(ObjDir)/Intrinsics.gen.tmp: $(ObjDir)/.dir $(INTRINSICTDS) $(TBLGEN) $(Echo) Building Intrinsics.gen.tmp from Intrinsics.td - $(Verb) $(TableGen) $(INTRINSICTD) -o $@ -gen-intrinsic + $(Verb) $(TableGen) $(call SYSPATH, $(INTRINSICTD)) -o $(call SYSPATH, $@) -gen-intrinsic $(GENFILE): $(ObjDir)/Intrinsics.gen.tmp $(Verb) $(CMP) -s $@ $< || ( $(CP) $< $@ && \