Makefile revision cf284079aaaf9ac67ef4965897e875768cd4e21a
# $Id$
## @file
# Makefile for the InnoTek Portable Runtime (IPRT).
#
#
# Copyright (C) 2006 InnoTek Systemberatung GmbH
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# General Public License as published by the Free Software Foundation,
# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
# distribution. VirtualBox OSE is distributed in the hope that it will
# be useful, but WITHOUT ANY WARRANTY of any kind.
#
# If you received this file as part of a commercial VirtualBox
# distribution, then only the terms of your commercial VirtualBox
# license agreement apply instead of the previous paragraph.
#
DEPTH = ../../..
# Normal mode.
OTHER_CLEAN = \
$(PATH_TARGET)/errmsgdata.h \
$(PATH_TARGET)/Doxyfile \
$(PATH_TARGET)/Doxyfile.dep \
else
# Linux target guest runtime only mode.
endif # only linux guest additions
# global (for now at least)
#
# Unicode Specification reader used to regenerate unidata.cpp.
#
#
# Win64 assembly sources.
#
#
# RuntimeR3 - Static Runtime for Ring-3 executables.
#
RuntimeR3_DEFS.debug += KLDRMOD_STRICT KLDRMODLX_STRICT KLDRMODPE_STRICT KLDRMODNATIVE_STRICT KLDRRDR_STRICT
ifdef VBOX_MAIN_RELEASE_LOG ## @todo (dmik): temporary, until RTThreadSelf/RTThreadAdopt are properly updated
RuntimeR3_INCS = \
RuntimeR3_INCS += \
RuntimeR3_INCS.l4 = \
$(L4_INCDIR)
# for iconv.h
dir.cpp \
fs.cpp \
ldr.cpp \
log.cpp \
md5.cpp \
path.cpp \
req.cpp \
r3/stream.cpp \
time.cpp \
uni.cpp \
zip.cpp \
RuntimeR3_SOURCES += \
$(IPRT_PATH_KLDR)/kLdrMod.c \
$(IPRT_PATH_KLDR)/kLdrMisc.c \
$(IPRT_PATH_KLDR)/kLdrRdr.c \
# We Implement these using IPRT facilities.
# $(IPRT_PATH_KLDR)/kLdrHlp.c \
# $(IPRT_PATH_KLDR)/kLdrHlpHeap.c \
# $(IPRT_PATH_KLDR)/kLdrHlpSem.c \
# $(IPRT_PATH_KLDR)/kLdrHlpMem.c \
# $(IPRT_PATH_KLDR)/kLdrHlpPath.c
# VBox specific stuff.
RuntimeR3_SOURCES += \
else
RuntimeR3_SOURCES.os2 = \
## @todo Make BSD sched.
## PORTME: Porters add their selection of platform specific files for Ring-3 here.
#
# L4 RuntimeR3 subtarget since L4 headers won't work with VBOXR3.
#
#
# RuntimeW32GuestR3 - Win32 guest program runtime.
#
RuntimeW32GuestR3_DEFS.debug += KLDRMOD_STRICT KLDRMODLX_STRICT KLDRMODPE_STRICT KLDRMODNATIVE_STRICT KLDRRDR_STRICT
#
# RuntimeLnx32GuestR3 - 32-bit Linux guest program runtime.
#
RuntimeLnx32GuestR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
RuntimeLnx32GuestR3_DEFS.debug += KLDRMOD_STRICT KLDRMODLX_STRICT KLDRMODPE_STRICT KLDRMODNATIVE_STRICT KLDRRDR_STRICT
#
# VBoxRT - Shared Object / DLL version.
#
VBoxRT_SOURCES = \
VBoxRT_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
VBoxRT_INCS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
VBoxRT_LIBS = \
VBoxRT_LDFLAGS.l4 = \
VBoxRT_LIBS += \
$(L4_LIBDIR)/libl4sys.a \
VBoxRT_LIBS.l4 = \
#
# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
# This is used together with VBoxRT.
#
\
\
\
#
# RuntimeR0 - Ring0 library for VMMR0.
#
RuntimeR0_SOURCES.os2 = \
#
# RuntimeR0Drv - Ring0 library for host drivers.
#
RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 # why is IN_SUP_R0 here? because!
log.cpp \
\
\
## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
#
# RuntimeW32GuestR0 - Win32 guest driver runtime.
#
$(RuntimeR0Drv_SOURCES) \
#
# RuntimeW32NT4GuestR0 - Win32 NT4 guest driver runtime.
#
#
# RuntimeLnx32GuestR0 - 32-bit Linux guest driver runtime.
#
$(RuntimeR0Drv_SOURCES) \
#
# RuntimeGC - Guest context library.
#
log.cpp \
#
# Static library for new & delete for the electric fence.
#
#
# errmsg.cpp depends on a generated header.
#
# Generate the rules
#
# Generate the status code data.
#
$(call MSG_L1,Generating $@)
## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
$(call MSG_L1,Generating $@)
$(call MSG_L1,Generating $@)
#
# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
#
#
# Doxygen documentation.
#
string \
table \
)
# These must come first in order to make things look nice.
DOXYGEN_INPUT := \
DOXYGEN_INPUT := \
$(DOXYGEN_INPUT_FIRST) \
# Generate the Doxyfile
# Create the output directory.
$(MKDIR) -p $@
# Do the actual job.
$(PATH_TARGET)/docs.iprt: $(PATH_TARGET)/Doxyfile $(DOXYGEN_INPUT) | $(call DIRDEP, $(DOXYGEN_OUTPUT))
# alias
test:
@echo test-$(comp-vars DOXYGEN_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE)
@echo $(DOXYGEN_OUTPUT)
@echo $(DOXYGEN_OUTPUT_PREV)