Makefile.kmk revision 54ea8aa4ce07c1cb87a069d98159e9afbf3afc30
e35c08abac84f41e085b0363e18562911434eec2vboxsync# $Id$
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync## @file
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# Sub-Makefile for the VBox C Binding.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync# Copyright (C) 2009 Oracle Corporation
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# available from http://www.virtualbox.org. This file is free software;
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# you can redistribute it and/or modify it under the terms of the GNU
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# General Public License (GPL) as published by the Free Software
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncSUB_DEPTH = ../../../..
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
033efef0382cea80df31360b44deb8ecf0a32797vboxsyncif defined(VBOX_WITH_XPCOM) || defined(VBOX_ONLY_SDK)
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# The samples
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync#
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncINSTALLS += XpComCSamples
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCSamples_MODE = a+r,u+rw
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCSamples_INST = \
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync $(INST_SDK)bindings/xpcom/cbinding/samples/
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCSamples_SOURCES = \
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync tstXPCOMCGlue.c \
f60ec22bd796760b850219cbfc447acd8231ab84vboxsync tstXPCOMCCall.c \
84b92f94992703bd050899ec2457ad6dfc354245vboxsync makefile.tstXPCOMCGlue=>Makefile
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsyncINSTALLS += XpComCGlue
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsyncXpComCGlue_MODE = a+r,u+rw
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsyncXpComCGlue_INST = \
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync $(INST_SDK)bindings/xpcom/cbinding/
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsyncXpComCGlue_SOURCES = \
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync VBoxXPCOMCGlue.c \
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync VBoxXPCOMCGlue.h
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncINSTALLS += XpComCHeaders
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCHeaders_MODE = a+r,u+rw
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCHeaders_INST = $(INST_SDK)bindings/xpcom/include/
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncXpComCHeaders_SOURCES = \
182cfd02df76f20daa4f99d0d11b0540e909bf9avboxsync VBoxCAPI_v2_2.h \
d5394fe0f23c68000abf1ad12fe03e0a7b119685vboxsync VBoxCAPI_v3_0.h \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync VBoxCAPI_v3_1.h \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync $(XpComCHeaders_0_OUTDIR)/VBoxCAPI_v3_2.h
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync$$(XpComCHeaders_0_OUTDIR)/VBoxCAPI_v3_2.h: \
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync $(PATH_SUB_CURRENT)/xpcidl.xsl \
33b5e655c06292a07370c8cf4207da691806a7e4vboxsync $(VBOX_XIDL_FILE) \
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync | $$(dir $$@)
b14adf99ecd1c5a015bf38d3f84116b489db21d7vboxsync $(call MSG_TOOL,xsltproc,XpComCHeaders,$<,$@)
b14adf99ecd1c5a015bf38d3f84116b489db21d7vboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $^
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
033efef0382cea80df31360b44deb8ecf0a32797vboxsyncendif # VBOX_WITH_XPCOM || SDK
033efef0382cea80df31360b44deb8ecf0a32797vboxsyncif !defined(VBOX_ONLY_SDK) && defined(VBOX_WITH_XPCOM)
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync #
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync # The C utility DLL
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync #
3e8a029da170ccd46db1dedcba7034b38078a82avboxsync ifdef VBOX_WITH_XPCOM
3e8a029da170ccd46db1dedcba7034b38078a82avboxsync DLLS += VBoxXPCOMC
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync VBoxXPCOMC_TEMPLATE = VBOXMAINDLL
9446711dd04e377f0de8160e1a191ad33d2032f1vboxsync VBoxXPCOMC_DEFS = IN_VBOXXPCOMC
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync VBoxXPCOMC_SOURCES = \
96f3acffe761f0265957167a9d51fc6a7330b3f1vboxsync VBoxXPCOMC.cpp
033efef0382cea80df31360b44deb8ecf0a32797vboxsync VBoxXPCOMC_INTERMEDIATES = \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v3_2.h
3e8a029da170ccd46db1dedcba7034b38078a82avboxsync endif
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
a251e09c45654264f660f69396b08b38e813efb9vboxsync #
a251e09c45654264f660f69396b08b38e813efb9vboxsync # The C glue library.
a251e09c45654264f660f69396b08b38e813efb9vboxsync #
033efef0382cea80df31360b44deb8ecf0a32797vboxsync LIBRARIES += VBoxXPCOMCGlue
a251e09c45654264f660f69396b08b38e813efb9vboxsync VBoxXPCOMCGlue_TEMPLATE = VBOXMAINEXE
9446711dd04e377f0de8160e1a191ad33d2032f1vboxsync VBoxXPCOMCGlue_DEFS = IN_VBOXXPCOMC
a251e09c45654264f660f69396b08b38e813efb9vboxsync VBoxXPCOMCGlue_SOURCES = \
a251e09c45654264f660f69396b08b38e813efb9vboxsync VBoxXPCOMCGlue.c
69651be3de19a25c92bceeb0d7d947f46cdd7bbcvboxsync VBoxXPCOMCGlue_INTERMEDIATES = \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v3_2.h
a251e09c45654264f660f69396b08b38e813efb9vboxsync
033efef0382cea80df31360b44deb8ecf0a32797vboxsync if defined(VBOX_WITH_TESTCASES) && "$(KBUILD_TARGET)" != "darwin"
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync #
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync # The testcase (also in samples).
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync # C testcase using the dynamic glue.
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync #
033efef0382cea80df31360b44deb8ecf0a32797vboxsync PROGRAMS += tstXPCOMCGlue
033efef0382cea80df31360b44deb8ecf0a32797vboxsync tstXPCOMCGlue_TEMPLATE = VBOXR3EXE
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync tstXPCOMCGlue_INCS = \
1c7fb1d12c92bbfa073ed7dfd79b983850e15912vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync tstXPCOMCGlue_INTERMEDIATES = \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v3_2.h
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync tstXPCOMCGlue_SOURCES = \
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync tstXPCOMCGlue.c
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync tstXPCOMCGlue_LIBS = \
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync $(VBoxXPCOMCGlue_1_TARGET)
4c6a62982e10f932ad80cd99f45f244e1b349273vboxsync
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync ifeq (disabled,1)
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync #
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync # The callback testcase.
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync #
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync PROGRAMS += tstXPCOMCCall
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall_TEMPLATE = VBOXR3EXE
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall_INCS = \
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall_INTERMEDIATES = \
54ea8aa4ce07c1cb87a069d98159e9afbf3afc30vboxsync $(VBOX_PATH_SDK)/bindings/xpcom/include/VBoxCAPI_v3_2.h
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall_SOURCES = \
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall.c
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync tstXPCOMCCall_LIBS = \
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync $(VBoxXPCOMCGlue_1_TARGET)
9b9b7f751bf12c7b6469a455f7fc9207238e7dd8vboxsync endif
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync endif
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncendif # ! VBOX_ONLY_SDK
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync# generate rules.
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
659ccabad889fa6a1851dd1e34a5acce0daff787vboxsync