SHELL=/bin/sh

all: src samples utils other

src::
	@echo "entering directory src building all"
	@cd src; ${MAKE} all

samples::
	@echo "entering directory samples building all"
	@cd samples; ${MAKE} all

utils::
	@echo "entering directory utils building all"
	@cd utils; ${MAKE} all

other::
	@echo "entering directory other building all"
	@cd other; ${MAKE} all

config:: configure
configure::
	@autoconf
	@cat configure \
	  | sed "s/config.cache/\$$OSTYPE.config.cache/g" \
	  | sed "s/config.status/\$$OSTYPE.config.status/g" \
	  > configure1
	@chmod a+x configure1
	@mv configure1 configure

makefiles:: recreate
Makefiles:: recreate
recreate::
	@setup/general/createall

distribute:: distrib
distrib_other::
	@echo "entering directory other creating distribution files"
	@cd other; ${MAKE} -k distrib_other
distrib_utils::
	@echo "entering directory utils creating distribution files"
	@cd utils; ${MAKE} -k distrib_utils

distrib:: distrib_other distrib_utils
	@if test ! -d distrib ; then mkdir distrib; fi;
	@(curr=`pwd`; direc=`basename $$curr`;\
	 (cd ..; \
	  echo creating distrib/$$direc.tar from the current directory;\
	  tar -cf /tmp/$$direc.tar \
	    $$direc/COPYING\
	    $$direc/INSTALL\
	    $$direc/Makefile\
	    $$direc/template.mak\
	    $$direc/configure\
	    $$direc/configure.in\
	    $$direc/config.guess\
	    $$direc/config.sub\
	    $$direc/install-sh\
	    $$direc/other/Makefile \
	    $$direc/utils/Makefile \
	    $$direc/setup/shared \
	    ;\
	  for each in misc docs wx src setup samples; do \
	    tar -rf /tmp/$$direc.tar \
	      `\
	       find $$direc/$$each -type f \
	       | fgrep -vf $$direc/system.list \
	       | grep -v "$$direct/setup/shared" \
	       | grep -v "~" \
	       | grep -v "#" \
	      ` ;\
	  done; \
	  echo compressing $$direc.tar to $$direc.tgz;\
	  gzip -c /tmp/$$direc.tar > $$direc/distrib/$$direc.tgz;\
	  rm /tmp/$$direc.tar;\
	 )\
	)

.DEFAULT::
	@for i in src samples utils other; do \
	  echo "entering directory $$i building $@"; \
	  (cd $$i; ${MAKE} -k $@) \
	done


