blob: 99cb000e0d3934c9fdbd2389edd50ce17b8c05a8 [file] [log] [blame]
################################ MAKEFILE OPTIONS ####################################
# By default, liblog's build type (debug/release) is inherited from VPR's makefile.
# However, by uncommenting out the line BUILD_TYPE = debug, you can override this
# and set liblog's build type independently.
# BUILD_TYPE = release
# (can be debug or release)
#############################################################################################
CC = g++
AR = ar
SRC_DIR = src
OBJ_DIR = obj
WARN_FLAGS = -Wall -Wpointer-arith -Wcast-qual -D__USE_FIXED_PROTOTYPES__ -pedantic -Wshadow -Wcast-align -D_POSIX_SOURCE -Wno-write-strings
DEBUG_FLAGS = -g
OPT_FLAGS = -O3
INC_FLAGS = -I$(SRC_DIR)
LIB_FLAGS = rcs
EXE = test_log
FLAGS = $(INC_FLAGS) $(WARN_FLAGS) -MD -MP
ifneq (,$(findstring release, $(BUILD_TYPE)))
FLAGS := $(FLAGS) $(OPT_FLAGS)
else # DEBUG build
FLAGS := $(FLAGS) $(DEBUG_FLAGS)
endif
SRC = log.c
OBJS = $(SRC:.c=.o)
DEPS = $(OBJS:.o=.d) main.d
# Standalone executable to test logger
$(EXE): $(OBJ_DIR)/main.o liblog.a
$(CC) $(OBJ_DIR)/main.o -o $(EXE) $(INC_FLAGS) -L. -lm -llog
liblog.a: $(OBJ_DIR)/$(OBJS)
ar rcs $@ $(OBJ_DIR)/$(OBJS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
mkdir -p $(OBJ_DIR)
$(CC) $(FLAGS) -c $< -o $@
-include $(DEPS)
clean :
@ rm -f liblog.a
@ rm -f $(OBJ_DIR)/$(OBJS) $(OBJ_DIR)/$(OBJS:.o=.d)
@ rm -f $(EXE)
@ rm -f $(OBJ_DIR)/main.o $(OBJ_DIR)/main.d