<commit_before>#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1996-2015. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
#
# %CopyrightEnd%
#

ifdef BOOTSTRAP
EGEN=$(BOOTSTRAP_TOP)/lib/stdlib/egen
EBIN=$(BOOTSTRAP_TOP)/lib/stdlib/ebin
endif

include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk

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

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

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
MODULES= \
	array \
	base64 \
	beam_lib \
	binary \
	c \
	calendar \
	dets \
	dets_server \
	dets_sup \
	dets_utils \
	dets_v8 \
	dets_v9 \
	dict \
	digraph \
	digraph_utils \
	edlin \
	edlin_expand \
	epp \
	erl_anno \
	erl_bits \
	erl_compile \
	erl_eval \
	erl_expand_records \
	erl_internal \
	erl_lint \
	erl_parse \
	erl_posix_msg \
	erl_pp \
	erl_scan \
	erl_tar \
	error_logger_file_h \
	error_logger_tty_h \
	escript \
	ets \
	eval_bits \
	file_sorter \
	filelib \
	filename \
	gb_trees \
	gb_sets \
	gen \
	gen_event \
	gen_fsm \
	gen_server \
	io \
	io_lib \
	io_lib_format \
	io_lib_fread \
	io_lib_pretty \
	lib \
	lists \
	log_mf_h \
	maps \
	math \
	ms_transform \
	otp_internal \
	orddict \
	ordsets \
	re \
	pool \
	proc_lib \
	proplists \
	qlc \
	qlc_pt \
	queue \
	random \
	sets \
	shell \
	shell_default \
	slave \
	sofs \
	string \
	supervisor \
	supervisor_bridge \
	sys \
	timer \
	unicode \
	win32reg \
	zip

HRL_FILES= \
	../include/erl_compile.hrl \
	../include/erl_bits.hrl \
	../include/ms_transform.hrl \
	../include/qlc.hrl \
	../include/zip.hrl

INTERNAL_HRL_FILES= dets.hrl

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

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

APP_FILE= stdlib.app

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

APPUP_FILE= stdlib.appup

APPUP_SRC= $(APPUP_FILE).src
APPUP_TARGET= $(EBIN)/$(APPUP_FILE)

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

ifeq ($(NATIVE_LIBS_ENABLED),yes)
ERL_COMPILE_FLAGS += +native
endif
ERL_COMPILE_FLAGS += -I../include -I../../kernel/include -Werror

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

debug opt: $(TARGET_FILES) 

clean:
	rm -f $(TARGET_FILES)
	rm -f core
	rm -f erl_parse.erl

docs:

# This is a trick so that the preloaded files will get the correct type
# specifications.
primary_bootstrap_compiler: \
  $(BOOTSTRAP_COMPILER)/ebin/epp.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_scan.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_parse.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_lint.beam \
  $(BOOTSTRAP_COMPILER)/ebin/io.beam \
  $(BOOTSTRAP_COMPILER)/ebin/otp_internal.beam

$(BOOTSTRAP_COMPILER)/ebin/erl_parse.beam: erl_parse.yrl
	$(gen_verbose)
	$(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/egen erl_parse.yrl
	$(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(BOOTSTRAP_COMPILER)/egen/erl_parse.erl

$(BOOTSTRAP_TOP)/lib/stdlib/egen/erl_parse.erl: erl_parse.yrl
	$(yecc_verbose)$(ERLC) $(YRL_FLAGS) -o$(BOOTSTRAP_TOP)/lib/stdlib/egen erl_parse.yrl

$(BOOTSTRAP_COMPILER)/ebin/%.beam: %.erl
	$(V_ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $<
<commit_msg>Ensure that erl_anno is used when building the primary bootstrap<commit_after>#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1996-2015. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
#
# %CopyrightEnd%
#

ifdef BOOTSTRAP
EGEN=$(BOOTSTRAP_TOP)/lib/stdlib/egen
EBIN=$(BOOTSTRAP_TOP)/lib/stdlib/ebin
endif

include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk

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

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

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
MODULES= \
	array \
	base64 \
	beam_lib \
	binary \
	c \
	calendar \
	dets \
	dets_server \
	dets_sup \
	dets_utils \
	dets_v8 \
	dets_v9 \
	dict \
	digraph \
	digraph_utils \
	edlin \
	edlin_expand \
	epp \
	erl_anno \
	erl_bits \
	erl_compile \
	erl_eval \
	erl_expand_records \
	erl_internal \
	erl_lint \
	erl_parse \
	erl_posix_msg \
	erl_pp \
	erl_scan \
	erl_tar \
	error_logger_file_h \
	error_logger_tty_h \
	escript \
	ets \
	eval_bits \
	file_sorter \
	filelib \
	filename \
	gb_trees \
	gb_sets \
	gen \
	gen_event \
	gen_fsm \
	gen_server \
	io \
	io_lib \
	io_lib_format \
	io_lib_fread \
	io_lib_pretty \
	lib \
	lists \
	log_mf_h \
	maps \
	math \
	ms_transform \
	otp_internal \
	orddict \
	ordsets \
	re \
	pool \
	proc_lib \
	proplists \
	qlc \
	qlc_pt \
	queue \
	random \
	sets \
	shell \
	shell_default \
	slave \
	sofs \
	string \
	supervisor \
	supervisor_bridge \
	sys \
	timer \
	unicode \
	win32reg \
	zip

HRL_FILES= \
	../include/erl_compile.hrl \
	../include/erl_bits.hrl \
	../include/ms_transform.hrl \
	../include/qlc.hrl \
	../include/zip.hrl

INTERNAL_HRL_FILES= dets.hrl

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

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

APP_FILE= stdlib.app

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

APPUP_FILE= stdlib.appup

APPUP_SRC= $(APPUP_FILE).src
APPUP_TARGET= $(EBIN)/$(APPUP_FILE)

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

ifeq ($(NATIVE_LIBS_ENABLED),yes)
ERL_COMPILE_FLAGS += +native
endif
ERL_COMPILE_FLAGS += -I../include -I../../kernel/include -Werror

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

debug opt: $(TARGET_FILES) 

clean:
	rm -f $(TARGET_FILES)
	rm -f core
	rm -f erl_parse.erl

docs:

# This is a trick so that the preloaded files will get the correct type
# specifications.
primary_bootstrap_compiler: \
  $(BOOTSTRAP_COMPILER)/ebin/epp.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_anno.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_scan.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_parse.beam \
  $(BOOTSTRAP_COMPILER)/ebin/erl_lint.beam \
  $(BOOTSTRAP_COMPILER)/ebin/io.beam \
  $(BOOTSTRAP_COMPILER)/ebin/otp_internal.beam

$(BOOTSTRAP_COMPILER)/ebin/erl_parse.beam: erl_parse.yrl
	$(gen_verbose)
	$(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/egen erl_parse.yrl
	$(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(BOOTSTRAP_COMPILER)/egen/erl_parse.erl

$(BOOTSTRAP_TOP)/lib/stdlib/egen/erl_parse.erl: erl_parse.yrl
	$(yecc_verbose)$(ERLC) $(YRL_FLAGS) -o$(BOOTSTRAP_TOP)/lib/stdlib/egen erl_parse.yrl

$(BOOTSTRAP_COMPILER)/ebin/%.beam: %.erl
	$(V_ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $<

{'fraction_non_alphanumeric': 0.2396341463414634, 'fraction_numerical': 0.003902439024390244, 'mean_word_length': 2.1253810975609757, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1169402', 'n_tokens_mistral': 3108, 'n_tokens_neox': 2999, 'n_words': 596}