install  : 
	@rm -f $(INSTLOGFILE)
	@$(MAKE) __instbin __instdev
	@cat $(INSTLOGFILE)

instbin instdev : 
	@$(MAKE) __$@

__instbin:
	@$(MAKE) INSTSRC=$(TOPDIR)/bin/$(OS)$(ARCH) INSTDEST=$(INST_EXAMPLES) \
		INSTALL?="$(INSTBINCMD)" __install
	@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH) INSTDEST=$(INST_LIBS) \
		INSTALL?="$(INSTBINCMD)" __install
	@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH)/osgPlugins INSTDEST=$(INST_PLUGINS)\
		INSTALL?="$(INSTBINCMD)" __install
	@echo  >> $(INSTLOGFILE)
	@echo "    Run-time environment installation successful.  Add "\
	  >> $(INSTLOGFILE)
	@echo "        $(INST_EXAMPLES)"\
	  >> $(INSTLOGFILE)
	@echo "    to your PATH environmental variable, and"\
	  >> $(INSTLOGFILE)
	@echo "        $(INST_LIBS) and $(INST_PLUGINS)"\
	  >> $(INSTLOGFILE)
	@echo "    to your LD_LIBRARY_PATH if not already present."\
	  >> $(INSTLOGFILE)
	@echo >> $(INSTLOGFILE)
	

__instdev:
	@for d in `ls -1  $(TOPDIR)/include/ | grep -v CVS`; \
	do\
	  if [ -d $(TOPDIR)/include/$$d ]; \
	  then \
	    $(MAKE) INSTSRC=$(TOPDIR)/include/$$d INSTDEST=$(INST_INCLUDE)/$$d\
		   INSTALL?="$(INSTDEVCMD)" __install;\
	  fi\
	done
	@$(TOPDIR)/Make/instexamplesrc \
		$(TOPDIR)\
		$(INST_LIBS)\
		$(INST_INCLUDE)\
		$(INST_SRC)\
		$(INST_EXAMPLE_SRC)\
		"$(INSTDEVCMD)"\
		"$(C++)"\
		"$(OPTF)"\
		"$(DEPARG)"\
		"$(LINKARGS)"\
		"$(OSG_LIBS)"\
		"$(FREETYPE_LIB)"\
		"$(GLUT_LIB)"\
		"$(GL_LIBS)"\
		"$(X_LIBS)"\
		"$(SOCKET_LIBS)"\
		"$(OTHER_LIBS)"\
		"$(TIFF_LIB)"\
        $(MAKE)


	@echo\
	  >> $(INSTLOGFILE)
	@echo "    Development environment installation successful.  Add"\
	  >> $(INSTLOGFILE)
	@echo "        -I$(INST_INCLUDE)"\
	  >> $(INSTLOGFILE)
	@echo "    compile flag when compiling with OSG header files."\
	  >> $(INSTLOGFILE)
	@echo "    Example programs can be found at $(INST_EXAMPLE_SRC)."\
	  >> $(INSTLOGFILE)
	@echo  >> $(INSTLOGFILE)
	  
instlinks : 
	@rm -f $(INSTLOGFILE)
	$(MAKE) INSTBINCMD="$(INSTLINKBINCMD)" __instbin
	$(MAKE) INSTDEVCMD="$(INSTLINKDEVCMD)" __instdev
	@cat $(INSTLOGFILE)

instlinksbin :
	@rm -f $(INSTLOGFILE)
	$(MAKE) INSTBINCMD="$(INSTLINKBINCMD)" __instbin
	@cat $(INSTLOGFILE)

instlinksdev :
	@rm -f $(INSTLOGFILE)
	@$(MAKE) INSTDEVCMD="$(INSTLINKDEVCMD)" __instdev
	@cat $(INSTLOGFILE)


instclean : instcleanbin instcleandev

instcleanbin :
	@$(MAKE) INSTSRC=$(TOPDIR)/bin/$(OS)$(ARCH) INSTDEST=$(INST_EXAMPLES) \
		INSTALL?="$(INSTBINCMD)" __instclean
	@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH) INSTDEST=$(INST_LIBS) \
		INSTALL?="$(INSTBINCMD)" __instclean
	@$(MAKE) INSTSRC=$(TOPDIR)/lib/$(OS)$(ARCH)/osgPlugins INSTDEST=$(INST_PLUGINS)\
		INSTALL?="$(INSTBINCMD)" __instclean

instcleandev :
	@for d in `ls -1  $(TOPDIR)/include/ | grep -v CVS`; \
	do\
	  if [ -d $(TOPDIR)/include/$$d ]; \
	  then \
	    $(MAKE) INSTSRC=$(TOPDIR)/include/$$d INSTDEST=$(INST_INCLUDE)/$$d\
		   INSTALL?="$(INSTDEVCMD)" __instclean;\
	  fi\
	done
	@for d in `ls -1  $(TOPDIR)/examples | grep -v CVS`; \
	do\
	  if [ -d $(TOPDIR)/examples/$$d ]; \
	  then \
	    $(MAKE) INSTSRC=$(TOPDIR)/examples/$$d INSTDEST=$(INST_EXAMPLE_SRC)/$$d\
		   INSTALL?="$(INSTDEVCMD)" __instclean;\
	  fi\
	done

__install :
	@[ -n "$(INSTSRC)" ] || echo "Internal error (INSTSRC definition)"
	@[ -n "$(INSTSRC)" ] && echo > /dev/null
	@[ -n "$(INSTDEST)" ] || echo "Internal error (INSTDEST definition)"
	@[ -n "$(INSTDEST)" ] && echo > /dev/null
	@[ -d $(INSTDEST) ] || mkdir -p $(INSTDEST)
	@cd $(INSTSRC);\
	THISDIR=`pwd`;\
	if [ -n "`ls -1 | grep -v CVS`" ]; then\
	  for f in `ls -1 | grep -v CVS`; \
	  do\
	    if [ -f $$f ] ; \
	    then \
	        INSTPATH=$$THISDIR/$$f; \
	        $(INSTALL) $$INSTPATH $(INSTDEST)/$$f;\
	    fi\
	  done\
	fi

__instclean :
	@[ -n "$(INSTSRC)" ] || echo "Internal error (INSTSRC definition)"
	@[ -n "$(INSTSRC)" ] && echo > /dev/null
	@[ -n "$(INSTDEST)" ] || echo "Internal error (INSTDEST definition)"
	@[ -n "$(INSTDEST)" ] && echo > /dev/null
	@if [ -d $(INSTDEST) ] ; \
	then\
	  cd $(INSTSRC);\
	  if [ -n "`ls -1 | grep -v CVS`" ]; then\
	    for f in `ls -1 | grep -v CVS`; \
	    do\
	      if [ -f $$f ] ; \
	      then \
	          echo "rm -f $(INSTDEST)/$$f";\
	          rm -f $(INSTDEST)/$$f;\
	      fi\
	    done\
	  fi;\
	  empty=`ls $(INSTDEST)`;\
	  if [ -z "$$empty" ];\
	  then\
        rm -rf $(INSTDEST);\
	  fi\
	fi


