git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6321 818b1a75-f10b-46b9-bf7c-635c3b92a50f
105 lines
3.5 KiB
Makefile
Executable File
105 lines
3.5 KiB
Makefile
Executable File
####################################################################################
|
|
# Makefile for iptables extension for the GTPU target and GTPu klm
|
|
#
|
|
# Copyright (c) 2010-2011 Polaris Networks
|
|
# Author: Pradip Biswas <pradip_biswas@polarisnetworks.net>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
####################################################################################
|
|
|
|
|
|
export BIN_DIR ?= $(shell pwd)/Bin
|
|
KVERSION = $(shell uname -r)
|
|
KVERSION_LAST_DIGIT = $(shell echo ${KVERSION} | cut -d "." -f 3 | cut -d "-" -f 1)
|
|
|
|
obj-m = xt_GTPURH.o
|
|
EXTRA_CFLAGS += -DKVERSION=$(KVERSION_LAST_DIGIT)
|
|
|
|
all: xtlib
|
|
echo "Building for Kernel Version: $(KVERSION_LAST_DIGIT)"
|
|
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
|
|
mv xt_GTPURH.ko $(BIN_DIR)/
|
|
|
|
clean: libclean
|
|
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
|
|
|
|
################################################################################
|
|
# The next section is used by libxt_GTPURH
|
|
################################################################################
|
|
|
|
XT_IPTABLES_VERSION = $(shell /sbin/iptables -V | cut -d " " -f 2 | cut -b 2-)
|
|
IPT_FIRST_NUM = $(shell echo ${XT_IPTABLES_VERSION} | cut -d "." -f 1 | cut -d "-" -f 1)
|
|
IPT_SECOND_NUM = $(shell echo ${XT_IPTABLES_VERSION} | cut -d "." -f 2 | cut -d "-" -f 1)
|
|
IPT_THIRD_NUM = $(shell echo ${XT_IPTABLES_VERSION} | cut -d "." -f 3 | cut -d "-" -f 1)
|
|
IPTVERSION = $(IPT_FIRST_NUM)$(IPT_SECOND_NUM)$(IPT_THIRD_NUM)
|
|
IPTABLES_VERSION_STRING = \"$(IPT_FIRST_NUM).$(IPT_SECOND_NUM).$(IPT_THIRD_NUM)\"
|
|
|
|
LIB_CC := gcc
|
|
|
|
ifeq ($(IPTVERSION), 135)
|
|
LIB_LD := ld
|
|
else
|
|
LIB_LD := gcc
|
|
endif
|
|
|
|
LIB_CFLAGS := -fPIC -Wall -MMD -D_LARGEFILE_SOURCE=1 -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 \
|
|
-D_REENTRANT -pipe -DXTABLES_LIBDIR=\"/usr/local/libexec/xtables\" -DXTABLES_INTERNAL \
|
|
-D_INIT=libxt_GTPURH_init -DPIC -fPIC -O2 \
|
|
-DIPTVERSION=$(IPTVERSION) \
|
|
-DIPTABLES_VERSION_STRING=$(IPTABLES_VERSION_STRING)
|
|
|
|
XT_TARGET := xt_GTPURH
|
|
XT_LIBNAME := lib$(XT_TARGET).so
|
|
XT_BUILD_DIR = $(BIN_DIR)/$(XT_TARGET)
|
|
|
|
# Get the system distribution type
|
|
IsDebian=$(shell /bin/cat /proc/version | grep -i -e ubuntu -e debian)
|
|
IsRedHat=$(shell /bin/cat /proc/version | grep -i -e centos -e "red hat" -e suse -e fedora)
|
|
|
|
# Change the ipq library name for 64-bit Debian-based distributions
|
|
ifeq ($(X86_64),x86_64)
|
|
ifneq ($(strip $(IsDebian)),)
|
|
LIB_IPQ=_pic
|
|
endif
|
|
endif
|
|
|
|
INCLUDE_DIR = -I. \
|
|
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include \
|
|
-I/usr/lib64/glib-2.0/include
|
|
|
|
XT_SOURCES = libxt_GTPURH.c
|
|
|
|
XT_OBJECTS := $(addprefix $(XT_BUILD_DIR)/, $(notdir $(XT_SOURCES:.c=.o)))
|
|
|
|
xtlib: XT
|
|
|
|
XT: DF = $(XT_BUILD_DIR)/$(*F)
|
|
XT: $(XT_BUILD_DIR) $(BIN_DIR)/$(XT_LIBNAME)
|
|
|
|
-include $(addprefix $(XT_BUILD_DIR)/, $(notdir $(XT_SOURCES:.c=.P)))
|
|
|
|
$(XT_BUILD_DIR):
|
|
@echo Build Directory is $@
|
|
@if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi
|
|
@if [ ! -d $@ ]; then mkdir $@; fi
|
|
|
|
$(BIN_DIR)/$(XT_LIBNAME): $(XT_OBJECTS)
|
|
@echo Linking $@
|
|
@$(LIB_LD) -shared $(XT_OBJECTS) -o $@
|
|
|
|
$(XT_BUILD_DIR)/%.o : %.c
|
|
@echo "Building GTPuRH ext for version $(IPTVERSION) $(IPTABLES_VERSION_STRING)"
|
|
@echo Compiling $<
|
|
@$(LIB_CC) $(LIB_CFLAGS) -MF $(DF).d $(INCLUDE_DIR) -o $@ -c $<
|
|
@cp $(DF).d $(DF).P; \
|
|
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
-e '/^$$/ d' -e 's/$$/ :/' < $(DF).d >> $(DF).P; \
|
|
rm -f $(DF).d
|
|
|
|
libclean:
|
|
@rm -rf $(BIN_DIR)/$(XT_LIBNAME) $(XT_BUILD_DIR)
|
|
|