DPF

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

Makefile (9583B)


      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. -Isrc
     12 BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc -DDONT_SET_USING_DGL_NAMESPACE -Wno-unused-parameter
     13 BUILD_CXX_FLAGS += -Isrc/pugl-upstream/include
     14 LINK_FLAGS      += $(DGL_LIBS)
     15 
     16 ifeq ($(MACOS),true)
     17 BUILD_CXX_FLAGS += -DDISTRHO_MACOS_NAMESPACE_TIME=$(shell date +%s)
     18 BUILD_CXX_FLAGS += -Wno-deprecated-declarations
     19 else
     20 PUGL_EXTRA_FLAGS = -Wno-extra -Wmissing-field-initializers
     21 endif
     22 
     23 # ifneq ($(MACOS_OLD),true)
     24 # needed by sofd right now, fix later
     25 # BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive
     26 # endif
     27 
     28 # ---------------------------------------------------------------------------------------------------------------------
     29 
     30 ifeq ($(MODGUI_BUILD),true)
     31 BUILD_DIR_SUFFIX = -modgui
     32 endif
     33 
     34 BUILD_DIR = ../build$(BUILD_DIR_SUFFIX)
     35 
     36 # ---------------------------------------------------------------------------------------------------------------------
     37 
     38 OBJS_common = \
     39 	$(BUILD_DIR)/dgl/Application.cpp.o \
     40 	$(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \
     41 	$(BUILD_DIR)/dgl/Color.cpp.o \
     42 	$(BUILD_DIR)/dgl/EventHandlers.cpp.o \
     43 	$(BUILD_DIR)/dgl/Geometry.cpp.o \
     44 	$(BUILD_DIR)/dgl/ImageBase.cpp.o \
     45 	$(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \
     46 	$(BUILD_DIR)/dgl/Layout.cpp.o \
     47 	$(BUILD_DIR)/dgl/Resources.cpp.o \
     48 	$(BUILD_DIR)/dgl/SubWidget.cpp.o \
     49 	$(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \
     50 	$(BUILD_DIR)/dgl/TopLevelWidget.cpp.o \
     51 	$(BUILD_DIR)/dgl/TopLevelWidgetPrivateData.cpp.o \
     52 	$(BUILD_DIR)/dgl/Widget.cpp.o \
     53 	$(BUILD_DIR)/dgl/WidgetPrivateData.cpp.o \
     54 	$(BUILD_DIR)/dgl/Window.cpp.o \
     55 	$(BUILD_DIR)/dgl/WindowPrivateData.cpp.o
     56 
     57 # ---------------------------------------------------------------------------------------------------------------------
     58 
     59 OBJS_cairo = $(OBJS_common) \
     60 	$(BUILD_DIR)/dgl/Cairo.cpp.cairo.o
     61 
     62 ifeq ($(MACOS),true)
     63 OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o
     64 else
     65 OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o
     66 endif
     67 
     68 # ---------------------------------------------------------------------------------------------------------------------
     69 
     70 OBJS_opengl = $(OBJS_common) \
     71 	$(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \
     72 	$(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o
     73 
     74 ifeq ($(MACOS),true)
     75 OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o
     76 else
     77 OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o
     78 endif
     79 
     80 # ---------------------------------------------------------------------------------------------------------------------
     81 
     82 OBJS_opengl3 = $(OBJS_common) \
     83 	$(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \
     84 	$(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o
     85 
     86 ifeq ($(MACOS),true)
     87 OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o
     88 else
     89 OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o
     90 endif
     91 
     92 # ---------------------------------------------------------------------------------------------------------------------
     93 
     94 OBJS_stub = $(OBJS_common)
     95 
     96 ifeq ($(MACOS),true)
     97 OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o
     98 else
     99 OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o
    100 endif
    101 
    102 # ---------------------------------------------------------------------------------------------------------------------
    103 
    104 OBJS_vulkan = $(OBJS_common) \
    105 	$(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o
    106 
    107 ifeq ($(MACOS),true)
    108 OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o
    109 else
    110 OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o
    111 endif
    112 
    113 # ---------------------------------------------------------------------------------------------------------------------
    114 
    115 OBJS_web = $(OBJS_common) \
    116 	$(BUILD_DIR)/dgl/Web.cpp.o
    117 
    118 ifeq ($(MACOS),true)
    119 OBJS_web += $(BUILD_DIR)/dgl/pugl.mm.o
    120 else
    121 OBJS_web += $(BUILD_DIR)/dgl/pugl.cpp.o
    122 endif
    123 
    124 # ---------------------------------------------------------------------------------------------------------------------
    125 
    126 ifeq ($(HAVE_CAIRO),true)
    127 TARGETS += $(BUILD_DIR)/libdgl-cairo.a
    128 endif
    129 
    130 ifeq ($(HAVE_OPENGL),true)
    131 TARGETS += $(BUILD_DIR)/libdgl-opengl.a
    132 # Compat name, to be removed soon
    133 TARGETS += $(BUILD_DIR)/libdgl.a
    134 endif
    135 
    136 ifeq ($(HAVE_STUB),true)
    137 TARGETS += $(BUILD_DIR)/libdgl-stub.a
    138 endif
    139 
    140 ifeq ($(HAVE_VULKAN),true)
    141 TARGETS += $(BUILD_DIR)/libdgl-vulkan.a
    142 endif
    143 
    144 # ---------------------------------------------------------------------------------------------------------------------
    145 
    146 all: $(TARGETS)
    147 
    148 cairo:   $(BUILD_DIR)/libdgl-cairo.a
    149 opengl:  $(BUILD_DIR)/libdgl-opengl.a
    150 opengl3: $(BUILD_DIR)/libdgl-opengl3.a
    151 stub:    $(BUILD_DIR)/libdgl-stub.a
    152 vulkan:  $(BUILD_DIR)/libdgl-vulkan.a
    153 web:     $(BUILD_DIR)/libdgl-web.a
    154 
    155 # ---------------------------------------------------------------------------------------------------------------------
    156 
    157 $(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo)
    158 	-@mkdir -p $(BUILD_DIR)
    159 	@echo "Creating libdgl-cairo.a"
    160 	$(SILENT)rm -f $@
    161 	$(SILENT)$(AR) crs $@ $^
    162 
    163 $(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl)
    164 	-@mkdir -p $(BUILD_DIR)
    165 	@echo "Creating libdgl-opengl.a"
    166 	$(SILENT)rm -f $@
    167 	$(SILENT)$(AR) crs $@ $^
    168 
    169 $(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3)
    170 	-@mkdir -p $(BUILD_DIR)
    171 	@echo "Creating libdgl-opengl3.a"
    172 	$(SILENT)rm -f $@
    173 	$(SILENT)$(AR) crs $@ $^
    174 
    175 $(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub)
    176 	-@mkdir -p $(BUILD_DIR)
    177 	@echo "Creating libdgl-stub.a"
    178 	$(SILENT)rm -f $@
    179 	$(SILENT)$(AR) crs $@ $^
    180 
    181 $(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan)
    182 	-@mkdir -p $(BUILD_DIR)
    183 	@echo "Creating libdgl-vulkan.a"
    184 	$(SILENT)rm -f $@
    185 	$(SILENT)$(AR) crs $@ $^
    186 
    187 $(BUILD_DIR)/libdgl-web.a: $(OBJS_web)
    188 	-@mkdir -p $(BUILD_DIR)
    189 	@echo "Creating libdgl-web.a"
    190 	$(SILENT)rm -f $@
    191 	$(SILENT)$(AR) crs $@ $^
    192 
    193 # Compat name, to be removed soon
    194 $(BUILD_DIR)/libdgl.a: $(BUILD_DIR)/libdgl-opengl.a
    195 	@echo "Symlinking libdgl.a"
    196 	$(SILENT)ln -sf $< $@
    197 
    198 # ---------------------------------------------------------------------------------------------------------------------
    199 
    200 $(BUILD_DIR)/dgl/%.c.o: src/%.c
    201 	-@mkdir -p $(BUILD_DIR)/dgl
    202 	@echo "Compiling $<"
    203 	$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
    204 
    205 $(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp
    206 	-@mkdir -p $(BUILD_DIR)/dgl
    207 	@echo "Compiling $<"
    208 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
    209 
    210 $(BUILD_DIR)/dgl/%.mm.o: src/%.mm
    211 	-@mkdir -p $(BUILD_DIR)/dgl
    212 	@echo "Compiling $<"
    213 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@
    214 
    215 # ---------------------------------------------------------------------------------------------------------------------
    216 
    217 $(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp
    218 	-@mkdir -p $(BUILD_DIR)/dgl
    219 	@echo "Compiling $<"
    220 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@
    221 
    222 $(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm
    223 	-@mkdir -p $(BUILD_DIR)/dgl
    224 	@echo "Compiling $<"
    225 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@
    226 
    227 # ---------------------------------------------------------------------------------------------------------------------
    228 
    229 $(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp
    230 	-@mkdir -p $(BUILD_DIR)/dgl
    231 	@echo "Compiling $< (Cairo variant)"
    232 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
    233 
    234 $(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm
    235 	-@mkdir -p $(BUILD_DIR)/dgl
    236 	@echo "Compiling $< (Cairo variant)"
    237 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@
    238 
    239 # ---------------------------------------------------------------------------------------------------------------------
    240 
    241 $(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp
    242 	-@mkdir -p $(BUILD_DIR)/dgl
    243 	@echo "Compiling $< (OpenGL variant)"
    244 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
    245 
    246 $(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm
    247 	-@mkdir -p $(BUILD_DIR)/dgl
    248 	@echo "Compiling $< (OpenGL variant)"
    249 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@
    250 
    251 # ---------------------------------------------------------------------------------------------------------------------
    252 
    253 $(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp
    254 	-@mkdir -p $(BUILD_DIR)/dgl
    255 	@echo "Compiling $< (OpenGL3 variant)"
    256 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@
    257 
    258 $(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm
    259 	-@mkdir -p $(BUILD_DIR)/dgl
    260 	@echo "Compiling $< (OpenGL3 variant)"
    261 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@
    262 
    263 # ---------------------------------------------------------------------------------------------------------------------
    264 
    265 $(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp
    266 	-@mkdir -p $(BUILD_DIR)/dgl
    267 	@echo "Compiling $< (Vulkan variant)"
    268 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@
    269 
    270 $(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm
    271 	-@mkdir -p $(BUILD_DIR)/dgl
    272 	@echo "Compiling $< (Vulkan variant)"
    273 	$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@
    274 
    275 # ---------------------------------------------------------------------------------------------------------------------
    276 
    277 clean:
    278 	rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.*
    279 
    280 debug:
    281 	$(MAKE) DEBUG=true
    282 
    283 # ---------------------------------------------------------------------------------------------------------------------
    284 
    285 -include $(OBJS_common:%.o=%.d)
    286 -include $(OBJS_cairo:%.o=%.d)
    287 -include $(OBJS_opengl:%.o=%.d)
    288 -include $(OBJS_opengl3:%.o=%.d)
    289 -include $(OBJS_stub:%.o=%.d)
    290 -include $(OBJS_vulkan:%.o=%.d)
    291 -include $(OBJS_web:%.o=%.d)
    292 
    293 # ---------------------------------------------------------------------------------------------------------------------