forked from superctr/QuattroPlay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
124 lines (111 loc) · 2.34 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#==============================================================================
#
# QuattroPlay
# Copyright 2016-2017 Ian Karlsson
#
#==============================================================================
# uncomment if you're building on these platforms
# WINDOWS = 1
# not needed if you have sdl2-config
# MACOSX = 1
ifndef MACOSX
ifndef WINDOWS
# Recommended on GNU/Linux.
USE_SDL_CONFIG = 1
endif
endif
CC = gcc
CXX = g++
AR = ar
LD = g++
CFLAGS :=
LIB :=
LIBDIR :=
INC :=
LDFLAGS :=
ifdef DEBUG
CFLAGS := -g -DDEBUG
else
CFLAGS := -O3 -g0 -DRELEASE
LDFLAGS := -s
ifdef WINDOWS
# disable console window
LDFLAGS += -mwindows
endif
endif
ifdef USE_SDL_CONFIG
INC += $(shell sdl2-config --cflags)
LIB += $(shell sdl2-config --libs)
else
ifdef WINDOWS
LIB += -lmingw32 -lSDL2main
LDFLAGS += -static-libgcc
endif
# Include paths go here (for macOS etc)
INC +=
LIBDIR +=
LIB += -lSDL2
endif
SRC = ./src
OBJ = ./obj
OUT = ./bin
OUTBIN = $(OUT)/QuattroPlay
OBJS = \
$(OBJ)/drv/_interface.o \
$(OBJ)/drv/helper.o \
$(OBJ)/drv/quattro.o \
$(OBJ)/drv/tables.o \
$(OBJ)/drv/track.o \
$(OBJ)/drv/track_cmd.o \
$(OBJ)/drv/update.o \
$(OBJ)/drv/voice.o \
$(OBJ)/drv/voice_env.o \
$(OBJ)/drv/voice_lfo.o \
$(OBJ)/drv/voice_pan.o \
$(OBJ)/drv/voice_pitch.o \
$(OBJ)/drv/wave.o \
$(OBJ)/s2x/_interface.o \
$(OBJ)/s2x/helper.o \
$(OBJ)/s2x/s2x.o \
$(OBJ)/s2x/tables.o \
$(OBJ)/s2x/track.o \
$(OBJ)/s2x/track_cmd.o \
$(OBJ)/s2x/voice.o \
$(OBJ)/s2x/voice_fm.o \
$(OBJ)/s2x/voice_pcm.o \
$(OBJ)/s2x/voice_wsg.o \
$(OBJ)/s2x/wsg.o \
$(OBJ)/emu/c352.o \
$(OBJ)/emu/ym2151.o \
$(OBJ)/lib/audit.o \
$(OBJ)/lib/fileio.o \
$(OBJ)/lib/ini.o \
$(OBJ)/lib/loopdetect.o \
$(OBJ)/lib/q_detect.o \
$(OBJ)/lib/q_pattern.o \
$(OBJ)/lib/vgm.o \
$(OBJ)/ui/info.o \
$(OBJ)/ui/info_quattro.o \
$(OBJ)/ui/info_system2.o \
$(OBJ)/ui/lib.o \
$(OBJ)/ui/scr_about.o \
$(OBJ)/ui/scr_main.o \
$(OBJ)/ui/scr_main2.o \
$(OBJ)/ui/scr_playlist.o \
$(OBJ)/ui/scr_select.o \
$(OBJ)/ui/ui.o \
$(OBJ)/audio.o \
$(OBJ)/driver.o \
$(OBJ)/loader.o \
$(OBJ)/main.o \
build: $(OBJS)
@echo linking...
@mkdir -p $(OUT)
@$(LD) $(LIBDIR) -o $(OUTBIN) $(OBJS) $(LDFLAGS) $(LIB)
$(OBJ)/%.o: $(SRC)/%.c
@echo Compiling $< ...
@mkdir -p $(@D)
@$(CC) $(CFLAGS) $(INC) -c $< -o $@
clean:
rm -f $(OBJS) $(OUTBIN)
.PHONY: build clean