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.

122 lines
2.8KB

  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. VERSION := 1.9.2
  5. all: make.conf non-sequencer
  6. make.conf: configure
  7. @ ./configure
  8. config:
  9. @ ./configure
  10. -include make.conf
  11. SYSTEM_PATH=$(prefix)/share/non-sequencer/
  12. DOCUMENT_PATH=$(prefix)/share/doc/non-sequencer/
  13. ifeq ($(USE_DEBUG),yes)
  14. CXXFLAGS := -pipe -ggdb -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -O0 -fno-rtti -fno-exceptions
  15. else
  16. CXXFLAGS := -pipe -O2 -fno-rtti -fno-exceptions -DNDEBUG
  17. endif
  18. CFLAGS+=-DVERSION=\"$(VERSION)\" \
  19. -DINSTALL_PREFIX=\"$(prefix)\" \
  20. -DSYSTEM_PATH=\"$(SYSTEM_PATH)\" \
  21. -DDOCUMENT_PATH=\"$(DOCUMENT_PATH)\"
  22. CXXFLAGS:=$(CFLAGS) $(CXXFLAGS) $(FLTK_CFLAGS) $(sigcpp_CFLAGS) $(LASH_CFLAGS)
  23. LIBS:=$(FLTK_LIBS) $(JACK_LIBS) $(LASH_LIBS) $(sigcpp_LIBS)
  24. ifeq ($(JACK_MIDI_PROTO_API),yes)
  25. CXXFLAGS+=-DJACK_MIDI_PROTO_API
  26. endif
  27. # uncomment this line to print each playback event to the console (not RT safe)
  28. # CXXFLAGS+= -DDEBUG_EVENTS
  29. SRCS= \
  30. canvas.C \
  31. debug.C \
  32. event.C \
  33. event_list.C \
  34. grid.C \
  35. gui/draw.C \
  36. gui/event_edit.C \
  37. gui/input.C \
  38. gui/ui.C \
  39. gui/widgets.C \
  40. instrument.C \
  41. jack.C \
  42. lash.C \
  43. main.C \
  44. mapping.C \
  45. midievent.C \
  46. pattern.C \
  47. phrase.C \
  48. scale.C \
  49. sequence.C \
  50. smf.C \
  51. transport.C
  52. OBJS=$(SRCS:.C=.o)
  53. .PHONEY: all clean install dist valgrind config
  54. clean:
  55. rm -f non-sequencer makedepend $(OBJS)
  56. @ echo "$(DONE)"
  57. valgrind:
  58. valgrind ./non-sequencer
  59. include scripts/colors
  60. .C.o:
  61. @ echo "Compiling: $(BOLD)$(YELLOW)$<$(SGR0)"
  62. @ $(CXX) $(CXXFLAGS) -c $< -o $@
  63. %.C : %.fl
  64. @ cd `dirname $<` && fluid -c ../$<
  65. $(OBJS): make.conf
  66. DONE:=$(BOLD)$(GREEN)done$(SGR0)
  67. non-sequencer: $(OBJS)
  68. @ echo -n "Linking..."
  69. @ rm -f $@
  70. @ $(CXX) $(CXXFLAGS) $(LIBS) $(OBJS) -o $@ || echo "$(BOLD)$(RED)Error!$(SGR0)"
  71. @ if test -x $@; then echo "$(DONE)"; test -x "$(prefix)/bin/$@" || echo "You must now run 'make install' (as the appropriate user) to install the executable, documentation and other support files in order for the program to function properly."; fi
  72. install: all
  73. @ echo -n "Installing..."
  74. @ install non-sequencer $(prefix)/bin
  75. @ mkdir -p "$(SYSTEM_PATH)"
  76. @ cp -r instruments "$(SYSTEM_PATH)"
  77. @ mkdir -p "$(DOCUMENT_PATH)"
  78. @ cp doc/*.html doc/*.png "$(DOCUMENT_PATH)"
  79. @ echo "$(DONE)"
  80. ifneq ($(USE_DEBUG),yes)
  81. @ echo -n "Stripping..."
  82. @ strip $(prefix)/bin/non-sequencer
  83. @ echo "$(DONE)"
  84. endif
  85. dist:
  86. git archive --prefix=non-sequencer-$(VERSION)/ v$(VERSION) | bzip2 > non-sequencer-$(VERSION).tar.bz2
  87. TAGS: $(SRCS)
  88. etags $(SRCS)
  89. makedepend: make.conf $(SRCS)
  90. @ echo -n Calculating dependencies...
  91. @ makedepend -f- -- $(CXXFLAGS) -- $(SRCS) > makedepend 2>/dev/null && echo "$(DONE)"
  92. -include makedepend