| 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 |
|
|---|