#==================================
# Makefile for building: libsopp.a
#==================================
# Definitions
#------------
# C compiler
CC = gcc
# C++ compiler
CXX = g++
# Include file directory
INCLUDES = -I ./include -I ./jsoncpp/include
# Object file directory
OBJ_DIR = ./obj
# C++ flags
CXXFLAGS = -W -Wall -Wextra -Wno-unused -std=c++03 -march=native -O3
# Macros
#-------
# Tests for the obj directory
TEST_OBJ = test -d obj
# Makes the obj directory
MAKE_OBJ = mkdir obj
# Removes the obj directory
REM_OBJ = rm -rf obj
.phony: all clean json
all: json object_directory soAnswer.o soUser.o soComment.o soQuestion.o soSite.o soTime.o soUser.o fetch_url.o global.o key.o
ar -r libsopp.a jsoncpp/libjsoncpp.a obj/soAnswer.o obj/soComment.o obj/soQuestion.o obj/soSite.o obj/soTime.o obj/soUser.o obj/fetch_url.o obj/global.o obj/key.o
clean:
$(REM_OBJ)
%.o: src/%.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) -c -o obj/$@ $<
object_directory:
$(TEST_OBJ) || $(MAKE_OBJ)
json:
$(MAKE) -C jsoncpp
install:
sudo cp -r include/sopp --target-directory=/usr/include
cp libsopp.a /usr/lib/libsopp.a