VirtualBox

source: vbox/trunk/src/VBox/NetworkServices/NAT/Makefile.kmk@ 53855

Last change on this file since 53855 was 53855, checked in by vboxsync, 10 years ago

build fix

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.7 KB
Line 
1# $Id: Makefile.kmk 53855 2015-01-16 13:35:39Z vboxsync $
2## @file
3#
4
5#
6# Copyright (C) 2006-2012 Oracle Corporation
7#
8# This file is part of VirtualBox Open Source Edition (OSE), as
9# available from http://www.virtualbox.org. This file is free software;
10# you can redistribute it and/or modify it under the terms of the GNU
11# General Public License (GPL) as published by the Free Software
12# Foundation, in version 2 as it comes in the "COPYING" file of the
13# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15#
16
17SUB_DEPTH = ../../../..
18include $(KBUILD_PATH)/subheader.kmk
19
20VBOX_PATH_NAT_SRC := $(PATH_SUB_CURRENT)
21
22ifdef VBOX_WITH_LWIP_NAT
23# XXX: do not depend on order
24ifndef LWIP_SOURCES
25 include $(PATH_SUB_CURRENT)/../../Devices/Network/lwip-new/Makefile.kmk
26endif
27
28ifdef VBOX_WITH_HARDENING
29 PROGRAMS += VBoxNetLwipNATHardened
30 DLLS += VBoxNetLwipNAT
31else
32 PROGRAMS += VBoxNetLwipNAT
33endif
34
35ifdef VBOX_WITH_HARDENING
36 VBoxNetLwipNATHardened_SOURCES += VBoxNetNATHardened.cpp
37 VBoxNetLwipNATHardened_SOURCES.win = $(VBoxNetLwipNAT_0_OUTDIR)/VBoxNetLwipNAT-icon.rc
38 VBoxNetLwipNATHardened_DEFS += SERVICE_NAME=\"VBoxNetNAT\"
39 VBoxNetLwipNATHardened_TEMPLATE=VBOXR3HARDENEDEXE
40 VBoxNetLwipNATHardened_NAME = VBoxNetNAT
41 VBoxNetLwipNATHardened_LDFLAGS.win = /SUBSYSTEM:windows
42endif
43
44VBoxNetLwipNAT_TEMPLATE =
45VBoxNetLwipNAT_TEMPLATE := VBOXMAIN$(if-expr defined(VBOX_WITH_HARDENING),DLL,CLIENTEXE)
46VBoxNetLwipNAT_NAME = VBoxNetNAT
47VBoxNetLwipNAT_DEFS += ${LWIP_DEFS} IPv6
48# VBoxNetLwipNAT_DEFS.linux += WITH_VALGRIND # instrument lwip memp.c
49VBoxNetLwipNAT_DEFS.win += VBOX_COM_OUTOFPROC_MODULE _WIN32_WINNT=0x501 # Windows XP
50VBoxNetLwipNAT_SOURCES += VBoxNetLwipNAT.cpp \
51 $(VBOX_PATH_NAT_SRC)/../NetLib/VBoxNetBaseService.cpp \
52 $(VBOX_PATH_NAT_SRC)/../NetLib/VBoxNetPortForwardString.cpp \
53 $(VBOX_PATH_NAT_SRC)/../NetLib/VBoxNetIntIf.cpp \
54 $(VBOX_PATH_NAT_SRC)/../NetLib/VBoxNetUDP.cpp \
55 $(VBOX_PATH_NAT_SRC)/../NetLib/VBoxNetARP.cpp \
56 $(VBOX_PATH_NAT_SRC)/../NetLib/ComHostUtils.cpp
57
58VBoxNetLwipNAT_LIBS = \
59 $(LIB_RUNTIME)
60VBoxNetLwipNAT_LIBS.solaris += socket nsl
61VBoxNetLwipNAT_LDFLAGS.win = /SUBSYSTEM:windows
62
63# Convince Solaris headers to expose socket stuff we need.
64#
65# Setting _XOPEN_SOURCE to either 500 or 600 would always work, but
66# <sys/feature_tests.h> insists that 600 requires C99 and so it
67# explodes for older g++. It also insists that 500 is NOT to be used
68# with C99.
69#
70# Newer g++ in C++11 mode (formerly known as C++0x) needs 600, so it
71# employs sleight of hand to pretend it's C99 to keep feature test
72# happy.
73#
74# Compile the C code with settings that match g++. This probably
75# should be centralized so that whole codebase uses consistent
76# settings.
77ifeq ($(KBUILD_TARGET),solaris)
78 ifneq ($(VBOX_GCC_VERSION_CXX),)
79 ifneq ($(int-ge $(VBOX_GCC_VERSION_CXX),40600),)
80 # we compile C++ code with -std=c++0x / -std=c++11
81 VBoxNetLwipNAT_CFLAGS.solaris += -std=c99
82 VBoxNetLwipNAT_DEFS.solaris += _XOPEN_SOURCE=600
83 else
84 VBoxNetLwipNAT_DEFS.solaris += _XOPEN_SOURCE=500
85 endif
86 endif
87 VBoxNetLwipNAT_DEFS.solaris += __EXTENSIONS__=1
88endif
89
90VBoxNetLwipNAT_SOURCES += \
91 proxy_pollmgr.c \
92 proxy_rtadvd.c \
93 proxy.c \
94 pxremap.c \
95 pxtcp.c \
96 pxudp.c \
97 pxdns.c \
98 fwtcp.c \
99 fwudp.c \
100 portfwd.c \
101 proxy_dhcp6ds.c \
102 proxy_tftpd.c
103
104ifeq ($(KBUILD_TARGET),win)
105 # unprivileged Icmp API
106 VBoxNetLwipNAT_SOURCES += pxping_win.c
107else
108 # raw sockets
109 VBoxNetLwipNAT_SOURCES += pxping.c
110endif
111
112# ifeq ($(VBOX_WITH_HARDENING),)
113# ifn1of ($(KBUILD_TARGET), darwin win)
114# # helper for debugging unprivileged
115# VBoxNetLwipNAT_DEFS += VBOX_RAWSOCK_DEBUG_HELPER
116# VBoxNetLwipNAT_SOURCES += getrawsock.c
117# endif
118# endif
119
120VBoxNetLwipNAT_SOURCES.darwin += rtmon_bsd.c
121VBoxNetLwipNAT_SOURCES.freebsd += rtmon_bsd.c
122VBoxNetLwipNAT_SOURCES.linux += rtmon_linux.c
123VBoxNetLwipNAT_SOURCES.solaris += rtmon_bsd.c
124VBoxNetLwipNAT_SOURCES.win += rtmon_win.c
125
126VBoxNetLwipNAT_SOURCES.win += \
127 RTWinPoll.cpp \
128 RTWinSocketPair.cpp
129
130VBoxNetLwipNAT_INCS += . # for lwipopts.h
131$(eval $(call def_vbox_lwip_public, \
132 VBoxNetLwipNAT, $(PATH_SUB_CURRENT)/../../Devices/Network/lwip-new))
133endif
134
135ifeq ($(KBUILD_TARGET),win)
136# Icon include file.
137VBoxNetLwipNAT_SOURCES += VBoxNetNAT.rc
138VBoxNetNAT.rc_INCS = $(VBoxNetLwipNAT_0_OUTDIR)
139VBoxNetNAT.rc_DEPS = $(VBoxNetLwipNAT_0_OUTDIR)/VBoxNetLwipNAT-icon.rc
140VBoxNetNAT.rc_CLEAN = $(VBoxNetLwipNAT_0_OUTDIR)/VBoxNetLwipNAT-icon.rc
141$$(VBoxNetLwipNAT_0_OUTDIR)/VBoxNetLwipNAT-icon.rc: $(VBOX_WINDOWS_ICON_FILE) $$(VBoxNetLwipNAT_DEFPATH)/Makefile.kmk | $$(dir $$@)
142 $(RM) -f $@
143 $(APPEND) $@ 'IDI_VIRTUALBOX ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
144endif # win
145
146include $(FILE_KBUILD_SUB_FOOTER)
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette