# -*- coding: utf-8 -*-
CPP = g++
CPPFLAGS ?= -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wall
CPPFLAGS += $(shell [ -x /usr/bin/dpkg-buildflags ] && dpkg-buildflags --get CPPFLAGS)
CXXFLAGS += $(shell [ -x /usr/bin/dpkg-buildflags ] && dpkg-buildflags --get CXXFLAGS)

COMPILE = $(CPP) -g $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)

chemeq : chemeq.o chemparser.o mendeleiev.o
	$(COMPILE) -o chemeq chemeq.o chemparser.o mendeleiev.o

chemeq.h: chemeq.h.in
	echo "// Do not edit this file which has been automatically generated." > $@
	echo "// Instead, edit chemeq.h.in" >> $@
	v=$$(basename $$(dirname $$(pwd))| sed 's/chemeq-//'); \
	sed 's/VERSION.*/VERSION "'$$v'"/' $< >> $@

mendeleiev.o : mendeleiev.cc chemeq.h
	$(COMPILE) -c $<

chemeq.o : chemeq.cc chemeq.h
	$(COMPILE) -c $<

chemparser.o : chemparser.cc chemeq.h html_table.cc
	$(COMPILE) -c chemparser.cc

html_table.cc: table_html_mendeleiev.py mendeleiev.js mendeleiev_template.css
	python3 table_html_mendeleiev.py

chemparser.cc : chemlex.cc chemeq.y chemeq.h
	bison  --verbose -o chemparser.cc chemeq.y

chemlex.cc : chemeq.l
	flex  -ochemlex.cc chemeq.l

clean :
	rm -f *~ *.o semantic.cache chemlex.cc  chemparser.cc *.output chemeq chemeq.h html_table.cc


