Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.3KB

  1. # Makefile for the Non Sequencer.
  2. # Copyright 2007-2008 Jonathan Moore Liles
  3. # This file is licencesd under version 2 of the GPL.
  4. # config
  5. prefix=/usr/local/
  6. SYSTEM_PATH=$(prefix)/share/non-sequencer/
  7. DOCUMENT_PATH=$(prefix)/share/doc/non-sequencer/
  8. USE_LASH=1
  9. VERSION=1.9.0
  10. # Debugging
  11. CFLAGS:=-O0 -ggdb -fno-omit-frame-pointer -Wall
  12. # Production
  13. # CFLAGS:=-O3 -fomit-frame-pointer -DNDEBUG
  14. CFLAGS+=-DVERSION=\"$(VERSION)\" \
  15. -DINSTALL_PREFIX=\"$(prefix)\" \
  16. -DSYSTEM_PATH=\"$(SYSTEM_PATH)\" \
  17. -DDOCUMENT_PATH=\"$(DOCUMENT_PATH)\"
  18. CXXFLAGS:=$(CFLAGS) -fno-exceptions -fno-rtti `fltk-config --cxxflags` `pkg-config jack --atleast-version 0.105 || echo -DJACK_MIDI_PROTO_API` `pkg-config jack --cflags` `pkg-config --cflags sigc++-2.0`
  19. LIBS=`pkg-config --libs jack` `fltk-config --use-images --ldflags` `pkg-config --libs sigc++-2.0`
  20. ifeq ($(USE_LASH),1)
  21. LIBS+=-llash
  22. CXXFLAGS+=-DUSE_LASH `pkg-config --cflags lash-1.0`
  23. endif
  24. SRCS= \
  25. canvas.C \
  26. debug.C \
  27. event.C \
  28. event_list.C \
  29. grid.C \
  30. gui/draw.C \
  31. gui/event_edit.C \
  32. gui/input.C \
  33. gui/ui.C \
  34. gui/widgets.C \
  35. instrument.C \
  36. jack.C \
  37. lash.C \
  38. main.C \
  39. mapping.C \
  40. midievent.C \
  41. pattern.C \
  42. phrase.C \
  43. scale.C \
  44. sequence.C \
  45. smf.C \
  46. transport.C
  47. OBJS=$(SRCS:.C=.o)
  48. .PHONEY: all clean install dist valgrind
  49. all: non makedepend
  50. clean:
  51. rm -f non makedepend $(OBJS)
  52. @ echo Done
  53. valgrind:
  54. valgrind ./non
  55. .C.o:
  56. @ echo -n "Compiling: "; tput bold; tput setaf 3; echo $<; tput sgr0; true
  57. @ $(CXX) $(CXXFLAGS) -c $< -o $@
  58. %.C : %.fl
  59. @ cd gui && fluid -c ../$<
  60. $(OBJS): Makefile
  61. non: $(OBJS)
  62. @ echo -n "Linking..."
  63. @ rm -f $@
  64. @ $(CXX) $(CXXFLAGS) $(LIBS) $(OBJS) -o $@ || (tput bold; tput setaf 1; echo Error!; tput sgr0)
  65. @ test -x $@ && echo done.
  66. install: all
  67. @ echo -n "Installing..."
  68. @ install non $(prefix)/bin
  69. @ mkdir -p "$(SYSTEM_PATH)"
  70. @ cp -r instruments "$(SYSTEM_PATH)"
  71. @ mkdir -p "$(DOCUMENT_PATH)"
  72. @ cp doc/*.html doc/*.png "$(DOCUMENT_PATH)"
  73. @ echo done
  74. # make -C doc install
  75. dist:
  76. git archive --prefix=non-sequencer-$(VERSION)/ v$(VERSION) | bzip2 > non-sequencer-$(VERSION).tar.bz2
  77. TAGS: $(SRCS)
  78. etags $(SRCS)
  79. makedepend: $(SRCS)
  80. @ echo -n Checking dependencies...
  81. @ makedepend -f- -- $(CXXFLAGS) -- $(SRCS) > makedepend 2>/dev/null && echo done.
  82. include makedepend