-LIBS := gtk+-2.0 webkit-1.0
-ARCH := $(shell uname -m)
-COMMIT := $(shell git log | head -n1 | sed "s/.* //")
-DEBUG := -ggdb -Wall -W -DG_ERRORCHECK_MUTEXES
+# 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 := $(shell --cflags $(LIBS)) $(DEBUG) -DARCH="$(ARCH)" -DCOMMIT="\"$(COMMIT)\""
-LDFLAGS := $(shell --libs $(LIBS))
+CFLAGS:=-std=c99 $(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) -fPIC -W -Wall -Wextra -pedantic -ggdb3
+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) -fPIC -W -Wall -Wextra -pedantic -ggdb3
-PREFIX ?= /usr/local
-BINDIR ?= $(PREFIX)/bin
-DATADIR ?= $(PREFIX)/share
-UZBLDATA?= $(DATADIR)/uzbl
-DOCSDIR ?= $(UZBLDATA)/docs
-EXMPLSDIR ?= $(UZBLDATA)/examples
+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)
all: uzbl uzblctrl
-uzbl: uzbl.c uzbl.h config.h
+PREFIX?=$(DESTDIR)/usr
-%: %.c
- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) -o $@ $<
+# When compiling unit tests, compile uzbl as a library first
+tests: uzbl.o
+ $(CC) -DUZBL_LIBRARY -shared -Wl uzbl.o -o ./tests/libuzbl.so
+ cd ./tests/; $(MAKE)
test: uzbl
- ./uzbl --uri http://www.uzbl.org
+ ./uzbl --uri http://www.uzbl.org --verbose
+
+test-dev: uzbl
+ XDG_DATA_HOME=./examples/data XDG_CONFIG_HOME=./examples/config ./uzbl --uri http://www.uzbl.org --verbose
+
+test-share: uzbl
+ XDG_DATA_HOME=/usr/share/uzbl/examples/data XDG_CONFIG_HOME=/usr/share/uzbl/examples/config ./uzbl --uri http://www.uzbl.org --verbose
-test-config: uzbl
- ./uzbl --uri http://www.uzbl.org < examples/configs/sampleconfig-dev
-test-config-real: uzbl
- ./uzbl --uri http://www.uzbl.org < $(UZBLDATA)/examples/configs/sampleconfig
-
clean:
rm -f uzbl
rm -f uzblctrl
+ rm -f uzbl.o
+ cd ./tests/; $(MAKE) clean
install:
- install -d $(DESTDIR)$(BINDIR)
- install -d $(DESTDIR)$(DOCSDIR)
- install -d $(DESTDIR)$(EXMPLSDIR)
- install -D -m755 uzbl $(DESTDIR)$(BINDIR)/uzbl
- install -D -m755 uzblctrl $(DESTDIR)$(BINDIR)/uzblctrl
- cp -ax docs/* $(DESTDIR)$(DOCSDIR)
- cp -ax config.h $(DESTDIR)$(DOCSDIR)
- cp -ax examples/* $(DESTDIR)$(EXMPLSDIR)
- install -D -m644 AUTHORS $(DESTDIR)$(DOCSDIR)
- install -D -m644 README $(DESTDIR)$(DOCSDIR)
+ install -d $(PREFIX)/bin
+ install -d $(PREFIX)/share/uzbl/docs
+ install -d $(PREFIX)/share/uzbl/examples
+ install -m755 uzbl $(PREFIX)/bin/uzbl
+ install -m755 uzblctrl $(PREFIX)/bin/uzblctrl
+ cp -rp docs $(PREFIX)/share/uzbl/
+ cp -rp config.h $(PREFIX)/share/uzbl/docs/
+ cp -rp examples $(PREFIX)/share/uzbl/
+ install -m644 AUTHORS $(PREFIX)/share/uzbl/docs
+ install -m644 README $(PREFIX)/share/uzbl/docs
+
uninstall:
- rm -rf $(DESTDIR)$(BINDIR)/uzbl
- rm -rf $(DESTDIR)$(BINDIR)/uzblctrl
- rm -rf $(DESTDIR)$(UZBLDATA)
+ rm -rf $(PREFIX)/bin/uzbl
+ rm -rf $(PREFIX)/bin/uzblctrl
+ rm -rf $(PREFIX)/share/uzbl