# # Makefile # # Environment: Debian # include common.mk PROJECTNAME=whiteboard DISTROS=base debian11 ubuntu2210 VERSION=$(shell dpkg-parsechangelog --show-field Version) TGZNAME=$(PROJECTNAME)-$(VERSION).tar.xz INCLUDES=-I. HEADERS=config.h qrcode.h storage.h whiteboard.h compiledsql.h connectionregistry.h SOURCES=$(HEADERS:.h=.cpp) OBJECTS=$(HEADERS:.h=.o) TARGETS=whiteboard build: $(TARGETS) all: build ./whiteboard -c whiteboard.conf install: mkdir -p $(DESTDIR)/usr/bin cp whiteboard $(DESTDIR)/usr/bin mkdir -p $(DESTDIR)/usr/lib/whiteboard/html cp -r html/* $(DESTDIR)/usr/lib/whiteboard/html/ uglifyjs html/whiteboard.js -m -c > $(DESTDIR)/usr/lib/whiteboard/html/whiteboard.js || cp html/whiteboard.js $(DESTDIR)/usr/lib/whiteboard/html/whiteboard.js htmlmin html/index.html $(DESTDIR)/usr/lib/whiteboard/html/index.html cleancss -o $(DESTDIR)/usr/lib/whiteboard/html/whiteboard.css html/whiteboard.css mkdir -p $(DESTDIR)/etc cp whiteboard.conf $(DESTDIR)/etc # link whiteboard: $(OBJECTS) main.o $(CXX) $(LDFLAGS) $^ $(LDLIBS) $(LIBS) -o $@ # .cpp -> .o %.o: %.cpp $(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@ test: $(MAKE) -C tests clean: -rm -f *.o $(TARGETS) *.gcov $(MAKE) -C tests clean deb: dpkg-buildpackage deb-src: clean dh_clean dh_auto_clean dpkg-source -b -I.git -Iresult . $(DISTROS): deb-src sudo pbuilder build --basetgz /var/cache/pbuilder/$@.tgz --buildresult result/$@ ../whiteboard_$(VERSION).dsc debsign result/$@/whiteboard_$(VERSION)_amd64.changes DISTFILES=$(shell git ls-files 2>/dev/null) dist: clean rm -rf $(PROJECTNAME)-$(VERSION) mkdir $(PROJECTNAME)-$(VERSION) cp --parents -r $(DISTFILES) $(PROJECTNAME)-$(VERSION) tar cfJ ../$(PROJECTNAME)-$(VERSION).tar.xz $(PROJECTNAME)-$(VERSION) rm -rf $(PROJECTNAME)-$(VERSION) ls -l ../$(PROJECTNAME)-$(VERSION).tar.xz upload: scp ../$(TGZNAME) antcom.de:/var/www/reichwein.it-download/ scp -r result antcom.de: scp -r remote-install.sh antcom.de: ssh antcom.de ./remote-install.sh $(PROJECTNAME) $(VERSION) ssh antcom.de rm -rf remote-install.sh result debs: $(DISTROS) .PHONY: clean