include $(root_dir)/Makefile.include

ASSEMBLY_NAME=mindtouch.deki
ASSEMBLY=$(ASSEMBLY_NAME).dll

TARGET=$(addprefix $(build_prefix)/, $(ASSEMBLY))

sources = 							\
		DBLayer/DatabaseField.cs	\
		DBLayer/DatabaseObject.cs	\
		DBLayer/DatabaseTable.cs	\
		DBLayer/DBHelper.cs			\
		DBLayer/ObjectField.cs		\
		DBLayer/QueryType.cs		\
        DataAccess/AttachmentDA.cs			\
		DataAccess/PermissionsDA.cs			\
		DataAccess/GroupDA.cs			\
		DataAccess/GrantsDA.cs			\
		DataAccess/OldDA.cs				\
		DataAccess/UserDA.cs				\
		DataAccess/RecentChangeDA.cs \
		DataAccess/RolesRestrictionsDA.cs \
		DataAccess/ServicesDA.cs			\
		DataAccess/PageDA.cs		\
		DataAccess/RequestLogDA.cs	\
		DataAccess/ArchiveDA.cs		\
		DataAccess/LinksDA.cs		\
		DataAccess/CommentDA.cs		\
		DataAccess/ConfigDA.cs		\
		DataAccess/TagDA.cs		\
		DataAccess/NavDA.cs			\
		DataAccess/BanningDA.cs		\
		DataAccess/TransactionDA.cs \
		Export/Export.cs			\
		Logic/PermissionsBL.cs		\
		Logic/PageArchiveBL.cs		\
		Logic/AttachmentPreviewBL.cs	\
		Logic/AttachmentBL.cs	\
		Logic/AuthBL.cs				\
		Logic/ExternalServiceSA.cs	\
		Logic/ExtensionBL.cs			\
		Logic/UserBL.cs				\
		Logic/PageBL.cs				\
		Logic/ServiceBL.cs			\
		Logic/PageSiteMapBL.cs		\
		Logic/SiteBL.cs				\
		Logic/TagBL.cs				\
		Logic/CommentBL.cs			\
		Logic/ConfigBL.cs			\
		Logic/GroupBL.cs			\
		Logic/NavBL.cs				\
		Logic/BanningBL.cs			\
		Logic/LicenseBL.cs			\
		Storage/S3Storage.cs		\
		Storage/IStorageProvider.cs \
		Storage/FSStorage.cs		\
		Caching/HttpRuntimeCache.cs		\
		Caching/ICacheProvider.cs	\
		Caching/NullCache.cs		\
		Caching/PerRequestCache.cs	\
		Caching/DreamCache.cs		\
		Caching/VarnishCache.cs		\
		Entities/ServiceBE.cs		\
		Entities/ArchiveBE.cs		\
		Entities/MW_attachments.cs	\
		Entities/OldBE.cs			\
		Entities/PageBE.cs			\
		Entities/UserBE.cs			\
		Entities/MW_watchlist.cs	\
		Entities/GroupBE.cs			\
		Entities/RoleBE.cs			\
		Entities/GrantBE.cs			\
		Entities/CommentBE.cs		\
		Entities/TagBE.cs           \
		Entities/BanBE.cs			\
		Entities/TransactionBE.cs	\
		AssemblyInfo.cs				\
		DekiContext.cs				\
		DekiInstance.cs				\
		DekiWiki-Pages.cs			\
		DekiXmlParser.cs		    \
		DekiWiki-Banning.cs			\
		DekiWiki-Files.cs			\
		DekiWiki-Functions.cs		\
		DekiWiki-Nav.cs				\
		DekiWiki-News.cs			\
		DekiWiki-Services.cs		\
		DekiWiki-Users.cs			\
		DekiWiki-RecycleBin.cs		\
		DekiWiki-Site.cs			\
		DekiWiki-SiteRoles.cs		\
		DekiWiki-Tags.cs			\
		DekiWiki-Comments.cs		\
		DekiWiki-Groups.cs			\
		DekiWiki-License.cs			\
		DekiWikiService.cs			\
		DekiResources.cs			\
		Font.cs						\
		mwSearchClient.cs			\
		PlainTextResourceManager.cs \
		Title.cs					\
		types.cs					\
		Utils.cs					\
		WikiManagement/InstanceManager.cs	\
		WikiManagement/LocalInstanceManager.cs	\
		WikiManagement/RemoteInstanceManager.cs

