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

MODULE = if1632

SRCS = \
	callback.c \
	relay.c

#ifdef WINELIB
CALLOBJS =
DLLOBJS =
#else
CALLOBJS = call.o
DLLOBJS = \
	dll_commdlg.o \
	dll_compobj.o \
	dll_gdi.o \
	dll_kernel.o \
	dll_keyboard.o \
	dll_mmsystem.o \
	dll_mouse.o \
	dll_ole2.o \
	dll_ole2conv.o \
	dll_ole2disp.o \
	dll_ole2nls.o \
	dll_ole2prox.o \
	dll_olecli.o \
	dll_olesvr.o \
	dll_shell.o \
	dll_sound.o \
	dll_storage.o \
	dll_stress.o \
	dll_system.o \
	dll_toolhelp.o \
	dll_user.o \
	dll_win87em.o \
	dll_winsock.o
#endif

#ifndef NewBuild
OBJS = $(CALLOBJS) $(DLLOBJS) $(SRCS:.c=.o) $(DLLOBJS:.o=_tab.o)
#else
OBJS = $(CALLOBJS) $(DLLOBJS) $(SRCS:.c=.o) $(DLLOBJS:.o=_tab.o) $(DLLOBJS:dll_.rly_)
#endif

/*
 * 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(winsock)

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

#ifndef WINELIB
pop.h: $(TOP)/tools/build
	$(TOP)/tools/build -p

call.o: call.S pop.h
	$(CC) -I. -c -o call.o call.S
#endif

includes::
	touch pop.h

install::

clean::
	$(RM) dll* dtb* pop.h call.s
