EXTRADEFS = -D_USER32_ -D_WINABLE_
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = user32.dll
IMPORTS   = gdi32 advapi32 kernel32 ntdll
ALTNAMES  = user.exe keyboard.dll ddeml.dll display.dll mouse.dll
EXTRALIBS = $(LIBUNICODE)
DLLMAIN   = UserClientDllInitialize@12

LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o

SPEC_SRCS16 = \
	ddeml.spec \
	display.spec \
	keyboard.spec \
	mouse.spec \
	user.exe.spec

C_SRCS = \
	$(TOPOBJDIR)/controls/button.c \
	$(TOPOBJDIR)/controls/combo.c \
	$(TOPOBJDIR)/controls/desktop.c \
	$(TOPOBJDIR)/controls/edit.c \
	$(TOPOBJDIR)/controls/icontitle.c \
	$(TOPOBJDIR)/controls/listbox.c \
	$(TOPOBJDIR)/controls/menu.c \
	$(TOPOBJDIR)/controls/scroll.c \
	$(TOPOBJDIR)/controls/static.c \
	$(TOPOBJDIR)/controls/uitools.c \
	$(TOPOBJDIR)/windows/class.c \
	$(TOPOBJDIR)/windows/clipboard.c \
	$(TOPOBJDIR)/windows/cursoricon.c \
	$(TOPOBJDIR)/windows/dce.c \
	$(TOPOBJDIR)/windows/defdlg.c \
	$(TOPOBJDIR)/windows/defwnd.c \
	$(TOPOBJDIR)/windows/dialog.c \
	$(TOPOBJDIR)/windows/driver.c \
	$(TOPOBJDIR)/windows/input.c \
	$(TOPOBJDIR)/windows/keyboard.c \
	$(TOPOBJDIR)/windows/mdi.c \
	$(TOPOBJDIR)/windows/message.c \
	$(TOPOBJDIR)/windows/msgbox.c \
	$(TOPOBJDIR)/windows/multimon.c \
	$(TOPOBJDIR)/windows/nonclient.c \
	$(TOPOBJDIR)/windows/painting.c \
	$(TOPOBJDIR)/windows/queue.c \
	$(TOPOBJDIR)/windows/rect.c \
	$(TOPOBJDIR)/windows/scroll.c \
	$(TOPOBJDIR)/windows/spy.c \
	$(TOPOBJDIR)/windows/struct32.c \
	$(TOPOBJDIR)/windows/syscolor.c \
	$(TOPOBJDIR)/windows/sysmetrics.c \
	$(TOPOBJDIR)/windows/sysparams.c \
	$(TOPOBJDIR)/windows/timer.c \
	$(TOPOBJDIR)/windows/user.c \
	$(TOPOBJDIR)/windows/win.c \
	$(TOPOBJDIR)/windows/winhelp.c \
	$(TOPOBJDIR)/windows/winpos.c \
	$(TOPOBJDIR)/windows/winproc.c \
	cache.c \
	caret.c \
	dde/client.c \
	dde/ddeml16.c \
	dde/misc.c \
	dde/server.c \
	dialog16.c \
	display.c \
	exticon.c \
	focus.c \
	hook.c \
	lstr.c \
	message.c \
	misc.c \
	mouse.c \
	msg16.c \
	painting.c \
	property.c \
	resource.c \
	text.c \
	user_main.c \
	wsprintf.c

C_SRCS16 = \
	bidi16.c \
	comm16.c \
	hook16.c \
	network.c \
	user16.c \
	wnd16.c

RC_SRCS = resources/user32.rc

RC_SRCS16 = \
	resources/display.rc \
	resources/mouse.rc \
	resources/version16.rc

SUBDIRS = tests

EXTRASUBDIRS = \
	$(TOPOBJDIR)/controls \
	$(TOPOBJDIR)/windows \
	dde \
	resources

@MAKE_DLL_RULES@

# Special rules for 16-bit resource and spec files

user.exe.spec.c: user.exe.spec resources/version16.res
	$(WINEBUILD) $(DEFS) -o $@ --heap 65520 --main-module $(MODULE) --res resources/version16.res --spec $(SRCDIR)/user.exe.spec

display.spec.c: display.spec resources/display.res
	$(WINEBUILD) $(DEFS) -o $@ --main-module $(MODULE) --res resources/display.res --spec $(SRCDIR)/display.spec

mouse.spec.c: mouse.spec resources/mouse.res
	$(WINEBUILD) $(DEFS) -o $@ --main-module $(MODULE) --res resources/mouse.res --spec $(SRCDIR)/mouse.spec

resources/display.res: resources/display.rc
	$(LDPATH) $(RC16) $(RC16FLAGS) -fo$@ $(SRCDIR)/resources/display.rc

resources/mouse.res: resources/mouse.rc
	$(LDPATH) $(RC16) $(RC16FLAGS) -fo$@ $(SRCDIR)/resources/mouse.rc

resources/version16.res: resources/version16.rc
	$(LDPATH) $(RC16) $(RC16FLAGS) -fo$@ $(SRCDIR)/resources/version16.rc

### Dependencies: