Initial commit.
This commit is contained in:
commit
1d8f869b5b
39 changed files with 1671 additions and 0 deletions
60
Makefile
Normal file
60
Makefile
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
CC ?= cc
|
||||
CXX ?= c++
|
||||
PKG_CONFIG ?= pkg-config
|
||||
BUILD_DIR ?= build
|
||||
PREFIX ?= /usr/local
|
||||
|
||||
CFLAGS ?= -O2 -g
|
||||
CFLAGS += -std=c99 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Iinclude
|
||||
CXXFLAGS ?= -O2 -g
|
||||
CXXFLAGS += -std=c++17 -Wall -Wextra -Wpedantic -Iinclude
|
||||
LDFLAGS ?=
|
||||
|
||||
CORE_SOURCES := src/core/xtlite.c src/graph/graph.c src/dsp/gain.c src/engine/offline_engine.c
|
||||
CORE_OBJECTS := $(CORE_SOURCES:%.c=$(BUILD_DIR)/%.o)
|
||||
TEST_OBJECT := $(BUILD_DIR)/tests/unit/test_core.o
|
||||
GUI_AVAILABLE := $(shell $(PKG_CONFIG) --exists fltk 2>/dev/null && echo yes)
|
||||
|
||||
.PHONY: all clean test gui install
|
||||
all: $(BUILD_DIR)/libxtlite.a
|
||||
|
||||
$(BUILD_DIR)/libxtlite.a: $(CORE_OBJECTS)
|
||||
@mkdir -p $(@D)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@mkdir -p $(@D)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.cpp
|
||||
@mkdir -p $(@D)
|
||||
$(CXX) $(CXXFLAGS) $(shell $(PKG_CONFIG) --cflags fltk 2>/dev/null) -c $< -o $@
|
||||
|
||||
$(TEST_OBJECT): tests/unit/test_core.c
|
||||
@mkdir -p $(@D)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(BUILD_DIR)/test_core: $(TEST_OBJECT) $(BUILD_DIR)/libxtlite.a
|
||||
$(CC) $(LDFLAGS) -o $@ $(TEST_OBJECT) $(BUILD_DIR)/libxtlite.a -lm
|
||||
|
||||
test: $(BUILD_DIR)/test_core
|
||||
./$(BUILD_DIR)/test_core
|
||||
|
||||
ifeq ($(GUI_AVAILABLE),yes)
|
||||
gui: $(BUILD_DIR)/xtlite
|
||||
|
||||
$(BUILD_DIR)/xtlite: $(BUILD_DIR)/src/gui/main.o $(BUILD_DIR)/src/gui/main_window.o $(BUILD_DIR)/libxtlite.a
|
||||
$(CXX) $(LDFLAGS) -o $@ $^ $(shell $(PKG_CONFIG) --libs fltk) -lm
|
||||
else
|
||||
gui:
|
||||
@echo "FLTK was not found by pkg-config. Install FLTK development files to build the GUI."
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
install: all
|
||||
install -d "$(DESTDIR)$(PREFIX)/include/xtlite" "$(DESTDIR)$(PREFIX)/lib"
|
||||
install -m 0644 include/xtlite/*.h "$(DESTDIR)$(PREFIX)/include/xtlite/"
|
||||
install -m 0644 "$(BUILD_DIR)/libxtlite.a" "$(DESTDIR)$(PREFIX)/lib/"
|
||||
|
||||
clean:
|
||||
rm -rf "$(BUILD_DIR)"
|
||||
Loading…
Add table
Add a link
Reference in a new issue