# https://build.berkeleybop.org/job/build-go-ontology

TARGETZIP = https://build.berkeleybop.org/job/build-go-ontology/lastSuccessfulBuild/artifact/target/*zip*/target.zip

sync-from-jenkins:
	wget --no-check-certificate $(TARGETZIP) -O target.zip && \
	unzip -o target.zip && \
	cp target/extensions/* extensions/ && \
	cp target/imports/* ./ && \
	cp target/imports/* imports/ && \
	cp target/subsets/* subsets/ && \
	cp target/go-basic.obo go-basic.obo && \
	cp target/*.* .

OBO=        http://purl.obolibrary.org/obo

DATE = $(shell date +%Y-%m-%d)

# basic relations are part_of & 3 regulations relations
GO_BASIC_RELATIONS = BFO:0000050 RO:0002211 RO:0002212 RO:0002213

# extend with has_part, occurs_in and during relations
GO_MAIN_RELATIONS = $(GO_BASIC_RELATIONS) BFO:0000051 BFO:0000066 RO:0002091 RO:0002092 RO:0002093

# ---
# GO RELEASE MANAGEMENT
# ---
all:  go.obo go-basic.obo diffs prepare-release-files
release:  go.obo go-basic.obo diffs prepare-release-files svn-resolve svn-commit svn-copy

# --
# OORT, filter, and copy files
# --



diffs: go-obo-diff.html go-def-diff.html

go-lastbuild.obo: go.obo
	wget $(OBO)/go.obo -O $@ && touch $@

go-obo-diff.html: go.obo go-lastbuild.obo
	compare-obo-files.pl -f1 go-lastbuild.obo -f2 go.obo -m html text rss  --rss-path . -o go-obo-diff
go-def-diff.html: go.obo go-lastbuild.obo
	compare-defs.pl -f1 go-lastbuild.obo -f2 go.obo -m html text rss  --rss-path . -o go-def-diff

# ----------------------------------------
# LEGACY RELEASE FILES
# ----------------------------------------

obo_format_1_2/gene_ontology.1_2.obo: go-basic.obo
	cp $< $@

obo_format_1_0/gene_ontology.1_0.obo: obo_format_1_2/gene_ontology.1_2.obo
	obo2obo -J-Xmx1G $< -formatversion OBO_1_0 -o $@

obo_format_1_2/gene_ontology_ext.obo: go.obo
	cp $< $@

gene_ontology_edit.obo: obo_format_1_2/gene_ontology.1_2.obo
	cp $< $@

gene_ontology.obo: obo_format_1_0/gene_ontology.1_0.obo
	cp $< $@

prepare-release-files: gene_ontology.obo gene_ontology_edit.obo obo_format_1_0/gene_ontology.1_0.obo obo_format_1_2/gene_ontology.1_2.obo obo_format_1_2/gene_ontology_ext.obo

# --
# Debug stuff
# --

date:
	echo $(DATE)

pwd:
	echo $$PWD

# --
# SVN stuff: resolve conflicts, commit, svn copy
# --

RELEASE_FILES = go.obo go.owl go-basic.obo go-simple.obo go-simple.owl gene_ontology.obo gene_ontology_edit.obo go-reasoner-report.txt 
svn-resolve: prepare-release-files
	echo "Skipping resolution; see source for details."
## Now skipping this resolution step, we regard the resolve step no longer needed and it does not complete on SVN 1.9 for this job. Will use SVN revert in job, so there should be no conflicts hanging around. [-SJC 20160516]
#	svn resolve --accept=mine-full $(RELEASE_FILES) obo_format_1_0/* obo_format_1_2/* subsets/* 

svn-commit: svn-resolve
	svn commit -m auto-release $(RELEASE_FILES) obo_format_1_0 obo_format_1_2 subsets 

svn-copy: svn-commit
	svn copy -m auto-release svn+ssh://ext.geneontology.org/share/go/svn/trunk/ontology svn+ssh://ext.geneontology.org/share/go/svn/ontology-releases/$(DATE)

# ----------------------------------
# External2GO
# Assumes that the external2go folder is a sibling of the current folder
# TODO commit to svn
# ---------------------------------

external2go:
	owltools editors/validated.obo --external-mappings-files -o ../external2go --go-external-default