1
1
2
+ VERSION = v0.14.003
3
+
2
4
ifndef DESTDIR
3
5
DESTDIR =
4
6
endif
5
7
ifndef PREFIX
6
8
PREFIX = /usr/local
7
9
endif
8
- BINDIR = ./bin
10
+ BUILDDIR = ../build
11
+ BINDIR = bin
12
+ DATADIR = share/loopidity
9
13
ASSETSDIR = ../assets
10
14
INSTALLDIR = $(DESTDIR )$(PREFIX )
11
15
ifeq (${MSYSTEM},MINGW32)
@@ -18,18 +22,18 @@ CC = gcc
18
22
CXX = g++
19
23
AR = ar
20
24
LD = g++
21
- CFLAGS = -std=gnu++0x -Wall -MMD \
22
- -DLOOPIDITY_BINDIR=\"$(INSTALLDIR ) /bin\" \
25
+ CFLAGS = -std=gnu++0x -MMD - Wall -Werror -Wextra -DVERSION= $( VERSION ) \
26
+ -DLOOPIDITY_BINDIR=\"$(INSTALLDIR ) /bin\" \
23
27
-DLOOPIDITY_DATADIR=\"$(INSTALLDIR ) /share/loopidity\"
24
28
ifeq ($(CONFIG ) ,debug)
25
29
CFLAGS += -g -DDEBUG=1
26
30
LDFLAGS =
27
- OBJDIR = . /obj/Debug/__ /src
31
+ OBJDIR = $( BUILDDIR ) /obj/debug /src
28
32
TARGET = loopidity-dbg
29
33
else
30
34
CFLAGS += -O3
31
35
LDFLAGS = -s
32
- OBJDIR = . /obj/Release/__ /src
36
+ OBJDIR = $( BUILDDIR ) /obj/release /src
33
37
TARGET = loopidity
34
38
CONFIG = 'release'
35
39
endif
@@ -59,44 +63,45 @@ all: before out after
59
63
60
64
before :
61
65
@echo " building $( CONFIG) configuration"
62
- @test -d $(BINDIR ) || mkdir -p $(BINDIR )
63
- @test -d $(OBJDIR ) || mkdir -p $(OBJDIR )
66
+ @test -d $(BUILDDIR ) /$(BINDIR ) || mkdir -p $(BUILDDIR ) /$(BINDIR )
67
+ @test -d $(BUILDDIR ) /$(DATADIR ) || mkdir -p $(BUILDDIR ) /$(DATADIR )
68
+ @test -d $(BUILDDIR ) /$(OBJDIR ) || mkdir -p $(BUILDDIR ) /$(OBJDIR )
64
69
65
70
out : before $(OBJECTS )
66
71
@echo " linking $( CONFIG) binary"
67
- @$(LD ) -o $(BINDIR ) /$(TARGET ) $(OBJECTS ) $(LDFLAGS )
68
-
69
- after : before $(ASSETS )
70
- @echo " copying assets to bin directory"
71
- @cp --no-clobber $(ASSETS ) $(BINDIR ) /
72
-
72
+ @$(LD ) -o $(BUILDDIR ) /$(BINDIR ) /$(TARGET ) $(OBJECTS ) $(LDFLAGS )
73
73
74
74
$(OBJECTS ) : $(OBJDIR ) /% .o: ../src/% .cpp
75
75
@echo " -> compiling $* .cpp"
76
- @$(CXX ) $(CFLAGS ) -c $< -o $@
76
+ @$(CXX ) $(CFLAGS ) -c $(BUILDDIR ) /$< -o $@
77
+
78
+ after : before out $(ASSETS )
79
+ @echo " copying assets to data directory"
80
+ @cp --no-clobber $(ASSETS ) $(BUILDDIR ) /$(DATADIR ) /
77
81
78
82
79
83
clean :
80
- @echo " cleaning $( CONFIG) configuration"
81
- @rm -rf $(BINDIR )
82
- @rm -rf $(OBJDIR ) /* .o
84
+ @echo " cleaning all configurations"
85
+ rm -rf $(BUILDDIR ) /$(BINDIR ) /
86
+ rm -rf $(BUILDDIR ) /$(DATADIR ) /
87
+ rm -rf $(BUILDDIR ) /$(OBJDIR ) /
83
88
84
89
85
90
assert-writable :
86
- @mkdir -p $(INSTALLDIR ) /bin
87
- @mkdir -p $(INSTALLDIR ) /share/loopidity
88
- @touch $(INSTALLDIR ) /bin /$(TARGET ) 2> /dev/null || \
91
+ @mkdir -p $(INSTALLDIR ) /$( BINDIR )
92
+ @mkdir -p $(INSTALLDIR ) /$( DATADIR )
93
+ @touch $(INSTALLDIR ) /$( BINDIR ) /$(TARGET ) 2> /dev/null || \
89
94
(echo '\nsuperuser privileges required - exiting\n' && exit 255)
90
95
91
96
install : all assert-writable
92
97
@echo installing loopidity
93
- @install -Dm 755 $(BINDIR ) /$(TARGET ) $(INSTALLDIR ) /bin /
94
- @install -Dm 644 $(ASSETS ) $(INSTALLDIR ) /share/loopidity /
98
+ @install -Dm 755 $(BINDIR ) /$(TARGET ) $(INSTALLDIR ) /$( BINDIR ) /
99
+ @install -Dm 644 $(ASSETS ) $(INSTALLDIR ) /$( DATADIR ) /
95
100
96
101
uninstall : assert-writable
97
102
@echo uninstalling loopidity
98
- @rm $(INSTALLDIR ) /bin /$(TARGET ) 2> /dev/null
99
- @rm -rf $(INSTALLDIR ) /share/loopidity/ 2> /dev/null
103
+ @rm $(INSTALLDIR ) /$( BINDIR ) /$(TARGET ) 2> /dev/null
104
+ @rm -rf $(INSTALLDIR ) /$( DATADIR ) / 2> /dev/null
100
105
101
106
102
107
-include $(OBJECTS :% .o=% .d)
0 commit comments