added NOTES
[k8jam.git] / defaults / Jambase.profile
blob99a5a188ac89b07aa1ac640dd0879dabf4732e7a
1 # profile rules
3 rule SetCPUFlags {
4   if $(OS) != "LINUX" {
5     DETECTED_CPU = "i486" ;
6     OPTIM_SPEED = -O3 -march=i486 -mtune=i486 ;
7   } else {
8     DETECTED_CPU = native ;
9     OPTIM_SPEED = -O3 -march=native -mtune=native ;
10   }
14 K8JAM-KNOWN-PROFILES =
15   none default  # don't change
16   empty         # remove optimisation flags
17   speed         # optimise for speed
18   size          # optimise for size
19   debug         # don't optimize, add debug info
20   standard      # -O2
24 rule --k8jam-profile-none-- {
25   Echo "MSG: default profile" ;
26   OPT_PROFILE = ;
30 rule --k8jam-profile-default-- {
31   --k8jam-profile-none-- ;
35 rule --k8jam-profile-empty-- {
36   Echo "MSG: empty profile" ;
37   SLACK_PKG_ARCH = "i486" ;
38   LINKFLAGS.all += -s ;
41 rule --k8jam-profile-speed-- {
42   Echo "MSG: 'speed' profile" ;
43   SLACK_PKG_ARCH = "i686" ;
44   CFLAGS.all += $(OPTIM_SPEED) ;
45   LINKFLAGS.all += $(LINKFLAGS_SPEED) ;
46   OPTIM += -std=gnu99 ;
49 rule --k8jam-profile-size-- {
50   Echo "MSG: 'size' profile" ;
51   SLACK_PKG_ARCH = "i686" ;
52   CFLAGS.all += $(OPTIM_SIZE) ;
53   LINKFLAGS.all += $(LINKFLAGS_SIZE) ;
54   OPTIM += -std=gnu99 ;
57 rule --k8jam-profile-debug-- {
58   Echo "MSG: 'debug' profile" ;
59   SLACK_PKG_ARCH = "i486" ;
60   LINKFLAGS.all -= -s ;
61   CFLAGS.all += $(OPTIM_DEBUG) ;
62   LINKFLAGS.all += $(LINKFLAGS_DEBUG) ;
63   OPTIM += -std=gnu99 ;
66 rule --k8jam-profile-standard-- {
67   Echo "MSG: 'standard' profile" ;
68   SLACK_PKG_ARCH = "i486" ;
69   CFLAGS.all += $(OPTIM_STANDARD) ;
70   LINKFLAGS.all += $(LINKFLAGS_STANDARD) ;
71   OPTIM += -std=gnu99 ;
75 # profile "name" ;
76 # set compile flags for profile; works only for gcc/g++
77 # available profiles:
78 #  none, default: don't change
79 #  empty: remove optimisation flags
80 #  speed: optimise for speed and pIII
81 #  size: optimise for size
82 #  debug: don't optimize, add debug info
83 #  standard: -O2
84 rule profile {
85   if ! $(1) in $(K8JAM-KNOWN-PROFILES) {
86     Echo "known profiles: $(K8JAM-KNOWN-PROFILES)" ;
87     Exit "unknown profile: $(1)" ;
88   }
90   remove-opt-flags-for-all-compilers ;
91   LINKFLAGS -= "-g" "-s" ;
92   C++LINKFLAGS -= "-g" "-s" ;
93   OBJCLINKFLAGS -= "-g" "-s" ;
94   LINKFLAGS.all -= "-g" "-s" ;
96   OPT_PROFILE = $(1) ;
97   --k8jam-profile-$(OPT_PROFILE)-- ;
99 #SLACK_PKG_ARCH ?= "i486" ;
102 # selects 'debug', 'standard', 'speed' or 'size' profile according to vars:
103 #  DEBUG = 1 : debug
104 #  OPT_SIZE = 1 : size
105 #  OPT_SPEED = 1 : speed
106 #  OPT=SIZE or OPT=SPEED
107 #  default: standard
108 rule set-profile {
109   local otp ;
111   if $(OPT) = "size" { otp = "size" ; }
112   else if $(OPT) = "SIZE" { otp = "size" ; }
113   if $(OPT) = "speed" { otp = "speed" ; }
114   else if $(OPT) = "SPEED" { otp = "speed" ; }
115   else if $(OPT_SIZE) { otp = "size" ; }
116   else if $(OPT_SPEED) { otp = "speed" ; }
118   if $(DEBUG) {
119     profile "debug" ;
120   } else if $(otp) = "size" {
121     profile "size" ;
122   } else if $(otp) = "speed" {
123     profile "speed" ;
124   } else {
125     profile "standard" ;
126   }
127   if $(VALGRIND) {
128     CFLAGS.all -= "-g" "-s" ;
129     LINKFLAGS.all -= "-g" "-s" ;
130     CFLAGS.all += -g ;
131     LINKFLAGS.all += -g ;
132   }
133   if ! $(NO_WARNINGS) {
134     CFLAGS.all += -Wall ;
135   }