# Makefile for OLVWM 3.0 on Linux

CFLAGS = -O2 -DSHAPE -I. -I/usr/include/X11
CC = gcc

HEADERS = cmdstream.h defaults.h environ.h events.h             \
	  gettext.h globals.h group.h helpcmd.h i18n.h          \
	  iconimage.h iconmask.h kbdfuncs.h list.h mem.h menu.h \
	  notice.h olcursor.h olgx_impl.h ollocale.h olwm.h     \
	  patchlevel.h properties.h resources.h screen.h slots.h\
	  st.h virtual.h win.h iconbitmap.h

SRCS	= Debug.c Error.c Notice.c Select.c WinInfo.c atom.c \
	  client.c cmdstream.c defaults.c environ.c evbind.c \
	  events.c gettext.c group.c helpsend.c images.c kbdfuncs.c \
	  list.c mem.c menu.c moveresize.c ol_button.c olwm.c olvwmrc.c \
	  properties.c resources.c screen.c services.c slave.c slots.c \
	  st.c states.c usermenu.c usleep.c virtual.c win.c winbusy.c \
	  winbutton.c wincolor.c winframe.c wingframe.c \
	  winicon.c winipane.c winmenu.c winnofoc.c \
	  winpane.c winpinmenu.c winpush.c winresize.c \
	  winroot.c

OBJS = 	\
	  Debug.o Error.o Notice.o Select.o WinInfo.o atom.o \
          client.o cmdstream.o defaults.o environ.o evbind.o \
          events.o gettext.o group.o helpsend.o images.o kbdfuncs.o \
          list.o mem.o menu.o moveresize.o ol_button.o olwm.o olvwmrc.o \
	  properties.o resources.o screen.o services.o slave.o slots.o \
          st.o states.o usermenu.o usleep.o virtual.o win.o \
	  winbusy.o winbutton.o wincolor.o winframe.o wingframe.o \
          winicon.o winipane.o winmenu.o winnofoc.o \
          winpane.o winpinmenu.o winpush.o winresize.o \
          winroot.o 

PROGRAM = olvwm

all: olvwm

olvwm: $(OBJS) 
	$(RM) $@
	$(CC) -o $@ $(OBJS) -L/usr/lib  -lolgx -lXext -lX11 -lobz

parse.c: parse.l
	flex -t parse.l > parse.c

olvwmrc.c: olvwmrc.y
	bison -y olvwmrc.y
	mv y.tab.c olvwmrc.c

olvwmrc.o: parse.c olvwmrc.c

clean:
	/bin/rm -f olvwm
	/bin/rm -f parse.c olvwmrc.c
	/bin/rm -f $(OBJS)

