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

# Uncomment to enable building with GTK+ 1.2 instead of 2.x.
USE_OLD_GTK = 1

CC       = gcc
CFLAGS   = -g -O2 -Wall

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

INCLUDES = -I$(AELIBDIR) -I$(MYLIBDIR)
X11PATH  = -I$(XROOT)/include
X11LIBS  = -L$(XROOT)/lib -lX11
XAWLIBS  = -L$(XROOT)/lib -lX11 -lXt -lXaw
ifdef USE_OLD_GTK
GTKPATH  = `gtk-config --cflags` -DUSE_OLD_GTK=$(USE_OLD_GTK)
GTKLIBS  = `gtk-config --libs`
else
GTKPATH  = `pkg-config --cflags gtk+-2.0`
GTKLIBS  = `pkg-config --libs gtk+-2.0`
endif

MANPAGE  = aeclients.1x

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

GTKPROGS = aemenu-gtk
ETCPROGS = aesession
ALLPROGS = $(GTKPROGS) $(ETCPROGS)

all: $(ALLPROGS)

COMMONOBJS = $(AELIBDIR)/parser.o $(MYLIBDIR)/launch.o $(MYLIBDIR)/switch.o

aemenu-gtk: $(COMMONOBJS)

$(GTKPROGS): %: %.o
	$(CC) $^ $(GTKLIBS) -o $@
	@ls -al $@;strip $@;ls -al $@

$(ETCPROGS): %: %.o
	$(CC) $^ -o $@
	@ls -al $@;strip $@;ls -al $@

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

GTKOBJS = aemenu-gtk.o
ETCOBJS = $(MYLIBDIR)/launch.o aesession.o
ALLOBJS = $(GTKOBJS) $(ETCOBJS) *.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
