FILES=xml.o io.o simple.o callbacks.o clipboard.o crypt.o error.o gui_al.o gui_io.o journal.o listen.o talk.o months.o threads.o settings.o search.o meta_functions.o undo.o images.o interface.o prefDialogue.o support.o time.o plugins.o journ_wzrd.o prefix.o about.o export.o login.o structure.o tabs.o calendar.o search_tab.o edit.o cryptography.o srch_pane.o second.o status.o

GTK=`pkg-config gtk+-2.0 --cflags` `pkg-config gthread-2.0 --cflags`
LIBGCRYPT=`libgcrypt-config --cflags `
LLIBGCRYPT=`libgcrypt-config --libs`
LGTK=`pkg-config gtk+-2.0 --libs` `pkg-config gthread-2.0 --libs`


all: $(FILES) objs.d


clean:
	rm -Rf *.o
	rm -f objs.d
	rm -f libejourn.so
	rm -f ejourn
	rm -f ejourn-gui


objs.d: ejourn-gui ejourn libejourn.so


ejourn-test: libejourn.so main.o modules/cli_integration.so modules/mult_journ.so
	$(CC) $(LFLAGS) -o ejourn-test $(LGTK) $(LLIBGCRYPT)  main.o $(FILES)


ejourn-gui: libejourn.so main.o
	$(CC) $(LFLAGS) -o ejourn-gui -L. -lejourn $(LGTK)  $(LLIBGCRYPT) main.o


ejourn: libejourn.so cli_main.o
	$(CC) $(LFLAGS) $(LGTK) $(LLIBGCRYPT) -o ejourn -L. -lejourn cli_main.o


libejourn.so: $(FILES)
	$(CC) $(LFLAGS) -shared -Wl,-soname,libejourn.so.1 -o libejourn.so $(FILES)  



about.o: about.c
	$(CC) $(CFLAGS) $(GTK) -c about.c

cli_main.o: cli_main.c
	$(CC) $(CFLAGS) $(GTK) -c cli_main.c

callbacks.o: callbacks.c
	$(CC) $(CFLAGS) $(GTK) -c callbacks.c

calendar.o: calendar.c
	$(CC) $(CFLAGS) $(GTK) -c calendar.c 

clipboard.o: clipboard.c
	$(CC) $(CFLAGS)  $(GTK) -c clipboard.c

crypto.o: crypto.c
	$(CC) $(CFLAGS) $(LIBGCRYPT) -c crypt.c

cryptography.o: cryptography.c
	$(CC) $(CFLAGS) $(GTK) -c cryptography.c

edit.o: edit.c
	$(CC) $(CFLAGS) $(GTK) -c edit.c

error.o: error.c
	$(CC) $(CFLAGS)  $(GTK) -c error.c 

export.o: export.c
	$(CC) $(CFLAGS) -c export.c

fileChooser.o: fileChooser.c
	$(CC) $(CFLAGS) $(GTK) -c fileChooser.c

gui_al.o: gui_al.c
	$(CC) $(CFLAGS) $(GTK) -c gui_al.c

gui_io.o: gui_io.c
	$(CC) $(CFLAGS) $(GTK)-c gui_io.c

handler.o: handler.c 
	$(CC) $(CFLAGS) -c handler.c

images.o: images.c
	$(CC) $(CFLAGS) -c images.c

interface.o: interface.c
	$(CC) $(CFLAGS) $(GTK) -c interface.c

io.o: io.c
	$(CC) $(CFLAGS) -c io.c

journal.o: journal.c
	$(CC) $(CFLAGS) -c journal.c $(GTK)

journ_wzrd.o: journ_wzrd.c
	$(CC) $(CFLAGS) -c journ_wzrd.c $(GTK)

listen.o: listen.c
	$(CC) $(CFLAGS) $(GTK) -c listen.c


login.o: login.c
	$(CC) $(CFLAGS) $(GTK) -c login.c

main.o: main.c
	$(CC) $(CFLAGS) $(GTK) -c main.c

meta_functions.o: meta_functions.c
	$(CC) $(CFLAGS) -c meta_functions.c

months.o: months.c
	$(CC) $(CFLAGS) -c months.c

prefDialogue.o: prefDialogue.c
	$(CC) $(CFLAGS) $(GTK) -c prefDialogue.c

prefix.o: prefix.c
	$(CC) $(CFLAGS) -c prefix.c -DENABLE_BINRELOC -lpthread

plugins.o: plugins.c
	$(CC) $(CFLAGS) -c plugins.c

search.o: search.c
	$(CC) $(CFLAGS) $(GTK) -c search.c

search_tab.o: search_tab.c
	$(CC) $(CFLAGS) $(GTK) -c search_tab.c

second.o: second.c
	$(CC) $(CFLAGS) -c second.c

settings.o: settings.c
	$(CC) $(CFLAGS) -c settings.c

simple.o: simple.c
	$(CC) $(CFLAGS) -c simple.c

srch_pane.o: srch_pane.c
	$(CC) $(CFLAGS) $(GTK) -c srch_pane.c

status.o: status.c
	$(CC) $(CFLAGS) $(GTK) -c status.c

structure.o: structure.c
	$(CC) $(CFLAGS) -c structure.c

support.o: support.c
	$(CC) $(CFLAGS) $(GTK) -c support.c

tabs.o: tabs.c
	$(CC) $(CFLAGS) -c tabs.c $(GTK) 

talk.o: talk.c
	$(CC) $(CFLAGS) $(GTK) -c talk.c

time.o: time.c
	$(CC) $(CFLAGS) -c time.c

threads.o: threads.c
	$(CC) $(CFLAGS) -c threads.c

undo.o: undo.c
	$(CC) $(CFLAGS) $(GTK)  -c undo.c

xml.o: xml.c
	$(CC) $(CFLAGS) -c xml.c
