#
# the makefile for the C libraries
#
# Currently, this is only used to clean the library directories.
#

CC =		cc
CFLAGS =	-O
MAKE =		make
AR =		ar
ARFLAGS =	rcv
RANLIB =	ranlib

VERSION =	v-dummy

LIBS =		posix-os/libposix-os.a \
		smlnj-runtime/libsmlnj-runt.a \
		smlnj-signals/libsmlnj-sig.a \
		smlnj-prof/libsmlnj-prof.a \
		smlnj-sockets/libsmlnj-sock.a \
		smlnj-time/libsmlnj-time.a \
		smlnj-date/libsmlnj-date.a \
		smlnj-math/libsmlnj-math.a \
		smlnj-mp/libsmlnj-mp.a \
		posix-error/libposix-error.a \
		posix-filesys/libposix-filesys.a \
		posix-io/libposix-io.a \
		posix-procenv/libposix-procenv.a \
		posix-process/libposix-process.a \
		posix-signal/libposix-signal.a \
		posix-sysdb/libposix-sysdb.a \
		posix-sysdb/libposix-tty.a \
		smlnj-ccalls/libsmlnj-ccalls.a

LIB_DIRS =	posix-os \
		smlnj-runtime \
		smlnj-signals \
		smlnj-sockets \
		smlnj-prof \
		smlnj-time \
		smlnj-date \
		smlnj-math \
		smlnj-mp \
		posix-error \
		posix-filesys \
		posix-io \
		posix-procenv \
		posix-process \
		posix-signal \
		posix-sysdb \
		posix-tty \
		smlnj-ccalls


# include directories for this level
#
OBJS_DIR =	../objs
INC_DIR =	../include
INCLUDES =	-I$(OBJS_DIR) -I$(INC_DIR)

# include directories for the library sub-directories
#
LIB_OBJS_DIR =	../../objs
LIB_INC_DIR =	../../include
LIB_INCLUDES =	-I$(LIB_OBJS_DIR) -I$(LIB_INC_DIR) -I..

#
# arguments to recursive make
#
LIB_MK_ARGS =		VERSION="$(VERSION)" \
			MAKE="$(MAKE)" \
			CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS="$(DEFS)" \
			AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
			RANLIB="$(RANLIB)" \
			INCLUDES="$(LIB_INCLUDES)"

all:	$(VERSION)
	for dir in $(LIB_DIRS); do \
	  (cd $$dir; echo "building $$dir"; $(MAKE) $(LIB_MK_ARGS)) ; \
	done
	rm -rf libcfuns.a

$(VERSION):
	rm -f v-* *.o libcfuns.a
	echo "$(VERSION)" > $(VERSION)

clean :
	for dir in $(LIB_DIRS); do \
	  (cd $$dir; echo "cleaning $$dir"; $(MAKE) MAKE="$(MAKE)" clean) ; \
	done
	rm -f v-* *.o

