Bugfix in hake: dealing with flags for C/C++ compilers
authorReto Achermann <reto.achermann@inf.ethz.ch>
Fri, 19 Dec 2014 14:57:50 +0000 (15:57 +0100)
committerReto Achermann <reto.achermann@inf.ethz.ch>
Fri, 19 Dec 2014 14:57:50 +0000 (15:57 +0100)
hake/ArchDefaults.hs
hake/HakeTypes.hs
hake/RuleDefs.hs

index e8ac60d..b3c4e48 100644 (file)
@@ -123,6 +123,7 @@ options arch archFamily = Options {
             optInterconnectDrivers = ["lmp", "ump", "multihop"],
             optFlounderBackends = ["lmp", "ump", "multihop"],
             extraFlags = [],
+            extraCxxFlags = [],
             extraDefines = [],
             extraIncludes = [],
             extraDependencies = [],
@@ -177,7 +178,7 @@ cxxCompiler arch cxxcompiler opts phase src obj =
     let incls = (optIncludes opts) ++ (extraIncludes opts)
         flags = (optCxxFlags opts) 
                 ++ (optDefines opts)
-                ++ [ Str f | f <- extraFlags opts ]
+                ++ [ Str f | f <- extraCxxFlags opts ]
                 ++ [ Str f | f <- extraDefines opts ]
         deps = (optDependencies opts) ++ (extraDependencies opts)
     in
@@ -214,7 +215,7 @@ makeCxxDepend arch cxxcompiler opts phase src obj depfile =
     let incls = (optIncludes opts) ++ (extraIncludes opts)
         flags = (optCxxFlags opts) 
                 ++ (optDefines opts)
-                ++ [ Str f | f <- extraFlags opts ]
+                ++ [ Str f | f <- extraCxxFlags opts ]
                 ++ [ Str f | f <- extraDefines opts ]
     in
       [ Str ('@':cxxcompiler) ] ++ flags 
index d90316d..d09e921 100644 (file)
@@ -106,6 +106,7 @@ data Options = Options {
       optInterconnectDrivers :: [String],
       optFlounderBackends :: [String],
       extraFlags :: [String],
+      extraCxxFlags :: [String],
       extraDefines :: [String],
       extraIncludes :: [RuleToken],
       extraDependencies :: [RuleToken],
index 39a33df..817765b 100644 (file)
@@ -152,6 +152,7 @@ kernelOptions arch = Options {
             optInterconnectDrivers = [],
             optFlounderBackends = [],
             extraFlags = [],
+            extraCxxFlags = [],
             extraDefines = [],
             extraIncludes = [],
             extraDependencies = [],
@@ -935,7 +936,8 @@ appGetOptionsForArch arch args =
                      optCxxFlags = (optCxxFlags $ options arch) \\
                                    [ Str f | f <- Args.omitCxxFlags args ],
                      optSuffix = "_for_app_" ++ Args.target args,
-                     extraFlags = Args.addCFlags args ++ Args.addCxxFlags args,
+                     extraFlags = Args.addCFlags args, 
+                     extraCxxFlags = Args.addCxxFlags args,
                      extraLdFlags = [ Str f | f <- Args.addLinkFlags args ],
                      extraDependencies =
                          [Dep BuildTree arch s | s <- Args.addGeneratedDependencies args]
@@ -993,7 +995,8 @@ arrakisAppGetOptionsForArch arch args =
                      optLibs = [ In InstallTree arch "/lib/libarrakis.a" ] ++
                                ((optLibs $ options arch) \\
                                 [ In InstallTree arch "/lib/libbarrelfish.a" ]),
-                     extraFlags = Args.addCFlags args ++ Args.addCxxFlags args,
+                     extraFlags = Args.addCFlags args, 
+                     extraCxxFlags = Args.addCxxFlags args,
                      extraLdFlags = [ Str f | f <- Args.addLinkFlags args ],
                      extraDependencies =
                          [Dep BuildTree arch s | s <- Args.addGeneratedDependencies args]
@@ -1046,7 +1049,8 @@ libGetOptionsForArch arch args =
                      optCxxFlags = (optCxxFlags $ options arch) \\
                                    [ Str f | f <- Args.omitCxxFlags args ],
                      optSuffix = "_for_lib_" ++ Args.target args,
-                     extraFlags = Args.addCFlags args ++ Args.addCxxFlags args,
+                     extraFlags = Args.addCFlags args, 
+                     extraCxxFlags = Args.addCxxFlags args,
                      extraDependencies =
                          [Dep BuildTree arch s | s <- Args.addGeneratedDependencies args]
                    }