ALL_OBJS := $(ALL_OBJS-y)
# Get gcc to generate the dependencies for us.
-CFLAGS-y += -MMD -MF .$(@F).d
-DEPS = .*.d
+CFLAGS-y += -MMD -MF $(@D)/.$(@F).d
CFLAGS += $(CFLAGS-y)
include Makefile
+DEPS = .*.d
+define gendep
+ ifneq ($(1),$(subst /,:,$(1)))
+ DEPS += $(dir $(1)).$(basename $(notdir $(1))).d
+ endif
+endef
+$(foreach o,$(filter-out %/,$(obj-y)),$(eval $(call gendep,$(o))))
+
# Ensure each subdirectory has exactly one trailing slash.
subdir-n := $(patsubst %,%/,$(patsubst %/,%,$(subdir-n) $(subdir-)))
subdir-y := $(patsubst %,%/,$(patsubst %/,%,$(subdir-y)))
obj-bin-y += bzimage.init.o
obj-bin-y += clear_page.o
obj-bin-y += copy_page.o
-obj-y += compat.o
+obj-y += compat.o x86_64/compat.o
obj-$(CONFIG_KEXEC) += crash.o
obj-y += debug.o
obj-y += delay.o
obj-y += e820.o
obj-y += extable.o
obj-y += flushtlb.o
-obj-y += platform_hypercall.o
obj-y += i387.o
obj-y += i8259.o
obj-y += io_apic.o
obj-y += microcode_intel.o
# This must come after the vendor specific files.
obj-y += microcode.o
-obj-y += mm.o
+obj-y += mm.o x86_64/mm.o
obj-y += monitor.o
obj-y += mpparse.o
obj-y += nmi.o
obj-y += numa.o
obj-y += pci.o
obj-y += percpu.o
-obj-y += physdev.o
+obj-y += physdev.o x86_64/physdev.o
+obj-y += platform_hypercall.o x86_64/platform_hypercall.o
obj-y += psr.o
obj-y += setup.o
obj-y += shutdown.o
obj-bin-y += entry.o
obj-bin-y += gpr_switch.o
-obj-y += mm.o
obj-y += traps.o
obj-y += machine_kexec.o
obj-y += pci.o
obj-y += mmconf-fam10h.o
obj-y += mmconfig_64.o
obj-y += mmconfig-shared.o
-obj-y += compat.o
obj-y += domain.o
-obj-y += physdev.o
-obj-y += platform_hypercall.o
obj-y += cpu_idle.o
obj-y += cpufreq.o
obj-bin-y += kexec_reloc.o
* compat.c
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/hypercall.h>
#include <compat/xen.h>
#include <compat/physdev.h>
* with this program; If not, see <http://www.gnu.org/licenses/>.
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/lib.h>
#include <xen/init.h>
#include <xen/mm.h>
* physdev.c
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/types.h>
#include <xen/guest_access.h>
#include <compat/xen.h>
* platform_hypercall.c
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/lib.h>
#include <compat/platform.h>
obj-$(crash_debug) += gdbstub.o
obj-$(xenoprof) += xenoprof.o
-subdir-$(CONFIG_COMPAT) += compat
+obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall.o tmem_xen.o xlat.o)
subdir-$(x86_64) += hvm
+++ /dev/null
-obj-y += domain.o
-obj-y += kernel.o
-obj-y += memory.o
-obj-y += multicall.o
-obj-y += xlat.o
-obj-y += tmem_xen.o
*
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/lib.h>
#include <xen/sched.h>
#include <xen/domain.h>
* kernel.c
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/init.h>
#include <xen/lib.h>
#include <xen/errno.h>
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/types.h>
#include <xen/hypercall.h>
#include <xen/guest_access.h>
* multicall.c
*/
-#include <xen/config.h>
+asm(".file \"" __FILE__ "\"");
+
#include <xen/types.h>
#include <xen/multicall.h>
#include <xen/trace.h>
mv -f $@.new $@
compat/%.i: compat/%.c Makefile
- $(CPP) $(filter-out -M% .%.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $<
+ $(CPP) $(filter-out -M% %.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $<
compat/%.c: public/%.h xlat.lst Makefile $(BASEDIR)/tools/compat-build-source.py
mkdir -p $(@D)