]> git.cworth.org Git - glaze/blob - Makefile
Add egl definitions and related buildsupport.
[glaze] / Makefile
1 all:
2
3 # Get settings from the output of configure by running it to generate
4 # Makefile.config if it doesn't exist yet.
5
6 # If Makefile.config doesn't exist, then srcdir won't be
7 # set. Conditionally set it (assuming a plain srcdir build) so that
8 # the rule to generate Makefile.config can actually work.
9 srcdir ?= .
10
11 include Makefile.config
12 Makefile.config: $(srcdir)/configure
13 ifeq ($(configure_options),)
14         @echo ""
15         @echo "Note: Calling ./configure with no command-line arguments. This is often fine,"
16         @echo "      but if you want to specify any arguments (such as an alternate prefix"
17         @echo "      into which to install), call ./configure explicitly and then make again."
18         @echo "      See \"./configure --help\" for more details."
19         @echo ""
20 endif
21         $(srcdir)/configure $(configure_options)
22
23 LIBGLAZE_LINKER_NAME = libglaze.so
24 LIBGLAZE_SONAME = $(LIBGLAZE_LINKER_NAME).$(MAJOR)
25 LIBGLAZE_LIBNAME = $(LIBGLAZE_SONAME).$(MINOR).$(RELEASE)
26
27 LIBGLAZE_32_LINKER_NAME = libglaze-32.so
28 LIBGLAZE_32_SONAME = $(LIBGLAZE_32_LINKER_NAME).$(MAJOR)
29 LIBGLAZE_32_LIBNAME = $(LIBGLAZE_32_SONAME).$(MINOR).$(RELEASE)
30
31 TARGETS = glaze $(LIBGLAZE_LINKER_NAME)
32
33 SPECS = specs/gl.def specs/glx.def specs/egl.def
34
35 ifeq ($(COMPILER_SUPPORTS_32),Yes)
36 TARGETS += $(LIBGLAZE_32_LIBNAME)
37 TARGETS += $(LIB32_DIR)/libGL.so.1
38 TARGETS += glaze-find-libgl-32 glaze-find-libegl-32
39 endif
40
41 ifeq ($(COMPILER_SUPPORTS_64),Yes)
42 TARGETS += $(LIBGLAZE_LIBNAME)
43 TARGETS += $(LIB64_DIR)/libGL.so.1
44 TARGETS += glaze-find-libgl-64 glaze-find-libegl-64
45 endif
46
47 all: $(TARGETS)
48
49 GLAZE_CFLAGS = $(CFLAGS) $(WARN_CFLAGS)
50
51 glaze: glaze.c $(LIBGLAZE_LINKER_NAME)
52         $(CC) $(GLAZE_CFLAGS) -I. -L. -o $@ $< -ldl -lglaze
53
54 $(LIBGLAZE_32_LIBNAME): libglaze.c
55         $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -shared -Wl,--version-script=libglaze.sym,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
56
57 $(LIBGLAZE_LIBNAME): libglaze.c
58         $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -shared -Wl,--version-script=libglaze.sym,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
59
60 $(LIBGLAZE_LINKER_NAME): $(LIBGLAZE_LIBNAME)
61         ln -sf $(LIBGLAZE_LIBNAME) $@
62
63 $(LIB64_DIR)/libGL.so.1: glaze-gl.c $(SPECS)
64         mkdir -p $(LIB64_DIR)
65         $(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=64 -m64 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
66
67 $(LIB32_DIR)/libGL.so.1: glaze-gl.c $(SPECS)
68         mkdir -p $(LIB32_DIR)
69         $(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=32 -m32 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
70
71 glaze-find-libgl-32: glaze-find-libgl.c
72         $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -ldl -o $@ $<
73
74 glaze-find-libgl-64: glaze-find-libgl.c
75         $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -ldl -o $@ $<
76
77 glaze-find-libegl-32: glaze-find-libegl.c
78         $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -ldl -o $@ $<
79
80 glaze-find-libegl-64: glaze-find-libegl.c
81         $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -ldl -o $@ $<
82
83 .PHONY: install
84 install: all
85         mkdir -p $(DESTDIR)$(INCLUDEDIR)/glaze
86         install -m0644 glaze.h $(DESTDIR)$(INCLUDEDIR)/glaze
87         mkdir -p $(DESTDIR)$(BINDIR)
88         mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
89         install -m0755 glaze $(DESTDIR)$(BINDIR)
90 ifeq ($(COMPILER_SUPPORTS_32),Yes)
91         mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
92         install -m0644 $(LIB32_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
93         ln -sf libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)/libGL.so
94         install -m0644 $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)
95         ln -sf $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_32_SONAME)
96         ln -sf $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_32_LINKER_NAME)
97         install glaze-32.pc $(DESTDIR)$(LIBDIR)/pkgconfig
98         install -m0755 glaze-find-libgl-32 $(DESTDIR)$(BINDIR)
99         install -m0755 glaze-find-libegl-32 $(DESTDIR)$(BINDIR)
100 endif
101 ifeq ($(COMPILER_SUPPORTS_64),Yes)
102         mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
103         install -m0644 $(LIB64_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
104         ln -sf libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)/libGL.so
105         install -m0644 $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)
106         ln -sf $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_SONAME)
107         ln -sf $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_LINKER_NAME)
108         install glaze.pc $(DESTDIR)$(LIBDIR)/pkgconfig
109         install -m0755 glaze-find-libgl-64 $(DESTDIR)$(BINDIR)
110         install -m0755 glaze-find-libegl-64 $(DESTDIR)$(BINDIR)
111 endif
112
113 clean:
114         rm -f $(TARGETS)
115
116 distclean: clean
117         rm Makefile.config glaze.pc glaze-32.pc config.h
118
119 .PHONY: check-syntax
120 check-syntax:
121         $(CC) $(CFLAGS) -Wall -Wextra -fsyntax-only $(CHK_SOURCES)