Browse Source

Build: Add first C++ module

master
heck 2 years ago
parent
commit
38087897b5
  1. 42
      Makefile.conf
  2. 6
      src/Makefile

42
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)

6
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))

Loading…
Cancel
Save