-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmakefile.vs
79 lines (54 loc) · 1.8 KB
/
makefile.vs
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# powturbo (c) Copyright 2015-2018
# nmake /f makefile.msc
# or
# nmake "AVX2=1" /f makefile.msc
.SUFFIXES: .c .obj .sobj
CC = cl
LD = link
AR = lib
CFLAGS = /MD /O2 -I.
LIB_LIB = libtp.lib
LIB_DLL = tp.dll
LIB_IMP = tp.lib
OBJS = transpose.obj
!if "$(NSIMD)" == "1"
!else
OBJS = $(OBJS) transpose_sse.obj
CFLAGS = $(CFLAGS) /DUSE_SSE /D__SSE2__
!IF "$(AVX2)" == "1"
CFLAGS = $(CFLAGS) /DUSE_AVX2
OBJS = $(OBJS) transpose_avx2.obj
!endif
!endif
DLL_OBJS = $(OBJS:.obj=.sobj)
all: $(LIB_LIB) $(LIB_DLL) tpbench.exe tpbenchdll.exe
#$(LIB_DLL): $(LIB_IMP)
transpose.obj: transpose.c
$(CC) /O2 $(CFLAGS) /DUSE_SSE -c transpose.c /Fotranspose.obj
transpose_sse.obj: transpose.c
$(CC) /O2 $(CFLAGS) /DSSE2_ON /D__SSE2__ /arch:SSE2 /c transpose.c /Fotranspose_sse.obj
transpose_avx2.obj: transpose.c
$(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c transpose.c /Fotranspose_avx2.obj
transpose.sobj: transpose.c
$(CC) /O2 $(CFLAGS) /DLIB_DLL=1 /DUSE_SSE -c transpose.c /Fotranspose.sobj
transpose_sse.sobj: transpose.c
$(CC) /O2 $(CFLAGS) /DLIB_DLL=1 /DSSE2_ON /D__SSE2__ /arch:SSE2 /c transpose.c /Fotranspose_sse.sobj
transpose_avx2.sobj: transpose.c
$(CC) /O2 $(CFLAGS) /DLIB_DLL=1 /DAVX2_ON /D__AVX2__ /arch:avx2 /c transpose.c /Fotranspose_avx2.sobj
tpbench.sobj: tpbench.c
$(CC) /O2 $(CFLAGS) /DLIB_DLL -c tpbench.c /Fotpbench.sobj
.c.obj:
$(CC) -c /Fo$@ /O2 $(CFLAGS) $**
.c.sobj:
$(CC) -c /Fo$@ /O2 $(CFLAGS) /DLIB_DLL $**
$(LIB_LIB): $(OBJS)
$(AR) $(ARFLAGS) -out:$@ $(OBJS)
$(LIB_DLL): $(DLL_OBJS)
$(LD) $(LDFLAGS) -out:$@ -dll -implib:$(LIB_IMP) $(DLL_OBJS)
$(LIB_IMP): $(LIB_DLL)
tpbench.exe: tpbench.obj vs/getopt.obj $(LIB_LIB)
$(LD) $(LDFLAGS) -out:$@ $**
tpbenchdll.exe: tpbench.sobj vs/getopt.obj
$(LD) $(LDFLAGS) -out:$@ $** tp.lib
clean:
-del *.dll *.exe *.exp *.lib *.obj *.sobj 2>nul