GHC new build system megapatch
[ghc-hetmet.git] / rules / c-suffix-rules.mk
1
2 define c-suffix-rules 
3 # $1 = dir
4 # $2 = distdir
5 # $3 = way
6 # $4 = use GHC (YES/NO)
7
8 # UseGhcForCc is only relevant when not booting from HC files.
9 ifeq "$4" "YES"
10
11 $1/$2/build/%.$$($3_osuf) : $1/%.c $$(MKDIRHIER) $$($1_$2_HC_DEP)
12         $$(RM) $$@
13         $$(MKDIRHIER) $$(dir $$@)
14         $$($1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
15
16 $1/$2/build/%.$$($3_osuf) : $1/$2/build/%.c $$($1_$2_HC_DEP)
17         $$(RM) $$@
18         $$($1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
19
20 $1/$2/build/%.$$($3_osuf) : $1/$2/build/%.$$($3_way_)s $$($1_$2_HC_DEP)
21         $$(RM) $$@
22         $$($1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
23
24 $1/$2/build/%.$$($3_osuf) : $1/%.S $$(MKDIRHIER) $$($1_$2_HC_DEP)
25         $$(RM) $$@
26         $$(MKDIRHIER) $$(dir $$@)
27         $$($1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
28
29 $1/$2/build/%.$$($3_way_)s : $1/$2/build/%.c $$($1_$2_HC_DEP)
30         $$(RM) $$@
31         $$($1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -S $$< -o $$@
32
33 else
34
35 $1/$2/build/%.$$($3_osuf) : $1/%.c $$(MKDIRHIER)
36         $$(RM) $$@
37         $$(MKDIRHIER) $$(dir $$@)
38         $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -c $$< -o $$@
39
40 $1/$2/build/%.$$($3_osuf) : $1/$2/build/%.c
41         $$(RM) $$@
42         $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -c $$< -o $$@
43
44 $1/$2/build/%.$$($3_osuf) : $1/$2/build/%.$$($3_way_)s
45         $$(RM) $$@
46         $$(AS) $$($1_$2_$3_ALL_AS_OPTS) -o $$@ $$<
47
48 $1/$2/build/%.$$($3_osuf) : $1/%.S $$(MKDIRHIER)
49         $$(RM) $$@
50         $$(MKDIRHIER) $$(dir $$@)
51         $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -c $$< -o $$@
52
53 $1/$2/build/%.$$($3_way_)s : $1/$2/build/%.c
54         $$(RM) $$@
55         $$(CC) $$($1_$2_$3_ALL_CC_OPTS) -S $$< -o $$@
56
57 endif
58
59 endef
60