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

MODULE = if1632

SRCS = \
	call.S \
	callback.c \
	relay.c

DLLOBJS = \
	dll_gdi.o \
	dll_kernel.o \
	dll_keyboard.o \
	dll_shell.o \
	dll_sound.o \
	dll_stress.o \
	dll_unixlib.o \
	dll_user.o \
	dll_win87em.o \
	dll_winsock.o

OBJS1= $(SRCS:.S=.o)

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

/*
 * If you add a new spec file, copy one of these lines
 */
MakeDllFromSpec(gdi,$(TOP)/$(MODULE))
MakeDllFromSpec(kernel,$(TOP)/$(MODULE))
MakeDllFromSpec(keyboard,$(TOP)/$(MODULE))
MakeDllFromSpec(shell,$(TOP)/$(MODULE))
MakeDllFromSpec(sound,$(TOP)/$(MODULE))
MakeDllFromSpec(stress,$(TOP)/$(MODULE))
MakeDllFromSpec(unixlib,$(TOP)/$(MODULE))
MakeDllFromSpec(user,$(TOP)/$(MODULE))
MakeDllFromSpec(win87em,$(TOP)/$(MODULE))
MakeDllFromSpec(winsock,$(TOP)/$(MODULE))

WineRelocatableTarget($(TOP)/$(MODULE),,$(OBJS))
DependTarget()
CleanTarget()

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

includes::

install::

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