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

MODULE = if1632

#ifdef WINELIB
SRCS = \
	callback.c \
	relay.c
#else
SRCS = \
	call.S \
	callback.c \
	relay.c
#endif

DLLOBJS = \
	dll_gdi.o \
	dll_kernel.o \
	dll_keyboard.o \
	dll_mmsystem.o \
	dll_mouse.o \
	dll_shell.o \
	dll_sound.o \
	dll_stress.o \
	dll_system.o \
	dll_toolhelp.o \
	dll_unixlib.o \
	dll_user.o \
	dll_win87em.o \
	dll_winsock.o

#ifdef WINELIB
DLLOBJS=
#endif

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(mmsystem,$(TOP)/$(MODULE))
MakeDllFromSpec(mouse,$(TOP)/$(MODULE))
MakeDllFromSpec(sound,$(TOP)/$(MODULE))
MakeDllFromSpec(stress,$(TOP)/$(MODULE))
MakeDllFromSpec(system,$(TOP)/$(MODULE))
MakeDllFromSpec(toolhelp,$(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
