-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathamext-msvc.mk
52 lines (39 loc) · 1.07 KB
/
amext-msvc.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#
# Support for MSVC toolchain.
#
# Usage:
# 1. Install coreutils (printf, tail) and make from gnuwin32.
# 2. Make sure VC env variables are loaded (PATH)
#
SHELL = cmd.exe
ShellQuote = "$(subst $$, \$$, $(subst ",\",$(subst \,\\,$(1))))"
EXEEXT = .exe
LIBEXT = .lib
OBJEXT = .obj
CC = cl -nologo
CFLAGS = -O2 $(WFLAGS)
WFLAGS = -W2 -w24013
CPP = $(CC) -E
LDFLAGS =
LIBS = -lws2_32 -ladvapi32
AR = lib
ARFLAGS = -nologo
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -Fe$(call vcFixPath,$@)
Printf = printf $(subst %,%%,$(1)) $(2)
MKDIR_P = md
MkDir = if not exist $(call vcFixPath,$(1)) $(MKDIR_P) $(call vcFixPath,$(1))
vcFixPath = $(subst /,\,$(1))
vcFixLibs = $(patsubst %.a,%.lib,$(patsubst -l%,%.lib,$(1)))
vcFixAll = $(call vcFixPath,$(call vcFixLibs,$(1)))
define AM_LANG_C_COMPILE
$(E) "CC" $<
$(Q) $(COMPILE) -c -Fo$(call vcFixPath,$@) $< | tail -n+2
endef
define AM_LANG_C_LINK
$(E) "CCLD" $@
$(Q) $(LINK) $(call vcFixAll,$^ $(AM_LIBS) $(LIBS)) $(AM_LT_RPATH)
endef
define ar_lib
$(E) "LIB" $@
$(Q) $(AR) $(ARFLAGS) -out:$(call vcFixPath,$@) $^
endef