-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
56 lines (43 loc) · 1.31 KB
/
Makefile
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
45
46
47
48
49
50
51
52
53
54
55
56
CXX = g++
STD = c++11
CFLAGS = -std=$(STD)
IMGUI = ./imgui
IMGUI_BACKENDS = $(IMGUI)/backends
IMGUI_SOURCES = $(wildcard $(IMGUI)/*.cpp)
IMGUI_SOURCES += $(wildcard $(IMGUI_BACKENDS)/*.cpp)
IMGUI_CFLAGS = -I$(IMGUI) -I$(IMGUI_BACKENDS) `pkg-config --static --libs glfw3` `pkg-config --cflags glfw3`
IMGUI_OBJS = $(addsuffix .o, $(basename $(notdir $(IMGUI_SOURCES))))
SRC = ./src
RUNNERS_SRC = $(SRC)/runners
PKG_MANAGERS= $(SRC)/pkgmanagers
HEADERS = ./headers
HELPERS = ./helpers
CFLAGS += -I$(HELPERS) -I$(HEADERS) -lpthread -lGL -g -Wall -Wformat
CFLAGS += $(IMGUI_CFLAGS)
# set TESTING to null for release build
# e.g. "TESTING = "
TESTING =
SOURCES = $(SRC)/gui.cpp $(SRC)/utils.cpp $(RUNNERS_SRC)/steam.cpp $(PKG_MANAGERS)/snap.cpp $(PKG_MANAGERS)/flatpak.cpp
ifeq ($(TESTING),debug)
SOURCES += $(SRC)/test.cpp
else
SOURCES += $(SRC)/main.cpp
endif
OBJECTS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
OBJECTS += $(IMGUI_OBJS)
TARGET = lgm
%.o:$(SRC)/%.cpp
$(CXX) $(CFLAGS) -c -o $@ $<
%.o:$(RUNNERS_SRC)/%.cpp
$(CXX) $(CFLAGS) -c -o $@ $<
%.o:$(PKG_MANAGERS)/%.cpp
$(CXX) $(CFLAGS) -c -o $@ $<
%.o:$(IMGUI)/%.cpp
$(CXX) $(CFLAGS) -c -o $@ $<
%.o:$(IMGUI_BACKENDS)/%.cpp
$(CXX) $(CFLAGS) -c -o $@ $<
$(TARGET):$(OBJECTS)
$(CXX) $(OBJECTS) -o $(TARGET) $(CFLAGS)
all: $(TARGET)
clean:
rm $(TARGET) $(OBJECTS)