VirtualBox

root/trunk/include/Makefile.kmk

Revision 11820, 3.0 kB (checked in by vboxsync, 1 week ago)

made Qt4 the default GUI; VBOX_VRDP => VBOX_WITH_VRDP; VBOX_HGCM => VBOX_WITH_HGCM; Makefile cleanup

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1 # $Id$
2 ## @file
3 # Some hacks to allow syntax and prerequisite include checking of headers.
4 # This makefile doesn't and shouldn't build successfully.
5 #
6
7 #
8 # Copyright (C) 2006-2007 Sun Microsystems, Inc.
9 #
10 # This file is part of VirtualBox Open Source Edition (OSE), as
11 # available from http://www.virtualbox.org. This file is free software;
12 # you can redistribute it and/or modify it under the terms of the GNU
13 # General Public License (GPL) as published by the Free Software
14 # Foundation, in version 2 as it comes in the "COPYING" file of the
15 # VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 #
18 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 # Clara, CA 95054 USA or visit http://www.sun.com if you need
20 # additional information or have any questions.
21 #
22
23 DEPTH = ..
24 include $(KBUILD_PATH)/header.kmk
25
26 LIBRARIES = SyntaxVBoxIncludeR3 SyntaxVBoxIncludeR0 SyntaxVBoxIncludeGC
27
28 cpp_hdrs := \
29         VBox/dbggui.h \
30         VBox/settings.h \
31         iprt/autores.h \
32         iprt/cpputils.h \
33         iprt/lock.h
34
35 r3_only_hdrs := \
36         VBox/vrdpapi.h \
37         VBox/vrdpusb.h \
38         VBox/VBoxHDD-new.h \
39         VBox/VBoxHDD.h \
40         iprt/tcp.h \
41
42 hdrs := $(filter-out \
43         VBox/VBoxGuest16.h \
44         VBox/tapwin32.h \
45         VBox/usblib-win.h, \
46         $(wildcard VBox/*.h iprt/*.h))
47
48 hdrs.r3 := $(filter-out VBox/VBoxGuestLib.h, $(hdrs))
49 hdrs.r0 := $(filter-out $(cpp_hdrs) $(r3_only_hdrs), $(hdrs))
50 hdrs.gc := $(filter-out \
51         VBox/VBoxGuestLib.h \
52         VBox/gvm.h \
53         iprt/thread.h \
54         iprt/mem.h \
55         iprt/alloc.h \
56         $(cpp_hdrs) $(r3_only_hdrs), \
57         $(hdrs))
58
59 SyntaxVBoxIncludeR3_TEMPLATE = VBOXMAINEXE
60 SyntaxVBoxIncludeR3_DEFS = VBOX_WITH_HGCM
61 SyntaxVBoxIncludeR3_SOURCES := \
62         $(addprefix $(PATH_TARGET)/,$(subst .h,-c.c,     $(subst /,_,$(hdrs.r3)))) \
63         $(addprefix $(PATH_TARGET)/,$(subst .h,-cpp.cpp, $(subst /,_,$(hdrs.r3))))
64
65 SyntaxVBoxIncludeR0_TEMPLATE = VBOXR0
66 SyntaxVBoxIncludeR0_DEFS = VBOX_WITH_HGCM
67 SyntaxVBoxIncludeR0_SOURCES := \
68         $(addprefix $(PATH_TARGET)/,$(subst .h,-c.c,     $(subst /,_,$(hdrs.r0)))) \
69         $(addprefix $(PATH_TARGET)/,$(subst .h,-cpp.cpp, $(subst /,_,$(hdrs.r0))))
70
71 SyntaxVBoxIncludeGC_TEMPLATE = VBOXGC
72 SyntaxVBoxIncludeGC_DEFS = VBOX_WITH_HGCM
73 SyntaxVBoxIncludeGC_SOURCES := \
74         $(addprefix $(PATH_TARGET)/,$(subst .h,-c.c,     $(subst /,_,$(hdrs.gc)))) \
75         $(addprefix $(PATH_TARGET)/,$(subst .h,-cpp.cpp, $(subst /,_,$(hdrs.gc))))
76
77
78
79 include $(KBUILD_PATH)/footer.kmk
80
81
82 define def_hdr
83 $(eval flatname := $(subst /,_,$(basename $(hdr))))
84 $$(PATH_TARGET)/$(flatname)-cpp.cpp:
85         $$(MKDIR) -p $$(dir $$@)
86         $$(RM) -f $$@
87         $$(APPEND) $$@ "#include <$(hdr)>"
88         $$(APPEND) $$@ "int main(int argc, char **argv) {(void)argc; (void)argv; return 0;}"
89
90 $$(PATH_TARGET)/$(flatname)-c.c: Makefile.kmk
91         $$(MKDIR) -p $$(dir $$@)
92         $$(RM) -f $$@
93 ifn1of ($(hdr),$(cpp_hdrs))
94         $$(APPEND) $$@ "#include <$(hdr)>"
95 endif
96         $$(APPEND) $$@ "int main(int argc, char **argv) {(void)argc; (void)argv; return 0;}"
97
98 $(subst .h,.o,$(notdir $(hdr)))::
99         $$(MAKE) -f $(MAKEFILE) $(flatname)-c.o $(flatname)-cpp.o
100
101 endef
102
103 $(foreach hdr,$(hdrs), $(eval $(def_hdr)))
104
Note: See TracBrowser for help on using the browser.

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy