1# 2# Derived from FreeBSD src/share/mk/bsd.prog.mk 3# 4 5ifdef DEBUG_FLAGS 6CFLAGS+=${DEBUG_FLAGS} 7CXXFLAGS+=${DEBUG_FLAGS} 8endif 9 10ifdef NO_SHARED 11ifneq (${NO_SHARED},no) 12ifneq (${NO_SHARED},NO) 13LDFLAGS+= -static 14endif 15endif 16endif 17 18ifdef PROG_CXX 19PROG= ${PROG_CXX} 20endif 21 22ifndef PROG 23$(error PROG or PROG_CXX must be defined.) 24endif 25 26ifndef TOPDIR 27$(error TOPDIR must be defined.) 28endif 29 30ifndef SRCS 31ifdef PROG_CXX 32SRCS= ${PROG}.cc 33else 34SRCS= ${PROG}.c 35endif 36endif 37 38OBJS+= $(patsubst %.cc,%.o,$(patsubst %.c,%.o,${SRCS})) 39 40ifeq ($(FF_DPDK),) 41 FF_DPDK=${TOPDIR}/dpdk/x86_64-native-linuxapp-gcc 42endif 43 44FF_PROG_CFLAGS:= -g -Wall -Werror -DFSTACK 45FF_PROG_CFLAGS+= -I${TOPDIR}/lib -I${TOPDIR}/tools/ipc 46FF_PROG_CFLAGS+= -include ${FF_DPDK}/include/rte_config.h 47FF_PROG_CFLAGS+= -I${FF_DPDK}/include 48 49FF_PROG_LIBS:= -L${TOPDIR}/tools/ipc -lfstack_ipc 50FF_PROG_LIBS+= -L${FF_DPDK}/lib 51FF_PROG_LIBS+= -g -Wl,--no-as-needed -fvisibility=default -pthread -lm -lrt 52FF_PROG_LIBS+= -Wl,--whole-archive -lrte_eal -Wl,-lrte_mempool -lrte_ring 53FF_PROG_LIBS+= -Wl,--no-whole-archive -lrt -lm -ldl -lcrypto 54 55CFLAGS+= ${FF_PROG_CFLAGS} 56CXXFLAGS+= ${FF_PROG_CFLAGS} 57 58LIBS+= ${FF_PROG_LIBS} 59 60${PROG}: ${OBJS} 61ifdef PROG_CXX 62 ${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${LIBS} 63else 64 ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${LIBS} 65endif 66 67 68clean: 69 @rm -f ${PROG} ${OBJS} 70 71all: ${PROG} 72