60 lines
1.8 KiB
Makefile
60 lines
1.8 KiB
Makefile
CC = gcc
|
|
CFLAGS = -O2 -Wall -Wextra -pthread \
|
|
-I. -Iconfig -Iutil -Ihttp -Inotifs -Iqueue -Iintegrations
|
|
LDFLAGS = -pthread -lcurl
|
|
TARGET = iptv-dl
|
|
|
|
SRCS = main.c \
|
|
config/config.c \
|
|
util/buf.c \
|
|
util/json.c \
|
|
http/http.c \
|
|
http/server.c \
|
|
http/handlers.c \
|
|
notifs/notify.c \
|
|
queue/iptv_api.c \
|
|
queue/queue.c \
|
|
integrations/discord.c \
|
|
integrations/jellyfin.c
|
|
|
|
OBJS = $(SRCS:.c=.o)
|
|
|
|
# Install paths (override: make install PREFIX=/usr/local)
|
|
PREFIX = /usr/local
|
|
BINDIR = $(PREFIX)/bin
|
|
SHAREDIR = $(PREFIX)/share/iptv-dl
|
|
SYSCONFDIR = /etc/iptv-downloader
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CC) $(OBJS) $(LDFLAGS) -o $@
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
install: $(TARGET)
|
|
install -d $(BINDIR) $(SHAREDIR)/css $(SHAREDIR)/js $(SHAREDIR)/html $(SYSCONFDIR)
|
|
install -m 755 $(TARGET) $(BINDIR)/iptv-dl
|
|
install -m 644 static/css/iptv.css $(SHAREDIR)/css/iptv.css
|
|
install -m 644 static/js/iptv.js $(SHAREDIR)/js/iptv.js
|
|
install -m 644 static/js/downloads.js $(SHAREDIR)/js/downloads.js
|
|
install -m 644 static/js/series_show.js $(SHAREDIR)/js/series_show.js
|
|
install -m 644 static/html/header.html $(SHAREDIR)/html/header.html
|
|
install -m 644 static/html/footer.html $(SHAREDIR)/html/footer.html
|
|
@echo ""
|
|
@echo "Installed to $(BINDIR)/iptv-dl"
|
|
@echo "Create config at ~/.iptv-downloader/config.json or $(SYSCONFDIR)/config.json"
|
|
@echo "Run: iptv-dl --dump-config (to see active defaults)"
|
|
|
|
test: tests/test_runner
|
|
./tests/test_runner
|
|
|
|
tests/test_runner: tests/test_json.c util/json.c util/buf.c
|
|
$(CC) $(CFLAGS) $^ -o $@
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(TARGET) tests/test_runner
|
|
|
|
.PHONY: all install clean test
|