srcdir = @srcdir@
VPATH = @srcdir@
SHELL = /bin/sh
CC = @CC@
LEX = @LEX@
YACC = @YACC@
CFLAGS = @CFLAGS@
YFLAGS = -d
DEFS = @DEFS@
ALL_CFLAGS = -I@srcdir@ -I@srcdir@/libami $(DEFS) $(CFLAGS) @X_CFLAGS@
LIBS = @X_LIBS@ @X_PRE_LIBS@ -Llibami -lami @XT_LIB_KLUDGE@ -lXext -lXmu \
	-lX11 @X_EXTRA_LIBS@ @LIBS@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = $(exec_prefix)/bin
libdir = $(exec_prefix)/lib
mandir = $(prefix)/man
INSTALL = @INSTALL@
LN_S = @LN_S@
RM = -rm -f
LIBAMI=libami/libami.a

PROGS = amiwm requestchoice executecmd

MODULES = Background Keyboard

OBJS  = main.o screen.o client.o frame.o icc.o \
		icon.o menu.o diskobject.o gram.o lex.o rc.o \
		module.o

SRCS = main.c screen.c client.c frame.c icc.c \
		icon.c menu.c diskobject.c gram.c lex.c rc.c \
		module.c \
		requestchoice.c executecmd.c kbdmodule.c kbdlexer.c

DISTFILES = README README.modules INSTALL amiwm.1 \
	configure configure.in Makefile.in install-sh smakefile scoptions \
	*.[chly] system.amiwmrc def_tool.info \
	Background libami/Makefile.in libami/*.[chly]

PACKAGENAME = amiwm

AMIWM_HOME = $(libdir)/amiwm

all : $(PROGS) $(MODULES)

lib :
	@( cd libami; $(MAKE) libami.a )

.c.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<

menu.o : menu.c
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -DAMIWM_HOME=\"$(AMIWM_HOME)\" $<

rc.o : rc.c
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -DAMIWM_HOME=\"$(AMIWM_HOME)\" $<

gram.h gram.c: gram.y
	$(YACC) $(YFLAGS) gram.y
	mv y.tab.c gram.c
	mv y.tab.h gram.h

lex.c : lex.l
	$(LEX) -t lex.l > lex.c

kbdmodule.h kbdmodule.c: kbdmodule.y
	$(YACC) $(YFLAGS) kbdmodule.y
	mv y.tab.c kbdmodule.c
	mv y.tab.h kbdmodule.h

kbdlexer.c : kbdlexer.l
	$(LEX) -t kbdlexer.l > kbdlexer.c

install : $(PROGS) $(MODULES)
	-mkdir -p $(AMIWM_HOME)
	$(INSTALL) -s requestchoice $(AMIWM_HOME)/requestchoice
	$(INSTALL) -s executecmd $(AMIWM_HOME)/executecmd
	for module in $(MODULES); do \
	  if [ "$$module" = "Background" ]; then \
	    $(INSTALL) $$module $(AMIWM_HOME)/$$module; \
	  else \
	    $(INSTALL) -s $$module $(AMIWM_HOME)/$$module; \
	  fi \
	done
	$(INSTALL) -m 644 system.amiwmrc $(AMIWM_HOME)/system.amiwmrc
	$(INSTALL) -m 644 def_tool.info $(AMIWM_HOME)/def_tool.info
	$(INSTALL) -s amiwm $(bindir)/amiwm
	$(RM) $(bindir)/requestchoice
	$(LN_S) $(AMIWM_HOME)/requestchoice $(bindir)/requestchoice
	-mkdir -p $(mandir)/man1
	$(INSTALL) -m 644 amiwm.1 $(mandir)/man1/amiwm.1

amiwm : $(OBJS) lib
	$(CC) -o amiwm $(OBJS) $(LIBS)

requestchoice : requestchoice.o lib
	$(CC) -o requestchoice requestchoice.o $(LIBS)

executecmd : executecmd.o lib
	$(CC) -o executecmd executecmd.o $(LIBS)

Keyboard : kbdmodule.o kbdlexer.o lib
	$(CC) -o Keyboard kbdmodule.o kbdlexer.o $(LIBS)

clean :
	$(RM) core $(PROGS) $(LIBAMI) *.o libami/*.o
	$(RM) lex.yy.c lex.c y.tab.c y.tab.h gram.h gram.c
	$(RM) kbdlexer.c kbdmodule.h kbdmodule.c
	$(RM) config.log

distclean : clean
	$(RM) config.status config.cache *~

spotless : distclean

TAGS:
	etags *.c

patch :
	mv version.h old_version.h
	sed < old_version.h 's/l/"/' | awk '-F"' '{ printf "%s\"%sl%s\"\n",$$1,$$2,1+$$3 }' > version.h
	rm old_version.h

dist : version.h clean
	( version=`sed < version.h -e 's/^[^"]*"//' -e 's/"[^"]*$$//'`; \
	  tarname="$(PACKAGENAME)$$version.tar"; \
	  mkdir $(PACKAGENAME); \
	  tar cf - $(DISTFILES) | (cd $(PACKAGENAME)/; tar xf - ); \
	  rm -f $$tarname $$tarname.gz; \
	  tar cf $$tarname $(PACKAGENAME); \
	  rm -rf $(PACKAGENAME)/; \
	  gzip $$tarname; \
	)

$(srcdir)/configure: $(srcdir)/configure.in
	autoconf $(srcdir)/configure.in > $(srcdir)/configure

$(srcdir)/config.status: $(srcdir)/configure
	( cd $(srcdir); ./configure )

$(srcdir)/Makefile: $(srcdir)/Makefile.in $(srcdir)/config.status
	( cd $(srcdir); ./config.status )

$(srcdir)/libami/Makefile: $(srcdir)/libami/Makefile.in $(srcdir)/config.status
	( cd $(srcdir); ./config.status )

depend:: $(SRCS)
	-@rm Makefile.bak
	mv Makefile Makefile.bak
	( sed '/^#--DO NOT REMOVE THIS LINE--$$/q' < Makefile.bak ; \
	  $(CC) -MM $(ALL_CFLAGS) $(SRCS) ) > Makefile

depend::
	@( cd libami; $(MAKE) depend )

#--DO NOT REMOVE THIS LINE--
