From 29cd838eab01ed7110f3ccb2e8c6a35c8a31dbcc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:21:29 +0200 Subject: Adding upstream version 1:0.1.9998svn3589+dfsg. Signed-off-by: Daniel Baumann --- src/lib/kStuff/kProfiler2/Makefile.kmk | 237 +++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 src/lib/kStuff/kProfiler2/Makefile.kmk (limited to 'src/lib/kStuff/kProfiler2/Makefile.kmk') diff --git a/src/lib/kStuff/kProfiler2/Makefile.kmk b/src/lib/kStuff/kProfiler2/Makefile.kmk new file mode 100644 index 0000000..b3650c9 --- /dev/null +++ b/src/lib/kStuff/kProfiler2/Makefile.kmk @@ -0,0 +1,237 @@ +# $Id: Makefile.kmk 29 2009-07-01 20:30:29Z bird $ +## @file +# kProfiler Mark 2, sub-makefile. +# + +# +# Copyright (c) 2006-2007 Knut St. Osmundsen +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# + +DEPTH ?= .. +SUB_DEPTH = .. +include $(PATH_KBUILD)/subheader.kmk + +#LIBRARIES += kPrf2GC kPrf2R0 +DLLS += kPrf2 +PROGRAMS += kPrf2Read + + +# +# Our template. +# +TEMPLATE_kPrf2 = kProfiler Template +if1of ($(BUILD_TARGET), win) +TEMPLATE_kPrf2_EXTENDS = kStuff + +else # Eliminate these +TEMPLATE_kPrf2_TOOL = GCC3 +TEMPLATE_kPrf2_TOOL.os2 = GCC3OMF +TEMPLATE_kPrf2_TOOL.win.x86 = VCC70 +TEMPLATE_kPrf2_TOOL.win.amd64 = VCC80AMD64 +TEMPLATE_kPrf2_ASTOOL = YASM +TEMPLATE_kPrf2_ASTOOL.os2 = NASM + +TEMPLATE_kPrf2_SDKS.win = WINPSDK + +TEMPLATE_kPrf2_CXXFLAGS.freebsd = -g +TEMPLATE_kPrf2_CXXFLAGS.linux = -g +TEMPLATE_kPrf2_CXXFLAGS.os2 = -g +TEMPLATE_kPrf2_CXXFLAGS.win = -Zi -Zl -W3 -GF -GR- +TEMPLATE_kPrf2_CXXFLAGS.win.amd64 = -GS- #-FAcs +ifneq ($(BUILD_TYPE),debug) +TEMPLATE_kPrf2_CXXFLAGS.freebsd+= -O3 +TEMPLATE_kPrf2_CXXFLAGS.linux += -O3 +TEMPLATE_kPrf2_CXXFLAGS.os2 += -O3 +TEMPLATE_kPrf2_CXXFLAGS.win += -O2b2 +endif + +TEMPLATE_kPrf2_ASFLAGS.freebsd = -f elf +TEMPLATE_kPrf2_ASFLAGS.linux = -f elf +TEMPLATE_kPrf2_ASFLAGS.os2 = -f omf +TEMPLATE_kPrf2_ASFLAGS.win.x86 = -f win32 -g cv8 +TEMPLATE_kPrf2_ASFLAGS.win.amd64 = -f win64 -g cv8 + +TEMPLATE_kPrf2_INCS = \ + ../include + +TEMPLATE_kPrf2_LDFLAGS.freebsd = -g +TEMPLATE_kPrf2_LDFLAGS.linux = -g +TEMPLATE_kPrf2_LDFLAGS.os2 = -g +TEMPLATE_kPrf2_LDFLAGS.win = /DEBUG + +TEMPLATE_kPrf2_LIBS.freebsd = +TEMPLATE_kPrf2_LIBS.linux = +TEMPLATE_kPrf2_LIBS.os2 = +TEMPLATE_kPrf2_LIBS.win = \ + $(PATH_SDK_WINPSDK_LIB)/psapi.Lib +TEMPLATE_kPrf2_LIBS.win.x86 = \ + $(PATH_TOOL_VCC70_LIB)/libcmt.lib \ + $(PATH_TOOL_VCC70_LIB)/oldnames.lib +TEMPLATE_kPrf2_LIBS.win.amd64 = \ + $(PATH_TOOL_VCC80AMD64_LIB)/oldnames.lib \ + $(PATH_TOOL_VCC80AMD64_LIB)/libcmt.lib +endif + + +# +# kPrf2 - The profiler module. +# +kPrf2_TEMPLATE = kPrf2 +kPrf2_DEFS.x86 = KPRF_BITS=32 +kPrf2_DEFS.amd64 = KPRF_BITS=64 +kPrf2_LDFLAGS.win.amd64 = -Entry:DllMain + +kPrf2_SOURCES = \ + kProfileR3.cpp +# kProfileGC.cpp +# kProfileR0.cpp + +kPrf2_SOURCES.win = \ + dllmain-win.cpp \ + kPrf2WinApiWrapperHlp.c \ + prf$(BUILD_TARGET_ARCH)msc.asm \ + kPrf2-win-$(BUILD_TARGET_ARCH).def +prfx86msc.asm_DEFS.win.x86 = \ + KPRF_ENTER=_KPrfEnter \ + KPRF_LEAVE=_KPrfLeave +prfamd64msc.asm_DEFS.win.amd64 = \ + KPRF_ENTER=KPrfEnter \ + KPRF_LEAVE=KPrfLeave + +# +# kPrf2Read - The read & producer of statistics. +# +kPrf2Read_TEMPLATE = kStuffEXE +kPrf2Read_SOURCES = \ + kPrf2Read.cpp +kPrf2Read_LIBS = \ + $(PATH_LIB)/kDbgStatic$(SUFF_LIB) \ + $(PATH_LIB)/kRdrStatic$(SUFF_LIB) \ + $(PATH_LIB)/kHlpCRTStatic$(SUFF_LIB) + +# +# kPrf2WinApiWrappers +# +IMPORT_LIBS.win += kPrf2WinApiWrappersImp +kPrf2WinApiWrappersImp_TEMPLATE = kStuffEXE +kPrf2WinApiWrappersImp_SOURCES.x86 = kPrf2WinApiWrappersImp-x86.def +kPrf2WinApiWrappersImp_SOURCES.amd64 = kPrf2WinApiWrappersImp-amd64.def + +DLLS.win += kPrf2WinApiWrappers +kPrf2WinApiWrappers_TEMPLATE = kPrf2 +kPrf2WinApiWrappers_CFLAGS = -GH -Gh +kPrf2WinApiWrappers_LDFLAGS.win.x86 = -Entry:DllMain@12 +kPrf2WinApiWrappers_LDFLAGS.win.amd64 = -Entry:DllMain +kPrf2WinApiWrappers_SOURCES = \ + kPrf2WinApiWrappers.c \ + kPrf2WinApiWrappersImp-$(BUILD_TARGET_ARCH).def +kPrf2WinApiWrappers_LIBS = \ + $(PATH_kPrf2)/kPrf2.lib + +ifeq (0,1) +kPrf2WinApiWrappers-kernel32.h: + $(SED) -f kPrf2WinApi-pre.sed --output $@.tmp \ + $(PATH_SDK_WINPSDK_INC)/WinBase.h \ + $(PATH_SDK_WINPSDK_INC)/WinCon.h \ + $(PATH_SDK_WINPSDK_INC)/WinNLS.h \ + $(PATH_SDK_WINPSDK_INC)/WinVer.h \ + $(PATH_SDK_WINPSDK_INC)/WinNT.h \ + $(PATH_SDK_WINPSDK_INC)/TlHelp32.h + $(APPEND) $@.tmp 'BOOL WINAPI ReplaceFile( LPCSTR lpReplacedFileName, LPCSTR lpReplacementFileName, LPCSTR lpBackupFileName, DWORD dwReplaceFlags, LPVOID lpExclude, LPVOID lpReserved );' + $(APPEND) $@.tmp 'BOOL WINAPI SetConsoleCursor( PVOID pvUnknown1, PVOID pvUnknown2 );' + $(APPEND) $@.tmp 'LPCH WINAPI GetEnvironmentStringsA( VOID );' + $(APPEND) $@.tmp 'BOOL WINAPI GetBinaryType( LPCSTR lpApplicationName, LPDWORD lpBinaryType );' + $(APPEND) $@.tmp 'WORD NTAPI RtlCaptureStackBackTrace( DWORD FramesToSkip, DWORD FramesToCapture, PVOID * BackTrace, PDWORD BackTraceHash );' + $(APPEND) $@.tmp 'PVOID RtlFillMemory( PVOID pv, int ch, SIZE_T cb );' + $(APPEND) $@.tmp 'PVOID RtlZeroMemory( PVOID pv, SIZE_T cb );' + $(APPEND) $@.tmp 'PVOID RtlMoveMemory( PVOID pvDst, PVOID pvSrc, SIZE_T cb );' + $(APPEND) $@.tmp 'VOID NTAPI RtlUnwind( PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue );' + $(APPEND) $@.tmp 'VOID NTAPI RtlUnwindEx( FRAME_POINTERS TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable );' + $(APPEND) $@.tmp 'ULONGLONG WINAPI RtlVirtualUnwind( ULONG HandlerType, ULONGLONG ImageBase, ULONGLONG ControlPC, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PBOOLEAN InFunction, PFRAME_POINTERS EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers );' + $(APPEND) $@.tmp 'PVOID WINAPI RtlPcToFileHeader( PVOID PcValue, PVOID * BaseOfImage );' + $(APPEND) $@.tmp 'PVOID WINAPI RtlLookupFunctionEntry( ULONGLONG ControlPC, PULONGLONG ImageBase, PULONGLONG TargetGp );' + $(APPEND) $@.tmp 'void WINAPI RtlRaiseException(PEXCEPTION_RECORD pXcpRec);' + $(APPEND) $@.tmp 'int WINAPI uaw_lstrcmpW( LPCUWSTR lpString1, LPCUWSTR lpString2 );' + $(APPEND) $@.tmp 'int WINAPI uaw_lstrcmpiW( LPCUWSTR lpString1, LPCUWSTR lpString2 );' + $(APPEND) $@.tmp 'int WINAPI uaw_lstrlenW( LPCUWSTR lpString );' + $(APPEND) $@.tmp 'LPUWSTR WINAPI uaw_wcschr( LPCUWSTR lpString, WCHAR wc );' + $(APPEND) $@.tmp 'LPUWSTR WINAPI uaw_wcscpy( LPUWSTR lpDst, LPCUWSTR lpSrc );' + $(APPEND) $@.tmp 'int WINAPI uaw_wcsicmp( LPCUWSTR lp1, LPCUWSTR lp2 );' + $(APPEND) $@.tmp 'SIZE_T WINAPI uaw_wcslen( LPCUWSTR lp1 );' + $(APPEND) $@.tmp 'LPUWSTR WINAPI uaw_wcsrchr( LPCUWSTR lpString, WCHAR wc );' + $(APPEND) $@.tmp 'LPSTR WINAPI lstrcat( LPSTR lpString1, LPCSTR lpString2 );' + $(APPEND) $@.tmp 'int WINAPI lstrcmp( LPCSTR lpString1, LPCSTR lpString2 );' + $(APPEND) $@.tmp 'int WINAPI lstrcmpi( LPCSTR lpString1, LPCSTR lpString2 );' + $(APPEND) $@.tmp 'LPSTR WINAPI lstrcpy( LPSTR lpString1, LPCSTR lpString2 );' + $(APPEND) $@.tmp 'LPSTR WINAPI lstrcpyn( LPSTR lpString1, LPCSTR lpString2, int iMaxLength );' + $(APPEND) $@.tmp 'int WINAPI lstrlen( LPCSTR lpString );' + $(SED) -f kPrf2WinApi-gencode.sed --output $@ $@.tmp + $(RM) -f $@.tmp + +kPrf2WinApiWrappersImp-$(KBUILD_TARGET_ARCH).def: + $(RM) -f $@ + $(PATH_TOOL_$(TEMPLATE_kStuff_TOOL.win.$(BUILD_TARGET_ARCH))_BIN)/dumpbin.exe /EXPORTS /OUT:$@.tmp $(PATH_SDK_WINPSDK_LIB)/Kernel32.lib + $(SED) -f kPrf2WinApi-dumpbin.sed --output $@.tmp2 $@.tmp + $(APPEND) $@ 'LIBRARY kPrf2WinApiWrappers' + $(APPEND) $@ 'EXPORTS' + $(SED) -f kPrf2WinApi-genimp.sed --append $@ $@.tmp2 + $(RM) -f $@.tmp $@.tmp2 +endif + +# +# A simple testcase. +# +PROGRAMS.win.x86 += tst +tst_TOOL = VCC70 +tst_SDKS = WINPSDK +tst_CFLAGS = -GH -Gh -Zi -Zl -GR- -GX- -GF- -W3 -wd4244 +tst_SOURCES = tst.c +tst.c_CFLAGS = -Od +tst_LDFLAGS = /DEBUG +tst_LIBS = \ + $(PATH_TOOL_VCC70_LIB)/msvcrt.lib \ + $(PATH_TOOL_VCC70_LIB)/msvcprt.lib \ + $(PATH_TOOL_VCC70_LIB)/oldnames.lib \ + $(PATH_kPrf2)/kPrf2.lib + +PROGRAMS += tstlongjmp +tstlongjmp_TEMPLATE = kStuffEXE +tstlongjmp_CFLAGS.win = -GH -Gh -Zi +tstlongjmp_SOURCES = tstlongjmp.c +tstlongjmp_LIBS = \ + $(PATH_kPrf2)/kPrf2.lib + +# Generate the rules +include $(PATH_KBUILD)/subfooter.kmk + + +# +# Aliases for .cpp.h files so we can more easily do syntax checking from the editor. +# +CORE := $(wildcard *core*.cpp.h *core*.h.h) +$(CORE:.h=.o) $(CORE:.h=.obj) : kProfileR3.o + +READ := $(wildcard *read*.cpp.h *read*.h.h) +$(READ:.h=.o) $(READ:.h=.obj) : kPrf2Read.o + -- cgit v1.2.3