248 lines
8.7 KiB
Makefile
248 lines
8.7 KiB
Makefile
#
|
|
# Makefile WANPIPE WAN Router Installation/Removal Makefile
|
|
#
|
|
# Copyright (c) 2007, Sangoma Technologies Inc.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version
|
|
# 2 of the License, or (at your option) any later version.
|
|
# ----------------------------------------------------------------------------
|
|
# Author: Nenad Corbic <ncorbic@sangoma.com>
|
|
#
|
|
|
|
PWD=$(shell pwd)
|
|
KBUILD_VERBOSE=0
|
|
|
|
#Default zaptel directory to be overwritten by user
|
|
ifndef ZAPDIR
|
|
ZAPDIR=/usr/src/zaptel
|
|
endif
|
|
|
|
#Kernel version and location
|
|
ifndef KVER
|
|
KVER=$(shell uname -r)
|
|
endif
|
|
ifndef KMOD
|
|
KMOD=/lib/modules/$(KVER)
|
|
endif
|
|
ifndef KDIR
|
|
KDIR=$(KMOD)/build
|
|
endif
|
|
ifndef KINSTDIR
|
|
KINSTDIR=$(KMOD)/kernel
|
|
endif
|
|
|
|
ifndef ARCH
|
|
ARCH=$(shell uname -m)
|
|
endif
|
|
|
|
INSTALLPREFIX=
|
|
|
|
#Local wanpipe includes
|
|
WINCLUDE=patches/kdrivers/include
|
|
HWECINC=patches/kdrivers/wanec/oct6100_api
|
|
KMODDIR=patches/kdrivers
|
|
|
|
#Location of wanpipe source in release
|
|
WAN_DIR=$(PWD)/$(KMODDIR)/src/net
|
|
WANEC_DIR=$(PWD)/$(KMODDIR)/wanec
|
|
MODTYPE=ko
|
|
|
|
#Setup include path and extra cflags
|
|
EXTRA_CFLAGS := -I$(PWD)/$(WINCLUDE) -I$(PWD)/$(WINCLUDE)/annexg -I$(PWD)/patches/kdrivers/wanec -D__LINUX__
|
|
EXTRA_CFLAGS += -I$(WANEC_DIR) -I$(WANEC_DIR)/oct6100_api -I$(WANEC_DIR)/oct6100_api/include
|
|
EXTRA_CFLAGS += -I$(KDIR)/include/linux -I$(ZAPDIR)
|
|
|
|
#Setup utility extra flags and include path
|
|
EXTRA_UTIL_FLAGS = -I$(PWD)/$(WINCLUDE) -I$(KDIR)/include/ -I$(INSTALLPREFIX)/include -I$(INSTALLPREFIX)/usr/include
|
|
EXTRA_UTIL_FLAGS += -I$(PWD)/patches/kdrivers/wanec -I$(PWD)/patches/kdrivers/wanec/oct6100_api/include
|
|
|
|
ENABLE_WANPIPEMON_ZAP=NO
|
|
ZAPHDLC_PRIV=/etc/wanpipe/.zaphdlc
|
|
|
|
RM = @rm -rf
|
|
JUNK = *~ *.bak DEADJOE
|
|
|
|
#Check if zaptel exists
|
|
ifneq (,$(wildcard $(ZAPDIR)/zaptel.h))
|
|
ZAPDIR_PRIV=$(ZAPDIR)
|
|
ENABLE_WANPIPEMON_ZAP=YES
|
|
EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
|
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
|
ZAP_PROT=TDM
|
|
else
|
|
ZAP_OPTS=
|
|
ZAP_PROT=
|
|
ZAPDIR_PRIV=
|
|
ENABLE_WANPIPEMON_ZAP=NO
|
|
endif
|
|
|
|
|
|
|
|
# First pass, kernel Makefile reads module objects
|
|
ifneq ($(KERNELRELEASE),)
|
|
obj-m := sdladrv.o wanrouter.o wanpipe.o wanpipe_syncppp.o wanec.o
|
|
|
|
# Second pass, the actual build.
|
|
else
|
|
|
|
#This will check for zaptel, kenrel source and build utilites and kernel modules
|
|
#within local directory structure
|
|
|
|
#Build with all binaries
|
|
all: _checkzap _checksrc all_bin_kmod all_util
|
|
|
|
#Build only source (NO WAN protocols)
|
|
all_src: _checkzap _checksrc all_kmod all_util
|
|
|
|
|
|
#Build only kernel modules
|
|
all_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KDIR) SUBDIRS=$(WAN_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS) $(shell cat ./patches/kfeatures)" ZAPDIR=$(ZAPDIR_PRIV) ZAPHDLC=$(ZAPHDLC_PRIV) HOMEDIR=$(PWD) modules
|
|
|
|
all_bin_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
|
@if [ -e $(PWD)/ast_build_dir ]; then \
|
|
rm -rf $(PWD)/ast_build_dir; \
|
|
fi
|
|
@mkdir -p $(PWD)/ast_build_dir
|
|
./Setup drivers --builddir=$(PWD)/ast_build_dir --with-linux=$(KDIR) $(ZAP_OPTS) --usr-cc=$(CC) --protocol=DEF-$(ZAP_PROT) --no-zaptel-compile --noautostart --arch=$(ARCH) --silent
|
|
@eval "./patches/copy_modules.sh $(PWD)/ast_build_dir $(WAN_DIR)"
|
|
|
|
|
|
#Clean utilites and kernel modules
|
|
clean: clean_util _cleanoldwanpipe
|
|
$(MAKE) -C $(KDIR) SUBDIRS=$(WAN_DIR) clean
|
|
@find patches/kdrivers -name '.*.cmd' | xargs rm -f
|
|
|
|
|
|
#Clean old wanpipe headers from linux include
|
|
_cleanoldwanpipe: _checksrc
|
|
@eval "./patches/build_links.sh"
|
|
@eval "./patches/clean_old_wanpipe.sh $(WINCLUDE) $(KDIR)/include/linux"
|
|
|
|
|
|
#Check for linux headers
|
|
_checksrc:
|
|
@if [ ! -e $(KDIR) ]; then \
|
|
echo " Error linux headers/source not found: $(KDIR) !"; \
|
|
echo ; \
|
|
exit 1; \
|
|
fi
|
|
@if [ ! -e $(KDIR)/.config ]; then \
|
|
echo " Error linux headers/source not configured: missing $(KDIR)/.config !"; \
|
|
echo ; \
|
|
exit 1; \
|
|
fi
|
|
@if [ ! -e $(KDIR)/include ]; then \
|
|
echo " Error linux headers/source incomplete: missing $(KDIR)/include dir !"; \
|
|
echo ; \
|
|
exit 1; \
|
|
fi
|
|
|
|
_check_kver:
|
|
@eval "./patches/kern_i_private_check.sh $(KDIR)"
|
|
@echo > ./patches/kfeatures;
|
|
@if [ -e ./patches/i_private_found ]; then \
|
|
echo "-DWANPIPE_USE_I_PRIVATE " >> ./patches/kfeatures; \
|
|
fi
|
|
|
|
#Check for zaptel
|
|
_checkzap:
|
|
@echo
|
|
@echo " +--------- Wanpipe Build Info --------------+"
|
|
@echo
|
|
@if [ ! -e $(ZAPDIR)/zaptel.h ]; then \
|
|
echo " Compiling Wanpipe without ZAPTEL Support!"; \
|
|
ZAPDIR_PRIV=; \
|
|
ENABLE_WANPIPEMON_ZAP=NO; \
|
|
else \
|
|
echo " Compiling Wanpipe with ZAPTEL Support!"; \
|
|
echo " Zaptel Dir: $(ZAPDIR)"; \
|
|
echo; \
|
|
eval "$(PWD)/patches/sangoma-zaptel-patch.sh $(ZAPDIR)"; \
|
|
ZAPDIR_PRIV=$(ZAPDIR); \
|
|
ENABLE_WANPIPEMON_ZAP=YES; \
|
|
echo ; \
|
|
echo "Please recompile and reinstall ZAPTEL after installation"; \
|
|
fi
|
|
@echo
|
|
@echo " +-------------------------------------------+"
|
|
@echo
|
|
@sleep 2;
|
|
|
|
#Install all utilities etc and modules
|
|
install: install_util install_etc install_kmod install_inc
|
|
|
|
#Install kernel modules only
|
|
install_kmod:
|
|
install -m 644 -D $(WAN_DIR)/wanrouter.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanrouter.${MODTYPE}
|
|
install -m 644 -D $(WAN_DIR)/af_wanpipe.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/af_wanpipe.${MODTYPE}
|
|
install -m 644 -D $(WAN_DIR)/wanec.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanec.${MODTYPE}
|
|
install -m 644 -D $(WAN_DIR)/wan_aften.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wan_aften.${MODTYPE}
|
|
install -m 644 -D $(WAN_DIR)/sdladrv.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/sdladrv.${MODTYPE}
|
|
install -m 644 -D $(WAN_DIR)/wanpipe.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe.${MODTYPE}
|
|
@rm -f $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}
|
|
@if [ -e $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} ]; then \
|
|
echo "install -m 644 -D $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}"; \
|
|
install -m 644 -D $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}; \
|
|
fi
|
|
@rm -f $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE};
|
|
@if [ -e $(WAN_DIR)/wanpipe_lip.${MODTYPE} ]; then \
|
|
echo "install -m 644 -D $(WAN_DIR)/wanpipe_lip.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE}"; \
|
|
install -m 644 -D $(WAN_DIR)/wanpipe_lip.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE}; \
|
|
fi
|
|
@eval "./patches/rundepmod.sh"
|
|
|
|
endif
|
|
|
|
#Compile utilities only
|
|
all_util:
|
|
$(MAKE) -C util all EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I $(PWD)/api/libsangoma/include" CC=$(CC) \
|
|
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(ARCH)
|
|
$(MAKE) -C util all_wancfg EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I$(PWD)/api/libsangoma/include" CC=$(CC) \
|
|
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(ARCH)
|
|
|
|
#Clean utilities only
|
|
clean_util:
|
|
$(MAKE) -C util clean SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) PREFIX=$(INSTALLPREFIX)
|
|
|
|
#Install utilities only
|
|
install_util:
|
|
$(MAKE) -C util install SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) PREFIX=$(INSTALLPREFIX)
|
|
|
|
#Install etc files
|
|
install_etc:
|
|
@if [ ! -e $(INSTALLPREFIX)/etc/wanpipe ]; then \
|
|
mkdir -p $(INSTALLPREFIX)/etc/wanpipe; \
|
|
fi
|
|
@if [ ! -e $(INSTALLPREFIX)/etc/wanpipe/wanrouter.rc ]; then \
|
|
install -D -m 644 samples/wanrouter.rc $(INSTALLPREFIX)/etc/wanpipe/wanrouter.rc; \
|
|
fi
|
|
@if [ ! -e $(INSTALLPREFIX)/etc/wanpipe/lib ]; then \
|
|
mkdir -p $(INSTALLPREFIX)/etc/wanpipe/lib; \
|
|
fi
|
|
@\cp -f util/wancfg_legacy/lib/* $(INSTALLPREFIX)/etc/wanpipe/lib/
|
|
@\cp -rf firmware $(INSTALLPREFIX)/etc/wanpipe/
|
|
@if [ ! -f $(INSTALLPREFIX)/etc/wanpipe/interfaces ]; then \
|
|
mkdir -p $(INSTALLPREFIX)/etc/wanpipe/interfaces; \
|
|
fi
|
|
@\cp -rf samples $(INSTALLPREFIX)/etc/wanpipe
|
|
@if [ ! -d $(INSTALLPREFIX)/etc/wanpipe/scripts ]; then \
|
|
mkdir -p $(INSTALLPREFIX)/etc/wanpipe/scripts; \
|
|
fi
|
|
@\cp -rf wan_ec $(INSTALLPREFIX)/etc/wanpipe/
|
|
@install -D -m 755 samples/wanrouter $(INSTALLPREFIX)/usr/sbin/wanrouter
|
|
@echo
|
|
@echo "Wanpipe etc installed in $(INSTALLPREFIX)/etc/wanpipe";
|
|
@echo
|
|
|
|
install_inc:
|
|
@if [ -e $(INSTALLPREFIX)/usr/include/wanpipe ]; then \
|
|
\rm -rf $(INSTALLPREFIX)/usr/include/wanpipe; \
|
|
fi
|
|
@\mkdir -p $(INSTALLPREFIX)/usr/include/wanpipe
|
|
@\cp -f $(PWD)/patches/kdrivers/include/*.h $(INSTALLPREFIX)/usr/include/wanpipe/
|
|
@\cp -rf $(PWD)/patches/kdrivers/wanec/oct6100_api/include/ $(INSTALLPREFIX)/usr/include/wanpipe/oct6100_api
|
|
@\cp -rf $(PWD)/patches/kdrivers/wanec/*.h $(INSTALLPREFIX)/usr/include/wanpipe/
|