forked from gkaindl/ambi-tv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
98 lines (77 loc) · 2.25 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
# ambi-tv: a flexible ambilight clone for embedded linux
# Copyright (C) 2013 Georg Kaindl
#
# This file is part of ambi-tv.
#
# ambi-tv is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# ambi-tv is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ambi-tv. If not, see <http://www.gnu.org/licenses/>.
#
AMBITV = bin/ambi-tv
CFLAGS = -Wall
LDFLAGS = -lpthread -lm
CC = gcc
#
# Set the following variables to customize the build process
#
# LOCALBUILD - build the system locally with your default arch
# DEBUG - compile with ggdb debug flags
#
ifndef LOCALBUILD
CFLAGS += -mfpu=vfp -mfloat-abi=hard
endif
ifdef DEBUG
CFLAGS += -ggdb
else
CFLAGS += -O3
endif
#
# Build
#
#
all: $(AMBITV)
SRC_AMBITV_LIB = src/video-fmt.c src/parse-conf.c src/component.c \
src/registrations.c src/util.c src/program.c src/log.c src/color.c \
src/gpio.c \
src/components/v4l2-grab-source.c src/components/avg-color-processor.c \
src/components/lpd8806-spidev-sink.c src/components/timer-source.c \
src/components/edge-color-processor.c \
src/components/mood-light-processor.c
SRC_AMBITV_MAIN = src/main.c
OBJ_AMBITV_MAIN = $(SRC_AMBITV_MAIN:.c=.o)
OBJ_AMBITV_LIB = $(SRC_AMBITV_LIB:.c=.o)
dir=@mkdir -p bin
bin/ambi-tv: $(OBJ_AMBITV_LIB) $(OBJ_AMBITV_MAIN)
$(dir)
$(CC) $(LDFLAGS) $^ -o $@
#
# Automated tests
#
SRC_TESTS = $(wildcard src/test/*.c)
OBJ_TESTS = $(SRC_TESTS:.c=.o)
bin/testrunner: LDFLAGS += -lcunit
bin/testrunner: CFLAGS += -Isrc
bin/testrunner: $(OBJ_AMBITV_LIB) $(OBJ_TESTS)
$(dir)
$(CC) $(LDFLAGS) $^ -o $@
test: bin/testrunner
./bin/testrunner
#
# Common goals
#
.c.o:
gcc $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJ_AMBITV_LIB)
rm -f $(OBJ_TESTS)
rm -rf bin/ambi-tv bin/testrunner
.PHONY = all clean