 # $Id$
 #
 # This file is part of the RHexLib Robot Control Software
 #
 #  The contents of this file are subject to the RHexLib Public
 # License Version 2.0 (the "License"); you may not use this file
 # except in compliance with the License. To obtain a copy of the
 # License, please contact <ulucs+rhexlib@cs.cmu.edu>.
 #
 #  Software distributed under the License is distributed on an "AS
 # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 # implied. See the License for the specific language governing
 # rights and limitations under the License.
 #
 #  The Original Code is RHexLib Robot Control Software.
 #
 #  The Initial Developer of the Original Code is
 #    Carnegie Mellon University
 #
 #  Portions created by 
 #    Carnegie Mellon University
 # are Copyright (C) 2003.  All Rights Reserved.
 #
 #  Contributor(s): Uluc Saranli.
 #
 #  Alternatively, the contents of this file may be used under the
 # terms of the GNU Public license (the "GPL License"), in which
 # case the provisions of the GNU Public License are applicable
 # instead of those above.  If you wish to allow use of your version
 # of this file only under the terms of the GPL License and not to
 # allow others to use your version of this file under the RHexLib
 # Public License, indicate your decision by deleting the provisions
 # above and replace them with the notice and other provisions
 # required by the GPL License.  If you do not delete the provisions
 # above, a recipient may use your version of this file under either
 # the RHexLib Public License or the GPL License."
 #
 # Uluc Saranli <ulucs+rhexlib@cs.cmu.edu>

# First, check whether we can access the RHexLib directory.
ifndef SIMLIB_DIR
$(error SIMLIB_DIR environment variable is not defined!)
endif

include $(SIMLIB_DIR)/tools/tooldefs.mk

DIRNAME     = SimLib
VERSION     = 1.0
PACKAGENAME = SimLib
BINDIR      = examples
LIBDIR      = lib

LIBS = 	src/libcdl/libsimcdl.a src/libpcm/libsimpcm.a src/librti/libsimrti.a src/libgraphics/libsimgraphics.a

### Derived parameters

CLEAN_LIST = $(LIBS:.a=.clean)
CLEANOBJ_LIST = $(LIBS:.a=.cleanobj)
FILES_LIST = $(LIBS:.a=.dir)
DEPEND_LIST = $(LIBS:.a=.dep)

include $(SIMLIB_DIR)/tools/flagdefs.mk

### Standard targets.

.PHONY : default libs libdir exec $(BINDIR) all
.PHONY : clean $(CLEAN_LIST) cleanobj $(CLEANOBJ_LIST) 
.PHONY : wc depend dep bindepend 
.PHONY : $(BINDIR) $(LIBS)

default : all

libs : $(LIBS)

libdir :
	@if test ! -d $(LIBDIR); then \
		echo "Creating lib directory"; \
		mkdir -p $(LIBDIR); \
		chmod 775 $(LIBDIR); \
	fi

all : libs exec

exec :  $(BINDIR)

$(BINDIR) : 
	@$(ECHO) Compiling $@ ...
	@$(MAKE) -C $@

$(MODELDIR) : 
	@$(ECHO) Compiling $@ ...
	@$(MAKE) -C $@

$(LIBS): libdir
	@$(ECHO) Compiling $(@D) ...
	@$(MAKE) --no-print-directory -C $(@D) $(@F)
	@$(LN) ../$(@) $(LIBDIR)

clean : $(CLEAN_LIST)
	@for dir in $(BINDIR); do \
	  $(ECHO) Cleaning $$dir...; \
	  $(MAKE) --no-print-directory -C $$dir clean; \
	done
	@$(RM) -f lib/*.a

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

cleanobj : $(CLEANOBJ_LIST)
	@for dir in $(BINDIR); do \
	  @$(MAKE) --no-print-directory -C $$dir cleanobj; \
	done

$(CLEANOBJ_LIST): FORCE
	@$(MAKE) -C $(@D) cleanobj

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

depend dep : $(DEPEND_LIST) bindepend

$(DEPEND_LIST) : FORCE
	@$(MAKE) -C $(@D) depend

bindepend:
	for dir in $(BINDIR); do \
	  $(MAKE) -C $$dir depend; \
	done

FORCE :
