a0d8897d0405a587dc3a24b3465e487c97310502
[barrelfish] / hake / Hakefile
1 ----------------------------------------------------------------------
2 -- Copyright (c) 2009, 2011, 2012, ETH Zurich.
3 -- All rights reserved.
4 --
5 -- This file is distributed under the terms in the attached LICENSE file.
6 -- If you do not find this file, copies can be found by writing to:
7 -- ETH Zurich D-INFK CAB F.78, Universitaetstr 6, CH-8092 Zurich. 
8 -- Attn: Systems Group.
9 --
10 -- Hakefile for /hake
11 --
12 ----------------------------------------------------------------------
13
14 let
15   hsInDir af tf dir = inDir af tf dir ".hs"
16   hakesrc = find hsInDir "."
17 in
18 [ Rule ([ Str "ghc -O --make -XDeriveDataTypeable",
19           Str "-package ghc",
20           Str "-package ghc-paths",
21           Str "-rtsopts=all",
22           --Str "-with-rtsopts=\"-K32m\"",
23           Str "-with-rtsopts=\"-T\"",
24           Str "-o", Out "hake" "/hake",
25           Str "-outputdir", NoDep BuildTree "hake" "/",
26           NStr "-i", NoDep SrcTree "src" "",
27           NStr "-i", NoDep BuildTree "hake" "/",
28           --In SrcTree "src" "Main.hs",
29           In SrcTree "src" "Hake2.hs",
30           Dep InstallTree "" "Config.hs",
31           Str "$(LDFLAGS)"
32         ] 
33         ++ [Dep SrcTree "src" f | f <- hakesrc] 
34         ++ [NL, Str "rm", NoDep BuildTree "hake" "/ARMv5.o" ]),
35   Rule [ Str "cp", 
36          In SrcTree "src" "symbolic_targets.mk",
37          Out "root" "symbolic_targets.mk" 
38        ],
39
40   -- copy default menu.lst file for the first architecture
41   -- XXX: this should be per-platform, if hake knew about them
42   Rule [ Str "cp -p -b ", In SrcTree "src" "menu.lst.$(word 1, $(HAKE_ARCHS))", Out "root" "menu.lst" ]
43 ]