Whamcloud - gitweb
LU-9680 utils: add netlink infrastructure
[fs/lustre-release.git] / lustre / tests / lutf / src / Makefile.am
1 # Administration utilities Makefile
2
3 PYTHON_BIN=python$(PYTHON_VERSION)
4 SWIG_COMPFLAGS=-g -Wall -fPIC -c
5 SWIG_FLAGS=-D__x86_64__
6 SWIG_INCLUDES=-I/usr/include -I/usr/include/linux -I/usr/include/c++/4.4.4/tr1 -I/usr/include/c++/4.4.4/cstdbool
7 DLC_SWIG_FLAGS=-D__x86_64__  -D__arch_lib__ -D_LARGEFILE64_SOURCE=1
8 DLC_SWIG_INCLUDES=-I/usr/include -I/usr/include/asm -I/usr/include/linux -I/usr/lib64/gcc/i686-pc-mingw32/4.4.6/include/
9 DLC_SWIG_INCLUDES+=-I$(top_builddir)/lnet/utils/lnetconfig -I$(top_builddir)/lnet/utils -I$(top_builddir)/lnet/include -I$(top_builddir)/libcfs/include  -I$(top_builddir)/lnet/include/uapi/
10 DLC_INCLUDES=-I/usr/include $(LIBNL3_CFLAGS) -I$(top_builddir)/lnet/utils/lnetconfig -I$(top_builddir)/lnet/utils -I$(top_builddir)/lnet/include -I$(top_builddir)/libcfs/include -I$(top_builddir)/lnet/include/uapi/
11
12 LIBCFS= $(top_builddir)/libcfs/libcfs/.libs/libcfs.a
13 LIBLNETCONFIG=-L$(top_builddir)/lnet/utils/lnetconfig/.libs/
14 LIBLUTF=-L$(top_builddir)/lustre/tests/lutf/src/
15
16 LUTF_AGENT_I=$(top_builddir)/lustre/tests/lutf/src/lutf_agent.i
17 LUTF_AGENT_SWG=$(top_builddir)/lustre/tests/lutf/src/lutf_agent.swg
18 LUTF_GLOBAL_I=$(top_builddir)/lustre/tests/lutf/src/lutf_global.i
19 LUTF_GLOBAL_SWG=$(top_builddir)/lustre/tests/lutf/src/lutf_global.swg
20 LNETCONFIG_I=$(top_builddir)/lustre/tests/lutf/src/liblnetconfig.i
21 GEN_SWIG_TEMPLATES=$(top_builddir)/lustre/tests/lutf/swig_templates
22 UPDATE_LUTF_SWIG_INTF=$(GEN_SWIG_TEMPLATES)/generate_lutf_swig_i.py
23 GEN_SWIG_INTF_PY=$(GEN_SWIG_TEMPLATES)/generate_lnetconfig_swig_i.py
24 LIBLNETCONFIG_WRAP_I=$(top_builddir)/lustre/tests/lutf/src/liblnetconfig_wrap.c
25 LIBLNETCONFIG_WRAP_OBJ=$(top_builddir)/lustre/tests/lutf/src/liblnetconfig_wrap.o
26 LIBLUTF_AGENT_C=$(top_builddir)/lustre/tests/lutf/src/liblutf_agent.c
27 LIBLUTF_AGENT_OBJ=$(top_builddir)/lustre/tests/lutf/src/liblutf_agent.o
28 LIBLUTF_CONNECT_C=$(top_builddir)/lustre/tests/lutf/src/liblutf_connect.c
29 LIBLUTF_CONNECT_OBJ=$(top_builddir)/lustre/tests/lutf/src/liblutf_connect.o
30 LIBLUTF_GLOBAL_C=$(top_builddir)/lustre/tests/lutf/src/liblutf_global.c
31 LIBLUTF_GLOBAL_OBJ=$(top_builddir)/lustre/tests/lutf/src/liblutf_global.o
32
33 CYAML_SRC=$(top_builddir)/lnet/utils/lnetconfig/cyaml.c
34 CYAML_OBJ=$(top_builddir)/lustre/tests/lutf/src/cyaml.o
35
36 clean-local:
37         rm -Rf *.so *_wrap.c *.py *.i
38
39 noinst_PROGRAMS = lutf
40
41 # LUTF sources
42 lutf_SOURCES = lutf.c lutf_listener.c lutf_python.c
43 lutf_SOURCES += lutf_global.h lutf_agent.h lutf_common.h lutf.h lutf_listener.h
44 lutf_SOURCES += lutf_message.h lutf_python.h
45 lutf_CPPFLAGS := $(PYTHON_CPPFLAGS)
46 lutf_LDADD := $(top_builddir)/lnet/utils/lnetconfig/liblnetconfig.la \
47                 $(LIBCFS) $(LIBREADLINE) $(LIBEFENCE) -lyaml -lm -llutf_agent -llutf_connect -llutf_global $(PYTHON_EXTRA_LIBS)
48 lutf_LDFLAGS := $(PYTHON_LIBS) -L$(top_builddir)/lustre/tests/lutf/src
49
50 # 1. generate the lutf_agent_wrap.c and py files
51 # 2. build the lutf_agent plugin
52 # 3. generate the DLC plugin
53 lutf_DEPENDENCIES := _clutf_agent.so _clutf_global.so dlc_glue
54
55 update_swig_intf :
56         echo "updating lutf_agent.i"
57         $(PYTHON_BIN) $(UPDATE_LUTF_SWIG_INTF) $(GEN_SWIG_TEMPLATES) $(LUTF_AGENT_SWG)
58         echo "updating lutf_global.i"
59         $(PYTHON_BIN) $(UPDATE_LUTF_SWIG_INTF) $(GEN_SWIG_TEMPLATES) $(LUTF_GLOBAL_SWG)
60
61 lutf_agent_wrap.c : update_swig_intf
62         echo "generating lutf_agent_warp.c"
63         $(SWIG) -python -includeall $(SWIG_FLAGS) $(SWIG_INCLUDES) $(LUTF_AGENT_I)
64         echo "building lutf_agent_wrap.c"
65         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $@
66
67 _clutf_agent.so : liblutf_agent.so liblutf_connect.so update_swig_intf
68         echo "linking _clutf_agent.so"
69         $(CC) -shared lutf_agent_wrap.o -o $@ $(LIBLUTF) -llutf_agent -llutf_connect
70
71 liblutf_agent.so : lutf_agent_wrap.c
72         echo "building liblutf_agent.c"
73         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $(DLC_INCLUDES) $(CYAML_SRC) $(LIBLUTF_AGENT_C)
74         echo "linking liblutf_agent.so"
75         $(CC) -shared $(LIBLUTF_AGENT_OBJ) $(CYAML_OBJ) -o $@
76
77 lutf_global_wrap.c : update_swig_intf
78         echo "generating lutf_global_warp.c"
79         $(SWIG) -python -includeall $(SWIG_FLAGS) $(SWIG_INCLUDES) $(LUTF_GLOBAL_I)
80         echo "building lutf_global_wrap.c"
81         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $(DLC_INCLUDES) $@
82
83 _clutf_global.so : liblutf_global.so
84         echo "linking _clutf_global.so"
85         $(CC) -shared lutf_global_wrap.o -o $@ $(LIBLUTF) -llutf_global
86
87 liblutf_global.so : lutf_global_wrap.c
88         echo "building liblutf_global.c"
89         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $(LIBLUTF_GLOBAL_C)
90         echo "linking liblutf_global.so"
91         $(CC) -shared $(LIBLUTF_GLOBAL_OBJ) -o $@
92
93 liblutf_connect.so :
94         echo "building liblutf_connect.c"
95         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $(LIBLUTF_CONNECT_C)
96         echo "linking liblutf_connect.so"
97         $(CC) -shared $(LIBLUTF_CONNECT_OBJ) -o $@
98
99 dlc_glue:
100         echo "generating liblnetconfig.i"
101         $(PYTHON_BIN) $(GEN_SWIG_INTF_PY) $(top_builddir)
102         echo "generating liblndconfig_wrap.c"
103         $(SWIG) -python $(DLC_SWIG_FLAGS) $(DLC_SWIG_INCLUDES) $(LNETCONFIG_I)
104         echo "building liblnetconfig_wrap.c"
105         $(CC) $(SWIG_COMPFLAGS) $(PYTHON_CPPFLAGS) $(DLC_INCLUDES) $(LIBLNETCONFIG_WRAP_I) $(CYAML_SRC)
106         echo "linking _lnetconfig.so"
107         $(CC) $(LIBLNETCONFIG) -lyaml -llnetconfig -Wl,--whole-archive $(LIBCFS) $(CYAML_OBJ) -Wl,--no-whole-archive -shared -o _lnetconfig.so $(LIBLNETCONFIG_WRAP_OBJ) $(PYTHON_EXTRA_LIBS) $(PYTHON_LIBS)
108
109 install-exec-local:
110         $(mkinstalldirs) $(DESTDIR)$(libdir)
111         mkdir -p $(DESTDIR)$(libdir)/lustre/tests/lutf/
112         cp .libs/lutf  $(DESTDIR)$(libdir)/lustre/tests/lutf/
113         cp _lnetconfig.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
114         cp _clutf_global.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
115         cp liblutf_global.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
116         cp liblutf_connect.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
117         cp _clutf_agent.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
118         cp liblutf_agent.so $(DESTDIR)$(libdir)/lustre/tests/lutf/
119         cp *.py $(DESTDIR)$(libdir)/lustre/tests/lutf/
120