CXXFLAGS=--std=c++14 -Wextra -Wno-missing-braces -I./boost_1_64_0 -I./icu/include -I. LDFLAGS=-L/usr/lib/x86_64-linux-gnu -L./boost_1_64_0/stage/lib -lpng12 -L/mnt/Vers1/CorasurWordGen/cpp/icu/lib -licuio -licui18n -licuuc -licudata -ldl -L/usr/local/lib -lyaml-cpp CXX=clang++-3.8 optsS=$(CXXFLAGS) -g -Ofast -msse3 -march=native commonObjs=version.o tinyutf8/tinyutf8.o objects=main.o grammar.o transform.o loader.o word.o path.o $(commonObjs) mainDeps=main.cpp grammar.h path.h word.h loader.h FRC.h makefile grammarDeps=grammar.cpp grammar.h path.h word.h FRC.h makefile transformDeps=transform.cpp grammar.h path.h word.h FRC.h makefile loaderDeps=loader.cpp loader.h grammar.h path.h word.h loader.h makefile wordDeps=word.cpp word.h grammar.h makefile pathDeps=path.cpp path.h makefile wordgen: $(objects) $(CXX) $(CXXFLAGS) -o wordgen $(objects) $(LDFLAGS) main.o: $(mainDeps) grammar.o: $(grammarDeps) transform.o: $(transformDeps) loader.o: $(loaderDeps) word.o: $(wordDeps) path.o: $(pathDeps) version.o: version.cpp tinyutf8/tinyutf8.o: tinyutf8/tinyutf8.cpp optsD=$(CXXFLAGS) -g -msse3 -D_DEBUG objectsD=mainD.o grammarD.o transformD.o loaderD.o wordD.o pathD.o $(commonObjs) mainD.o: $(mainDeps) $(CXX) $(optsD) -c -o mainD.o main.cpp grammarD.o: $(grammarDeps) $(CXX) $(optsD) -c -o grammarD.o grammar.cpp transformD.o: $(transformDeps) $(CXX) $(optsD) -c -o transformD.o transform.cpp loaderD.o: $(loaderDeps) $(CXX) $(optsD) -c -o loaderD.o loader.cpp wordD.o: $(wordDeps) $(CXX) $(optsD) -c -o wordD.o word.cpp pathD.o: $(pathDeps) $(CXX) $(optsD) -c -o pathD.o path.cpp debug: $(objectsD) $(CXX) $(optsD) -o wordgenD $(objectsD) $(LDFLAGS) optsO=$(CXXFLAGS) -Ofast -msse3 -flto --target=i686-pc-linux-gnu objectsO=mainO.o grammarO.o transformO.o loaderO.o wordO.o pathO.o $(commonObjs) opt: $(objectsO) $(CXX) $(optsO) -o wordgenO $(objectsO) $(LDFLAGS) mainO.o: $(mainDeps) $(CXX) $(optsO) -c -o mainO.o main.cpp grammarO.o: $(grammarDeps) $(CXX) $(optsO) -c -o grammarO.o grammar.cpp transformO.o: $(transformDeps) $(CXX) $(optsO) -c -o transformO.o transform.cpp loaderO.o: $(loaderDeps) $(CXX) $(optsO) -c -o loaderO.o loader.cpp wordO.o: $(wordDeps) $(CXX) $(optsO) -c -o wordO.o word.cpp pathO.o: $(pathDeps) $(CXX) $(optsO) -c -o pathO.o path.cpp .PHONY: clean cleanopt cleandbg cleanfull clean: rm -f wordgen $(objects) cleanopt: rm -f *O.o wordgenO cleandbg: rm -f *D.o wordgenD cleanfull: rm -f wordgen $(objects) wordgenO $(objectsO) wordgenD $(objectsD)