aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-02-19 23:07:24 +0100
committerMattias Andrée <maandree@kth.se>2022-02-19 23:07:24 +0100
commit20c0ffb7b669c6fd95b191edf35fd26454053688 (patch)
treeb341482d3920dcc6bf85f6887fac2ce2ef693a1b
parentImprove makefile, fix warnings, and fix libhaiku_perror linking (diff)
downloadlibhaiku-20c0ffb7b669c6fd95b191edf35fd26454053688.tar.gz
libhaiku-20c0ffb7b669c6fd95b191edf35fd26454053688.tar.bz2
libhaiku-20c0ffb7b669c6fd95b191edf35fd26454053688.tar.xz
Improve makefile
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--Makefile11
-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, 22 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 3ee1e78..5886962 100644
--- a/Makefile
+++ b/Makefile
@@ -3,16 +3,18 @@
CONFIGFILE = config.mk
include $(CONFIGFILE)
-# Change to macos.mk for Mac OS
-OSCONFIGFILE = linux.mk
-include $(OSCONFIGFILE)
+OS = linux
+# Linux: linux
+# Mac OS: macos
+# Windows: windows
+include mk/$(OS).mk
LIB_MAJOR = 2
LIB_MINOR = 0
-
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
+
MAN3 = libhaiku.7
MAN7 = libhaiku_generic.3 libhaiku_perror.3 libhaiku_perror2.3 libhaiku_strerror.3
@@ -47,6 +49,7 @@ install: libhaiku.$(LIBEXT) libhaiku.a
mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man7"
cp -- libhaiku.a "$(DESTDIR)$(PREFIX)/lib/"
cp -- libhaiku.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libhaiku.$(LIBMINOREXT)"
+ $(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libhaiku.$(LIBMINOREXT)"
ln -sf -- libhaiku.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libhaiku.$(LIBMAJOREXT)"
ln -sf -- libhaiku.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libhaiku.$(LIBEXT)"
cp -- libhaiku.h "$(DESTDIR)$(PREFIX)/include/"
diff --git a/config.mk b/config.mk
index f087ea4..2a92212 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 -O2
+CFLAGS = -Wall -O2
LDFLAGS = -s
diff --git a/linux.mk b/mk/linux.mk
index 55bb536..6f31f81 100644
--- a/linux.mk
+++ b/mk/linux.mk
@@ -3,3 +3,5 @@ LIBFLAGS = -shared -Wl,-soname,libhaiku.$(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..7ae458d
--- /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/libhaiku.$(LIBMAJOREXT)"
diff --git a/macos.mk b/mk/windows.mk
index d5aec83..85f2d7f 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 = :