$(object_dir)/compress_filter.o: CFLAGS += -O3
-$(object_dir)/%.o: %.c | $(object_dir) $(dep_dir) $(lsg_h) $(yy_h)
+define CC_CMD
$(call SAY, CC $<)
- $(CC) -c -o $@ -MMD -MF $(dep_dir)/$(*F).d -MT $@ $(CPPFLAGS) \
- $(STRICT_CFLAGS) $(CFLAGS) $<
+ $(CC) -c -o $(object_dir)/$(*F).o -MMD -MF \
+ $(dep_dir)/$(*F).d -MT $(object_dir)/$(*F).o \
+ $(CPPFLAGS) $(STRICT_CFLAGS) $(CFLAGS) $<
+endef
+CC_PREREQUISITES := %.c | $(object_dir) $(dep_dir) $(lsg_h) $(yy_h)
+# These two have the same prerequisites and the same recipe. There should be a
+# better way to write this.
+$(object_dir)/%.o: $(CC_PREREQUISITES)
+ $(CC_CMD)
+$(dep_dir)/%.d: $(CC_PREREQUISITES)
+ $(CC_CMD)
para_recv para_afh para_play para_server: LDFLAGS += $(id3tag_ldflags)
para_write para_play para_audiod \