%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2009-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. %% %% %CopyrightEnd% -define(APPLICATION, reltool). -define(MISSING_APP, '*MISSING*'). -define(MISSING_APP_TEXT, "*MISSING*"). -record(common, { sys_debug, % term() wx_debug, % term() trap_exit, % bool() app_tab, % ets_tab() mod_tab, % ets_tab() mod_used_by_tab % ets_tab() }). -record(sys, { %% Sources root_dir, % directory() lib_dirs, % [directory()] escripts, % [file()] mod_cond, % all | app | ebin | derived | none incl_cond, % include | exclude | derived apps, % [#app{}] %% Target cond boot_rel, % string() rels, % [#rel{}] emu_name, % string() profile, % standalone | development | embedded incl_sys_filters, % [regexp()] excl_sys_filters, % [regexp()] incl_app_filters, % [regexp()] excl_app_filters, % [regexp()] incl_archive_filters, % [regexp()] excl_archive_filters, % [regexp()] archive_opts, % [zip:create()] relocatable, % bool() app_type, % permanent | transient | temporary | load | none app_file, % keep | strip | all debug_info % keep | strip }). -record(rel, { name, % string() vsn, % string() rel_apps % [#rel_app{}] }). -record(rel_app, { name, % atom() app_type, % permanent | transient | temporary | load | none incl_apps % [atom()] }). -record(app, {%% Static info name, % atom() is_escript, % bool() use_selected_vsn,% bool() | undefined active_dir, % dir_name() sorted_dirs, % [dir_name()] vsn, % string() e.g. "4.7" label, % string() e.g. "mnesia" or "mnesia-4.7" info, % #app_info{} | undefined mods, % [#mod{}] %% Static source cond mod_cond, % all | app | ebin | derived | none | undefined incl_cond, % include | exclude | derived | undefined %% Static target cond debug_info, % keep | strip | undefined app_file, % keep | strip | all | undefined app_type, % permanent | transient | temporary | load | none incl_app_filters, % [regexp()] excl_app_filters, % [regexp()] incl_archive_filters, % [regexp()] excl_archive_filters, % [regexp()] archive_opts, % [zip_create_opt()] %% Dynamic status, % missing | ok uses_mods, % [atom()] used_by_mods, % [atom()] uses_apps, % [atom()] used_by_apps, % [atom()] is_pre_included, % bool() is_included % bool() }). -record(mod, {%% Static name, % atom() app_name, % atom() incl_cond, % include | exclude | derived | undefined debug_info, % keep | strip | undefined is_app_mod, % bool(), is_ebin_mod, % bool(), uses_mods, % [module()] exists, % bool() %% Dynamic status, % missing | ok used_by_mods, % [atom()] is_pre_included, % bool() | undefined is_included % bool() | undefined }). %% app - Include all modules in app file %% ebin - Include all modules on ebin directory %% derived - Include only those modules that others are dependent on -record(app_info, { description = "", id = "", vsn = "", modules = [], maxP = infinity, maxT = infinity, registered = [], incl_apps = [], applications = [], env = [], mod = undefined, start_phases = undefined }). -record(regexp, {source, compiled}). -define(ERR_IMAGE, 0). -define(WARN_IMAGE, 1). -define(QUEST_IMAGE, 2). -define(TICK_IMAGE, 3). -define(CROSS_IMAGE, 4). -define(SOURCE_IMAGE, 5). -define(KEYSEARCH(Key, Pos, List), reltool_utils:safe_keysearch(Key, Pos, List, ?MODULE, ?LINE)). -define(DEFAULT_LIBS, []). -define(DEFAULT_APPS, []). -define(DEFAULT_INCL_COND, derived). -define(DEFAULT_MOD_COND, all). -define(DEFAULT_REL_NAME, "start_clean"). -define(DEFAULT_EMU_NAME, "beam"). -define(DEFAULT_PROFILE, development). -define(DEFAULT_RELOCATABLE, true). -define(DEFAULT_APP_TYPE, permanent). -define(DEFAULT_APP_FILE, keep). -define(DEFAULT_DEBUG_INFO, keep). -define(DEFAULT_INCL_ARCHIVE_FILTERS, [".*"]). -define(DEFAULT_EXCL_ARCHIVE_FILTERS, ["^include$", "^priv$"]). -define(DEFAULT_ARCHIVE_OPTS, []). -define(DEFAULT_INCL_SYS_FILTERS, [".*"]). -define(DEFAULT_EXCL_SYS_FILTERS, []). -define(DEFAULT_INCL_APP_FILTERS, [".*"]). -define(DEFAULT_EXCL_APP_FILTERS, []). -define(EMBEDDED_INCL_SYS_FILTERS, ["^bin", "^erts", "^lib", "^releases"]). -define(EMBEDDED_EXCL_SYS_FILTERS, ["^bin/(erlc|dialyzer|typer)(|\\.exe)$", "^erts.*/bin/(erlc|dialyzer|typer)(|\\.exe)$", "^erts.*/bin/.*(debug|pdb)"]). -define(EMBEDDED_INCL_APP_FILTERS, ["^ebin", "^priv", "^include"]). -define(EMBEDDED_EXCL_APP_FILTERS, []). -define(STANDALONE_INCL_SYS_FILTERS, ["^bin/(erl|epmd)(|\\.exe|\\.ini)$", "^bin/start(|_clean).boot$", "^erts.*/bin", "^lib$"]). -define(STANDALONE_EXCL_SYS_FILTERS, ["^erts.*/bin/(erlc|dialyzer|typer)(|\\.exe)$", "^erts.*/bin/(start|escript|to_erl|run_erl)(|\\.exe)$", "^erts.*/bin/.*(debug|pdb)"]). -define(STANDALONE_INCL_APP_FILTERS, ["^ebin", "^priv"]). -define(STANDALONE_EXCL_APP_FILTERS, ["^ebin/.*\\.appup$"]).