diff options
author | Brendan Taylor <whateley@gmail.com> | 2010-12-28 11:15:05 -0700 |
---|---|---|
committer | Brendan Taylor <whateley@gmail.com> | 2010-12-28 11:15:05 -0700 |
commit | 99252a853e9dd9e0e706d6793e836fb85f65ab5a (patch) | |
tree | 067d31abeca472bf223636faefbf8d9a771ca0d4 | |
parent | 824e0c85172825af6f61e9d7ae492db266d1e068 (diff) | |
parent | f18f3318d8a62656ccfef8f983e1629c2ab1c986 (diff) |
Merge branch 'cleanup-Makefile' into experimental
-rw-r--r-- | Makefile | 76 | ||||
-rw-r--r-- | docs/INSTALL | 1 | ||||
-rw-r--r-- | src/callbacks.c | 11 | ||||
-rw-r--r-- | src/uzbl-core.c | 34 | ||||
-rw-r--r-- | src/uzbl-core.h | 3 | ||||
-rw-r--r-- | tests/Makefile | 38 |
6 files changed, 110 insertions, 53 deletions
@@ -1,50 +1,71 @@ # first entries are for gnu make, 2nd for BSD make. see http://lists.uzbl.org/pipermail/uzbl-dev-uzbl.org/2009-July/000177.html -CFLAGS:=-std=c99 $(shell pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0 glib-2.0) -ggdb -Wall -W -DARCH="\"$(shell uname -m)\"" -lgthread-2.0 -DCOMMIT="\"$(shell ./misc/hash.sh)\"" $(CPPFLAGS) -fPIC -W -Wall -Wextra -pedantic -CFLAGS!=echo -std=c99 `pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0 glib-2.0` -ggdb -Wall -W -DARCH='"\""'`uname -m`'"\""' -lgthread-2.0 -DCOMMIT='"\""'`./misc/hash.sh`'"\""' $(CPPFLAGS) -fPIC -W -Wall -Wextra -pedantic +# packagers, set DESTDIR to your "package directory" and PREFIX to the prefix you want to have on the end-user system +# end-users who build from source: don't care about DESTDIR, update PREFIX if you want to +# RUN_PREFIX : what the prefix is when the software is run. usually the same as PREFIX +PREFIX?=/usr/local +INSTALLDIR?=$(DESTDIR)$(PREFIX) +DOCDIR?=$(INSTALLDIR)/share/uzbl/docs +RUN_PREFIX?=$(PREFIX) + +# gtk2 +REQ_PKGS = gtk+-2.0 webkit-1.0 +CPPFLAGS = + +# gtk3 +#REQ_PKGS = gtk+-3.0 webkitgtk-3.0 +#CPPFLAGS = -DGTK3 + +# --- configuration ends here --- + +REQ_PKGS += libsoup-2.4 gthread-2.0 glib-2.0 + +ARCH:=$(shell uname -m) +ARCH!=echo `uname -m` + +COMMIT_HASH:=$(shell ./misc/hash.sh) +COMMIT_HASH!=echo `./misc/hash.sh` -UZBL_LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0 x11) -pthread $(LDFLAGS) -UZBL_LDFLAGS!=echo `pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0 x11` -pthread $(LDFLAGS) +CPPFLAGS += -DARCH=\"$(ARCH)\" -DCOMMIT=\"$(COMMIT_HASH)\" + +PKG_CFLAGS:=$(shell pkg-config --cflags $(REQ_PKGS)) +PKG_CFLAGS!=echo pkg-config --cflags $(REQ_PKGS) + +LDLIBS:=$(shell pkg-config --libs $(REQ_PKGS) x11) +LDLIBS!=echo pkg-config --libs $(REQ_PKGS) x11 + +CFLAGS += -std=c99 $(PKG_CFLAGS) -ggdb -W -Wall -Wextra -pedantic -pthread SRC = $(wildcard src/*.c) HEAD = $(wildcard src/*.h) -OBJ = $(foreach obj, $(SRC:.c=.o), $(notdir $(obj))) +OBJ = $(foreach obj, $(SRC:.c=.o), $(notdir $(obj))) +LOBJ = $(foreach obj, $(SRC:.c=.lo), $(notdir $(obj))) all: uzbl-browser uzbl-cookie-manager VPATH:=src -.c.o: - @echo -e "${CC} -c ${CFLAGS} $<" - @${CC} -c ${CFLAGS} $< - ${OBJ}: ${HEAD} uzbl-core: ${OBJ} - @echo -e "\n${CC} -o $@ ${OBJ} ${UZBL_LDFLAGS}" - @${CC} -o $@ ${OBJ} ${UZBL_LDFLAGS} -uzbl-cookie-manager: examples/uzbl-cookie-manager.o src/util.o - @echo -e "\n${CC} -o $@ uzbl-cookie-manager.o util.o ${LDFLAGS} ${shell pkg-config --libs glib-2.0 libsoup-2.4}" - @${CC} -o $@ uzbl-cookie-manager.o util.o ${LDFLAGS} $(shell pkg-config --libs glib-2.0 libsoup-2.4) +uzbl-cookie-manager: examples/uzbl-cookie-manager.o util.o + @echo -e "\n${CC} -o $@ examples/uzbl-cookie-manager.o util.o ${shell pkg-config --libs glib-2.0 libsoup-2.4}" + @${CC} -o $@ examples/uzbl-cookie-manager.o util.o $(shell pkg-config --libs glib-2.0 libsoup-2.4) uzbl-browser: uzbl-core uzbl-cookie-manager -# packagers, set DESTDIR to your "package directory" and PREFIX to the prefix you want to have on the end-user system -# end-users who build from source: don't care about DESTDIR, update PREFIX if you want to -# RUN_PREFIX : what the prefix is when the software is run. usually the same as PREFIX -PREFIX?=/usr/local -INSTALLDIR?=$(DESTDIR)$(PREFIX) -DOCDIR?=$(INSTALLDIR)/share/uzbl/docs -RUN_PREFIX?=$(PREFIX) - # the 'tests' target can never be up to date .PHONY: tests force: +# this is here because the .so needs to be compiled with -fPIC on x86_64 +${LOBJ}: ${SRC} ${HEAD} + $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c src/$(@:.lo=.c) -o $@ + # When compiling unit tests, compile uzbl as a library first -tests: ${OBJ} force - $(CC) -shared -Wl ${OBJ} -o ./tests/libuzbl-core.so +tests: ${LOBJ} force + $(CC) -shared -Wl ${LOBJ} -o ./tests/libuzbl-core.so cd ./tests/; $(MAKE) test-uzbl-core: uzbl-core @@ -90,12 +111,7 @@ test-uzbl-tabbed-sandbox: uzbl-browser clean: rm -f uzbl-core rm -f uzbl-cookie-manager - rm -f uzbl-core.o - rm -f events.o - rm -f callbacks.o - rm -f inspector.o - rm -f cookie-jar.o - rm -f util.o + rm -f *.o *.lo find ./examples/ -name "*.pyc" -delete cd ./tests/; $(MAKE) clean rm -rf ./sandbox/ diff --git a/docs/INSTALL b/docs/INSTALL index accd383..0f6a662 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -13,6 +13,7 @@ You can pull the code from git or get a tagged tarball. [ $ git checkout origin/experimental ] # optional. see below $ make $ sudo make install + If you want to remove uzbl again, you can issue: $ make uninstall diff --git a/src/callbacks.c b/src/callbacks.c index f09dd0d..673979e 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -324,7 +324,8 @@ cmd_scrollbars_visibility() { uzbl.gui.bar_v = gtk_range_get_adjustment (GTK_RANGE (uzbl.gui.scbar_v)); uzbl.gui.bar_h = gtk_range_get_adjustment (GTK_RANGE (uzbl.gui.scbar_h)); } - gtk_widget_set_scroll_adjustments (GTK_WIDGET (uzbl.gui.web_view), uzbl.gui.bar_h, uzbl.gui.bar_v); + + set_webview_scroll_adjustments(); } /* requires webkit >=1.1.14 */ @@ -952,14 +953,14 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { (context & mi->context)) { if(mi->issep) { item = gtk_separator_menu_item_new(); - gtk_menu_append(GTK_MENU(m), item); + gtk_menu_shell_append(GTK_MENU_SHELL(m), item); gtk_widget_show(item); } else { item = gtk_menu_item_new_with_label(mi->name); g_signal_connect(item, "activate", G_CALLBACK(run_menu_command), mi->cmd); - gtk_menu_append(GTK_MENU(m), item); + gtk_menu_shell_append(GTK_MENU_SHELL(m), item); gtk_widget_show(item); } hit++; @@ -970,14 +971,14 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { !hit) { if(mi->issep) { item = gtk_separator_menu_item_new(); - gtk_menu_append(GTK_MENU(m), item); + gtk_menu_shell_append(GTK_MENU_SHELL(m), item); gtk_widget_show(item); } else { item = gtk_menu_item_new_with_label(mi->name); g_signal_connect(item, "activate", G_CALLBACK(run_menu_command), mi->cmd); - gtk_menu_append(GTK_MENU(m), item); + gtk_menu_shell_append(GTK_MENU_SHELL(m), item); gtk_widget_show(item); } } diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 80b0860..34cf364 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -2275,6 +2275,27 @@ retrieve_geometry() { uzbl.gui.geometry = g_string_free(buf, FALSE); } +void +set_webview_scroll_adjustments() { +#ifdef GTK3 + gtk_scrollable_set_hadjustment (GTK_SCROLLABLE(uzbl.gui.web_view), uzbl.gui.bar_h); + gtk_scrollable_set_vadjustment (GTK_SCROLLABLE(uzbl.gui.web_view), uzbl.gui.bar_v); +#else + gtk_widget_set_scroll_adjustments (GTK_WIDGET (uzbl.gui.web_view), + uzbl.gui.bar_h, uzbl.gui.bar_v); +#endif + + g_object_connect((GObject*)uzbl.gui.bar_v, + "signal::value-changed", (GCallback)scroll_vert_cb, NULL, + "signal::changed", (GCallback)scroll_vert_cb, NULL, + NULL); + + g_object_connect((GObject*)uzbl.gui.bar_h, + "signal::value-changed", (GCallback)scroll_horiz_cb, NULL, + "signal::changed", (GCallback)scroll_horiz_cb, NULL, + NULL); +} + /* set up gtk, gobject, variable defaults and other things that tests and other * external applications need to do anyhow */ void @@ -2409,24 +2430,15 @@ main (int argc, char* argv[]) { uzbl.gui.main_window = create_window (); gtk_container_add (GTK_CONTAINER (uzbl.gui.main_window), uzbl.gui.vbox); gtk_widget_show_all (uzbl.gui.main_window); - uzbl.xwin = GDK_WINDOW_XID (GTK_WIDGET (uzbl.gui.main_window)->window); + uzbl.xwin = GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (uzbl.gui.main_window))); } uzbl.gui.scbar_v = (GtkScrollbar*) gtk_vscrollbar_new (NULL); uzbl.gui.bar_v = gtk_range_get_adjustment((GtkRange*) uzbl.gui.scbar_v); uzbl.gui.scbar_h = (GtkScrollbar*) gtk_hscrollbar_new (NULL); uzbl.gui.bar_h = gtk_range_get_adjustment((GtkRange*) uzbl.gui.scbar_h); - gtk_widget_set_scroll_adjustments ((GtkWidget*) uzbl.gui.web_view, uzbl.gui.bar_h, uzbl.gui.bar_v); - g_object_connect((GObject*)uzbl.gui.bar_v, - "signal::value-changed", (GCallback)scroll_vert_cb, NULL, - "signal::changed", (GCallback)scroll_vert_cb, NULL, - NULL); - - g_object_connect((GObject*)uzbl.gui.bar_h, - "signal::value-changed", (GCallback)scroll_horiz_cb, NULL, - "signal::changed", (GCallback)scroll_horiz_cb, NULL, - NULL); + set_webview_scroll_adjustments(); gchar *xwin = g_strdup_printf("%d", (int)uzbl.xwin); g_setenv("UZBL_XID", xwin, TRUE); diff --git a/src/uzbl-core.h b/src/uzbl-core.h index 98ae342..097fbfc 100644 --- a/src/uzbl-core.h +++ b/src/uzbl-core.h @@ -398,6 +398,9 @@ void retrieve_geometry(); void +set_webview_scroll_adjustments(); + +void event(WebKitWebView *page, GArray *argv, GString *result); void diff --git a/tests/Makefile b/tests/Makefile index 3f63adf..bfe74c5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,17 +1,41 @@ -CFLAGS:=-std=c99 -I$(shell pwd)/../ -L$(shell pwd) -luzbl-core $(shell pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0) -ggdb -Wall -W -DARCH="\"$(shell uname -m)\"" -lgthread-2.0 -DG_ERRORCHECK_MUTEXES -DCOMMIT="\"$(shell git log | head -n1 | sed "s/.* //")\"" $(CPPFLAGS) -CFLAGS!=echo -std=c99 `pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0` -ggdb -Wall -W -DARCH='"\""'`uname -m`'"\""' -lgthread-2.0 -DG_ERRORCHECK_MUTEXES -DCOMMIT='"\""'`git log | head -n1 | sed "s/.* //"`'"\""' $(CPPFLAGS) +# gtk2 +REQ_PKGS = gtk+-2.0 webkit-1.0 +CPPFLAGS = -DERRORCHECK_MUTEXES -I ../ -LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0) -pthread $(LDFLAGS) -LDFLAGS!=echo `pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0` -pthread $(LDFLAGS) +# gtk3 +#REQ_PKGS = gtk+-3.0 webkitgtk-3.0 +#CPPFLAGS = -DERRORCHECK_MUTEXES -DGTK3 -I ../ -GTESTER:=gtester -GTESTER_REPORT:=gtester-report +# --- configuration ends here --- -TEST_PROGS:=test-expand test-command +REQ_PKGS += libsoup-2.4 gthread-2.0 glib-2.0 + +ARCH:=$(shell uname -m) +ARCH!=echo `uname -m` + +COMMIT_HASH:=$(shell cd .. && ./misc/hash.sh) +COMMIT_HASH!=echo `cd .. && ./misc/hash.sh` + +CPPFLAGS += -DARCH=\"$(ARCH)\" -DCOMMIT=\"$(COMMIT_HASH)\" + +PKG_CFLAGS:=$(shell pkg-config --cflags $(REQ_PKGS)) +PKG_CFLAGS!=echo pkg-config --cflags $(REQ_PKGS) + +LDLIBS:=$(shell pkg-config --libs $(REQ_PKGS) x11) +LDLIBS!=echo pkg-config --libs $(REQ_PKGS) x11 + +CFLAGS += -std=c99 $(PKG_CFLAGS) -ggdb -fPIC -W -Wall -Wextra -pedantic -pthread + +GTESTER = gtester +GTESTER_REPORT = gtester-report + +TEST_PROGS = test-expand test-command all: $(TEST_PROGS) LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):." $(GTESTER) --verbose $(TEST_PROGS) +${TEST_PROGS}: libuzbl-core.so + clean: rm -f $(TEST_PROGS) rm -f libuzbl-core.so |