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.


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