- $(GHC) -c -o CAT3(file,way,.o) $(GHCFLAGS) flags CAT2(file,isuf)
-
-#define CompileRTSishly(file,isuf,flags) @@\
-IfGhcBuild_normal(DoRtsFile(file,isuf,,flags $(GHC_OPTS_norm))) \
-IfGhcBuild_p(DoRtsFile(file,isuf,_p, flags $(GHC_OPTS_p))) \
-IfGhcBuild_t(DoRtsFile(file,isuf,_t, flags $(GHC_OPTS_t))) \
-IfGhcBuild_u(DoRtsFile(file,isuf,_u, flags $(GHC_OPTS_u))) \
-IfGhcBuild_mc(DoRtsFile(file,isuf,_mc, flags $(GHC_OPTS_mc))) \
-IfGhcBuild_mr(DoRtsFile(file,isuf,_mr, flags $(GHC_OPTS_mr))) \
-IfGhcBuild_mt(DoRtsFile(file,isuf,_mt, flags $(GHC_OPTS_mt))) \
-IfGhcBuild_mp(DoRtsFile(file,isuf,_mp, flags $(GHC_OPTS_mp))) \
-IfGhcBuild_mg(DoRtsFile(file,isuf,_mg, flags $(GHC_OPTS_mg))) \
-IfGhcBuild_2s(DoRtsFile(file,isuf,_2s, flags $(GHC_OPTS_2s))) \
-IfGhcBuild_1s(DoRtsFile(file,isuf,_1s, flags $(GHC_OPTS_1s))) \
-IfGhcBuild_du(DoRtsFile(file,isuf,_du, flags $(GHC_OPTS_du))) \
-IfGhcBuild_a(DoRtsFile(file,isuf,_a, flags $(GHC_OPTS_a))) \
-IfGhcBuild_b(DoRtsFile(file,isuf,_b, flags $(GHC_OPTS_b))) \
-IfGhcBuild_c(DoRtsFile(file,isuf,_c, flags $(GHC_OPTS_c))) \
-IfGhcBuild_d(DoRtsFile(file,isuf,_d, flags $(GHC_OPTS_d))) \
-IfGhcBuild_e(DoRtsFile(file,isuf,_e, flags $(GHC_OPTS_e))) \
-IfGhcBuild_f(DoRtsFile(file,isuf,_f, flags $(GHC_OPTS_f))) \
-IfGhcBuild_g(DoRtsFile(file,isuf,_g, flags $(GHC_OPTS_g))) \
-IfGhcBuild_h(DoRtsFile(file,isuf,_h, flags $(GHC_OPTS_h))) \
-IfGhcBuild_i(DoRtsFile(file,isuf,_i, flags $(GHC_OPTS_i))) \
-IfGhcBuild_j(DoRtsFile(file,isuf,_j, flags $(GHC_OPTS_j))) \
-IfGhcBuild_k(DoRtsFile(file,isuf,_k, flags $(GHC_OPTS_k))) \
-IfGhcBuild_l(DoRtsFile(file,isuf,_l, flags $(GHC_OPTS_l))) \
-IfGhcBuild_m(DoRtsFile(file,isuf,_m, flags $(GHC_OPTS_m))) \
-IfGhcBuild_n(DoRtsFile(file,isuf,_n, flags $(GHC_OPTS_n))) \
-IfGhcBuild_o(DoRtsFile(file,isuf,_o, flags $(GHC_OPTS_o))) \
-IfGhcBuild_A(DoRtsFile(file,isuf,_A, flags $(GHC_OPTS_A))) \
-IfGhcBuild_B(DoRtsFile(file,isuf,_B, flags $(GHC_OPTS_B)))
+ $(GHC) -c -o CAT3(file.,way,o) $(GHCFLAGS) flags $(CAT4(GHC,_,way,OPTS)) CAT2(file,isuf)
+
+#define CompileRTSishly(file,isuf,flags) @@\
+IfBuild_normal(DoRtsFile(file,isuf,,flags)) \
+IfBuild_p(DoRtsFile(file,isuf,p_, flags)) \
+IfBuild_t(DoRtsFile(file,isuf,t_, flags)) \
+IfBuild_u(DoRtsFile(file,isuf,u_, flags)) \
+IfBuild_mc(DoRtsFile(file,isuf,mc_, flags)) \
+IfBuild_mr(DoRtsFile(file,isuf,mr_, flags)) \
+IfBuild_mt(DoRtsFile(file,isuf,mt_, flags)) \
+IfBuild_mp(DoRtsFile(file,isuf,mp_, flags)) \
+IfBuild_mg(DoRtsFile(file,isuf,mg_, flags)) \
+IfBuild_2s(DoRtsFile(file,isuf,2s_, flags)) \
+IfBuild_1s(DoRtsFile(file,isuf,1s_, flags)) \
+IfBuild_du(DoRtsFile(file,isuf,du_, flags)) \
+IfBuild_a(DoRtsFile(file,isuf,a_, flags)) \
+IfBuild_b(DoRtsFile(file,isuf,b_, flags)) \
+IfBuild_c(DoRtsFile(file,isuf,c_, flags)) \
+IfBuild_d(DoRtsFile(file,isuf,d_, flags)) \
+IfBuild_e(DoRtsFile(file,isuf,e_, flags)) \
+IfBuild_f(DoRtsFile(file,isuf,f_, flags)) \
+IfBuild_g(DoRtsFile(file,isuf,g_, flags)) \
+IfBuild_h(DoRtsFile(file,isuf,h_, flags)) \
+IfBuild_i(DoRtsFile(file,isuf,i_, flags)) \
+IfBuild_j(DoRtsFile(file,isuf,j_, flags)) \
+IfBuild_k(DoRtsFile(file,isuf,k_, flags)) \
+IfBuild_l(DoRtsFile(file,isuf,l_, flags)) \
+IfBuild_m(DoRtsFile(file,isuf,m_, flags)) \
+IfBuild_n(DoRtsFile(file,isuf,n_, flags)) \
+IfBuild_o(DoRtsFile(file,isuf,o_, flags)) \
+IfBuild_A(DoRtsFile(file,isuf,A_, flags)) \
+IfBuild_B(DoRtsFile(file,isuf,B_, flags))