references = 																\
		-r:System															\
		-r:System.Data														\
		-r:System.Xml														\
		-r:System.Web														\
		-r:System.Drawing													\
		-r:System.Configuration												\
		-r:$(addprefix $(build_prefix)/, MySql.Data.dll)					\
		-r:$(addprefix $(build_prefix)/, mindtouch.dream.dll)				\
		-r:$(addprefix $(build_prefix)/, mindtouch.deki.ext.dll)			\
		-r:$(addprefix $(build_prefix)/, mindtouch.deki.script.dll)			\
		-r:$(addprefix $(root_dir)/, redist/log4net.dll)					\
		-r:$(addprefix $(root_dir)/, redist/SgmlReaderDll.dll)				\
		-r:$(addprefix $(root_dir)/, redist/Lucene.Net.dll)					\
		-resource:'Resources/ExtensionConverter.xslt,MindTouch.Deki.Resources.ExtensionConverter.xslt'	\
		-resource:'Resources/ExtensionRender.xslt,MindTouch.Deki.Resources.ExtensionRender.xslt'	\
		-resource:'Resources/Arial.mtdf,MindTouch.Deki.Resources.Arial.mtdf'	\
		-resource:'Resources/mindtouch-logo.png,MindTouch.Deki.Resources.mindtouch-logo.png'	\
		-resource:'Resources/license-community.xml,MindTouch.Deki.Resources.license-community.xml'
	
$(addprefix $(build_prefix)/, MySql.Data.dll): 
	cp $(addprefix $(root_dir)/, redist/MySql.Data.dll) $(addprefix $(build_prefix)/, MySql.Data.dll)

$(addprefix $(build_prefix)/, mindtouch.dream.dll): $(addprefix $(root_dir)/, redist/mindtouch.dream.dll)
	cp $(addprefix $(root_dir)/, redist/mindtouch.dream.dll) $(addprefix $(build_prefix)/, mindtouch.dream.dll)

$(addprefix $(build_prefix)/, SgmlReaderDll.dll): $(addprefix $(root_dir)/, redist/SgmlReaderDll.dll)
	cp $(addprefix $(root_dir)/, redist/SgmlReaderDll.dll) $(addprefix $(build_prefix)/, SgmlReaderDll.dll)

$(addprefix $(build_prefix)/, Lucene.Net.dll): $(addprefix $(root_dir)/, redist/Lucene.Net.dll)
	cp $(addprefix $(root_dir)/, redist/Lucene.Net.dll) $(addprefix $(build_prefix)/, Lucene.Net.dll)

$(TARGET): $(sources) $(addprefix $(build_prefix)/, MySql.Data.dll) $(addprefix $(build_prefix)/, mindtouch.dream.dll) $(addprefix $(build_prefix)/, SgmlReaderDll.dll) $(addprefix $(build_prefix)/, Lucene.Net.dll) $(addprefix $(build_prefix)/, mindtouch.deki.script.dll)
	$(MCS) $(MCS_FLAGS) /out:$(TARGET) /target:library $(references) $(sources)

$(addprefix $(build_prefix)/, mindtouch.deki.startup.xml): mindtouch.deki.startup.xml
	cp -v mindtouch.deki.startup.xml $(addprefix $(build_prefix)/, mindtouch.deki.startup.xml)

all: $(TARGET) $(addprefix $(build_prefix)/, mindtouch.deki.startup.xml)
