#$Id: Make3  $ -*- Makefile -*-
# Copyright (C) 2001 Albert Davis
# Author: Albert Davis <aldavis@gnu.org>
#
# This file is part of "Gnucap", the Gnu Circuit Analysis Package
#
# 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#------------------------------------------------------------------------
# Part 3 of a Makefile
#------------------------------------------------------------------------
MKDIR_P = mkdir -p
am__base_list = cat # for now
INSTALL = install
INSTALL_FLAGS = -m 644
#------------------------------------------------------------------------
all: $(TARGET) ${TARGET_LIB:%=%${TARGET_LIB_EXT}} ${TARGET_EXE:%=%${TARGET_EXE_EXT}}
#------------------------------------------------------------------------
tags: $(HDRS) $(SRCS)
	etags --c++ $(HDRS) $(SRCS)
#------------------------------------------------------------------------
checkout:
	co $(RAW)
#------------------------------------------------------------------------
install-debug : install
#------------------------------------------------------------------------
install-files: $(INSTALL_FILES)
	@list='$(INSTALL_FILES)'; test -n "$(INSTALL_DIR)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(INSTALL_DIR)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(INSTALL_DIR)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL) ${INSTALL_FLAGS} $$files '$(DESTDIR)$(INSTALL_DIR)'"; \
	  $(INSTALL) ${INSTALL_FLAGS} $$files "$(DESTDIR)$(INSTALL_DIR)" || exit $$?; \
	done
#------------------------------------------------------------------------
bindir = ${PREFIX}/bin
install : install-files  $(INSTALL_FILES_1)  $(INSTALL_FILES_2) ${bin_PROGRAMS}
	@ [ -z "${INSTALL_FILES_1}" ] || \
	${MAKE} $@-files "INSTALL_DIR=${INSTALL_DIR_1}" \
	                 "INSTALL_FILES=${INSTALL_FILES_1}"
	@ [ -z "${INSTALL_FILES_2}" ] || \
	${MAKE} $@-files "INSTALL_DIR=${INSTALL_DIR_2}" \
	                 "INSTALL_FILES=${INSTALL_FILES_2}"
	@ [ -z "${bin_PROGRAMS}" ] || \
	${MAKE} $@-files "INSTALL_DIR=${bindir}" \
	                 "INSTALL_FILES=${bin_PROGRAMS}" \
	                 "INSTALL_FLAGS=-m 755"
#------------------------------------------------------------------------
uninstall :
	(cd $(DESTDIR)$(INSTALL_DIR) ; rm -f $(INSTALL_FILES))
	(cd $(DESTDIR)$(INSTALL_DIR_1) ; rm -f $(INSTALL_FILES_1))
	(cd $(DESTDIR)$(INSTALL_DIR_2) ; rm -f $(INSTALL_FILES_2))
	(cd $(DESTDIR)$(bindir) ; rm -f $(bin_PROGRAMS))
#------------------------------------------------------------------------
#unclean:
#	rm $(ALL)
#------------------------------------------------------------------------
backup:
	mkdir -p BACKUP
	cp $(RAW) BACKUP
#------------------------------------------------------------------------
#   depend: Make.depend
Make.depend: | $(SRCS) $(HDRS)
	[ -z "$|" ] || $(CXX) -MM $(CCFLAGS) ${MAKE_CPPFLAGS} ${CPPFLAGS} $| > $@
	if [ -n "${EXTRA_DEPEND}" ]; then \
		echo ${EXTRA_DEPEND} >> Make.depend; \
	fi
#-----------------------------------------------------------------------------
date:
	date "+#define PATCHLEVEL \"`git branch | awk '/\*/ { print $$2; }'` %Y.%m.%d\"" \
		>patchlev.h
#-----------------------------------------------------------------------------
header-check:
	-$(CXX) -I../include -o /dev/null $(RAW_HDRS)
#-----------------------------------------------------------------------------
manifest: MANIFEST
MANIFEST: $(DIST_FILES)
	echo $(DIST_FILES) | sed 's/ /\n/g' >MANIFEST
#-----------------------------------------------------------------------------
md5sums: MD5SUMS
MD5SUMS: $(DIST_FILES)
	md5sum $(DIST_FILES) | grep -v MD5SUMS >MD5SUMS
#-----------------------------------------------------------------------------
MOSTLYCLEANFILES = $(OBJS) $(GENERATED)
CLEANFILES = $(MOSTLYCLEANFILES) $(TARGET_EXE) $(EXTRA_CLEANFILES) Make.depend
DISTCLEANFILES = $(CLEANFILES) config.log Makefile
MAINTAINERCLEANFILES = $(DISTCLEANFILES)
#-----------------------------------------------------------------------------
mostlyclean:
	rm -rf $(MOSTLYCLEANFILES)
	rm -f */*.o */*.obj */*.h */*.cc
clean:
	rm -rf $(CLEANFILES) $(EXTRA_CLEANFILES)
	rm -f */*.o */*.obj */*.h */*.cc
distclean:
	rm -rf $(DISTCLEANFILES)
	rm -f */*.o */*.obj */*.h */*.cc
	rm -f *~ \#*\#
maintainer-clean:
	rm -rf $(MAINTAINERCLEANFILES)
	rm -f */*.o */*.obj */*.h */*.cc
	rm -f *~ \#*\#
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
$(TARGET_EXE)$(TARGET_EXE_EXT): $(TARGET_DEPENDS)
	rm -f $@
	$(MAKE_EXE) # -o $@
#------------------------------------------------------------------------
#------------------------------------------------------------------------
$(TARGET_LIB)$(TARGET_LIB_EXT): $(TARGET_DEPENDS)
	rm -f $@
	$(MAKE_LIB) # -o $@
#------------------------------------------------------------------------
#------------------------------------------------------------------------
%.cc %.h: %.model
	${ENV} $(MODELGEN) $< #  Make3 rule
	@touch $*.cc
#------------------------------------------------------------------------
.PHONY: depend install-files install
#------------------------------------------------------------------------
