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.


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