src/Pure/Admin/build_e.scala
changeset 75393 87ebf5a50283
parent 74359 8cbe519c2085
child 75394 42267c650205
equal deleted inserted replaced
75388:b3ca4a6ed74b 75393:87ebf5a50283
     5 */
     5 */
     6 
     6 
     7 package isabelle
     7 package isabelle
     8 
     8 
     9 
     9 
    10 object Build_E
    10 object Build_E {
    11 {
       
    12   /* build E prover */
    11   /* build E prover */
    13 
    12 
    14   val default_version = "2.6"
    13   val default_version = "2.6"
    15   val default_download_url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD"
    14   val default_download_url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD"
    16 
    15 
    17   def build_e(
    16   def build_e(
    18     version: String = default_version,
    17     version: String = default_version,
    19     download_url: String = default_download_url,
    18     download_url: String = default_download_url,
    20     verbose: Boolean = false,
    19     verbose: Boolean = false,
    21     progress: Progress = new Progress,
    20     progress: Progress = new Progress,
    22     target_dir: Path = Path.current): Unit =
    21     target_dir: Path = Path.current
    23   {
    22   ): Unit = {
    24     Isabelle_System.with_tmp_dir("build")(tmp_dir =>
    23     Isabelle_System.with_tmp_dir("build")(tmp_dir => {
    25     {
       
    26       /* component */
    24       /* component */
    27 
    25 
    28       val component_name = "e-" + version
    26       val component_name = "e-" + version
    29       val component_dir = Isabelle_System.new_directory(target_dir + Path.basic(component_name))
    27       val component_dir = Isabelle_System.new_directory(target_dir + Path.basic(component_name))
    30       progress.echo("Component " + component_dir)
    28       progress.echo("Component " + component_dir)
    49       /* build */
    47       /* build */
    50 
    48 
    51       progress.echo("Building E prover for " + platform_name + " ...")
    49       progress.echo("Building E prover for " + platform_name + " ...")
    52 
    50 
    53       val build_dir = tmp_dir + Path.basic("E")
    51       val build_dir = tmp_dir + Path.basic("E")
    54       val build_options =
    52       val build_options = {
    55       {
       
    56         val result = Isabelle_System.bash("./configure --help", cwd = build_dir.file)
    53         val result = Isabelle_System.bash("./configure --help", cwd = build_dir.file)
    57         if (result.check.out.containsSlice("--enable-ho")) " --enable-ho" else ""
    54         if (result.check.out.containsSlice("--enable-ho")) " --enable-ho" else ""
    58       }
    55       }
    59 
    56 
    60       val build_script = "./configure" + build_options + " && make"
    57       val build_script = "./configure" + build_options + " && make"
   108 
   105 
   109   /* Isabelle tool wrapper */
   106   /* Isabelle tool wrapper */
   110 
   107 
   111   val isabelle_tool =
   108   val isabelle_tool =
   112     Isabelle_Tool("build_e", "build prover component from source distribution", Scala_Project.here,
   109     Isabelle_Tool("build_e", "build prover component from source distribution", Scala_Project.here,
   113     args =>
   110     args => {
   114     {
       
   115       var target_dir = Path.current
   111       var target_dir = Path.current
   116       var version = default_version
   112       var version = default_version
   117       var download_url = default_download_url
   113       var download_url = default_download_url
   118       var verbose = false
   114       var verbose = false
   119 
   115