RTS_LC = \
c-as-asm/CallWrap_C.lc \
- c-as-asm/FreeMallocPtr.lc \
c-as-asm/HpOverflow.lc \
c-as-asm/StablePtr.lc \
c-as-asm/StablePtrOps.lc \
CLIB_LC = \
hooks/ErrorHdr.lc \
+ hooks/FreeForeignObj.lc \
hooks/OutOfHeap.lc \
hooks/OutOfStk.lc \
hooks/OutOfVM.lc \
* *
****************************************************************/
-#define CompileClibishly(file,flags) @@\
-CAT2(file,.o) : CAT2(file,.c) @@\
- $(RM) $@ @@\
- $(GHC) -c -o CAT2(file,.o) $(GHCFLAGS) flags CAT2(file,.c)
-
NormalLibraryTarget(HSclib,$(CLIB_OBJS))
ExtraStuffToClean($(CLIB_OBJS))
#if DoInstallGHCSystem == YES
#endif
/* all .lc files, so far */
-CompileClibishly(hooks/ErrorHdr,)
-CompileClibishly(hooks/OutOfHeap,)
-CompileClibishly(hooks/OutOfStk,)
-CompileClibishly(hooks/OutOfVM,)
-CompileClibishly(hooks/NoRunnableThrds,)
-CompileClibishly(hooks/PatErrorHdr,)
-CompileClibishly(hooks/TraceHooks,)
-CompileClibishly(hooks/SizeHooks,)
-CompileClibishly(hooks/InitEachPE,)
-CompileClibishly(main/Mallocs,)
-CompileClibishly(main/TopClosure,)
+CompileCBitsly(GHC,hooks/ErrorHdr,)
+CompileCBitsly(GHC,hooks/FreeForeignObj,)
+CompileCBitsly(GHC,hooks/OutOfHeap,)
+CompileCBitsly(GHC,hooks/OutOfStk,)
+CompileCBitsly(GHC,hooks/OutOfVM,)
+CompileCBitsly(GHC,hooks/NoRunnableThrds,)
+CompileCBitsly(GHC,hooks/PatErrorHdr,)
+CompileCBitsly(GHC,hooks/TraceHooks,)
+CompileCBitsly(GHC,hooks/SizeHooks,)
+CompileCBitsly(GHC,hooks/InitEachPE,)
+CompileCBitsly(GHC,main/Mallocs,)
+CompileCBitsly(GHC,main/TopClosure,)
ExtraStuffToClean(main/TopClosure.o)
# endif
AllTarget(gum/SysMan)
-gum/SysMan : gum/SysMan_mp.o gum/LLComms_mp.o main/Mallocs.o hooks/OutOfVM.o
+gum/SysMan : gum/SysMan.mp_o gum/LLComms.mp_o main/Mallocs.o hooks/OutOfVM.o
$(RM) $@
- $(CC) -o $@ gum/SysMan_mp.o gum/LLComms_mp.o main/Mallocs.o hooks/OutOfVM.o -L$$PVM_ROOT/lib/$$PVM_ARCH -lpvm3 -lgpvm3 __socket_libs
-ExtraStuffToClean(gum/SysMan_mp.o gum/SysMan)
+ $(CC) -o $@ gum/SysMan.mp_o gum/LLComms.mp_o main/Mallocs.o hooks/OutOfVM.o -L$$PVM_ROOT/lib/$$PVM_ARCH -lpvm3 -lgpvm3 __socket_libs
+ExtraStuffToClean(gum/SysMan.mp_o gum/SysMan)
# if DoInstallGHCSystem == YES
install :: gum/SysMan
$(INSTALL) -c $(INSTBINFLAGS) gum/SysMan $(INSTLIBDIR_GHC)/SysMan
/* to build and install the per-build rts stuff */
#ifndef SpecialGhcRtsLibTarget
-#define SpecialGhcRtsLibTarget(tag,objs) @@\
-AllTarget(CAT3(libHSrts,tag,.a)) @@\
-ExtraStuffToClean(objs CAT3(libHSrts,tag,.a)) @@\
-CAT3(libHSrts,tag,.a):: $(H_FILES) objs @@\
- $(RM) $@ @@\
- $(AR) $@ objs @@\
+#define SpecialGhcRtsLibTarget(tag,objs) @@\
+AllTarget(CAT3(libHSrts,tag,.a)) @@\
+ExtraStuffToClean(objs CAT3(libHSrts,tag,.a)) @@\
+CAT3(libHSrts,tag,.a):: $(H_FILES) objs @@\
+ $(RM) $@ @@\
+ $(AR) $@ objs @@\
$(RANLIB) $@
#endif /* SpecialGhcRtsLibTarget */
#ifndef SpecialGhcRtsLibInstallTarget
#if DoInstallGHCSystem == YES
-#define SpecialGhcRtsLibInstallTarget(tag) @@\
-install :: CAT3(libHSrts,tag,.a) @@\
- $(INSTALL) $(INSTLIBFLAGS) \ @@\
- CAT3(libHSrts,tag,.a) \ @@\
- $(INSTLIBDIR_GHC)/CAT3(libHSrts,tag,.a) @@\
+#define SpecialGhcRtsLibInstallTarget(tag) @@\
+install :: CAT3(libHSrts,tag,.a) @@\
+ $(INSTALL) $(INSTLIBFLAGS) \ @@\
+ CAT3(libHSrts,tag,.a) \ @@\
+ $(INSTLIBDIR_GHC)/CAT3(libHSrts,tag,.a) @@\
$(RANLIB) $(INSTLIBDIR_GHC)/CAT3(libHSrts,tag,.a)
#else /* ! DoInstallGHC... */
#define SpecialGhcRtsLibInstallTarget(tag) /*nothing*/
#endif /* ! DoInstallGHC... */
#endif /* SpecialGhcRtsLibInstallTarget */
-#define BigBuildTarget(tag,objs) \
+#define BigBuildRtsTarget(tag,objs) \
SpecialGhcRtsLibTarget(tag,objs) @@\
SpecialGhcRtsLibInstallTarget(tag)
MakeDirectories(install, $(INSTLIBDIR_GHC))
#endif /* DoInstallGHCSystem */
-IfBuild_normal(BigBuildTarget(,$(RTS_OBJS_norm)))
-IfBuild_p(BigBuildTarget(_p, $(RTS_OBJS_p)))
-IfBuild_t(BigBuildTarget(_t, $(RTS_OBJS_t)))
-IfBuild_u(BigBuildTarget(_u, $(RTS_OBJS_u)))
-IfBuild_mc(BigBuildTarget(_mc, $(RTS_OBJS_mc)))
-IfBuild_mr(BigBuildTarget(_mr, $(RTS_OBJS_mr)))
-IfBuild_mt(BigBuildTarget(_mt, $(RTS_OBJS_mt)))
-IfBuild_mp(BigBuildTarget(_mp, $(RTS_OBJS_mp)))
-IfBuild_mg(BigBuildTarget(_mg, $(RTS_OBJS_mg)))
-IfBuild_2s(BigBuildTarget(_2s, $(RTS_OBJS_2s)))
-IfBuild_1s(BigBuildTarget(_1s, $(RTS_OBJS_1s)))
-IfBuild_du(BigBuildTarget(_du, $(RTS_OBJS_du)))
-IfBuild_a(BigBuildTarget(_a, $(RTS_OBJS_a)))
-IfBuild_b(BigBuildTarget(_b, $(RTS_OBJS_b)))
-IfBuild_c(BigBuildTarget(_c, $(RTS_OBJS_c)))
-IfBuild_d(BigBuildTarget(_d, $(RTS_OBJS_d)))
-IfBuild_e(BigBuildTarget(_e, $(RTS_OBJS_e)))
-IfBuild_f(BigBuildTarget(_f, $(RTS_OBJS_f)))
-IfBuild_g(BigBuildTarget(_g, $(RTS_OBJS_g)))
-IfBuild_h(BigBuildTarget(_h, $(RTS_OBJS_h)))
-IfBuild_i(BigBuildTarget(_i, $(RTS_OBJS_i)))
-IfBuild_j(BigBuildTarget(_j, $(RTS_OBJS_j)))
-IfBuild_k(BigBuildTarget(_k, $(RTS_OBJS_k)))
-IfBuild_l(BigBuildTarget(_l, $(RTS_OBJS_l)))
-IfBuild_m(BigBuildTarget(_m, $(RTS_OBJS_m)))
-IfBuild_n(BigBuildTarget(_n, $(RTS_OBJS_n)))
-IfBuild_o(BigBuildTarget(_o, $(RTS_OBJS_o)))
-IfBuild_A(BigBuildTarget(_A, $(RTS_OBJS_A)))
-IfBuild_B(BigBuildTarget(_B, $(RTS_OBJS_B)))
+IfBuild_normal(BigBuildRtsTarget(,$(RTS_OBJS_norm)))
+IfBuild_p(BigBuildRtsTarget(_p, $(RTS_OBJS_p)))
+IfBuild_t(BigBuildRtsTarget(_t, $(RTS_OBJS_t)))
+IfBuild_u(BigBuildRtsTarget(_u, $(RTS_OBJS_u)))
+IfBuild_mc(BigBuildRtsTarget(_mc, $(RTS_OBJS_mc)))
+IfBuild_mr(BigBuildRtsTarget(_mr, $(RTS_OBJS_mr)))
+IfBuild_mt(BigBuildRtsTarget(_mt, $(RTS_OBJS_mt)))
+IfBuild_mp(BigBuildRtsTarget(_mp, $(RTS_OBJS_mp)))
+IfBuild_mg(BigBuildRtsTarget(_mg, $(RTS_OBJS_mg)))
+IfBuild_2s(BigBuildRtsTarget(_2s, $(RTS_OBJS_2s)))
+IfBuild_1s(BigBuildRtsTarget(_1s, $(RTS_OBJS_1s)))
+IfBuild_du(BigBuildRtsTarget(_du, $(RTS_OBJS_du)))
+IfBuild_a(BigBuildRtsTarget(_a, $(RTS_OBJS_a)))
+IfBuild_b(BigBuildRtsTarget(_b, $(RTS_OBJS_b)))
+IfBuild_c(BigBuildRtsTarget(_c, $(RTS_OBJS_c)))
+IfBuild_d(BigBuildRtsTarget(_d, $(RTS_OBJS_d)))
+IfBuild_e(BigBuildRtsTarget(_e, $(RTS_OBJS_e)))
+IfBuild_f(BigBuildRtsTarget(_f, $(RTS_OBJS_f)))
+IfBuild_g(BigBuildRtsTarget(_g, $(RTS_OBJS_g)))
+IfBuild_h(BigBuildRtsTarget(_h, $(RTS_OBJS_h)))
+IfBuild_i(BigBuildRtsTarget(_i, $(RTS_OBJS_i)))
+IfBuild_j(BigBuildRtsTarget(_j, $(RTS_OBJS_j)))
+IfBuild_k(BigBuildRtsTarget(_k, $(RTS_OBJS_k)))
+IfBuild_l(BigBuildRtsTarget(_l, $(RTS_OBJS_l)))
+IfBuild_m(BigBuildRtsTarget(_m, $(RTS_OBJS_m)))
+IfBuild_n(BigBuildRtsTarget(_n, $(RTS_OBJS_n)))
+IfBuild_o(BigBuildRtsTarget(_o, $(RTS_OBJS_o)))
+IfBuild_A(BigBuildRtsTarget(_A, $(RTS_OBJS_A)))
+IfBuild_B(BigBuildRtsTarget(_B, $(RTS_OBJS_B)))
/****************************************************************
* *
****************************************************************/
-#define DoRtsFile(file,isuf,way,flags) @@\
+#define DoRtsFile(file,isuf,way,vsuf,flags) @@\
CAT3(file.,way,o) : CAT2(file,isuf) @@\
$(RM) $@ @@\
- $(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))
+ $(GHC) -c -o CAT3(file.,way,o) $(GHCFLAGS) flags $(CAT3(GHC,_OPTS,vsuf)) CAT2(file,isuf)
+
+#define CompileRTSishly(file,isuf,flags) @@\
+IfBuild_normal(DoRtsFile(file,isuf,,_norm,flags)) \
+IfBuild_p(DoRtsFile(file,isuf,p_,_p, flags)) \
+IfBuild_t(DoRtsFile(file,isuf,t_,_t, flags)) \
+IfBuild_u(DoRtsFile(file,isuf,u_,_u, flags)) \
+IfBuild_mc(DoRtsFile(file,isuf,mc_,_mc, flags)) \
+IfBuild_mr(DoRtsFile(file,isuf,mr_,_mr, flags)) \
+IfBuild_mt(DoRtsFile(file,isuf,mt_,_mt, flags)) \
+IfBuild_mp(DoRtsFile(file,isuf,mp_,_mp, flags)) \
+IfBuild_mg(DoRtsFile(file,isuf,mg_,_mg, flags)) \
+IfBuild_2s(DoRtsFile(file,isuf,2s_,_2s, flags)) \
+IfBuild_1s(DoRtsFile(file,isuf,1s_,_1s, flags)) \
+IfBuild_du(DoRtsFile(file,isuf,du_,_du, flags)) \
+IfBuild_a(DoRtsFile(file,isuf,a_,_a, flags)) \
+IfBuild_b(DoRtsFile(file,isuf,b_,_b, flags)) \
+IfBuild_c(DoRtsFile(file,isuf,c_,_c, flags)) \
+IfBuild_d(DoRtsFile(file,isuf,d_,_d, flags)) \
+IfBuild_e(DoRtsFile(file,isuf,e_,_e, flags)) \
+IfBuild_f(DoRtsFile(file,isuf,f_,_f, flags)) \
+IfBuild_g(DoRtsFile(file,isuf,g_,_g, flags)) \
+IfBuild_h(DoRtsFile(file,isuf,h_,_h, flags)) \
+IfBuild_i(DoRtsFile(file,isuf,i_,_i, flags)) \
+IfBuild_j(DoRtsFile(file,isuf,j_,_j, flags)) \
+IfBuild_k(DoRtsFile(file,isuf,k_,_k, flags)) \
+IfBuild_l(DoRtsFile(file,isuf,l_,_l, flags)) \
+IfBuild_m(DoRtsFile(file,isuf,m_,_m, flags)) \
+IfBuild_n(DoRtsFile(file,isuf,n_,_n, flags)) \
+IfBuild_o(DoRtsFile(file,isuf,o_,_o, flags)) \
+IfBuild_A(DoRtsFile(file,isuf,A_,_A, flags)) \
+IfBuild_B(DoRtsFile(file,isuf,B_,_B, flags))
/* here we go: */
CompileRTSishly(c-as-asm/CallWrap_C,.c,)
-CompileRTSishly(c-as-asm/FreeMallocPtr,.c,)
CompileRTSishly(c-as-asm/HpOverflow,.c,)
CompileRTSishly(c-as-asm/PerformIO,.hc,-optc-DIN_GHC_RTS=1)
CompileRTSishly(c-as-asm/StablePtr,.c,)