--- mk/elftoolchain.inc.mk.orig	2012-09-25 14:56:23.000000000 +0200
+++ mk/elftoolchain.inc.mk	2012-09-25 14:57:39.000000000 +0200
@@ -11,8 +11,8 @@
 
 .include <bsd.own.mk>
 
-.if ${OS_HOST} == "DragonFly" || ${OS_HOST} == "FreeBSD" || \
-	${OS_HOST} == "OpenBSD"
+.if ${OS_HOST} == "Darwin" || ${OS_HOST} == "DragonFly" || \
+	${OS_HOST} == "FreeBSD" || ${OS_HOST} == "OpenBSD"
 # Simulate <bsd.inc.mk>.
 .PHONY:		incinstall
 includes:	${INCS}	incinstall
@@ -23,6 +23,11 @@
 	cmp -s $> $@ > /dev/null 2>&1 || \
 		${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} $> $@
 .endfor
+# Add rule for target install which is missing for common/Makefile
+.if ${OS_HOST} == "Darwin"
+.PHONY: 	install
+install:	incinstall
+.endif
 .else
 # Use the standard <bsd.inc.mk>.
 .include <bsd.inc.mk>
--- mk/elftoolchain.subdir.mk	2011-12-04 09:09:17.000000000 +0100
+++ mk/elftoolchain.subdir.mk	2012-09-25 10:57:24.000000000 +0200
@@ -8,7 +8,7 @@
 
 .if ${OS_HOST} == DragonFly
 clobber test:: _SUBDIR
-.elif ${OS_HOST} == FreeBSD
+.elif ${OS_HOST} == FreeBSD || ${OS_HOST} == Darwin
 SUBDIR_TARGETS+=	clobber test
 .elif ${OS_HOST} == OpenBSD
 clobber test:: _SUBDIRUSE
--- mk/elftoolchain.prog.mk	2012-03-10 13:03:40.000000000 +0100
+++ mk/elftoolchain.prog.mk	2012-03-10 13:04:46.000000000 +0100
@@ -36,6 +36,11 @@
 .endif
 .endif
 
+.if ${OS_HOST} == "Darwin"
+CFLAGS+=       -I@PREFIX@/include
+LDFLAGS+=      -L@PREFIX@/lib
+.endif
+
 #
 # Handle lex(1) and yacc(1) in a portable fashion.
 #
--- mk/elftoolchain.lib.mk	2012-03-10 13:26:28.000000000 +0100
+++ mk/elftoolchain.lib.mk	2012-03-10 13:29:02.000000000 +0100
@@ -8,6 +8,10 @@
 
 .include "${TOP}/mk/elftoolchain.os.mk"
 
+.if ${OS_HOST} == "Darwin" && !defined(SONAME)
+SONAME=	${SHLIBDIR}/${SHLIB_NAME}
+.endif
+
 .include <bsd.lib.mk>
 
 # Support a 'clobber' target.
