From 20e0509d4e04fada3019639bc82d78b89f06b0fc Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 13 Aug 2013 17:14:11 +0200 Subject: erts: Add option to include nifs statically Both crypto and asn1 are supported. --- make/otp_ded.mk.in | 1 + make/otp_subdir.mk | 4 ++-- make/run_make.mk | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) (limited to 'make') diff --git a/make/otp_ded.mk.in b/make/otp_ded.mk.in index 0c9a8a087f..c534209a25 100644 --- a/make/otp_ded.mk.in +++ b/make/otp_ded.mk.in @@ -38,6 +38,7 @@ 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_EXT = @DED_EXT@ ERLANG_OSTYPE = @ERLANG_OSTYPE@ diff --git a/make/otp_subdir.mk b/make/otp_subdir.mk index 07294c272d..f31ab05c87 100644 --- a/make/otp_subdir.mk +++ b/make/otp_subdir.mk @@ -19,12 +19,12 @@ # Make include file for otp .PHONY: debug opt release docs release_docs tests release_tests \ - clean depend valgrind + clean depend valgrind static_lib # # Targets that don't affect documentation directories # -opt debug release docs release_docs tests release_tests clean depend valgrind: +opt debug release docs release_docs tests release_tests clean depend valgrind static_lib: @set -e ; \ app_pwd=`pwd` ; \ if test -f vsn.mk; then \ diff --git a/make/run_make.mk b/make/run_make.mk index bb0da6743c..01ab257006 100644 --- a/make/run_make.mk +++ b/make/run_make.mk @@ -37,7 +37,7 @@ plain smp frag smp_frag: $(make_verbose)$(MAKE) -f $(TARGET)/Makefile FLAVOR=$@ clean generate depend docs release release_spec release_docs release_docs_spec \ - tests release_tests release_tests_spec: + tests release_tests release_tests_spec static_lib: $(make_verbose)$(MAKE) -f $(TARGET)/Makefile $@ -- cgit v1.2.3 From fb66fdcf7a03c2bc1c64ce35dc261865d12992ab Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Thu, 21 Nov 2013 18:31:59 +0100 Subject: wx: Fix silent make rules --- make/output.mk.in | 1 + 1 file changed, 1 insertion(+) (limited to 'make') diff --git a/make/output.mk.in b/make/output.mk.in index 938f878ebe..51d9401280 100644 --- a/make/output.mk.in +++ b/make/output.mk.in @@ -67,6 +67,7 @@ V_CC = $(cc_verbose)$(CC) cpp_verbose_0 = @echo " CPP "$@; cpp_verbose = $(cpp_verbose_$(V)) +V_CPP = $(cpp_verbose)$(CPP) # For the diameter compiler. dia_verbose_0 = @echo " DIA "$@; -- cgit v1.2.3 From 3fd4e3e770fbed95fd6fa2d547945ac71256339c Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Sun, 16 Feb 2014 00:54:08 +0100 Subject: Misc adjustments of OTP version --- make/emd2exml.in | 6 ++++++ make/otp.mk.in | 7 +++++++ make/otp_default_release_path.mk | 24 ++++++++++++++++++++++++ make/otp_release_targets.mk | 4 +++- 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 make/otp_default_release_path.mk (limited to 'make') diff --git a/make/emd2exml.in b/make/emd2exml.in index 5bfe89894e..48473349d0 100644 --- a/make/emd2exml.in +++ b/make/emd2exml.in @@ -334,6 +334,8 @@ text(Line) -> text("%ERTS-VSN%" ++ Cs, Acc) -> text(Cs, ["@ERTS_VSN@"|Acc]); +text("%OTP-VSN%" ++ Cs, Acc) -> + text(Cs, ["@OTP_VSN@"|Acc]); text("%OTP-REL%" ++ Cs, Acc) -> text(Cs, ["@OTP_REL@"|Acc]); @@ -357,6 +359,8 @@ put_text(#state{c = CTag, emphasis = EmTag} = S, Line) -> put_text(S, "%ERTS-VSN%"++Cs, CTag, EmTag, Acc) -> put_text(S, Cs, CTag, EmTag, ["@ERTS_VSN@"|Acc]); +put_text(S, "%OTP-VSN%"++Cs, CTag, EmTag, Acc) -> + put_text(S, Cs, CTag, EmTag, ["@OTP_VSN@"|Acc]); put_text(S, "%OTP-REL%"++Cs, CTag, EmTag, Acc) -> put_text(S, Cs, CTag, EmTag, ["@OTP_REL@"|Acc]); @@ -560,6 +564,8 @@ code(Line) -> code("%ERTS-VSN%" ++ Cs, Acc) -> code(Cs, ["@ERTS_VSN@"|Acc]); +code("%OTP-VSN%" ++ Cs, Acc) -> + code(Cs, ["@OTP_VSN@"|Acc]); code("%OTP-REL%" ++ Cs, Acc) -> code(Cs, ["@OTP_REL@"|Acc]); diff --git a/make/otp.mk.in b/make/otp.mk.in index 785926b997..a89bc37820 100644 --- a/make/otp.mk.in +++ b/make/otp.mk.in @@ -29,6 +29,13 @@ # ---------------------------------------------------- include $(ERL_TOP)/make/output.mk +# ---------------------------------------------------- +# Version +# ---------------------------------------------------- + +OTP_VERSION = @OTP_VERSION@ +SYSTEM_VSN = @SYSTEM_VSN@ + # ---------------------------------------------------- # Cross Compiling # ---------------------------------------------------- diff --git a/make/otp_default_release_path.mk b/make/otp_default_release_path.mk new file mode 100644 index 0000000000..932bbb2f6d --- /dev/null +++ b/make/otp_default_release_path.mk @@ -0,0 +1,24 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2014. 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% +# + +# +# Where to release to by default +# + +OTP_DEFAULT_RELEASE_PATH="$(ERL_TOP)/release/$(TARGET)" diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk index b6afcd1c8b..fcac2ff695 100644 --- a/make/otp_release_targets.mk +++ b/make/otp_release_targets.mk @@ -17,6 +17,8 @@ # %CopyrightEnd% # +include $(ERL_TOP)/make/otp_default_release_path.mk + # ---------------------------------------------------- # Targets for the new documentation support # ---------------------------------------------------- @@ -137,7 +139,7 @@ endif ifeq ($(TESTROOT),) release release_docs release_tests release_html: - $(MAKE) $(MFLAGS) RELEASE_PATH="$(ERL_TOP)/release/$(TARGET)" \ + $(MAKE) $(MFLAGS) RELEASE_PATH=$(OTP_DEFAULT_RELEASE_PATH) \ $(TARGET_MAKEFILE) $@_spec else -- cgit v1.2.3 From 8bc98681fa6bcc7c66c3380f8ceeea12f015f6f6 Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Tue, 18 Feb 2014 20:13:04 +0100 Subject: Use correct variable name for silent rule C++ compiler Using CPP as the variable name for the C++ compiler makes no sense, as CPP usually refers to the C/C++ preprocessor. That's why we have CXXFLAGS for C++ and CPPFLAGS for the C/C++ preprocessor. --- make/output.mk.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'make') diff --git a/make/output.mk.in b/make/output.mk.in index 51d9401280..f2f738a2ce 100644 --- a/make/output.mk.in +++ b/make/output.mk.in @@ -65,9 +65,9 @@ cc_verbose_0 = @echo " CC "$@; cc_verbose = $(cc_verbose_$(V)) V_CC = $(cc_verbose)$(CC) -cpp_verbose_0 = @echo " CPP "$@; -cpp_verbose = $(cpp_verbose_$(V)) -V_CPP = $(cpp_verbose)$(CPP) +cxx_verbose_0 = @echo " CXX "$@; +cxx_verbose = $(cxx_verbose_$(V)) +V_CXX = $(cxx_verbose)$(CXX) # For the diameter compiler. dia_verbose_0 = @echo " DIA "$@; -- cgit v1.2.3 From 200fbe924466720bd2a8c5eb05b05d67b0a2414c Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Thu, 14 Mar 2013 15:42:19 +0100 Subject: Added support for ENEA OSE This port has support for both non-smp and smp. It contains a new way to do io checking in which erts_poll_wait receives the payload of the polled entity. This has implications for all linked-in drivers. --- make/ose_lm.mk.in | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 make/ose_lm.mk.in (limited to 'make') diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in new file mode 100644 index 0000000000..38d40c4301 --- /dev/null +++ b/make/ose_lm.mk.in @@ -0,0 +1,71 @@ +#-*-makefile-*- ; force emacs to enter makefile-mode +# ---------------------------------------------------- +# Template target for generating an OSE5 load module +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2013. 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% +# +# Author: Petre Pircalabu +# ---------------------------------------------------- + +# ---------------------------------------------------- +# build-ose-load-module +# Creates an OSE5 load module +# params: +# $(1) - The output target +# $(2) - Objects +# $(3) - Libraries +# $(4) - LM configuration file +# ---------------------------------------------------- + +ifeq ($(findstring ose,$(TARGET)),ose) +LDR1FLAGS = @erl_xcomp_ose_ldflags_pass1@ +LDR2FLAGS = @erl_xcomp_ose_ldflags_pass2@ +OSEROOT = @erl_xcomp_ose_OSEROOT@ +LCF = @erl_xcomp_ose_LM_LCF@ +LMCONF = @erl_xcomp_ose_LM_CONF@ +STRIP = @erl_xcomp_ose_STRIP@ +LM_POST_LINK = @erl_xcomp_ose_LM_POST_LINK@ +LM_SET_CONF = @erl_xcomp_ose_LM_SET_CONF@ +LM_ELF_SIZE = @erl_xcomp_ose_LM_ELF_SIZE@ +endif + +define build-ose-load-module + @echo " --- Linking $(1)" + + @echo " --- Linking $(1) (pass 1)" + $(ld_verbose)$(PURIFY) $(LD) -o $(1)_unconfigured_ro -r \ + $(2) --start-group $(3) --end-group --cref --discard-none -M > $(1)_1.map + + @echo " --- Linking $(1) (pass 2)" + $(ld_verbose)$(PURIFY) $(LD) -o $(1)_unconfigured \ + $(1)_unconfigured_ro -T $(LCF) -n --emit-relocs -e crt0_lm --cref \ + --discard-none -M > $(1)_2.map + + @echo " --- Inserting configuration" + $(ld_verbose) $(LM_SET_CONF) $(1)_unconfigured < $(4) + + @echo " --- Striping $(1)" +# $(ld_verbose) $(STRIP) $(1)_unconfigured + + @echo " --- Postlinking $(1)" + $(ld_verbose) $(LM_POST_LINK) $(1)_unconfigured + + @echo " --- Sizing $(1)" + $(ld_verbose) $(LM_ELF_SIZE) $(1)_unconfigured + mv $(1)_unconfigured $(1) +endef -- cgit v1.2.3 From a6788ea337a2319a2d1a42ee4618553a1c7765bf Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Wed, 30 Oct 2013 17:56:37 +0100 Subject: ose: Fix various build environment issues --- make/ose_lm.mk.in | 2 ++ 1 file changed, 2 insertions(+) (limited to 'make') diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in index 38d40c4301..2e659ada1a 100644 --- a/make/ose_lm.mk.in +++ b/make/ose_lm.mk.in @@ -42,6 +42,8 @@ STRIP = @erl_xcomp_ose_STRIP@ LM_POST_LINK = @erl_xcomp_ose_LM_POST_LINK@ LM_SET_CONF = @erl_xcomp_ose_LM_SET_CONF@ LM_ELF_SIZE = @erl_xcomp_ose_LM_ELF_SIZE@ +OSE_CONFD = @erl_xcomp_ose_CONFD@ +CRT0_LM = @erl_xcomp_ose_CRT0_LM@ endif define build-ose-load-module -- cgit v1.2.3 From e310677df7b3ce6506b35044abafcb507caa7e07 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Mon, 10 Mar 2014 17:44:25 +0100 Subject: Verify runtime_dependencies when running 'otp_build patch_app' --- make/otp_released_app.mk | 43 ++++++ make/otp_subdir.mk | 9 ++ make/verify_runtime_dependencies | 313 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 365 insertions(+) create mode 100644 make/otp_released_app.mk create mode 100755 make/verify_runtime_dependencies (limited to 'make') diff --git a/make/otp_released_app.mk b/make/otp_released_app.mk new file mode 100644 index 0000000000..fb5205ab23 --- /dev/null +++ b/make/otp_released_app.mk @@ -0,0 +1,43 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2014. 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% + +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk +include $(APP_PWD)/vsn.mk +include $(ERL_TOP)/make/otp_default_release_path.mk + +RELEASED_APP_VSN=$(APP)-$($(APP_VSN)) +ifeq ($(TESTROOT),) +REL_DIR=$(OTP_DEFAULT_RELEASE_PATH)/releases/$(SYSTEM_VSN) +else +REL_DIR=$(TESTROOT)/releases/$(SYSTEM_VSN) +endif +INST_APP_VSNS=$(REL_DIR)/installed_application_versions + +.PHONY: update + +update: + test -d "$(REL_DIR)" || mkdir -p "$(REL_DIR)" ; \ + if test ! -f "$(INST_APP_VSNS)" ; then \ + echo "$(RELEASED_APP_VSN)" > "$(INST_APP_VSNS)" || exit 1; \ + else \ + if test x = x`grep $(RELEASED_APP_VSN) "$(INST_APP_VSNS)"` ; then \ + echo $(RELEASED_APP_VSN) >> "$(INST_APP_VSNS)" || exit 1; \ + fi ; \ + fi + diff --git a/make/otp_subdir.mk b/make/otp_subdir.mk index f31ab05c87..e6a75cce17 100644 --- a/make/otp_subdir.mk +++ b/make/otp_subdir.mk @@ -44,5 +44,14 @@ opt debug release docs release_docs tests release_tests clean depend valgrind st fi ; \ done ; \ if test -f vsn.mk; then \ + if test release = $@ && test ! -f SKIP; then \ + app=`basename $$app_pwd` ; \ + app_vsn=`echo $$app | sed "y|abcdefghijklmnopqrstuvwxyz|ABCDEFGHIJKLMNOPQRSTUVWXYZ|"` ; \ + app_vsn=$${app_vsn}_VSN ; \ + ( $(MAKE) -f "$(ERL_TOP)/make/otp_released_app.mk" \ + APP_PWD="$$app_pwd" APP_VSN=$$app_vsn APP=$$app \ + TESTROOT="$(TESTROOT)" update) \ + || exit $$? ; \ + fi ; \ echo "=== Leaving application" `basename $$app_pwd` ; \ fi diff --git a/make/verify_runtime_dependencies b/make/verify_runtime_dependencies new file mode 100755 index 0000000000..b8eea06b6e --- /dev/null +++ b/make/verify_runtime_dependencies @@ -0,0 +1,313 @@ +#!/usr/bin/env escript +%% -*- erlang -*- + +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2014. 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% +%% + +%%%------------------------------------------------------------------- +%%% @author Rickard Green +%%% @copyright (C) 2014, Rickard Green +%%% @doc +%%% Verify runtime dependencies when patching OTP applications. +%%% @end +%%% Created : 4 Mar 2014 by Rickard Green +%%%------------------------------------------------------------------- + +-mode(compile). + +-export([main/1]). + +main(Args) -> + {Force, Release, SourceDir, TargetDir, AppList} = parse_args(Args, + false, + [], + [], + [], + []), + SourceAppInfo = read_source_app_info(AppList, SourceDir), + AppVsnsTab0 = current_target_app_vsns(TargetDir, Release), + AppVsnsTab1 = add_source_app_vsns(SourceAppInfo, AppVsnsTab0), + case verify_runtime_deps(SourceAppInfo, AppVsnsTab1, true) of + true -> + ok; + false -> + case Force of + true -> + warn("Your OTP development system was updated with " + "unfulfilled runtime dependencies. The system " + "may not be working as expected.", []); + false -> + err("Unfulfilled runtime dependencies. " + "See warnings above.~n", []) + end + end, + halt(0). + +parse_args(["-force" | Args], _, Release, SourceDir, TargetDir, Apps) -> + parse_args(Args, true, Release, SourceDir, TargetDir, Apps); +parse_args(["-release", Release | Args], Force, _, SourceDir, TargetDir, Apps) -> + parse_args(Args, Force, Release, SourceDir, TargetDir, Apps); +parse_args(["-source", SourceDir | Args], Force, Release, _, TargetDir, Apps) -> + parse_args(Args, Force, Release, SourceDir, TargetDir, Apps); +parse_args(["-target", TargetDir | Args], Force, Release, SourceDir, _, Apps) -> + parse_args(Args, Force, Release, SourceDir, TargetDir, Apps); +parse_args([App | Args], Force, Release, SourceDir, TargetDir, OldApps) -> + parse_args(Args, Force, Release, SourceDir, TargetDir, [App | OldApps]); +parse_args([], _, [], _, _, _) -> + err("Missing release~n", []); +parse_args([], _, _, [], _, _) -> + err("Missing source directory~n", []); +parse_args([], _, _, _, [], _) -> + err("Missing target directory~n", []); +parse_args([], _, _, _, _, []) -> + err("Missing applications~n"); +parse_args([], Force, Release, SourceDir, TargetDir, Apps) -> + {Force, Release, SourceDir, TargetDir, Apps}. + + +%warn(Format) -> +% warn(Format, []). + +warn(Format, Args) -> + io:format(standard_error, "WARNING: " ++ Format, Args). + +err(Format) -> + err(Format, []). + +err(Format, Args) -> + io:format(standard_error, "ERROR: " ++ Format, Args), + halt(1). + +read_file(FileName) -> + case file:read_file(FileName) of + {ok, Content} -> + binary_to_list(Content); + {error, Error} -> + err("Failed to read ~s: ~p~n", [FileName, Error]) + end. + +consult_file(FileName) -> + case file:consult(FileName) of + {ok, Terms} -> + Terms; + {error, Error} -> + err("Failed to consult ~s: ~p~n", [FileName, Error]) + end. + +current_target_app_vsns(TargetDir, Release) -> + IAV = read_file(filename:join([TargetDir, "releases", Release, + "installed_application_versions"])), + DirList = string:tokens(IAV, "\n\r\t "), + LibDir = filename:join(TargetDir, "lib"), + make_app_vsns_tab(DirList, LibDir, gb_trees:empty()). + +make_app_vsns_tab([], _LibDir, GBT) -> + GBT; +make_app_vsns_tab([AppVer | AppVsns], LibDir, GBT0) -> + GBT1 = try + case file:read_file_info(filename:join(LibDir, AppVer)) of + {ok, _FInfo} -> + [App, Vsn] = string:tokens(AppVer, "-"), + add_app_vsn(App, Vsn, GBT0); + _ -> + GBT0 + end + catch + _:_ -> + warn("Unexpected directory: ~p~n", + [filename:join(LibDir, AppVer)]), + GBT0 + end, + make_app_vsns_tab(AppVsns, LibDir, GBT1). + +add_app_vsn(App, VsnList, GBT) when is_atom(App) -> + Vsn = parse_vsn(VsnList), + case gb_trees:lookup(App, GBT) of + none -> + gb_trees:insert(App, [Vsn], GBT); + {value, Vsns} -> + gb_trees:update(App, [Vsn | Vsns], GBT) + end; +add_app_vsn(AppStr, VsnList, GBT) -> + add_app_vsn(list_to_atom(AppStr), VsnList, GBT). + +add_source_app_vsns([], AppVsnsTab) -> + AppVsnsTab; +add_source_app_vsns([{App, Vsn, _IReqs} | AI], AppVsnsTab) -> + add_source_app_vsns(AI, add_app_vsn(App, Vsn, AppVsnsTab)). + +read_source_app_info([], _SourceDir) -> + []; +read_source_app_info([App | Apps], SourceDir) -> + AppFile = case App of + "erts" -> + filename:join([SourceDir, "erts", "preloaded", "ebin", + "erts.app"]); + _ -> + filename:join([SourceDir, "lib", App, "ebin", + App ++ ".app"]) + end, + AppAtom = list_to_atom(App), + case consult_file(AppFile) of + [{application, AppAtom, InfoList}] -> + Vsn = case lists:keyfind(vsn, 1, InfoList) of + {vsn, V} -> + V; + _ -> + err("Missing vsn in ~p~n", AppFile) + end, + AI = case lists:keyfind(runtime_dependencies, 1, InfoList) of + {runtime_dependencies, IReqs} -> + case parse_inst_reqs(IReqs) of + error -> + err("Failed to parse runtime_dependencies in ~p~n", + [AppFile]); + ParsedIReqs -> + {AppAtom, Vsn, ParsedIReqs} + end; + _ -> + {AppAtom, Vsn, []} + end, + [AI | read_source_app_info(Apps, SourceDir)]; + _ -> + err("Failed to parse ~p~n", [AppFile]) + end. + +parse_vsn(VsnStr) -> + list_to_tuple(lists:map(fun (IL) -> + list_to_integer(IL) + end, string:tokens(VsnStr, "."))). + +parse_inst_reqs(InstReqs) -> + try + parse_inst_reqs_aux(InstReqs) + catch + _ : _ -> + error + end. + +parse_inst_reqs_aux([]) -> + []; +parse_inst_reqs_aux([IR | IRs]) -> + [App, VsnStr] = string:tokens(IR, "-"), + [{list_to_atom(App), parse_vsn(VsnStr)} | parse_inst_reqs_aux(IRs)]. + +make_app_vsn_str({App, VsnTup}) -> + make_app_vsn_str(tuple_to_list(VsnTup), [atom_to_list(App), $-]). + +make_app_vsn_str([I], Acc) -> + lists:flatten([Acc, integer_to_list(I)]); +make_app_vsn_str([I | Is], Acc) -> + make_app_vsn_str(Is, [Acc, integer_to_list(I), $.]). + +missing_min_req(App, AppVsn, IReq) -> + warn("Unfulfilled runtime dependency for application ~p-~s: ~s~n", + [App, AppVsn, make_app_vsn_str(IReq)]). + +verify_runtime_deps([], _AppVsnsTab, Res) -> + Res; +verify_runtime_deps([{App, Vsn, IReqs} | SAIs], AppVsnsTab, Res0) -> + Res = lists:foldl( + fun ({IRApp, IRMinVsn} = InstReq, AccRes) -> + case gb_trees:lookup(IRApp, AppVsnsTab) of + none -> + missing_min_req(App, Vsn, InstReq), + false; + {value, AppVsns} -> + try + lists:foreach( + fun (AppVsn) -> + case meets_min_req(AppVsn, IRMinVsn) of + true -> + throw(true); + false -> + false + end + end, + AppVsns), + missing_min_req(App, Vsn, InstReq), + false + catch + throw : true -> + AccRes + end + end + end, + Res0, + IReqs), + verify_runtime_deps(SAIs, AppVsnsTab, Res). + +meets_min_req(Vsn, Vsn) -> + true; +meets_min_req({X}, VsnReq) -> + meets_min_req({X, 0, 0}, VsnReq); +meets_min_req({X, Y}, VsnReq) -> + meets_min_req({X, Y, 0}, VsnReq); +meets_min_req(Vsn, {X}) -> + meets_min_req(Vsn, {X, 0, 0}); +meets_min_req(Vsn, {X, Y}) -> + meets_min_req(Vsn, {X, Y, 0}); +meets_min_req({X, _Y, _Z}, {XReq, _YReq, _ZReq}) when X > XReq -> + true; +meets_min_req({X, Y, _Z}, {X, YReq, _ZReq}) when Y > YReq -> + true; +meets_min_req({X, Y, Z}, {X, Y, ZReq}) when Z > ZReq -> + true; +meets_min_req({_X, _Y, _Z}, {_XReq, _YReq, _ZReq}) -> + false; +meets_min_req(Vsn, VsnReq) -> + gp_meets_min_req(mk_gp_vsn_list(Vsn), mk_gp_vsn_list(VsnReq)). + +gp_meets_min_req([X, Y, Z | _Vs], [X, Y, Z]) -> + true; +gp_meets_min_req([X, Y, Z | _Vs], [XReq, YReq, ZReq]) -> + meets_min_req({X, Y, Z}, {XReq, YReq, ZReq}); +gp_meets_min_req([X, Y, Z | Vs], [X, Y, Z | VReqs]) -> + gp_meets_min_req_tail(Vs, VReqs); +gp_meets_min_req(_Vsn, _VReq) -> + %% Versions on different version branches, i.e., the minimum + %% required functionality is not included in Vsn. + false. + +gp_meets_min_req_tail([V | Vs], [V | VReqs]) -> + gp_meets_min_req_tail(Vs, VReqs); +gp_meets_min_req_tail([], []) -> + true; +gp_meets_min_req_tail([_V | _Vs], []) -> + true; +gp_meets_min_req_tail([V | _Vs], [VReq]) when V > VReq -> + true; +gp_meets_min_req_tail(_Vs, _VReqs) -> + %% Versions on different version branches, i.e., the minimum + %% required functionality is not included in Vsn. + false. + +mk_gp_vsn_list(Vsn) -> + [X, Y, Z | Tail] = tuple_to_list(Vsn), + [X, Y, Z | remove_trailing_zeroes(Tail)]. + +remove_trailing_zeroes([]) -> + []; +remove_trailing_zeroes([0 | Vs]) -> + case remove_trailing_zeroes(Vs) of + [] -> []; + NewVs -> [0 | NewVs] + end; +remove_trailing_zeroes([V | Vs]) -> + [V | remove_trailing_zeroes(Vs)]. -- cgit v1.2.3 From f6570cf6201bf6476d903def9b04fe9c33f13a3d Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 17 Mar 2014 15:49:50 +0100 Subject: ose: Break lmconf into one per load module --- make/ose_lm.mk.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'make') diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in index 2e659ada1a..5455ad94c6 100644 --- a/make/ose_lm.mk.in +++ b/make/ose_lm.mk.in @@ -37,7 +37,9 @@ LDR1FLAGS = @erl_xcomp_ose_ldflags_pass1@ LDR2FLAGS = @erl_xcomp_ose_ldflags_pass2@ OSEROOT = @erl_xcomp_ose_OSEROOT@ LCF = @erl_xcomp_ose_LM_LCF@ -LMCONF = @erl_xcomp_ose_LM_CONF@ +BEAM_LMCONF = @erl_xcomp_ose_BEAM_LM_CONF@ +EPMD_LMCONF = @erl_xcomp_ose_EPMD_LM_CONF@ +RUN_ERL_LMCONF = @erl_xcomp_ose_RUN_ERL_LM_CONF@ STRIP = @erl_xcomp_ose_STRIP@ LM_POST_LINK = @erl_xcomp_ose_LM_POST_LINK@ LM_SET_CONF = @erl_xcomp_ose_LM_SET_CONF@ -- cgit v1.2.3 From 9c9878d6d4e99aba195177baef66067da0a2b797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Tue, 16 Sep 2014 15:22:15 +0200 Subject: erts: Add icount build type for opcode counter Enables ERTS_OPCODE_COUNTER_SUPPORT. --- make/run_make.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'make') diff --git a/make/run_make.mk b/make/run_make.mk index 01ab257006..9570113861 100644 --- a/make/run_make.mk +++ b/make/run_make.mk @@ -30,7 +30,7 @@ include $(ERL_TOP)/make/target.mk .PHONY: valgrind -opt debug purify quantify purecov valgrind gcov gprof lcnt frmptr: +opt debug purify quantify purecov valgrind gcov gprof lcnt frmptr icount: $(make_verbose)$(MAKE) -f $(TARGET)/Makefile TYPE=$@ plain smp frag smp_frag: -- cgit v1.2.3 From 0646940dee4120bbff339351f1afd287acd8ef91 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Tue, 21 Apr 2015 15:05:03 +0200 Subject: [erl_docgen] Add possibility to add extra ino line on front page --- make/otp_release_targets.mk | 3 +++ 1 file changed, 3 insertions(+) (limited to 'make') diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk index fcac2ff695..3180a559cc 100644 --- a/make/otp_release_targets.mk +++ b/make/otp_release_targets.mk @@ -44,6 +44,7 @@ $(HTMLDIR)/index.html: $(XML_FILES) $(SPECS_FILES) --stringparam gendate "$$date" \ --stringparam appname "$(APPLICATION)" \ --stringparam appver "$(VSN)" \ + --stringparam extra_front_page_info "$(DOC_EXTRA_FRONT_PAGE_INFO)" \ --stringparam stylesheet "$(CSS_FILE)" \ --stringparam winprefix "$(WINPREFIX)" \ --stringparam logo "$(HTMLLOGO_FILE)" \ @@ -64,6 +65,7 @@ $(HTMLDIR)/users_guide.html: $(XML_FILES) --stringparam gendate "$$date" \ --stringparam appname "$(APPLICATION)" \ --stringparam appver "$(VSN)" \ + --stringparam extra_front_page_info "$(DOC_EXTRA_FRONT_PAGE_INFO)" \ --stringparam stylesheet "$(CSS_FILE)" \ --stringparam winprefix "$(WINPREFIX)" \ --stringparam logo "$(HTMLLOGO_FILE)" \ @@ -80,6 +82,7 @@ $(HTMLDIR)/users_guide.html: $(XML_FILES) --stringparam gendate "$$date" \ --stringparam appname "$(APPLICATION)" \ --stringparam appver "$(VSN)" \ + --stringparam extra_front_page_info "$(DOC_EXTRA_FRONT_PAGE_INFO)" \ --stringparam logo "$(PDFLOGO_FILE)" \ --stringparam pdfcolor "$(PDFCOLOR)" \ --xinclude $(TOP_SPECS_PARAM) \ -- cgit v1.2.3 From 738c34d4bb8f1a3811acd00af8c6c12107f8315b Mon Sep 17 00:00:00 2001 From: Bruce Yinhe Date: Thu, 18 Jun 2015 11:31:02 +0200 Subject: Change license text to APLv2 --- make/cross_check_erl | 40 +++++++++++++++++++++------------------- make/emd2exml.in | 40 +++++++++++++++++++++------------------- make/fakefop | 19 ++++++++++--------- make/install_bin | 19 ++++++++++--------- make/lazy_configure.mk | 21 +++++++++++---------- make/ose_lm.mk.in | 19 ++++++++++--------- make/otp.mk.in | 19 ++++++++++--------- make/otp_ded.mk.in | 19 ++++++++++--------- make/otp_default_release_path.mk | 21 +++++++++++---------- make/otp_release_targets.mk | 19 ++++++++++--------- make/otp_released_app.mk | 21 +++++++++++---------- make/otp_subdir.mk | 21 +++++++++++---------- make/output.mk.in | 19 ++++++++++--------- make/run_make.mk | 21 +++++++++++---------- make/save_args | 21 +++++++++++---------- make/target.mk | 19 ++++++++++--------- make/unexpected_use | 19 ++++++++++--------- make/verify_runtime_dependencies | 19 ++++++++++--------- 18 files changed, 208 insertions(+), 188 deletions(-) (limited to 'make') diff --git a/make/cross_check_erl b/make/cross_check_erl index cb9dadfb32..f8ba73023a 100755 --- a/make/cross_check_erl +++ b/make/cross_check_erl @@ -4,16 +4,17 @@ # # Copyright Ericsson AB 2010. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # @@ -61,16 +62,17 @@ cat > cross_check_erl.erl <<\EOF % % Copyright Ericsson AB 2010. 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. +% 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. % -module(cross_check_erl). diff --git a/make/emd2exml.in b/make/emd2exml.in index 48473349d0..d84b967e40 100644 --- a/make/emd2exml.in +++ b/make/emd2exml.in @@ -7,16 +7,17 @@ %% %% Copyright Ericsson AB 2010-2013. 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/. +%% 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 %% -%% 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. +%% 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. %% %% %CopyrightEnd% %% @@ -799,16 +800,17 @@ parse_crd([], From, To, Holder, Legal) -> end, case Legal of [] -> - ["The contents of this file are subject to the Erlang Public License,", nl(), - "Version 1.1, (the \"License\"); you may not use this file except in", nl(), - "compliance with the License. You should have received a copy of the", nl(), - "Erlang Public License along with this software. If not, it can be", nl(), - "retrieved online at http://www.erlang.org/.", nl(), - nl(), - "Software distributed under the License is distributed on an \"AS IS\"", nl(), - "basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See", nl(), - "the License for the specific language governing rights and limitations", nl(), - "under the License.", nl()]; + ["Licensed under the Apache License, Version 2.0 (the \"License\");", nl(), + "you may not use this file except in compliance with the License.", nl(), + "You may obtain a copy of the License at", nl(), + nl(), + " http://www.apache.org/licenses/LICENSE-2.0", nl(), + nl(), + "Unless required by applicable law or agreed to in writing, software", nl(), + "distributed under the License is distributed on an \"AS IS\" BASIS,", nl(), + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", nl(), + "See the License for the specific language governing permissions and", nl(), + "limitations under the License.", nl()]; _ -> Legal end}; parse_crd([Line|Lines], OldFrom, OldTo, OldHolder, Legal) -> diff --git a/make/fakefop b/make/fakefop index b64428bbd1..7beeddf0a5 100755 --- a/make/fakefop +++ b/make/fakefop @@ -5,16 +5,17 @@ # Copyright Tuncer Ayaz 2010-2013. All Rights Reserved. # Copyright Ericsson AB 2010-2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/install_bin b/make/install_bin index 0d3e82266e..6c9d83e1ca 100755 --- a/make/install_bin +++ b/make/install_bin @@ -4,16 +4,17 @@ # # Copyright Ericsson AB 2010. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/lazy_configure.mk b/make/lazy_configure.mk index 320f485d90..c74f216de0 100644 --- a/make/lazy_configure.mk +++ b/make/lazy_configure.mk @@ -1,13 +1,14 @@ -# ``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 via the world wide web 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. +# ``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 diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in index 5455ad94c6..de8d351af3 100644 --- a/make/ose_lm.mk.in +++ b/make/ose_lm.mk.in @@ -6,16 +6,17 @@ # # Copyright Ericsson AB 2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/otp.mk.in b/make/otp.mk.in index a89bc37820..723f83cb45 100644 --- a/make/otp.mk.in +++ b/make/otp.mk.in @@ -6,16 +6,17 @@ # # Copyright Ericsson AB 1997-2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/otp_ded.mk.in b/make/otp_ded.mk.in index c534209a25..0b5311d75e 100644 --- a/make/otp_ded.mk.in +++ b/make/otp_ded.mk.in @@ -4,16 +4,17 @@ # # Copyright Ericsson AB 2009-2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% diff --git a/make/otp_default_release_path.mk b/make/otp_default_release_path.mk index 932bbb2f6d..bdaaca53ea 100644 --- a/make/otp_default_release_path.mk +++ b/make/otp_default_release_path.mk @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 2014. 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. +# 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. # # %CopyrightEnd% # diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk index 3180a559cc..97e9e4bb43 100644 --- a/make/otp_release_targets.mk +++ b/make/otp_release_targets.mk @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 1997-2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/otp_released_app.mk b/make/otp_released_app.mk index fb5205ab23..71d1771b47 100644 --- a/make/otp_released_app.mk +++ b/make/otp_released_app.mk @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 2014. 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. +# 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. # # %CopyrightEnd% diff --git a/make/otp_subdir.mk b/make/otp_subdir.mk index e6a75cce17..fa6470ddd7 100644 --- a/make/otp_subdir.mk +++ b/make/otp_subdir.mk @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 1997-2011. 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. +# 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. # # %CopyrightEnd% # diff --git a/make/output.mk.in b/make/output.mk.in index f2f738a2ce..171d2456aa 100644 --- a/make/output.mk.in +++ b/make/output.mk.in @@ -6,16 +6,17 @@ # # Copyright Ericsson AB 1997-2013. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/run_make.mk b/make/run_make.mk index 9570113861..2591a37cad 100644 --- a/make/run_make.mk +++ b/make/run_make.mk @@ -1,13 +1,14 @@ -# ``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 via the world wide web 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. +# ``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 diff --git a/make/save_args b/make/save_args index 331cde99e1..1109f8dd1b 100755 --- a/make/save_args +++ b/make/save_args @@ -1,15 +1,16 @@ #!/bin/sh # -# ``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 via the world wide web 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. +# ``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 diff --git a/make/target.mk b/make/target.mk index 4e13779461..8917e1ae44 100644 --- a/make/target.mk +++ b/make/target.mk @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 1998-2011. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% diff --git a/make/unexpected_use b/make/unexpected_use index d7543a7d83..58f6fc4793 100755 --- a/make/unexpected_use +++ b/make/unexpected_use @@ -4,16 +4,17 @@ # # Copyright Ericsson AB 2010. 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/. +# 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 # -# 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. +# 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. # # %CopyrightEnd% # diff --git a/make/verify_runtime_dependencies b/make/verify_runtime_dependencies index b8eea06b6e..cd08091a67 100755 --- a/make/verify_runtime_dependencies +++ b/make/verify_runtime_dependencies @@ -6,16 +6,17 @@ %% %% Copyright Ericsson AB 2014. 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/. +%% 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 %% -%% 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. +%% 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. %% %% %CopyrightEnd% %% -- cgit v1.2.3 From c431a065ba515d27830f01c852f70940efb3003b Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Thu, 2 Jul 2015 11:13:32 +0200 Subject: ose: Remove all code related to the OSE port The OSE port is no longer supported and this commit removed it and any changes related to it. The things that were general improvements have been left in the code. --- make/ose_lm.mk.in | 76 ------------------------------------------------------- make/otp.mk.in | 10 +++----- 2 files changed, 3 insertions(+), 83 deletions(-) delete mode 100644 make/ose_lm.mk.in (limited to 'make') diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in deleted file mode 100644 index de8d351af3..0000000000 --- a/make/ose_lm.mk.in +++ /dev/null @@ -1,76 +0,0 @@ -#-*-makefile-*- ; force emacs to enter makefile-mode -# ---------------------------------------------------- -# Template target for generating an OSE5 load module -# -# %CopyrightBegin% -# -# Copyright Ericsson AB 2013. 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. -# 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. -# -# %CopyrightEnd% -# -# Author: Petre Pircalabu -# ---------------------------------------------------- - -# ---------------------------------------------------- -# build-ose-load-module -# Creates an OSE5 load module -# params: -# $(1) - The output target -# $(2) - Objects -# $(3) - Libraries -# $(4) - LM configuration file -# ---------------------------------------------------- - -ifeq ($(findstring ose,$(TARGET)),ose) -LDR1FLAGS = @erl_xcomp_ose_ldflags_pass1@ -LDR2FLAGS = @erl_xcomp_ose_ldflags_pass2@ -OSEROOT = @erl_xcomp_ose_OSEROOT@ -LCF = @erl_xcomp_ose_LM_LCF@ -BEAM_LMCONF = @erl_xcomp_ose_BEAM_LM_CONF@ -EPMD_LMCONF = @erl_xcomp_ose_EPMD_LM_CONF@ -RUN_ERL_LMCONF = @erl_xcomp_ose_RUN_ERL_LM_CONF@ -STRIP = @erl_xcomp_ose_STRIP@ -LM_POST_LINK = @erl_xcomp_ose_LM_POST_LINK@ -LM_SET_CONF = @erl_xcomp_ose_LM_SET_CONF@ -LM_ELF_SIZE = @erl_xcomp_ose_LM_ELF_SIZE@ -OSE_CONFD = @erl_xcomp_ose_CONFD@ -CRT0_LM = @erl_xcomp_ose_CRT0_LM@ -endif - -define build-ose-load-module - @echo " --- Linking $(1)" - - @echo " --- Linking $(1) (pass 1)" - $(ld_verbose)$(PURIFY) $(LD) -o $(1)_unconfigured_ro -r \ - $(2) --start-group $(3) --end-group --cref --discard-none -M > $(1)_1.map - - @echo " --- Linking $(1) (pass 2)" - $(ld_verbose)$(PURIFY) $(LD) -o $(1)_unconfigured \ - $(1)_unconfigured_ro -T $(LCF) -n --emit-relocs -e crt0_lm --cref \ - --discard-none -M > $(1)_2.map - - @echo " --- Inserting configuration" - $(ld_verbose) $(LM_SET_CONF) $(1)_unconfigured < $(4) - - @echo " --- Striping $(1)" -# $(ld_verbose) $(STRIP) $(1)_unconfigured - - @echo " --- Postlinking $(1)" - $(ld_verbose) $(LM_POST_LINK) $(1)_unconfigured - - @echo " --- Sizing $(1)" - $(ld_verbose) $(LM_ELF_SIZE) $(1)_unconfigured - mv $(1)_unconfigured $(1) -endef diff --git a/make/otp.mk.in b/make/otp.mk.in index 723f83cb45..c05c499d66 100644 --- a/make/otp.mk.in +++ b/make/otp.mk.in @@ -90,14 +90,10 @@ OTP_RELEASE = @OTP_RELEASE@ # Erlang language section # ---------------------------------------------------- EMULATOR = beam -ifeq ($(findstring ose_ppc750,$(TARGET)),ose_ppc750) -ERL_COMPILE_FLAGS += +compressed +ifdef BOOTSTRAP + ERL_COMPILE_FLAGS += +slim else - ifdef BOOTSTRAP - ERL_COMPILE_FLAGS += +slim - else - ERL_COMPILE_FLAGS += +debug_info - endif + ERL_COMPILE_FLAGS += +debug_info endif ERLC_WFLAGS = -W ERLC = erlc $(ERLC_WFLAGS) $(ERLC_FLAGS) -- cgit v1.2.3 From a335fc471406252132b9152de2bc901193f90121 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Mon, 5 Oct 2015 12:37:36 +0200 Subject: Change xmllint target --- make/otp_release_targets.mk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'make') diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk index 97e9e4bb43..e104b68991 100644 --- a/make/otp_release_targets.mk +++ b/make/otp_release_targets.mk @@ -113,7 +113,16 @@ $(HTMLDIR)/$(APPLICATION).eix: $(XML_FILES) $(SPECS_FILES) docs: $(HTMLDIR)/$(APPLICATION).eix xmllint: $(XML_FILES) - $(XMLLINT) --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities $(XML_FILES) + @echo "Running xmllint" + @BookFiles=`awk -F\" '/xi:include/ {print $$2}' book.xml`; \ + for i in $$BookFiles; do \ + if [ $$i = "notes.xml" ]; then \ + echo Checking $$i; \ + xmllint --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities $$i; \ + else\ + awk -F\" '/xi:include/ {print "echo Checking " $$2 ;print "xmllint --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities " $$2}' $$i |sh; \ + fi \ + done # ---------------------------------------------------- # Local documentation target for testing -- cgit v1.2.3 From 2da3e0c38d6ca1aa134c9b1f5aee03a4030fc004 Mon Sep 17 00:00:00 2001 From: Alexey Lebedeff Date: Tue, 17 May 2016 16:05:48 +0300 Subject: Fix program paths used in build process Followup to https://github.com/erlang/otp/pull/1023 - make/make_emakefile is fixed because otherwise './otp_build tests' fails early. - And grep showed that there is only one other file that also should be fixed - lib/public_key/priv/generate --- make/make_emakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'make') diff --git a/make/make_emakefile b/make/make_emakefile index 80c4acae94..56440d9bf0 100755 --- a/make/make_emakefile +++ b/make/make_emakefile @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # -*- cperl -*- use strict; -- cgit v1.2.3 From 69d0c932c7d4a2bc3ce65c9c6d6aa54b23e803c3 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Mon, 23 May 2016 14:56:05 +0200 Subject: Adjust generated XML so it respects current DTD --- make/emd2exml.in | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) (limited to 'make') diff --git a/make/emd2exml.in b/make/emd2exml.in index d84b967e40..903d707716 100644 --- a/make/emd2exml.in +++ b/make/emd2exml.in @@ -39,7 +39,7 @@ %%% Created : 25 Feb 2010 by Rickard Green %%%------------------------------------------------------------------- --define(MAX_HEADING, 3). +-define(MAX_HEADING, 6). -define(DELAYED_COPYRIGHT_IX, 0). -define(DELAYED_TOC_IX, 1). @@ -80,7 +80,6 @@ copyright = false, copyright_data = [], have_h1 = false, - smarker_ix = false, toc = [], ifile, ofile}). @@ -368,9 +367,9 @@ put_text(S, "%OTP-REL%"++Cs, CTag, EmTag, Acc) -> put_text(S, [$\\,C|Cs], no, EmTag, Acc) -> put_text(S, Cs, no, EmTag, [C|Acc]); put_text(S, [C,C|Cs], no, b, Acc) when C == $*; C == $_ -> - put_text(S, Cs, no, no, [""|Acc]); + put_text(S, Cs, no, no, [""|Acc]); put_text(S, [C,C|Cs], no, no, Acc) when C == $*; C == $_ -> - put_text(S, Cs, no, b, [""|Acc]); + put_text(S, Cs, no, b, [""|Acc]); put_text(S, [C|Cs], no, em, Acc) when C == $*; C == $_ -> put_text(S, Cs, no, no, [""|Acc]); put_text(S, [C|Cs], no, no, Acc) when C == $*; C == $_ -> @@ -614,8 +613,7 @@ strip_lvls(_N, Str) -> put_title(S, 1, Title) -> header(chk_h1(1, S#state{h = 1, mlist = [top]}), Title); put_title(#state{mlist = MList0, - toc = TOC, - smarker_ix = SMarkerIX} = S0, H, Title) -> + toc = TOC} = S0, H, Title) -> TitleStr = text(Title), MList1 = [mk_lvl_marker(Title) | MList0], Marker = mk_marker(MList1), @@ -626,12 +624,10 @@ put_title(#state{mlist = MList0, "", TitleStr,"",nl()], h = H, - mlist = MList1, - smarker_ix = false}), - true = is_integer(SMarkerIX), - S2 = write_delayed(S1, SMarkerIX, ["",nl()]), + mlist = MList1}), + S2 = put_chars(S1, ["",nl()]), {STag, ETag} = case H > ?MAX_HEADING of - true -> {"

