Skip to content

Commit ec12b06

Browse files
committed
config optimized? for cc
1 parent f90b54c commit ec12b06

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

cc.rkt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,13 @@
3535
(c-compiler-candidates compilers))))
3636

3737
(define c-compile : (->* (Path-String Path-String)
38-
(#:standard (Option CC-Standard-Version) #:cpp? Boolean #:verbose? Boolean #:debug? Boolean
39-
#:includes (Listof C-Toolchain-Path-String) #:macros (Listof C-Compiler-Macro)
40-
#:compilers (Option (Listof Symbol)))
38+
(#:standard (Option CC-Standard-Version) #:compilers (Option (Listof Symbol))
39+
#:cpp? Boolean #:verbose? Boolean #:debug? Boolean #:optimize? Boolean
40+
#:includes (Listof C-Toolchain-Path-String) #:macros (Listof C-Compiler-Macro))
4141
Void)
42-
(lambda [#:standard [std #false] #:cpp? [cpp? #false] #:verbose? [verbose? #false] #:debug? [debug? #false]
43-
#:includes [includes null] #:macros [macros null] #:compilers [compilers #false]
42+
(lambda [#:standard [std #false] #:compilers [compilers #false] #:cpp? [cpp? #false]
43+
#:verbose? [verbose? #false] #:debug? [debug? #false] #:optimize? [optimize? #true]
44+
#:includes [includes null] #:macros [macros null]
4445
infile outfile]
4546
(define compiler : (Option CC) (c-pick-compiler compilers))
4647

@@ -64,7 +65,7 @@
6465
[else (or (force cc++) cc)])))
6566
(for/list : (Listof (Listof String)) ([layout (in-list (toolchain-option-layout compiler))])
6667
(case layout
67-
[(flags) ((cc-flags compiler) digimon-system cpp? std verbose? debug?)]
68+
[(flags) ((cc-flags compiler) digimon-system cpp? std verbose? debug? optimize?)]
6869
[(macros) ((cc-macros compiler) (cc-default-macros digimon-system cpp? debug?) digimon-system cpp? all-Ds)]
6970
[(includes) (remove-duplicates ((cc-includes compiler) (c-path-flatten includes) digimon-system cpp?))]
7071
[(infile) ((cc-infile compiler) infile digimon-system cpp?)]

digitama/toolchain/bin/clang.rkt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
extra-macros))))
2222

2323
(define clang-compile-flags : CC-Flags
24-
(lambda [system cpp? std verbose? debug?]
24+
(lambda [system cpp? std verbose? debug? optimize?]
2525
(append (list "-c" "-fPIC" "-Wall")
26-
(if (not debug?) (list "-O2") (list "-Og" "-g"))
26+
(if (not debug?) (if (not optimize?) null (list "-O2")) (list "-Og" "-g"))
2727
(cond [(not cpp?) (list "-x" "c" (clang-stdc->string std))]
2828
[else (list "-x" "c++" (clang-stdcpp->string std))])
2929
(case system

digitama/toolchain/bin/gcc.rkt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1111
(define gcc-compile-flags : CC-Flags
12-
(lambda [system cpp? std verbose? debug?]
13-
(cond [(eq? system 'macosx) (clang-compile-flags system cpp? std verbose? debug?)]
12+
(lambda [system cpp? std verbose? debug? optimize?]
13+
(cond [(eq? system 'macosx) (clang-compile-flags system cpp? std verbose? debug? optimize?)]
1414
[else (append (list "-c" "-fPIC" "-Wall")
1515

1616
; doesn't work...
1717
(list "-finput-charset=UTF-8" "-fextended-identifiers" "-fexec-charset=UTF-8")
1818

19-
(if (not debug?) (list "-O2") (list "-Og" "-g"))
19+
(if (not debug?) (if (not optimize?) null (list "-O2")) (list "-Og" "-g"))
2020
(cond [(not cpp?) (list "-x" "c" (clang-stdc->string std))]
2121
[else (list "-x" "c++" (clang-stdcpp->string std))])
2222
(case system

digitama/toolchain/bin/msvc.rkt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
extra-macros))))
2727

2828
(define msvc-compile-flags : CC-Flags
29-
(lambda [system cpp? std verbose? debug?]
29+
(lambda [system cpp? std verbose? debug? optimize?]
3030
(append (list "/nologo" "/FC" "/c" ; compiling only, no link
3131
#;"/constexpr"
3232
"/EHsc" "/W3" "/sdl" ; security features and warnings
3333
"/utf-8")
34-
(if (not debug?) (list "/O2") (list "/Od" "/ZI" "/JMC"))
34+
(if (not debug?) (if (not optimize?) null (list "/O2")) (list "/Od" "/ZI" "/JMC"))
3535
(if (not cpp?) (list "/TC" (msvc-stdc->string std)) (list "/TP" (msvc-stdcpp->string std)))
3636
(if (not verbose?) null (list "/showIncludes")))))
3737

digitama/toolchain/cc/compiler.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
(define-type CC-Options (U 'flags 'macros 'includes 'infile 'outfile))
1616

1717
(define-type CC-CPP-Macros (-> CC-Macros Symbol Boolean CC-Macros (Listof String)))
18-
(define-type CC-Flags (-> Symbol Boolean (Option CC-Standard-Version) Boolean Boolean (Listof String)))
18+
(define-type CC-Flags (-> Symbol Boolean (Option CC-Standard-Version) Boolean Boolean Boolean (Listof String)))
1919
(define-type CC-Includes (-> (Listof Path) Symbol Boolean (Listof String)))
2020

2121
(define-type CC-IO-File-Flag (-> Path-String Symbol Boolean (Listof String)))

0 commit comments

Comments
 (0)