X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Makefile;h=3cf454694a39bd44fd6e773e12f9697e17ac2207;hb=327534a3031a332423411c9599c741f2f81657df;hp=9efe3f92fbdf4a5fbc0ece589fe695b945692e3d;hpb=73b5dbb6054e62cf7d616fc1d414dc2a491d181c;p=nageru diff --git a/Makefile b/Makefile index 9efe3f9..3cf4546 100644 --- a/Makefile +++ b/Makefile @@ -9,11 +9,28 @@ CXXFLAGS += -std=gnu++11 -fPIC $(shell pkg-config --cflags $(PKG_MODULES)) -pthr # Override CEF_DIR on the command line to build with CEF. # E.g.: make CEF_DIR=/home/sesse/cef_binary_3.3282.1734.g8f26fe0_linux64 CEF_DIR= + +# Release or Debug, depending on what CEF version you want to link to. +# Optionally, the special value CEF_BUILD_TYPE=system assumes you can build and link +# to CEF without any special flags, get the remaining libraries (libEGL.so, +# natives_blob.bin, etc.) from $(CEF_LIB), get resources from $(CEF_RESOURCE_DIR), +# and symlink resources instead of copying them in. CEF_BUILD_TYPE=Release ifneq ($(CEF_DIR),) - CEF_LIBS = $(CEF_DIR)/libcef_dll_wrapper/libcef_dll_wrapper.a - CPPFLAGS += -DHAVE_CEF=1 -I$(CEF_DIR) -I$(CEF_DIR)/include - LDFLAGS += -L$(CEF_DIR)/$(CEF_BUILD_TYPE) -Wl,-rpath,\$$ORIGIN + CPPFLAGS += -DHAVE_CEF=1 + ifeq ($(CEF_BUILD_TYPE),system) + EXTRA_CEF_LDFLAGS = + CEF_LIB_DIR = $(CEF_DIR) + CEF_RESOURCE_DIR = /usr/share/cef/Resources + CEF_CP = ln -s + else + CEF_LIBS = $(CEF_DIR)/libcef_dll_wrapper/libcef_dll_wrapper.a + CPPFLAGS += -I$(CEF_DIR) -I$(CEF_DIR)/include + EXTRA_CEF_LDFLAGS = -L$(CEF_DIR)/$(CEF_BUILD_TYPE) -Wl,-rpath,\$$ORIGIN + CEF_LIB_DIR = $(CEF_DIR)/$(CEF_BUILD_TYPE) + CEF_RESOURCE_DIR = $(CEF_DIR)/Resources + CEF_CP = cp -a + endif endif ifeq ($(EMBEDDED_BMUSB),yes) @@ -23,7 +40,11 @@ else endif LDLIBS=$(shell pkg-config --libs $(PKG_MODULES)) -pthread -lva -lva-drm -lva-x11 -lX11 -lavformat -lavcodec -lavutil -lswscale -lavresample -lzita-resampler -lasound -ldl -lqcustomplot ifneq ($(CEF_DIR),) - LDLIBS += -lcef + EXTRA_CEF_LDLIBS = -lcef + ifeq ($(CEF_BUILD_TYPE),system) + # Don't build this ourselves; just link to the system version. + EXTRA_CEF_LDLIBS += -lcef_dll_wrapper + endif endif # Qt objects @@ -76,16 +97,22 @@ BM_OBJS = benchmark_audio_mixer.o $(AUDIO_MIXER_OBJS) flags.o metrics.o moc $< -o $@ ifneq ($(CEF_DIR),) -CEF_RESOURCES=libcef.so icudtl.dat natives_blob.bin snapshot_blob.bin v8_context_snapshot.bin +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 +ifneq ($(CEF_BUILD_TYPE),system) +CEF_RESOURCES += libcef.so +endif endif all: nageru kaeru benchmark_audio_mixer $(CEF_RESOURCES) nageru: $(OBJS) $(CEF_LIBS) - $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) $(CEF_LIBS) + $(CXX) -o $@ $^ $(LDFLAGS) $(EXTRA_CEF_LDFLAGS) $(LDLIBS) $(EXTRA_CEF_LDLIBS) $(CEF_LIBS) kaeru: $(KAERU_OBJS) $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) benchmark_audio_mixer: $(BM_OBJS) @@ -94,30 +121,30 @@ benchmark_audio_mixer: $(BM_OBJS) 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_DIR)/$(CEF_BUILD_TYPE)/libcef.so - cp -a $< $@ -libEGL.so: $(CEF_DIR)/$(CEF_BUILD_TYPE)/libEGL.so - cp -a $< $@ -libGLESv2.so: $(CEF_DIR)/$(CEF_BUILD_TYPE)/libGLESv2.so - cp -a $< $@ +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_DIR)/$(CEF_BUILD_TYPE)/swiftshader/libEGL.so - cp -a $(CEF_DIR)/$(CEF_BUILD_TYPE)/swiftshader/libEGL.so $@ -swiftshader/libGLESv2.so: | swiftshader/ $(CEF_DIR)/$(CEF_BUILD_TYPE)/swiftshader/libGLESv2.so - cp -a $(CEF_DIR)/$(CEF_BUILD_TYPE)/swiftshader/libGLESv2.so $@ +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_DIR)/Resources/locales/en-US.pak - cp -a $(CEF_DIR)/Resources/locales/en-US.pak $@ -locales/en-US.pak.info: | locales/ $(CEF_DIR)/Resources/locales/en-US.pak.info - cp -a $(CEF_DIR)/Resources/locales/en-US.pak.info $@ -icudtl.dat: $(CEF_DIR)/Resources/icudtl.dat - cp -a $< $@ -%.bin: $(CEF_DIR)/$(CEF_BUILD_TYPE)/%.bin - cp -a $< $@ -%.pak: $(CEF_DIR)/Resources/%.pak - cp -a $< $@ +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. @@ -144,7 +171,7 @@ DEPS=$(OBJS:.o=.d) $(BM_OBJS:.o=.d) $(KAERU_OBJS:.o=.d) -include $(DEPS) clean: - $(RM) $(OBJS) $(BM_OBJS) $(KAERU_OBJS) $(DEPS) nageru benchmark_audio_mixer ui_aboutdialog.h ui_analyzer.h ui_mainwindow.h ui_display.h ui_about.h ui_audio_miniview.h ui_audio_expanded_view.h ui_input_mapping.h ui_midi_mapping.h chain-*.frag *.dot *.pb.cc *.pb.h $(OBJS_WITH_MOC:.o=.moc.cpp) ellipsis_label.moc.cpp clickable_label.moc.cpp $(CEF_RESOURCES) + $(RM) $(OBJS) $(BM_OBJS) $(KAERU_OBJS) $(DEPS) nageru kaeru benchmark_audio_mixer ui_aboutdialog.h ui_analyzer.h ui_mainwindow.h ui_display.h ui_about.h ui_audio_miniview.h ui_audio_expanded_view.h ui_input_mapping.h ui_midi_mapping.h chain-*.frag *.dot *.pb.cc *.pb.h $(OBJS_WITH_MOC:.o=.moc.cpp) ellipsis_label.moc.cpp clickable_label.moc.cpp $(CEF_LIBS) $(CEF_RESOURCES) PREFIX=/usr/local install: install-cef @@ -158,10 +185,20 @@ install: install-cef $(INSTALL) -m 644 -o root -g root akai_midimix.midimapping $(DESTDIR)$(PREFIX)/share/nageru/akai_midimix.midimapping ifneq ($(CEF_DIR),) + ifeq ($(CEF_BUILD_TYPE),system) install-cef: for FILE in $(CEF_RESOURCES); do \ + mkdir -p `dirname $(DESTDIR)$(PREFIX)/lib/nageru/$$FILE`; \ + cp -a $$FILE $(DESTDIR)$(PREFIX)/lib/nageru/$$FILE; \ + done + + else +install-cef: + for FILE in $(CEF_LIBS) $(CEF_RESOURCES); do \ $(INSTALL) -D -m 644 -o root -g root $$FILE $(DESTDIR)$(PREFIX)/lib/nageru/$$FILE; \ done + + endif else install-cef: endif