source: trunk/kProfile/Makefile.kmk@ 3532

Last change on this file since 3532 was 3526, checked in by bird, 18 years ago

made it build again.

File size: 4.7 KB
RevLine 
[3524]1# $Id: $
2## @file
3#
4# kProfiler Mark 2
5#
6# Copyright (c) 2006 knut st. osmundsen <bird-src-spam@anduin.net.de>
7#
8#
9# This file is part of kLIBC.
10#
11# kLIBC is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# kLIBC is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kLIBC; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24#
25#
26
[3526]27DEPTH = ..
[3524]28include $(PATH_KBUILD)/header.kmk
29
30#LIBRARIES = kPrf2GC kPrf2R0
31DLLS = kPrf2
[3526]32PROGRAMS = kPrf2Read
[3524]33
34
35#
36# Our template.
37#
38TEMPLATE_kPrf2 = kProfiler Template
39TEMPLATE_kPrf2_TOOL = GCC3
40TEMPLATE_kPrf2_TOOL.os2 = GCC3OMF
[3526]41TEMPLATE_kPrf2_TOOL.win.x86 = VCC70
42TEMPLATE_kPrf2_TOOL.win.amd64 = VCC80AMD64
43TEMPLATE_kPrf2_ASTOOL = YASM
44TEMPLATE_kPrf2_ASTOOL.os2 = NASM
[3524]45
[3526]46TEMPLATE_kPrf2_SDKS.win = WINPSDK
[3524]47
[3526]48TEMPLATE_kPrf2_DEFS.freebsd = KPRF_OS_FREEBSD
49TEMPLATE_kPrf2_DEFS.linux = KPRF_OS_LINUX
50TEMPLATE_kPrf2_DEFS.os2 = KPRF_OS_OS2
51TEMPLATE_kPrf2_DEFS.win = KPRF_OS_WINDOWS
52
[3524]53TEMPLATE_kPrf2_CXXFLAGS.freebsd = -g
54TEMPLATE_kPrf2_CXXFLAGS.linux = -g
55TEMPLATE_kPrf2_CXXFLAGS.os2 = -g
[3526]56TEMPLATE_kPrf2_CXXFLAGS.win = -Zi -Zl -MD -W3 -GF -GR-
[3524]57ifneq ($(BUILD_TYPE),debug)
58TEMPLATE_kPrf2_CXXFLAGS.freebsd+= -O3
59TEMPLATE_kPrf2_CXXFLAGS.linux += -O3
60TEMPLATE_kPrf2_CXXFLAGS.os2 += -O3
[3526]61TEMPLATE_kPrf2_CXXFLAGS.win += -O2xtg -Oi -Ob2
[3524]62endif
63
[3526]64TEMPLATE_kPrf2_ASFLAGS.freebsd = -f elf
65TEMPLATE_kPrf2_ASFLAGS.linux = -f elf
[3524]66TEMPLATE_kPrf2_ASFLAGS.os2 = -f omf
[3526]67TEMPLATE_kPrf2_ASFLAGS.win.x86 = -f win32 -g cv8
68TEMPLATE_kPrf2_ASFLAGS.win.amd64 = -f win64 -g cv8
[3524]69
[3526]70#TEMPLATE_kPrf2_INCS.win = \
71# $(PATH_DEV)/x86.win32/vcc70/include \
72# $(PATH_DEV)/x86.win32/sdk200209/include
[3524]73
74TEMPLATE_kPrf2_LDFLAGS.freebsd = -g
75TEMPLATE_kPrf2_LDFLAGS.linux = -g
76TEMPLATE_kPrf2_LDFLAGS.os2 = -g
[3526]77TEMPLATE_kPrf2_LDFLAGS.win = /DEBUG
[3524]78
79TEMPLATE_kPrf2_LIBS.freebsd =
80TEMPLATE_kPrf2_LIBS.linux =
81TEMPLATE_kPrf2_LIBS.os2 =
[3526]82TEMPLATE_kPrf2_LIBS.win = \
83 $(PATH_SDK_WINPSDK_LIB)/psapi.Lib
84TEMPLATE_kPrf2_LIBS.win.x86 = \
[3524]85 $(PATH_TOOL_VCC70_LIB)/msvcrt.lib \
86 $(PATH_TOOL_VCC70_LIB)/msvcprt.lib \
[3526]87 $(PATH_TOOL_VCC70_LIB)/oldnames.lib
[3524]88
89
90#
91# kPrf2 - The profiler module.
92#
93kPrf2_TEMPLATE = kPrf2
94kPrf2_DEFS.x86 = KPRF_BITS=32
95kPrf2_DEFS.amd64 = KPRF_BITS=64
96
97kPrf2_SOURCES = \
98 kProfileR3.cpp
99# kProfileGC.cpp
100# kProfileR0.cpp
101
[3526]102kPrf2_SOURCES.win = \
103 dllmain-win.cpp \
104 prf$(BUILD_TARGET_ARCH)msc.asm \
105 kPrf2-win-$(BUILD_TARGET_ARCH).def
106prfx86msc.asm_DEFS.win.x86 = \
[3524]107 KPRF_ENTER=_KPrfEnter \
108 KPRF_LEAVE=_KPrfLeave
109
110
111
112#
113# kPrf2Read - The read & producer of statistics.
114#
115kPrf2Read_TEMPLATE = kPrf2
116kPrf2Read_SOURCES = \
[3526]117 kPrf2Read.cpp
118
119# kDbg stuff
120KDBG_ROOT ?= $(PATH_CURRENT)/../kProfile
121kPrf2Read_INCS += $(KDBG_ROOT)
122kPrf2Read_SOURCES += \
[3524]123 dbgmodule.cpp \
124 dbgline.cpp \
125 dbgsymbol.cpp
[3526]126ifeq ($(BUILD_TARGET),win)
127kPrf2Read_SOURCES.win += dbgModPE-win.cpp
[3524]128else
129kPrf2Read_SOURCES += dbgModPE-generic.cpp
130endif
131
[3526]132# kLdr stuff
133KLDR_ROOT ?= $(PATH_CURRENT)/../kLdr
134kPrf2Read_INCS += $(KLDR_ROOT)
[3524]135
[3526]136# IPRT stuff
137VBOX_ROOT ?= y:/coding/vbox/svn/trunk
138kPrf2Read_INCS += $(VBOX_ROOT)/include
139kPrf2Read_DEFS += IN_RING3 IN_RT_R3 KDBG_USE_IPRT KCOMMON_ALREADY_INCLUDED_STD_TYPES
140ifeq ($(BUILD_TARGET),win)
141kPrf2Read_LIBS = \
142 $(VBOX_ROOT)/out/$(BUILD_TARGET).$(BUILD_TARGET_ARCH)/$(BUILD_TYPE)/lib/VBoxRT$(SUFF_LIB)
143else
144kPrf2Read_LIBS = \
145 $(VBOX_ROOT)/out/$(BUILD_TARGET).$(BUILD_TARGET_ARCH)/$(BUILD_TYPE)/bin/VBoxRT$(SUFF_DLL)
146endif
[3524]147
[3526]148
149#
150# A simple testcase.
151#
152PROGRAMS.win.x86 += tst
[3524]153tst_TOOL = VCC70
[3526]154tst_SDKS = WINPSDK
[3524]155tst_CFLAGS = -GH -Gh -Zi -Zl -GR- -GX- -GF- -MD -W3 -wd4244
156tst_SOURCES = tst.c
157tst.c_CFLAGS = -Od
158tst_LDFLAGS = /DEBUG
159tst_LIBS = \
160 $(PATH_TOOL_VCC70_LIB)/msvcrt.lib \
161 $(PATH_TOOL_VCC70_LIB)/msvcprt.lib \
162 $(PATH_TOOL_VCC70_LIB)/oldnames.lib \
163 $(PATH_kPrf2)/kPrf2.lib
164
165# Generate the rules
166include $(PATH_KBUILD)/footer.kmk
167
168
169#
170# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
171#
172CORE := $(wildcard *core*.cpp.h *core*.h.h)
173$(CORE:.h=.o) $(CORE:.h=.obj) : kProfileR3.o
174
175READ := $(wildcard *read*.cpp.h *read*.h.h)
176$(READ:.h=.o) $(READ:.h=.obj) : kPrf2Read.o
177
Note: See TracBrowser for help on using the repository browser.