Build idl files as part of the normal build process.

diff --git a/Make.rules.in b/Make.rules.in
index 72a6c57..8c521af 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -113,7 +113,7 @@
 
 # Implicit rules
 
-.SUFFIXES: .mc .rc .mc.rc .res .res.o .spec .spec.c .spec.def .ok .sfd .ttf
+.SUFFIXES: .mc .rc .mc.rc .res .res.o .spec .spec.c .spec.def .idl .h .ok .sfd .ttf
 
 .c.o:
 	$(CC) -c $(ALLCFLAGS) -o $@ $<
@@ -136,6 +136,9 @@
 .spec.spec.def:
 	$(WINEBUILD) -w $(DEFS) -o $@ --def $<
 
+.idl.h:
+	$(WIDL) $(IDLFLAGS) -b -h -H $@ $<
+
 .c.ln:
 	$(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
 
@@ -225,17 +228,6 @@
 
 .PHONY: clean testclean $(SUBDIRS:%=%/__clean__) $(SUBDIRS:%=%/__testclean__) $(EXTRASUBDIRS:%=%/__clean__)
 
-# Rules for IDL files
-
-idl: $(SUBDIRS:%=%/__idl__)
-
-$(IDL_SRCS:.idl=.h): $(WIDL)
-
-$(SUBDIRS:%=%/__idl__): dummy
-	cd `dirname $@` && $(MAKE) idl
-
-.PHONY: idl
-
 # Rules for installing
 
 $(SUBDIRS:%=%/__install__): dummy
@@ -279,6 +271,8 @@
 
 $(MC_SRCS:.mc=.mc.rc): $(WMC)
 
+$(IDL_SRCS:.idl=.h): $(WIDL)
+
 $(SUBDIRS): dummy
 	@cd $@ && $(MAKE)