-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
44 lines (34 loc) · 1.15 KB
/
Makefile
File metadata and controls
44 lines (34 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
CC = gcc
PKG_CONFIG = pkg-config
CFLAGS = -Wall -Wextra -pthread -DVERSION=\"2.0.0\" -D_GNU_SOURCE -O2
LDFLAGS = -lm
GTK_CFLAGS = $(shell $(PKG_CONFIG) --cflags gtk+-3.0 glib-2.0 2>/dev/null)
GTK_LIBS = $(shell $(PKG_CONFIG) --libs gtk+-3.0 glib-2.0 2>/dev/null)
CFLAGS += $(GTK_CFLAGS)
LDFLAGS += $(GTK_LIBS)
SRCDIR = src
INCDIR = include
UIDIR = ui
OBJDIR = build/obj
BINDIR = build/bin
CORE_SRC = $(SRCDIR)/core.c $(SRCDIR)/decoder.c $(SRCDIR)/encoder.c \
$(SRCDIR)/plugin.c $(SRCDIR)/lru_cache.c $(SRCDIR)/logging.c \
$(SRCDIR)/errors.c $(SRCDIR)/crash_handler.c $(SRCDIR)/theme_manager.c
PLUGIN_SRC = $(wildcard $(SRCDIR)/plugins/*.c)
UI_SRC = $(UIDIR)/gui.c
MAIN_SRC = $(SRCDIR)/main.c
SOURCES = $(CORE_SRC) $(PLUGIN_SRC) $(UI_SRC) $(MAIN_SRC)
OBJECTS = $(SOURCES:%.c=$(OBJDIR)/%.o)
all: $(BINDIR)/auto_decoder_pro
$(BINDIR)/auto_decoder_pro: $(OBJECTS)
@mkdir -p $(BINDIR)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
@echo "✅ Build successful: $@"
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -I$(INCDIR) -I$(UIDIR) -c $< -o $@
clean:
@echo "Cleaning..."
rm -rf $(OBJDIR) $(BINDIR)
@echo "✅ Clean complete"
.PHONY: all clean