aboutsummaryrefslogtreecommitdiffstats
path: root/make
diff options
context:
space:
mode:
Diffstat (limited to 'make')
-rw-r--r--make/configure.in435
-rwxr-xr-xmake/emd2exml.in85
-rwxr-xr-xmake/fixup_development_runtime_dependencies2
-rw-r--r--make/lazy_configure.mk82
-rwxr-xr-xmake/make_emakefile.in2
-rw-r--r--make/otp.mk.in4
-rw-r--r--make/otp_ded.mk.in25
-rw-r--r--make/otp_patch_solve_forward_merge_version2
-rw-r--r--make/otp_release_targets.mk2
-rw-r--r--make/otp_version_tickets18
-rw-r--r--make/otp_version_tickets_in_merge3
11 files changed, 537 insertions, 123 deletions
diff --git a/make/configure.in b/make/configure.in
new file mode 100644
index 0000000000..c4b89c4f45
--- /dev/null
+++ b/make/configure.in
@@ -0,0 +1,435 @@
+dnl Process this file with autoconf to produce a configure script.
+
+dnl %CopyrightBegin%
+dnl
+dnl Copyright Ericsson AB 1998-2019. All Rights Reserved.
+dnl
+dnl Licensed under the Apache License, Version 2.0 (the "License");
+dnl you may not use this file except in compliance with the License.
+dnl You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+dnl
+dnl %CopyrightEnd%
+
+AC_PREREQ(2.8)dnl
+
+AC_INIT()
+
+LM_PRECIOUS_VARS
+
+default_cache_file=./config.cache
+
+if test "x$no_recursion" != "xyes" -a "x$OVERRIDE_CONFIG_CACHE" = "x"; then
+ # The no_recursion variable is not documented, but the only
+ # action we take on it is disabling caching which is safe!
+ if test "x$cache_file" != "x$default_cache_file"; then
+ echo "Ignoring the --cache-file argument since it can cause the system to be erroneously configured"
+ fi
+ echo "Disabling caching"
+ if test -f $cache_file; then
+ echo "Removing cache file $cache_file"
+ rm -f $cache_file
+ fi
+ cache_file=/dev/null
+fi
+
+case "X$ERL_TOP" in
+ X)
+ ;;
+ X/*)
+ test -f "$ERL_TOP/erts/emulator/beam/beam_emu.c" || {
+ AC_MSG_ERROR([Invalid \$ERL_TOP])
+ }
+ srcdir="$ERL_TOP";;
+ *)
+ AC_MSG_ERROR([\$ERL_TOP needs to be absolute]);;
+esac
+
+dnl How to set srcdir absolute is taken from the GNU Emacs distribution
+#### Make srcdir absolute, if it isn't already. It's important to
+#### avoid running the path through pwd unnecessary, since pwd can
+#### give you automounter prefixes, which can go away.
+case "${srcdir}" in
+ /* ) ;;
+ . )
+ ## We may be able to use the $PWD environment variable to make this
+ ## absolute. But sometimes PWD is inaccurate.
+ ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
+ CDPATH=
+ if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ;
+ then
+ srcdir="$PWD"
+ else
+ srcdir="`(cd ${srcdir}; pwd)`"
+ fi
+ ;;
+ * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
+esac
+
+#
+# Now srcdir is absolute and also the top of Erlang distribution, ERL_TOP.
+#
+test "X$ERL_TOP" != "X" || ERL_TOP="$srcdir"
+AC_SUBST(ERL_TOP)
+
+dnl
+dnl Aux programs are found in erts/autoconf
+dnl
+AC_CONFIG_AUX_DIR(${srcdir}/erts/autoconf)
+
+dnl
+dnl Figure out what we are running on. And in violation of autoconf
+dnl style assume that $host is also what we are building for. I would
+dnl like to get cross compiling working, since we actually have
+dnl systems we cross compile for!
+dnl
+
+if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
+ AC_CANONICAL_HOST
+else
+ host_os=$host
+fi
+
+TARGET=$host
+AC_SUBST(TARGET)
+
+if test "$cross_compiling" = "yes"; then
+ CROSS_COMPILING=yes
+else
+ CROSS_COMPILING=no
+fi
+AC_SUBST(CROSS_COMPILING)
+
+AC_ARG_ENABLE(bootstrap-only,
+AS_HELP_STRING([--enable-bootstrap-only],
+ [enable bootstrap only configuration]),
+[ if test "X$enableval" = "Xyes"; then
+ BOOTSTRAP_ONLY=yes
+ else
+ BOOTSTRAP_ONLY=no
+ fi
+],
+BOOTSTRAP_ONLY=no)
+
+AC_SUBST(BOOTSTRAP_ONLY)
+
+if test $CROSS_COMPILING = yes -a $BOOTSTRAP_ONLY = yes; then
+ AC_MSG_ERROR([Cannot both cross compile and build a bootstrap system])
+fi
+
+dnl Checks for programs.
+
+AC_PROG_CC
+AC_PROG_CXX
+AC_CHECK_TOOL(LD, [ld])
+
+LM_WINDOWS_ENVIRONMENT
+
+_search_path=/bin:/usr/bin:/usr/local/bin:$PATH
+
+AC_PATH_PROG(ENV, [env], false, $_search_path)
+if test "$ac_cv_path_ENV" = false; then
+ AC_MSG_ERROR([No 'env' command found])
+fi
+
+#
+# We need GNU make, complain if we can't find it
+#
+AC_MSG_CHECKING(for GNU make)
+# If there is a Makefile created we don't want make to start making, run
+# in a subdirectory and -f /dev/null
+MAKE_PROG=x
+if test X"$CLEARCASE_MAKE_COMPAT" = X"gnu" -a X"$CLEARCASE_ROOT" != X"" ; then
+ eval clearmake -version 2>&1 | grep clearmake > /dev/null 2>&1
+ case $? in
+ 0) MAKE_PROG="clearmake -V";;
+ *);;
+ esac
+fi
+if test X"$MAKE_PROG" = X"x"; then
+ mkdir conftestmake
+ if test -d conftestmake; then
+ cd conftestmake
+ for m in make gmake ggmake; do
+ eval $m --version -f /dev/null 2>&1 | grep GNU > /dev/null 2>&1
+ case $? in
+ 0) MAKE_PROG=$m ; break ;;
+ *) ;;
+ esac
+ done
+ cd ..
+ else
+ AC_MSG_ERROR(could not create subdirectory)
+ fi
+fi
+rm -rf conftestmake
+case $MAKE_PROG in
+ x) AC_MSG_RESULT(no)
+ AC_MSG_ERROR(GNU make is required!)
+ ;;
+ *) AC_MSG_RESULT(yes ($MAKE_PROG))
+ AC_SUBST(MAKE_PROG)
+ ;;
+esac
+
+AC_PROG_INSTALL
+if test X"${INSTALL}" = "X${ac_aux_dir}/install-sh -c" && test -f /usr/ucb/install ; then
+ case $host_os in
+ osf*) ;;
+ *) INSTALL="/usr/ucb/install -c" ;;
+ esac
+fi
+
+AC_PROG_LN_S
+AC_PROG_RANLIB
+LM_PROG_PERL5
+if test "$ac_cv_path_PERL" = false; then
+ AC_MSG_ERROR([Perl version 5 is required!])
+fi
+
+#
+# Get erts version from erts/vsn.mk
+#
+AC_MSG_CHECKING([ERTS version])
+[ERTS_VSN=`sed -n "s/^VSN[ ]*=[ ]*\(.*\)/\1/p" < $ERL_TOP/erts/vsn.mk`]
+AC_MSG_RESULT([$ERTS_VSN])
+AC_SUBST(ERTS_VSN)
+
+#
+# Get OTP release and OTP version from $ERL_TOP/OTP_VERSION
+#
+AC_MSG_CHECKING([OTP release])
+[OTP_REL=`cat $ERL_TOP/OTP_VERSION | sed "s|\([0-9]*\).*|\1|"`]
+AC_MSG_RESULT([$OTP_REL])
+AC_SUBST(OTP_REL)
+
+AC_MSG_CHECKING([OTP version])
+[OTP_VSN=`cat $ERL_TOP/OTP_VERSION`]
+AC_MSG_RESULT([$OTP_VSN])
+AC_SUBST(OTP_VSN)
+
+AC_ARG_ENABLE(parallel-configure,
+AS_HELP_STRING([--disable-parallel-configure], [disable parallel execution of configure scripts]))
+
+AC_ARG_ENABLE(dirty-schedulers,
+AS_HELP_STRING([--enable-dirty-schedulers], [enable dirty scheduler support]))
+
+AC_ARG_ENABLE(plain-emulator,
+AS_HELP_STRING([--enable-plain-emulator], [enable threaded non-smp emulator])
+AS_HELP_STRING([--disable-plain-emulator], [disable threaded non-smp emulator]))
+
+AC_ARG_WITH(termcap,
+AS_HELP_STRING([--with-termcap], [use termcap (default)])
+AS_HELP_STRING([--without-termcap],
+ [do not use any termcap libraries (ncurses,curses,termcap,termlib)]))
+
+AC_ARG_ENABLE(kernel-poll,
+AS_HELP_STRING([--enable-kernel-poll], [enable kernel poll support])
+AS_HELP_STRING([--disable-kernel-poll], [disable kernel poll support]))
+
+AC_ARG_ENABLE(sctp,
+AS_HELP_STRING([--enable-sctp], [enable sctp support (default)
+to on demand load the SCTP library in runtime])
+AS_HELP_STRING([--enable-sctp=lib], [enable sctp support
+to link against the SCTP library])
+AS_HELP_STRING([--disable-sctp], [disable sctp support]))
+
+AC_ARG_ENABLE(hipe,
+AS_HELP_STRING([--enable-hipe], [enable hipe support])
+AS_HELP_STRING([--disable-hipe], [disable hipe support]))
+
+AC_ARG_ENABLE(native-libs,
+AS_HELP_STRING([--enable-native-libs],
+ [compile Erlang libraries to native code]))
+
+AC_ARG_WITH(dynamic-trace,
+AS_HELP_STRING([--with-dynamic-trace={dtrace|lttng|systemtap}],
+ [specify use of dynamic trace framework, dtrace, lttng or systemtap])
+AS_HELP_STRING([--without-dynamic-trace],
+ [don't enable any dynamic tracing (default)]))
+AC_ARG_ENABLE(vm-probes,
+AS_HELP_STRING([--enable-vm-probes],
+ [add dynamic trace probes to the Beam VM (only possible if --with-dynamic-trace is enabled, and then default)]))
+AC_ARG_WITH(javac,
+AS_HELP_STRING([--with-javac=JAVAC], [specify Java compiler to use])
+AS_HELP_STRING([--with-javac], [use a Java compiler if found (default)])
+AS_HELP_STRING([--without-javac], [don't use any Java compiler]))
+
+AC_ARG_ENABLE(megaco_flex_scanner_lineno,
+AS_HELP_STRING([--disable-megaco-flex-scanner-lineno],
+ [disable megaco flex scanner lineno]))
+
+AC_ARG_ENABLE(megaco_reentrant_flex_scanner,
+AS_HELP_STRING([--disable-megaco-reentrant-flex-scanner],
+ [disable reentrant megaco flex scanner]))
+
+AC_ARG_WITH(ssl,
+AS_HELP_STRING([--with-ssl=PATH], [specify location of OpenSSL include and lib])
+AS_HELP_STRING([--with-ssl], [use SSL (default)])
+AS_HELP_STRING([--without-ssl], [don't use SSL]))
+
+AC_ARG_WITH(ssl-incl,
+AS_HELP_STRING([--with-ssl-incl=PATH],
+ [location of OpenSSL include dir, if different than specified by --with-ssl=PATH]))
+
+AC_ARG_WITH(ssl-rpath,
+AS_HELP_STRING([--with-ssl-rpath=yes|no|PATHS],
+ [runtime library path for OpenSSL. Default is 'yes', which equates to a
+ number of standard locations. If 'no', then no runtime
+ library paths will be used. Anything else should be a
+ comma separated list of paths.]))
+
+AC_ARG_ENABLE(dynamic-ssl-lib,
+AS_HELP_STRING([--disable-dynamic-ssl-lib],
+ [disable using dynamic openssl libraries]))
+
+AC_ARG_ENABLE(fips,
+AS_HELP_STRING([--enable-fips], [enable OpenSSL FIPS mode support])
+AS_HELP_STRING([--disable-fips], [disable OpenSSL FIPS mode support (default)]))
+
+AC_ARG_ENABLE(builtin-zlib,
+AS_HELP_STRING([--enable-builtin-zlib],
+ [force use of our own built-in zlib]))
+
+AC_ARG_ENABLE(esock,
+AS_HELP_STRING([--enable-esock], [enable builtin experimental socket (as a nif) support (default)])
+AS_HELP_STRING([--disable-esock], [disable builtin experimental socket (as a nif) support]))
+
+AC_ARG_ENABLE(sharing-preserving,
+AS_HELP_STRING([--enable-sharing-preserving],
+ [enable copying of terms without destroying sharing]))
+
+dnl This functionality has been lost along the way... :(
+dnl It could perhaps be nice to reintroduce some day; therefore,
+dnl it is not removed just commented out.
+dnl
+dnl #
+dnl # Set Erlang man page directory
+dnl #
+dnl AC_ARG_ENABLE(erlang-mandir,
+dnl [ --disable-erlang-mandir do not install Erlang man pages in a private directory],
+dnl [ case "$enableval" in
+dnl no) erl_mandir=$mandir ;;
+dnl *) erl_mandir='$(erlang_libdir)/man' ;;
+dnl esac ], erl_mandir='$(erlang_libdir)/man')
+dnl AC_SUBST(erl_mandir)
+
+AC_ARG_ENABLE(m64-build,
+AS_HELP_STRING([--enable-m64-build],
+ [build 64bit binaries using the -m64 flag to (g)cc]),
+[ case "$enableval" in
+ no) enable_m64_build=no ;;
+ *) enable_m64_build=yes ;;
+ esac
+],enable_m64_build=no)
+
+AC_ARG_ENABLE(m32-build,
+AS_HELP_STRING([--enable-m32-build],
+ [build 32bit binaries using the -m32 flag to (g)cc]),
+[ case "$enableval" in
+ no) enable_m32_build=no ;;
+ *) enable_m32_build=yes ;;
+ esac
+],enable_m32_build=no)
+
+AC_ARG_WITH(libatomic_ops,
+ AS_HELP_STRING([--with-libatomic_ops=PATH],
+ [specify and prefer usage of libatomic_ops in the ethread library]))
+
+m4_define(DEFAULT_SANITIZERS, [address,undefined])
+AC_ARG_ENABLE(sanitizers,
+ AS_HELP_STRING(
+ [--enable-sanitizers@<:@=comma-separated list of sanitizers@:>@],
+ [Default=DEFAULT_SANITIZERS]))
+
+AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+
+DEFAULT_VERBOSITY=0
+if test X${enable_silent_rules} = Xno; then
+ DEFAULT_VERBOSITY=1
+fi
+AC_SUBST(DEFAULT_VERBOSITY)
+
+if test X${enable_m64_build} = Xyes; then
+ CFLAGS="-m64 $CFLAGS"
+ export CFLAGS
+ LDFLAGS="-m64 $LDFLAGS"
+ export LDFLAGS
+fi
+if test X${enable_m32_build} = Xyes; then
+ CFLAGS="-m32 $CFLAGS"
+ export CFLAGS
+ LDFLAGS="-m32 $LDFLAGS"
+ export LDFLAGS
+fi
+
+NATIVE_LIBS_ENABLED=
+if test X${enable_native_libs} = Xyes -a X${enable_hipe} != Xno; then
+ NATIVE_LIBS_ENABLED=yes
+fi
+AC_SUBST(NATIVE_LIBS_ENABLED)
+
+if test $CROSS_COMPILING = no; then
+ case $host_os in
+ darwin*)
+ macosx_version=`sw_vers -productVersion`
+ test $? -eq 0 || {
+ AC_MSG_ERROR([Failed to execute 'sw_vers'; please provide it in PATH])
+ }
+ [case "$macosx_version" in
+ [1-9][0-9].[0-9])
+ int_macosx_version=`echo $macosx_version | sed 's|\([^\.]*\)\.\([^\.]*\)|\1\2|'`;;
+ [1-9][0-9].[0-9].[0-9])
+ int_macosx_version=`echo $macosx_version | sed 's|\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\)|\1\2\3|'`;;
+ [1-9][0-9].[1-9][0-9])
+ int_macosx_version=`echo $macosx_version | sed 's|\([^\.]*\)\.\([^\.]*\)|\1\200|'`;;
+ [1-9][0-9].[1-9][0-9].[0-9])
+ int_macosx_version=`echo $macosx_version | sed 's|\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\)|\1\20\3|'`;;
+ [1-9][0-9].[1-9][0-9].[1-9][0-9])
+ int_macosx_version=`echo $macosx_version | sed 's|\([^\.]*\)\.\([^\.]*\)\.\([^\.]*\)|\1\2\3|'`;;
+ *)
+ int_macosx_version=unexpected;;
+ esac]
+ test $int_macosx_version != unexpected || {
+ AC_MSG_ERROR([Unexpected MacOSX version ($macosx_version) returned by 'sw_vers -productVersion'; this configure script probably needs to be updated])
+ }
+ AC_TRY_COMPILE([
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > $int_macosx_version
+#error Compiling for a newer MacOSX version...
+#endif
+ ], [;],
+ [],
+ [AC_MSG_ERROR([
+
+ You are natively building Erlang/OTP for a later version of MacOSX
+ than current version ($macosx_version). You either need to
+ cross-build Erlang/OTP, or set the environment variable
+ MACOSX_DEPLOYMENT_TARGET to $macosx_version (or a lower version).
+
+])])
+ ;;
+ *)
+ ;;
+ esac
+fi
+
+ERL_DED
+
+AC_CONFIG_FILES([../Makefile output.mk ../make/$host/otp_ded.mk:../make/otp_ded.mk.in])
+AC_CONFIG_FILES([emd2exml], [chmod +x emd2exml])
+
+AC_OUTPUT
diff --git a/make/emd2exml.in b/make/emd2exml.in
index 24837696f4..ec3de0a7f8 100755
--- a/make/emd2exml.in
+++ b/make/emd2exml.in
@@ -462,7 +462,7 @@ url([C|Cs], Bool, Acc) ->
url(Cs, Bool, [C|Acc]).
link_or_image(Str, Type) ->
- case link_or_image_text(Str, "") of
+ case link_or_image_text(Str) of
no -> no;
{Text, Cont1} ->
case link_or_image_data(Cont1, none, Type, "", "") of
@@ -471,9 +471,14 @@ link_or_image(Str, Type) ->
{["<url href=\"", text(Url), "\">", text(Text), "</url>"],
Cont2};
{seealso, SeeAlso, _Title, Cont2} ->
- {["<seealso marker=\"", text(SeeAlso), "\">",
- text(Text), "</seealso>"],
- Cont2};
+ case internal_seealso(SeeAlso) of
+ no ->
+ {["<seealso marker=\"", text(SeeAlso), "\">",
+ text(Text), "</seealso>"],
+ Cont2};
+ {yes, SeeAlsoKey} ->
+ {delayed, link, SeeAlsoKey, text(Text), Cont2}
+ end;
{image, Image, Title, Cont2} ->
{["<image file=\"", text(Image), "\"><icaption>",
text(Title), "</icaption></image>"],
@@ -485,16 +490,41 @@ link_or_image(Str, Type) ->
end
end.
+internal_seealso("#" ++ Marker) ->
+ {yes, {internal, Marker}};
+internal_seealso(_) ->
+ no.
+
+link_or_image_text(Cs0) ->
+ {Prefix, Cs2} = case Cs0 of
+ "__" ++ Cs1 -> {"__", Cs1};
+ "_" ++ Cs1 -> {"_", Cs1};
+ "**" ++ Cs1 -> {"**", Cs1};
+ "*" ++ Cs1 -> {"*", Cs1};
+ Cs1 -> {"", Cs1}
+ end,
+ {Text0, Cs} = link_or_image_text(Cs2, []),
+ Text = case lists:prefix(Prefix, Text0) of
+ false ->
+ lists:reverse(Text0, Prefix);
+ true ->
+ lists:reverse(lists:nthtail(length(Prefix), Text0))
+ end,
+ case Text of
+ [] ->
+ no;
+ [_|_] ->
+ {Text, Cs}
+ end.
+
link_or_image_text([$\\,C|Cs], Acc) ->
link_or_image_text(Cs, [C|Acc]);
-link_or_image_text([$]|_Cs], "") ->
- no;
link_or_image_text([$]|Cs], Acc) ->
- {lists:reverse(Acc), Cs};
+ {Acc, Cs};
link_or_image_text([C|Cs], Acc) ->
link_or_image_text(Cs, [C|Acc]);
link_or_image_text([], _Acc) ->
- no.
+ {[], []}.
link_or_image_data([C|Cs], none, link, "", "") when C == $ ; C == $\t ->
link_or_image_data(Cs, none, link, "", "");
@@ -615,8 +645,10 @@ put_title(S, 1, Title) ->
put_title(#state{mlist = MList0,
toc = TOC} = S0, H, Title) ->
TitleStr = text(Title),
- MList1 = [mk_lvl_marker(Title) | MList0],
+ TitleMarker = mk_lvl_marker(Title),
+ MList1 = [TitleMarker | MList0],
Marker = mk_marker(MList1),
+ MarkerKey = string:lowercase(TitleMarker),
S1 = chk_h1(H,
S0#state{toc = [TOC,
lists:duplicate(H," "),
@@ -624,13 +656,15 @@ put_title(#state{mlist = MList0,
"<seealso marker=\"#",Marker,"\">",
TitleStr,"</seealso>",nl()],
h = H,
- mlist = MList1}),
+ mlist = MList1
+ }),
S2 = put_chars(S1, ["<marker id=\"", Marker, "\"/>",nl()]),
+ S3 = write_delayed(S2, {internal, MarkerKey}, {"#" ++ Marker, ""}),
{STag, ETag} = case H > ?MAX_HEADING of
true -> {"<p><strong>", "</strong></p>"};
false -> {"<title>", "</title>"}
end,
- put_chars(S2, [STag, TitleStr, ETag, nl()]).
+ put_chars(S3, [STag, TitleStr, ETag, nl()]).
setext_heading(H, #state{line = Line, h = OldH} = S0) ->
S1 = sections(H, OldH, S0),
@@ -1204,7 +1238,7 @@ put_delayed(#state{out = Out} = S, Key, Data) ->
S#state{out = [{delayed, Key, Data} | Out]}.
put_chars(#state{out = Out} = S, Chars) ->
- S#state{out = [[Chars] | Out]}.
+ S#state{out = [Chars | Out]}.
put_line(#state{out = Out} = S, String) ->
S#state{out = [[String, nl()] | Out]}.
@@ -1219,6 +1253,15 @@ complete_output(S, [], Out) ->
Out]};
complete_output(S, [{delayed, IX}|Rest], Out) ->
complete_output(S, Rest, [read_delayed(S, IX)|Out]);
+complete_output(S, [{delayed, {internal, Key0}, {link, Text, _Line}}|Rest], Out) ->
+ Key = [C || C <- Key0, C =/= $_],
+ case read_delayed(S, {internal, Key}) of
+ {value, {Url, _}} ->
+ complete_output(S, Rest, [mk_link(Text, Url)|Out]);
+ none ->
+ Url = "#" ++ Key0,
+ complete_output(S, Rest, [mk_link(Text, Url)|Out])
+ end;
complete_output(S, [{delayed, Key, {link, Text, Line}}|Rest], Out) ->
case read_delayed(S, Key) of
{value, {Url, _Title}} ->
@@ -1235,9 +1278,27 @@ complete_output(S, [{delayed, Key, {image, _Text, Line}}|Rest], Out) ->
{File, _} = S#state.ifile,
error(File, Line, "Image definition name `~ts' not found~n", [Key])
end;
+complete_output(S, [["</p>","\n"]=ParaStart,
+ Contents,
+ ["<p>","\n"]=ParaEnd|Rest], Out) ->
+ case is_image_tag(Contents) of
+ true ->
+ %% Get rid of the paragraph around an image tag. It would mess up
+ %% figure numbering.
+ complete_output(S, Rest, [Contents|Out]);
+ false ->
+ complete_output(S, [Contents,ParaEnd|Rest], [ParaStart|Out])
+ end;
complete_output(S, [Next|Rest], Out) ->
complete_output(S, Rest, [Next|Out]).
+is_image_tag("<image" ++ _) ->
+ true;
+is_image_tag([[_|_]=H | _]) ->
+ is_image_tag(H);
+is_image_tag(_) ->
+ false.
+
write_output(_OFD, []) ->
ok;
write_output(OFD, [O|Os]) ->
diff --git a/make/fixup_development_runtime_dependencies b/make/fixup_development_runtime_dependencies
index e06bd5faca..1c0a649578 100755
--- a/make/fixup_development_runtime_dependencies
+++ b/make/fixup_development_runtime_dependencies
@@ -44,7 +44,7 @@ my $erl_top = shift @ARGV;
chdir $erl_top or die "Failed to change directory into '$erl_top'";
-print "Fixup of development runtime dependencies\n";
+print "Fixing up development runtime dependencies\n";
#
# Determine versions of all applications in the source tree...
diff --git a/make/lazy_configure.mk b/make/lazy_configure.mk
deleted file mode 100644
index c74f216de0..0000000000
--- a/make/lazy_configure.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-# ``Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# The Initial Developer of the Original Code is Ericsson Utvecklings AB.
-# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
-# AB. All Rights Reserved.''
-#
-# $Id$
-#
-
-ifndef EXPECTED_AUTOCONF_VERSION
-EXPECTED_AUTOCONF_VERSION=2.59
-endif
-SAVE_ARGS=$(ERL_TOP)/make/save_args
-CONFIG_STATUS=$(CONFIGURE_DIR)/$(TARGET)/config.status
-SAVED_CONFIG_FLAGS_FILE=$(CONFIGURE_DIR)/$(TARGET)/lazy.config.flags
-SAVED_CONFIG_LOG=$(CONFIGURE_DIR)/$(TARGET)/config.log
-CONFIG_CACHE_FILE=$(CONFIGURE_DIR)/$(TARGET)/lazy.config.cache
-ALL_CONFIG_FLAGS=$(CONFIGURE_FLAGS) --no-create --no-recursion --cache-file=$(CONFIG_CACHE_FILE)
-
-lazy_configure: save_config_flags $(CONFIG_STATUS)
- rm -f $(CONFIGURE_DIR)/config.log
- cd $(CONFIGURE_DIR) && $(CONFIG_STATUS)
- cat $(CONFIGURE_DIR)/config.log >> $(SAVED_CONFIG_LOG)
- rm -f $(CONFIGURE_DIR)/config.log
-
-save_config_flags:
- $(SAVE_ARGS) $(SAVED_CONFIG_FLAGS_FILE) --- $(ALL_CONFIG_FLAGS)
-
-$(SAVED_CONFIG_FLAGS_FILE): save_config_flags
-
-$(CONFIGURE_DIR)/configure: $(CONFIGURE_DIR)/configure.in $(EXTRA_CONFIGURE_DEPENDENCIES)
- rm -f $(CONFIG_CACHE_FILE)
- @ exp_ac_vsn=$(EXPECTED_AUTOCONF_VERSION) ; \
- ac_vsn_blob=`autoconf --version` ; \
- ac_vsn=`echo x$$ac_vsn_blob | sed "s|[^0-9]*\([0-9][^ \t\n]*\).*|\1|"` ; \
- case "$$ac_vsn" in \
- $$exp_ac_vsn) \
- ;; \
- *) \
- echo "***************************************************" 1>&2 ; \
- echo "***************************************************" 1>&2 ; \
- echo "*** WARNING: System might fail to configure or" 1>&2 ; \
- echo "*** might be erroneously configured" 1>&2 ; \
- echo "*** since autoconf version $$ac_vsn is used" 1>&2 ; \
- echo "*** instead of version $$exp_ac_vsn!" 1>&2 ; \
- echo "***************************************************" 1>&2 ; \
- echo "***************************************************" 1>&2 ; \
- ;; \
- esac
- cd $(CONFIGURE_DIR) && autoconf -f
-
-$(CONFIGURE_DIR)/config.h.in: $(CONFIGURE_DIR)/configure.in $(CONFIGURE_DIR)/aclocal.m4
- cd $(CONFIGURE_DIR) && autoheader ./configure.in > ./config.h.in
-
-$(CONFIG_STATUS): $(SAVED_CONFIG_FLAGS_FILE) $(CONFIGURE_DIR)/configure $(EXTRA_CONFIG_STATUS_DEPENDENCIES)
- rm -f $(CONFIGURE_DIR)/config.log
- cd $(CONFIGURE_DIR) && CONFIG_STATUS=$(CONFIG_STATUS) ./configure $(ALL_CONFIG_FLAGS)
- rm -f $(SAVED_CONFIG_LOG)
- mv $(CONFIGURE_DIR)/config.log $(SAVED_CONFIG_LOG)
-
-lazy_configure_target_clean:
- rm -f $(CONFIG_STATUS)
- rm -f $(CONFIG_CACHE_FILE)
- rm -f $(SAVED_CONFIG_FLAGS_FILE)
- rm -f $(SAVED_CONFIG_LOG)
-
-lazy_configure_clean: lazy_configure_target_clean
- rm -f $(CONFIGURE_DIR)/configure
- test ! -f $(CONFIGURE_DIR)/acconfig.h || rm -f $(CONFIGURE_DIR)/config.h.in
-
-.PHONY: lazy_configure save_config_flags lazy_configure_clean
-
diff --git a/make/make_emakefile.in b/make/make_emakefile.in
index fbca77887a..e0740d1013 100755
--- a/make/make_emakefile.in
+++ b/make/make_emakefile.in
@@ -1,4 +1,4 @@
-#!@PERL@
+#!/usr/bin/env @PERL@
# -*- cperl -*-
use strict;
diff --git a/make/otp.mk.in b/make/otp.mk.in
index ceff8f7c31..cdddb90734 100644
--- a/make/otp.mk.in
+++ b/make/otp.mk.in
@@ -4,7 +4,7 @@
#
# %CopyrightBegin%
#
-# Copyright Ericsson AB 1997-2016. All Rights Reserved.
+# Copyright Ericsson AB 1997-2019. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -51,6 +51,8 @@ TYPES = @TYPES@
USE_PGO = @USE_PGO@
+USE_ESOCK = @USE_ESOCK@
+
# Slash separated list of return values from $(origin VAR)
# that are untrusted - set default in this file instead.
# The list is not space separated since some return values
diff --git a/make/otp_ded.mk.in b/make/otp_ded.mk.in
index 0b5311d75e..9c8df265de 100644
--- a/make/otp_ded.mk.in
+++ b/make/otp_ded.mk.in
@@ -24,27 +24,26 @@
# explicitly expressed here. Some applications need to
# be able to check this value *before* configure has
# been run and generated otp_ded.mk
-DED_MK_VSN = 1
+DED_MK_VSN = 2
# ----------------------------------------------------
# Variables needed for building Dynamic Erlang Drivers
# ----------------------------------------------------
-DED_CC = @CC@
-DED_GCC = @GCC@
+DED_CC = @DED_CC@
+DED_GCC = @DED_GCC@
DED_LD = @DED_LD@
DED_LDFLAGS = @DED_LDFLAGS@
-DED__NOWARN_NOTHR_CFLAGS = @DED_CFLAGS@
-DED__NOTHR_CFLAGS = @WFLAGS@ @DED_CFLAGS@
-DED__NOWARN_CFLAGS = @DED_EMU_THR_DEFS@ @DED_CFLAGS@
+DED_BASIC_CFLAGS = @DED_CFLAGS@
DED_THR_DEFS = @DED_THR_DEFS@
-DED_EMU_THR_DEFS = @DED_EMU_THR_DEFS@
-DED_WARN_FLAGS = @WFLAGS@
-DED_CFLAGS = @WERRORFLAGS@ @WFLAGS@ @DED_EMU_THR_DEFS@ @DED_CFLAGS@
-DED_STATIC_CFLAGS = @WERRORFLAGS@ @WFLAGS@ @DED_EMU_THR_DEFS@ @DED_STATIC_CFLAGS@
-DED_LIBS = @LIBS@
+DED_WERRORFLAGS = @DED_WERRORFLAGS@
+DED_WARN_FLAGS = @DED_WARN_FLAGS@
+DED_CFLAGS = @DED_CFLAGS@
+DED_LD_FLAG_RUNTIME_LIBRARY_PATH = @DED_LD_FLAG_RUNTIME_LIBRARY_PATH@
+DED_STATIC_CFLAGS = @DED_STATIC_CFLAGS@
+DED_LIBS = @DED_LIBS@
DED_EXT = @DED_EXT@
-ERLANG_OSTYPE = @ERLANG_OSTYPE@
+DED_OSTYPE = @DED_OSTYPE@
PRIVDIR = ../priv
OBJDIR = $(PRIVDIR)/obj/$(TARGET)
LIBDIR = $(PRIVDIR)/lib/$(TARGET)
DED_SYS_INCLUDE = @DED_SYS_INCLUDE@
-DED_INCLUDES = $(DED_SYS_INCLUDE)
+DED_INCLUDES = @DED_INCLUDE@
diff --git a/make/otp_patch_solve_forward_merge_version b/make/otp_patch_solve_forward_merge_version
index 7f8f011eb7..f599e28b8a 100644
--- a/make/otp_patch_solve_forward_merge_version
+++ b/make/otp_patch_solve_forward_merge_version
@@ -1 +1 @@
-7
+10
diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk
index d1fbf6c58f..615bf1adb7 100644
--- a/make/otp_release_targets.mk
+++ b/make/otp_release_targets.mk
@@ -156,7 +156,7 @@ endif
## These are the patterns of file names that xmllint cannot currently parse
-XI_INC_FILES:=%user_man.xml %usersguide.xml %refman.xml %ref_man.xml %part.xml %book.xml
+XI_INC_FILES:=%user_man.xml %usersguide.xml %refman.xml %ref_man.xml %part.xml %book.xml %internal.xml
## These are the files that we should run the xmllint on
LINT_XI_INC_FILES := $(filter-out $(XI_INC_FILES), $(ALL_XI_INC_FILES))
diff --git a/make/otp_version_tickets b/make/otp_version_tickets
index bf32816fb2..b741526c88 100644
--- a/make/otp_version_tickets
+++ b/make/otp_version_tickets
@@ -1,8 +1,10 @@
-OTP-14746
-OTP-15295
-OTP-15717
-OTP-15758
-OTP-15781
-OTP-15785
-OTP-15793
-OTP-15802
+OTP-15900
+OTP-15908
+OTP-15909
+OTP-15910
+OTP-15913
+OTP-15922
+OTP-15930
+OTP-15938
+OTP-15939
+OTP-15941
diff --git a/make/otp_version_tickets_in_merge b/make/otp_version_tickets_in_merge
index ff967634a2..e69de29bb2 100644
--- a/make/otp_version_tickets_in_merge
+++ b/make/otp_version_tickets_in_merge
@@ -1,3 +0,0 @@
-OTP-15551
-OTP-15651
-OTP-15652