## Copyright (C) 1996 DIMACS Center, Rutgers, The State University of New Jersey
## Author(s): Jonathan Berry

## This software is copyrighted by the DIMACS Center at Rutgers, The State
## University of New Jersey.  IT IS PROVIDED AS IS, AND THE AUTHORS, DIMACS, AND
## RUTGERS, THE STATE UNIVERSITY OF NEW JERSEY  DISCLAIM
## ALL LIABILITY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
## DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
## DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
## POSSIBILITY OF SUCH DAMAGE.

## THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
## FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
## IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
## NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
## MODIFICATIONS.

## The authors hereby grant permission to use, copy, modify, distribute,
## and license this software and its documentation for any purpose, provided
## that existing copyright notices are retained in all copies and that this
## notice is included verbatim in any distributions. No written agreement,
## license, or royalty fee is required for any of the authorized uses.
## Modifications to this software may be copyrighted by their authors
## and need not follow the licensing terms described here, provided that
## the new terms are clearly indicated on the first page of each file where
## they apply.

## Last File Update: 31-Jul-1996
## 
DIR = basic
.cc.o:
	(cd ..; $(LINK_COMPILE.cc) $(GNUFLAGS) $(DIR)/$<; mv $@ $(DIR))
EXTRA_OBJECTS = linkTemplates/linkTemplateFiles.o 
STK_OBJECTS   = STkTemplates/STkTemplateFiles.o \
                autogenSTkMethods/initSTkFiles.o \
                manualSTkMethods/manualSTkFiles.o 
## important:   use lorder() and tsort() to establish correct order
SOURCES.cc = \
	DJSet.cc \
	LaplacianMatrix.cc \
	Location.cc \
	Permutation.cc \
	Point.cc \
	Error.cc \
	count.cc \
	InitRand.cc \
	basicUtils.cc \
	basicTemplate.cc
OBJECTS = \
	$(SOURCES.cc:%.cc=%.o)
all:	objects
make_extra:
	cd linkTemplates;  $(MAKE) -f Make.basiclinkTemplates \
				LINK_COMPILE.cc="$(LINK_COMPILE.cc)"\
				GNUFLAGS="$(GNUFLAGS)" all
make_extra_stk:
	cd STkTemplates;  $(MAKE) -f Make.basicSTkTemplates \
				LINK_COMPILE.cc="$(LINK_COMPILE.cc)"\
				GNUFLAGS="$(GNUFLAGS)" all
	cd manualSTkMethods;  $(MAKE) -f Make.basicmanualSTkMethods init
	cd autogenSTkMethods; $(MAKE) -f Make.basicautogenSTkMethods \
				LINK_COMPILE.cc="$(LINK_COMPILE.cc)"\
				GNUFLAGS="$(GNUFLAGS)" all
	cd manualSTkMethods;  $(MAKE) -f Make.basicmanualSTkMethods \
				LINK_COMPILE.cc="$(LINK_COMPILE.cc)"\
				GNUFLAGS="$(GNUFLAGS)" all
../libbasic.a: $(OBJECTS) make_extra
	@-rm ../libbasic.a
	ar cr ../libbasic.a $(OBJECTS) $(EXTRA_OBJECTS)
	ranlib ../libbasic.a
../libbasicstk.a: make_extra_stk
	@-rm ../libbasicstk.a
	ar cr ../libbasicstk.a $(STK_OBJECTS)
	ranlib ../libbasicstk.a
objects: $(SOURCES.cc) $(OBJECTS) 
clean:
	-$(RM) $(OBJECTS) $(EXTRA_OBJECTS) $(STK_OBJECTS) \
	libbasicstk.a libbasic.a
	cd linkTemplates; make -f Make.basiclinkTemplates clean
	cd STkTemplates; make -f Make.basicSTkTemplates clean
	cd autogenSTkMethods; make -f Make.basicautogenSTkMethods clean
	cd manualSTkMethods; make -f Make.basicmanualSTkMethods clean
print:
	hsp -p $(SOURCES.cc)
wc:
	wc $(SOURCES.cc)
depend:
	makedepend -fMake.basic $(DEPENDFLAGS) $(SOURCES.cc)
# DO NOT DELETE THIS LINE -- make depend depends on it.
