default : archive;

USE_COMPILER=fpc

PROGNAME=collections

include Makefile.node

EXPORT_DIR ?= $(CURDIR)

BUILD_ZIP = $(BUILD_CURDIR)/$(PROGNAME).zip
BUILD_TARGZ = $(BUILD_CURDIR)/$(PROGNAME).tar.gz
EXPORT_ZIP = $(EXPORT_DIR)/$(PROGNAME).zip
EXPORT_TARGZ = $(EXPORT_DIR)/$(PROGNAME).tar.gz

$(BUILD_ZIP) : $(BUILD_SOURCES_PP)
	zip $(BUILD_ZIP) $(BUILD_SOURCES_PP)

$(BUILD_TARGZ) : $(BUILD_SOURCES_PP)
	tar -czvf $(BUILD_TARGZ) $(BUILD_SOURCES_PP)

$(EXPORT_ZIP) : $(BUILD_ZIP)
	$(CP) $(BUILD_ZIP) $(EXPORT_ZIP)

$(EXPORT_TARGZ) : $(BUILD_TARGZ)
	$(CP) $(BUILD_TARGZ) $(EXPORT_TARGZ)

archive : $(EXPORT_ZIP) $(EXPORT_TARGZ);

build   : fpcprog;
run     : progrun;
clean   : cleancur;
test    :
	$(call CD,tests) && $(SILENT_RECURSIVE_MAKE) test

test.execute :
	./tests

BETWEEN = $(CAT) $1 | $(SED) -n '/$2/,/$3/p' | $(GREP) -v '$2\|$3'

TList.doc :
	$(call BETWEEN,dlist.pas4,TList begin,TList end) > $@

INTERFACES := $(patsubst %.pas4,%.interface,$(addprefix $(BUILD_CURDIR)/,$(wildcard *.pas4)))

$(BUILD_CURDIR)/%.interface : $(BUILD_CURDIR)/%.pp
	$(call BETWEEN,$<,begin_interface,end_interface) > $@ || $(NOP)

$(BUILD_CURDIR)/collections.html : $(INTERFACES)
	echo $(INTERFACES)
	$(MKDIRDEEP) $(subst /,$(S),$(patsubst %/,%,$(dir $@))) || $(NOP) # upyachka
	cp collections.html4 $(BUILD_CURDIR)/collections.html4
	$(M4) -I $(BUILD_CURDIR) $(BUILD_CURDIR)/collections.html4 > $@

collections.html : $(BUILD_CURDIR)/collections.html
	cp $(BUILD_CURDIR)/collections.html collections.html
	cp collections.html /farm/data/dat/fpc/
