VirtualBox

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

Last change on this file since 76900 was 76553, checked in by vboxsync, 6 years ago

scm --update-copyright-year

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