Cerberus/Makefile
wheelchairy 118875234a upd
2025-01-28 22:33:54 +03:00

53 lines
1.3 KiB
Makefile

CC = clang
CXX = clang++
CFLAGS = -O2 -Wall -I./libs -pthread
CXXFLAGS = -std=c++17 -O2 -Wall -I./libs -pthread
UNAME_S := $(shell uname -s)
BREW_PREFIX := $(shell brew --prefix portaudio 2>/dev/null)
ifneq ($(UNAME_S),)
ifeq ($(UNAME_S),Darwin)
ifneq ($(BREW_PREFIX),)
CFLAGS += -I$(BREW_PREFIX)/include
CXXFLAGS += -I$(BREW_PREFIX)/include
LIBS += -L$(BREW_PREFIX)/lib -lportaudio
else
$(warning PortAudio not found via brew)
endif
else ifeq ($(UNAME_S),Linux)
HAVE_PKG := $(shell pkg-config --exists portaudio-2.0 && echo yes || echo no)
ifeq ($(HAVE_PKG),yes)
PORTAUDIO_CFLAGS := $(shell pkg-config --cflags portaudio-2.0)
PORTAUDIO_LIBS := $(shell pkg-config --libs portaudio-2.0)
CFLAGS += $(PORTAUDIO_CFLAGS)
CXXFLAGS += $(PORTAUDIO_CFLAGS)
LIBS += $(PORTAUDIO_LIBS)
else
$(warning portaudio-2.0 not found, using -lportaudio)
LIBS += -lportaudio
endif
endif
endif
SRCS_CPP = main.cpp commands.cpp cli.cpp webserver.cpp sound.cpp bfsk.cpp x25519_handshake.cpp
SRCS_C = libs/monocypher.c libs/linenoise.c
OBJS_CPP = $(SRCS_CPP:.cpp=.o)
OBJS_C = $(SRCS_C:.c=.o)
TARGET = cerberus
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS_CPP) $(OBJS_C)
$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(TARGET) *.o libs/*.o