#*++
#COPYRIGHT:
#This file is part of the GSM Suite, a set of programs for
#manipulating state machines in a graphical fashion.
#Copyright (C) 1996, 1997  G. Andrew Mangogna.
#
#LICENSE:
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the
#Free Software Foundation, Inc.,
#59 Temple Place - Suite 330,
#Boston, MA  02111-1307, USA.
#
#MODULE:
#	Makefile for chio directory.
#
#$RCSfile: Makefile,v $
#$Revision: 1.7 $
#$Date: 1997/07/18 04:31:56 $
#
#ABSTRACT:
#
#MODIFICATION HISTORY:
#$Log: Makefile,v $
#Revision 1.7  1997/07/18 04:31:56  andrewm
#Changes to makefiles in preparation for final build.
#
#Revision 1.6  1997/07/14 02:30:31  andrewm
#Checkpoint.  Rework makefiles.  Rework man pages.  Fixed PostScript problems.
#
#*--
TARGET	=	libchio.a
CSRCS	= \
			Chio.cc \
			$(NULL)
COBJS	=	$(CSRCS:%.cc=%.o)
CHDRS	=	$(CSRCS:%.cc=%.h)
YSRCS	= \
			parse.y \
			$(NULL)
YOBJS	=	$(YSRCS:%.y=%.o)
YHDRS	=	$(YSRCS:%.y=%.tab.h)
LSRCS	= \
			scan.l \
			$(NULL)
LOBJS	=	$(LSRCS:%.l=%.o)

OBJS	= \
			$(COBJS) \
			$(YOBJS) \
			$(LOBJS) \
			$(NULL)

CHDRS	+= \
			ascii.h \
			$(NULL)

CXXFLAGS	=	-m486 -g -O
INCLUDEDIRS	= \
			../machcommon \
			$(NULL)
CPPFLAGS	+= $(foreach dir,$(INCLUDEDIRS),-I$(dir))

YACC	=	bison
YFLAGS	=	-d -p hio_
LEX		=	flex
LFLAGS	=	-Phio_

CLEANFILES	= \
			*.o \
			.*.d \
			a.out \
			core \
			Makefile.bak \
			$(LSRCS:%.l=%.cc) \
			$(YSRCS:%.y=%.cc) \
			$(YHDRS) \
			$(TARGET) \
			$(NULL)

.PHONEY : all clean

all : $(TARGET)($(OBJS))

clean:
	$(RM) $(CLEANFILES)

%.o %.tab.h : %.y
	$(YACC.y) $<
	mv $*.tab.c $*.cc
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $*.cc

%.o : %.l
	$(LEX.l) $< > $*.cc
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $*.cc

.%.d : %.cc
	@$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< \
		| sed '\''s/\($*\.o\)[ :]*/\1 $@ : /g'\'' > $@'

$(LOBJS) : $(YHDRS)

include $(CSRCS:%.cc=.%.d)
