TOPSRC = @top_srcdir@
BUILD  = $(TOPSRC)/tools/build

MODULE = if1632

DLLS16	= commdlg.spec compobj.spec ddeml.spec gdi.spec kernel.spec \
	keyboard.spec mmsystem.spec mouse.spec ole2.spec ole2conv.spec \
	ole2disp.spec ole2nls.spec ole2prox.spec olecli.spec olesvr.spec \
	shell.spec sound.spec storage.spec stress.spec system.spec \
	toolhelp.spec user.spec win87em.spec winprocs.spec winsock.spec

DLLS32	= advapi32.spec comdlg32.spec gdi32.spec kernel32.spec shell32.spec user32.spec winprocs32.spec

SPEC16_FILES = $(DLLS16:.spec=.S)
SPEC32_FILES = $(DLLS32:.spec=.c)

C_SRCS = \
	$(SPEC32_FILES) \
	callback.c \
	dummy.c \
	relay.c \
	relay32.c

ASM_SRCS = \
	$(SPEC16_FILES) \
	call16.S \
	call32.S

.SUFFIXES: .spec

.spec.S:
	$(BUILD) -spec16 $< > $*.S

.spec.c:
	$(BUILD) -spec32 $< > $*.c

all: checkbuild $(MODULE).o

@MAKE_RULES@

$(SPEC16_FILES) $(SPEC32_FILES): $(BUILD)

$(BUILD) checkbuild:
	cd $(TOPSRC)/tools; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LANG=$(LANG)' build

call16.S: $(TOPSRC)/include/callback.h $(BUILD)
	$(BUILD) -call16 `cat $(TOPSRC)/include/callback.h | grep "extern.*CallTo16_" | sed 's/.*CallTo16_\(.*\)(.*/\1/' | sort | uniq` > call16.S

call32.S: $(SPEC16_FILES)
	$(BUILD) -call32 `cat $(SPEC16_FILES) | grep CallTo32_ | sed 's/.*CallTo32_\(.*\)/\1/' | sort | uniq` > call32.S

clean::
	rm -f $(SPEC16_FILES) $(SPEC32_FILES) call32.S call16.S

### Dependencies:
