DEFS      = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = if1632

DLLS = \
	commdlg.spec \
	compobj.spec \
	ddeml.spec \
	gdi.spec \
	kernel.spec \
	keyboard.spec \
	lzexpand.spec \
	mmsystem.spec \
	mouse.spec \
	msvideo.spec \
	ole2.spec \
	ole2conv.spec \
	ole2disp.spec \
	ole2nls.spec \
	ole2prox.spec \
	ole2thk.spec \
	olecli.spec \
	olesvr.spec \
	rasapi16.spec \
	shell.spec \
	sound.spec \
	storage.spec \
	stress.spec \
	system.spec \
	toolhelp.spec \
	typelib.spec \
	user.spec \
	ver.spec \
	w32sys.spec \
	win32s16.spec \
	win87em.spec \
	winaspi.spec \
	windebug.spec \
	wineps.spec \
	wing.spec \
	winsock.spec \
	wprocs.spec

SPEC_FILES = $(DLLS:.spec=.s)

C_SRCS = \
	builtin.c \
	dummy.c \
	relay.c \
	signal.c \
	snoop.c \
	thunk.c

GEN_ASM_SRCS = \
	$(SPEC_FILES) \
	callfrom16.s \
	callto16.s

.SUFFIXES: .spec

.spec.s:
	$(BUILD) -o $@ -spec $<

all: checkbuild $(MODULE).o

@MAKE_RULES@

$(SPEC_FILES): $(BUILD)

callfrom16.s: $(SPEC_FILES)
	$(BUILD) -o $@ -callfrom16 `cat $(SPEC_FILES) | grep CallFrom16_ | sed 's/.*CallFrom16_\(.*\)/\1/' | sort | uniq`

callto16.s: $(SRCDIR)/thunk.c $(BUILD)
	$(BUILD) -o $@ -callto16 $(SRCDIR)/thunk.c

### Dependencies:
