]> git.cworth.org Git - glaze/blobdiff - Makefile
Use "gcc --print-multiarch" to determine directory names for library installs
[glaze] / Makefile
index 3ccb7fa3d94772a059b42f0510e0085aea86e7f8..147dcd5416988c9b26fa89363fce214261680d5f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,35 +1,4 @@
-LIBGLAZE_VERSION_MAJOR   = 0
-LIBGLAZE_VERSION_MINOR   = 0
-LIBGLAZE_VERSION_RELEASE = 0
-
-LIBGLAZE_LINKER_NAME = libglaze.so
-LIBGLAZE_SONAME = $(LIBGLAZE_LINKER_NAME).$(LIBGLAZE_VERSION_MAJOR)
-LIBGLAZE_LIBNAME = $(LIBGLAZE_SONAME).$(LIBGLAZE_VERSION_MINOR).$(LIBGLAZE_VERSION_RELEASE)
-
-TARGETS = lib64/libGL.so.1 lib32/libGL.so.1
-
-all: $(TARGETS)
-
-$(LIBGLAZE_LIBNAME): glaze.c
-       $(CC) $(CFLAGS) -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -o $@ $<
-
-lib64/libGL.so.1: glaze-gl.c glapi.def
-       mkdir -p lib64
-       $(CC) $(CFLAGS) -m64 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
-
-lib32/libGL.so.1: glaze-gl.c specs/gl.def
-       mkdir -p lib32
-       $(CC) $(CFLAGS) -m32 -fPIC -shared -Wl,-Bsymbolic -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
-
-clean:
-       rm -f $(TARGETS)
+all:
 
 # Get settings from the output of configure by running it to generate
 # Makefile.config if it doesn't exist yet.
@@ -50,3 +19,49 @@ ifeq ($(configure_options),)
        @echo ""
 endif
        $(srcdir)/configure $(configure_options)
+
+LIBGLAZE_LINKER_NAME = libglaze.so
+LIBGLAZE_SONAME = $(LIBGLAZE_LINKER_NAME).$(MAJOR)
+LIBGLAZE_LIBNAME = $(LIBGLAZE_SONAME).$(MINOR).$(RELEASE)
+
+TARGETS = $(LIBGLAZE_LIBNAME)
+
+ifeq ($(COMPILER_SUPPORTS_32),Yes)
+TARGETS += $(LIB32_DIR)/libGL.so.1
+endif
+
+ifeq ($(COMPILER_SUPPORTS_64),Yes)
+TARGETS += $(LIB64_DIR)/libGL.so.1
+endif
+
+all: $(TARGETS)
+
+GLAZE_CFLAGS = $(CFLAGS) $(WARN_CFLAGS)
+
+$(LIBGLAZE_LIBNAME): glaze.c
+       $(CC) $(GLAZE_CFLAGS) -fPIC -shared -Wl,-Bsymbolic,-soname=$(LIBGLAZE_SONAME) -ldl -o $@ $<
+
+$(LIB64_DIR)/libGL.so.1: glaze-gl.c glapi.def
+       mkdir -p $(LIB64_DIR)
+       $(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) -m32 -fPIC -shared -Wl,-Bsymbolic -o $@ $<
+
+.PHONY: install
+install: all
+       mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
+       install -m0644 $(LIB64_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB64_DIR)
+       mkdir -p $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
+       install -m0644 $(LIB32_DIR)/libGL.so.1 $(DESTDIR)$(LIBDIR)/glaze/$(LIB32_DIR)
+       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
+
+clean:
+       rm -f $(TARGETS)