git2lv2.mk 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ###############################################################################
  2. # extract versions
  3. GIT_REV_REGEXP="([0-9][0-9]*)\.([0-9][0-9]*)(\.([0-9][0-9]*))?(-([0-9][0-9]*))?(-g([a-f0-9]+))?"
  4. override MAJOR=$(shell echo $(LV2VERSION) | sed $(EXTENDED_RE) -e s/$(GIT_REV_REGEXP)/\\1/)
  5. override MINOR=$(shell echo $(LV2VERSION) | sed $(EXTENDED_RE) -e s/$(GIT_REV_REGEXP)/\\2/)
  6. override MICRO=$(shell echo $(LV2VERSION) | sed $(EXTENDED_RE) -e s/$(GIT_REV_REGEXP)/\\4/)
  7. override GITREV=$(shell echo $(LV2VERSION) | sed $(EXTENDED_RE) -e s/$(GIT_REV_REGEXP)/\\6/)
  8. ifeq ($(MAJOR),)
  9. override MAJOR=0
  10. endif
  11. ifeq ($(MINOR),)
  12. override MINOR=0
  13. endif
  14. ifeq ($(MICRO),)
  15. override MICRO=0
  16. endif
  17. $(info Version: $(LV2VERSION) -> $(MAJOR) $(MINOR) $(MICRO) $(GITREV))
  18. # version requirements, see
  19. # http://lv2plug.in/ns/lv2core/#minorVersion
  20. # http://lv2plug.in/ns/lv2core/#microVersion
  21. ifeq ($(GITREV),)
  22. # even numbers for tagged releases
  23. override LV2MIN = $(shell expr $(MAJOR) \* 65536 + $(MINOR) \* 256 + $(MICRO) \* 2 )
  24. override LV2MIC = 0
  25. else
  26. # odd-numbers for all non tagged git versions
  27. override LV2MIN = $(shell expr $(MAJOR) \* 65536 + $(MINOR) \* 256 + $(MICRO) \* 2 + 1 )
  28. override LV2MIC = $(shell expr $(GITREV) \* 2 + 1)
  29. endif
  30. ifeq ($(LV2MIN),)
  31. $(error "Cannot extract required LV2 minor-version parameter")
  32. endif
  33. ifeq ($(LV2MIC),)
  34. $(error "Cannot extract required LV2 micro-version parameter")
  35. endif
  36. $(info LV2 Version: $(LV2MIN) $(LV2MIC))