diff --git a/common.mak b/common.mak
index 8dd24396d21e6b02188669e9895e03e0a45b393b..14c79f0e4751619c21988ea0fd74b292b9ec9ee1 100644
--- a/common.mak
+++ b/common.mak
@@ -47,6 +47,9 @@ COMPILE_S = $(call COMPILE,AS)
 %.o: %.cpp
 	$(COMPILE_CXX)
 
+%.s: %.c
+	$(CC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $<
+
 %.o: %.S
 	$(COMPILE_S)
 
diff --git a/subdir.mak b/subdir.mak
index 9ac824fd0a4a63bd5df7f0b4a674818eb2fef5ca..3589dfb7d655d2e291a2f0c9e9f5aeda706528b3 100644
--- a/subdir.mak
+++ b/subdir.mak
@@ -20,7 +20,7 @@ $(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm
 	$(YASMDEP) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d)
 	$(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $<
 
-$(OBJS) $(SUBDIR)%.ho $(TESTOBJS): CPPFLAGS += -DHAVE_AV_CONFIG_H
+$(OBJS) $(OBJS:.o=.s) $(SUBDIR)%.ho $(TESTOBJS): CPPFLAGS += -DHAVE_AV_CONFIG_H
 $(TESTOBJS): CPPFLAGS += -DTEST
 
 $(SUBDIR)$(LIBNAME): $(OBJS)