prefix := /usr/local moz_include_dir := \ $(shell pkg-config --variable=prefix mozilla-gtkmozembed)/include/mozilla moz_lib_dir := \ $(shell pkg-config --variable=prefix mozilla-gtkmozembed)/lib/mozilla CFLAGS := -Wall CPPFLAGS := -D_REENTRANT CXXFLAGS := -Wall LDFLAGS := -lpthread $(shell pkg-config --libs gtkmm-2.0 mozilla-gtkmozembed) \ -Wl,-rpath -Wl,$(moz_lib_dir) ifdef NDEBUG CPPFLAGS += -DNDEBUG else CFLAGS += -g CXXFLAGS += -g LDFLAGS += -g endif cxxsources := \ auto_proc.cpp browserwidget.cpp childiterator.cpp framebuffer.cpp \ linkiterator.cpp pixbufs.cpp stylesheets.cpp webdvd.cpp xpcom_support.cpp csources := jquant2.c webdvd : $(cxxsources:.cpp=.o) $(csources:.c=.o) $(CXX) $(LDFLAGS) -o $@ $^ clean : rm -f webdvd *.d *.o *~ \#* *.orig *.rej install : mkdir -p -m 755 $(prefix)/bin $(prefix)/lib/webdvd install -m 755 -s webdvd $(prefix)/bin install -m 644 webdvd.css $(prefix)/lib/webdvd .PHONY : clean install browserwidget.% : CPPFLAGS += -DMOZ_LIB_DIR='"$(moz_lib_dir)"' webdvd.% \ : CPPFLAGS += -DWEBDVD_LIB_DIR='"$(prefix)/lib/webdvd"' browserwidget.% pixbufs.% webdvd.% \ : CPPFLAGS += $(shell pkg-config --cflags gtkmm-2.0) browserwidget.% childiterator.o linkiterator.% stylesheets.% webdvd.% \ xpcom_support.% \ : CPPFLAGS += $(shell pkg-config --cflags mozilla-gtkmozembed) # These dig a bit deeper into Mozilla linkiterator.% stylesheets.% webdvd.% \ : CPPFLAGS += $(addprefix -I$(moz_include_dir)/, \ content docshell dom gfx layout necko webshell widget) %.d : %.cpp $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MM -MF $@ $< %.d : %.c $(CC) $(CFLAGS) $(CPPFLAGS) -MM -MF $@ $< ifneq ($(MAKECMDGOALS),clean) include $(cxxsources:.cpp=.d) $(csources:.c=.d) endif # Temporary rule for testing output files. %.vob : %_back.png %.spumux %_links.png pngtopnm $*_back.png \ | ppmtoy4m -v0 -n 1 -F 25:1 -A 59:54 -I p -S 420_mpeg2 \ | mpeg2enc -v0 -f 8 -a 2 -o /dev/stdout \ | mplex -v0 -f 8 -o /dev/stdout /dev/stdin \ | spumux -v0 -m dvd $*.spumux > $@