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.


added host_pci passthrough PCI support
[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                 v3_pci
34
35
36 #
37 # Examples
38 #
39 EXAMPLE_EXECS = v3_user_host_dev_example \
40                 v3_os_debug \
41                 v3_user_keyed_stream_example \
42                 v3_user_keyed_stream_file 
43
44 #
45 # Currently experimental things
46 #
47 EXPERIMENTAL_EXECS =    v3_simulate  \
48                         v3_inject_ecc_scrubber_mce  \
49                         v3_top_inject \
50                         v3_env_inject \
51                         v3_syscall
52
53
54
55
56 #
57 # Things that have been built elsewhere - just for reference here
58 #
59 PRECOMPILED_EXECS = x0vncserver
60
61 COPIED_EXECS = v3_x0vncserver
62
63 #
64 # Libraries that we need to build
65 #
66 LIBS = libv3_user_host_dev.a libv3_user_keyed_stream.a
67
68 BUILD_EXECS = $(BASE_EXECS) $(EXAMPLE_EXECS) $(EXPERIMENTAL_EXECS) 
69 BUILD_LIBS = $(LIBS)
70
71
72 CFILES = $(BUILD_EXECS:%=%.c) $(BUILD_LIBS:lib%.a=%.c) 
73
74 ifeq ($(STATIC),1)
75   CFLAGS += -static 
76 endif
77
78 CFLAGS += -I../linux_module
79
80 CC = gcc
81 AR = ar
82
83 all: $(BUILD_EXECS) $(BUILD_LIBS) $(COPIED_EXECS)
84
85
86 #
87 # Most tools compile in a straightforward way
88 #
89 % :: %.c v3_ctrl.h
90         $(CC) $(CFLAGS) $< -o $@
91
92
93 #
94 # Console support requires curses
95 #
96 ifeq ($(STATIC),1)
97   CURSES_CFLAGS = -DNCURSES_STATIC
98 endif
99
100 v3_cons: v3_cons.c
101         $(CC) $(CFLAGS) $(CURSES_CFLAGS) $< -lcurses -o $@
102
103 v3_cons_sc: v3_cons_sc.c
104         $(CC) $(CFLAGS) $(CURSES_CFLAGS) $< -lcurses -o $@
105
106
107
108 #
109 # User host devices include a library and some examples
110 #
111 libv3_user_host_dev.a : v3_user_host_dev.c v3_user_host_dev.h v3_ctrl.h
112         $(CC) $(CFLAGS) -I../linux_module -c v3_user_host_dev.c 
113         $(AR) ruv libv3_user_host_dev.a v3_user_host_dev.o
114         rm -f v3_user_host_dev.o
115
116 v3_user_host_dev_example : v3_user_host_dev_example.c libv3_user_host_dev.a
117         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_host_dev -o $@
118
119 v3_os_debug : v3_os_debug.c libv3_user_host_dev.a
120         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_host_dev -o $@
121
122
123 #
124 # User keyed stream support includes a library and examples
125 #
126 #
127 libv3_user_keyed_stream.a :: v3_user_keyed_stream.c v3_user_keyed_stream.h v3_ctrl.h
128         $(CC) $(CFLAGS) -I../linux_module -c v3_user_keyed_stream.c 
129         $(AR) ruv libv3_user_keyed_stream.a v3_user_keyed_stream.o
130         rm -f v3_user_keyed_stream.o
131
132
133 v3_user_keyed_stream_example : v3_user_keyed_stream_example.c libv3_user_keyed_stream.a
134         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_keyed_stream -o $@
135
136 v3_user_keyed_stream_file : v3_user_keyed_stream_file.c libv3_user_keyed_stream.a
137         $(CC) $(CFLAGS) $< -I../linux_module -L. -lv3_user_keyed_stream -o $@
138
139
140
141 #
142 # VNC support is compiled separately
143 #
144 v3_x0vncserver : x0vncserver
145         cp x0vncserver v3_x0vncserver
146
147
148 #
149 # Cleanup and dependency builds are automated
150 #
151 clean:
152         rm -f $(BUILD_EXECS) $(BUILD_LIBS) $(COPIED_EXECS)
153
154 depend:
155         $(CC) -MM $(CFILES) -I../linux_module > .dependencies
156