Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Linux userspace tools for live migration
[palacios.git] / linux_usr / Makefile
1 #
2 # Build Static or Dynamic versions of the control utilities
3 #
4 #
5
6 # define this at the command-line or here
7 # to get dynamically linked versions
8 STATIC = 1
9
10 #
11 # Executables that implement core functionality
12 #
13 BASE_EXECS =    v3_mem \
14                 v3_mem_free \
15                 v3_create \
16                 v3_create_bind \
17                 v3_free  \
18                 v3_launch \
19                 v3_stop   \
20                 v3_pause  \
21                 v3_continue \
22                 v3_core_move \
23                 v3_load \
24                 v3_save \
25                 v3_cons \
26                 v3_cons_sc \
27                 v3_stream \
28                 v3_monitor \
29                 v3_hypercall \
30                 v3_debug \
31                 v3_send \
32                 v3_receive \
33
34 #
35 # Examples
36 #
37 EXAMPLE_EXECS = v3_user_host_dev_example \
38                 v3_os_debug \
39                 v3_user_keyed_stream_example \
40                 v3_user_keyed_stream_file 
41
42 #
43 # Currently experimental things
44 #
45 EXPERIMENTAL_EXECS =    v3_simulate  \
46                         v3_inject_ecc_scrubber_mce  \
47                         v3_top_inject \
48                         v3_env_inject \
49                         v3_syscall
50
51
52
53
54 #
55 # Things that have been built elsewhere - just for reference here
56 #
57 PRECOMPILED_EXECS = x0vncserver
58
59 COPIED_EXECS = v3_x0vncserver
60
61 #
62 # Libraries that we need to build
63 #
64 LIBS = libv3_user_host_dev.a libv3_user_keyed_stream.a
65
66 BUILD_EXECS = $(BASE_EXECS) $(EXAMPLE_EXECS) $(EXPERIMENTAL_EXECS) 
67 BUILD_LIBS = $(LIBS)
68
69
70 CFILES = $(BUILD_EXECS:%=%.c) $(BUILD_LIBS:lib%.a=%.c) 
71
72 ifeq ($(STATIC),1)
73   CFLAGS += -static 
74 endif
75
76 CFLAGS += -I../linux_module
77
78 CC = gcc
79 AR = ar
80
81 all: $(BUILD_EXECS) $(BUILD_LIBS) $(COPIED_EXECS)
82
83
84 #
85 # Most tools compile in a straightforward way
86 #
87 % :: %.c v3_ctrl.h
88         $(CC) $(CFLAGS) $< -o $@
89
90
91 #
92 # Console support requires curses
93 #
94 ifeq ($(STATIC),1)
95   CURSES_CFLAGS = -DNCURSES_STATIC
96 endif
97
98 v3_cons: v3_cons.c
99         $(CC) $(CFLAGS) $(CURSES_CFLAGS) $< -lcurses -o $@
100
101 v3_cons_sc: v3_cons_sc.c
102         $(CC) $(CFLAGS) $(CURSES_CFLAGS) $< -lcurses -o $@
103
104
105
106 #
107 # User host devices include a library and some examples
108 #
109 libv3_user_host_dev.a : v3_user_host_dev.c v3_user_host_dev.h v3_ctrl.h
110         $(CC) $(CFLAGS) -I../linux_module -c v3_user_host_dev.c 
111         $(AR) ruv libv3_user_host_dev.a v3_user_host_dev.o
112         rm -f v3_user_host_dev.o
113
114 v3_user_host_dev_example : v3_user_host_dev_example.c libv3_user_host_dev.a
115         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_host_dev -o $@
116
117 v3_os_debug : v3_os_debug.c libv3_user_host_dev.a
118         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_host_dev -o $@
119
120
121 #
122 # User keyed stream support includes a library and examples
123 #
124 #
125 libv3_user_keyed_stream.a :: v3_user_keyed_stream.c v3_user_keyed_stream.h v3_ctrl.h
126         $(CC) $(CFLAGS) -I../linux_module -c v3_user_keyed_stream.c 
127         $(AR) ruv libv3_user_keyed_stream.a v3_user_keyed_stream.o
128         rm -f v3_user_keyed_stream.o
129
130
131 v3_user_keyed_stream_example : v3_user_keyed_stream_example.c libv3_user_keyed_stream.a
132         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_keyed_stream -o $@
133
134 v3_user_keyed_stream_file : v3_user_keyed_stream_file.c libv3_user_keyed_stream.a
135         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_keyed_stream -o $@
136
137
138
139 #
140 # VNC support is compiled separately
141 #
142 v3_x0vncserver : x0vncserver
143         cp x0vncserver v3_x0vncserver
144
145
146 #
147 # Cleanup and dependency builds are automated
148 #
149 clean:
150         rm -f $(BUILD_EXECS) $(BUILD_LIBS) $(COPIED_EXECS)
151
152 depend:
153         $(CC) -MM $(CFILES) -I../linux_module > .dependencies
154