# aewm - a minimalist X11 window mananager. vim:noet:sw=4:ts=4
# Copyright 1998-2001 Decklin Foster <decklin@red-bean.com>
# This program is free software; see LICENSE for details.

CC       = gcc
CFLAGS   = -g -O2 -Wall

XROOT    = /usr/X11R6
BINDIR   = $(DESTDIR)$(XROOT)/bin
MANDIR   = $(DESTDIR)$(XROOT)/man/man1
CFGDIR   = $(DESTDIR)/etc/X11/aewm

INCLUDES = -I../lib -Ilib
X11PATH  = -I$(XROOT)/include
X11LIBS  = -L$(XROOT)/lib -lX11
XAWLIBS  = -L$(XROOT)/lib -lX11 -lXt -lXaw
GTKPATH  = `gtk-config --cflags`
GTKLIBS  = `gtk-config --libs`

MANPAGE  = aeclients.1x

# --------------------------------------------------------------------

XAWPROGS = aemenu-xaw aepanel-xaw
GTKPROGS = aemenu-gtk aepanel-gtk
X11PROGS = set-gnome-pda
ETCPROGS = aesession
ALLPROGS = $(GTKPROGS) $(XAWPROGS) $(X11PROGS) $(ETCPROGS)

all: $(ALLPROGS)

COMMONOBJS = ../lib/parser.o lib/launch.o lib/switch.o

aemenu-gtk: $(COMMONOBJS)
aemenu-xaw: $(COMMONOBJS) lib/xaw-util.o
aepanel-gtk: $(COMMONOBJS) lib/panel.o
aepanel-xaw: $(COMMONOBJS) lib/panel.o lib/xaw-util.o
set-gnome-pda: lib/panel.o

$(GTKPROGS): %: %.o
	$(CC) $^ $(GTKLIBS) -o $@

$(XAWPROGS): %: %.o
	$(CC) $^ $(XAWLIBS) -o $@

$(X11PROGS): %: %.o
	$(CC) $^ $(X11LIBS) -o $@

$(ETCPROGS): %: %.o
	$(CC) $^ -o $@

# --------------------------------------------------------------------

GTKOBJS = aemenu-gtk.o aepanel-gtk.o
XAWOBJS = aemenu-xaw.o aepanel-xaw.o lib/xaw-util.o
X11OBJS = lib/panel.o lib/switch.o set-gnome-pda.o
ETCOBJS = lib/launch.o aesession.o
ALLOBJS = $(GTKOBJS) $(XAWOBJS) $(X11OBJS) $(ETCOBJS)

$(X11OBJS): %.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) $(X11PATH) -c $< -o $@

$(XAWOBJS): %.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) $(X11PATH) -c $< -o $@

$(GTKOBJS): %.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) $(GTKPATH) -c $< -o $@

$(ETCOBJS): %.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@

# --------------------------------------------------------------------

install: all
	install -s $(ALLPROGS) $(BINDIR)
	install -m 644 $(MANPAGE) $(MANDIR)
	gzip -9vf $(MANDIR)/$(MANPAGE)
	mkdir -p $(CFGDIR) && cp clientsrc.sample $(CFGDIR)/clientsrc
	cd $(BINDIR) && ln -sf aemenu-gtk aemenu
	cd $(BINDIR) && ln -sf aepanel-gtk aepanel
	cd $(MANDIR) && \
	    for i in $(ALLPROGS); do \
	        ln -sf $(MANPAGE).gz $$i.1x.gz; \
	    done \

clean:
	rm -f $(ALLPROGS) $(ALLOBJS)

.PHONY: all install clean
