summaryrefslogtreecommitdiffstatshomepage
path: root/makefile
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2010-06-11 23:07:16 +0000
committer Aaron Giles <aaron@aarongiles.com>2010-06-11 23:07:16 +0000
commit7eb08a94fb25f0a76b1b19adb39925e59cf09b78 (patch)
treecb5ae4a59b804833fb24b51271d81c4dd0fef10f /makefile
parent10f5966ea5b9745b9c8eb7ed1f7d901eaf586865 (diff)
Clean up profiling flags in the makefile. Removed GPROF flag, it is now just
PROFILE. When enabled, automatically turn on basic symbols. Also added new SYMLEVEL option to control the symbols level (defaults to 2). [Aaron Giles]
Diffstat (limited to 'makefile')
-rw-r--r--makefile38
1 files changed, 25 insertions, 13 deletions
diff --git a/makefile b/makefile
index 5c02f4c23e0..837aa08682c 100644
--- a/makefile
+++ b/makefile
@@ -180,9 +180,6 @@ endif
# uncomment next line to include the internal profiler
# PROFILER = 1
-# uncomment next line to include gprof profiler support
-# GPROF = 1
-
# uncomment the force the universal DRC to always use the C backend
# you may need to do this if your target architecture does not have
# a native backend
@@ -214,6 +211,10 @@ BUILD_ZLIB = 1
# uncomment next line to include the symbols
# SYMBOLS = 1
+# specify symbols level or leave commented to use the default
+# (default is SYMLEVEL = 2 normally; use 1 if you only need backtrace)
+# SYMLEVEL = 2
+
# uncomment next line to include profiling information from the compiler
# PROFILE = 1
@@ -254,10 +255,20 @@ endif
endif
# allow gprof profiling as well, which overrides the internal PROFILER
-ifdef GPROF
-CCOMFLAGS += -pg
+# also enable symbols as it is useless without them
+ifdef PROFILE
PROFILER =
-# LIBS += -lc_p
+SYMBOLS = 1
+ifndef SYMLEVEL
+SYMLEVEL = 1
+endif
+endif
+
+# set the symbols level
+ifdef SYMBOLS
+ifndef SYMLEVEL
+SYMLEVEL = 2
+endif
endif
@@ -296,7 +307,7 @@ RM = @rm -f
PREFIXSDL =
SUFFIX64 =
SUFFIXDEBUG =
-SUFFIXGPROF =
+SUFFIXPROFILE =
# Windows SDL builds get an SDL prefix
ifeq ($(OSD),sdl)
@@ -316,8 +327,8 @@ SUFFIXDEBUG = d
endif
# gprof builds get an addition 'p' suffix
-ifdef GPROF
-SUFFIXGPROF = p
+ifdef PROFILE
+SUFFIXPROFILE = p
endif
# the name is just 'target' if no subtarget; otherwise it is
@@ -329,7 +340,7 @@ NAME = $(TARGET)$(SUBTARGET)
endif
# fullname is prefix+name+suffix+suffix64+suffixdebug
-FULLNAME = $(PREFIX)$(PREFIXSDL)$(NAME)$(SUFFIX)$(SUFFIX64)$(SUFFIXDEBUG)$(SUFFIXGPROF)
+FULLNAME = $(PREFIX)$(PREFIXSDL)$(NAME)$(SUFFIX)$(SUFFIX64)$(SUFFIXDEBUG)$(SUFFIXPROFILE)
# add an EXE suffix to get the final emulator name
EMULATOR = $(FULLNAME)$(EXE)
@@ -418,7 +429,7 @@ CCOMFLAGS += -pipe
# add -g if we need symbols, and ensure we have frame pointers
ifdef SYMBOLS
-CCOMFLAGS += -g -fno-omit-frame-pointer
+CCOMFLAGS += -g$(SYMLEVEL) -fno-omit-frame-pointer
endif
# add -v if we need verbose build information
@@ -468,6 +479,7 @@ COBJFLAGS += \
-Wpointer-arith
+
#-------------------------------------------------
# include paths
#-------------------------------------------------
@@ -521,12 +533,10 @@ endif
# strip symbols and other metadata in non-symbols and non profiling builds
ifndef SYMBOLS
-ifndef PROFILE
ifneq ($(TARGETOS),macosx)
LDFLAGS += -s
endif
endif
-endif
# output a map file (emulator only)
ifdef MAP
@@ -590,6 +600,8 @@ endif
# add SoftFloat floating point emulation library
SOFTFLOAT = $(OBJ)/libsoftfloat.a
+
+
#-------------------------------------------------
# 'default' target needs to go here, before the
# include files which define additional targets