Skip to contentSkip to conversation

stubdom: make compilation independent of tools/ by building our own copy of the includes

PATCH New Samuel Thibault 1 participant 1 message Jul 9, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 stubdom: make compilation independent of tools/ by building our own copy of the includes

stubdom: make compilation independent of tools/ by building our own copy of the includes

stubdom/Makefile +15 -8
diff -r 7bf8a2879dce stubdom/Makefile
@@ -54,6 +54,7 @@
 TARGET_CPPFLAGS += -isystem $(realpath $(MINI_OS)/include/posix)
 TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include
 TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include
+TARGET_CPPFLAGS += -I$(CURDIR)/include
 
 TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
 
@@ -145,9 +146,15 @@
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
 
-.PHONY: mk-symlinks
-mk-symlinks:
-	[ -h include ] || ln -sf ../tools/include .
+.PHONY: mk-headers
+mk-headers:
+	mkdir -p include/xen && \
+          ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \
+          ( [ -h include/xen/sys ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \
+	  mkdir -p include/xen-foreign && \
+	  ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/tools/include/xen-foreign/*)) include/xen-foreign/ && \
+	  $(MAKE) -C include/xen-foreign/ && \
+	  ( [ -h include/xen/foreign ] || ln -sf ../xen-foreign include/xen/foreign )
 	mkdir -p libxc
 	[ -h libxc/Makefile ] || ( cd libxc && \
 	  ln -sf ../$(XEN_ROOT)/tools/libxc/*.h . && \
@@ -178,7 +185,7 @@
 
 .PHONY: libxc
 libxc: libxc/libxenctrl.a libxc/libxenguest.a
-libxc/libxenctrl.a libxc/libxenguest.a:: cross-zlib mk-symlinks
+libxc/libxenctrl.a libxc/libxenguest.a:: cross-zlib mk-headers
 	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C libxc
 
 #######
@@ -186,7 +193,7 @@
 #######
 
 .PHONY: ioemu
-ioemu: cross-zlib cross-libpci mk-symlinks libxc
+ioemu: cross-zlib cross-libpci mk-headers libxc
 	[ -f ioemu/config-host.mak ] || \
 	  ( cd ioemu ; \
           XEN_TARGET_ARCH=$(XEN_TARGET_ARCH) CFLAGS="$(TARGET_CFLAGS)" sh configure --prefix=/usr --enable-stubdom $(IOEMU_OPTIONS))
@@ -197,7 +204,7 @@
 ######
 
 .PHONY: caml
-caml: cross-newlib mk-symlinks
+caml: cross-newlib mk-headers
 	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-cvs 
 
 ###
@@ -205,7 +212,7 @@
 ###
 
 .PHONY: c
-c: cross-newlib mk-symlinks
+c: cross-newlib mk-headers
 	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-cvs 
 
 ######
@@ -219,7 +226,7 @@
 	done
 
 .PHONY: grub
-grub: grub-cvs cross-newlib mk-symlinks
+grub: grub-cvs cross-newlib mk-headers
 	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@
 
 ########
tools/include/xen-sys/MiniOS/privcmd.h new file +18 -0
@@ -0,0 +1,18 @@
+#ifndef __MINIOS_PUBLIC_PRIVCMD_H__
+#define __MINIOS_PUBLIC_PRIVCMD_H__
+
+#include <sys/types.h>
+
+typedef struct privcmd_hypercall
+{
+	u64 op;
+	u64 arg[5];
+} privcmd_hypercall_t;
+
+typedef struct privcmd_mmap_entry {
+	u64 va;
+	u64 mfn;
+	u64 npages;
+} privcmd_mmap_entry_t; 
+
+#endif /* __MINIOS_PUBLIC_PRIVCMD_H__ */