Replaced old hake
[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           Dep InstallTree "" "Config.hs",
30           Str "$(LDFLAGS)"
31         ] 
32         ++ [Dep SrcTree "src" f | f <- hakesrc] 
33         ++ [NL, Str "rm", NoDep BuildTree "hake" "/ARMv5.o" ]),
34   Rule [ Str "cp", 
35          In SrcTree "src" "symbolic_targets.mk",
36          Out "root" "symbolic_targets.mk" 
37        ],
38
39   -- copy default menu.lst file for the first architecture
40   -- XXX: this should be per-platform, if hake knew about them
41   Rule [ Str "cp -p -b ", In SrcTree "src" "menu.lst.$(word 1, $(HAKE_ARCHS))", Out "root" "menu.lst" ]
42 ]