]> git.sesse.net Git - cubemap/blobdiff - Makefile
Provide an install target in the Makefile.
[cubemap] / Makefile
index 8d26f4984c06bed137ea7743bbb1a336f2f1da8d..3552fe44bad0a63d4f52f09eeb2ddc7d56884f69 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,20 @@
 CC=gcc
 CXX=g++
-CXXFLAGS=-Wall -O2 -g
-LDLIBS=-lcurl
+INSTALL=install
+PROTOC=protoc
+CXXFLAGS=-Wall -O2 -g -pthread
+LDLIBS=-lprotobuf -pthread
 
-OBJS=cubemap.o
+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
 
 all: cubemap
 
-%.o: %.cpp
+%.pb.cc %.pb.h : %.proto
+       $(PROTOC) --cpp_out=. $<
+
+%.o: %.cpp state.pb.h
+       $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
+%.pb.o: %.pb.cc
        $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
 cubemap: $(OBJS)
        $(CXX) -o cubemap $(OBJS) $(LDLIBS)
@@ -16,5 +23,20 @@ DEPS=$(OBJS:.o=.d)
 -include $(DEPS)
 
 clean:
-       $(RM) cubemap $(OBJS) $(DEPS)
+       $(RM) cubemap $(OBJS) $(DEPS) state.pb.h state.pb.cc
+
+PREFIX=/usr
+install:
+       $(INSTALL) -m 755 -o root -g root -d $(DESTDIR)$(PREFIX)/bin $(DESTDIR)/etc $(DESTDIR)/var/lib/cubemap $(DESTDIR)/var/log/cubemap
+       $(INSTALL) -m 755 -o root -g root cubemap $(DESTDIR)$(PREFIX)/bin/cubemap
+       sed \
+               -e 's,cubemap\.stats,/var/lib/cubemap/\0,g' \
+               -e 's,cubemap-input\.stats,/var/lib/cubemap/\0,g' \
+               -e 's,access\.log,/var/log/cubemap/\0,g' \
+               -e 's,cubemap\.log,/var/log/cubemap/\0,g' \
+               -e 's,^stream,#\0,g' \
+               -e 's,^udpstream,#\0,g' \
+               cubemap.config.sample > $(DESTDIR)/etc/cubemap.config
 
+.PHONY: clean install
+.SUFFIXES: