chan-capi/Makefile

198 lines
4.5 KiB
Makefile
Raw Normal View History

2005-06-02 18:47:35 +00:00
#
# An implementation of Common ISDN API 2.0 for Asterisk
2005-06-02 18:47:35 +00:00
#
# Makefile, based on the Asterisk Makefile, Coypright (C) 1999, Mark Spencer
#
2009-01-17 17:35:55 +00:00
# Copyright (C) 2005-2009 Cytronics & Melware
2005-06-02 18:47:35 +00:00
#
# Armin Schindler <armin@melware.de>
#
# Reworked, but based on the work of
# Copyright (C) 2002-2005 Junghanns.NET GmbH
#
# Klaus-Peter Junghanns <kapejod@ns1.jnetdns.de>
#
# This program is free software and may be modified and
# distributed under the terms of the GNU Public License.
#
2005-09-10 13:53:22 +00:00
OSNAME=${shell uname}
2010-04-06 16:59:48 +00:00
DIVA_STREAMING=0
2010-10-19 13:44:06 +00:00
DIVA_STATUS=0
2010-04-06 16:59:48 +00:00
USE_OWN_LIBCAPI=yes
2005-06-02 18:47:35 +00:00
.EXPORT_ALL_VARIABLES:
2007-03-11 11:47:28 +00:00
V=0
2005-06-02 18:47:35 +00:00
INSTALL_PREFIX=
2005-09-10 13:53:22 +00:00
ASTERISK_HEADER_DIR=$(INSTALL_PREFIX)/usr/include
2005-09-10 13:53:22 +00:00
ifeq (${OSNAME},FreeBSD)
ASTERISK_HEADER_DIR=$(INSTALL_PREFIX)/usr/local/include
endif
ifeq (${OSNAME},NetBSD)
ASTERISK_HEADER_DIR=$(INSTALL_PREFIX)/usr/pkg/include
2005-09-10 13:53:22 +00:00
endif
2005-06-02 18:47:35 +00:00
MODULES_DIR=$(INSTALL_PREFIX)/usr/lib/asterisk/modules
2005-09-10 13:53:22 +00:00
ifeq (${OSNAME},FreeBSD)
MODULES_DIR=$(INSTALL_PREFIX)/usr/local/lib/asterisk/modules
endif
ifeq (${OSNAME},NetBSD)
MODULES_DIR=$(INSTALL_PREFIX)/usr/pkg/lib/asterisk/modules
2005-09-10 13:53:22 +00:00
endif
2005-06-02 18:47:35 +00:00
CONFIG_DIR=$(INSTALL_PREFIX)/etc/asterisk
ifeq (${OSNAME},FreeBSD)
CONFIG_DIR=$(INSTALL_PREFIX)/usr/local/etc/asterisk
endif
ifeq (${OSNAME},NetBSD)
CONFIG_DIR=$(INSTALL_PREFIX)/usr/pkg/etc/asterisk
endif
OSARCH=$(shell uname -s)
ifeq ($(strip $(PROC)),)
ifeq (${OSARCH},Linux)
PROC=$(shell uname -m)
else
ifeq (${OSARCH},FreeBSD)
2005-06-02 18:47:35 +00:00
PROC=$(shell uname -m)
endif
endif
endif
2005-06-02 18:47:35 +00:00
AVERSION=$(shell if grep -q "VERSION_NUM 0104" $(ASTERISK_HEADER_DIR)/asterisk/version.h; then echo V1_4; fi)
ifeq (${USE_OWN_LIBCAPI},yes)
INCLUDE= -I./libcapi20
LIBLINUX=
else
INCLUDE=
2008-02-22 17:01:46 +00:00
LIBLINUX=-lcapi20
endif
2010-04-06 16:59:48 +00:00
ifeq (${DIVA_STREAMING},1)
INCLUDE += -I./divastreaming -I./divastreaming/..
endif
2010-10-19 13:44:06 +00:00
ifeq (${DIVA_STATUS},1)
INCLUDE += -I./divastatus -I./divastatus/..
endif
2005-06-02 18:47:35 +00:00
DEBUG=-g #-pg
INCLUDE+= -I$(ASTERISK_HEADER_DIR)
2006-01-28 20:39:59 +00:00
ifndef C4B
2005-09-10 13:53:22 +00:00
ifeq (${OSNAME},FreeBSD)
INCLUDE+= $(shell [ -d /usr/include/i4b/include ] && \
2005-09-10 13:53:22 +00:00
echo -n -I/usr/include/i4b/include)
endif
ifeq (${OSNAME},NetBSD)
INCLUDE+= $(shell [ -d /usr/include/i4b/include ] && \
echo -n -I/usr/include/i4b/include)
endif
2006-01-28 20:39:59 +00:00
endif #C4B
ifdef C4B
2008-02-22 17:01:46 +00:00
LIBLINUX+=-L/usr/local/lib -llinuxcapi20
2006-01-28 20:39:59 +00:00
endif
2005-08-07 10:27:50 +00:00
CFLAGS=-pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE
CFLAGS+=$(OPTIMIZE)
CFLAGS+=-O2
2005-06-02 18:47:35 +00:00
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q "ppc\|arm\|s390"; then echo "-fsigned-char"; fi)
2010-04-06 16:59:48 +00:00
ifeq (${DIVA_STREAMING},1)
CFLAGS += -DDIVA_STREAMING=1
endif
2010-10-19 13:44:06 +00:00
ifeq (${DIVA_STATUS},1)
CFLAGS += -DDIVA_STATUS=1
endif
2005-06-02 18:47:35 +00:00
LIBS=-ldl -lpthread -lm
CC=gcc
INSTALL=install
SHAREDOS=chan_capi.so
2005-06-02 18:47:35 +00:00
OBJECTS=chan_capi.o chan_capi_utils.o chan_capi_rtp.o chan_capi_command.o xlaw.o dlist.o \
chan_capi_qsig_core.o chan_capi_qsig_ecma.o chan_capi_qsig_asn197ade.o \
2010-10-15 16:50:41 +00:00
chan_capi_qsig_asn197no.o chan_capi_supplementary.o chan_capi_chat.o \
chan_capi_mwi.o
2005-09-11 15:46:46 +00:00
ifeq (${USE_OWN_LIBCAPI},yes)
OBJECTS += libcapi20/convert.o libcapi20/capi20.o libcapi20/capifunc.o
endif
2010-04-06 16:59:48 +00:00
ifeq (${DIVA_STREAMING},1)
OBJECTS += divastreaming/diva_streaming_idi_host_ifc_impl.o \
divastreaming/diva_streaming_idi_host_rx_ifc_impl.o \
divastreaming/diva_streaming_manager.o \
divastreaming/diva_streaming_messages.o \
divastreaming/segment_alloc.o \
divastreaming/chan_capi_divastreaming_utils.o \
2010-04-06 16:59:48 +00:00
divastreaming/runtime.o
endif
2010-10-19 13:44:06 +00:00
ifeq (${DIVA_STATUS},1)
OBJECTS += divastatus/divastatus.o
endif
2005-06-02 18:47:35 +00:00
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=-DCRYPTO
ifneq (${AVERSION},V1_4)
CFLAGS+=`if grep -q AST_JB config.h; then echo -DAST_JB; fi`
endif
2007-03-11 11:47:28 +00:00
.SUFFIXES: .c .o
2005-06-02 18:47:35 +00:00
all: config.h $(SHAREDOS)
clean:
rm -f config.h
rm -f *.so *.o
rm -f libcapi20/*.o
2010-04-06 16:59:48 +00:00
rm -f divastreaming/*.o
2010-10-19 13:44:06 +00:00
rm -f divastatus/*.o
2005-06-02 18:47:35 +00:00
config.h:
./create_config.sh "$(ASTERISK_HEADER_DIR)"
2007-03-11 11:47:28 +00:00
.c.o: config.h
@if [ "$(V)" = "0" ]; then \
echo " [CC] $*.c -> $*.o"; \
else \
echo "$(CC) $(CFLAGS) -c $*.c -o $*.o"; \
fi
@$(CC) $(CFLAGS) -c $*.c -o $*.o;
2008-02-22 17:01:46 +00:00
$(SHAREDOS): $(OBJECTS)
2007-03-11 11:47:28 +00:00
@if [ "$(V)" = "0" ]; then \
echo " [LD] $@ ($^)"; \
else \
2008-02-22 17:01:46 +00:00
echo "$(CC) -shared -Xlinker -x -o $@ $^ $(LIBLINUX)"; \
2007-03-11 11:47:28 +00:00
fi
2008-02-22 17:01:46 +00:00
@$(CC) -shared -Xlinker -x -o $@ $^ $(LIBLINUX)
2005-06-02 18:47:35 +00:00
install: all
$(INSTALL) -d -m 755 $(MODULES_DIR)
2005-06-02 18:47:35 +00:00
for x in $(SHAREDOS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done
install_config: capi.conf
$(INSTALL) -d -m 755 ${CONFIG_DIR}
$(INSTALL) -m 644 capi.conf ${CONFIG_DIR}
2005-06-02 18:47:35 +00:00
samples: install_config
2005-06-02 18:47:35 +00:00