aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-02-19 23:22:24 +0100
committerMattias Andrée <maandree@kth.se>2022-02-19 23:22:24 +0100
commitc876e6ddf5ca317f2d9022f0ab94179c6fc5971d (patch)
tree232e685fb6e08d2a82c538bbca8e6d6a87a09cde
parentm makefile (diff)
downloadlibcoopgamma-c876e6ddf5ca317f2d9022f0ab94179c6fc5971d.tar.gz
libcoopgamma-c876e6ddf5ca317f2d9022f0ab94179c6fc5971d.tar.bz2
libcoopgamma-c876e6ddf5ca317f2d9022f0ab94179c6fc5971d.tar.xz
Improve makefile1.2.2.1
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--Makefile16
-rw-r--r--config.mk4
-rw-r--r--mk/linux.mk (renamed from linux.mk)2
-rw-r--r--mk/macos.mk7
-rw-r--r--mk/windows.mk (renamed from macos.mk)6
5 files changed, 27 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 00aa644..7adb022 100644
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,23 @@
.POSIX:
+CONFIGFILE = config.mk
+include $(CONFIGFILE)
+
+OS = linux
+# Linux: linux
+# Mac OS: macos
+# Windows: windows
+include mk/$(OS).mk
+
+
LIB_MAJOR = 1
LIB_MINOR = 2
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
-CONFIGFILE = config.mk
-OSCONFIGFILE = linux.mk
-include $(CONFIGFILE)
-include $(OSCONFIGFILE)
include man.mk
+
all: libcoopgamma.a libcoopgamma.$(LIBEXT) test
.c.o:
@@ -41,6 +48,7 @@ install: libcoopgamma.a libcoopgamma.$(LIBEXT)
cp -- libcoopgamma.h "$(DESTDIR)$(PREFIX)/include"
cp -- libcoopgamma.a "$(DESTDIR)$(PREFIX)/lib"
cp -- libcoopgamma.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libcoopgamma.$(LIBMINOREXT)"
+ $(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libcoopgamma.$(LIBMINOREXT)"
ln -sf -- libcoopgamma.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libcoopgamma.$(LIBMAJOREXT)"
ln -sf -- libcoopgamma.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libcoopgamma.$(LIBEXT)"
cp -- $(MAN0) "$(DESTDIR)$(MANPREFIX)/man0"
diff --git a/config.mk b/config.mk
index 69a0595..86557c9 100644
--- a/config.mk
+++ b/config.mk
@@ -1,8 +1,8 @@
PREFIX = /usr
MANPREFIX = $(PREFIX)/share/man
-CC = cc
+CC = c99
CPPFLAGS = -D_DEFAULT_SOURCE -D_GNU_SOURCE
-CFLAGS = -std=c99 -Wall -O2
+CFLAGS = -Wall -O2
LDFLAGS = -s
diff --git a/linux.mk b/mk/linux.mk
index 5b97157..b60a770 100644
--- a/linux.mk
+++ b/mk/linux.mk
@@ -3,3 +3,5 @@ LIBFLAGS = -shared -Wl,-soname,libcoopgamma.$(LIBEXT).$(LIB_MAJOR)
LIBMAJOREXT = $(LIBEXT).$(LIB_MAJOR)
LIBMINOREXT = $(LIBEXT).$(LIB_VERSION)
+
+FIX_INSTALL_NAME = :
diff --git a/mk/macos.mk b/mk/macos.mk
new file mode 100644
index 0000000..23a264d
--- /dev/null
+++ b/mk/macos.mk
@@ -0,0 +1,7 @@
+LIBEXT = dylib
+LIBFLAGS = -dynamiclib -Wl,-compatibility_version,$(LIB_MAJOR) -Wl,-current_version,$(LIB_VERSION)
+
+LIBMAJOREXT = $(LIB_MAJOR).$(LIBEXT)
+LIBMINOREXT = $(LIB_VERSION).$(LIBEXT)
+
+FIX_INSTALL_NAME = install_name_tool -id "$(PREFIX)/lib/libcoopgamma.$(LIBMAJOREXT)"
diff --git a/macos.mk b/mk/windows.mk
index b475197..88c99dd 100644
--- a/macos.mk
+++ b/mk/windows.mk
@@ -1,5 +1,7 @@
-LIBEXT = dylib
-LIBFLAGS = -dynamiclib
+LIBEXT = dll
+LIBFLAGS = -shared
LIBMAJOREXT = $(LIB_MAJOR).$(LIBEXT)
LIBMINOREXT = $(LIB_VERSION).$(LIBEXT)
+
+FIX_INSTALL_NAME = :