# ----------------------------------------------------
# Copyright (C) 1997, Ericsson Telecommunications
# Author: Lars Thorsen
# ----------------------------------------------------
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

# ----------------------------------------------------
# Application version
# ----------------------------------------------------
include ../vsn.mk
VSN=$(STDLIB_VSN)

# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------
RELEASE_PATH= ../../../release/$(TARGET)
RELSYSDIR = $(RELEASE_PATH)/lib/stdlib-$(VSN)

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
MODULES= bplus_tree c calendar dets dict digraph \
	epp filelib filename gen gen_event gen_fsm gen_server \
	io io_lib io_lib_format io_lib_fread io_lib_pretty lib lists log_mf_h \
	math ordsets pg pool proc_lib queue random shell_default slave \
	string supervisor supervisor_bridge sys timer unix \
	edlin erl_compile erl_eval erl_id_trans erl_internal erl_lint \
	erl_parse erl_posix_msg erl_pp \
	erl_scan erl_tar error_logger_file_h error_logger_tty_h ets \
	shell regexp win32reg

HRL_FILES= ../include/erl_compile.hrl

ERL_FILES= $(MODULES:%=%.erl)

TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET)

APP_FILE= stdlib.app

APP_SRC= $(APP_FILE).src
APP_TARGET= $(EBIN)/$(APP_FILE)

# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
ERL_FLAGS += 
ERL_COMPILE_FLAGS += -I../include -I../../kernel/include

# ----------------------------------------------------
# Targets
# ----------------------------------------------------

debug opt: $(TARGET_FILES) 

clean:
	rm -f $(TARGET_FILES)
	rm -f core

docs:

# ----------------------------------------------------
# Special Build Targets
# ----------------------------------------------------

../ebin/erl_parse.jam: erl_parse.erl
	$(ERLC) -bjam -o../ebin +pj $<

BIF_TAB=../../../system/emulator/runtime/bif.tab
ERLANG_ERL=../../kernel/src/erlang.erl

erl_internal.erl: erl_internal.src $(ERLANG_ERL) $(BIF_TAB)
	erl -compile erl_mk_internal -s erl_mk_internal generate \
			$(BIF_TAB) \
			erl_internal.src \
			$(ERLANG_ERL) \
			erl_internal.erl

$(APP_TARGET): $(APP_SRC)
	sed -e 's;%VSN%;$(VSN);' $(APP_SRC) > $(APP_TARGET)

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

release_spec:
	$(INSTALL_DIR) $(RELSYSDIR)/src
	$(INSTALL_DATA) $(ERL_FILES) $(RELSYSDIR)/src
	$(INSTALL_DIR) $(RELSYSDIR)/include
	$(INSTALL_DATA) $(HRL_FILES) $(RELSYSDIR)/include
	$(INSTALL_DIR) $(RELSYSDIR)/ebin
	$(INSTALL_DATA) $(TARGET_FILES) $(RELSYSDIR)/ebin

release_src_spec: release_spec
	sed 's/^\(release_spec:\).*/\1/' Makefile > Makefile.dist
	$(INSTALL_DATA) Makefile.dist $(RELSYSDIR)/src/Makefile
	$(INSTALL_DATA) $(APP_SRC) erl_internal.src $(RELSYSDIR)/src
	$(INSTALL_DATA) ../Makefile ../vsn.mk $(RELSYSDIR)

release_docs_spec:

