# Unicode Character Database files
# https://www.unicode.org/Public/UCD/latest/ucd/
# Blocks.txt
# Scripts.txt
# UnicodeData.txt
#
# Makefile to build the Unicode source code scripts with ./bootstrap.sh
# > make -f Make

CPP=c++
REFLEX=../bin/reflex
LIBS=../lib/libreflex.a
COFLAGS=-O2
CWFLAGS=-Wall -Wunused -Wextra
CIFLAGS=-I. -I../include
CMFLAGS=
CFLAGS=$(CWFLAGS) $(COFLAGS) $(CIFLAGS) $(CMFLAGS)

.PHONY:			all clean

all:			block_scripts.cpp language_scripts.cpp letter_scripts.cpp composer.cpp

block_scripts.cpp:	Blocks.txt block_scripts.l
			$(REFLEX) block_scripts.l
			$(CPP) $(CFLAGS) -o gen_block_scripts_cpp lex.yy.cpp $(LIBS)
			./gen_block_scripts_cpp < Blocks.txt > block_scripts.cpp
			-rm -f lex.yy.cpp gen_block_scripts_cpp

language_scripts.cpp:	Scripts.txt language_scripts.l
			$(REFLEX) language_scripts.l
			$(CPP) $(CFLAGS) -o gen_language_scripts_cpp lex.yy.cpp $(LIBS)
			./gen_language_scripts_cpp < Scripts.txt > language_scripts.cpp
			-rm -f lex.yy.cpp gen_language_scripts_cpp

letter_scripts.cpp:	UnicodeData.txt letter_scripts.l
			$(REFLEX) letter_scripts.l
			$(CPP) $(CFLAGS) -o gen_letter_scripts_cpp lex.yy.cpp $(LIBS)
			./gen_letter_scripts_cpp < UnicodeData.txt > letter_scripts.cpp
			-rm -f lex.yy.cpp gen_letter_scripts_cpp

composer.cpp:		UnicodeData.txt composer.l
			$(REFLEX) composer.l
			$(CPP) $(CFLAGS) -o gen_composer_cpp lex.yy.cpp $(LIBS)
			./gen_composer_cpp < UnicodeData.txt > composer.cpp
			-rm -f lex.yy.cpp gen_composer_cpp

clean:
			-rm -rf *.dSYM
			-rm -f *.o *.gch *.log
			-rm -f reflex
