SRC_DIR=./src
OBJ_DIR=./obj
BIN_DIR?=./bin
INC_DIR=-I./include $(INHERIT_INCLUDES)
LIB_DIR?=
ifdef COMPUTER
CC = clang
else
CC = arm-linux-gnueabihf-gcc
CXX = arm-linux-gnueabihf-g++
endif
CPPFLAGS = -I .
CFLAGS =-g -std=gnu99 -O1 -Wall -D ILI9481
CXXFLAGS = -g -std=gnu++11 -O1 -Wall
ifdef COMPUTER
LDFLAGS = -lmzapo-pheripherals -lmzapo-gui -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image -lmzapo_sdl
CFLAGS += -DCOMPUTER $(shell sdl2-config --cflags)
else
LDFLAGS = -lmzapo-pheripherals -lmzapo-gui -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16
endif
LDFLAGS += -Wl,-rpath,'$${ORIGIN}' $(LIB_DIR)
NAME=text-viewer
BINARY=$(BIN_DIR)/$(NAME)
SRC=$(wildcard $(SRC_DIR)/*.c)
OBJ=$(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC))
CFLAGS+=$(INC_DIR) -Wall -Werror
CFLAGS+=$(shell sdl2-config --cflags)
.PHONY: all clean
all: $(BINARY)
$(BINARY): $(OBJ) | $(BIN_DIR)
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BIN_DIR) $(OBJ_DIR):
echo $(BIN_DIR)
mkdir -p $@
dep: depend
depend: $(SRC) $(HEADERS)
echo '# autogenerated dependencies' > depend
ifneq ($(filter %.c,$(SRC)),)
$(CC) $(CFLAGS) $(CPPFLAGS) -w -E -M $(filter %.c,$(SRC)) \
>> depend
endif
ifneq ($(filter %.cpp,$(SRC)),)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -w -E -M $(filter %.cpp,$(SRC)) \
>> depend
endif
clean:
$(RM) -rv $(BIN_DIR) $(OBJ_DIR)
$(RM) -rv .cache
$(RM) -rv connect.gdb
$(RM) -rv depend
-include $(OBJ:.o=.d)
-include depend