[cloud] Allow multiple images to be imported simultaneously
[ipxe.git] / src / Makefile.linux
1 # -*- makefile -*- : Force emacs to use Makefile mode
2
3 # Prefix all iPXE symbols to avoid collisions with platform libraries
4 #
5 SYMBOL_PREFIX   = _ipxe__
6
7 # Enable valgrind
8 #
9 CFLAGS          += -UNVALGRIND
10
11 # Use a two-stage link
12 #
13 LDFLAGS         += -r -d
14
15 # Source directories
16 #
17 SRCDIRS         += drivers/linux
18 SRCDIRS         += interface/linux
19 NON_AUTO_SRCS   += interface/linux/linux_api.c
20
21 # Media types
22 #
23 NON_AUTO_MEDIA = linux
24
25 # Compiler flags for building host API wrapper
26 #
27 LINUX_CFLAGS    += -Os -idirafter include -DSYMBOL_PREFIX=$(SYMBOL_PREFIX)
28
29 # Check for libslirp
30 #
31 LIBSLIRP_TEST = $(CC) $(LINUX_CFLAGS) -x c /dev/null -nostartfiles \
32                       -include slirp/libslirp.h -lslirp \
33                       -o /dev/null >/dev/null 2>&1
34 WITH_LIBSLIRP   := $(shell $(LIBSLIRP_TEST) && $(ECHO) yes)
35 ifneq ($(WITH_LIBSLIRP),)
36 LINUX_CFLAGS    += -DHAVE_LIBSLIRP
37 LINUX_LIBS      += -lslirp
38 endif
39
40 # Host API wrapper
41 #
42 $(BIN)/linux_api.o : interface/linux/linux_api.c include/ipxe/linux_api.h \
43                      include/ipxe/slirp.h $(MAKEDEPS)
44         $(QM)$(ECHO) "  [BUILD] $@"
45         $(Q)$(CC) $(LINUX_CFLAGS) $(WORKAROUND_CFLAGS) -o $@ -c $<
46
47 # Rule to generate final binary
48 #
49 $(BIN)/%.linux : $(BIN)/%.linux.tmp $(BIN)/linux_api.o
50         $(QM)$(ECHO) "  [FINISH] $@"
51         $(Q)$(CC) $(LINUX_CFLAGS) $(WORKAROUND_CFLAGS) -o $@ $^ $(LINUX_LIBS)