+# Always remove $(EXCLUDED_C_SRCS) from C_SRCS
+EXCLUDED_C_SRCS = $(patsubst %.lhs, %_stub.c, $(HS_SRCS)) \
+ $(patsubst %.hs, %_stub.c, $(HS_SRCS)) \
+ $(patsubst %.gc, %_stub_ffi.c, $(GC_SRCS)) \
+ $(patsubst %.gc, %_stub_ffi.h, $(GC_SRCS))
+
+
+C_SRCS = $(filter-out $(EXCLUDED_C_SRCS),$(filter %.c,$(SRCS)))