$OpenBSD: patch-Makefile,v 1.6 2006/02/15 06:11:39 sturm Exp $
--- Makefile.orig	Mon Dec  5 06:47:51 2005
+++ Makefile	Sat Feb 11 02:29:14 2006
@@ -19,8 +19,8 @@
 # CROSS_COMPILE=/opt/montavista/pro/devkit/arm/xscale_be/bin/xscale_be-
 # CROSS_COMPILE_BIN=/opt/montavista/pro/devkit/arm/xscale_be/bin/
 # CROSS_COMPILE_TARGET=/opt/montavista/pro/devkit/arm/xscale_be/target
-CC=$(CROSS_COMPILE)gcc
-HOST_CC=gcc
+CC?=$(CROSS_COMPILE)gcc
+HOST_CC=$(CC)
 # CROSS_ARCH=Linux
 # CROSS_PROC=arm
 # SUB_PROC=xscale # or maverick
@@ -44,8 +44,12 @@
 #K6OPT  = -DK6OPT
 
 #Tell gcc to optimize the code
+ifeq (${OSARCH},OpenBSD)
+OPTIMIZE+=-O2
+else
 OPTIMIZE+=-O6
 endif
+endif
 
 #Overwite config files on "make samples"
 OVERWRITE=y
@@ -83,7 +87,11 @@
 
 # Where to install asterisk after compiling
 # Default -> leave empty
+ifeq (${OSARCH},OpenBSD)
+INSTALL_PREFIX= ${TRUEPREFIX}
+else
 INSTALL_PREFIX?=
+endif
 
 # Staging directory
 # Files are copied here temporarily during the install process
@@ -105,7 +113,7 @@
 # Don't use together with -DBUSYDETECT_TONEONLY
 BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
 
-ifneq ($(OSARCH),SunOS)
+ifeq ($(OSARCH),Linux)
   ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk
   ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk
   ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
@@ -119,7 +127,25 @@
   ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man
   MODULES_DIR=$(ASTLIBDIR)/modules
   AGI_DIR=$(ASTVARLIBDIR)/agi-bin
-else
+endif
+# OpenBSD has its own packaging mechanism
+ifeq ($(OSARCH),OpenBSD)
+  ASTLIBDIR=$(INSTALL_PREFIX)/lib/asterisk
+  ASTVARLIBDIR=$(INSTALL_PREFIX)/share/asterisk
+  ASTETCDIR=${SYSCONFDIR}/asterisk
+  ASTSPOOLDIR=/var/spool/asterisk
+  ASTLOGDIR=/var/log/asterisk
+  ASTHEADERDIR=$(INSTALL_PREFIX)/include/asterisk
+  ASTCONFPATH=$(ASTETCDIR)/asterisk.conf
+  ASTBINDIR=$(INSTALL_PREFIX)/bin
+  ASTSBINDIR=$(INSTALL_PREFIX)/sbin
+  ASTVARRUNDIR=/var/db/asterisk
+  ASTMANDIR=$(INSTALL_PREFIX)/man
+  
+  MODULES_DIR=$(ASTLIBDIR)/modules
+  AGI_DIR=/var/asterisk/agi-bin
+endif
+ifeq ($(OSARCH),SunOS)
   ASTLIBDIR=$(INSTALL_PREFIX)/opt/asterisk/lib
   ASTVARLIBDIR=$(INSTALL_PREFIX)/var/opt/asterisk/lib
   ASTETCDIR=$(INSTALL_PREFIX)/etc/opt/asterisk
@@ -160,6 +186,8 @@
 # The file, /etc/asterisk.makeopts will also be included, but can be overridden
 # by the file in your home directory.
 
+# OpenBSD wants repeatable builds
+ifneq ($(OSARCH),OpenBSD)
 ifneq ($(wildcard /etc/asterisk.makeopts),)
   include /etc/asterisk.makeopts
 endif
@@ -167,6 +195,7 @@
 ifneq ($(wildcard ~/.asterisk.makeopts),)
   include ~/.asterisk.makeopts
 endif
+endif
 
 ifeq ($(OSARCH),Linux)
   ifeq ($(CROSS_COMPILE),)
@@ -209,6 +238,14 @@
   MPG123TARG=linux
 endif
 
+ifeq ($(OSARCH),OpenBSD)
+  PROC?=$(shell uname -m)
+
+  ifeq ($(PROC),arm)
+    OPTIONS+=-fsigned-char
+  endif
+endif
+
 PWD=$(shell pwd)
 GREP=grep
 
@@ -227,8 +264,10 @@
   ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
 endif
 
-ifneq ($(PROC),ultrasparc)
-  ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
+ifneq (${OSARCH},OpenBSD)
+  ifneq ($(PROC),ultrasparc)
+    ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
+  endif
 endif
 
 ifeq ($(PROC),ppc)
@@ -410,6 +449,7 @@
 INSTALL=install
 
 _all: all
+ifneq (${OSARCH},OpenBSD)
 	@echo " +--------- Asterisk Build Complete ---------+"  
 	@echo " + Asterisk has successfully been built, but +"  
 	@echo " + cannot be run before being installed by   +"  
@@ -417,6 +457,7 @@
 	@echo " +                                           +"
 	@echo " +               $(MAKE) install                +"  
 	@echo " +-------------------------------------------+"  
+endif
 
 all: cleantest depend asterisk subdirs 
 
@@ -666,6 +707,8 @@
 	fi 
 	( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds  ; ln -s $(ASTSPOOLDIR)/voicemail . )
 	if [ -f mpg123-0.59r/mpg123 ]; then $(MAKE) -C mpg123-0.59r install; fi
+# OpenBSD packaging has own message-at-actual-install-time
+ifneq (${OSARCH},OpenBSD)
 	@echo " +---- Asterisk Installation Complete -------+"  
 	@echo " +                                           +"
 	@echo " +    YOU MUST READ THE SECURITY DOCUMENT    +"
@@ -687,6 +730,7 @@
 	@echo " + **Note** This requires that you have      +"
 	@echo " + doxygen installed on your local system    +"
 	@echo " +-------------------------------------------+"
+endif
 	@$(MAKE) -s oldmodcheck
 
 NEWMODS=$(notdir $(wildcard */*.so))
