aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-02-19 20:35:48 +0100
committerMattias Andrée <maandree@kth.se>2022-02-19 20:35:48 +0100
commite22ebdaaebd0290e3b1b18648e6b1048ff100845 (patch)
treebf945309aab4cba8b78bb041b9628b630718c013
parentUpdate readme (diff)
downloadlibsha2-e22ebdaaebd0290e3b1b18648e6b1048ff100845.tar.gz
libsha2-e22ebdaaebd0290e3b1b18648e6b1048ff100845.tar.bz2
libsha2-e22ebdaaebd0290e3b1b18648e6b1048ff100845.tar.xz
Improve makefile
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, 25 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index da70bbc..95f6335 100644
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,19 @@
-.NONPOSIX:
+.POSIX:
CONFIGFILE = config.mk
+include $(CONFIGFILE)
+
+OS = linux
+# Linux: linux
+# Mac OS: macos
+# Windows: windows
+include mk/$(OS).mk
-OSCONFIGFILE = linux.mk
-# Change to macos.mk for Mac OS
LIB_MAJOR = 1
LIB_MINOR = 0
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
-include $(CONFIGFILE)
-include $(OSCONFIGFILE)
HDR =\
libsha2.h\
@@ -34,7 +37,7 @@ OBJ =\
sum_fd.o\
unhex.o\
unmarshal.o\
- update.o\
+ update.o
MAN0 =\
libsha2.h.0
@@ -92,6 +95,7 @@ install:
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man3"
cp -- libsha2.a "$(DESTDIR)$(PREFIX)/lib"
cp -- libsha2.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libsha2.$(LIBMINOREXT)"
+ $(FIX_INSTALL_NAME) -- "$(DESTDIR)$(PREFIX)/lib/libsha2.$(LIBMINOREXT)"
ln -sf -- "libsha2.$(LIBMINOREXT).$(LIB_MINOR)" "$(DESTDIR)$(PREFIX)/lib/libsha2.$(LIBMAJOREXT)"
ln -sf -- "libsha2.$(LIBMAJOREXT)" "$(DESTDIR)$(PREFIX)/lib/libsha2.$(LIBEXT)"
cp -- libsha2.h "$(DESTDIR)$(PREFIX)/include"
diff --git a/config.mk b/config.mk
index a2d88f2..2062ea6 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_BSD_SOURCE -D_XOPEN_SOURCE=700
-CFLAGS = -std=c99 -Wall -O3
+CFLAGS = -Wall -O3
LDFLAGS = -s
diff --git a/linux.mk b/mk/linux.mk
index 3618fcd..5604525 100644
--- a/linux.mk
+++ b/mk/linux.mk
@@ -3,3 +3,5 @@ LIBFLAGS = -shared -Wl,-soname,libsha2.$(LIBEXT).$(LIB_MAJOR)
LIBMAJOREXT = $(LIBEXT).$(LIB_MAJOR)
LIBMINOREXT = $(LIBEXT).$(LIB_MAJOR).$(LIB_MINOR)
+
+FIX_INSTALL_NAME = :
diff --git a/mk/macos.mk b/mk/macos.mk
new file mode 100644
index 0000000..89186f9
--- /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_MAJOR).$(LIB_MINOR).$(LIBEXT)
+
+FIX_INSTALL_NAME = install_name_tool -id "$(PREFIX)/lib/libsha2.$(LIBMAJOREXT)"
diff --git a/macos.mk b/mk/windows.mk
index 47d4b44..304b6be 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_MAJOR).$(LIB_MINOR).$(LIBEXT)
+
+FIX_INSTALL_NAME = :