aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-02-19 20:34:30 +0100
committerMattias Andrée <maandree@kth.se>2022-02-19 20:34:30 +0100
commit9688282d013caad855efaffb2adc0686511a4ceb (patch)
tree0bff3f5a864ba39026f9c840ca43bc5d2272dd3c
parentUpdate readme (diff)
downloadlibsha1-9688282d013caad855efaffb2adc0686511a4ceb.tar.gz
libsha1-9688282d013caad855efaffb2adc0686511a4ceb.tar.bz2
libsha1-9688282d013caad855efaffb2adc0686511a4ceb.tar.xz
Improve makefile
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-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 40a5af6..397f50a 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 =\
libsha1.h\
@@ -34,7 +37,7 @@ OBJ =\
sum_fd.o\
unhex.o\
unmarshal.o\
- update.o\
+ update.o
MAN0 =\
libsha1.h.0
@@ -92,6 +95,7 @@ install: libsha1.a libsha1.$(LIBEXT)
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man3"
cp -- libsha1.a "$(DESTDIR)$(PREFIX)/lib"
cp -- libsha1.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libsha1.$(LIBMINOREXT)"
+ $(FIX_INSTALL_NAME) -- "$(DESTDIR)$(PREFIX)/lib/libsha1.$(LIBMINOREXT)"
ln -sf -- "libsha1.$(LIBMINOREXT).$(LIB_MINOR)" "$(DESTDIR)$(PREFIX)/lib/libsha1.$(LIBMAJOREXT)"
ln -sf -- "libsha1.$(LIBMAJOREXT)" "$(DESTDIR)$(PREFIX)/lib/libsha1.$(LIBEXT)"
cp -- libsha1.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 3a44969..4129746 100644
--- a/linux.mk
+++ b/mk/linux.mk
@@ -3,3 +3,5 @@ LIBFLAGS = -shared -Wl,-soname,libsha1.$(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..4d839b1
--- /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/libsha1.$(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 = :