Missing attribute from cl_amd_device_attribute_query
[clinfo] / Makefile
1 # An interesting trick run a shell command:
2 # GNU Make uses $(shell cmd), whereas
3 # BSD make use $(var:sh), where ${var} holds the command
4 OS.exec = uname -s
5 OS ?= $(shell $(OS.exec))$(OS.exec:sh)
6 OS := $(OS)
7
8 # Headers
9
10 PROG = clinfo
11 MAN = man1/$(PROG).1
12
13 HDR =   src/error.h \
14         src/ext.h \
15         src/ctx_prop.h \
16         src/fmtmacros.h \
17         src/memory.h \
18         src/ms_support.h \
19         src/info_loc.h \
20         src/info_ret.h \
21         src/opt_out.h \
22         src/strbuf.h
23
24 VPATH = src
25
26 CFLAGS ?= -g -pedantic -Werror
27 CFLAGS += -std=c99 -Wall -Wextra
28
29 SPARSE ?= sparse
30 SPARSEFLAGS=-Wsparse-all -Wno-decl
31
32 # BSD make does not define RM
33 RM ?= rm -f
34
35 # Installation paths and modes
36 PREFIX ?= /usr/local
37 BINDIR ?= $(PREFIX)/bin
38 BINMODE ?= 555
39 MANDIR ?= $(PREFIX)/man
40 MANMODE ?= 444
41
42 # Common library includes
43 LDLIBS = -lOpenCL -ldl
44
45 # OS-specific library includes
46 LDLIBS_Darwin = -framework OpenCL
47 LDLIBS_Darwin_exclude = -lOpenCL
48
49 LDLIBS += $(LDLIBS_${OS})
50
51 # Remove -lOpenCL if OS is Darwin
52 LDLIBS := $(LDLIBS:$(LDLIBS_${OS}_exclude)=)
53
54
55 #
56 # Standard targets
57 #
58
59 $(PROG): $(PROG).o
60
61 $(PROG).o: $(PROG).c $(HDR)
62
63 clean:
64         $(RM) $(PROG).o $(PROG)
65
66 $(BINDIR):
67         install -d $@
68
69 $(MANDIR)/man1:
70         install -d $@
71
72 $(BINDIR)/$(PROG): $(PROG) $(BINDIR)
73         install -p -m $(BINMODE) $(PROG) $@
74
75 $(MANDIR)/$(MAN): $(MAN) $(MANDIR)/man1
76         install -p -m $(MANMODE) $(MAN) $@
77
78 install: $(BINDIR)/$(PROG) $(MANDIR)/$(MAN)
79
80
81 sparse: $(PROG).c
82         $(SPARSE) $(CPPFLAGS) $(CFLAGS) $(SPARSEFLAGS) $^
83
84
85 .PHONY: clean sparse install