Makefile.kmk revision 182cfd02df76f20daa4f99d0d11b0540e909bf9a
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# $Id$
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @file
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Sub-Makefile for the VBox C Binding.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Copyright (C) 2009 Sun Microsystems, Inc.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# available from http://www.virtualbox.org. This file is free software;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# you can redistribute it and/or modify it under the terms of the GNU
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# General Public License (GPL) as published by the Free Software
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# additional information or have any questions.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncSUB_DEPTH = ../../../..
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif defined(VBOX_WITH_XPCOM) || defined(VBOX_ONLY_SDK)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# The samples
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncINSTALLS += XpComCSamples
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCSamples_MODE = a+r,u+rw
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCSamples_INST = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(INST_SDK)bindings/xpcom/cbinding/samples/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCSamples_SOURCES = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync tstXPCOMCGlue.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync makefile.tstXPCOMCGlue=>Makefile
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncINSTALLS += XpComCGlue
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCGlue_MODE = a+r,u+rw
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCGlue_INST = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(INST_SDK)bindings/xpcom/cbinding/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCGlue_SOURCES = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxXPCOMCGlue.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxXPCOMCGlue.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncINSTALLS += XpComCHeaders
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCHeaders_MODE = a+r,u+rw
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncXpComCHeaders_INST = $(INST_SDK)bindings/xpcom/include/
XpComCHeaders_SOURCES = \
VBoxCAPI_v2_2.h \
$(XpComCHeaders_0_OUTDIR)/VBoxCAPI_v2_5.h
$$(XpComCHeaders_0_OUTDIR)/VBoxCAPI_v2_5.h: \
$(PATH_SUB_CURRENT)/xpcidl.xsl \
$(VBOX_XIDL_FILE) \
| $$(dir $$@)
$(VBOX_XSLTPROC) -o $@ $^
endif # VBOX_WITH_XPCOM || SDK
if !defined(VBOX_ONLY_SDK) && defined(VBOX_WITH_XPCOM)
#
# The C utility DLL
#
ifdef VBOX_WITH_XPCOM
DLLS += VBoxXPCOMC
VBoxXPCOMC_TEMPLATE = VBOXMAINDLL
VBoxXPCOMC_DEFS = IN_VBOXXPCOMC
VBoxXPCOMC_SOURCES = \
VBoxXPCOMC.cpp
VBoxXPCOMC_INTERMEDIATES = \
$(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v2_5.h
endif
#
# The C glue library.
#
LIBRARIES += VBoxXPCOMCGlue
VBoxXPCOMCGlue_TEMPLATE = VBOXMAINEXE
VBoxXPCOMCGlue_DEFS = IN_VBOXXPCOMC
VBoxXPCOMCGlue_SOURCES = \
VBoxXPCOMCGlue.c
VBoxXPCOMCGlue_INTERMEDIATES = \
$(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v2_5.h
if defined(VBOX_WITH_TESTCASES) && "$(KBUILD_TARGET)" != "darwin"
#
# The testcase (also in samples).
# C testcase using the dynamic glue.
#
PROGRAMS += tstXPCOMCGlue
tstXPCOMCGlue_TEMPLATE = VBOXR3EXE
tstXPCOMCGlue_INCS = \
$(VBOX_PATH_SDK)/bindings/xpcom/include
tstXPCOMCGlue_INTERMEDIATES = \
$(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v2_5.h
tstXPCOMCGlue_SOURCES = \
tstXPCOMCGlue.c
tstXPCOMCGlue_LIBS = \
$(VBoxXPCOMCGlue_1_TARGET)
endif
endif # ! VBOX_ONLY_SDK
# generate rules.
include $(KBUILD_PATH)/subfooter.kmk