DEFS      = -D__WINESRC__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = none
EXTRALIBS = @LIBPOLL@

C_SRCS = \
	async.c \
	atom.c \
	change.c \
	class.c \
	clipboard.c \
	completion.c \
	console.c \
	debugger.c \
	device.c \
	directory.c \
	event.c \
	fd.c \
	file.c \
	handle.c \
	hook.c \
	mach.c \
	mailslot.c \
	main.c \
	mapping.c \
	mutex.c \
	named_pipe.c \
	object.c \
	process.c \
	procfs.c \
	ptrace.c \
	queue.c \
	region.c \
	registry.c \
	request.c \
	semaphore.c \
	serial.c \
	signal.c \
	snapshot.c \
	sock.c \
	symlink.c \
	thread.c \
	timer.c \
	token.c \
	trace.c \
	unicode.c \
	user.c \
	window.c \
	winstation.c

PROGRAMS = wineserver wineserver-installed
MANPAGES = wineserver.man wineserver.fr.man

INSTALLDIRS = \
	$(DESTDIR)$(bindir) \
	$(DESTDIR)$(mandir)/man$(prog_manext) \
	$(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)

all: $(PROGRAMS) $(MANPAGES)

@MAKE_RULES@

wineserver: $(OBJS)
	$(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(LIBS) $(LDRPATH_LOCAL)

wineserver-installed: $(OBJS)
	$(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(LIBS) $(LDRPATH_INSTALL)

install install-lib:: wineserver-installed $(MANPAGES) $(INSTALLDIRS)
	$(INSTALL_PROGRAM) wineserver-installed $(DESTDIR)$(bindir)/wineserver
	$(INSTALL_DATA) wineserver.man $(DESTDIR)$(mandir)/man$(prog_manext)/wineserver.$(prog_manext)
	$(INSTALL_DATA) wineserver.fr.man $(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wineserver.$(prog_manext)

uninstall::
	$(RM) $(DESTDIR)$(bindir)/wineserver $(DESTDIR)$(mandir)/man$(prog_manext)/wineserver.$(prog_manext)
	$(RM) $(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wineserver.$(prog_manext)

@DEPENDENCIES@  # everything below this line is overwritten by make depend
