GitLab will be upgraded to the 12.10.14-ce.0 on 28 Sept 2020 at 2.00pm (AEDT) to 2.30pm (AEDT). During the update, GitLab and Mattermost services will not be available. If you have any concerns with this, please talk to us at N110 (b) CSIT building.

build.rs 2.42 KB
Newer Older
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
1
// Copyright 2017 The Australian National University
2
//
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
3 4 5
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
6
//
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
9 10 11 12 13 14
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

15
#[cfg(not(feature = "sel4-rumprun-target-side"))]
16
extern crate built;
17

qinsoon's avatar
qinsoon committed
18 19
extern crate gcc;

20
#[cfg(not(feature = "sel4-rumprun-target-side"))]
21
#[cfg(any(target_os = "macos", target_os = "linux"))]
qinsoon's avatar
qinsoon committed
22 23
#[cfg(target_arch = "x86_64")]
fn main() {
qinsoon's avatar
qinsoon committed
24
    gcc::compile_library("libruntime_c.a", &["src/runtime/runtime_c_x64_sysv.c"]);
25

26
    gcc::Build::new()
27 28 29 30
        .flag("-O3")
        .flag("-c")
        .file("src/runtime/runtime_asm_x64_sysv.S")
        .compile("libruntime_asm.a");
31 32

    built();
33 34
}

35
#[cfg(not(feature = "sel4-rumprun-target-side"))]
36 37 38
#[cfg(target_os = "linux")]
#[cfg(target_arch = "aarch64")]
fn main() {
qinsoon's avatar
qinsoon committed
39
    gcc::compile_library("libruntime_c.a", &["src/runtime/runtime_c_aarch64_sysv.c"]);
40

41
    gcc::Build::new()
42 43
        .flag("-O3")
        .flag("-c")
qinsoon's avatar
qinsoon committed
44 45
        .file("src/runtime/runtime_asm_aarch64_sysv.S")
        .compile("libruntime_asm.a");
46 47

    built();
48
}
49

50
#[cfg(not(feature = "sel4-rumprun-target-side"))]
51 52
fn built() {
    built::write_built_file().expect("Failed to acquire build-time information");
53 54 55 56 57 58
}


#[cfg(feature = "sel4-rumprun-target-side")]
#[cfg(target_arch = "x86_64")]
fn main() {
59 60 61
    use std::path::Path;
    let mut compiler_name = String::new();
    compiler_name.push_str("x86_64-rumprun-netbsd-gcc");
62
    gcc::Build::new()
63 64 65 66 67
        .flag("-O3")
        .flag("-c")
        .compiler(Path::new(compiler_name.as_str()))
        .file("src/runtime/runtime_x64_sel4_rumprun_sysv.c")
        .compile("libruntime_c.a");
68
    gcc::Build::new()
69 70 71 72 73
        .flag("-O3")
        .flag("-c")
        .compiler(Path::new(compiler_name.as_str()))
        .file("src/runtime/runtime_asm_x64_sel4_rumprun_sysv.S")
        .compile("libruntime_asm.a");
74
    gcc::Build::new()
75 76 77 78 79
        .flag("-O3")
        .flag("-c")
        .compiler(Path::new(compiler_name.as_str()))
        .file("zebu_c_helpers.c")
        .compile("libzebu_c_helpers.a");
80
}