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.


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