8bba87998ecb74e099760e63f194b4d71e3a6516
[barrelfish] / hake / Hakefile
1 ----------------------------------------------------------------------
2 -- Copyright (c) 2009, 2011, 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 "-o", Out "hake" "/hake",
23           Str "-outputdir", NoDep BuildTree "hake" "/",
24           NStr "-i", NoDep SrcTree "src" "",
25           NStr "-i", NoDep BuildTree "hake" "/",
26           In SrcTree "src" "Main.hs",
27           Dep InstallTree "" "Config.hs",
28           Str "$(LDFLAGS)"
29         ] 
30         ++ [Dep SrcTree "src" f | f <- hakesrc] 
31         ++ [NL, Str "rm", NoDep BuildTree "hake" "/ARMv5.o" ]),
32   Rule [ Str "cp", 
33          In SrcTree "src" "symbolic_targets.mk",
34          Out "root" "symbolic_targets.mk" 
35        ],
36
37   -- copy default menu.lst file for the first architecture
38   -- XXX: this should be per-platform, if hake knew about them
39   Rule [ Str "cp -p -b ", In SrcTree "src" "menu.lst.$(word 1, $(HAKE_ARCHS))", Out "root" "menu.lst" ]
40 ]