#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_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
#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,$(TOP)/$(MODULE))
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()

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

call.o: call.S pop.h
	gcc -I. -c -o call.o call.S
#endif

includes::
	touch pop.h

install::

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