LIBGLAZE_SONAME = $(LIBGLAZE_LINKER_NAME).$(MAJOR)
LIBGLAZE_LIBNAME = $(LIBGLAZE_SONAME).$(MINOR).$(RELEASE)
-TARGETS = $(LIBGLAZE_LIBNAME) lib64/libGL.so.1 lib32/libGL.so.1
+LIBGLAZE_32_LINKER_NAME = libglaze-32.so
+LIBGLAZE_32_SONAME = $(LIBGLAZE_32_LINKER_NAME).$(MAJOR)
+LIBGLAZE_32_LIBNAME = $(LIBGLAZE_32_SONAME).$(MINOR).$(RELEASE)
+
+ifeq ($(COMPILER_SUPPORTS_32),Yes)
+TARGETS += $(LIBGLAZE_32_LIBNAME)
+TARGETS += $(LIB32_DIR)/libGL.so.1
+TARGETS += glaze-find-libgl-32
+endif
+
+ifeq ($(COMPILER_SUPPORTS_64),Yes)
+TARGETS += $(LIBGLAZE_LIBNAME)
+TARGETS += $(LIB64_DIR)/libGL.so.1
+TARGETS += glaze-find-libgl-64
+endif
all: $(TARGETS)
GLAZE_CFLAGS = $(CFLAGS) $(WARN_CFLAGS)
+$(LIBGLAZE_32_LIBNAME): glaze.c
+ $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
+
$(LIBGLAZE_LIBNAME): glaze.c
- $(CC) $(GLAZE_CFLAGS) -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -o $@ $<
+ $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -ltalloc -o $@ $<
+
+$(LIB64_DIR)/libGL.so.1: glaze-gl.c
+ mkdir -p $(LIB64_DIR)
+ $(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=64 -m64 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
-lib64/libGL.so.1: glaze-gl.c glapi.def
- mkdir -p lib64
- $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
+$(LIB32_DIR)/libGL.so.1: glaze-gl.c specs/gl.def
+ mkdir -p $(LIB32_DIR)
+ $(CC) $(GLAZE_CFLAGS) -DGLAZE_BITS=32 -m32 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
-lib32/libGL.so.1: glaze-gl.c specs/gl.def
- mkdir -p lib32
- $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
+glaze-find-libgl-32: glaze-find-libgl.c
+ $(CC) $(GLAZE_CFLAGS) -m32 -fPIC -ldl -o $@ $<
+
+glaze-find-libgl-64: glaze-find-libgl.c
+ $(CC) $(GLAZE_CFLAGS) -m64 -fPIC -ldl -o $@ $<
.PHONY: install
install: all
- mkdir -p $(DESTDIR)$(LIBDIR)/glaze/lib64
- install -m0644 lib64/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/lib64
- mkdir -p $(DESTDIR)$(LIBDIR)/glaze/lib32
- install -m0644 lib32/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/lib32
+ mkdir -p $(DESTDIR)$(INCLUDEDIR)/glaze
+ install -m0644 glaze.h $(DESTDIR)$(INCLUDEDIR)/glaze
+ mkdir -p $(DESTDIR)$(BINDIR)
+ mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
+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 libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)/libGL.so
+ install -m0644 $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)
+ ln -sf $(LIBGLAZE_32_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_32_SONAME)
+ 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)
+endif
+ifeq ($(COMPILER_SUPPORTS_64),Yes)
+ mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
+ install -m0644 $(LIB64_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
+ ln -sf libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)/libGL.so
install -m0644 $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)
ln -sf $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_SONAME)
ln -sf $(LIBGLAZE_LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBGLAZE_LINKER_NAME)
- mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
install glaze.pc $(DESTDIR)$(LIBDIR)/pkgconfig
- mkdir -p $(DESTDIR)$(INCLUDEDIR)/glaze
- install -m0644 glaze.h $(DESTDIR)$(INCLUDEDIR)/glaze
+ install -m0755 glaze-find-libgl-64 $(DESTDIR)$(BINDIR)
+endif
clean:
rm -f $(TARGETS)