1 # Administration utilities Makefile
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 -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/
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/
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
33 CYAML_SRC=$(top_builddir)/lnet/utils/lnetconfig/cyaml.c
34 CYAML_OBJ=$(top_builddir)/lustre/tests/lutf/src/cyaml.o
37 rm -Rf *.so *_wrap.c *.py *.i
39 noinst_PROGRAMS = lutf
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
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
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)
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) $@
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
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 $@
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) $@
83 _clutf_global.so : liblutf_global.so
84 echo "linking _clutf_global.so"
85 $(CC) -shared lutf_global_wrap.o -o $@ $(LIBLUTF) -llutf_global
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 $@
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 $@
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)
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/