94 lines
2.1 KiB
Makefile
94 lines
2.1 KiB
Makefile
# This makefile replaces the old Python "setup.py build_ext" which has been deprecated.
|
|
# See "quisk-old" below to make Quisk using the old setup.py.
|
|
|
|
MODULE_NAME := _quisk
|
|
OBJDIR := build/local
|
|
SUBDIRS := afedrinet
|
|
|
|
ifeq ($(shell python3 makefil.py --soapy), 1)
|
|
SUBDIRS := $(SUBDIRS) soapypkg
|
|
endif
|
|
|
|
SRCS := \
|
|
base64.c \
|
|
extdemod.c \
|
|
filter.c \
|
|
freedv.c \
|
|
handshake.c \
|
|
is_key_down.c \
|
|
microphone.c \
|
|
quisk.c \
|
|
quisk_wdsp.c \
|
|
sha1.c \
|
|
sound.c\
|
|
sound_alsa.c \
|
|
sound_directx.c \
|
|
sound_portaudio.c \
|
|
sound_pulseaudio.c \
|
|
sound_wasapi.c \
|
|
tci.c \
|
|
utf8.c \
|
|
utility.c \
|
|
ws.c
|
|
|
|
CFLAGS := $(shell python3 makefil.py --cflags)
|
|
LDFLAGS := $(shell python3 makefil.py --ldflags)
|
|
EXTENSION_SUFFIX := $(shell python3 makefil.py --suffix)
|
|
TARGET := $(MODULE_NAME)$(EXTENSION_SUFFIX)
|
|
|
|
#$(info Info CFLAGS $(CFLAGS))
|
|
#$(info Info LDFLAGS $(LDFLAGS))
|
|
#$(info Info TARGET $(TARGET))
|
|
#$(info Info SUBDIRS $(SUBDIRS))
|
|
|
|
OBJS := $(patsubst %.c, $(OBJDIR)/%.o, $(SRCS))
|
|
|
|
.PHONY: all clean test
|
|
.PHONY: $(SUBDIRS)
|
|
|
|
# Default target
|
|
all: $(OBJDIR) $(OBJDIR)/import_quisk_api.o ac2yd/remote.o $(TARGET) $(SUBDIRS)
|
|
|
|
$(SUBDIRS):
|
|
$(MAKE) -C $@
|
|
|
|
$(OBJDIR):
|
|
@mkdir -p $(OBJDIR)
|
|
|
|
# Link the shared library object
|
|
$(TARGET): $(OBJS) ac2yd/remote.o
|
|
$(CC) -o $@ $(OBJS) ac2yd/remote.o $(LDFLAGS)
|
|
|
|
# Define the location for dependency files
|
|
DEPS = $(patsubst %.o,$(OBJDIR)/%.d,$(notdir $(OBJS)))
|
|
DEPFLAGS = -MMD -MP -MF $(OBJDIR)/$(notdir $*).d
|
|
-include $(DEPS)
|
|
|
|
# Compile the C source files into object files
|
|
ac2yd/remote.o: ac2yd/remote.c quisk.h filter.h
|
|
$(CC) -o $@ -c $< $(CFLAGS) $(DEPFLAGS)
|
|
|
|
$(OBJDIR)/import_quisk_api.o: import_quisk_api.c
|
|
$(CC) -o $@ -c $< $(CFLAGS) $(DEPFLAGS)
|
|
|
|
$(OBJDIR)/%.o: %.c | $(OBJDIR)
|
|
$(CC) -o $@ -c $< $(CFLAGS) $(DEPFLAGS)
|
|
|
|
clean:
|
|
-rm -f $(OBJDIR)/*.o $(OBJDIR)/*.d
|
|
-rm -f ac2yd/*.o
|
|
-rm -f $(MODULE_NAME)*.so
|
|
for dir in $(SUBDIRS); do \
|
|
$(MAKE) -C $$dir clean; \
|
|
done
|
|
|
|
# Run a test script to verify that the module can be imported
|
|
test: $(TARGET)
|
|
@python3 -c "import $(MODULE_NAME); print('Successfully imported:', $(MODULE_NAME).__file__)"
|
|
|
|
|
|
|
|
.PHONY: quisk-old
|
|
quisk-old:
|
|
python3 setup.py build_ext --force --inplace
|