More strbuf_append and other modernization
[clinfo] / Makefile.win
1 # TODO FIXME find a better way to detect the directory to use\r
2 # for OpenCL development files\r
3 !IF "$(OPENCLDIR)" == ""\r
4 OPENCLDIR = $(INTELOCLSDKROOT)\r
5 !ENDIF\r
6 !IF "$(OPENCLDIR)" == ""\r
7 OPENCLDIR = $(AMDAPPSDKROOT)\r
8 !ENDIF\r
9 !IF "$(OPENCLDIR)" == ""\r
10 OPENCLDIR = $(MAKEDIR)\r
11 !ENDIF\r
12 !IF "$(OPENCLDIR)" == ""\r
13 OPENCLDIR = .\r
14 !ENDIF\r
15 !MESSAGE OpenCL dir: $(OPENCLDIR)\r
16 \r
17 \r
18 HDR =   src/error.h \\r
19         src/ext.h \\r
20         src/ctx_prop.h \\r
21         src/fmtmacros.h \\r
22         src/memory.h \\r
23         src/ms_support.h \\r
24         src/info_loc.h \\r
25         src/info_ret.h \\r
26         src/opt_out.h \\r
27         src/strbuf.h\r
28 \r
29 CFLAGS = /GL /Ox /W4 /Zi /I"$(OPENCLDIR)\include" /nologo\r
30 LIBS = libOpenCL.a\r
31 \r
32 # TODO there's most likely a better way to do the multiarch\r
33 # switching\r
34 !IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"\r
35 ARCH=64\r
36 !ELSE\r
37 ARCH=32\r
38 !ENDIF\r
39 \r
40 # Platform=x64 in the 64-bit cross-platform build of my VS\r
41 !IF "$(PLATFORM)" == "x64" || "$(PLATFORM)" == "X64"\r
42 ARCH=64\r
43 !ELSE IF "$(PLATFORM)" == "x86" || "$(PLATFORM)" == "X86"\r
44 ARCH=32\r
45 !ENDIF\r
46 \r
47 !MESSAGE Building for $(ARCH)-bit (processor architecture: $(PROCESSOR_ARCHITECTURE), platform: $(PLATFORM))\r
48 \r
49 LIBPATH32 = /LIBPATH:"$(OPENCLDIR)\lib" /LIBPATH:"$(OPENCLDIR)\lib\x86"\r
50 LIBPATH64 = /LIBPATH:"$(OPENCLDIR)\lib\x64" /LIBPATH:"$(OPENCLDIR)\lib\x86_64" /LIBPATH:"$(OPENCLDIR)\lib\x86_amd64"\r
51 \r
52 # And since we can't do $(LIBPATH$(ARCH)) with nmake ...\r
53 !IF "$(ARCH)" == "64"\r
54 LINKOPTS = /LTCG $(LIBPATH64) /nologo\r
55 !ELSE\r
56 LINKOPTS = /LTCG $(LIBPATH32) /nologo\r
57 !ENDIF\r
58 \r
59 clinfo.exe: clinfo.obj\r
60         link $(LINKOPTS) $(LIBS) clinfo.obj /out:clinfo.exe\r
61 \r
62 clinfo.obj: src/clinfo.c $(HDR)\r
63         $(CC) $(CFLAGS) /c src/clinfo.c /Foclinfo.obj\r
64 \r
65 clean:\r
66         del /F /Q clinfo.exe clinfo.obj\r
67 \r
68 .PHONY: clean\r
69 \r