| 
								
							 | 
							
								#
							 | 
						
						
						
							| 
								
							 | 
							
								# **************************************************************
							 | 
						
						
						
							| 
								
							 | 
							
								# *                Simple C++ Makefile Template                *
							 | 
						
						
						
							| 
								
							 | 
							
								# *                                                            *
							 | 
						
						
						
							| 
								
							 | 
							
								# * Author: Arash Partow (2003)                                *
							 | 
						
						
						
							| 
								
							 | 
							
								# * URL: http://www.partow.net/programming/makefile/index.html *
							 | 
						
						
						
							| 
								
							 | 
							
								# *                                                            *
							 | 
						
						
						
							| 
								
							 | 
							
								# * Copyright notice:                                          *
							 | 
						
						
						
							| 
								
							 | 
							
								# * Free use of this C++ Makefile template is permitted under  *
							 | 
						
						
						
							| 
								
							 | 
							
								# * the guidelines and in accordance with the the MIT License  *
							 | 
						
						
						
							| 
								
							 | 
							
								# * http://www.opensource.org/licenses/MIT                     *
							 | 
						
						
						
							| 
								
							 | 
							
								# *                                                            *
							 | 
						
						
						
							| 
								
							 | 
							
								# **************************************************************
							 | 
						
						
						
							| 
								
							 | 
							
								#
							 | 
						
						
						
							| 
								
							 | 
							
								#
							 | 
						
						
						
							| 
								
							 | 
							
								# Modifications of the original file are licenced under MIT Licence
							 | 
						
						
						
							| 
								
							 | 
							
								# 
							 | 
						
						
						
							| 
								
							 | 
							
								#(c) Ludovic 'Archivist' Lagouardette 2018
							 | 
						
						
						
							| 
								
							 | 
							
								#
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								CXX      := -clang++
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								DEBUG	 := -g -O0 -DUNITTEST
							 | 
						
						
						
							| 
								
							 | 
							
								RELEASE	 := -s -O3 -fno-rtti
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								CXXFLAGS := $(RELEASE) -Wno-unknown-warning-option -Wno-address-of-packed-member -pedantic-errors -Wall -Wextra -Werror -Wfatal-errors -std=c++17 -m64  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
							 | 
						
						
						
							| 
								
							 | 
							
								LDFLAGS  :=  -L/usr/lib
							 | 
						
						
						
							| 
								
							 | 
							
								BUILD    := build
							 | 
						
						
						
							| 
								
							 | 
							
								OBJ_DIR  := $(BUILD)/objects
							 | 
						
						
						
							| 
								
							 | 
							
								APP_DIR  := $(BUILD)/apps
							 | 
						
						
						
							| 
								
							 | 
							
								TARGET   := izaro-storage.cpp
							 | 
						
						
						
							| 
								
							 | 
							
								INCLUDE  := -Iinclude/ -I../CommandEr/src -I../json/single_include -I../tiny-js/
							 | 
						
						
						
							| 
								
							 | 
							
								SRC      :=                      \
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								TJS_SRC := 
							 | 
						
						
						
							| 
								
							 | 
							
								#pool_allocator.cpp TinyJS.cpp TinyJS_Functions.cpp TinyJS_MathFunctions.cpp TinyJS_StringFunctions.cpp TinyJS_Threading.cpp
							 | 
						
						
						
							| 
								
							 | 
							
								TJS_OBJECTS := $(TJS_SRC:%.cpp=$(OBJ_DIR)/%.tjs.o)
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								OBJECTS := $(SRC:%.cpp=$(OBJ_DIR)/%.o) ../CommandEr/build/commander.o
							 | 
						
						
						
							| 
								
							 | 
							
								TEST_OBJECTS := $(SRC:%.cpp=$(OBJ_DIR)/%.test.o)
							 | 
						
						
						
							| 
								
							 | 
							
								TARGETNAME := $(TARGET:%.cpp=%)
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								all: build $(TARGET)
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								$(OBJ_DIR)/%.tjs.o: ../tiny-js/%.cpp
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(@D)
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) -fpermissive -w -Wno-pedantic $(INCLUDE) -o $@ -c $<
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								$(OBJ_DIR)/%.test.o: %.cpp
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(@D)
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) -DUSE_CATCH $(INCLUDE) -o $@ -c $<
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								$(OBJ_DIR)/%.o: %.cpp
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(@D)
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ -c $<
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								$(TARGET): $(OBJECTS) $(TJS_OBJECTS) build
							 | 
						
						
						
							| 
								
							 | 
							
									make -C ../CommandEr
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(@D)
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) -pthread $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/$(TARGETNAME) src/$(TARGET) $(OBJECTS) $(TJS_OBJECTS)
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/test_client src/test_client.cpp 
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/test_spam_version src/test_spam_version.cpp 
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/db_stats src/db_stats.cpp 
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/test-time-client tests/time-client.cpp 
							 | 
						
						
						
							| 
								
							 | 
							
									$(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/test-time-server tests/time-server.cpp 
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								.PHONY: all build clean
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								ASTYLE_FLAGS= --style=stroustrup --align-reference=type --align-pointer=type --break-blocks \
							 | 
						
						
						
							| 
								
							 | 
							
								              --indent-namespaces --indent=tab --add-brackets 
							 | 
						
						
						
							| 
								
							 | 
							
								format:
							 | 
						
						
						
							| 
								
							 | 
							
									astyle $(ASTYLE_FLAGS) include/*
							 | 
						
						
						
							| 
								
							 | 
							
									astyle $(ASTYLE_FLAGS) src/*
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								build:
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(APP_DIR)
							 | 
						
						
						
							| 
								
							 | 
							
									@mkdir -p $(OBJ_DIR)
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								clean:
							 | 
						
						
						
							| 
								
							 | 
							
									rm -rf build/*
							 | 
						
						
						
							| 
								
							 | 
							
									rm -rf src/*.orig
							 | 
						
						
						
							| 
								
							 | 
							
									rm -rf include/*.orig
							 |