# Окружение: development, testing, production
YENV ?= development

# Если вы не используете ycssjs-fastcgi для сборки статики на лету,
# раскомментируйте следующую строку
YCSSJS_FASTCGI = false

# Куда складывать Лего (со слешом на конце)
LEGO_PREFIX  = lego/
LEGO_VERSION = tag_2_10_26

# Настройки git для выгрузки Лего.
GIT_CONFIGS = lego

GIT_PROTOCOL_lego           = git
GIT_HOST_lego               = github.yandex-team.ru
GIT_REMOTE_PARENT_PATH_lego = schuprakov/
GIT_LOCAL_PARENT_PATH_lego  = ./
GIT_REPOS_lego = romochka[local:$(LEGO_PREFIX:/=)][dirs:/tools/,/bem-bl/blocks-common/,/bem-bl/blocks-desktop/,/blocks-desktop/,/blocks-common/][branch:$(LEGO_VERSION)]

# Укажите здесь все директории Лего, которые нужно подключать на сервис
LEGO_PARTS ?= bem-bl/blocks-common bem-bl/blocks-desktop blocks-common blocks-desktop tools

# Протокол для работы с svn
SVN_PROTOCOL ?= svn+ssh

# Если вы хотите собирать бандлы со статикой всех страниц,
# раскомментируйте следующую строку
GENERATE_COMMON_BUNDLE ?= true

# В следующей строке можно задать имя бандла со статикой
#COMMON_BUNDLE_NAME = common

PAGES_LOCALES = ru tr uk en

# Если вы не используете ycssjs-fastcgi, раскомментируйте следующую строку
# и перечислите в ней расширения всех файлов, которые нужно сжимать, используя
# ycssjs
# PAGES_UNDERSCORE_SUFFIXES = css ie.css js
ifeq ($(YENV),production)
export XJST_ENGINE = sort-group
export XJST_ASYNCIFY = yes
PAGES_UNDERSCORE_SUFFIXES ?= js css ie6.css ie7.css ie8.css ie9.css
PAGES_UNDERSCORE_SUFFIXES_bemjson.js ?= priv.js $(foreach locale,$(PAGES_LOCALES),$(locale).pub.js)
else
PAGES_UNDERSCORE_SUFFIXES_bemjson.js ?= priv.js
endif

# Игнорируем при сборке ненужные папки
LEVEL_PAGES_EXCLUDE = pages-desktop/static-i pages-desktop/exemplars pages-desktop/next-trains-settings

#PAGES_TECHS_raw.xml = html5.xsl css js
PAGES_TECHS_bemdecl.js ?= js css ie.css ie6.css ie7.css ie8.css ie9.css

PAGES_SUFFIXES_bemjson.js ?= html
PAGES_TECHS_bemjson.js ?= bemhtml css ie.css ie6.css ie7.css ie8.css ie9.css pub.js i18n.priv.js

# Сборка html
define after_PAGE_template

$(5).html:: BEM_I18N_LANGS=$(call pages_locales,$(2),$(3),$(4))

$(5).html:: $(5).bemhtml.js $(5).bemjson.js $(5).i18n
	BEM_I18N_LANGS="$$(BEM_I18N_LANGS)" $(BEM) create block $(call get_page_subpath,$(4)) --level $(2) --force-tech $(call tech_path,i18n.html)

endef

.PHONY: all
all:: build

# 1-я итерация. Чекаут директории tools.
ifeq ($(wildcard $(LEGO_PREFIX)tools/),)

.DEFAULT:
	$(info Предварительный чекаут директории tools)
	git clone git://github.yandex-team.ru/schuprakov/romochka $(LEGO_PREFIX);
	cd $(LEGO_PREFIX) && git checkout $(LEGO_VERSION);
ifeq ($(MAKELEVEL),3)
	$(error Не удается получить директорию tools)
else
	$(MAKE) $(MAKECMDGOALS)
endif

# 2-я итерация. Подключение make-платформы.
else

.PHONY: build
build:: lego.get
build:: configs
build:: rebuild

.PHONY: rebuild
rebuild:: all-pages
rebuild:: ycssjs

include $(LEGO_PREFIX)tools/make/platform.mk

endif

lego.get::
	$(info Применяем наши патчи)
	for patch in lego-patches/*.diff; do patch --forward -r - -p0 < $$patch || [ $$? -eq 1 ]; done
