88VERSION = 0.42
99all : flexlink.exe support
1010
11- OCAML_CONFIG_FILE =$(shell cygpath -ad "$(shell ocamlopt -where 2>/dev/null) /Makefile.config" 2>/dev/null)
11+ export override OCAML_DETECT_CMD = detect
12+ SHELL_IS_CMD := \
13+ $(if $(filter % OCAML_DETECT_CMD% , $(shell echo % OCAML_DETECT_CMD% ) ) ,,true)
14+ unexport OCAML_DETECT_CMD
15+ undefine DETECT_WINDOWS_SHELL
16+
17+ NULL_DEVICE := $(if $(SHELL_IS_CMD ) , NUL, /dev/null)
18+
19+ ifeq ($(SHELL_IS_CMD ) ,)
20+ RM_F = rm -f $(1 )
21+ TOUCH = touch
22+ else
23+ RM_F = $(if $(wildcard $(1 ) ) ,del /f $(subst /,\,$(wildcard ($1) ) ) )
24+ TOUCH = type NUL >
25+ endif
26+
27+ OCAML_CONFIG_FILE =$(shell cygpath -ad "$(shell ocamlopt -where 2>$(NULL_DEVICE ) ) /Makefile.config" 2>$(NULL_DEVICE ) )
1228include $(OCAML_CONFIG_FILE )
1329OCAMLOPT =ocamlopt
1430EMPTY =
1531SPACE =$(EMPTY ) $(EMPTY )
16- OCAML_VERSION: =$(firstword $(subst ~, ,$(subst +, ,$(shell $(OCAMLOPT ) -version 2>/dev/null ) ) ) )
32+ OCAML_VERSION: =$(firstword $(subst ~, ,$(subst +, ,$(shell $(OCAMLOPT ) -version 2>$( NULL_DEVICE ) ) ) ) )
1733ifeq ($(OCAML_VERSION ) ,)
1834OCAML_VERSION: =0
1935COMPAT_VERSION: =0
@@ -144,8 +160,8 @@ build_mingw64: flexdll_mingw64.o flexdll_initer_mingw64.o
144160OBJS = version.ml Compat.ml coff.ml cmdline.ml create_dll.ml reloc.ml
145161
146162COMPILER-$(COMPAT_VERSION ) :
147- rm -f COMPILER-*
148- touch COMPILER-$(COMPAT_VERSION )
163+ $( call RM_F, COMPILER-* )
164+ $( TOUCH ) COMPILER-$(COMPAT_VERSION )
149165
150166test_ver = $(shell if [ $(COMPAT_VERSION ) -ge $(1 ) ] ; then echo ge ; fi)
151167
@@ -159,11 +175,15 @@ COMPAT_LEVEL = $(eval COMPAT_LEVEL := \
159175 $$(if $$(call test_ver,40700) ,407) ) )$(COMPAT_LEVEL )
160176
161177Compat.ml : Compat.ml.in COMPILER-$(COMPAT_VERSION )
178+ ifeq ($(SHELL_IS_CMD ) ,)
162179 sed -e '$(if $(COMPAT_LEVEL),/^$(subst $(SPACE),@\|^,$(COMPAT_LEVEL))@/d;)s/^[0-9]*@//' $< > $@
180+ else
181+ Compat.cmd $(COMPAT_VERSION) $< > $@
182+ endif
163183
164184flexlink.exe : $(OBJS ) $(RES )
165185 @echo Building flexlink.exe with TOOLCHAIN=$(TOOLCHAIN ) for OCaml $(OCAML_VERSION )
166- rm -f flexlink.exe
186+ $( call RM_F, flexlink.exe)
167187 $(RES_PREFIX ) $(OCAMLOPT ) -o flexlink.exe $(LINKFLAGS ) $(OBJS )
168188
169189version.res : version.rc
0 commit comments