-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmsvc.mk
58 lines (46 loc) · 1.18 KB
/
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
52
53
54
55
56
57
58
!if "$(CRTDLL)" == "true"
CRTLIB = /MD$(DBG_SUFFIX)
!else
CRTLIB = /MT$(DBG_SUFFIX)
!endif
!if "$(DEBUG)" == "true"
COPTFLAGS = /Od /GS /Zi $(CRTLIB)
AROPTFLAGS =
MSVC_MACROS = /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS \
/D_USE_MATH_DEFINES
DBG_SUFFIX = d
!else
COPTFLAGS = /Ox /GL $(CRTLIB)
AROPTFLAGS = /LTCG
MSVC_MACROS = /DNDEBUG /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS \
/D_USE_MATH_DEFINES
DBG_SUFFIX =
!endif
CC = cl
AR = lib
RM = del /F
MACROS = $(MSVC_MACROS)
CFLAGS = /nologo $(COPTFLAGS) /W4 /c $(MACROS)
ARFLAGS = /nologo $(AROPTFLAGS)
DST_DIR = lib
SRC_DIR = src
INC_DIR = include
TARGET = $(DST_DIR)\getopt$(DBG_SUFFIX).lib
OBJ1 = $(SRC_DIR)\getopt$(DBG_SUFFIX).obj
OBJ2 = $(SRC_DIR)\getopt_long$(DBG_SUFFIX).obj
SRC1 = $(SRC_DIR)\getopt.c
SRC2 = $(SRC_DIR)\getopt_long.c
HEADER = $(INC_DIR)\getopt.h
all: $(TARGET)
$(TARGET): $(OBJ1) $(OBJ2)
@if not exist $(DST_DIR)\NUL \
mkdir $(DST_DIR)
$(AR) $(ARFLAGS) $** /OUT:$@
$(OBJ1): $(SRC1) $(HEADER)
$(CC) $(CFLAGS) $** /c /Fo$@
$(OBJ2): $(SRC2) $(HEADER)
$(CC) $(CFLAGS) $** /c /Fo$@
clean:
$(RM) $(TARGET) $(OBJ1) $(OBJ2)
cleanobj:
$(RM) $(OBJ1) $(OBJ2)