GCC=gcc
-CFLAGS=-ggdb -O1 -pipe
+
+# Normal CFLAGS
+CFLAGS=-ggdb -O1 -pipe -Wshadow -Wall -DDEBUG=1
+LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed
+#CFLAGS=-ggdb -O1 -pipe -ffunction-sections -fdata-sections -DDEBUG=1
+#LDFLAGS=-Wl,--gc-sections -Wl,--print-gc-sections
GOBJ_CFLAGS=`pkg-config --cflags gobject-2.0`
GOBJ_LIBS=`pkg-config --libs gobject-2.0`
-tilda-window: tilda-window.o
- $(GCC) $(CFLAGS) $^ -o $@ $(GOBJ_LIBS)
+ALL_CFLAGS=`pkg-config --cflags gtk+-2.0 vte dbus-glib-1`
+ALL_LIBS=`pkg-config --libs gtk+-2.0 vte dbus-glib-1`
+
+.PHONY: all memcheck clean
+
+all: tilda
+
+tilda: tilda.o tilda-types.o tilda-config.o tilda-controller.o tilda-window.o tilda-terminal.o tomboykeybinder.o eggaccelerators.o
+ $(GCC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(ALL_LIBS)
+
+tilda.o: tilda.c tilda.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-tilda-window.o: tilda-window.c tilda-window.h
- $(GCC) $(CFLAGS) -c -o $@ $< $(GOBJ_CFLAGS)
+tilda-types.o: tilda-types.c tilda-types.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-tilda-terminal: tilda-terminal.o
- $(GCC) $(CFLAGS) $^ -o $@ $(GOBJ_LIBS)
+tilda-config.o: tilda-config.c tilda-config.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-tilda-terminal.o: tilda-terminal.c tilda-terminal.h
- $(GCC) $(CFLAGS) -c -o $@ $< $(GOBJ_CFLAGS)
+tilda-controller.o: tilda-controller.c tilda-controller.h tilda-controller.xml
+ dbus-binding-tool --mode=glib-server --prefix=tilda_controller tilda-controller.xml > tilda-controller-dbus-glue.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-memcheck-tw: tilda-window
- valgrind --tool=memcheck ./tilda-window
+tilda-window.o: tilda-window.c tilda-window.h tilda-window.xml
+ dbus-binding-tool --mode=glib-server --prefix=tilda_window tilda-window.xml > tilda-window-dbus-glue.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-memcheck-tt: tilda-terminal
- valgrind --tool=memcheck ./tilda-terminal
+tilda-terminal.o: tilda-terminal.c tilda-terminal.h tilda-terminal.xml
+ dbus-binding-tool --mode=glib-server --prefix=tilda_terminal tilda-terminal.xml > tilda-terminal-dbus-glue.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
-memcheck: memcheck-tt memcheck-tw
+tomboykeybinder.o: tomboykeybinder.c tomboykeybinder.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
+
+eggaccelerators.o: eggaccelerators.c eggaccelerators.h
+ $(GCC) $(CFLAGS) -c -o $@ $< $(ALL_CFLAGS)
+
+memcheck: tilda
+ # Variables to make GLib work MUCH better in valgrind
+ export G_DEBUG=gc-friendly
+ export G_SLICE=always-malloc
+ valgrind --suppressions=tilda.suppressions --tool=memcheck --leak-check=full ./tilda
clean:
rm -f *.o
rm -f tilda-window
rm -f tilda-terminal
+ rm -f tilda
+ rm -f tilda-controller-dbus-glue.h
+ rm -f tilda-window-dbus-glue.h
+ rm -f tilda-terminal-dbus-glue.h
+boost-font:
+ @echo "Only run this when tilda is running, it attempts to send a message"
+ @echo "to the running tilda process to boost the font size"
+ dbus-send --print-reply \
+ --dest=net.sourceforge.Tilda /net/sourceforge/Tilda/Window0/Terminal0 \
+ org.freedesktop.DBus.Properties.Set \
+ string:'' \
+ string:font \
+ variant:string:'Bitstream Vera Sans Mono 14'
-
-
+shrink-font:
+ @echo "Only run this when tilda is running, it attempts to send a message"
+ @echo "to the running tilda process to shrink the font size"
+ dbus-send --print-reply \
+ --dest=net.sourceforge.Tilda /net/sourceforge/Tilda/Window0/Terminal0 \
+ org.freedesktop.DBus.Properties.Set \
+ string:'' \
+ string:font \
+ variant:string:'Bitstream Vera Sans Mono 10'