#
###########################
#                         #
#  The Razorback Library  #
#         ,     ,         #
# (C) Andras Aszodi 2000. #
#                         #
###########################
#
# Razorback Top Makefile
# ==============================
# 
# Supported architectures:-
# 	SGI:-
#		"irix32": N32 ABI, MIPS-III ISA (R4k,R5k,R8k,R10k,R12k)
#		"irix64": N64 ABI, MIPS-IV ISA (R8k,R10k,R12k)
#	PC:-
#		"linux": ELF Linux/GCC
#	Alpha:-
#		"alpha": Tru64 UNIX with native compilers
# 

# The shell
SHELL = /bin/sh

# The platform-dependent macro definitions, made by the configure script
include Makefile.defs

# ---- MAIN RULES ----

# The first rule provides help.
help:
	@echo "Razorback configured for architecture \""$(ARCH)"\""
	@echo "Available commands:-"
	@echo "make compile: compile, do not install"
	@echo "make install: compile and install"
	@echo "make uninstall: remove libfiles from installed location"
	@echo "make clean: clean obj directories, but do not uninstall"
	@echo "make help: print this help"

# compile, do not install
compile:
	cd $(COBJDIR); $(MAKE) -f ../../Makefile all
	cd $(CCOBJDIR); $(MAKE) -f ../../Makefile all
	@echo "Razorback Version "$(MAJOR)"."$(MINOR)" ("$(ARCH)") compiled."
	@echo "Invoke 'make install' to install the compiled library."

# compile and install
LIBDIR=$(ARCHDIR)/$(ARCH)/lib
SHLIBDIR=$(LIBDIR)/shared
PTRDIR=$(LIBDIR)/cxx_repository	# Compaq Alpha native only
install: compile
	cp $(COBJDIR)/librazorback.a $(LIBDIR)
	cp $(COBJDIR)/librazorback.so.$(MAJOR).$(MINOR) $(SHLIBDIR)
	cp $(CCOBJDIR)/libRazorBack.a $(LIBDIR)
	cp $(CCOBJDIR)/libRazorBack.so.$(MAJOR).$(MINOR) $(SHLIBDIR)
	cd $(SHLIBDIR); \
	ln -s -f librazorback.so.$(MAJOR).$(MINOR) librazorback.so.$(MAJOR) ; \
	ln -s -f librazorback.so.$(MAJOR) librazorback.so ; \
	ln -s -f libRazorBack.so.$(MAJOR).$(MINOR) libRazorBack.so.$(MAJOR) ; \
	ln -s -f libRazorBack.so.$(MAJOR) libRazorBack.so
	if [ $(ARCH) = "alpha" ]; then rm -rf $(PTRDIR); \
		mkdir -p $(PTRDIR); \
		cd $(CCOBJDIR)/cxx_repository; \
		cp * $(PTRDIR); \
	fi
	@echo "Razorback Version "$(MAJOR)"."$(MINOR)" ("$(ARCH)") installed."

# uninstall
uninstall:
	cd $(LIBDIR); rm librazorback.a libRazorBack.a
	cd $(SHLIBDIR); rm librazorback.so libRazorBack.so; \
	rm librazorback.so.$(MAJOR) libRazorBack.so.$(MAJOR) ; \
	rm librazorback.so.$(MAJOR).$(MINOR) libRazorBack.so.$(MAJOR).$(MINOR)
	@echo "Razorback Version "$(MAJOR)"."$(MINOR)" ("$(ARCH)") uninstalled."

# clean
clean:
	cd $(COBJDIR); $(MAKE) -f ../../Makefile clean
	cd $(CCOBJDIR); $(MAKE) -f ../../Makefile clean
	
