8
8
VERSION = 0.42
9
9
all : flexlink.exe support
10
10
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 ) )
12
28
include $(OCAML_CONFIG_FILE )
13
29
OCAMLOPT =ocamlopt
14
30
EMPTY =
15
31
SPACE =$(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 ) ) ) ) )
17
33
ifeq ($(OCAML_VERSION ) ,)
18
34
OCAML_VERSION: =0
19
35
COMPAT_VERSION: =0
@@ -148,8 +164,8 @@ build_mingw64: flexdll_mingw64.o flexdll_initer_mingw64.o
148
164
OBJS = version.ml Compat.ml coff.ml cmdline.ml create_dll.ml reloc.ml
149
165
150
166
COMPILER-$(COMPAT_VERSION ) :
151
- rm -f COMPILER-*
152
- touch COMPILER-$(COMPAT_VERSION )
167
+ $( call RM_F, COMPILER-* )
168
+ $( TOUCH ) COMPILER-$(COMPAT_VERSION )
153
169
154
170
test_ver = $(shell if [ $(COMPAT_VERSION ) -ge $(1 ) ] ; then echo ge ; fi)
155
171
@@ -163,11 +179,15 @@ COMPAT_LEVEL = $(eval COMPAT_LEVEL := \
163
179
$$(if $$(call test_ver,40700) ,407) ) )$(COMPAT_LEVEL )
164
180
165
181
Compat.ml : Compat.ml.in COMPILER-$(COMPAT_VERSION )
182
+ ifeq ($(SHELL_IS_CMD ) ,)
166
183
sed -e '$(if $(COMPAT_LEVEL),/^$(subst $(SPACE),@\|^,$(COMPAT_LEVEL))@/d;)s/^[0-9]*@//' $< > $@
184
+ else
185
+ Compat.cmd $(COMPAT_VERSION) $< > $@
186
+ endif
167
187
168
188
flexlink.exe : $(OBJS ) $(RES )
169
189
@echo Building flexlink.exe with TOOLCHAIN=$(TOOLCHAIN ) for OCaml $(OCAML_VERSION )
170
- rm -f flexlink.exe
190
+ $( call RM_F, flexlink.exe)
171
191
$(RES_PREFIX ) $(OCAMLOPT ) -o flexlink.exe $(LINKFLAGS ) $(OBJS )
172
192
173
193
version.res : version.rc
0 commit comments