# $Id: Makefile.kmk 106605 2024-10-23 01:27:57Z vboxsync $ ## @file # Sub-Makefile for various generic build tools (there is currently only one of them). # # # Copyright (C) 2006-2024 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 BLDPROGS += bin2c ifn1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), solaris.sparc64) BLDPROGS += biossums filesplitter genalias VBoxCmp endif bin2c_TEMPLATE = VBoxBldProg bin2c_SOURCES = \ bin2c.c biossums_TEMPLATE = VBoxBldProg biossums_SOURCES = biossums.c filesplitter_TEMPLATE = VBoxBldProg filesplitter_SOURCES = filesplitter.cpp genalias_TEMPLATE = VBoxBldProg genalias_SOURCES = genalias.cpp VBoxCmp_TEMPLATE = VBoxBldProg VBoxCmp_SOURCES = VBoxCmp.cpp ifndef VBOX_ONLY_BUILD PROGRAMS += scm scm_TEMPLATE = VBoxR3Tool scm_SOURCES = \ scm.cpp \ scmdiff.cpp \ scmrw.cpp \ scmrw-kmk.cpp \ scmparser.cpp \ scmstream.cpp \ scmsubversion.cpp ifdef VBOX_PATH_SUBVERSION_INCS scm_INCS += $(VBOX_PATH_SUBVERSION_INCS) $(VBOX_PATH_APACHE_RUNTIME_INCS) scm_DEFS += SCM_WITH_SVN_HEADERS endif BLDPROGS += VBoxCPP VBoxCPP_TEMPLATE = VBoxAdvBldProg VBoxCPP_SOURCES = \ VBoxCPP.cpp \ scmstream.cpp endif if !defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_EXTPACKS) BLDPROGS += VBoxTpG VBoxTpG_TEMPLATE = VBoxAdvBldProg VBoxTpG_SOURCES = \ VBoxTpG.cpp \ scmstream.cpp endif ifeq ($(KBUILD_TARGET),win) BLDPROGS += VBoxPeSetVersion endif VBoxPeSetVersion_TEMPLATE = VBoxBldProg VBoxPeSetVersion_SOURCES = VBoxPeSetVersion.cpp BLDPROGS.win += VBoxCheckImports VBoxCheckImports_TEMPLATE = VBoxBldProg VBoxCheckImports_SOURCES = VBoxCheckImports.cpp ifneq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),solaris.sparc64) BLDPROGS += VBoxDef2LazyLoad endif VBoxDef2LazyLoad_TEMPLATE = VBoxBldProg VBoxDef2LazyLoad_DEFS = TARGET_$(toupper $(KBUILD_TARGET_ARCH)) VBoxDef2LazyLoad_SOURCES = VBoxDef2LazyLoad.cpp ifeq ($(KBUILD_TARGET),win) BLDPROGS += VBoxEditCoffLib endif VBoxEditCoffLib_TEMPLATE = VBoxBldProg VBoxEditCoffLib_SOURCES = VBoxEditCoffLib.cpp # temp hack. VBoxCompilerPlugInsGcc.o VBoxCompilerPlugInsCommon.o VBoxCompilerPlugIns.o gccplugin: gccplugin$(SUFF_DLL) gccplugin$(SUFF_DLL): VBoxCompilerPlugInsGcc.cpp VBoxCompilerPlugInsCommon.cpp VBoxCompilerPlugIns.h $(TOOL_GXX3_CXX) -shared -fPIC -fno-rtti -g \ -DIN_RING3 \ $(if-expr "$(KBUILD_TYPE)" != "release",-DDEBUG,) \ -I$(shell $(TOOL_GXX3_CXX) -print-file-name=plugin)/include \ -I$(PATH_ROOT)/include \ $(if-expr "$(KBUILD_HOST)" == "solaris", -I/usr/include/gmp -I$(PATH_ROOT)/src/bldprogs/solgcc/,) \ -o $@ \ VBoxCompilerPlugInsGcc.cpp \ VBoxCompilerPlugInsCommon.cpp include $(FILE_KBUILD_SUB_FOOTER)