XCOMM $Id$

INCLUDES = -I$(TOP)/include -I$(TOP)

XCOMM Imake rules go here

XCOMM First, dll description to files etc
#ifndef MakeDllFromSpec
#ifndef NewBuild
#ifndef ShortNames
#define MakeDllFromSpec(name,objfile)					@@\
Concat(dll_,name.S) Concat3(dll_,name,_tab.c): name.spec $(TOP)/tools/build  @@\
	$(TOP)/tools/build name.spec					@@\

#else /* ShortNames */
#define MakeDllFromSpec(name,objfile)					@@\
Concat(dll_,name.S) Concat(dtb_,name.c): name.spec $(TOP)/tools/build   @@\
	$(TOP)/tools/build name.spec					@@\

#endif /* ShortNames */
#else /* NewBuild */
#ifndef ShortNames
#define MakeDllFromSpec(name,objfile)					@@\
Concat(dll_,name.S) Concat(rly_,name.S) Concat3(dll_,name,_tab.c): name.spec $(TOP)/tools/newbuild  @@\
	$(TOP)/tools/newbuild name.spec					@@\

#else /* ShortNames */
#define MakeDllFromSpec(name,objfile)					@@\
Concat(dll_,name.S) Concat(rly_,name.S) Concat(dtb_,name.c): name.spec $(TOP)/tools/newbuild   @@\
	$(TOP)/tools/newbuild name.spec					@@\

#endif /* ShortNames */
#endif /* NewBuild */
#endif /* MakeDllFromSpec */

/*
 * WineRelocatableTarget - generate rules to produce a relocatable object
 * file instead of a library.  
 */
#ifndef WineRelocatableTarget
#define WineRelocatableTarget(objname,objlist,depobj)				@@\
AllTarget(objname.o)							@@\
									@@\
objname.o: depobj							@@\
	$(RM) $@							@@\
	$(LD) $(LDCOMBINEFLAGS) objlist depobj -o $@
#endif /* WineRelocatableTarget */

