#include "Wine.tmpl"

/*
 * This is the second try at using Imakefiles. There are probably many
 * problems and things I haven't even considered. I do not have a fixed
 * Linux system to test them on, but thanks to Thomas Michlmayr
 * <tmichl@cosy.sbg.ac.at> for use of one of his boxes. 
 *
 * SEE BELOW ABOUT DEBUGGING AND LINUX
 *
 * Peter Galbavy, 31st Jan 1994: peter@wonderland.org
 */

#define IHaveSubdirs
#define	PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CC=$(CC)'

SUBDIRS = \
	tools \
	controls \
	etc \
	if1632 \
	include \
	loader \
	memory \
	misc \
	objects \
	test \
	windows

/*
 * due to me not having the time and resources to test this, debugging
 * has been left out by for now of the Imakefiles. To put it back you have
 * to add:
 *	debugger
 * to the SUBDIRS list and:
 *	debugger
 *	readline.o
 * to the OBJS list.
 *
 * Not doing this will make the build fail in loader/signal.c, with an
 * unresolved reference to wine_debug. Comment out the line for now...
 * sigh. Fixed soon.
 */

WINEDIR = $(LIBDIR)/wine

OBJS = \
	if1632.o \
	controls.o \
	loader.o \
	memory.o \
	misc.o \
	objects.o \
	windows.o

#ifdef i386BsdArchitecture
SYSLIBS = -ll -lm -li386 -lgnumalloc
#else
#ifdef LinuxArchitecture
SYSLIBS = -lm
#endif
#endif

MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))

#ifdef i386BsdArchitecture
AllTarget(wine)
#endif

NormalProgramTarget(wine,$(OBJS),XawClientDepLibs,XawClientLibs,$(SYSLIBS))

#ifdef LinuxArchitecture
AllTarget(wine)
#endif

depend::

install::
