#include "../autoconf.h"
#include "../Wine.tmpl"

MODULE = if1632

SRCS = \
	callback.c \
	relay.c

#ifdef WINELIB
CALLOBJS =
DLLS =
#else
CALLOBJS = \
	call16.o \
	call32.o
DLLS = \
	commdlg \
	compobj \
	gdi \
	kernel \
	keyboard \
	mmsystem \
	mouse \
	ole2 \
	ole2conv \
	ole2disp \
	ole2nls \
	ole2prox \
	olecli \
	olesvr \
	shell \
	sound \
	storage \
	stress \
	system \
	toolhelp \
	user \
	win87em \
	winprocs \
	winsock
#endif

OBJS = $(DLLS:%=dll_%.o) $(CALLOBJS) $(SRCS:.c=.o) $(DLLS:%=tab_%.o)

BUILD = $(TOP)/tools/build

#define MakeDllFromSpec(name)					@@\
Concat(dll_,name.S) Concat(tab_,name.c): name.spec $(BUILD)	@@\
	$(BUILD) -spec name.spec				@@\

/*
 * If you add a new spec file, copy one of these lines
 */
MakeDllFromSpec(commdlg)
MakeDllFromSpec(compobj)
MakeDllFromSpec(gdi)
MakeDllFromSpec(kernel)
MakeDllFromSpec(keyboard)
MakeDllFromSpec(shell)
MakeDllFromSpec(mmsystem)
MakeDllFromSpec(mouse)
MakeDllFromSpec(ole2)
MakeDllFromSpec(ole2conv)
MakeDllFromSpec(ole2disp)
MakeDllFromSpec(ole2nls)
MakeDllFromSpec(ole2prox)
MakeDllFromSpec(olecli)
MakeDllFromSpec(olesvr)
MakeDllFromSpec(sound)
MakeDllFromSpec(storage)
MakeDllFromSpec(stress)
MakeDllFromSpec(system)
MakeDllFromSpec(toolhelp)
MakeDllFromSpec(user)
MakeDllFromSpec(win87em)
MakeDllFromSpec(winprocs)
MakeDllFromSpec(winsock)

WineRelocatableTarget($(MODULE),,$(OBJS))
DependTarget()

#ifndef WINELIB

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

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

#endif  /* WINELIB */

includes::

install::

clean::
	$(RM) dll_* tab_* call32.S call16.S
