## Copyright 1992 OTC LIMITED
## Copyright 1995 DUMPLETON SOFTWARE CONSULTING PTY LIMITED
##
## Note: This Makefile requires GNU make or makeit.

## Initialisation.

ifeq "$(SRCDIR)" ""
SRCDIR := .
endif

BLDROOT := .
SRCROOT := $(SRCDIR)/$(BLDROOT)

MODULES := install
NOMK := YES

include $(SRCROOT)/project/init.mk

## Local definitions.

SUBDIRS := util makeit host include man lib bin

## Makeit modules.

include $(SRCROOT)/project/modules.mk

## Local rules.

install.all :: install.setup

install.all ::
	$(MAKE) C++COMPILER=$(firstword $(C++COMPILERS)) clean
ifeq "$(DONTSTOPBUILD)" "YES"
	@ FAILED=""; for i in $(C++COMPILERS); \
	do \
	  echo $(MAKE) C++COMPILER=$$i OSE_BUILDALL=YES install.subdirs; \
	  $(MAKE) C++COMPILER=$$i OSE_BUILDALL=YES install.subdirs \
	   || FAILED="$$FAILED $$i"; \
	  echo $(MAKE) C++COMPILER=$$i clean; \
	  $(MAKE) C++COMPILER=$$i clean \
	   || exit 1; \
	done; \
	echo; \
	echo "**********************************************************"; \
	echo; \
	echo "The following compilers failed: $(FAILED)" ; \
	echo; \
	echo "**********************************************************"; \
	echo
else
	@ for i in $(C++COMPILERS); \
	do \
	  echo $(MAKE) C++COMPILER=$$i OSE_BUILDALL=YES install.subdirs; \
	  $(MAKE) C++COMPILER=$$i OSE_BUILDALL=YES install.subdirs \
	   || exit 1; \
	  echo $(MAKE) C++COMPILER=$$i clean; \
	  $(MAKE) C++COMPILER=$$i clean \
	   || exit 1; \
	done
endif

install.all :: install.always

$(OSE_ROOT) :
	@echo
	@echo "$(OSE_ROOT) must already exist, create it manually"
	@echo
	exit 1

install.setup :: $(OSE_ROOT)
	- mkdir $(OSE_HOME)
	- mkdir $(OSE_HOME)/bin
	- mkdir $(OSE_HOME)/doc
	- mkdir $(OSE_HOME)/include
	- mkdir $(OSE_HOME)/lib
	- mkdir $(OSE_HOME)/man
	- mkdir $(OSE_HOME)/man/man1
	- mkdir $(OSE_HOME)/man/man3
	- mkdir $(OSE_HOST_HOME)
	- mkdir $(OSE_HOST_HOME)/bin
	- mkdir $(OSE_HOST_HOME)/etc
	- mkdir $(OSE_HOST_HOME)/include
	- mkdir $(OSE_HOST_HOME)/lib
	- mkdir $(OSE_HOST_HOME)/makeit
	echo $(OSE_RELEASE_NAME)pl$(OSE_MAINTENANCE_RELEASE) > \
	 $(OSE_HOST_HOME)/VERSION
	cp $(SRCDIR)/COPYING $(OSE_HOME)
	cp $(SRCDIR)/CHANGES-* $(OSE_HOME)

ifneq "$(wildcard util/make-3.73/make)" ""

install.always :: $(OSE_HOST_HOME)/etc/makeit $(OSE_HOME)/man/man1/makeit.1

$(OSE_HOST_HOME)/etc/makeit : util/make-3.73/make
	$(RM) $@
	cp $? $@
	chmod +x $@
	$(RM) $(?D)/config.cache

$(OSE_HOME)/man/man1/makeit.1 : util/make-3.73/make.man
	$(RM) $@
	cp $? $@
	chmod -w $@

else

install.always ::
	@echo
	@echo "**********************************************************"
	@echo
	@echo "The file 'util/make-3.73/make' does not exist. Ensure that"
	@echo "you therefore copy whatever version of GNU make you are"
	@echo "using to install OSE to the directory:"
	@echo
	@echo "  $(OSE_HOST_HOME)/etc"
	@echo
	@echo "Call the file 'makeit' when copied in to that directory."
	@echo
	@echo "**********************************************************"
	@echo

endif

install.makeit :: install.always
	$(MAKE) -C util/scripts install
	$(MAKE) -C makeit install
	$(MAKE) -C host install
	$(MAKE) -C include/makeit install
	$(MAKE) -C bin/makeit install
	$(MAKE) -C bin/makeit clean
	$(MAKE) -C bin/generic install
	$(MAKE) -C bin/generic clean
	$(MAKE) -C util/scripts clean

distclean.always ::
	$(RM) config.status
	$(RM) config.cache*

dist ::
	cp configure.fix configure
	autoconf configure.in | sed \
	 -e 's%^ac_err=`\(.*\)`%ac_err=`\1 | grep -v "^conftest.c$$"`%' \
	 -e 's%/dev/null%$$NUL%' >> configure

all.setup ::
	@echo
	@echo "**********************************************************"
	@echo
	@echo "Read the instructions in the INSTALL file. You should"
	@echo "be using the targets 'install.all' or 'install', not"
	@echo "the target which you have used."
	@echo
	@echo "**********************************************************"
	@echo
	exit 1
