#  Authors     [Robert Meolic (meolic@uni-mb.si)]
#  Revision    [$Revision: 13 $]
#  Date        [$Date: 2010-07-22 13:17:11 +0200 (Thu, 22 Jul 2010) $]
#
#  Copyright   [This file is part of Bdd Scout package.
#               Copyright (C) 2008, 2009, 2010 UM-FERI
#               UM-FERI, Smetanova ulica 17, SI-2000 Maribor, Slovenia
#
#               Bdd Scout 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.
#
#               Bdd Scout 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.]

MAINNAME = MAINNAME
EXTNAME1 = EXTNAME1

RM = rm -f
CP = cp
MKDIR = mkdir -p

# BIDDY
MAINFLAGS = -DMINGARBAGE -DMAXACC
BIDDYVERSION = `cat $(BDDPATH)/VERSION`

all: nop

# used for testing
local: start $(BINDIR) \
     $(BINDIR)/$(MAINNAME) \
     $(BINDIR)/$(EXTNAME1) \
     $(BINDIR)/COPYING \
     $(BINDIR)/bddview.tcl \
     $(BINDIR)/bddscout.tcl \
     $(BINDIR)/bddscoutIFIP.tcl \
     $(BINDIR)/pkgIndex.tcl \
     $(BINDIR)/pkgExtensionIFIP.tcl \
     $(BINDIR)/example.bddview \
     $(BINDIR)/example.bdd \
     $(BINDIR)/example.bf \
     ok

# used for packaging: produces dinamically or statitically linked program
package: start $(BINDIR) $(BINDIR)/$(MAINNAME) $(BINDIR)/$(EXTNAME1) ok

# Linux instalation
install:
	$(MKDIR) $(DESTDIR)/bin
	$(MKDIR) $(DESTDIR)/lib/bddscout
	$(MKDIR) $(DESTDIR)/share/bddscout
	$(CP) -d $(BINDIR)/bddscout.tcl $(DESTDIR)/bin
	$(CP) -d $(BINDIR)/bddview.tcl $(DESTDIR)/lib/bddscout
	$(CP) -d $(BINDIR)/bddscout.so $(DESTDIR)/lib/bddscout
	$(CP) -d $(BINDIR)/pkgIndex.tcl $(DESTDIR)/lib/bddscout
	$(CP) -d $(BINDIR)/README $(DESTDIR)/share/bddscout
	$(CP) -d $(BINDIR)/README.Linux $(DESTDIR)/share/bddscout
	$(CP) -d $(BINDIR)/example.bddview $(DESTDIR)/share/bddscout
	$(CP) -d $(BINDIR)/example.bdd $(DESTDIR)/share/bddscout
	$(CP) -d $(BINDIR)/example.bf $(DESTDIR)/share/bddscout

install_bddscoutIFIP:
	$(CP) -d $(BINDIR)/bddscoutIFIP.so $(DESTDIR)/lib/bddscout
	$(CP) -d $(BINDIR)/bddscoutIFIP.tcl $(DESTDIR)/lib/bddscout
	$(CP) -d $(BINDIR)/pkgExtensionIFIP.tcl $(DESTDIR)/lib/bddscout

