/*
 * Rules needed to build the XFree86 X Servers
 */

#ifndef ObjectMapIncludeFromSpecialSource
#define ObjectMapIncludeFromSpecialSource(dst,src,flags)		@@\
dst.c:	src.c								@@\
	RemoveFile($@)							@@\
	echo "#include \"mfbmap.h\"" > $@				@@\
	echo "#include \"$?\"" >> $@					@@\
									@@\
SpecialCObjectRule(dst,NullParameter,flags)				@@\
									@@\
depend::	dst.c							@@\
									@@\
clean::									@@\
	RemoveFile(dst.c)
#endif


/*
 * Rules for building config files from scripts
 */

#ifndef Depend
# define Depend depend
#endif
 
#ifndef ConfigTargetLong
#define ConfigTargetLong(target,dep,script,args,extra)			@@\
all:: Configure								@@\
									@@\
Configure:: target.o							@@\
									@@\
target.c: script dep							@@\
	$(MAKE) $(MFLAGS) Makefile					@@\
	$(MAKE) $(MFLAGS) extra Concat(Build,target)			@@\
									@@\
Concat(Build,target):							@@\
	$(RM) target.c							@@\
	$(SHELL) script args						@@\
									@@\
clean::									@@\
	$(RM) target.c
#endif

#define ConfigTarget(target,dep,script,args) ConfigTargetLong(target,dep,script,args,Depend)

#define ConfigTargetNoDepend(target,dep,script,args) ConfigTargetLong(target,dep,script,args,)

#ifndef DriverObjectList
#define DriverObjectList(drivers,list)					@@\
list: $(ICONFIGFILES) drivers						@@\
	RemoveFile(list)						@@\
	@echo Creating list for drivers; \				@@\
	DRIVERS="drivers"; \						@@\
	if [ x"$$DRIVERS" != x ]; then \				@@\
	  for i in $$DRIVERS; do \					@@\
	    DRIVER="$$i/*_drv.o"; \					@@\
	    for j in $$DRIVER; do \					@@\
	      echo $$j >> list; \					@@\
	    done; \							@@\
	  done; \							@@\
	else \								@@\
	  echo "" > list; \						@@\
	fi								@@\
									@@\
clean::									@@\
	RemoveFile(list)
#endif

/*
 * Rules for installing Driver SDK parts (target is install.sdk)
 */

#ifndef InstallDriverSDKNonExecFile
#define InstallDriverSDKNonExecFile(file,dest)				/**/
#endif

#ifndef InstallDriverSDKLibrary
#define InstallDriverSDKLibrary(libname,dest)				/**/
#endif

#ifndef InstallDriverSDKNamedLibrary
#define InstallDriverSDKNamedLibrary(libname,dlibname,dest)		/**/
#endif

#ifndef InstallDriverSDKNamedNonExec
#define InstallDriverSDKNamedNonExec(srcname,dstname,dest)		/**/
#endif

#ifndef InstallDriverSDKNamedProg
#define InstallDriverSDKNamedProg(srcname,dstname,dest)			/**/
#endif

#ifndef InstallDriverSDKSubdirs
#define InstallDriverSDKSubdirs(dirs)					/**/
#endif

#ifndef InstallDriverSDKMultipleDestFlags
#define InstallDriverSDKMultipleDestFlags(list,dest,flags)		/**/
#endif

#ifndef InstallDriverSDKDynamicModule
#define InstallDriverSDKDynamicModule(module,dest,subdir)		/**/
#endif

#ifndef InstallDriverSDKObjectModule
#define InstallDriverSDKObjectModule(module,dest,subdir)		/**/
#endif


#ifndef InstallDriverSDKObjectSubModule
#define InstallDriverSDKObjectSubModule(module,dest,subdir)		/**/
#endif

#ifndef InstallDriverSDKLibraryModule
#define InstallDriverSDKLibraryModule(module,dest,subdir)		/**/
#endif

#ifndef ServerDriverSDKTarget
#define ServerDriverSDKTarget(program)					/**/
#endif

#ifndef InstallDriverSDKProgramWithFlags
#define InstallDriverSDKProgramWithFlags(program,dest,flags)		/**/
#endif