CXXFLAGS=-g --std=c++14 -Wextra -Wno-missing-braces -Ofast -msse3 -I ./boost_1_64_0 -march=native LDFLAGS=-L/usr/lib/x86_64-linux-gnu -L./boost_1_64_0/stage/lib -lpng CXX=clang++-3.8 xd=./xd/xd commonObjs=version.o objects=main.o fnv.o input.o SimplexNoise.o OlsenNoise.o map.o cmap.o $(commonObjs) mainDeps=main.cpp strings.h input.h fnv.h Array2D.h SimplexNoise.h map.h makefile inputDeps=input.cpp input.h makefile fnvDeps=fnv.cpp fnv.h makefile SimplexNoiseDeps=SimplexNoise.cpp SimplexNoise.h Array2D.h fnv.h makefile OlsenNoiseDeps=OlsenNoise.cpp SimplexNoise.h fnv.h makefile mapDeps=map.cpp map.h FRC.h fnv.h SimplexNoise.h makefile cmapDeps=cmap.cpp map.h FRC.h cmap.inc makefile mapGen: $(objects) $(CXX) $(CXXFLAGS) -o mapGen $(objects) $(LDFLAGS) -flto main.o: $(mainDeps) fnv.o: $(fnvDeps) input.o: $(inputDeps) SimplexNoise.o: $(SimplexNoiseDeps) OlsenNoise.o: $(OlsenNoiseDeps) map.o: $(mapDeps) cmap.o: $(cmapDeps) version.o: version.cpp cmap.inc: gcm.pc $(xd) -dcmap_inc gcm.pc > cmap.inc optsD=-g --std=c++14 -Wextra -Wno-missing-braces -msse3 -I ./boost_1_64_0 objectsD=mainD.o fnvD.o inputD.o SimplexNoiseD.o OlsenNoiseD.o mapD.o cmapD.o $(commonObjs) debug: $(objectsD) $(CXX) $(optsD) -o mapGenD $(objectsD) $(LDFLAGS) mainD.o: $(mainDeps) $(CXX) $(optsD) -D_DEBUG -c -o mainD.o main.cpp fnvD.o: $(fnvDeps) $(CXX) $(optsD) -D_DEBUG -c -o fnvD.o fnv.cpp inputD.o: $(inputDeps) $(CXX) $(optsD) -D_DEBUG -c -o inputD.o input.cpp SimplexNoiseD.o: $(SimplexNoiseDeps) $(CXX) $(optsD) -D_DEBUG -c -o SimplexNoiseD.o SimplexNoise.cpp OlsenNoiseD.o: $(OlsenNoiseDeps) $(CXX) $(optsD) -D_DEBUG -c -o OlsenNoiseD.o OlsenNoise.cpp mapD.o: $(mapDeps) $(CXX) $(optsD) -D_DEBUG -c -o mapD.o map.cpp cmapD.o: $(cmapDeps) $(CXX) $(optsD) -D_DEBUG -c -o cmapD.o cmap.cpp optsO=--std=c++14 -Wextra -Wno-missing-braces -Ofast -msse3 -I ./boost_1_64_0 -flto --target=i686-pc-linux-gnu objectsO=mainO.o fnvO.o inputO.o SimplexNoiseO.o OlsenNoiseO.o mapO.o cmapO.o $(commonObjs) opt: $(objectsO) $(CXX) $(optsO) -o mapGenO $(objectsO) $(LDFLAGS) -flto mainO.o: $(mainDeps) $(CXX) $(optsO) -c -o mainO.o main.cpp fnvO.o: $(fnvDeps) $(CXX) $(optsO) -c -o fnvO.o fnv.cpp inputO.o: $(inputDeps) $(CXX) $(optsO) -c -o inputO.o input.cpp SimplexNoiseO.o: $(SimplexNoiseDeps) $(CXX) $(optsO) -c -o SimplexNoiseO.o SimplexNoise.cpp OlsenNoiseO.o: $(OlsenNoiseDeps) $(CXX) $(optsO) -c -o OlsenNoiseO.o OlsenNoise.cpp mapO.o: $(mapDeps) $(CXX) $(optsO) -c -o mapO.o map.cpp cmapO.o: $(cmapDeps) $(CXX) $(optsO) -c -o cmapO.o cmap.cpp .PHONY: clean cleanopt cleandbg cleanfull clean: rm -f mapGen $(objects) cleanopt: rm -f *O.o mapGenO cleandbg: rm -f *D.o mapGenD cleanfull: rm -f mapGen $(objects) mapGenO $(objectsO) mapGenD $(objectsD)