#####################################################
# Top-level makefile for XMGR4                      #
#####################################################
# You should not change anything here.              #
# Please read INSTALL file in the current directory #
#####################################################

###############################
#
TOP = .
###############################

include $(TOP)/Make.arch

include $(TOP)/Make.conf

###############################

ifeq "$(USE_GUI)" "no"
ACEGR = gr
else
ACEGR = xmgr
endif

ACEGR_SEMI=$(ACEGR).semistatic
ACEGR_STATIC=$(ACEGR).static

all: $(ACEGR) acegr_np

acegr_np: Make.arch
	@cd acegr_np; $(MAKE)

$(ACEGR): Make.arch
	@cd src ; $(MAKE)
	
$(ACEGR_SEMI): Make.arch
	@cd src ; $(MAKE) $(ACEGR_SEMI)

$(ACEGR_STATIC): Make.arch
	@cd src ; $(MAKE) $(ACEGR_STATIC)

test:
	@cd examples ; ./dotest

install:
	@echo 
	@echo Please read INSTALL file
	@echo

install.all: install.bin \
	install.doc install.examples install.aux \
	install.contrib install.acegr_np

install.bin: $(ACEGR)
	mkdir -p $(XMGRDIR)/bin
	cp src/$(ACEGR) $(XMGRDIR)/bin
	strip $(XMGRDIR)/bin/$(ACEGR)
	chmod 755 $(XMGRDIR)/bin/$(ACEGR)

install.semistatic: Make.arch
	@cd src ; $(MAKE) $(ACEGR_SEMI)
	mkdir -p $(XMGRDIR)/bin
	cp src/$(ACEGR_SEMI) $(XMGRDIR)/bin
	strip $(XMGRDIR)/bin/$(ACEGR_SEMI)
	chmod 755 $(XMGRDIR)/bin/$(ACEGR_SEMI)

install.static: Make.arch
	@cd src ; $(MAKE) $(ACEGR_STATIC)
	mkdir -p $(XMGRDIR)/bin
	cp src/$(ACEGR_STATIC) $(XMGRDIR)/bin
	strip $(XMGRDIR)/bin/$(ACEGR_STATIC)
	chmod 755 $(XMGRDIR)/bin/$(ACEGR_STATIC)

links:
	ln -sf $(XMGRDIR)/bin/$(ACEGR) $(BINPATH)/$(ACEGR)
	ln -sf $(XMGRDIR)/bin/$(ACEGR) $(BINPATH)/grbatch

links.semistatic:
	ln -sf $(XMGRDIR)/bin/$(ACEGR_SEMI) $(BINPATH)/$(ACEGR)
	ln -sf $(XMGRDIR)/bin/$(ACEGR_SEMI) $(BINPATH)/grbatch

links.static:
	ln -sf $(XMGRDIR)/bin/$(ACEGR_STATIC) $(BINPATH)/$(ACEGR)
	ln -sf $(XMGRDIR)/bin/$(ACEGR_STATIC) $(BINPATH)/grbatch

install.doc:
	mkdir -p $(XMGRDIR)
	rm -rf $(XMGRDIR)/doc
	cp -r doc $(XMGRDIR)
	chmod -R +r $(XMGRDIR)/doc
	
install.examples:
	mkdir -p $(XMGRDIR)
	rm -rf $(XMGRDIR)/examples
	cp -r examples $(XMGRDIR)
	chmod -R +r $(XMGRDIR)/examples

install.aux:
	mkdir -p $(XMGRDIR)
	rm -rf $(XMGRDIR)/auxiliary
	cp -r auxiliary $(XMGRDIR)
	chmod -R +r $(XMGRDIR)/auxiliary

install.contrib:
	mkdir -p $(XMGRDIR)
	rm -rf $(XMGRDIR)/contrib
	cp -r contrib $(XMGRDIR)
	chmod -R +r $(XMGRDIR)/contrib

install.acegr_np:
	mkdir -p $(XMGRDIR)/lib
	cp acegr_np/libacegr_np.a $(XMGRDIR)/lib
	chmod 644 $(XMGRDIR)/lib/libacegr_np.a
	mkdir -p $(XMGRDIR)/include
	cp acegr_np/acegr_np.h $(XMGRDIR)/include
	chmod 644 $(XMGRDIR)/include/acegr_np.h

Make.arch:
	@echo
	@echo Please read INSTALL file in the current directory
	@echo
	@exit 1

clean:
	@cd src; $(MAKE) clean
	@cd acegr_np; $(MAKE) clean

distclean:
	@cd src; $(MAKE) distclean
	@cd acegr_np; $(MAKE) distclean
	rm -f Make.arch

changes: CHANGES

CHANGES: doc/CHANGES.html
	@lynx -dump doc/CHANGES.html > CHANGES

.PHONY: all acegr_np $(ACEGR) $(ACEGR_SEMI) $(ACEGR_STATIC) test 
.PHONY: install install.all install.bin install.semistatic install.static 
.PHONY: links links.semistatic links.static install.doc install.examples 
.PHONY: install.aux install.contrib install.acegr_np clean distclean

