# ----------------------------------------------------
# Copyright (C) 1997, Ericsson Telecommunications
# Author: Magnus Frberg, Lars Thorsen, Bjrn Gustavsson
# ----------------------------------------------------
CC_ROOT := $(shell pwd | sed 's/erts.*$$//')
AUTOCONF := $(CC_ROOT)erts/autoconf
TARGET := $(shell $(AUTOCONF)/config.guess)
include $(CC_ROOT)/internal_tools/make/$(TARGET)/otp.mk

ROOTDIR = $(CC_ROOT)erts

# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------
RELEASE_PATH = $(ROOTDIR)/release/$(TARGET)

ifeq ($(findstring win32,$(TARGET)),win32)

# This is a temporary fix until start_sasl is moved within the sasl app
# and each application can specify it's actions at install time (in Erlang).
INSTALL_SCRIPTS = \
	start_clean.script \
	start_clean.boot \
	start_sasl.boot \
	start_sasl.script
else
ifeq ($(findstring vxworks,$(TARGET)),vxworks)

INSTALL_SCRIPTS = \
	start_clean.script \
	start_clean.boot \
	start_sasl.boot \
	start_sasl.script
else

INSTALL_SCRIPTS = \
	start_clean.script \
	start_clean.boot
endif
endif 

REL_SCRIPTS = \
	start_clean.rel \
	start_sasl.rel \
	start_all_example.rel

SASL_PATH = -pa $(ROOTDIR)/lib/sasl/ebin 
ELIBROOT = ../..
ELIBDIR = $(ELIBROOT)/lib
SCRIPT_PATH = -I$(ELIBDIR)/kernel/ebin -I$(ELIBDIR)/stdlib/ebin -I$(ELIBDIR)/sasl/ebin
SCRIPT_FLAGS = +'{machine,$(EMULATOR)}'

include ./vsn.mk
include ../vsn.mk

debug opt instr script: rel $(INSTALL_SCRIPTS)

rel:	$(REL_SCRIPTS)

start_clean.script start_clean.boot:	start_clean.rel
	$(ERLC) $(SASL_FLAGS) $(SCRIPT_FLAGS) $(SASL_PATH) $(SCRIPT_PATH) $<

start_sasl.script start_sasl.boot:	start_sasl.rel
	$(ERLC) $(SASL_FLAGS) $(SCRIPT_FLAGS) $(SASL_PATH) $(SCRIPT_PATH) $<

start_clean.rel:	start_clean.rel.src
	sed -e 's;%SYS_VSN%;$(SYSTEM_VSN);' \
            -e 's;%ERTS_VSN%;$(VSN);' \
            -e 's;%KERNEL_VSN%;$(KERNEL_VSN);' \
            -e 's;%STDLIB_VSN%;$(STDLIB_VSN);' \
          start_clean.rel.src > start_clean.rel

start_sasl.rel:	start_sasl.rel.src
	sed -e 's;%SYS_VSN%;$(SYSTEM_VSN);' \
            -e 's;%ERTS_VSN%;$(VSN);' \
            -e 's;%KERNEL_VSN%;$(KERNEL_VSN);' \
            -e 's;%STDLIB_VSN%;$(STDLIB_VSN);' \
            -e 's;%SASL_VSN%;$(SASL_VSN);' \
          start_sasl.rel.src > start_sasl.rel

start_all_example.rel:	start_all_example.rel.src
	sed -e 's;%SYS_VSN%;$(SYSTEM_VSN);' \
            -e 's;%ERTS_VSN%;$(VSN);' \
            -e 's;%KERNEL_VSN%;$(KERNEL_VSN);' \
            -e 's;%STDLIB_VSN%;$(STDLIB_VSN);' \
            -e 's;%SOCKETS_VSN%;$(SOCKETS_VSN);' \
            -e 's;%SASL_VSN%;$(SASL_VSN);' \
            -e 's;%OS_MON_VSN%;$(OS_MON_VSN);' \
            -e 's;%MNESIA_VSN%;$(MNESIA_VSN);' \
            -e 's;%SNMP_VSN%;$(SNMP_VSN);' \
            -e 's;%IG_VSN%;$(IG_VSN);' \
            -e 's;%INETS_VSN%;$(INETS_VSN);' \
          start_all_example.rel.src > start_all_example.rel

## Special target used from $(CC_ROOT)/erts/Makefile.
$(CC_ROOT)erts/bin/start.script:
	$(ERLC) $(SASL_PATH) \
	$(SCRIPT_PATH) $(SCRIPT_FLAGS) +otp_build -o $@ start_clean.rel

$(CC_ROOT)erts/bin/start_sasl.script:
	$(ERLC) $(SASL_PATH) \
	$(SCRIPT_PATH) $(SCRIPT_FLAGS) +otp_build -o $@ start_sasl.rel

clean:
	$(RM) $(REL_SCRIPTS) $(INSTALL_SCRIPTS)

docs:


# ----------------------------------------------------
# Release Target
# ---------------------------------------------------- 
include $(CC_ROOT)/internal_tools/make/otp_release_targets.mk

release_spec: script
	$(INSTALL_DIR) $(RELEASE_PATH)/releases/$(SYSTEM_VSN)
	$(INSTALL_DATA) $(INSTALL_SCRIPTS) $(REL_SCRIPTS) \
	   $(RELEASE_PATH)/releases/$(SYSTEM_VSN)
	$(INSTALL_DATA) start_clean.script $(RELEASE_PATH)/releases/$(SYSTEM_VSN)/start.script
	$(INSTALL_DATA) start_clean.boot $(RELEASE_PATH)/releases/$(SYSTEM_VSN)/start.boot

#
# This is very different from above, since it installs source, not the
# ready scripts.
#
RELEASE_SRC_PATH = \
	$(ROOTDIR)/release/$(TARGET)/erts-$(VSN)/system/start_scripts

release_src_spec:
	$(INSTALL_DIR) $(RELEASE_SRC_PATH)
	$(INSTALL_DATA) Makefile start_all_example.rel.src \
		start_clean.rel.src start_sasl.rel.src $(RELEASE_SRC_PATH)
	egrep -v -i '(sockets|sasl|os_mon|mnesia|snmp|ig|inets)' < vsn.mk > \
		$(RELEASE_SRC_PATH)/vsn.mk

release_docs_spec:

TRUE:

