# $Id: Makefile.kmk $ ## @file # Sub-makefile for the DHCP server. # # # Copyright (C) 2006-2023 Oracle and/or its affiliates. # # This file is part of VirtualBox base platform packages, as # available from https://www.virtualbox.org. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, in version 3 of the # License. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # SPDX-License-Identifier: GPL-3.0-only # SUB_DEPTH := ../../../.. include $(KBUILD_PATH)/subheader.kmk ifndef LWIP_SOURCES include $(PATH_SUB_CURRENT)/../../Devices/Network/lwip-new/Config.kmk endif # # Hardended stub executable. # ifdef VBOX_WITH_HARDENING PROGRAMS += VBoxNetDHCPHardened VBoxNetDHCPHardened_TEMPLATE = VBoxR3HardenedExe VBoxNetDHCPHardened_NAME = VBoxNetDHCP VBoxNetDHCPHardened_SOURCES = VBoxNetDhcpdHardened.cpp VBoxNetDHCPHardened_LDFLAGS.win = /SUBSYSTEM:windows $(call VBOX_SET_VER_INFO_DLL,VBoxNetDHCPHardened,VirtualBox DHCP Server,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description. endif # # The DHCP server module (dll if hardended) # ifdef VBOX_WITH_HARDENING DLLS += VBoxNetDHCP VBoxNetDHCP_TEMPLATE := VBoxR3Dll else PROGRAMS += VBoxNetDHCP VBoxNetDHCP_TEMPLATE := VBoxR3Exe endif # (current dir is for for lwipopts.h) VBoxNetDHCP_INCS += . $(addprefix ../../Devices/Network/lwip-new/,$(LWIP_INCS)) ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING VBoxNetDHCP_DEFS = KBUILD_TYPE="$(KBUILD_TYPE)" else VBoxNetDHCP_DEFS = KBUILD_TYPE=\"$(KBUILD_TYPE)\" endif VBoxNetDHCP_DEFS += \ $(if $(VBOX_WITH_INTNET_SERVICE_IN_R3),VBOX_WITH_INTNET_SERVICE_IN_R3,) #VBoxNetDHCP_DEFS += IPv6 #VBoxNetDHCP_DEFS.linux = WITH_VALGRIND ifneq ($(KBUILD_TARGET),win) VBoxNetDHCP_DEFS += VBOX_WITH_XPCOM VBoxNetDHCP_INCS += $(VBOX_XPCOM_INCS) ifneq ($(KBUILD_TARGET),darwin) # We want -std=c++11 for 4.7 and newer compilers, and -std=c++0x for older ones. VBoxNetDHCP_CXXFLAGS += -std=$(if $(VBOX_GCC_VERSION_CXX),$(if $(VBOX_GCC_VERSION_CXX) < 40700,c++0x,c++11),c++0x) endif endif VBoxNetDHCP_INCS += \ ../NetLib VBoxNetDHCP_SOURCES = \ ClientId.cpp \ Config.cpp \ DHCPD.cpp \ Db.cpp \ DhcpMessage.cpp \ DhcpOptions.cpp \ IPv4Pool.cpp \ Timestamp.cpp \ VBoxNetDhcpd.cpp \ ../NetLib/IntNetIf.cpp \ ../../Main/glue/VBoxLogRelCreate.cpp \ ../../Main/glue/GetVBoxUserHomeDirectory.cpp \ $(addprefix ../../Devices/Network/lwip-new/,$(LWIP_SOURCES)) VBoxNetDHCP_LIBS = $(LIB_RUNTIME) VBoxNetDHCP_LIBS.solaris += socket nsl VBoxNetDHCP_LDFLAGS.win = /SUBSYSTEM:windows ifdef VBOX_WITH_HARDENING $(call VBOX_SET_VER_INFO_DLL,VBoxNetDHCP,VirtualBox DHCP Server (dll),$(VBOX_WINDOWS_ICON_FILE)) # Version info / description. else $(call VBOX_SET_VER_INFO_EXE,VBoxNetDHCP,VirtualBox DHCP Server,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description. endif include $(FILE_KBUILD_SUB_FOOTER)