#*************************************************************************
# COPYRIGHT  (c)  1997 
# THE REGENTS OF THE UNIVERSITY OF MICHIGAN
# ALL RIGHTS RESERVED
# 
# PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS 
# AND REDISTRIBUTE THIS SOFTWARE AND SUCH DERIVATIVE WORKS FOR 
# ANY PURPOSE, SO LONG AS NO FEE IS CHARGED, AND SO LONG AS 
# THE COPYRIGHT NOTICE ABOVE, THIS GRANT OF PERMISSION, AND 
# THE DISCLAIMER BELOW APPEAR IN ALL COPIES MADE; AND SO LONG 
# AS THE NAME OF THE UNIVERSITY OF MICHIGAN IS NOT USED IN ANY 
# ADVERTISING OR PUBLICITY PERTAINING TO THE USE OR 
# DISTRIBUTION OF THIS SOFTWARE WITHOUT SPECIFIC, WRITTEN 
# PRIOR AUTHORIZATION.
# 
# THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION 
# FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS 
# FOR ANY PURPOSE, AND WITHOUT WARRANTY BY THE 
# UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER EXPRESS OR 
# IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES 
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE 
# REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE 
# FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR 
# CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT 
# HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH 
# DAMAGES.
#*************************************************************************

#*************************************************************************
#
# File: Makefile
#
# Purpose: makefile template for library directory
#
# Author: Michael Riepe
#
# History: 03/18/97 - MAR - initial implementation
#
# Note: this makefile depends heavily on the capabilities of gnu make
#
# RCS Version:
#     $Id: Makefile,v 1.1.1.1 2002/05/01 14:23:27 mguthaus Exp $
#
#*************************************************************************

# Include common definitions
include $(SRCHOME)/make.include

#*************************************************************************
#
# Source files: modify this section to costomize makefile
#
#*************************************************************************

OFILES = argument.o spice.tab.o lex.yy.o
LIB_TARGET = libhspice.a

#*************************************************************************
#
# implicit rules
#
#*************************************************************************
%.o : %.cc
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -I$(SRCHOME)/includes $< -o $@
	$(AR) -r $(LIB_TARGET) $@

#*************************************************************************
#
# Build rules
#
#*************************************************************************

$(LIB_TARGET): $(OFILES)

# cause .o files to depend on the .d (dependency) files
$(OFILES): %.o : %.d

# Have to handle lex and yacc exeution manually.
# The sed script is to eliminate fatal C linkage externs
lex.yy.cc: spice.l spice.tab.hh
	$(LEX) $(LFLAGS) $<
	$(SED) 's/extern "C"/extern/g' lex.yy.c > lex.yy.cc
	$(RM) lex.yy.c

spice.tab.cc spice.tab.hh: spice.y
	$(YACC) $(YFLAGS) $<
	$(SED) 's/extern "C"/extern/g' spice.tab.c > spice.tab.cc
	$(RM) spice.tab.c
	$(MV) spice.tab.h spice.tab.hh

# include all dependency files
include $(OFILES:.o=.d)

#*************************************************************************
#
# Clean rules
#
#*************************************************************************

.PHONY: clean
clean:
	$(RM) $(OFILES) $(OFILES:.o=.d) $(LIB_TARGET)
	$(RM) spice.tab.cc spice.tab.hh lex.yy.cc spice.output
	$(RM) $(LIB_TARGET:.a=_pure*.a)