#
#         Top level Makefile for building the CIFLIB C API applications
#         and all supporting libraries.
#
SHELL=/bin/sh
MAKE=make
MAKEFILE=Makefile
DIRS = bin include lib
FILES  = Makefile README
ETCFILES = cifinstall export_list exportPackage.pl \
				fileUpdate.pl LICENSE make.platform.gnu \
				make.platform.osf make.platform.sgi6 \
				make.platform.sunos5 platform.sh VERSION

LIBDIRS = ciflib-common-v3.01 regex-v2 ciflib-v3.01a ciflib-C-api-v3.01

all:	compile

build:  checkout compile

testall:   test

checkall:   check checkndb checkcbf

testclass:   compile
	cd ciflib-v3.01a; $(MAKE) -f $(MAKEFILE) test

test:   compile
	cd ciflib-C-api-v3.01; $(MAKE) -f $(MAKEFILE) test

check:   compile
	cd ciflib-C-api-v3.01; $(MAKE) -f $(MAKEFILE) check

#	
checkout:
	@for libdir in $(LIBDIRS); do \
		echo getting  $$libdir; \
		(cvs co $$libdir) || exit 1; \
	done
#
update:
	@for libdir in $(LIBDIRS); do \
		echo updating  $$libdir; \
		(cd $$libdir && cvs update) || exit 1; \
	done
#
compile:
	@sh -c 'cd ./etc; ./platform.sh'
	@for libdir in $(LIBDIRS); do \
		echo " "; \
		echo "------------------------------------------------------------"; \
		echo "**** Making $$libdir ****"; \
		echo "------------------------------------------------------------"; \
		(cd $$libdir && $(MAKE) -f $(MAKEFILE) "OPT=-O" install) || exit 1; \
	done

debug:
	@sh -c 'cd ./etc; ./platform.sh'
	@for libdir in $(LIBDIRS); do \
		echo " "; \
		echo "------------------------------------------------------------"; \
		echo "**** Making (debug) $$libdir ****"; \
		echo "------------------------------------------------------------"; \
		(cd $$libdir && $(MAKE) -f $(MAKEFILE)  "OPT=-g" install) || exit 1; \
	done


commit:
	@for libdir in $(LIBDIRS); do \
		echo commiting changes in $$libdir; \
		(cd $$libdir && cvs commit) || exit 1; \
	done
#
libclean:
	@echo "cleaning project directory"
	@(rm -rf ./lib/[ABD-Za-z0-9]*)
	@(rm -rf ./include/[ABD-Za-z0-9]*)
	@(rm -rf ./include/Cif*)
	@(rm -rf ./bin/[ABD-Za-z0-9]*)
#
distclean:   
	@for libdir in $(LIBDIRS); do \
		echo removing $$libdir; \
		(rm -rf $$libdir) || exit 1; \
	done
#
clean: 
	@for libdir in $(LIBDIRS); do \
		echo cleaning $$libdir; \
		(cd $$libdir && $(MAKE) -f $(MAKEFILE) clean) || exit 1; \
	done
#
export: clean
	@mkdir -p ../XXX
	@cp -r $(DIRS) ../XXX
	@cp  $(FILES) ../XXX
	@cd ../XXX;mkdir -p etc
#	@cd etc; perl fileUpdate.pl export_list $(ETCFILES) ../../XXX/etc
	@cd etc; cp $(ETCFILES) ../../XXX/etc
	@for libdir in $(LIBDIRS); do \
		echo exporting $$libdir; \
		(cd $$libdir && $(MAKE) -f $(MAKEFILE) "EXPORT_DIR=export_dir" export) || exit 1; \
		mv $$libdir/export_dir ../XXX/$$libdir;\
	done
	@perl ./etc/exportPackage.pl ./etc/VERSION ../XXX
####


