e355ceef6a8d9611f7e4f574f537eeeff5b981db
[barrelfish] / tools / asmoffsets / Hakefile
1 --------------------------------------------------------------------------
2 -- Copyright (c) 2007-2009, 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, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
8 --
9 -- Hakefile for tools/asmoffsets
10 --
11 --------------------------------------------------------------------------
12
13 concat [ let
14     kopts = kernelOptions arch
15     opts = kopts { -- Need this to exclude asmoffsets.h!
16                    optDependencies = [d | d <- optDependencies kopts,
17                                       d /= Dep InstallTree arch "/include/asmoffsets.h"]
18                  }
19    in
20      [ Rule (makecToAssembler opts "src" "asmoffsets.c" "asmoffsets.s"), -- asmoffsets.s here is not the output it is the stem of the presumed output for the depenedency
21        makeDependAssembler opts "src" "asmoffsets.c",
22        Rule [ Str "grep -E '^#(if|ifndef|ifdef|define|undef|endif)'",
23            In BuildTree arch (assemblerFilePath opts "asmoffsets.c"),
24            Str "| sed 's/\\$$//'",
25            Str "| sed -e 's_#\\([0-9]\\)_\\1_' >",
26            Out arch "/include/asmoffsets.h" ]
27      ] | arch <- allArchitectures]