Provide an install target in the Makefile.
[cubemap] / Makefile
1 CC=gcc
2 CXX=g++
3 INSTALL=install
4 PROTOC=protoc
5 CXXFLAGS=-Wall -O2 -g -pthread
6 LDLIBS=-lprotobuf -pthread
7
8 OBJS=main.o client.o server.o stream.o udpstream.o serverpool.o mutexlock.o input.o input_stats.o httpinput.o udpinput.o parse.o config.o markpool.o acceptor.o stats.o accesslog.o thread.o util.o log.o state.pb.o
9
10 all: cubemap
11
12 %.pb.cc %.pb.h : %.proto
13         $(PROTOC) --cpp_out=. $<
14
15 %.o: %.cpp state.pb.h
16         $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
17 %.pb.o: %.pb.cc
18         $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
19 cubemap: $(OBJS)
20         $(CXX) -o cubemap $(OBJS) $(LDLIBS)
21
22 DEPS=$(OBJS:.o=.d)
23 -include $(DEPS)
24
25 clean:
26         $(RM) cubemap $(OBJS) $(DEPS) state.pb.h state.pb.cc
27
28 PREFIX=/usr
29 install:
30         $(INSTALL) -m 755 -o root -g root -d $(DESTDIR)$(PREFIX)/bin $(DESTDIR)/etc $(DESTDIR)/var/lib/cubemap $(DESTDIR)/var/log/cubemap
31         $(INSTALL) -m 755 -o root -g root cubemap $(DESTDIR)$(PREFIX)/bin/cubemap
32         sed \
33                 -e 's,cubemap\.stats,/var/lib/cubemap/\0,g' \
34                 -e 's,cubemap-input\.stats,/var/lib/cubemap/\0,g' \
35                 -e 's,access\.log,/var/log/cubemap/\0,g' \
36                 -e 's,cubemap\.log,/var/log/cubemap/\0,g' \
37                 -e 's,^stream,#\0,g' \
38                 -e 's,^udpstream,#\0,g' \
39                 cubemap.config.sample > $(DESTDIR)/etc/cubemap.config
40
41 .PHONY: clean install
42 .SUFFIXES: