Makefile.kmk revision c12ea5636f55fa8c4d8de7d0ccb870c5f8bcc231
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# $Id$
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync## @file
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync#
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync#
772269936494ffaddd0750ba9e28e805ba81398cvboxsync# Copyright (C) 2006-2012 Oracle Corporation
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync#
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# available from http://www.virtualbox.org. This file is free software;
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# you can redistribute it and/or modify it under the terms of the GNU
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# General Public License (GPL) as published by the Free Software
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync#
0b87790df72dd730ef361a1ce1a8d40ed4d15e10vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncSUB_DEPTH = ../../../..
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncifdef VBOX_WITH_LWIP_NAT
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# XXX: do not depend on order
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncifndef LWIP_SOURCES
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync include ../../Devices/Network/lwip-new/Makefile.kmk
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncendif
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncifdef VBOX_WITH_HARDENING
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync PROGRAMS += VBoxNetLwipNATHardened
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync DLLS += VBoxNetLwipNAT
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncelse
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync PROGRAMS += VBoxNetLwipNAT
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncendif
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncifdef VBOX_WITH_HARDENING
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync VBoxNetLwipNATHardened_SOURCES += VBoxNetNATHardened.cpp
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync VBoxNetLwipNATHardened_DEFS += SERVICE_NAME=\"VBoxNetNAT\"
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync VBoxNetLwipNATHardened_TEMPLATE=VBOXR3HARDENEDEXE
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync VBoxNetLwipNATHardened_NAME = VBoxNetNAT
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncendif
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_TEMPLATE =
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_TEMPLATE := VBOXMAIN$(if-expr defined(VBOX_WITH_HARDENING),DLL,CLIENTEXE)
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_NAME = VBoxNetNAT
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_DEFS += ${LWIP_DEFS} IPv6
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncVBoxNetLwipNAT_DEFS.win += VBOX_COM_OUTOFPROC_MODULE _WIN32_WINNT=0x501 # Windows XP
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_SOURCES += VBoxNetLwipNAT.cpp \
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync ../NetLib/VBoxNetBaseService.cpp \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync ../NetLib/VBoxNetPortForwardString.cpp \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync ../NetLib/VBoxNetIntIf.cpp \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync ../NetLib/VBoxNetUDP.cpp \
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync ../NetLib/VBoxNetARP.cpp \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync ../NetLib/ComHostUtils.cpp
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncVBoxNetLwipNAT_LIBS = \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync $(LIB_RUNTIME)
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncVBoxNetLwipNAT_LIBS.solaris += socket nsl
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncVBoxNetLwipNAT_LDFLAGS.win = /SUBSYSTEM:windows
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# Convince Solaris headers to expose socket stuff we need. 600 would
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync# also work, but <sys/feature_tests.h> insists on C99 for it and so
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync# explodes for C++. Note that for 500 it insists on NOT using C99, so
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync# when some day we decide to use -std=c99 we are in for some fun.
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsyncVBoxNetLwipNAT_DEFS.solaris += _XOPEN_SOURCE=500 __EXTENSIONS__=1
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync
52831df2c11f241bf670f904d23a4fbb3ef5e5bbvboxsyncVBoxNetLwipNAT_SOURCES += \
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync proxy_pollmgr.c \
d1a00c93378091ef28db9d959b2d692cc8143a07vboxsync proxy_rtadvd.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync proxy.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync pxremap.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync pxtcp.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync pxudp.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync pxdns.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync fwtcp.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync fwudp.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync portfwd.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync proxy_dhcp6ds.c \
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync proxy_tftpd.c
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncifeq ($(KBUILD_TARGET),win)
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync # unprivileged Icmp API
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync VBoxNetLwipNAT_SOURCES += pxping_win.c
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncelse
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync # raw sockets
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync VBoxNetLwipNAT_SOURCES += pxping.c
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsyncendif
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# ifeq ($(VBOX_WITH_HARDENING),)
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# ifn1of ($(KBUILD_TARGET), darwin win)
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# # helper for debugging unprivileged
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# VBoxNetLwipNAT_SOURCES += getrawsock.c
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# endif
2622c26c6b4105d944a29c5e2c77b6ef26e10101vboxsync# endif
772269936494ffaddd0750ba9e28e805ba81398cvboxsync
VBoxNetLwipNAT_SOURCES.darwin += rtmon_bsd.c
VBoxNetLwipNAT_SOURCES.freebsd += rtmon_bsd.c
VBoxNetLwipNAT_SOURCES.linux += rtmon_linux.c
VBoxNetLwipNAT_SOURCES.solaris += rtmon_bsd.c
VBoxNetLwipNAT_SOURCES.win += rtmon_win.c
VBoxNetLwipNAT_SOURCES.win += \
RTWinPoll.cpp \
RTWinSocketPair.cpp
$(eval $(call def_vbox_lwip_public, \
VBoxNetLwipNAT, ../../Devices/Network/lwip-new))
endif
include $(FILE_KBUILD_SUB_FOOTER)