", "

"}; + true -> {"

", "

"}; false -> {"", ""} end, put_chars(S2, [STag, TitleStr, ETag, nl()]). @@ -701,15 +697,10 @@ sections_change(H, OldH, #state{mlist = [_|ML], toc = TOC} = S0) -> begin_section(1, S) -> put_line(S, ""); -begin_section(H, #state{delayed_array_ix = IX} = S0) when H > ?MAX_HEADING -> - false = S0#state.smarker_ix, - true = is_integer(IX), - put_delayed(S0#state{smarker_ix = IX, delayed_array_ix = IX+1}, IX); -begin_section(H, #state{delayed_array_ix = IX} = S0) when H > 1 -> - false = S0#state.smarker_ix, - true = is_integer(IX), - S1 = put_delayed(S0#state{smarker_ix = IX, delayed_array_ix = IX+1}, IX), - put_line(S1, "
"); +begin_section(H, S) when H > ?MAX_HEADING -> + S; +begin_section(H, S0) when H > 1 -> + put_line(S0, "
"); begin_section(_H, S) -> S. @@ -779,7 +770,7 @@ create_toc(#state{toc = TOC} = S) -> {value,{"true",[]}} -> write_delayed(S, ?DELAYED_TOC_IX, - ["

Table of Contents

", nl(), TOC]); + ["

