1 | # $Id: Makefile.kmk 16480 2009-02-03 10:31:14Z vboxsync $
|
---|
2 | ## @file
|
---|
3 | # Sub-Makefile for the VirtualBox Windows Chromium OpenGL ICD.
|
---|
4 | #
|
---|
5 |
|
---|
6 | #
|
---|
7 | # Copyright (C) 2008 Sun Microsystems, Inc.
|
---|
8 | #
|
---|
9 | # This file is part of VirtualBox Open Source Edition (OSE), as
|
---|
10 | # available from http://www.virtualbox.org. This file is free software;
|
---|
11 | # you can redistribute it and/or modify it under the terms of the GNU
|
---|
12 | # General Public License (GPL) as published by the Free Software
|
---|
13 | # Foundation, in version 2 as it comes in the "COPYING" file of the
|
---|
14 | # VirtualBox OSE distribution. VirtualBox OSE is distributed in the
|
---|
15 | # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
|
---|
16 | #
|
---|
17 | # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
|
---|
18 | # Clara, CA 95054 USA or visit http://www.sun.com if you need
|
---|
19 | # additional information or have any questions.
|
---|
20 | #
|
---|
21 |
|
---|
22 | SUB_DEPTH = ../../../../../..
|
---|
23 | include $(KBUILD_PATH)/subheader.kmk
|
---|
24 |
|
---|
25 | ifndef VBOX_BLD_PYTHON
|
---|
26 | if1of ($(KBUILD_HOST), win)
|
---|
27 | VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) python-not-found.exe)
|
---|
28 | else
|
---|
29 | VBOX_BLD_PYTHON := python$(HOSTSUFF_EXE)
|
---|
30 | endif
|
---|
31 | endif
|
---|
32 |
|
---|
33 | ## @todo r=bird: This conflicts with the export you're doing in GuestHost for reasons pointed out there.
|
---|
34 | GLAPI_PATH := $(PATH_ROOT)/src/VBox/GuestHost/OpenGL/glapi_parser
|
---|
35 | if1of ($(KBUILD_HOST), win)
|
---|
36 | export PYTHONPATH := $(GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
|
---|
37 | else
|
---|
38 | export PYTHONPATH := $(GLAPI_PATH):$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer:$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
|
---|
39 | endif
|
---|
40 | ## @todo r=bird: See GuestHost makefile.
|
---|
41 | APIFILES := $(GLAPI_PATH)/apiutil.py $(GLAPI_PATH)/APIspec.txt
|
---|
42 |
|
---|
43 | ## @todo r=bird: This appears to be common between GuestHost and this file, so move up to Config.kmk. Put it before the SDKs or something.
|
---|
44 | ## Also, see comments in the GuestHost makefile.
|
---|
45 | # Actually this
|
---|
46 | VBOXCROGL_GENFILES := VBoxOGLgen
|
---|
47 | PATH_VBOXCROGL_GENFILES := $(PATH_OBJ)/$(VBOXCROGL_GENFILES)
|
---|
48 | PATH_VBOXCROGL_INCLUDE := $(PATH_ROOT)/src/VBox/GuestHost/OpenGL/include
|
---|
49 |
|
---|
50 | # Include sub-makefile(s).
|
---|
51 | include $(PATH_SUB_CURRENT)/array/Makefile.kmk
|
---|
52 | include $(PATH_SUB_CURRENT)/pack/Makefile.kmk
|
---|
53 | include $(PATH_SUB_CURRENT)/passthrough/Makefile.kmk
|
---|
54 |
|
---|
55 | $$(PATH_VBoxOGL)/cropengl.def: $(PATH_SUB_CURRENT)/defs.py $(APIFILES) | $$(dir $$@)
|
---|
56 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
57 |
|
---|
58 | ifeq ($(KBUILD_TARGET),win)
|
---|
59 | $$(PATH_VBoxOGL)/getprocaddress.c: $(PATH_SUB_CURRENT)/windows_getprocaddress.py $(APIFILES) | $$(dir $$@)
|
---|
60 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
61 | else
|
---|
62 | $$(PATH_VBoxOGL)/getprocaddress.c: $(PATH_SUB_CURRENT)/getprocaddress.py $(APIFILES) | $$(dir $$@)
|
---|
63 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
64 | endif
|
---|
65 |
|
---|
66 | ifeq ($(KBUILD_TARGET),win)
|
---|
67 | $$(PATH_VBoxOGL)/windows_exports.asm: \
|
---|
68 | $(PATH_SUB_CURRENT)/windows_i386_exports.py \
|
---|
69 | $(APIFILES) $(PATH_SUB_CURRENT)/entrypoints.py \
|
---|
70 | | $$(dir $$@)
|
---|
71 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
72 | $$(PATH_VBoxOGL)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(APIFILES) | $$(dir $$@)
|
---|
73 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
74 | $$(PATH_VBoxOGL)/gen/getprocaddress$(SUFF_OBJ): $(PATH_TARGET)/VBoxOGL/cr_gl.h
|
---|
75 | endif
|
---|
76 |
|
---|
77 | ifeq ($(KBUILD_TARGET),linux)
|
---|
78 | $$(PATH_VBoxOGL)/linux_exports.asm: \
|
---|
79 | $(PATH_SUB_CURRENT)/Linux_i386_exports.py \
|
---|
80 | $(APIFILES) $(PATH_SUB_CURRENT)/entrypoints.py \
|
---|
81 | | $$(dir $$@)
|
---|
82 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
83 | endif
|
---|
84 |
|
---|
85 | $$(PATH_VBoxOGL)/NULLfuncs.c: $(PATH_SUB_CURRENT)/NULLfuncs.py $(APIFILES) | $$(dir $$@)
|
---|
86 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
87 |
|
---|
88 | $$(PATH_VBoxOGL)/tsfuncs.c: $(PATH_SUB_CURRENT)/tsfuncs.py $(APIFILES) | $$(dir $$@)
|
---|
89 | $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
|
---|
90 |
|
---|
91 | ## @todo r=bird: See comments elsewhere about the GEN_?_FILES stuff.
|
---|
92 | GEN_C_FILES := getprocaddress.c NULLfuncs.c
|
---|
93 | GEN_C_FILES := $(addprefix $(PATH_TARGET)/VBoxOGL/, $(GEN_C_FILES))
|
---|
94 |
|
---|
95 | GEN_C_FILES.win := cropengl.def
|
---|
96 | GEN_C_FILES.win := $(addprefix $(PATH_TARGET)/VBoxOGL/, $(GEN_C_FILES.win))
|
---|
97 |
|
---|
98 | GEN_ASM_FILES.win := windows_exports.asm
|
---|
99 | GEN_ASM_FILES.win := $(addprefix $(PATH_TARGET)/VBoxOGL/, $(GEN_ASM_FILES.win))
|
---|
100 |
|
---|
101 | GEN_H_FILES.win := cr_gl.h
|
---|
102 | GEN_H_FILES.win := $(addprefix $(PATH_TARGET)/VBoxOGL/, $(GEN_H_FILES.win))
|
---|
103 |
|
---|
104 | THREADSAFE=1
|
---|
105 |
|
---|
106 | DLLS += VBoxOGL
|
---|
107 |
|
---|
108 | VBoxOGL_TEMPLATE = VBOXGUESTR3NPDLL
|
---|
109 | VBoxOGL_DEFS = CHROMIUM_THREADSAFE VBOX_WITH_HGCM
|
---|
110 | VBoxOGL_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1
|
---|
111 | VBoxOGL_DEFS.linux = Linux=1
|
---|
112 | VBoxOGL_DEFS.solaris = SunOS=1 GLEXT_64_TYPES_DEFINED
|
---|
113 | VBoxOGL_INCS := \
|
---|
114 | $(PATH_SUB_CURRENT) \
|
---|
115 | $(PATH_VBOXCROGL_INCLUDE) \
|
---|
116 | $(PATH_VBOXCROGL_GENFILES) \
|
---|
117 | $(PATH_TARGET)/VBoxOGL
|
---|
118 | VBoxOGL_SOURCES := \
|
---|
119 | load.c \
|
---|
120 | stub.c \
|
---|
121 | context.c \
|
---|
122 | $(GEN_C_FILES)
|
---|
123 | VBoxOGL_SOURCES.win := wgl.c icd_drv.c ogl_hgcm.c VBoxCROGL.rc $(GEN_ASM_FILES.win) $(GEN_C_FILES.win)
|
---|
124 | VBoxOGL_SOURCES.linux := $(PATH_TARGET)/VBoxOGL/linux_exports.asm glx.c xfont.c
|
---|
125 | VBoxOGL_DEPS.win := $(GEN_H_FILES.win)
|
---|
126 | VBoxOGL_CLEAN := $(GEN_C_FILES)
|
---|
127 | VBoxOGL_CLEAN.win := $(GEN_ASM_FILES.win) $(GEN_H_FILES.win) $(GEN_C_FILES.win)
|
---|
128 |
|
---|
129 | ifeq ($(THREADSAFE), 1)
|
---|
130 | VBoxOGL_DEFS += CHROMIUM_THREADSAFE
|
---|
131 | VBoxOGL_SOURCES += $(PATH_TARGET)/VBoxOGL/tsfuncs.c
|
---|
132 | VBoxOGL_CLEAN += $(PATH_TARGET)/VBoxOGL/tsfuncs.c
|
---|
133 | endif
|
---|
134 |
|
---|
135 | VBoxOGL_LIBS.win = \
|
---|
136 | $(VBOX_LIB_IPRT_GUEST_R3) \
|
---|
137 | $(VBOX_LIB_VBGL_R3) \
|
---|
138 | $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
|
---|
139 | $(PATH_OBJ)/VBoxOGLcrutil/VBoxOGLcrutil$(VBOX_SUFF_LIB)
|
---|
140 | if1of ($(KBUILD_TARGET), linux solaris) ## @todo r=bird: See dll comment else where.
|
---|
141 | VBoxOGL_LIBS += \
|
---|
142 | $(VBOX_LIB_IPRT_GUEST_R3) \
|
---|
143 | $(VBOX_LIB_VBGL_R3) \
|
---|
144 | $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
|
---|
145 | $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) \
|
---|
146 | Xcomposite
|
---|
147 | endif
|
---|
148 |
|
---|
149 | include $(KBUILD_PATH)/subfooter.kmk
|
---|
150 |
|
---|