Makefile.kmk revision 772269936494ffaddd0750ba9e28e805ba81398c
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# $Id$
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync## @file
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# Sub-Makefile for the VBox C Binding.
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# Copyright (C) 2009-2012 Oracle Corporation
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# available from http://www.virtualbox.org. This file is free software;
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# you can redistribute it and/or modify it under the terms of the GNU
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# General Public License (GPL) as published by the Free Software
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncSUB_DEPTH = ../../../..
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncif defined(VBOX_WITH_XPCOM) || defined(VBOX_ONLY_SDK)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync# The samples
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncINSTALLS += XpComCSamples
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncXpComCSamples_MODE = a+r,u+rw
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncXpComCSamples_INST = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(INST_SDK)bindings/xpcom/cbinding/samples/
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncXpComCSamples_SOURCES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCGlue.c \
c8bcebedf264bc1287bcce50bdf66d08e28a88dcvboxsync tstXPCOMCCall.c \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync makefile.tstXPCOMCGlue=>Makefile
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncINSTALLS += XpComCGlue
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncXpComCGlue_MODE = a+r,u+rw
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncXpComCGlue_INST = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(INST_SDK)bindings/xpcom/cbinding/
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncXpComCGlue_SOURCES = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue.c \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(XpComCHeaders_0_OUTDIR)/VBoxXPCOMCGlue.h
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncINSTALLS += XpComCHeaders
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncXpComCHeaders_MODE = a+r,u+rw
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncXpComCHeaders_INST = $(INST_SDK)bindings/xpcom/include/
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncXpComCHeaders_SOURCES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v2_2.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v3_0.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v3_1.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v3_2.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v4_0.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxCAPI_v4_1.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(XpComCHeaders_0_OUTDIR)/VBoxCAPI.h=>VBoxCAPI_v$(VBOX_API_VERSION).h
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync$$(XpComCHeaders_0_OUTDIR)/VBoxXPCOMCGlue.h: \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(PATH_SUB_CURRENT)/VBoxXPCOMCGlue.h.in \
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync $(MAKEFILE_CURRENT) \
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync | $$(dir $$@)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(call MSG_GENERATE,,$@)
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync $(QUIET)$(SED) \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync -e 's/@VBOX_API_VERSION@/$(VBOX_API_VERSION)/' \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync < $< > $@
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync$$(XpComCHeaders_0_OUTDIR)/VBoxCAPI.h: \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(PATH_SUB_CURRENT)/xpcidl.xsl \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBOX_XIDL_FILE) \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync | $$(dir $$@)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(call MSG_TOOL,xsltproc,XpComCHeaders,$<,$@)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncendif # VBOX_WITH_XPCOM || SDK
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncif !defined(VBOX_ONLY_SDK) && defined(VBOX_WITH_XPCOM)
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync #
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync # The C utility DLL
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync #
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync ifdef VBOX_WITH_XPCOM
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync DLLS += VBoxXPCOMC
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMC_TEMPLATE = VBOXMAINDLL
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync VBoxXPCOMC_DEFS = IN_VBOXXPCOMC
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxXPCOMC_SOURCES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxXPCOMC.cpp
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxXPCOMC_INCS = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(XpComCHeaders_0_OUTDIR)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync VBoxXPCOMC_INTERMEDIATES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(XpComCHeaders_0_OUTDIR)/VBoxCAPI.h
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync endif
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync #
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync # The C glue library.
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync #
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync LIBRARIES += VBoxXPCOMCGlue
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue_TEMPLATE = VBOXMAINEXE
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue_DEFS = IN_VBOXXPCOMC
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue_SOURCES = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue.c
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue_INCS = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(VBOX_PATH_SDK)/bindings/xpcom/cbinding
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync VBoxXPCOMCGlue_INTERMEDIATES = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(VBOX_PATH_SDK)/bindings/xpcom/cbinding/VBoxXPCOMCGlue.h \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v$(VBOX_API_VERSION).h
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync if defined(VBOX_WITH_TESTCASES) && "$(KBUILD_TARGET)" != "darwin"
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync #
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync # The testcase (also in samples).
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync # C testcase using the dynamic glue.
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync #
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync PROGRAMS += tstXPCOMCGlue
c6829e595cb9bb58ee792563fcb57e961ad0a304vboxsync tstXPCOMCGlue_TEMPLATE = VBOXR3EXE
62592281fc2971692c6755401b5ce1ed61b96d7cvboxsync tstXPCOMCGlue_INCS = \
e68e2431dbeeab80792bbd9b1c64a68fc3358d0evboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include \
b83d9b1072dd8491c7ffe37830e8fd10f2dba561vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/cbinding
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCGlue_INTERMEDIATES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBOX_PATH_SDK)/bindings/xpcom/cbinding/VBoxXPCOMCGlue.h \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v$(VBOX_API_VERSION).h
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCGlue_SOURCES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCGlue.c
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCGlue_LIBS = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBoxXPCOMCGlue_1_TARGET)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync ifeq (disabled,1)
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync #
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync # The callback testcase.
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync #
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync PROGRAMS += tstXPCOMCCall
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCCall_TEMPLATE = VBOXR3EXE
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCCall_INCS = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCCall_INTERMEDIATES = \
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v$(VBOX_API_VERSION).h
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync tstXPCOMCCall_SOURCES = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync tstXPCOMCCall.c
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync tstXPCOMCCall_LIBS = \
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync $(VBoxXPCOMCGlue_1_TARGET)
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync endif
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync endif
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncendif # ! VBOX_ONLY_SDK
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync# generate rules.
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync