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