install_IFIP:
	$(MKDIR) $(DESTDIR)/share/IFIP
	$(MKDIR) $(DESTDIR)/share/IFIP/cath
	$(MKDIR) $(DESTDIR)/share/IFIP/ex
	$(MKDIR) $(DESTDIR)/share/IFIP/hachtel
	$(MKDIR) $(DESTDIR)/share/IFIP/plasco
	$(CP) -d $(BINDIR)/IFIP/README $(BINDIR)/IFIP/*.txt $(DESTDIR)/share/IFIP
	$(CP) -d $(BINDIR)/IFIP/cath/* $(DESTDIR)/share/IFIP/cath
	$(CP) -d $(BINDIR)/IFIP/ex/* $(DESTDIR)/share/IFIP/ex
	$(CP) -d $(BINDIR)/IFIP/hachtel/* $(DESTDIR)/share/IFIP/hachtel
	$(CP) -d $(BINDIR)/IFIP/plasco/* $(DESTDIR)/share/IFIP/plasco

# -----------------------------------------------------------------------
# help

nop:
	@echo Please, check README to get instructions for building BDD Scout

start:
	@echo "----------------------------------"
	@echo "| Building Bdd Scout package ... |"
	@echo "----------------------------------"

ok:
	@echo "-------------------------------------------"
	@echo "| Bdd Scout package successfully compiled |"
	@echo "-------------------------------------------"

# -----------------------------------------------------------------------
# create directory, copy files

$(BINDIR):
	$(MKDIR) $(BINDIR)

$(BINDIR)/COPYING: ./COPYING
	$(CP) ./COPYING $(BINDIR)

$(BINDIR)/bddview.tcl: $(BDDVIEWDIR)/bddview.tcl 
	$(CP) $(BDDVIEWDIR)/bddview.tcl $(BINDIR)

$(BINDIR)/bddscout.tcl: ./bddscout.tcl
	$(CP) ./bddscout.tcl $(BINDIR)

$(BINDIR)/bddscoutIFIP.tcl: ./bddscoutIFIP.tcl
	$(CP) ./bddscoutIFIP.tcl $(BINDIR)

$(BINDIR)/pkgIndex.tcl: ./pkgIndex.tcl
	$(CP) ./pkgIndex.tcl $(BINDIR)

$(BINDIR)/pkgExtensionIFIP.tcl: ./pkgExtensionIFIP.tcl
	$(CP) ./pkgExtensionIFIP.tcl $(BINDIR)

$(BINDIR)/example.bddview: $(BDDVIEWDIR)/example.bddview
	$(CP) $(BDDVIEWDIR)/example.bddview $(BINDIR)

$(BINDIR)/example.bdd: ./example.bdd
	$(CP) ./example.bdd $(BINDIR)

$(BINDIR)/example.bf: ./example.bf
	$(CP) ./example.bf $(BINDIR)

# -----------------------------------------------------------------------
# make objects
# -----------------------------------------------------------------------

$(BINDIR)/bddscout.o: bddscout.c bddscout.h
	$(CC) -I$(BIDDYDIR) -o $(BINDIR)/bddscout.o -c bddscout.c -D'USECONST=$(USECONST)'

$(BINDIR)/bddscoutIFIP.o: bddscoutIFIP.c bddscout.h
	$(CCEXT1) -I$(BIDDYDIR) -o $(BINDIR)/bddscoutIFIP.o -c bddscoutIFIP.c -D'USECONST=$(USECONST)'

# -----------------------------------------------------------------------
# make libraries, use tcl/tk
# -----------------------------------------------------------------------

$(BINDIR)/$(MAINNAME): $(BINDIR)/bddscout.o
	$(LN) $(BINDIR)/$(MAINNAME) $(BINDIR)/bddscout.o -L$(BIDDYLIB) -lbiddy $(TCLLIB)

$(BINDIR)/$(EXTNAME1): $(BINDIR)/bddscoutIFIP.o
	$(LNEXT1) $(BINDIR)/$(EXTNAME1) $(BINDIR)/bddscoutIFIP.o -L$(BIDDYLIB) -lbiddy $(BDDSCOUTLIB) $(TCLLIB)

# -----------------------------------------------------------------------
# purge = purify source directory, clean = purify bin directory

purge:
	@$(RM) *~
	@$(RM) */*~

clean:
	@$(RM) $(BINDIR)/biddy.h
	@$(RM) $(BINDIR)/libbiddy.a
	@$(RM) $(BINDIR)/libbddscout.a
	@$(RM) $(BINDIR)/libbddscoutIFIP.a
	@$(RM) $(BINDIR)/bddscout.o
	@$(RM) $(BINDIR)/bddscoutIFIP.o
