 #
 # This file is part of SimSect++, 
 #
 # Copyright (c) 2001 The University of Michigan, its Regents,
 # Fellows, Employees and Agents. All rights reserved, and distributed as
 # free software under the following license.
 # 
 #  Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
 # 
 # 1) Redistributions of source code must retain the above copyright
 # notice, this list of conditions, the following disclaimer and the
 # file called "CREDITS" which accompanies this distribution.
 # 
 # 2) Redistributions in binary form must reproduce the above copyright
 # notice, this list of conditions, the following disclaimer and the file
 # called "CREDITS" which accompanies this distribution in the
 # documentation and/or other materials provided with the distribution.
 # 
 # 3) Neither the name of the University of Michigan, Ann Arbor or the
 # names of its contributors may be used to endorse or promote products
 # derived from this software without specific prior written permission.
 # 
 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 ######################################################################
 # $Id$
 #
 # The top level Makefile for SimSect++
 #
 # Created       : Uluc Saranli, 11/16/2000
 # Last Modified : Uluc Saranli, 06/27/2001
 #
 ######################################################################

include $(SIMSECT_DIR)/tools/tooldefs.mk

DIRNAME = SimSect++
VERSION = 1.0-beta
PACKAGENAME = SimSect++
BINDIR = bin
DOCDIR = doc

LIBS = 	\
	engine/libengine.a \
	libml/libml.a \
	libml/libmisc.a

SYSLIBS = \
	systems/slip/libslip.a \
	systems/hexapod/libhexapod.a
#	systems/akh/libakh.a

### Derived parameters

OBJECTS = $(SOURCES:.cc=.o)

CLEAN_LIST = $(LIBS:.a=.clean) $(SYSLIBS:.a=.clean)

CLEANOBJ_LIST = $(LIBS:.a=.cleanobj) $(HWLIBS:.a=.cleanobj) 

FILES_LIST = $(LIBS:.a=.dir) $(SYSLIBS:.a=.dir)

DEPEND_LIST = $(LIBS:.a=.dep) $(SYSLIBS:.a=.dep)

include $(SIMSECT_DIR)/tools/flagdefs.mk


### Standard targets.

libs : $(LIBS) $(SYSLIBS) 

all : libs exec

exec : $(LIBS) $(SYSLIBS)
	@$(CD) $(BINDIR); $(MAKE)

$(LIBS) $(SYSLIBS): FORCE
	@$(CD) $(@D) ; $(MAKE) $(@F)
	@$(LN) ../$(@) lib

clean : $(CLEAN_LIST)
	@$(ECHO) Cleaning directory $(BINDIR)...
	@$(MAKE) --no-print-directory -C $(BINDIR) clean
	@$(RM) -f lib/*.a

$(CLEAN_LIST): FORCE
	@$(ECHO) Cleaning $(@D)...
	@$(MAKE) --no-print-directory -C $(@D) clean

cleanobj : $(CLEANOBJ_LIST)
	@$(ECHO) Cleaning directory $(BINDIR)...
	@$(MAKE) --no-print-directory -C $(BINDIR) cleanobj

$(CLEANOBJ_LIST): FORCE
	@$(ECHO) Cleaning $(@D)...
	@$(MAKE) --no-print-directory -C $(@D) cleanobj

wc : 
	@$(WC) -l `find . -name Makefile` `find . -name '*.cc'` `find . -name '*.hh'` | $(SORT) -r -n

tarball : clean
	@$(RM) -f ../$(PACKAGENAME)-$(VERSION).tar.gz
	find . -name Makefile.dep | xargs $(RM) -f
	find . -name Makefile.dep.bak | xargs $(RM) -f
	@$(CD) ..; find $(DIRNAME) -name CVS > cvsfiles.list
	$(CD) ..; $(TAR) cvf $(PACKAGENAME)-$(VERSION).tar $(DIRNAME) -Xcvsfiles.list; $(GZIP) $(PACKAGENAME)-$(VERSION).tar
	$(CD) ..; $(RM) -f cvsfiles.list

depend dep : $(DEPEND_LIST) bindepend

$(DEPEND_LIST) : FORCE
	@$(ECHO) 
	@$(CD) $(@D); $(MAKE) depend

bindepend:
	@$(CD) $(BINDIR); $(MAKE) depend

FORCE :# DO NOT DELETE
