# ------------------------------------ Initialization -----------------
ifndef CC
CC    = gcc
endif
ifndef AR
AR    = ar
endif
ifndef MAKE
MAKE  = make
endif
ifndef CP
CP = cp -f
endif
ifndef MKDIR
MKDIR  = mkdir -p
endif
ifndef LSLIST
LSLIST = `ls -1A | grep -v CVS`
endif
ifndef LIBDL
LIBDL  = -ldl
endif
ifndef TOP
TOP = ../..
endif
MOD_INSTALL_DIR = $(TOP)/share/os
export MOD_INSTALL_DIR TOP CP MKDIR MAKE AR CC LIBDL

# ------------------------------------ Actual Makefile Rulesets ------
all: 	install

$(MOD_INSTALL_DIR):
	$(MKDIR) $(MOD_INSTALL_DIR)

install:  $(MOD_INSTALL_DIR) modules
	@for i in $(LSLIST) ; \
		do  \
		if [ -d $$i ]; \
		then \
			echo Installing $$i ...; \
			cd $$i && $(MAKE) install; \
			cd .. ; \
		fi;\
		done

# ================================ Extension =====================
modules: 
	@for i in $(LSLIST) ; \
		do  \
		if [ -d $$i ]; \
		then \
			echo Building $$i ...; \
			cd $$i && $(MAKE); \
			cd .. ; \
		fi;\
		done


# ----------------------------- Cleanup
clean: 
	@for i in $(LSLIST) ; \
		do  \
		if [ -d $$i ]; \
		then \
			echo Cleaning $$i ...; \
			cd $$i && $(MAKE) clean && $(MAKE) uninstall; \
			cd .. ; \
		fi;\
		done

