OpenFPGA/libs/EXTERNAL/libezgl/examples/basic-application/Makefile

76 lines
2.2 KiB
Makefile

########################################################################
## Makefile for basic_application
########################################################################
# turn on/off verbosity with 'make {all|release|debug|clean} VERBOSE=1'. Default is silent.
ifeq ($(VERBOSE),1)
ECHO :=
else
ECHO := @
endif
# the compiler
CXX = g++
# target EXE
TARGET_DIR = .
TARGET = basic_application
# Resource files
RES_TARGET = resources.C
RES_XML = .gresource.xml
# the version of GTK being used
GTK_VERSION_NUM = 3.0
# the base directory of EZGL
EZGL_DIR = ../..
# get the source and header files for the application and from EZGL
SRCS = $(wildcard ./*.cpp ./$(RES_TARGET) $(EZGL_DIR)/src/*.cpp)
HDRS = $(wildcard ./*.h $(EZGL_DIR)/include/ezgl/*.hpp)
# the GTK include directories. Runs "pkg-config --cflags gtk+-3.0" to get the include directories.
GTK_INCLUDE_DIRS := $(shell pkg-config --cflags gtk+-$(GTK_VERSION_NUM) x11)
# the GTK libraries. Runs "pkg-config --libs gtk+-3.0" to get the libraries to include for GTK.
GTK_LIBS := $(shell pkg-config --libs gtk+-$(GTK_VERSION_NUM) x11)
# set the include directories
INC_DIRS = $(EZGL_DIR)/include $(EZGL_DIR)/include/ezgl
# compiler flags
CXX_FLAGS = -g -Wall -std=c++14
# GLIB resource compiler
GLIB_COMPILE_RESOURCES = $(shell pkg-config --variable=glib_compile_resources gio-2.0)
# resource files
resources = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=. --generate-dependencies $(RES_XML))
# 'make all' target
all: $(RES_TARGET) $(TARGET_DIR)/$(TARGET)
# create the exe
$(TARGET_DIR)/$(TARGET) : Makefile $(SRCS)
$(ECHO) $(CXX) $(CXX_FLAGS) $(foreach D,$(INC_DIRS),-I$D) $(GTK_INCLUDE_DIRS) $(SRCS) $(GTK_LIBS) -o $(TARGET_DIR)/$(TARGET)
# create the resource file
$(RES_TARGET): $(RES_XML) $(resources)
$(ECHO) $(GLIB_COMPILE_RESOURCES) --sourcedir=. --generate-source $(RES_XML) --target=$(RES_TARGET)
# clean the EXE
clean:
$(ECHO) rm -f $(TARGET_DIR)/$(TARGET)
$(ECHO) rm -f $(RES_TARGET)
# 'make release' is the same as 'make all' but the -O3 flag is added
release: all
CXX_FLAGS += -O3
# 'make debug' is the same as 'make all'. Currently nothing is added here
debug: all
.PHONY: all release debug clean