From 38087897b57f396ca1fefb142ed89ab3affcba28 Mon Sep 17 00:00:00 2001 From: heck Date: Fri, 16 Dec 2022 01:19:38 +0100 Subject: [PATCH] Build: Add first C++ module --- Makefile.conf | 42 +++++++++++++++++++++++++++--------------- src/Makefile | 6 ++++-- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/Makefile.conf b/Makefile.conf index 7325d1f..267977e 100644 --- a/Makefile.conf +++ b/Makefile.conf @@ -1,6 +1,7 @@ TARGET=orca_tui -LANG_VERSION=c99 +C_LANG_VERSION=c99 +CXX_LANG_VERSION=c++11 # Build option defaults PREFIX?=/opt/local @@ -8,6 +9,9 @@ DEBUG?=1 PORTMIDI_ENABLED?=1 MOUSE_ENABLED?=1 +COMPILE_FLAGS:=\ + +CFLAGS:=-std=$(C_LANG_VERSION) CFLAGS+=\ -finput-charset=UTF-8 \ -Wpedantic \ @@ -24,43 +28,51 @@ CFLAGS+=\ -DORCA_OS_MAC \ -D_XOPEN_SOURCE_EXTENDED=1 \ -march=nehalem \ - -fcolor-diagnostics + +CXXFLAGS:=-std=$(CXX_LANG_VERSION) +CXXFLAGS+=\ + -fPIC \ + -Wall \ + -Wextra \ + -pedantic + +ifneq (,$(findstring g++,$(CXX))) + COMPILE_FLAGS+=-fdiagnostics-color=always +else ifneq (,$(findstring clang,$(CXX))) + COMPILE_FLAGS+=-fcolor-diagnostics +endif + LDFLAGS_NCURSES=$(shell pkg-config --libs ncursesw formw) LDFLAGS+=$(LDFLAGS_NCURSES) - +LDFLAGS+=-lstdc++ ######### Overrides from build.conf ######### HERE:=$(dir $(lastword $(MAKEFILE_LIST))) -include $(HERE)build.conf -CFLAGS+=-std=$(LANG_VERSION) -CFLAGS+=-I$(PREFIX)/include +COMPILE_FLAGS+=-I$(PREFIX)/include LDFLAGS+=-L$(PREFIX)/lib ifeq ($(DEBUG),1) - CFLAGS+=\ - -g \ - -O0 \ - -DDEBUG \ + COMPILE_FLAGS+=-g -O0 -DDEBUG # -fsanitize=address \ # -fsanitize=undefined \ # -fsanitize=float-divide-by-zero \ # -fsanitize=implicit-conversion \ # -fsanitize=unsigned-integer-overflow else - CFLAGS+=\ - -DNDEBUG \ - -O2 \ - -g0 + COMPILE_FLAGS+=-DNDEBUG -O2 -g0 endif ifeq ($(PORTMIDI_ENABLED),1) + COMPILE_FLAGS+= -DFEAT_PORTMIDI LDFLAGS+= -lportmidi - CFLAGS+= -DFEAT_PORTMIDI endif ifeq ($(MOUSE_ENABLED),0) - CFLAGS+=-DFEAT_NOMOUSE + COMPILE_FLAGS+=-DFEAT_NOMOUSE endif +CXXFLAGS+=$(COMPILE_FLAGS) +CFLAGS+=$(COMPILE_FLAGS) diff --git a/src/Makefile b/src/Makefile index 103cf15..411af6a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -13,10 +13,12 @@ OBJ_MAIN_CLI:=$(EXE_MAIN_CLI).o OBJ_MAIN_TUI:=$(EXE_MAIN_TUI).o OBJ_MAIN_TEST:=$(EXE_MAIN_TEST).o -SOURCE:=$(wildcard *.c) +C_SOURCES:=$(wildcard *.c) +CXX_SOURCES+=$(wildcard *.cc) HEADERS:=$(wildcard *.h) -OBJECTS:=$(subst .c,.o,$(SOURCE)) +OBJECTS:=$(subst .c,.o,$(C_SOURCES)) +OBJECTS+=$(subst .cc,.o,$(CXX_SOURCES)) OBJECTS:=$(filter-out $(OBJ_MAIN_CLI),$(OBJECTS)) OBJECTS:=$(filter-out $(OBJ_MAIN_TUI),$(OBJECTS)) OBJECTS:=$(filter-out $(OBJ_MAIN_TEST),$(OBJECTS))