+ifneq ($(CEF_DIR),)
+CEF_PREBUILT_LIBS=libcef.so
+CEF_RESOURCES = natives_blob.bin snapshot_blob.bin v8_context_snapshot.bin
+CEF_RESOURCES += cef.pak cef_100_percent.pak cef_200_percent.pak cef_extensions.pak devtools_resources.pak
+CEF_RESOURCES += libEGL.so libGLESv2.so swiftshader/libEGL.so swiftshader/libGLESv2.so
+CEF_RESOURCES += locales/en-US.pak locales/en-US.pak.info
+ifneq ($(CEF_NO_ICUDTL),yes)
+CEF_RESOURCES += icudtl.dat
+endif
+endif
+
+all: nageru kaeru benchmark_audio_mixer $(CEF_PREBUILT_LIBS) $(CEF_RESOURCES)
+
+nageru: $(OBJS) $(CEF_PREBUILT_LIBS)
+ $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) $(CEF_LIBS)
+kaeru: $(KAERU_OBJS)
+ $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS)
+benchmark_audio_mixer: $(BM_OBJS)
+ $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS)
+
+ifneq ($(CEF_DIR),)
+# A lot of these unfortunately have to be in the same directory as the binary;
+# some can be given paths, but not all.
+libcef.so: $(CEF_LIB_DIR)/libcef.so
+ $(CEF_CP) $< $@
+libEGL.so: $(CEF_LIB_DIR)/libEGL.so
+ $(CEF_CP) $< $@
+libGLESv2.so: $(CEF_LIB_DIR)/libGLESv2.so
+ $(CEF_CP) $< $@
+swiftshader/:
+ mkdir swiftshader/
+swiftshader/libEGL.so: | swiftshader/ $(CEF_LIB_DIR)/swiftshader/libEGL.so
+ $(CEF_CP) $(CEF_LIB_DIR)/swiftshader/libEGL.so $@
+swiftshader/libGLESv2.so: | swiftshader/ $(CEF_LIB_DIR)/swiftshader/libGLESv2.so
+ $(CEF_CP) $(CEF_LIB_DIR)/swiftshader/libGLESv2.so $@
+locales/:
+ mkdir locales/
+locales/en-US.pak: | locales/ $(CEF_RESOURCE_DIR)/locales/en-US.pak
+ $(CEF_CP) $(CEF_RESOURCE_DIR)/locales/en-US.pak $@
+locales/en-US.pak.info: | locales/ $(CEF_RESOURCE_DIR)/locales/en-US.pak.info
+ $(CEF_CP) $(CEF_RESOURCE_DIR)/locales/en-US.pak.info $@
+icudtl.dat: $(CEF_RESOURCE_DIR)/icudtl.dat
+ $(CEF_CP) $< $@
+%.bin: $(CEF_LIB_DIR)/%.bin
+ $(CEF_CP) $< $@
+%.pak: $(CEF_RESOURCE_DIR)/%.pak
+ $(CEF_CP) $< $@
+endif
+
+# Extra dependencies that need to be generated.
+aboutdialog.o: ui_aboutdialog.h
+analyzer.o: ui_analyzer.h
+alsa_pool.o: state.pb.h
+audio_mixer.o: state.pb.h
+input_mapping.o: state.pb.h
+input_mapping_dialog.o: ui_input_mapping.h
+mainwindow.o: ui_mainwindow.h ui_display.h ui_audio_miniview.h ui_audio_expanded_view.h ui_midi_mapping.h
+mainwindow.o: midi_mapping.pb.h
+midi_mapper.o: midi_mapping.pb.h
+midi_mapping_dialog.o: ui_midi_mapping.h midi_mapping.pb.h
+mixer.o: json.pb.h