HOSTCC = gcc
HOSTCXX = g++
-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
+HOSTCFLAGS = -Wall -Wstrict-prototypes -fomit-frame-pointer \
-Wno-unused -Wno-format-security -U_FORTIFY_SOURCE
-HOSTCXXFLAGS = -O2
+HOSTCXXFLAGS = -O
# Decide whether to build built-in, modular, or both.
# Normally, just do built-in.
CPPFLAGS := $(V3_INCLUDE) -D__V3VEE__
-CFLAGS := -fno-stack-protector -Wall -O -Werror -fPIC -mno-red-zone
+CFLAGS := -fno-stack-protector -Wall -Werror -fPIC -mno-red-zone -fno-common
+#-fPIC
+#-ffreestanding
-LDFLAGS := --whole-archive
+
+LDFLAGS := --whole-archive
ifeq ($(call cc-option-yn, -fgnu89-inline),y)
CFLAGS += -fgnu89-inline
core-y := palacios/src/palacios/
libs-y := palacios/lib/$(ARCH)/
devices-y := palacios/src/devices/
+modules-y := modules/
ifeq ($(dot-config),1)
# In this section, we need .config
ifdef CONFIG_DEBUG_INFO
CFLAGS += -g
+else
+CFLAGS += -O
endif
palacios-dirs := $(patsubst %/,%,$(filter %/, \
- $(core-y) $(devices-y) $(libs-y)))
+ $(core-y) $(devices-y) $(libs-y)) $(modules-y))
#palacios-alldirs := $(sort $(palacios-dirs) $(patsubst %/,%,$(filter %/, \
# $(core-n) $(core-) $(devices-n) $(devices-) \
palacios-cleandirs := $(sort $(palacios-dirs) $(patsubst %/,%,$(filter %/, \
- $(core-n) $(core-) $(devices-n) $(devices-))))
+ $(core-n) $(core-) $(devices-n) $(devices-) $(modules-n) $(modules-))))
core-y := $(patsubst %/, %/built-in.o, $(core-y))
devices-y := $(patsubst %/, %/built-in.o, $(devices-y))
libs-y := $(patsubst %/, %/built-in.o, $(libs-y))
+modules-y := $(patsubst %/, %/built-in.o, $(modules-y))
#core-y := $(patsubst %/, %/lib.a, $(core-y))
#devices-y := $(patsubst %/, %/lib.a, $(devices-y))
-palacios := $(core-y) $(devices-y) $(libs-y)
+palacios := $(core-y) $(devices-y) $(libs-y) $(modules-y)
# Rule to link palacios - also used during CONFIG_KALLSYMS
# May be overridden by /Makefile.$(ARCH)
tags TAGS cscope*
+# \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
+
+
# clean - Delete most, but leave enough to build external modules
#
clean: rm-dirs := $(CLEAN_DIRS)
$(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
+
clean: archclean $(clean-dirs)
$(call cmd,rmdirs)
$(call cmd,rmfiles)
@find . $(RCS_FIND_IGNORE) \
\( -name 'lib' \) -prune -o \
- \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
+ \( -name '*.[oas]' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \
-type f -print | xargs rm -f
ALLSOURCE_ARCHS := $(ARCH)
define all-sources
- ( find $(__srctree)/palacios $(RCS_FIND_IGNORE) \
+ ( find $(__srctree)palacios $(RCS_FIND_IGNORE) \
\( -name lib \) -prune -o \
-name '*.[chS]' -print; )
endef