[ktap] [PATCHv2 7/8] Modify makefile to build ffi module

  • From: Qingping Hou <dave2008713@xxxxxxxxx>
  • To: ktap@xxxxxxxxxxxxx
  • Date: Fri, 29 Nov 2013 02:36:28 -0500

From: Yicheng Qin <qycqycqycqycqyc@xxxxxxxxx>

This patch adds rule to build ffi module into ktap.
Also, it introduces FFI flag to enable/disable FFI funtionality.

Signed-off-by: Yicheng Qin <qycqycqycqycqyc@xxxxxxxxx>
Signed-off-by: Qingping Hou <qingping.hou@xxxxxxxxx>
---
 Makefile | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/Makefile b/Makefile
index e849784..581690c 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,8 @@ all: mod ktap
 INC = include
 INTP = interpreter
 
+
+FFIDIR = $(INTP)/ffi
 KTAP_LIBS = -lpthread
 
 LIB_OBJS += $(INTP)/lib_base.o $(INTP)/lib_kdebug.o $(INTP)/lib_timer.o \
@@ -25,6 +27,14 @@ INTP_OBJS += $(INTP)/ktap.o $(INTP)/kp_load.o 
$(INTP)/kp_obj.o \
                $(INTP)/kp_opcode.o $(INTP)/kp_transport.o \
                $(LIB_OBJS)
 
+ifdef FFI
+FFI_OBJS += $(FFIDIR)/ffi_call.o $(FFIDIR)/ffi_type.o $(FFIDIR)/ffi_symbol.o \
+    $(FFIDIR)/call_x86_64.o $(FFIDIR)/cdata.o $(FFIDIR)/ffi_util.o
+INTP_OBJS += $(FFI_OBJS)
+LIB_OBJS += $(INTP)/lib_ffi.o
+ccflags-y      += -DCONFIG_KTAP_FFI
+endif
+
 obj-m          += ktapvm.o
 ktapvm-y       := $(INTP_OBJS)
 
@@ -39,6 +49,7 @@ modules_install:
 
 KTAPC_CFLAGS = -Wall -O2
 
+
 # try-cc
 # Usage: option = $(call try-cc, source-to-build, cc-options, msg)
 ifneq ($(V),1)
@@ -108,6 +119,16 @@ ifndef NO_LIBELF
 $(UDIR)/symbol.o: $(UDIR)/symbol.c
        $(QUIET_CC)$(CC) $(DEBUGINFO_FLAG) $(KTAPC_CFLAGS) -o $@ -c $<
 endif
+ifdef FFI
+KTAPC_CFLAGS += -DCONFIG_KTAP_FFI
+$(UDIR)/ffi_type.o: $(INTP)/ffi/ffi_type.c $(INC)/*
+       $(QUIET_CC)$(CC) $(DEBUGINFO_FLAG) $(KTAPC_CFLAGS) -o $@ -c $<
+$(UDIR)/ffi/cparser.o: $(UDIR)/ffi/cparser.c $(INC)/*
+       $(QUIET_CC)$(CC) $(DEBUGINFO_FLAG) $(KTAPC_CFLAGS) -o $@ -c $<
+$(UDIR)/ffi/ctype.o: $(UDIR)/ffi/ctype.c $(INC)/*
+       $(QUIET_CC)$(CC) $(DEBUGINFO_FLAG) $(KTAPC_CFLAGS) -o $@ -c $<
+endif
+
 
 KTAPOBJS =
 KTAPOBJS += $(UDIR)/lex.o
@@ -125,6 +146,11 @@ KTAPOBJS += $(UDIR)/kp_obj.o
 ifndef NO_LIBELF
 KTAPOBJS += $(UDIR)/symbol.o
 endif
+ifdef FFI
+KTAPOBJS += $(UDIR)/ffi_type.o
+KTAPOBJS += $(UDIR)/ffi/cparser.o
+KTAPOBJS += $(UDIR)/ffi/ctype.o
+endif
 
 ktap: $(KTAPOBJS)
        $(QUIET_LINK)$(CC) $(KTAPC_CFLAGS) -o $@ $(KTAPOBJS) $(KTAP_LIBS)
-- 
1.8.1.2


Other related posts:

  • » [ktap] [PATCHv2 7/8] Modify makefile to build ffi module - Qingping Hou