# ############################################
# Makefile template to build Web Widget UIs
# ############################################

# ############################################
# USAGE:
# Replace the string <<UI_NAME>> with the 
# name of your application UI. 
# 
# NOTE: this makefile assumes conventions 
# found in the Web Widgets dojo build profile
# template. See this wiki for more information: 
# http://inside.mathworks.com/wiki/Building_Web_Widget_UIs_in_BaT
# ############################################
include $(BUILD_HARNESS)/makerules/sandbox_root.mk
include $(MAKE_INCLUDE_DIR)/common_build_selector.mk
$(info MAKE_INCLUDE_DIR is $(MAKE_INCLUDE_DIR))

UI_NAME := cswebview

RELEASE_DIR := release
DOJO_RELEASE_NAME := $(UI_NAME)-working
DOJO_RELEASE_DIR := $(RELEASE_DIR)

include $(MAKE_INCLUDE_DIR)/build_using_dojo.mk

TARGET_DIR := $(RELEASE_DIR)/$(UI_NAME)
WORKING_DIR := $(DERIVED_CLIENT_DIR)/$(RELEASE_DIR)/$(DOJO_RELEASE_NAME)

DOJO_FILE_WORKING := $(WORKING_DIR)/dojo/dojo.js
DOJO_FILE_TARGET := $(TARGET_DIR)/dojo.js


FILES_TO_BUILD := 
rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
FOLDER_MACRO = $(call rwildcard,$(FOLDER_DEP),*.*)


# Add your source files to the "Files to Build List"
# Any file/folder you depend on should be listed in "FILES_TO_BUILD" too.
# The "FOLDER_MACRO" includes all files recursively found under "FOLDER_DEP"
FOLDER_DEP := ./css-$(UI_NAME)/
FILES_TO_BUILD := $(FILES_TO_BUILD) $(FOLDER_MACRO)

FOLDER_DEP := ./images-$(UI_NAME)/
FILES_TO_BUILD := $(FILES_TO_BUILD) $(FOLDER_MACRO)

FOLDER_DEP := ./js/
FILES_TO_BUILD := $(FILES_TO_BUILD) $(FOLDER_MACRO)

# Add your profile to the "FILES_TO_BUILD" list
FILES_TO_BUILD := $(FILES_TO_BUILD) ./$(UI_NAME).profile.js

# Depend on Web Widgets Files
FOLDER_DEP := $(SANDBOX_ROOT)/ui/webwidgets/src/
FILES_TO_BUILD := $(FILES_TO_BUILD) $(FOLDER_MACRO)

build: $(DOJO_FILE_TARGET)

$(DOJO_FILE_TARGET) : $(FILES_TO_BUILD)
ifdef COMMON_BUILD_ALLOWED
	@echo Removing Working and Target Directories if they exist
	$(RM) -r $(TARGET_DIR)
	$(RM) -r $(WORKING_DIR)
	@echo Building Profile
	$(call DOJO_BUILD,$(UI_NAME).profile.js)
	
	mkdir -p $(TARGET_DIR)
	
	#Copy project build JS file layers from "UI_NAME" Working Directory to Target Directory
	cp $(WORKING_DIR)/$(UI_NAME)/*.js $(TARGET_DIR)/
	
	#Copy project NLS folder (and subfolders) from "UI_NAME" Working Directory to Target Directory
	mkdir -p $(TARGET_DIR)/nls/
	cp -R $(WORKING_DIR)/$(UI_NAME)/nls/* $(TARGET_DIR)/nls/
	
	# Copy project CSS folder (and subfolders) from "UI_NAME" Working Directory to Target Directory
	mkdir $(TARGET_DIR)/css-$(UI_NAME)
	cp -R $(WORKING_DIR)/css-$(UI_NAME)/* $(TARGET_DIR)/css-$(UI_NAME)
	
	# Copy project image folder (and subfolders) from "UI_NAME" Working Directory to Target Directory
	mkdir -p $(TARGET_DIR)/images-$(UI_NAME)
	cp -R $(WORKING_DIR)/images-$(UI_NAME)/*  $(TARGET_DIR)/images-$(UI_NAME)
	
	# Copy any other dependent resource files your project needs...
	
	# Copy Web Widgets framework CSS files
	mkdir $(TARGET_DIR)/css
	cp -R $(WORKING_DIR)/css/webwidget* $(TARGET_DIR)/css/
	cp -R $(WORKING_DIR)/css/overrides_ie9.css $(TARGET_DIR)/css/
	
	# Copy Web Widgets Dojo "Theme" CSS files
	mkdir -p $(TARGET_DIR)/dijit/themes/tundra/images
	cp -R $(WORKING_DIR)/dijit/themes/tundra/images/* $(TARGET_DIR)/dijit/themes/tundra/images/
	
	# Copy Web Widgets Dojo "Resources" CSS files
	# mkdir -p $(TARGET_DIR)/dojo/resources
	# cp -R $(WORKING_DIR)/dojo/resources/* $(TARGET_DIR)/dojo/resources

	mkdir -p $(TARGET_DIR)/resources
	cp -R $(WORKING_DIR)/dojo/resources/* $(TARGET_DIR)/resources

	
	# Copy Web Widgets Image Files
	mkdir -p $(TARGET_DIR)/images
	cp -R $(WORKING_DIR)/images/* $(TARGET_DIR)/images/
	
	# Copy Web Widgets Font Files
	mkdir -p $(TARGET_DIR)/fonts
	cp -R $(WORKING_DIR)/fonts/* $(TARGET_DIR)/fonts/

	# Copy dgrid
	mkdir $(TARGET_DIR)/dgrid
	mkdir $(TARGET_DIR)/dgrid/css
	cp -R $(WORKING_DIR)/dgrid/css/* $(TARGET_DIR)/dgrid/css/

	# Copy xstyle
	# mkdir $(TARGET_DIR)/xstyle
	# mkdir $(TARGET_DIR)/xstyle/css
	# cp -R $(WORKING_DIR)/xstyle/css/* $(TARGET_DIR)/xstyles/css/

	
	# Remove the unminified files from release folder, unless DEBUG = 1
ifneq ($(DEBUG),1)
		@echo Deleting Unminified files
		$(RM) -r $(TARGET_DIR)/*.uncompressed.js
endif
	# Copy Dojo file last...since makefile uses it to determine success
	cp $(DOJO_FILE_WORKING) $(DOJO_FILE_TARGET)
endif


# Delete all built artifacts
.PHONY: clean
clean:
	$(info TARGET_DIR TO CLEAN is $(TARGET_DIR))
	$(info DOJO_RELEASE_DIR TO CLEAN is $(WORKING_DIR))
	$(RM) -r $(RELEASE_DIR)
	$(RM) -r $(WORKING_DIR)
