include ../../Makefile.global

ALLDEP = config.h
OBJ    = co/parse.o co/validate.o co/btree.o co/list.o co/db.o co/register.o co/browse.o co/panic.o libpq/*
LFLAGS = ${CLFLAGS} ${DLFLAGS}
CFLAGS = ${CCFLAGS} ${DCFLAGS}
DEST = api.a gapi.a #tapi.a

# Miscellaneous section
all: co to go ${DEST}
ctags:
	ctags ../../*/*.c ../../*/*/*.c
doc:
	../../c2man -D ../doc/man *.c
	../../c2html -D ../doc/html *.c
install:
# Text version only
t: co to tclient
# Graphic version only
g: co go gclient
clean:
	rm -rf co to go; rm -f tags core ${DEST}
co:
	mkdir co
to:
	mkdir to
go:
	mkdir go

# Common section
api.a: ${OBJ}
	ar cr api.a ${OBJ}
co/parse.o: parse.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/parse.o parse.c
co/validate.o: validate.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/validate.o validate.c
co/btree.o: btree.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/btree.o btree.c
co/list.o: list.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/list.o list.c
co/db.o: db.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/db.o db.c
co/register.o: register.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/register.o register.c
co/browse.o: browse.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/browse.o browse.c
co/panic.o: panic.c ${ALLDEP}
	gcc ${CFLAGS} -c -o co/panic.o panic.c

# Text section
tapi.a: to/api.o to/form.o to/widget.o to/menu.o to/box.o to/notebook.o to/border.o to/label.o to/rule.o to/button.o to/entry.o to/combo.o to/date.o to/chkbox.o to/browser.o
	ar cr tapi.a to/api.o to/form.o to/widget.o to/menu.o to/box.o to/notebook.o to/border.o to/label.o to/rule.o to/button.o to/entry.o to/combo.o to/date.o to/chkbox.o to/browser.o
to/form.o: tapi.h tform.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/form.o tform.c
to/widget.o: tapi.h twidget.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/widget.o twidget.c
to/menu.o: tapi.h tmenu.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/menu.o tmenu.c
to/box.o: tapi.h tbox.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/box.o tbox.c
to/notebook.o: tapi.h tnotebook.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/notebook.o tnotebook.c
to/border.o: tapi.h tborder.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/border.o tborder.c
to/label.o: tapi.h tlabel.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/label.o tlabel.c
to/rule.o: tapi.h trule.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/rule.o trule.c
to/button.o: tapi.h tbutton.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/button.o tbutton.c
to/entry.o: tapi.h tentry.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/entry.o tentry.c
to/combo.o: tapi.h tcombo.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/combo.o tcombo.c
to/date.o: tapi.h tdate.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/date.o tdate.c
to/chkbox.o: tapi.h tchkbox.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/chkbox.o tchkbox.c
to/browser.o: tapi.h tbrowser.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/browser.o tbrowser.c
to/api.o: tapi.h tapi.c ${ALLDEP}
	gcc ${TCFLAGS} -c -o to/api.o tapi.c

# Graphical section
gapi.a: go/api.o go/pixmap.o go/browser.o go/popup.o go/date.o go/alarm.o #go/gtkdbbrowser.o
	ar cr gapi.a go/api.o go/pixmap.o go/browser.o go/popup.o go/date.o go/alarm.o #go/gtkdbbrowser.o
go/api.o: gapi.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/api.o gapi.c
go/pixmap.o: gpixmap.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/pixmap.o gpixmap.c
go/gtkdbbrowser.o: gtkdbbrowser.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/gtkdbbrowser.o gtkdbbrowser.c
go/browser.o: gbrowser.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/browser.o gbrowser.c
go/popup.o: gpopup.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/popup.o gpopup.c
go/date.o: gdate.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/date.o gdate.c
go/alarm.o: galarm.c ${ALLDEP}
	gcc ${CFLAGS} ${GCFLAGS} -c -o go/alarm.o galarm.c
