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
ifdef IMP_LIB_EXT
	@$(MAKE) INSTSRC=$(TOPDIR)/bin/$(OS)$(ARCH)/osgPlugins INSTDEST=$(INST_EXAMPLES)/osgPlugins \
		INSTALL?="$(INSTBINCMD)" __install
endif
	@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