Table of Contents

", nl(), TOC]); _ -> write_delayed(S, ?DELAYED_TOC_IX, "") end. @@ -986,10 +977,10 @@ chg_bq_lvl(Lvl, #state{bq_lvl = Lvl} = S) -> S; chg_bq_lvl(NewLvl, #state{bq_lvl = Lvl} = S) when NewLvl > Lvl -> chg_bq_lvl(NewLvl, - put_line(end_p(end_code(S#state{bq_lvl = Lvl+1})), "
")); + put_line(end_p(end_code(S#state{bq_lvl = Lvl+1})), "")); chg_bq_lvl(NewLvl, #state{bq_lvl = Lvl} = S) -> chg_bq_lvl(NewLvl, - put_line(end_p(end_code(S#state{bq_lvl = Lvl-1})), "
")). + put_line(end_p(end_code(S#state{bq_lvl = Lvl-1})), "")). %% %% Resolve link -- cgit v1.2.3 From a3afcff92485b6a696e40359a7d0300d4661e9c1 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Fri, 13 May 2016 08:04:51 +0200 Subject: Make it possible to run xmllint target in system documentation --- make/otp_release_targets.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'make') diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk index e104b68991..13b54645ad 100644 --- a/make/otp_release_targets.mk +++ b/make/otp_release_targets.mk @@ -120,7 +120,7 @@ xmllint: $(XML_FILES) echo Checking $$i; \ xmllint --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities $$i; \ else\ - awk -F\" '/xi:include/ {print "echo Checking " $$2 ;print "xmllint --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities " $$2}' $$i |sh; \ + awk -F\" '/xi:include/ {print "echo Checking " $$2 ;print "xmllint --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/priv/dtd_html_entities:$(XMLLINT_SRCDIRS) " $$2}' $$i |sh; \ fi \ done -- cgit v1.2.3