Makefile 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. include ../make.inc
  2. MOC ?= moc-qt4
  3. QT_INCDIR ?= /usr/include
  4. QT_LIBDIR ?= /usr/lib
  5. CXXFLAGS += $(BASE_CXXFLAGS) -flto -fno-exceptions $(WARN_CXXFLAGS) \
  6. -I$(QT_INCDIR) \
  7. -I$(QT_INCDIR)/QtCore \
  8. -I$(QT_INCDIR)/QtGui \
  9. -I$(QT_INCDIR)/qt4 \
  10. -I$(QT_INCDIR)/qt4/QtCore \
  11. -I$(QT_INCDIR)/qt4/QtGui \
  12. -DNULL=0
  13. LDFLAGS ?= -L$(QT_LIBDIR) \
  14. -L$(QT_LIBDIR)/qt4
  15. LIBS ?= -lQtCore -lQtGui
  16. BIN = pwrtray
  17. SRCS = main.cpp backend.cpp util.cpp
  18. V = @ # Verbose build: make V=1
  19. Q = $(V:1=)
  20. QUIET_CXX = $(Q:@=@echo ' CXX '$@;)$(CXX)
  21. QUIET_DEPEND = $(Q:@=@echo ' DEPEND '$@;)$(CXX)
  22. QUIET_MOC = $(Q:@=@echo ' MOC '$@;)$(MOC)
  23. DEPS = $(patsubst %.cpp,dep/%.d,$(1))
  24. OBJS = $(patsubst %.cpp,obj/%.o,$(1))
  25. .SUFFIXES:
  26. .PHONY: all install clean
  27. .DEFAULT_GOAL := all
  28. # Generate dependencies
  29. $(call DEPS,$(SRCS)): dep/%.d: %.cpp
  30. @mkdir -p $(dir $@)
  31. $(QUIET_DEPEND) -o $@.tmp -MM -MG -MT "$@ $(patsubst dep/%.d,obj/%.o,$@)" $(CXXFLAGS) $< && mv -f $@.tmp $@
  32. -include $(call DEPS,$(SRCS))
  33. # Generate object files
  34. $(call OBJS,$(SRCS)): obj/%.o:
  35. @mkdir -p $(dir $@)
  36. $(QUIET_CXX) -o $@ -c $(CXXFLAGS) $<
  37. moc/%.moc: %.h
  38. @mkdir -p $(dir $@)
  39. $(QUIET_MOC) -o $@ $<
  40. all: $(BIN)
  41. $(BIN): $(call OBJS,$(SRCS))
  42. $(QUIET_CXX) $(CXXFLAGS) -o $(BIN) $(LDFLAGS) $(LIBS) $(call OBJS,$(SRCS))
  43. clean:
  44. rm -Rf dep obj moc core *~ $(BIN)
  45. install: $(BIN)
  46. $(INSTALL) -d -m755 $(DESTDIR)$(PREFIX)/share/pwrtray/
  47. $(INSTALL) -d -m755 $(DESTDIR)$(PREFIX)/bin/
  48. $(INSTALL) -m644 ./bulb.png $(DESTDIR)$(PREFIX)/share/pwrtray/
  49. $(INSTALL) -m755 $(BIN) $(DESTDIR)$(PREFIX)/bin/