# ----------------------------------------------------
# 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 erts/system/vsn.mk to port number for EPMD -- we will
# get an unwanted definiton for VSN too.  Therefore,
# we'll use KERNEL_VSN directly instead of assigning it to
# VSN which is done in other Makefiles.

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


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

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------

MODULES= application application_master application_controller dist_ac \
	application_starter \
	code code_server code_server_int code_aux\
	disk_log disk_log_1 disk_log_server disk_log_sup wrap_log_reader\
	erl_boot_server erl_distribution \
	erl_prim_loader erlang error_handler \
	erl_open_port \
	error_logger file ram_file global global_group global_search \
	 group heart init kernel \
	kernel_config net net_adm net_kernel rpc user user_drv user_sup \
	erl_ddll pg2 os erl_epmd_server erl_epmd erl_atom_cache \
	erl_external inet_db inet_dns inet_gethost_native inet_parse \
	inet_res inet_hosts \
        inet inet_udp inet_tcp \
        socks5 socks5_auth socks5_udp socks5_tcp inet6_tcp inet6_udp \
        seq_trace \
	gen_udp gen_tcp inet_config erl_reply inet_tcp_dist inet6_tcp_dist \
	md5

HRL_FILES= ../include/file.hrl ../include/inet.hrl

INTERNAL_HRL_FILES= application_master.hrl disk_log.hrl erl_epmd.hrl \
	net_address.hrl inet_dns.hrl inet_res.hrl \
	socks5.hrl inet_boot.hrl inet_config.hrl inet_int.hrl

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

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

APP_FILE= kernel.app

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

# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------

ERL_FLAGS += 
ERL_COMPILE_FLAGS += -I../include -Derlang_daemon_port=$(ERLANG_DAEMON_PORT)

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

debug opt: $(TARGET_FILES) 

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


docs:

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

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

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

release_spec: opt
	$(INSTALL_DIR) $(RELSYSDIR)/src
	$(INSTALL_DATA) $(ERL_FILES) $(RELSYSDIR)/src
	$(INSTALL_DATA) $(INTERNAL_HRL_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
	$(INSTALL_DATA) Makefile $(APP_SRC) $(RELSYSDIR)/src
	$(INSTALL_DATA) ../Makefile ../vsn.mk $(RELSYSDIR)

release_docs_spec:


