# aewm - Copyright 1998-2006 Decklin Foster <decklin@red-bean.com>.
# This program is free software; see LICENSE for details.

# Set this to the location where you want to install
DESTDIR =
XROOT = /usr/X11R6

# Uncomment to enable Shape extension support
#OPT_WMFLAGS += -DSHAPE
#OPT_WMLIB += -lXext

# Uncomment to add Xft support
#OPT_WMFLAGS += -DXFT `pkg-config --cflags xft`
#OPT_WMLIB += `pkg-config --libs xft` -lXext

# Uncomment for debugging (abandon all hope, ye who enter here)
#OPT_WMFLAGS += -DDEBUG
#OPT_WMLIB += -lefence

CC = gcc
CFLAGS = -g -O2 -Wall

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

AELIB = ../lib
AEDOC = ../doc

PLAINOBJ = aesession.o $(AELIB)/launch.o $(AELIB)/parser.o
CLIENTOBJ = $(AELIB)/common.o $(AELIB)/atom.o
X11OBJ = $(CLIENTOBJ) aedesk.o $(AELIB)/menu.o $(AELIB)/panel.o
WMOBJ = init.o event.o client.o ui.o
XAWOBJ = aemenu-xaw.o aepanel-xaw.o
GTKOBJ = aemenu-gtk.o aepanel-gtk.o
ALLOBJ = $(PLAINOBJ) $(X11OBJ) $(WMOBJ) $(XAWOBJ) $(GTKOBJ)

PLAINBIN = aesession
X11BIN = aedesk
WMBIN = aewm
XAWBIN = aemenu-xaw aepanel-xaw
GTKBIN = aemenu-gtk aepanel-gtk
ALLBIN = $(PLAINBIN) $(X11BIN) $(WMBIN) $(XAWBIN) $(GTKBIN)

all: $(ALLBIN)
aesession:
aedesk: $(CLIENTOBJ)
aewm: $(CLIENTOBJ) $(WMOBJ) $(AELIB)/parser.o
aemenu-gtk: $(CLIENTOBJ) $(AELIB)/parser.o $(AELIB)/menu.o
aemenu-xaw: $(CLIENTOBJ) $(AELIB)/parser.o $(AELIB)/menu.o
aepanel-gtk: $(CLIENTOBJ) $(AELIB)/parser.o $(AELIB)/menu.o $(AELIB)/panel.o
aepanel-xaw: $(CLIENTOBJ) $(AELIB)/parser.o $(AELIB)/menu.o $(AELIB)/panel.o

PLAINFLAGS = -I$(AELIB)
X11FLAGS = $(PLAINFLAGS) -I$(XROOT)/include
WMFLAGS = $(X11FLAGS) $(OPT_WMFLAGS)
XAWFLAGS = $(X11FLAGS)
GTKFLAGS = $(PLAINFLAGS) `pkg-config --cflags gtk+-2.0`

$(PLAINOBJ): %.o: %.c
	$(CC) $(CFLAGS) $(PLAINFLAGS) -c $< -o $@

$(X11OBJ): %.o: %.c
	$(CC) $(CFLAGS) $(X11FLAGS) -c $< -o $@

$(WMOBJ): %.o: %.c
	$(CC) $(CFLAGS) $(WMFLAGS) -c $< -o $@

$(XAWOBJ): %.o: %.c
	$(CC) $(CFLAGS) $(X11FLAGS) -c $< -o $@

$(GTKOBJ): %.o: %.c
	$(CC) $(CFLAGS) $(GTKFLAGS) -c $< -o $@

X11LIB = -L$(XROOT)/lib -lX11
WMLIB = $(X11LIB) $(OPT_WMLIB)
XAWLIB = $(X11LIB) -lXt -lXaw
GTKLIB = `pkg-config --libs gtk+-2.0`

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

$(X11BIN): %: %.o
	$(CC) $^ $(X11LIB) -o $@

$(WMBIN): %:
	$(CC) $^ $(WMLIB) -o $@

$(XAWBIN): %: %.o
	$(CC) $^ $(XAWLIB) -o $@

$(GTKBIN): %: %.o
	$(CC) $^ $(GTKLIB) -o $@

AEMAN = aewm.1x aeclients.1x
AERC = aewmrc clientsrc

install: all
	mkdir -p $(BINDIR) $(MANDIR) $(CFGDIR)
	install -s $(ALLBIN) $(BINDIR)
	for i in $(AEMAN); do \
	    install -m 644 $(AEDOC)/$$i $(MANDIR); \
	    gzip -9 $(MANDIR)/$$i; \
	done
	for i in $(AERC); do \
	    install -m 644 $(AEDOC)/$$i.ex $(CFGDIR)/$$i; \
	done
	cd $(BINDIR) && ln -sf aemenu-gtk aemenu
	cd $(BINDIR) && ln -sf aepanel-gtk aepanel
	for i in $(PLAINBIN) $(X11BIN) $(XAWBIN) $(GTKBIN); do \
	    ln -sf aeclients.1x.gz $(MANDIR)/$$i.1x.gz; \
	done

clean:
	rm -f $(ALLBIN) $(ALLOBJ)

.PHONY: all install clean
