DISTRHO Plugin Framework
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.

164 lines
5.4KB

  1. #!/usr/bin/make -f
  2. # Makefile for DGL #
  3. # ---------------- #
  4. # Created by falkTX
  5. #
  6. include ../Makefile.base.mk
  7. # ---------------------------------------------------------------------------------------------------------------------
  8. BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc
  9. BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc -Isrc/pugl-upstream/include -DDONT_SET_USING_DGL_NAMESPACE -Wno-unused-parameter
  10. LINK_FLAGS += $(DGL_LIBS)
  11. # TODO fix these after pugl-upstream is done
  12. BUILD_CXX_FLAGS += -Wno-missing-field-initializers -Wno-extra -Wno-narrowing
  13. # ifneq ($(MACOS_OLD),true)
  14. # needed by sofd right now, fix later
  15. # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive
  16. # endif
  17. # ---------------------------------------------------------------------------------------------------------------------
  18. OBJS_common = \
  19. ../build/dgl/Application.cpp.o \
  20. ../build/dgl/ApplicationPrivateData.cpp.o \
  21. ../build/dgl/Color.cpp.o \
  22. ../build/dgl/Geometry.cpp.o \
  23. ../build/dgl/ImageBase.cpp.o \
  24. ../build/dgl/Resources.cpp.o\
  25. ../build/dgl/StandaloneWindow.cpp.o \
  26. ../build/dgl/Widget.cpp.o \
  27. ../build/dgl/Window.cpp.o\
  28. ../build/dgl/WindowFileBrowser.cpp.o
  29. # TODO: ImageWidgets.cpp
  30. # ---------------------------------------------------------------------------------------------------------------------
  31. OBJS_cairo = $(OBJS_common) \
  32. ../build/dgl/Cairo.cpp.cairo.o \
  33. ../build/dgl/WidgetPrivateData.cpp.cairo.o \
  34. ../build/dgl/WindowPrivateData.cpp.cairo.o
  35. # ifeq ($(MACOS),true)
  36. # OBJS_cairo += ../build/dgl/Window.mm.cairo.o
  37. # else
  38. # OBJS_cairo += ../build/dgl/Window.cpp.cairo.o
  39. # endif
  40. # ---------------------------------------------------------------------------------------------------------------------
  41. OBJS_opengl = $(OBJS_common) \
  42. ../build/dgl/OpenGL.cpp.opengl.o \
  43. ../build/dgl/Image.cpp.opengl.o \
  44. ../build/dgl/ImageWidgets.cpp.opengl.o \
  45. ../build/dgl/NanoVG.cpp.opengl.o \
  46. ../build/dgl/WidgetPrivateData.cpp.opengl.o \
  47. ../build/dgl/WindowPrivateData.cpp.opengl.o
  48. # ifeq ($(MACOS),true)
  49. # OBJS_opengl += ../build/dgl/Window.mm.opengl.o
  50. # else
  51. # OBJS_opengl += ../build/dgl/Window.cpp.opengl.o
  52. # endif
  53. # ---------------------------------------------------------------------------------------------------------------------
  54. ifeq ($(HAVE_CAIRO),true)
  55. TARGETS += ../build/libdgl-cairo.a
  56. endif
  57. ifeq ($(HAVE_OPENGL),true)
  58. TARGETS += ../build/libdgl-opengl.a
  59. # Compat name, to be removed soon
  60. TARGETS += ../build/libdgl.a
  61. endif
  62. # ---------------------------------------------------------------------------------------------------------------------
  63. all: $(TARGETS)
  64. # ---------------------------------------------------------------------------------------------------------------------
  65. ../build/libdgl-cairo.a: $(OBJS_cairo)
  66. -@mkdir -p ../build
  67. @echo "Creating libdgl-cairo.a"
  68. $(SILENT)rm -f $@
  69. $(SILENT)$(AR) crs $@ $^
  70. ../build/libdgl-opengl.a: $(OBJS_opengl)
  71. -@mkdir -p ../build
  72. @echo "Creating libdgl-opengl.a"
  73. $(SILENT)rm -f $@
  74. $(SILENT)$(AR) crs $@ $^
  75. # Compat name, to be removed soon
  76. ../build/libdgl.a: ../build/libdgl-opengl.a
  77. @echo "Symlinking libdgl.a"
  78. $(SILENT)ln -sf $< $@
  79. # ---------------------------------------------------------------------------------------------------------------------
  80. ../build/dgl/%.c.o: src/%.c
  81. -@mkdir -p ../build/dgl
  82. @echo "Compiling $<"
  83. $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
  84. ../build/dgl/%.cpp.o: src/%.cpp
  85. -@mkdir -p ../build/dgl
  86. @echo "Compiling $<"
  87. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  88. # ---------------------------------------------------------------------------------------------------------------------
  89. ../build/dgl/%.cpp.cairo.o: src/%.cpp
  90. -@mkdir -p ../build/dgl
  91. @echo "Compiling $< (Cairo variant)"
  92. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  93. ../build/dgl/Window.cpp.cairo.o: src/Window.cpp src/sofd/* src/pugl-upstream/*
  94. -@mkdir -p ../build/dgl
  95. @echo "Compiling $< (Cairo variant)"
  96. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
  97. ../build/dgl/Window.mm.cairo.o: src/Window.cpp src/sofd/* src/pugl-upstream/*
  98. -@mkdir -p ../build/dgl
  99. @echo "Compiling $< (Cairo variant)"
  100. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -ObjC++ -c -o $@
  101. # ---------------------------------------------------------------------------------------------------------------------
  102. ../build/dgl/%.cpp.opengl.o: src/%.cpp
  103. -@mkdir -p ../build/dgl
  104. @echo "Compiling $< (OpenGL variant)"
  105. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  106. ../build/dgl/Window.cpp.opengl.o: src/Window.cpp src/sofd/* src/pugl-upstream/*
  107. -@mkdir -p ../build/dgl
  108. @echo "Compiling $< (OpenGL variant)"
  109. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
  110. ../build/dgl/Window.mm.opengl.o: src/Window.cpp src/sofd/* src/pugl-upstream/*
  111. -@mkdir -p ../build/dgl
  112. @echo "Compiling $< (OpenGL variant)"
  113. $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -ObjC++ -c -o $@
  114. # ---------------------------------------------------------------------------------------------------------------------
  115. clean:
  116. rm -rf ../build/dgl ../build/libdgl*.*
  117. debug:
  118. $(MAKE) DEBUG=true
  119. # ---------------------------------------------------------------------------------------------------------------------
  120. -include $(OBJS_common:%.o=%.d)
  121. -include $(OBJS_cairo:%.o=%.d)
  122. -include $(OBJS_opengl:%.o=%.d)
  123. # ---------------------------------------------------------------------------------------------------------------------