X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=Makefile;h=3226da67427bbb747d1f3c6e9a9acc61e2e49d4f;hb=5586e3330c5c904a921dd4a9fb55cfa27a2cab9f;hp=81566a7d843db5cb5e476dd2b3e47044cca68244;hpb=194f5f8a53d16a8a07c61df2311a13b3cd3994bf;p=videolink.git diff --git a/Makefile b/Makefile index 81566a7..3226da6 100644 --- a/Makefile +++ b/Makefile @@ -7,27 +7,26 @@ mandir := $(sharedir)/man # Prefer XULRunner to the old Mozilla ifeq ($(shell pkg-config --exists xulrunner-gtkmozembed && echo yes),yes) - mozilla := xulrunner + moz_name := xulrunner + moz_pc := xulrunner-gtkmozembed else - mozilla := mozilla + moz_name := mozilla + moz_pc := mozilla-gtkmozembed endif -moz_prefix := $(shell pkg-config --variable=prefix $(mozilla)-gtkmozembed) -moz_include_dir := $(moz_prefix)/include/$(mozilla) -moz_lib_dir := $(moz_prefix)/lib/$(mozilla) +moz_prefix := $(shell pkg-config --variable=prefix $(moz_pc)) +moz_include_dir := $(shell pkg-config --variable=includedir $(moz_pc)) +moz_lib_dir := $(moz_prefix)/lib/$(moz_name) -moz_version := \ - $(shell sed 's/\#define MOZILLA_VERSION "\(.*\)"/\1/; t; d' \ - < $(moz_include_dir)/mozilla-config.h) +moz_version := $(shell pkg-config --modversion $(moz_pc)) moz_version_major := $(word 1,$(subst ., ,$(moz_version))) moz_version_minor := $(word 2,$(subst ., ,$(moz_version))) -moz_version_patchlevel := $(word 3,$(subst ., ,$(moz_version))) CFLAGS := -ansi -Wall -Wunused -Wno-unused-parameter CPPFLAGS := -D_REENTRANT CXXFLAGS := -ansi -Wall -Wunused -LDFLAGS := -lpthread \ - $(shell pkg-config --libs gtkmm-2.0 $(mozilla)-gtkmozembed) \ +LDFLAGS := -lpthread \ + $(shell pkg-config --libs gtkmm-2.4 $(moz_pc)) \ -Wl,-rpath -Wl,$(moz_lib_dir) -lexpat ifdef NDEBUG @@ -41,12 +40,21 @@ endif cxxsources := \ auto_proc.cpp browser_widget.cpp child_iterator.cpp generate_dvd.cpp \ link_iterator.cpp null_prompt_service.cpp pixbufs.cpp style_sheets.cpp \ - temp_file.cpp video.cpp vob_list.cpp videolink.cpp x_frame_buffer.cpp \ - xml_utils.cpp xpcom_support.cpp + temp_file.cpp video.cpp vob_list.cpp videolink.cpp warp_pointer.cpp \ + x_frame_buffer.cpp xml_utils.cpp xpcom_support.cpp csources := jquant2.c +sources_using_gtkmm := \ + browser_widget.cpp generate_dvd.cpp pixbufs.cpp temp_file.cpp \ + vob_list.cpp videolink.cpp warp_pointer.cpp +sources_using_moz := \ + browser_widget.cpp child_iterator.cpp link_iterator.cpp \ + null_prompt_service.cpp style_sheets.cpp videolink.cpp xpcom_support.cpp +sources_using_moz_unstable := \ + link_iterator.cpp null_prompt_service.cpp style_sheets.cpp videolink.cpp + videolink : $(cxxsources:%.cpp=.objs/%.o) $(csources:%.c=.objs/%.o) - $(CXX) $(LDFLAGS) -o $@ $^ + $(CXX) $^ $(LDFLAGS) -o $@ clean : rm -rf .objs @@ -63,7 +71,7 @@ install : gzip -c9 videolink.1 >$(DESTDIR)$(mandir)/man1/videolink.1.gz chmod 644 $(DESTDIR)$(mandir)/man1/videolink.1.gz mkdir -p -m 755 $(DESTDIR)$(sharedir)/videolink - install -m 644 videolink.css $(DESTDIR)$(sharedir)/videolink + install -m 644 *.css $(DESTDIR)$(sharedir)/videolink .PHONY : clean install @@ -72,43 +80,31 @@ install : .objs/videolink.% \ : CPPFLAGS += -DVIDEOLINK_SHARE_DIR='"$(sharedir)/videolink"' -.objs/browser_widget.% .objs/generate_dvd.% .objs/pixbufs.% \ -.objs/temp_file.% .objs/vob_list.% .objs/videolink.% \ - : CPPFLAGS += $(shell pkg-config --cflags gtkmm-2.0) +$(sources_using_gtkmm:%.cpp=.objs/%.o) \ + : CPPFLAGS += $(shell pkg-config --cflags gtkmm-2.4) -.objs/browser_widget.% .objs/child_iterator.% .objs/link_iterator.% \ -.objs/null_prompt_service.% .objs/style_sheets.% .objs/videolink.% \ -.objs/xpcom_support.% \ - : CPPFLAGS += $(shell pkg-config --cflags $(mozilla)-gtkmozembed) +$(sources_using_moz:%.cpp=.objs/%.o) \ + : CPPFLAGS += $(shell pkg-config --cflags $(moz_pc)) # Non-virtual destructors are fine in XPCOM interface classes since # instances are only ever called by the Release function which is virtual. -.objs/browser_widget.% .objs/child_iterator.% .objs/link_iterator.% \ -.objs/null_prompt_service.% .objs/style_sheets.% .objs/videolink.% \ -.objs/xpcom_support.% \ - : CXXFLAGS += -Wno-non-virtual-dtor - -# These dig a bit deeper into Mozilla -.objs/link_iterator.% .objs/null_prompt_service.% .objs/style_sheets.% \ -.objs/videolink.% \ +$(sources_using_moz:%.cpp=.objs/%.o) : CXXFLAGS += -Wno-non-virtual-dtor + +$(sources_using_moz_unstable:%.cpp=.objs/%.o) \ : CPPFLAGS += $(addprefix -I$(moz_include_dir)/, \ - content docshell dom gfx layout locale necko uconv \ - webshell widget) \ + content docshell dom gfx imglib2 layout locale \ + necko uconv webshell widget) \ -DMOZILLA_INTERNAL_API \ -DMOZ_VERSION_MAJOR=$(moz_version_major) \ - -DMOZ_VERSION_MINOR=$(moz_version_minor) \ - -DMOZ_VERSION_PATCHLEVEL=$(moz_version_patchlevel) + -DMOZ_VERSION_MINOR=$(moz_version_minor) -.objs/%.d : %.cpp .objs/.created - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MM -MF $@ $< - -.objs/%.d : %.c .objs/.created - $(CC) $(CFLAGS) $(CPPFLAGS) -MM -MF $@ $< +.objs/%.d : .objs/.created + touch $@ .objs/%.o : %.cpp .objs/.created - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -MD -MF .objs/$*.d -c $< .objs/%.o : %.c .objs/.created - $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -MD -MF .objs/$*.d -c $< %/.created : mkdir -p $*