LIBGLAZE_32_SONAME = $(LIBGLAZE_32_LINKER_NAME).$(MAJOR)
LIBGLAZE_32_LIBNAME = $(LIBGLAZE_32_SONAME).$(MINOR).$(RELEASE)
+TARGETS = glaze $(LIBGLAZE_LINKER_NAME)
+
+SPECS = specs/gl.def specs/glx.def specs/egl.def
+
ifeq ($(COMPILER_SUPPORTS_32),Yes)
TARGETS += $(LIBGLAZE_32_LIBNAME)
TARGETS += $(LIB32_DIR)/libGL.so.1
-TARGETS += glaze-find-libgl-32
+TARGETS += glaze-find-libgl-32 glaze-find-libegl-32
endif
ifeq ($(COMPILER_SUPPORTS_64),Yes)
TARGETS += $(LIBGLAZE_LIBNAME)
TARGETS += $(LIB64_DIR)/libGL.so.1
-TARGETS += glaze-find-libgl-64
+TARGETS += glaze-find-libgl-64 glaze-find-libegl-64
endif
all: $(TARGETS)
GLAZE_CFLAGS = $(CFLAGS) $(WARN_CFLAGS)
+glaze: glaze.c $(LIBGLAZE_LINKER_NAME)
+ $(CC) $(GLAZE_CFLAGS) -I. -L. -o $@ $< -ldl -lglaze
+
$(LIBGLAZE_32_LIBNAME): libglaze.c
- $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
+ $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -shared -Wl,--version-script=libglaze.sym,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
$(LIBGLAZE_LIBNAME): libglaze.c
- $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
+ $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -shared -Wl,--version-script=libglaze.sym,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
-$(LIB64_DIR)/libGL.so.1: glaze-gl.c
+$(LIBGLAZE_LINKER_NAME): $(LIBGLAZE_LIBNAME)
+ ln -sf $(LIBGLAZE_LIBNAME) $@
+
+$(LIB64_DIR)/libGL.so.1: glaze-gl.c $(SPECS)
mkdir -p $(LIB64_DIR)
$(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=64 -m64 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
-$(LIB32_DIR)/libGL.so.1: glaze-gl.c specs/gl.def
+$(LIB32_DIR)/libGL.so.1: glaze-gl.c $(SPECS)
mkdir -p $(LIB32_DIR)
$(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=32 -m32 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
glaze-find-libgl-64: glaze-find-libgl.c
$(CC) $(GLAZE_CFLAGS) -m64 -fPIC -ldl -o $@ $<
+glaze-find-libegl-32: glaze-find-libegl.c
+ $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -ldl -o $@ $<
+
+glaze-find-libegl-64: glaze-find-libegl.c
+ $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -ldl -o $@ $<
+
.PHONY: install
install: all
mkdir -p $(DESTDIR)$(INCLUDEDIR)/glaze
install -m0644 glaze.h $(DESTDIR)$(INCLUDEDIR)/glaze
mkdir -p $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
+ install -m0755 glaze $(DESTDIR)$(BINDIR)
ifeq ($(COMPILER_SUPPORTS_32),Yes)
mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
install -m0644 $(LIB32_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
ln -sf $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_32_LINKER_NAME)
install glaze-32.pc $(DESTDIR)$(LIBDIR)/pkgconfig
install -m0755 glaze-find-libgl-32 $(DESTDIR)$(BINDIR)
+ install -m0755 glaze-find-libegl-32 $(DESTDIR)$(BINDIR)
endif
ifeq ($(COMPILER_SUPPORTS_64),Yes)
mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
ln -sf $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_LINKER_NAME)
install glaze.pc $(DESTDIR)$(LIBDIR)/pkgconfig
install -m0755 glaze-find-libgl-64 $(DESTDIR)$(BINDIR)
+ install -m0755 glaze-find-libegl-64 $(DESTDIR)$(BINDIR)
endif
clean:
rm -f $(TARGETS)
+
+distclean: clean
+ rm Makefile.config glaze.pc glaze-32.pc config.h
+
+.PHONY: check-syntax
+check-syntax:
+ $(CC) $(CFLAGS) -Wall -Wextra -fsyntax-only $(CHK_SOURCES)