1 ###############################################################################
3 ###############################################################################
4 OPTIM_SPEED = -O3 -march=native -mtune=native -mfpmath=sse ;
7 OPTIM_SIZE = -Os -march=native -mtune=native ;
10 OPTIM_STANDARD = -O2 -march=native -mtune=native ;
11 LINKFLAGS_STANDARD = -s ;
13 OPTIM_DEBUG = -O0 -g ;
14 LINKFLAGS_DEBUG = -g ;
16 OPTIM_NOALIAS = -fno-strict-aliasing ;
20 ## if $(OS) != "LINUX" {
21 ## DETECTED_CPU = "i486" ;
22 ## OPTIM_SPEED = -O3 -march=i486 -mtune=i486 ;
24 ## DETECTED_CPU = native ;
25 ## OPTIM_SPEED = -O3 -march=native -mtune=native ;
30 K8JAM-KNOWN-PROFILES =
31 none default # don't change
32 empty # remove optimisation flags
33 speed # optimise for speed
34 size # optimise for size
35 debug # don't optimize, add debug info
40 rule --k8jam-profile-none-- {
41 Echo "MSG: default profile" ;
46 rule --k8jam-profile-default-- {
47 --k8jam-profile-none-- ;
51 rule --k8jam-profile-empty-- {
52 Echo "MSG: empty profile" ;
53 SLACK_PKG_ARCH = "i486" ;
57 rule --k8jam-profile-speed-- {
58 Echo "MSG: 'speed' profile" ;
59 SLACK_PKG_ARCH = "i686" ;
60 CFLAGS.all += $(OPTIM_SPEED) ;
61 LINKFLAGS.all += $(LINKFLAGS_SPEED) ;
65 rule --k8jam-profile-size-- {
66 Echo "MSG: 'size' profile" ;
67 SLACK_PKG_ARCH = "i686" ;
68 CFLAGS.all += $(OPTIM_SIZE) ;
69 LINKFLAGS.all += $(LINKFLAGS_SIZE) ;
73 rule --k8jam-profile-debug-- {
74 Echo "MSG: 'debug' profile" ;
75 SLACK_PKG_ARCH = "i486" ;
76 CFLAGS.all += $(OPTIM_DEBUG) ;
77 LINKFLAGS.all += $(LINKFLAGS_DEBUG) ;
81 rule --k8jam-profile-standard-- {
82 Echo "MSG: 'standard' profile" ;
83 SLACK_PKG_ARCH = "i486" ;
84 CFLAGS.all += $(OPTIM_STANDARD) ;
85 LINKFLAGS.all += $(LINKFLAGS_STANDARD) ;
91 # set compile flags for profile; works only for gcc/g++
93 # none, default: don't change
94 # empty: remove optimisation flags
95 # speed: optimise for speed and pIII
96 # size: optimise for size
97 # debug: don't optimize, add debug info
100 if ! $(1) in $(K8JAM-KNOWN-PROFILES) {
101 Echo "known profiles: $(K8JAM-KNOWN-PROFILES)" ;
102 Exit "unknown profile: $(1)" ;
105 remove-opt-flags-for-all-compilers ;
106 LINKFLAGS -= "-g" "-s" ;
107 C++LINKFLAGS -= "-g" "-s" ;
108 OBJCLINKFLAGS -= "-g" "-s" ;
109 LINKFLAGS.all -= "-g" "-s" ;
112 --k8jam-profile-$(OPT_PROFILE)-- ;
114 #SLACK_PKG_ARCH ?= "i486" ;
117 # selects 'debug', 'standard', 'speed' or 'size' profile according to vars:
119 # OPT_SIZE = 1 : size
120 # OPT_SPEED = 1 : speed
121 # OPT=SIZE or OPT=SPEED
126 if $(OPT) = "size" { otp = "size" ; }
127 else if $(OPT) = "SIZE" { otp = "size" ; }
128 if $(OPT) = "speed" { otp = "speed" ; }
129 else if $(OPT) = "SPEED" { otp = "speed" ; }
130 else if $(OPT_SIZE) { otp = "size" ; }
131 else if $(OPT_SPEED) { otp = "speed" ; }
135 } else if $(otp) = "size" {
137 } else if $(otp) = "speed" {
143 CFLAGS.all -= "-g" "-s" ;
144 LINKFLAGS.all -= "-g" "-s" ;
146 LINKFLAGS.all += -g ;
148 if ! $(NO_WARNINGS) {
149 CFLAGS.all += -Wall ;