blob: 9d3f90bc64ef277cdd43f643d60004b572d7b5ea [file] [log] [blame]
#
# Makefile for both static and dynamic PF_RING user libraries
#
#
#
# Installation directory
#
INSTDIR = ${DESTDIR}/@INSTALL_PREFIX@
#
# Search directories
#
INCLUDE = -I../../kernel -I../../vPF_RING/guest/kernel @BPF_INCLUDE@
#
# Zero ToolKit
#
ZERO_OBJS = @ZERO_OBJS@
#
# DNA
#
DNA_OBJS = @DNA_OBJS@
#
# Virtual PF_RING
#
VIRTUAL_OBJS = @VIRTUAL_OBJS@
#
# DAG
#
DAG_OBJS = @DAG_OBJS@
#
# Object files
#
OBJS = pfring.o pfring_mod.o pfring_utils.o pfring_mod_stack.o pfring_mod_usring.o pfring_hw_filtering.o ${ZERO_OBJS} ${DNA_OBJS} ${VIRTUAL_OBJS} ${DAG_OBJS}
#
# C compiler and flags
#
#
# CROSS_COMPILE=arm-mv5sft-linux-gnueabi-
#
CC = ${CROSS_COMPILE}gcc
CFLAGS = @CFLAGS@ -Wall -fPIC ${INCLUDE} @HAVE_ZERO@ @HAVE_DNA@ @HAVE_VIRTUAL@ @HAVE_DAG@ @HAVE_BPF@ @HAVE_REDIRECTOR@ @HAVE_HW_TIMESTAMP@ -O2 # -g
LDFLAGS = -g -shared
SYSLIBS = -lpthread @SYSLIBS@
# How to make an object file
%.o: %.c %.h Makefile
# @echo "=*= making object $@ =*="
${CC} ${CFLAGS} -c $< -o $@
#
# Main targets
#
STATICLIB = libpfring.a
DYNAMICLIB = libpfring.so
TARGETS = ${STATICLIB} ${DYNAMICLIB}
RING_H = ../../kernel/linux/pf_ring.h
all: ${TARGETS}
${STATICLIB}: Makefile @ZERO_DEP@ @DNA_DEP@ @VIRTUAL_DEP@ ${OBJS} pfring.h ${RING_H}
@echo "=*= making library $@ =*="
ar rs $@ ${OBJS}
ranlib $@
${DYNAMICLIB}: ${OBJS} @ZERO_DEP@ @DNA_DEP@ @VIRTUAL_DEP@ pfring.h ${RING_H} Makefile
@echo "=*= making library $@ =*="
${CC} ${LDFLAGS} ${OBJS} ${SYSLIBS} -o $@
extract_dna_lib:
ar x @DNA_LIB@
extract_zero_lib:
ar x @ZERO_LIB@
extract_virtual_lib:
ar x @VIRTUAL_LIB@
extract_userspace_ring_lib:
ar x @USERSPACE_RING_LIB@
install: install-static install-shared
install-includes:
mkdir -p ${INSTDIR}/include
cp pfring.h ${INSTDIR}/include/
install-static: ${STATICLIB} install-includes
mkdir -p ${INSTDIR}/lib
cp ${STATICLIB} ${INSTDIR}/lib/
install-shared: ${DYNAMICLIB} install-includes
mkdir -p ${INSTDIR}/lib
cp ${DYNAMICLIB} ${INSTDIR}/lib/
@if test "$(USER)" = "root"; then \
ldconfig; \
fi
clean:
@rm -f ${TARGETS} *.o *~