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
@@ -144,8 +160,8 @@ build_mingw64: flexdll_mingw64.o flexdll_initer_mingw64.o
144
160
OBJS = version.ml Compat.ml coff.ml cmdline.ml create_dll.ml reloc.ml
145
161
146
162
COMPILER-$(COMPAT_VERSION ) :
147
- rm -f COMPILER-*
148
- touch COMPILER-$(COMPAT_VERSION )
163
+ $( call RM_F, COMPILER-* )
164
+ $( TOUCH ) COMPILER-$(COMPAT_VERSION )
149
165
150
166
test_ver = $(shell if [ $(COMPAT_VERSION ) -ge $(1 ) ] ; then echo ge ; fi)
151
167
@@ -159,11 +175,15 @@ COMPAT_LEVEL = $(eval COMPAT_LEVEL := \
159
175
$$(if $$(call test_ver,40700) ,407) ) )$(COMPAT_LEVEL )
160
176
161
177
Compat.ml : Compat.ml.in COMPILER-$(COMPAT_VERSION )
178
+ ifeq ($(SHELL_IS_CMD ) ,)
162
179
sed -e '$(if $(COMPAT_LEVEL),/^$(subst $(SPACE),@\|^,$(COMPAT_LEVEL))@/d;)s/^[0-9]*@//' $< > $@
180
+ else
181
+ Compat.cmd $(COMPAT_VERSION) $< > $@
182
+ endif
163
183
164
184
flexlink.exe : $(OBJS ) $(RES )
165
185
@echo Building flexlink.exe with TOOLCHAIN=$(TOOLCHAIN ) for OCaml $(OCAML_VERSION )
166
- rm -f flexlink.exe
186
+ $( call RM_F, flexlink.exe)
167
187
$(RES_PREFIX ) $(OCAMLOPT ) -o flexlink.exe $(LINKFLAGS ) $(OBJS )
168
188
169
189
version.res : version.rc
0 commit comments