DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

Makefile (6096B)


      1 #!/usr/bin/make -f
      2 # Makefile for DGL #
      3 # ---------------- #
      4 # Created by falkTX
      5 #
      6 
      7 include ../Makefile.base.mk
      8 
      9 # ---------------------------------------------------------------------------------------------------------------------
     10 
     11 BUILD_C_FLAGS   += $(DGL_FLAGS) -I..
     12 BUILD_CXX_FLAGS += $(DGL_FLAGS) -I.. -I../dgl/src/pugl-upstream/include -DDONT_SET_USING_DGL_NAMESPACE
     13 LINK_FLAGS      += -lpthread
     14 
     15 # TODO fix within pugl
     16 BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers
     17 
     18 ifeq ($(MACOS),true)
     19 BUILD_CXX_FLAGS += -ObjC++ -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations
     20 endif
     21 
     22 # ---------------------------------------------------------------------------------------------------------------------
     23 
     24 MANUAL_TESTS  =
     25 UNIT_TESTS    = Color Point
     26 
     27 ifeq ($(HAVE_CAIRO),true)
     28 MANUAL_TESTS += Demo.cairo
     29 endif
     30 
     31 ifeq ($(HAVE_OPENGL),true)
     32 MANUAL_TESTS += Demo.opengl
     33 MANUAL_TESTS += FileBrowserDialog
     34 MANUAL_TESTS += NanoImage
     35 MANUAL_TESTS += NanoSubWidgets
     36 endif
     37 
     38 ifneq ($(WASM),true)
     39 UNIT_TESTS   += Application
     40 ifeq ($(HAVE_CAIRO),true)
     41 UNIT_TESTS   += Window.cairo
     42 endif
     43 ifeq ($(HAVE_OPENGL),true)
     44 UNIT_TESTS   += Window.opengl
     45 endif
     46 ifeq ($(HAVE_STUB),true)
     47 UNIT_TESTS   += Window.stub
     48 endif
     49 ifeq ($(HAVE_VULKAN),true)
     50 UNIT_TESTS   += Window.vulkan
     51 endif
     52 endif
     53 
     54 MANUAL_TARGETS = $(MANUAL_TESTS:%=../build/tests/%$(APP_EXT))
     55 UNIT_TARGET    = $(UNIT_TESTS:%=../build/tests/%$(APP_EXT))
     56 
     57 ALL_OBJS  = $(MANUAL_TESTS:%=../build/tests/%.cpp.o)
     58 ALL_OBJS += $(UNIT_TESTS:%=../build/tests/%.cpp.o)
     59 
     60 # ---------------------------------------------------------------------------------------------------------------------
     61 
     62 all: $(MANUAL_TARGETS) $(UNIT_TARGET)
     63 
     64 # ---------------------------------------------------------------------------------------------------------------------
     65 
     66 Demo.opengl: ../build/tests/Demo.opengl$(APP_EXT)
     67 FileBrowserDialog: ../build/tests/FileBrowserDialog$(APP_EXT)
     68 NanoImage: ../build/tests/NanoImage$(APP_EXT)
     69 NanoSubWidgets: ../build/tests/NanoSubWidgets$(APP_EXT)
     70 
     71 # ---------------------------------------------------------------------------------------------------------------------
     72 
     73 define RUN_TEST
     74 
     75 	${1}
     76 endef
     77 
     78 # 	valgrind --leak-check=full $@
     79 
     80 run: $(UNIT_TARGET)
     81 	$(foreach TEST,$^,$(call RUN_TEST,$(TEST)))
     82 
     83 # ---------------------------------------------------------------------------------------------------------------------
     84 
     85 clean:
     86 	rm -rf ../build/tests
     87 
     88 # ---------------------------------------------------------------------------------------------------------------------
     89 # building steps
     90 
     91 ../build/tests/%.c.o: %.c
     92 	-@mkdir -p ../build/tests
     93 	@echo "Compiling $<"
     94 	$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
     95 
     96 ../build/tests/%.cpp.o: %.cpp
     97 	-@mkdir -p ../build/tests
     98 	@echo "Compiling $<"
     99 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
    100 
    101 ../build/tests/%.cpp.cairo.o: %.cpp
    102 	-@mkdir -p ../build/tests
    103 	@echo "Compiling $< (Cairo)"
    104 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
    105 
    106 ../build/tests/%.cpp.opengl.o: %.cpp
    107 	-@mkdir -p ../build/tests
    108 	@echo "Compiling $< (OpenGL)"
    109 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
    110 
    111 ../build/tests/%.cpp.stub.o: %.cpp
    112 	-@mkdir -p ../build/tests
    113 	@echo "Compiling $< (Stub)"
    114 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
    115 
    116 ../build/tests/%.cpp.vulkan.o: %.cpp
    117 	-@mkdir -p ../build/tests
    118 	@echo "Compiling $< (Vulkan)"
    119 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_VULKAN -c -o $@
    120 
    121 # ---------------------------------------------------------------------------------------------------------------------
    122 # linking steps
    123 
    124 ../build/tests/%$(APP_EXT): ../build/tests/%.cpp.o
    125 	@echo "Linking $*"
    126 	$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
    127 
    128 ../build/tests/%.cairo$(APP_EXT): ../build/tests/%.cpp.cairo.o
    129 	@echo "Linking $*"
    130 	$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
    131 
    132 ../build/tests/%.opengl$(APP_EXT): ../build/tests/%.cpp.opengl.o
    133 	@echo "Linking $*"
    134 	$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
    135 
    136 ../build/tests/%.stub$(APP_EXT): ../build/tests/%.cpp.stub.o
    137 	@echo "Linking $*"
    138 	$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
    139 
    140 ../build/tests/%.vulkan$(APP_EXT): ../build/tests/%.cpp.vulkan.o
    141 	@echo "Linking $*"
    142 	$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
    143 
    144 # ---------------------------------------------------------------------------------------------------------------------
    145 # linking steps (special, links against DGL static lib)
    146 
    147 ../build/tests/Demo.cairo$(APP_EXT): ../build/tests/Demo.cpp.cairo.o ../build/libdgl-cairo.a
    148 	@echo "Linking Demo (Cairo)"
    149 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
    150 
    151 ../build/tests/Demo.opengl$(APP_EXT): ../build/tests/Demo.cpp.opengl.o ../build/libdgl-opengl.a
    152 	@echo "Linking Demo (OpenGL)"
    153 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
    154 
    155 ../build/tests/Demo.vulkan$(APP_EXT): ../build/tests/Demo.cpp.vulkan.o ../build/libdgl-vulkan.a
    156 	@echo "Linking Demo (OpenGL)"
    157 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
    158 
    159 ../build/tests/FileBrowserDialog$(APP_EXT): ../build/tests/FileBrowserDialog.cpp.o ../build/libdgl-opengl.a
    160 	@echo "Linking FileBrowserDialog (OpenGL)"
    161 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
    162 
    163 ../build/tests/NanoImage$(APP_EXT): ../build/tests/NanoImage.cpp.o ../build/libdgl-opengl.a
    164 	@echo "Linking NanoImage (OpenGL)"
    165 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
    166 
    167 ../build/tests/NanoSubWidgets$(APP_EXT): ../build/tests/NanoSubWidgets.cpp.o ../build/libdgl-opengl.a
    168 	@echo "Linking NanoSubWidgets (OpenGL)"
    169 	$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
    170 
    171 # ---------------------------------------------------------------------------------------------------------------------
    172 
    173 .PHONY: Demo.opengl FileBrowserDialog NanoImage NanoSubWidgets
    174 
    175 -include $(ALL_OBJS:%.o=%.d)
    176 
    177 # ---------------------------------------------------------------------------------------------------------------------