From 01469bc057c20ada64ac16a268d3b908970b246b Mon Sep 17 00:00:00 2001 From: ketmar Date: Thu, 17 Apr 2014 17:51:27 +0300 Subject: [PATCH] added 'profile targets' (see ChangeLog) --- defaults/Jambase.profile | 36 +++++++++++++++++++++++++++++++++--- doc/ChangeLog | 12 ++++++++++-- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/defaults/Jambase.profile b/defaults/Jambase.profile index 4c619cf..5dc32aa 100644 --- a/defaults/Jambase.profile +++ b/defaults/Jambase.profile @@ -128,10 +128,38 @@ rule profile { } +# process various profile targets: +# speed +# size +# debug +rule profile-targets { + local prf = ; + local ntarg = ; + for local targ in $(JAM_TARGETS) { + if $(targ) = 'speed' || $(targ) = 'size' || $(targ) = 'debug' { + if ! $(PROFILE) { + if $(prf) { Exit "FATAL: duplicate profile target; " $(prf) "and" $(targ) ; } + prf = $(targ) ; + } + } else if $(targ) = 'release' { + RELEASE = tan ; + } else { + ntarg += $(targ) ; + } + } + if $(prf) { PROFILE = $(prf) ; } + if ! $(ntarg) { ntarg = 'all' ; } + JAM_TARGETS = $(ntarg) ; +} + + # selects profile -rule set-profile { +# if $(flags) contains 'no-targets' -- disallow 'profile targets' +rule set-profile flags { local profname ndb dbg ; + if ! 'no-targets' in $(flags) { profile-targets ; } + dbg = ; profname = $(PROFILE) ; if ! $(profname) { @@ -179,10 +207,10 @@ rule set-profile { if $(MAEMO47) && $(FPIC) { CFLAGS.all += -fPIC ; } # d - if $(UNITTEST) || $(UNITTESTS) || $(D_UNITTEST) || $(D_UNITTESTS) { + if $(UNITTEST) || $(UNITTESTS) { GDCFLAGS.all += -funittest ; } - if $(RELEASE) || $(D_RELEASE) { + if $(RELEASE) { GDCFLAGS.all += -frelease ; GDCFLAGS.all += -fno-assert ; GDCFLAGS.all += -fno-debug ; @@ -210,3 +238,5 @@ rule set-profile { gcc-suggest-attrs ; } + + diff --git a/doc/ChangeLog b/doc/ChangeLog index 0d63cca..6d42400 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -467,8 +467,8 @@ 'enable/disable' var name. var value will be changed accordingly to check result [+] D support in set-profile: - RELEASE=1 or D_RELEASE=1 -- build release version - UNITTEST=1 or D_UNITTEST=1 -- build unittest version + RELEASE=1 -- build release version + UNITTEST=1 -- build unittest version for non-release mode: D_NO_ASSERT=1: turn off assert() D_NO_IN=1: turn off in {} @@ -478,3 +478,11 @@ D_NO_DEBUG=1: turn off 'debug' D_DEBUG=list: add -fdebug=xxx for each list item D_MAXSPEED=1: DON'T USE! + + [+] set-profile now understands 'speed', 'size', 'debug' and 'release' targets + 'release' target sets RELEASE variable and some flags for GDC compiler + + [+] set-profile now accepts list of flags. known flags: + no-targets -- don't process 'profile targets' + + [-] no more D_RELEASE and D_UNITTEST -- 2.11.4.GIT