Files
telephony/libs/dahdi-linux/Makefile
T
graysky 4d8d33a023 dahdi-linux: forward-port to 6.18 kernel APIs, fix build flags
This patchset updates DAHDI 3.4.0 to build cleanly on Linux 6.18 and
modern OpenWrt toolchains. Changes include:

* Add kernel API compatibility shims:
  - Provide hrtimer_init() wrapper using hrtimer_setup()
  - Restore from_timer() helper
  - Map del_timer*() to timer_delete*() on >= 6.15, aligning with
    upstream PR #93[1].

* Replace deprecated EXTRA_CFLAGS with ccflags-y across all Kbuilds
  to match upstream kernel changes and resolve build failures. Relating
  to oct612x include paths using ccflags-y, aligning with upstream
  PR #76.[2]

* Use out-of-tree OSLEC for Linux 6.18

* Minor Makefile adjustments for OpenWrt packaging consistency.

These changes collectively restore a complete, warning-free build of
DAHDI 3.4.0 on Linux 6.18 while preserving compatibility with existing
drivers and OpenWrt module packaging.

1. https://github.com/asterisk/dahdi-linux/issues/93
2. https://github.com/asterisk/dahdi-linux/issues/76

Signed-off-by: John Audia <therealgraysky@proton.me>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-05-17 13:30:37 +01:00

111 lines
3.3 KiB
Makefile

#
# Copyright (C) 2014 - 2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=dahdi-linux
PKG_VERSION:=3.4.0
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/asterisk/$(PKG_NAME)/releases/download/v$(PKG_VERSION)
PKG_HASH:=b1344d61b86f68ae3fb774b76657216c6bf3cca89e04bfc6c93dbefccc88c654
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Vittorio Gambaletta <openwrt@vittgam.net>
# With below variable set, $(PKG_SYMVERS_DIR)/dahdi-linux.symvers gets
# generated from drivers/dahdi/Module.symvers.
PKG_EXTMOD_SUBDIRS:=drivers/dahdi
include $(INCLUDE_DIR)/package.mk
define KernelPackage/dahdi
SUBMENU:=Voice over IP
TITLE:=DAHDI basic infrastructure
DEPENDS:=@USB_SUPPORT +kmod-lib-crc-ccitt
URL:=http://www.asterisk.org/
FILES:= $(PKG_BUILD_DIR)/drivers/dahdi/dahdi.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,dahdi)
endef
define KernelPackage/dahdi/description
This package contains DAHDI basic infrastructure.
endef
define KernelPackage/dahdi-echocan-oslec
SUBMENU:=Voice over IP
TITLE:=DAHDI OSLEC echo canceller support
DEPENDS:=kmod-dahdi +LINUX_6_12:kmod-echo +!LINUX_6_12:kmod-oslec
URL:=http://www.asterisk.org/
FILES:=$(PKG_BUILD_DIR)/drivers/dahdi/dahdi_echocan_oslec.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,dahdi_echocan_oslec)
endef
define KernelPackage/dahdi-echocan-oslec/description
This package contains DAHDI OSLEC echo canceller support.
endef
define KernelPackage/dahdi-hfcs
SUBMENU:=Voice over IP
TITLE:=DAHDI driver for HFC-S PCI
DEPENDS:=@PCI_SUPPORT kmod-dahdi
URL:=http://sourceforge.net/projects/dahdi-hfcs/
FILES:= $(PKG_BUILD_DIR)/drivers/dahdi/hfcs/dahdi_hfcs.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,dahdi_hfcs)
endef
define KernelPackage/dahdi-hfcs/description
This package contains DAHDI driver for HFC-S based PCI BRI adapters.
endef
define KernelPackage/dahdi-dummy
SUBMENU:=Voice over IP
TITLE:=dummy DAHDI driver
DEPENDS:=kmod-dahdi
URL:=http://www.asterisk.org/
FILES:= $(PKG_BUILD_DIR)/drivers/dahdi/dahdi_dummy.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,dahdi_dummy)
endef
define KernelPackage/dahdi-dummy/description
This package contains the dummy DAHDI driver providing only DAHDI timing
without any real telephony hardware.
endef
define Build/Configure
endef
define Build/Prepare
$(Build/Prepare/Default)
mkdir -p $(PKG_BUILD_DIR)/drivers/staging/echo/
$(CP) ./files/oslec.h $(PKG_BUILD_DIR)/drivers/staging/echo/
endef
define Build/Compile
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
$(KERNEL_MAKE_FLAGS) \
KSRC="$(LINUX_DIR)"
endef
define Build/InstallDev
mkdir -p $(1)/usr/include/dahdi
$(CP) $(PKG_BUILD_DIR)/include/dahdi/dahdi_config.h $(1)/usr/include/dahdi/
$(CP) $(PKG_BUILD_DIR)/include/dahdi/fasthdlc.h $(1)/usr/include/dahdi/
$(CP) $(PKG_BUILD_DIR)/include/dahdi/kernel.h $(1)/usr/include/dahdi/
$(CP) $(PKG_BUILD_DIR)/include/dahdi/user.h $(1)/usr/include/dahdi/
$(CP) $(PKG_BUILD_DIR)/include/dahdi/wctdm_user.h $(1)/usr/include/dahdi/
endef
$(eval $(call KernelPackage,dahdi))
$(eval $(call KernelPackage,dahdi-echocan-oslec))
$(eval $(call KernelPackage,dahdi-dummy))
$(eval $(call KernelPackage,dahdi-hfcs))