Makefile.kmk revision 233fca72708bd7dfbd75d68be112eff3572c052b
77b1a2d8b5dbe2c0b5200794914239fee3c8ee5dvboxsync# $Id$
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync## @file
77b1a2d8b5dbe2c0b5200794914239fee3c8ee5dvboxsync# Sub-Makefile for the VBox web service.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# Warning! This is a seriously complicated makefile!
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# available from http://www.virtualbox.org. This file is free software;
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync#
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# additional information or have any questions.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# Define VBOX_GSOAP_INSTALLED to something if you have gSOAP's
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# "wsdl2h" and "soapcpp2" executables on your PATH somewhere.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
662d52947eeb3fc8fca3b23991a5eee47077f896vboxsync#
da957c069c2a3c582fe265ff88170ce4c42b499dvboxsync# Here's a temporary outline how all this works.
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# 1) We use xsltproc and websrv-wsdl.xsl to generate a WSDL file from
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# our XML IDL file (../idl/VirtualBox.xidl). This WSDL describes the
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# web service to third-party clients; for example, one can feed it to
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# perl and thus easily write a short script that connects to the web
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# service properly.
9496f2d398b49813176939d7a339ae513d5175efvboxsync# This WSDL file ends up in $(VBOXWEB_OUT_DIR)/vboxweb.wsdl.
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync#
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync# 2) We use xsltproc and websrv-gsoapH.xsl to generate a gSoap header
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# file: $(VBOXWEB_OUT_DIR)/gsoapH_from_xslt.h.
efff36b306e370346025647a158689021df2e1d1vboxsync# This file looks like a C header file, but really isn't meant
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# to be included by a C compiler. Instead, it just happens to be the
590bfe12ce22cd3716448fbb9f4dc51664bfe5e2vboxsync# format that gSOAP uses to specify SOAP interfaces instead of WSDL
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# (apparently because gSOAP was written before the advent of WSDL).
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync#
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# Note that gSOAP comes with its own WSDL-to-gsoap.h converter, but
590bfe12ce22cd3716448fbb9f4dc51664bfe5e2vboxsync# the readme mentions some funny license restrictions, so instead we
efff36b306e370346025647a158689021df2e1d1vboxsync# have our own converter in XSLT.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# 3) We then feed that header file to gsoap's soapcpp2, which generates
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# a ton of files in $(VBOXWEB_OUT_DIR), most importantly:
efff36b306e370346025647a158689021df2e1d1vboxsync#
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# SOAP_CLIENT_H = $(VBOXWEB_OUT_DIR)/soapStub.h (header file for webservice clients)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# SOAP_SERVER_H = $(VBOXWEB_OUT_DIR)/soapH.h (header file for webservice servers)
efff36b306e370346025647a158689021df2e1d1vboxsync#
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# These are "real" header files that one can use to program a) a webservice client
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# and b) a webservice server. Of course to build b) one will have to write method
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# implementations with useful code that does something. This is where more
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# code generation via XSLT comes in:
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# 4) We use xsltproc to generate tons of c++ code directly from the XIDL that
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# maps each soap method to our COM methods. This large c++ file is
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# $(VBOXWEB_OUT_DIR)/methodmaps.cpp. The actual webservice executable (vboxwebsrv,
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# which acts as an http server) is composed of this file, plus hard-coded
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# method implementations in vboxweb.cpp, plus gSOAP library code for the HTTP
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# server.
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncSUB_DEPTH = ../../../..
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
0abd77741a608f6c41c8dfcd4781b8b84adf1044vboxsync#
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# Find the gSOAP toolkit.
9496f2d398b49813176939d7a339ae513d5175efvboxsync#
9496f2d398b49813176939d7a339ae513d5175efvboxsync# Note! We're not using the gSOAP toolkit correctly. The main issue is that
9496f2d398b49813176939d7a339ae513d5175efvboxsync# compiling soapcpp2.cpp instead of using the library. So, in order
9496f2d398b49813176939d7a339ae513d5175efvboxsync# to make this work with a locally installed gSOAP toolkit there are
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# some hoops to jump thru to say the least... Shipping soapcpp2.cpp/h
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# is out of the question without also including the two soap tools.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync#
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# Some observations on distros for OSE / configure:
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# The proposed gentoo ebuild screws up several things in the install phase
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# and thus fails to ship stdsoap2.cpp and relatives.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync#
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# debian (2.7.9l-0.2) stuffs stdsoap2.cpp and a handful of the import files
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# into /usr/include/gsoap.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync#
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# fedora (2.7.12-fc10.x86_64) uses the default install layout and does not
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync# ship stdsoap2.cpp and friends.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync#
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncifeq ($(VBOX_GSOAP_INSTALLED),)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_GSOAP_INSTALLED = 1
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_PATH_GSOAP := $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS)/common/gsoap/*)))
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync ifeq ($(VBOX_PATH_GSOAP),)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_PATH_GSOAP := $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS_HST)/gsoap/*)))
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync if "$(VBOX_PATH_GSOAP)" == "" && defined(KBUILD_DEVTOOLS_HST)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_PATH_GSOAP := $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS_HST_ALT)/gsoap/*)))
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync ifeq ($(VBOX_PATH_GSOAP),)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(warning VBOX_PATH_GSOAP not found...)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_GSOAP_INSTALLED =
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncelse
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_PATH_GSOAP := $(VBOX_PATH_GSOAP)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncendif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncVBOX_PATH_GSOAP_BIN := $(strip $(VBOX_PATH_GSOAP_BIN))
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncif "$(VBOX_PATH_GSOAP_BIN)" == ""
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP)/bin
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync if "$(KBUILD_HOST)" == "darwin"
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP_BIN)/macosx
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync else if "$(KBUILD_HOST)" == "win"
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP_BIN)/win32
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync else if "$(KBUILD_HOST)" == "linux"
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP_BIN)/linux386
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync else
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP_BIN)/$(KBUILD_HOST).x86
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync endif
9496f2d398b49813176939d7a339ae513d5175efvboxsync if !exists($(VBOX_PATH_GSOAP_BIN))
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync VBOX_PATH_GSOAP_BIN := $(VBOX_PATH_GSOAP)/bin
9496f2d398b49813176939d7a339ae513d5175efvboxsync endif
21029597fc4b76d0db0c9542daee201447281781vboxsyncendif
21029597fc4b76d0db0c9542daee201447281781vboxsyncVBOX_SOAPCPP2 := $(VBOX_PATH_GSOAP_BIN)/soapcpp2$(HOSTSUFF_EXE)
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncVBOX_WSDL2H := $(VBOX_PATH_GSOAP_BIN)/wsdl2h$(HOSTSUFF_EXE)
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncVBOX_STUBMAKER = $(firstword $(which stubmaker stubmaker.pl) stubmaker_not_found)
9496f2d398b49813176939d7a339ae513d5175efvboxsyncVBOX_WSDL2PY = $(firstword $(which wsdl2py) wsdl2py_not_found)
9496f2d398b49813176939d7a339ae513d5175efvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsyncVBOX_PATH_GSOAP_IMPORT := $(strip $(if $(VBOX_PATH_GSOAP_IMPORT),$(VBOX_PATH_GSOAP_IMPORT),$(VBOX_PATH_GSOAP)/import))
9496f2d398b49813176939d7a339ae513d5175efvboxsyncVBOX_GSOAP_INCS := $(strip $(if $(VBOX_GSOAP_INCS), $(VBOX_GSOAP_INCS), $(VBOX_PATH_GSOAP) $(VBOX_PATH_GSOAP_IMPORT) ))
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncVBOX_GSOAP_CXX_SOURCES := $(strip $(if $(VBOX_GSOAP_CXX_SOURCES),$(VBOX_GSOAP_CXX_SOURCES),$(VBOX_PATH_GSOAP)/stdsoap2.cpp))
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncVBOX_GSOAP_CXX_LIBS := $(strip $(if $(VBOX_GSOAP_CXX_LIBS), $(VBOX_GSOAP_CXX_LIBS),))
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync#
9496f2d398b49813176939d7a339ae513d5175efvboxsync# Globals
9496f2d398b49813176939d7a339ae513d5175efvboxsync#
9496f2d398b49813176939d7a339ae513d5175efvboxsyncVBOXWEB_OUT_DIR := $(PATH_TARGET)/webservice
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsyncBLDDIRS += $(VBOXWEB_OUT_DIR)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync# The webservice location
9496f2d398b49813176939d7a339ae513d5175efvboxsyncVBOX_PATH_WEBSERVICE := $(PATH_SUB_CURRENT)
9496f2d398b49813176939d7a339ae513d5175efvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync# If this is set, all webservice files are considered out-of-date every time
9496f2d398b49813176939d7a339ae513d5175efvboxsync# this make file is touched. Otherwise, set this to empty.
9496f2d398b49813176939d7a339ae513d5175efvboxsyncRECOMPILE_ON_MAKEFILE_CURRENT := $(MAKEFILE_CURRENT)
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncPATH_TARGET_SOAPDEMOXML := $(VBOXWEB_OUT_DIR)/demo_soapxml
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncPATH_TARGET_SOAPDEMOHEADERS := $(VBOXWEB_OUT_DIR)/demo_headers
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncPATH_TARGET_SOAPDEMONSMAPS := $(VBOXWEB_OUT_DIR)/demo_namespacemaps
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncPATH_TARGET_WEBTEST := $(VBOXWEB_OUT_DIR)/webtest
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncVBOXWEB_IDL_SRC_ORIG := $(VBOX_XIDL_FILE)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncVBOXWEB_IDL_SRC := $(VBOXWEB_OUT_DIR)/VirtualBox.xidl
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsyncVBOXWEB_TYPEMAP := $(VBOXWEB_OUT_DIR)/typemap.dat
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncVBOXWEB_GSOAPH_FROM_XSLT := $(VBOXWEB_OUT_DIR)/gsoapH_from_xslt.h
21029597fc4b76d0db0c9542daee201447281781vboxsyncifdef VBOX_GSOAP_INSTALLED
21029597fc4b76d0db0c9542daee201447281781vboxsync VBOXWEB_GSOAPH_FROM_GSOAP := $(VBOXWEB_OUT_DIR)/gsoapH_from_gsoap.h
20f97e6df28ebc0911dc42671222e0d494f034f3vboxsyncelse
20f97e6df28ebc0911dc42671222e0d494f034f3vboxsync VBOXWEB_GSOAPH_FROM_GSOAP :=
20f97e6df28ebc0911dc42671222e0d494f034f3vboxsyncendif
20f97e6df28ebc0911dc42671222e0d494f034f3vboxsyncVBOXWEB_SOAP_CLIENT_H := $(VBOXWEB_OUT_DIR)/soapStub.h
20f97e6df28ebc0911dc42671222e0d494f034f3vboxsyncVBOXWEB_SOAP_SERVER_H := $(VBOXWEB_OUT_DIR)/soapH.h
21029597fc4b76d0db0c9542daee201447281781vboxsync
21029597fc4b76d0db0c9542daee201447281781vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncifdef VBOX_GSOAP_VERBOSE
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync VBOXWEB_XSLTPROC_VERBOSE = --stringparam G_argDebug '1'
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync VBOXWEB_WSDL_VERBOSE = -v
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncelse
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync VBOXWEB_SOAPCPP2_SKIP_FILES = -x
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncendif
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync## @todo VBOXWEB_GSOAPH_FROM_XSLT should probably be a indirect dep of something.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncVBOXWEB_OTHERS += \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_GSOAPH_FROM_XSLT)
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncifdef VBOX_GSOAP_INSTALLED
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync ifndef VBOX_ONLY_SDK
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync #
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync # vboxsoap - Library used by both the programs (save build time).
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync #
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync LIBRARIES += vboxsoap
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync vboxsoap_TEMPLATE = VBOXR3EXE
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync ifdef VBOX_USE_VCC80
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync vboxsoap_CXXFLAGS.win += -bigobj
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync endif
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync vboxsoap_INCS := \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOX_GSOAP_INCS) \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_OUT_DIR) \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(PATH_SUB_CURRENT)
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync ifdef VBOX_WITHOUT_SPLIT_SOAPC
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync vboxsoap_SOURCES = \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_OUT_DIR)/soapC.cpp
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync else
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync vboxsoap_SOURCES = \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_OUT_DIR)/soapC-1.cpp \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_OUT_DIR)/soapC-2.cpp \
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync $(VBOXWEB_OUT_DIR)/soapC-3.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-4.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-5.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-6.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-7.cpp \
59d7f5939d42ad9d344fbad8401e00a900db92c5vboxsync $(VBOXWEB_OUT_DIR)/soapC-8.cpp \
59d7f5939d42ad9d344fbad8401e00a900db92c5vboxsync $(VBOXWEB_OUT_DIR)/soapC-9.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-10.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-11.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-12.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-13.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapC-14.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-15.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-16.cpp \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOXWEB_OUT_DIR)/soapC-17.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-18.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-19.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapC-20.cpp
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_CLEAN := $(vboxsoap_SOURCES) # lazy bird
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_SOURCES += \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOX_GSOAP_CXX_SOURCES)
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_LIBS += \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOX_GSOAP_CXX_LIBS)
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_ORDERDEPS = \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOXWEB_IDL_SRC) \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsyncifdef VBOX_SOAP_PRECOMPILED_HEADER
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync # This'll save a few seconds, but the compiler invocation currently makes it impracticable. This will
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync # be addressed in a future kBuild version, by adding PCH support or/and by adding some helpers to
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync # gather the required data (DEFS,INCS,CXXTOOL,CXXFLAGS).
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_INTERMEDIATES += $(VBOXWEB_OUT_DIR)/soapH.h.gch
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxsoap_CXXFLAGS += -Winvalid-pch -H
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxsoap_CLEAN += $(VBOXWEB_OUT_DIR)/soapH.h.gch
9496f2d398b49813176939d7a339ae513d5175efvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync$(VBOXWEB_OUT_DIR)/soapH.h.gch: $(VBOXWEB_OUT_DIR)/soapH.h
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync g++ -x c++-header -g -g -Wall -pedantic -Wno-long-long -Wno-trigraphs -Wno-variadic-macros -pipe -O0 -fno-omit-frame-pointer -fno-strict-aliasing -fvisibility-inlines-hidden -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -m32 -I/Volumes/ScratchHFS/bird/vbox/svn/trunk/src/VBox/Main/webservice/gsoap -I/Volumes/ScratchHFS/bird/vbox/svn/trunk/out/darwin.x86/debug/obj/src/VBox/Main -I/Volumes/ScratchHFS/bird/vbox/svn/trunk/src/VBox/Main/webservice -I/Volumes/ScratchHFS/bird/vbox/svn/trunk/include -I/Volumes/ScratchHFS/bird/vbox/svn/trunk/out/darwin.x86/debug -DVBOX -DVBOX_WITH_DEBUGGER -DVBOX_WITH_DEBUGGER_GUI -DDEBUG -DDEBUG_bird -DDEBUG_USERNAME=bird -DRT_OS_DARWIN -D__DARWIN__ -DRT_ARCH_X86 -D__X86__ -DVBOX_WITH_HYBRID_32BIT_KERNEL -DIN_RING3 -DHC_ARCH_BITS=32 -DGC_ARCH_BITS=32 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 -DMAC_OS_X_VERSION_MAX_ALLOWED=1040 \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $< -o $@
9496f2d398b49813176939d7a339ae513d5175efvboxsyncendif
9496f2d398b49813176939d7a339ae513d5175efvboxsync endif # !VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync ifndef VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync # vboxwebsrv - webservice server process
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync PROGRAMS += vboxwebsrv
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_TEMPLATE = VBOXMAINCLIENTEXE
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_DEFS += SOCKET_CLOSE_ON_EXEC
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_INCS = \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOX_GSOAP_INCS) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync .
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync ifdef VBOX_USE_VCC80
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_CXXFLAGS.win += -bigobj
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync vboxwebsrv_LIBS += \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(PATH_LIB)/vboxsoap$(VBOX_SUFF_LIB)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_LIBS.solaris += socket nsl
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_SOURCES = \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxweb.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/methodmaps.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapServer.cpp
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_CLEAN = \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/methodmaps.cpp \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapServer.cpp
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync vboxwebsrv_ORDERDEPS = $(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif # !VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync ifndef VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync # webtest - webservice sample client in C++
9496f2d398b49813176939d7a339ae513d5175efvboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync PROGRAMS += webtest
9496f2d398b49813176939d7a339ae513d5175efvboxsync webtest_TEMPLATE = VBOXR3EXE
9496f2d398b49813176939d7a339ae513d5175efvboxsync ifdef VBOX_USE_VCC80
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync webtest_CXXFLAGS.win += -bigobj
9496f2d398b49813176939d7a339ae513d5175efvboxsync endif
9496f2d398b49813176939d7a339ae513d5175efvboxsync webtest_INCS := \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOX_GSOAP_INCS) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync .
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync webtest_LIBS += \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(PATH_LIB)/vboxsoap$(VBOX_SUFF_LIB)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync webtest_LIBS.solaris += nsl
9496f2d398b49813176939d7a339ae513d5175efvboxsync webtest_SOURCES = \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync webtest.cpp \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/soapClient.cpp
9496f2d398b49813176939d7a339ae513d5175efvboxsync webtest_CLEAN = \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_OUT_DIR)/soapClient.cpp
9496f2d398b49813176939d7a339ae513d5175efvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync webtest_ORDERDEPS = $(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif # !VBOX_ONLY_SDK
9496f2d398b49813176939d7a339ae513d5175efvboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync #
9496f2d398b49813176939d7a339ae513d5175efvboxsync # Additional mess to cleanup (applies to both webtest and vboxwebsrv).
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync #
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync ## @todo figure out whether the SDK really needs this or not...
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync OTHER_CLEAN += \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(wildcard $(VBOXWEB_OUT_DIR)/soap*.h) \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(wildcard $(VBOXWEB_OUT_DIR)/soap*.cpp) \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(wildcard $(VBOXWEB_OUT_DIR)/*.nsmap) \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOXWEB_GSOAPH_FROM_XSLT) \
5d0d754550d06b7d59a935e59caaf814462d53ccvboxsync $(VBOXWEB_GSOAPH_FROM_GSOAP) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_SOAP_CLIENT_H) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_SOAP_SERVER_H) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(wildcard $(PATH_TARGET_SOAPDEMOXML)/*) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(PATH_TARGET_SOAPDEMOXML)/dummy_file \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(wildcard $(PATH_TARGET_SOAPDEMOHEADERS)/*) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(PATH_TARGET_SOAPDEMOHEADERS)/dummy_file \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(wildcard $(PATH_TARGET_SOAPDEMONSMAPS)/*) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(PATH_TARGET_SOAPDEMONSMAPS)/dummy_file
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncendif # VBOX_GSOAP_INSTALLED
9496f2d398b49813176939d7a339ae513d5175efvboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncifdef VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync # Global relevant to the SDK.
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_GLUE_PYTHON = $(VBOX_PATH_SDK)/bindings/webservice/python/lib/VirtualBox_wrappers.py
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_WS_PYTHON = $(VBOX_PATH_SDK)/bindings/webservice/python/lib/VirtualBox_service.py
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_WS_PERL = $(VBOX_PATH_SDK)/bindings/webservice/perl/lib/vboxService.pm
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_SAMPLES_AXIS_DIR = $(VBOX_PATH_SDK)/bindings/webservice/java/axis/samples
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_AXISSAMPLE = $(VBOXWEB_SAMPLES_AXIS_DIR)/clienttest.java
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_SAMPLES_JAXWS_DIR = $(VBOX_PATH_SDK)/bindings/webservice/java/jax-ws/samples
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_JAXWSSAMPLE = $(VBOXWEB_SAMPLES_JAXWS_DIR)/clienttest.java
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOXWEB_METRICSAMPLE = $(VBOXWEB_SAMPLES_JAXWS_DIR)/metrictest.java
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOXWEB_SAMPLES_PERL_DIR = $(VBOX_PATH_SDK)/bindings/webservice/perl/samples
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_PERLSAMPLE = $(VBOXWEB_SAMPLES_PERL_DIR)/clienttest.pl
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_SAMPLES_PYTHONWS_DIR = $(VBOX_PATH_SDK)/bindings/webservice/python/samples
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOXWEB_PYTHONWSSAMPLE = $(VBOXWEB_SAMPLES_PYTHONWS_DIR)/vboxshell.py
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOXWEB_SHELLCOMMON = $(VBOXWEB_SAMPLES_PYTHONWS_DIR)/shellcommon.py
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_GLUE_JAVA_TMP = $(VBOXWEB_OUT_DIR)/glue-jaxws.java.tmp
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_PATH_SDK_GLUE_JAVA = $(VBOX_PATH_SDK)/bindings/webservice/java/jax-ws/src
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOXWEB_JAVALIB = $(VBOX_PATH_SDK)/bindings/webservice/java/jax-ws/lib
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_JAVA15_JAR = $(VBOXWEB_JAVALIB)/vboxws_java15.jar
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_JAVA16_JAR = $(VBOXWEB_JAVALIB)/vboxws_java16.jar
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOX_JAXWS_LIBDIR = $(VBOX_PATH_WEBSERVICE)/jaxlibs
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync # well, not really good
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_JAVA15 = $(firstword $(wildcard \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync /usr/lib/jvm/java-1.5.0-sun/bin/java \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync /usr/jdk/jdk1.5*/bin/java \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync /opt/sun-jdk-1.5*/bin/java))
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync ifndef VBOX_JAVA15
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(error Failed to autodetect VBOX_JAVA15, please set it manually)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_JAVA16 = java
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_JAVAC15 = javac -target 1.5
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_JAVAC16 = javac -target 1.6
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_WSIMPORT15 = $(VBOX_JAVA15) -jar $(VBOX_JAXWS_LIBDIR)/jaxws-tools.jar
9496f2d398b49813176939d7a339ae513d5175efvboxsync VBOX_WSIMPORT16 = $(firstword $(wildcard \
9496f2d398b49813176939d7a339ae513d5175efvboxsync /usr/jdk/jdk1.6*/bin/wsimport \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync /usr/bin/wsimport \
9496f2d398b49813176939d7a339ae513d5175efvboxsync /opt/sun-jdk-1.6*/bin/wsimport))
9496f2d398b49813176939d7a339ae513d5175efvboxsync ifndef VBOX_WSIMPORT16
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(error Failed to autodetect VBOX_WSIMPORT16, please set it manually)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync endif
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOX_JAR = jar
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync VBOXWEB_OTHERS += \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_GLUE_JAVA_TMP) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_GLUE_PYTHON)\
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_WS_PYTHON) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_WS_PERL) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_PYTHONWSSAMPLE)\
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_SHELLCOMMON)\
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_AXISSAMPLE) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_JAXWSSAMPLE)\
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_METRICSAMPLE)\
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_PERLSAMPLE) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_PATH_SDK_GLUE_JAVA)/Makefile \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_SAMPLES_PYTHONWS_DIR)/Makefile\
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_SAMPLES_JAXWS_DIR)/Makefile \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_JAVA15_JAR) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_JAVA16_JAR)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync #
9496f2d398b49813176939d7a339ae513d5175efvboxsync # filesplitter - build helper, splits up the java classes.
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync #
9496f2d398b49813176939d7a339ae513d5175efvboxsync BLDPROGS += filesplitter
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync filesplitter_TEMPLATE = VBOXBLDPROG
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync filesplitter_SOURCES = filesplitter.c
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsyncendif # VBOX_ONLY_SDK
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncVBOXWEB_WSDL = $(VBOX_PATH_SDK)/bindings/webservice/vboxweb.wsdl
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncVBOXWEBSERVICE_WSDL = $(VBOX_PATH_SDK)/bindings/webservice/vboxwebService.wsdl
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync## @todo VBOXWEB_WSDL and VBOXWEBSERVICE_WSDL should be an install target.
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncVBOXWEB_OTHERS += \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_WSDL) \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEBSERVICE_WSDL)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync#
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync# Update the OTHERS and OTHER_CLEAN lists with VBOXWEB_OTHERS and some more stuff.
9496f2d398b49813176939d7a339ae513d5175efvboxsync#
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync# We can't just built up OTHERS and append it to OTHER_CLEAN because we're sharing
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync# OTHERS with all the other VBox makefiles (VBOX_SINGLE_MAKEFILE), thus VBOXWEB_OTHERS.
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync#
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncOTHERS += $(VBOXWEB_OTHERS)
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncOTHER_CLEAN += \
9496f2d398b49813176939d7a339ae513d5175efvboxsync $(VBOXWEB_OTHERS) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_TYPEMAP) \
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync $(VBOXWEB_IDL_SRC)
9496f2d398b49813176939d7a339ae513d5175efvboxsync
9496f2d398b49813176939d7a339ae513d5175efvboxsync
59d7f5939d42ad9d344fbad8401e00a900db92c5vboxsync
59d7f5939d42ad9d344fbad8401e00a900db92c5vboxsync# generate platform-specific XIDL file from original XIDL file
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsync$(VBOXWEB_IDL_SRC): $(VBOXWEB_IDL_SRC_ORIG) $(VBOX_PATH_WEBSERVICE)/platform-xidl.xsl | $$(dir $$@)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using platform-xidl.xsl)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/platform-xidl.xsl $<
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync# generate WSDL from main XIDL file
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsync$(VBOXWEB_WSDL): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-wsdl.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) ## @todo | $$(dir $$@)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(MKDIR) -p $(@D)
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-wsdl.xsl)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-wsdl.xsl $<
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsync$(VBOXWEBSERVICE_WSDL): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-wsdl-service.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) ## @todo | $$(dir $$@)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(MKDIR) -p $(@D)
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-wsdl-service.xsl)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-wsdl-service.xsl $<
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsyncifdef VBOX_ONLY_SDK
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync
975ad9d9bc9c4dc96b41d9f67a65228b1b338e2avboxsync$(VBOXWEB_GLUE_PYTHON): $(VBOXWEB_IDL_SRC) $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL) $(VBOX_PATH_WEBSERVICE)/websrv-python.xsl
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-python.xsl)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(MKDIR) -p $(@D)
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-python.xsl $<
efff36b306e370346025647a158689021df2e1d1vboxsync $(QUIET)$(CP) -f $(VBOX_PATH_WEBSERVICE)/samples/python/Makefile.glue $(@D)/Makefile
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_WS_PYTHON): $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@, WS Python bindings)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(@D)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(REDIRECT) -C $(@D) -- $(VBOX_WSDL2PY) -b --file $(VBOXWEBSERVICE_WSDL)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(APPEND) $@ ''
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_WS_PERL): $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@, WS Perl bindings)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(@D)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(REDIRECT) -C $(@D) -- $(VBOX_STUBMAKER) file://$(VBOXWEBSERVICE_WSDL)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# Ugly, ugly, ugly, make me right once
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)perl -ne "s#http://www.virtualbox.org/Service#http://www.virtualbox.org/#; print" < $(VBOXWEB_WS_PERL) > $(VBOXWEB_WS_PERL).tmp
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)mv $(VBOXWEB_WS_PERL).tmp $(VBOXWEB_WS_PERL)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(APPEND) $@ ''
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncendif # VBOX_ONLY_SDK
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# generate typemap.dat (used by wsdl2h) from main XIDL file
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_TYPEMAP): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-typemap.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-typemap.xsl)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-typemap.xsl $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# generate gsoap pseudo-C header file from that WSDL; once via XSLT...
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# $(VBOXWEB_GSOAPH_FROM_XSLT): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-gsoapH.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-gsoapH.xsl)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-gsoapH.xsl $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_GSOAPH_FROM_XSLT): $(VBOXWEB_WSDL) $(VBOX_PATH_WEBSERVICE)/websrv-wsdl2gsoapH.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_WSDL) using websrv-wsdl2gsoapH.xsl)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-wsdl2gsoapH.xsl $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncNSMAP = $(VBOXWEB_OUT_DIR)/vboxwebsrv.nsmap
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(NSMAP): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-nsmap.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-nsmap.xsl)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-nsmap.xsl $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncifdef VBOX_GSOAP_INSTALLED
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# ... and once with the gSOAP tool (just for comparison, we don't use it for licensing reasons)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_GSOAPH_FROM_GSOAP): $(VBOXWEB_WSDL) $(VBOXWEB_TYPEMAP) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@,)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(VBOX_WSDL2H) $(VBOXWEB_WSDL_VERBOSE) -t$(VBOXWEB_TYPEMAP) -nvbox -o $@ $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncGSOAPH_RELEVANT = $(VBOXWEB_GSOAPH_FROM_XSLT)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# wsdl2h -v: verbose
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# wsdl2h -e: don't qualify enum names
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# wsdl2h -n<prefix>: namespace header prefix
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync## @todo change this to state explicitly what will be generated?
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# generate server and client code from gsoap pseudo-C header file
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapH.h \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapStub.h \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapClient.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapServer.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync: $(VBOXWEB_GSOAPH_FROM_GSOAP) $(VBOXWEB_GSOAPH_FROM_XSLT) $(NSMAP) $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT))
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(RM) -f $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(APPEND) $@ done
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# copy the generated headers and stuff. This has to be a seperate rule if we
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# want to use wildcard (all commands are expaned when the rule is evaluated).
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts: $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(RM) -f $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(MKDIR) -p $(PATH_TARGET_SOAPDEMOXML) $(PATH_TARGET_SOAPDEMOHEADERS) $(PATH_TARGET_SOAPDEMONSMAPS)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncifdef VBOX_GSOAP_VERBOSE
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(MV) -f $(wildcard $(VBOXWEB_OUT_DIR)/*.req.xml $(VBOXWEB_OUT_DIR)/*.res.xml) $(PATH_TARGET_SOAPDEMOXML)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncendif
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(MV) -f $(wildcard $(VBOXWEB_OUT_DIR)/soapvbox*.h) $(PATH_TARGET_SOAPDEMOHEADERS)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(MV) -f $(VBOXWEB_OUT_DIR)/vboxBinding.nsmap $(PATH_TARGET_SOAPDEMONSMAPS)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(APPEND) $@ done
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(PATH_TARGET_SOAPDEMONSMAPS) \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(PATH_TARGET_SOAPDEMOHEADERS)/soapvboxBindingProxy.h \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(PATH_TARGET_SOAPDEMOHEADERS)/soapvboxBindingObject.h: $(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# soapcpp2 -2: generate SOAP 1.2 calls
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# soapcpp2 -S: server-side code only
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# soapcpp2 -L: don't generate soapClientLib/soapServerLib
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# soapcpp2 -w: don't generate WSDL and schema files
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# soapcpp2 -x: don't generate sample XML files
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncifndef VBOX_WITHOUT_SPLIT_SOAPC
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync#
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# Split up the soapC.cpp monster into manageable bits that can be
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# built in parallel and without exhausting all available memory.
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync#
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_OUT_DIR)/soapC-1.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-2.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-3.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-4.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-5.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-6.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-7.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-8.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-9.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-10.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-11.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-12.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-13.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-14.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-15.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-16.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-17.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-18.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-19.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync+ $(VBOXWEB_OUT_DIR)/soapC-20.cpp \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync: $(VBOXWEB_OUT_DIR)/soapC.cpp $(VBOX_PATH_WEBSERVICE)/split-soapC.sed | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(RM) -f $(wildcard $(VBOXWEB_OUT_DIR)/soapC-?.cpp $(VBOXWEB_OUT_DIR)/soapC-??.cpp)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- \
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(SED) -f $(VBOX_PATH_WEBSERVICE)/split-soapC.sed soapC.cpp
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncendif # !VBOX_WITHOUT_SPLIT_SOAPC
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncendif # VBOX_GSOAP_INSTALLED
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# generate method maps in server: map wsdl operations to com/xpcom method calls
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_OUT_DIR)/methodmaps.cpp: $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/websrv-cpp.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using websrv-cpp.xsl)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_PATH_WEBSERVICE)/websrv-cpp.xsl $<
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncifdef VBOX_ONLY_SDK
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync## @todo Use an install target for these simple copy operations?
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_AXISSAMPLE): $(VBOX_PATH_WEBSERVICE)/samples/java/axis/clienttest.java
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_SAMPLES_AXIS_DIR)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_JAXWSSAMPLE): $(VBOX_PATH_WEBSERVICE)/samples/java/jax-ws/clienttest.java
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_SAMPLES_JAXWS_DIR)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_METRICSAMPLE): $(VBOX_PATH_WEBSERVICE)/samples/java/jax-ws/metrictest.java
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_SAMPLES_JAXWS_DIR)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_PERLSAMPLE): $(VBOX_PATH_WEBSERVICE)/samples/perl/clienttest.pl
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_SAMPLES_PERL_DIR)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_PYTHONWSSAMPLE): $(VBOX_PATH_WEBSERVICE)/samples/python/vboxshell.py
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_SAMPLES_PYTHONWS_DIR)
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# somewhat hackish rule
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync$(VBOXWEB_SHELLCOMMON): $(PATH_ROOT)/src/libs/xpcom18a4/python/sample/shellcommon.py $(VBOXWEB_PYTHONWSSAMPLE)
efff36b306e370346025647a158689021df2e1d1vboxsync $(QUIET)$(CP) -f $< $@
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync# generate jax-ws wrapper for java client code
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync$(VBOXWEB_GLUE_JAVA_TMP): $(VBOXWEB_IDL_SRC) $(VBOX_PATH_WEBSERVICE)/glue-jaxws.xsl $(VBOX_PATH_WEBSERVICE)/websrv-shared.inc.xsl $$(TARGET_filesplitter) $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(MKDIR) -p $(@D)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(call MSG_GENERATE,,$@,$(VBOXWEB_IDL_SRC) using glue-jaxws.xsl)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(VBOX_XSLTPROC) $(VBOXWEB_XSLTPROC_VERBOSE) -o $@ $(VBOX_PATH_WEBSERVICE)/glue-jaxws.xsl $<
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(call MSG_GENERATE,,java client glue files in $(VBOXWEB_PATH_SDK_GLUE_JAVA))
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync $(RM) -R -f $(VBOXWEB_PATH_SDK_GLUE_JAVA)
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_PATH_SDK_GLUE_JAVA)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(TARGET_filesplitter) $@ $(VBOXWEB_PATH_SDK_GLUE_JAVA)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync# likely those 4 rules can be changed to INSTALLS
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync$(VBOXWEB_PATH_SDK_GLUE_JAVA)/Makefile: $(VBOX_PATH_WEBSERVICE)/samples/java/jax-ws/Makefile.glue $(VBOXWEB_GLUE_JAVA_TMP)
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(QUIET)$(CP) $< $@
b7a5b3f9f9ecce32ddacf8404c625ce0451bbdc1vboxsync
ff88d4153cd65650577e8c2d1a5a3fdfa0404a80vboxsync$(VBOXWEB_SAMPLES_PYTHONWS_DIR)/Makefile: $(VBOX_PATH_WEBSERVICE)/samples/python/Makefile $(VBOXWEB_PERLSAMPLE)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) $< $@
fe813b3594039ba864493438e78ee0e7132bc445vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync$(VBOXWEB_SAMPLES_JAXWS_DIR)/Makefile: $(VBOX_PATH_WEBSERVICE)/samples/java/jax-ws/Makefile $(VBOXWEB_JAXWSSAMPLE)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) $< $@
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync## @todo r=bird: What is this for? It's not referenced by anyone.
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync$(VBOXWEB_JAVALIB)/Makefile: $(VBOX_PATH_WEBSERVICE)/samples/java/jax-ws/Makefile.glue $(VBOXWEB_JAVA16_JAR)
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync $(QUIET)$(CP) $< $@
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync$(VBOXWEB_JAVA15_JAR): $(VBOXWEB_GLUE_JAVA_TMP) $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(RM) -Rf $(VBOXWEB_JAVALIB)/gen15
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(MKDIR) -p $(VBOXWEB_JAVALIB)/gen15
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(call MSG_GENERATE,,$@,JAX-WS for Java 1.5 bindings using $(VBOXWEBSERVICE_WSDL))
ff88d4153cd65650577e8c2d1a5a3fdfa0404a80vboxsync $(QUIET)$(VBOX_WSIMPORT15) -d $(VBOXWEB_JAVALIB)/gen15 $(VBOXWEBSERVICE_WSDL)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(call MSG_L1,Compiling bridge code)
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(QUIET)$(VBOX_JAVAC15) -cp \
fe813b3594039ba864493438e78ee0e7132bc445vboxsync $(VBOXWEB_JAVALIB)/gen15:$(VBOX_JAXWS_LIBDIR)/jaxws-api.jar:$(VBOX_JAXWS_LIBDIR)/lib/jaxb-api.jar:$(VBOX_JAXWS_LIBDIR)/jsr181-api.jar \
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(VBOXWEB_PATH_SDK_GLUE_JAVA)/*.java -d $(VBOXWEB_JAVALIB)/gen15
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) -f $(VBOXWEBSERVICE_WSDL) $(VBOXWEB_JAVALIB)/gen15/
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOXWEB_JAVALIB)/gen15/
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(RM) -f $(VBOXWEB_JAVALIB)/gen15/*.java
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync $(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL) $(VBOXWEB_JAVALIB)/gen15
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(VBOX_JAR) cf $@ -C $(VBOXWEB_JAVALIB)/gen15 .
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync$(VBOXWEB_JAVA16_JAR): $(VBOXWEB_GLUE_JAVA_TMP) $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL)
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(QUIET)$(RM) -Rf $(VBOXWEB_JAVALIB)/gen16
fe813b3594039ba864493438e78ee0e7132bc445vboxsync $(MKDIR) -p $(VBOXWEB_JAVALIB)/gen16
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(call MSG_GENERATE,,$@,JAX-WS for Java 1.6 bindings using $(VBOXWEBSERVICE_WSDL))
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(VBOX_WSIMPORT16) -d $(VBOXWEB_JAVALIB)/gen16 $(VBOXWEBSERVICE_WSDL)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(call MSG_L1,Compiling bridge code)
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(VBOX_JAVAC16) -cp $(VBOXWEB_JAVALIB)/gen16 \
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync $(VBOXWEB_PATH_SDK_GLUE_JAVA)/*.java -d $(VBOXWEB_JAVALIB)/gen16
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) -f $(VBOXWEBSERVICE_WSDL) $(VBOXWEB_JAVALIB)/gen16/
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOXWEB_JAVALIB)/gen16/
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(QUIET)$(RM) -f $(VBOXWEB_JAVALIB)/gen16/*.java
548ca31b6b47c36bacce49bed3339cb8075b9681vboxsync $(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL) $(VBOXWEB_JAVALIB)/gen16
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync $(QUIET)$(VBOX_JAR) cf $@ -C $(VBOXWEB_JAVALIB)/gen16 .
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncendif # VBOX_ONLY_SDK
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
8083a259c13e6e26e56ca2582edbad4a8cfac25avboxsync
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync