-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
66 lines (47 loc) · 1.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
.phony: clean
#----------------------------#
# Directories
#----------------------------#
OBJDIR := build
RELDIR := release
INCDIR := include
SRCDIR := . fourier libspectrice
#----------------------------#
# Cross-compilation, compile flags
#----------------------------#
# Alternatively, try "-march=native" for ARCHFLAGS
ARCHCROSS := i686-pc-cygwin-
ARCHFLAGS :=
CCFLAGS := $(ARCHFLAGS) -fno-math-errno -O2 -Wall -Wextra $(foreach dir, $(INCDIR), -I$(dir))
LDFLAGS := -static
#----------------------------#
# Tools
#----------------------------#
CC := $(ARCHCROSS)gcc
LD := $(ARCHCROSS)gcc
#----------------------------#
# Files
#----------------------------#
SRC := $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c))
OBJ := $(addprefix $(OBJDIR)/, $(notdir $(SRC:.c=.o)))
EXE := wav2vag.exe # Change this for other platforms
VPATH := $(SRCDIR)
#----------------------------#
# General rules
#----------------------------#
$(OBJDIR)/%.o : %.c
@echo $(notdir $<)
@$(CC) $(CCFLAGS) -c -o $@ $<
#----------------------------#
# make all
#----------------------------#
all : $(EXE)
$(OBJDIR) $(RELDIR) :; mkdir -p $@
$(OBJ) : $(SRC) | $(OBJDIR)
$(EXE) : $(OBJ) | $(RELDIR)
$(LD) -o $(RELDIR)/$@ $^ $(LDFLAGS)
#----------------------------#
# make clean
#----------------------------#
clean :; rm -rf $(OBJDIR) $(RELDIR)
#----------------------------#