on master help sign in
Flag to disable effects
b68a1a7Jan Bessai
Setup.hs+25−14
@@ -44,7 +44,7 @@ cleanJavaLib verbosity
44 execPomExists <- doesFileExist ("java" </> "executable_pom.xml")
44 execPomExists <- doesFileExist ("java" </> "executable_pom.xml")
45 when pomExists $ removeFile ("java" </> "executable_pom.xml")
45 when pomExists $ removeFile ("java" </> "executable_pom.xml")
46
46
47−installStdLib pkg local verbosity copy
47+installStdLib pkg local withoutEffects verbosity copy
48 = do let dirs = L.absoluteInstallDirs pkg local copy
48 = do let dirs = L.absoluteInstallDirs pkg local copy
49 let idir = datadir dirs
49 let idir = datadir dirs
50 let icmd = idrisCmd local
50 let icmd = idrisCmd local
@@ -54,11 +54,12 @@ installStdLib pkg local verbosity copy
54 , "TARGET=" ++ idir
54 , "TARGET=" ++ idir
55 , "IDRIS=" ++ icmd
55 , "IDRIS=" ++ icmd
56 ]
56 ]
57+ unless withoutEffects $
57− make verbosity
58+ make verbosity
58− [ "-C", "effects", "install"
59+ [ "-C", "effects", "install"
59− , "TARGET=" ++ idir
60+ , "TARGET=" ++ idir
60− , "IDRIS=" ++ icmd
61+ , "IDRIS=" ++ icmd
61− ]
62+ ]
62 let idirRts = idir </> "rts"
63 let idirRts = idir </> "rts"
63 putStrLn $ "Installing run time system in " ++ idirRts
64 putStrLn $ "Installing run time system in " ++ idirRts
64 make verbosity
65 make verbosity
@@ -93,17 +94,18 @@ removeLibIdris local verbosity
93 , "IDRIS=" ++ icmd
94 , "IDRIS=" ++ icmd
94 ]
95 ]
95
96
96−checkStdLib local verbosity
97+checkStdLib local withoutEffects verbosity
97 = do let icmd = idrisCmd local
98 = do let icmd = idrisCmd local
98 putStrLn $ "Building libraries..."
99 putStrLn $ "Building libraries..."
99 make verbosity
100 make verbosity
100 [ "-C", "lib", "check"
101 [ "-C", "lib", "check"
101 , "IDRIS=" ++ icmd
102 , "IDRIS=" ++ icmd
102 ]
103 ]
104+ unless withoutEffects $
103− make verbosity
105+ make verbosity
104− [ "-C", "effects", "check"
106+ [ "-C", "effects", "check"
105− , "IDRIS=" ++ icmd
107+ , "IDRIS=" ++ icmd
106− ]
108+ ]
107 make verbosity
109 make verbosity
108 [ "-C", "rts", "check"
110 [ "-C", "rts", "check"
109 , "IDRIS=" ++ icmd
111 , "IDRIS=" ++ icmd
@@ -117,6 +119,12 @@ javaFlag flags =
117 Just False -> False
119 Just False -> False
118 Nothing -> False
120 Nothing -> False
119
121
122+noEffectsFlag flags =
123+ case lookup (FlagName "noeffects") (S.configConfigurationsFlags flags) of
124+ Just True -> True
125+ Just False -> False
126+ Nothing -> False
127+
120preparePoms version
128preparePoms version
121 = do pomTemplate <- TIO.readFile ("java" </> "pom_template.xml")
129 = do pomTemplate <- TIO.readFile ("java" </> "pom_template.xml")
122 TIO.writeFile ("java" </> "pom.xml") (insertVersion pomTemplate)
130 TIO.writeFile ("java" </> "pom.xml") (insertVersion pomTemplate)
@@ -132,11 +140,13 @@ main = do
132 defaultMainWithHooks $ simpleUserHooks
140 defaultMainWithHooks $ simpleUserHooks
133 { postCopy = \ _ flags pkg lbi -> do
141 { postCopy = \ _ flags pkg lbi -> do
134 let verb = S.fromFlag $ S.copyVerbosity flags
142 let verb = S.fromFlag $ S.copyVerbosity flags
143+ let withoutEffects = noEffectsFlag $ configFlags lbi
135− installStdLib pkg lbi verb
144+ installStdLib pkg lbi withoutEffects verb
136 (S.fromFlag $ S.copyDest flags)
145 (S.fromFlag $ S.copyDest flags)
137 , postInst = \ _ flags pkg lbi -> do
146 , postInst = \ _ flags pkg lbi -> do
138 let verb = (S.fromFlag $ S.installVerbosity flags)
147 let verb = (S.fromFlag $ S.installVerbosity flags)
148+ let withoutEffects = noEffectsFlag $ configFlags lbi
139− installStdLib pkg lbi verb
149+ installStdLib pkg lbi withoutEffects verb
140 NoCopyDest
150 NoCopyDest
141 when (javaFlag $ configFlags lbi)
151 when (javaFlag $ configFlags lbi)
142 (installJavaLib pkg
152 (installJavaLib pkg
@@ -155,6 +165,7 @@ main = do
155 cleanJavaLib verb
165 cleanJavaLib verb
156 , postBuild = \ _ flags _ lbi -> do
166 , postBuild = \ _ flags _ lbi -> do
157 let verb = S.fromFlag $ S.buildVerbosity flags
167 let verb = S.fromFlag $ S.buildVerbosity flags
168+ let withoutEffects = noEffectsFlag $ configFlags lbi
158− checkStdLib lbi verb
169+ checkStdLib lbi withoutEffects verb
159 when (javaFlag $ configFlags lbi) (checkJavaLib verb)
170 when (javaFlag $ configFlags lbi) (checkJavaLib verb)
160 }
171 }
config.mk+4−1
@@ -1,6 +1,9 @@
1GMP_INCLUDE_DIR :=
1GMP_INCLUDE_DIR :=
2CC :=gcc
2CC :=gcc
3CABAL :=cabal
3CABAL :=cabal
4−CABALFLAGS :=
4+#CABALFLAGS :=
5## Enable Java RTS:
5## Enable Java RTS:
6#CABALFLAGS :=-f Java
6#CABALFLAGS :=-f Java
7+## Disable building of Effects
8+CABALFLAGS :=-f NoEffects
9+
idris.cabal+4−1
@@ -65,7 +65,7 @@ Extra-source-files: lib/Makefile lib/*.idr lib/Prelude/*.idr
65 config.mk
65 config.mk
66 rts/*.c rts/*.h rts/Makefile
66 rts/*.c rts/*.h rts/Makefile
67 js/*.js
67 js/*.js
68− java/org/idris/rts/*.java
68+ java/org/idris/rts/*.java
69
69
70source-repository head
70source-repository head
71 type: git
71 type: git
@@ -75,6 +75,9 @@ Flag Java
75 Description: Build the Java RTS
75 Description: Build the Java RTS
76 Default: False
76 Default: False
77
77
78+Flag NoEffects
79+ Description: Do not build the effects package
80+ Default: False
78
81
79Executable idris
82Executable idris
80 Main-is: Main.hs
83 Main-is: Main.hs