From 8cc3a35dd4f830a50ce4e5cb859983eac44e7753 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 14 Mar 2018 05:45:19 -0400 Subject: [PATCH 001/185] Update default config to modern standards --- src/libresrc/default_config.json | 26 +++++++++++++------------- src/libresrc/osx/default_config.json | 26 +++++++++++++------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index c541ca16e..731d48d6f 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -40,24 +40,24 @@ "Display" : { "Draw" : { "Cursor Time" : true, - "Inactive Comments" : true, + "Inactive Comments" : false, "Keyframes in Dialogue Mode" : true, "Keyframes in Karaoke Mode" : true, - "Seconds" : false, - "Video Position" : false + "Seconds" : true, + "Video Position" : true }, "Waveform Style" : 0 }, "Downmixer" : "ConvertToMono", "Drag Timing" : true, - "Inactive Lines Display Mode" : 1, + "Inactive Lines Display Mode" : 3, "Karaoke" : { "Font Face" : "Verdana", "Font Size" : 9 }, "Lead" : { - "IN" : 200, - "OUT" : 300 + "IN" : 100, + "OUT" : 350 }, "Line Boundaries Thickness" : 2, "Link" : true, @@ -75,11 +75,11 @@ } }, "Snap" : { - "Distance" : 10, - "Enable" : false + "Distance" : 8, + "Enable" : true }, "Spectrum" : true, - "Start Drag Sensitivity" : 3, + "Start Drag Sensitivity" : 8, "Track Cursor" : { "Font Face" : "" }, @@ -421,7 +421,7 @@ }, "Timing" : { - "Default Duration" : 2000 + "Default Duration" : 3000 }, "Tool" : { @@ -584,13 +584,13 @@ "Dummy" : { "FPS" : 23.975999999999999091, "Last" : { - "Height" : 480, + "Height" : 720, "Length" : 40000, - "Width" : 640 + "Width" : 1280 }, "Pattern" : false }, - "Force BT.601" : true, + "Force BT.601" : false, "Last Script Resolution Mismatch Choice" : 2, "Open Audio" : true, "Overscan Mask" : false, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index 3e0617216..707625e82 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -40,24 +40,24 @@ "Display" : { "Draw" : { "Cursor Time" : true, - "Inactive Comments" : true, + "Inactive Comments" : false, "Keyframes in Dialogue Mode" : true, "Keyframes in Karaoke Mode" : true, - "Seconds" : false, - "Video Position" : false + "Seconds" : true, + "Video Position" : true }, "Waveform Style" : 0 }, "Downmixer" : "ConvertToMono", "Drag Timing" : true, - "Inactive Lines Display Mode" : 1, + "Inactive Lines Display Mode" : 3, "Karaoke" : { "Font Face" : "", "Font Size" : 9 }, "Lead" : { - "IN" : 200, - "OUT" : 300 + "IN" : 100, + "OUT" : 350 }, "Line Boundaries Thickness" : 2, "Link" : true, @@ -75,11 +75,11 @@ } }, "Snap" : { - "Distance" : 10, - "Enable" : false + "Distance" : 8, + "Enable" : true }, "Spectrum" : true, - "Start Drag Sensitivity" : 3, + "Start Drag Sensitivity" : 8, "Track Cursor" : { "Font Face" : "" }, @@ -421,7 +421,7 @@ }, "Timing" : { - "Default Duration" : 2000 + "Default Duration" : 3000 }, "Tool" : { @@ -584,13 +584,13 @@ "Dummy" : { "FPS" : 23.975999999999999091, "Last" : { - "Height" : 480, + "Height" : 720, "Length" : 40000, - "Width" : 640 + "Width" : 1280 }, "Pattern" : false }, - "Force BT.601" : true, + "Force BT.601" : false, "Last Script Resolution Mismatch Choice" : 2, "Open Audio" : true, "Overscan Mask" : false, From 10814a7d0bf687b5ab22d9d98fe5e40bb54e511c Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 25 Mar 2018 07:50:05 -0400 Subject: [PATCH 002/185] Add support for setting status bar text from Lua --- automation/v4-docs/misc.txt | 8 ++++++++ src/auto4_lua.cpp | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/automation/v4-docs/misc.txt b/automation/v4-docs/misc.txt index 9c656f0e4..5b96d3519 100644 --- a/automation/v4-docs/misc.txt +++ b/automation/v4-docs/misc.txt @@ -40,3 +40,11 @@ Returns: 2 values, all numbers. 2. End of the selection, in milliseconds. --- + +Setting the main frame's status bar text + +function aegisub.set_status_bar_text(text) + +Returns: 0 values + +--- diff --git a/src/auto4_lua.cpp b/src/auto4_lua.cpp index b952b2e7c..6c131902e 100644 --- a/src/auto4_lua.cpp +++ b/src/auto4_lua.cpp @@ -44,6 +44,7 @@ #include "audio_timing.h" #include "command/command.h" #include "compat.h" +#include "frame_main.h" #include "include/aegisub/context.h" #include "options.h" #include "project.h" @@ -52,6 +53,7 @@ #include "video_controller.h" #include "utils.h" +#include #include #include #include @@ -270,6 +272,19 @@ namespace { return 2; } + int lua_set_status_text(lua_State *L) + { + const agi::Context *c = get_context(L); + if (!c || !c->frame) { + lua_pushnil(L); + return 1; + } + std::string text = check_string(L, 1); + lua_pop(L, 1); + agi::dispatch::Main().Async([=] { c->frame->StatusTimeout(to_wx(text)); }); + return 0; + } + int project_properties(lua_State *L) { const agi::Context *c = get_context(L); @@ -473,6 +488,7 @@ namespace { set_field(L, "gettext"); set_field(L, "project_properties"); set_field(L, "get_audio_selection"); + set_field(L, "set_status_text"); // store aegisub table to globals lua_settable(L, LUA_GLOBALSINDEX); From 3bcc7269be931107f1a1f3478606a11faa6e2ed0 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 25 Mar 2018 09:30:29 -0400 Subject: [PATCH 003/185] Remove Force BT.601 option and update color matrix guessing --- src/libresrc/default_config.json | 1 - src/libresrc/osx/default_config.json | 1 - src/preferences.cpp | 3 --- src/project.cpp | 1 - src/resolution_resampler.cpp | 2 +- src/video_provider_avs.cpp | 13 ++++++------- src/video_provider_ffmpegsource.cpp | 4 ++-- 7 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 731d48d6f..593d4524e 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -590,7 +590,6 @@ }, "Pattern" : false }, - "Force BT.601" : false, "Last Script Resolution Mismatch Choice" : 2, "Open Audio" : true, "Overscan Mask" : false, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index 707625e82..fc3dd4daf 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -590,7 +590,6 @@ }, "Pattern" : false }, - "Force BT.601" : false, "Last Script Resolution Mismatch Choice" : 2, "Open Audio" : true, "Overscan Mask" : false, diff --git a/src/preferences.cpp b/src/preferences.cpp index 93cac807c..c835bad13 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -421,9 +421,6 @@ void Advanced_Video(wxTreebook *book, Preferences *parent) { wxArrayString sp_choice = to_wx(SubtitlesProviderFactory::GetClasses()); p->OptionChoice(expert, _("Subtitles provider"), sp_choice, "Subtitle/Provider"); - p->CellSkip(expert); - p->OptionAdd(expert, _("Force BT.601"), "Video/Force BT.601"); - #ifdef WITH_AVISYNTH auto avisynth = p->PageSizer("Avisynth"); p->OptionAdd(avisynth, _("Allow pre-2.56a Avisynth"), "Provider/Avisynth/Allow Ancient"); diff --git a/src/project.cpp b/src/project.cpp index 5ed6578d4..312f86fe8 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -58,7 +58,6 @@ Project::Project(agi::Context *c) : context(c) { OPT_SUB("Provider/Video/FFmpegSource/Decoding Threads", &Project::ReloadVideo, this); OPT_SUB("Provider/Video/FFmpegSource/Unsafe Seeking", &Project::ReloadVideo, this); OPT_SUB("Subtitle/Provider", &Project::ReloadVideo, this); - OPT_SUB("Video/Force BT.601", &Project::ReloadVideo, this); OPT_SUB("Video/Provider", &Project::ReloadVideo, this); } diff --git a/src/resolution_resampler.cpp b/src/resolution_resampler.cpp index ee4e19f87..e5c0b56f9 100644 --- a/src/resolution_resampler.cpp +++ b/src/resolution_resampler.cpp @@ -48,7 +48,7 @@ static const std::string names[] = { }; YCbCrMatrix MatrixFromString(std::string const& str) { - if (str.empty()) return YCbCrMatrix::tv_601; + if (str.empty()) return YCbCrMatrix::tv_709; auto pos = std::find(std::begin(names), std::end(names), str); if (pos == std::end(names)) return YCbCrMatrix::rgb; diff --git a/src/video_provider_avs.cpp b/src/video_provider_avs.cpp index 5273a128d..dabcdaa68 100644 --- a/src/video_provider_avs.cpp +++ b/src/video_provider_avs.cpp @@ -191,17 +191,16 @@ void AvisynthVideoProvider::Init(std::string const& colormatrix) { real_colorspace = colorspace = "None"; else { /// @todo maybe read ColorMatrix hints for d2v files? - AVSValue args[2] = { script, "Rec601" }; - bool force_bt601 = OPT_GET("Video/Force BT.601")->GetBool() || colormatrix == "TV.601"; + AVSValue args[2] = { script, "Rec709" }; bool bt709 = vi.width > 1024 || vi.height >= 600; - if (bt709 && (!force_bt601 || colormatrix == "TV.709")) { - args[1] = "Rec709"; - real_colorspace = colorspace = "TV.709"; + if (colormatrix == "TV.601") { + args[1] = "Rec601"; + colorspace = "TV.601"; } else { - colorspace = "TV.601"; - real_colorspace = bt709 ? "TV.709" : "TV.601"; + colorspace = "TV.709"; } + real_colorspace = bt709 ? "TV.709" : "TV.601"; const char *argnames[2] = { 0, "matrix" }; script = avs.GetEnv()->Invoke("ConvertToRGB32", AVSValue(args, 2), argnames); } diff --git a/src/video_provider_ffmpegsource.cpp b/src/video_provider_ffmpegsource.cpp index 2f057e93d..a76339659 100644 --- a/src/video_provider_ffmpegsource.cpp +++ b/src/video_provider_ffmpegsource.cpp @@ -243,9 +243,9 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st RealColorSpace = ColorSpace = colormatrix_description(CS, CR); #if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (1 << 8) | 0) - if (CS != FFMS_CS_RGB && CS != FFMS_CS_BT470BG && ColorSpace != colormatrix && (colormatrix == "TV.601" || OPT_GET("Video/Force BT.601")->GetBool())) { + if (CS != FFMS_CS_RGB && CS != FFMS_CS_BT470BG && ColorSpace != colormatrix && colormatrix == "TV.601") { CS = FFMS_CS_BT470BG; - ColorSpace = colormatrix_description(FFMS_CS_BT470BG, CR); + ColorSpace = colormatrix_description(CS, CR); } if (CS != VideoCS) { From 95d96f938bc95211aed08035cafb17fe925528b8 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Tue, 27 Mar 2018 15:07:37 -0400 Subject: [PATCH 004/185] Make translation assistant skipping whitespace an explicit setting --- src/dialog_translation.cpp | 4 +++- src/libresrc/default_config.json | 3 ++- src/libresrc/osx/default_config.json | 3 ++- src/preferences.cpp | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/dialog_translation.cpp b/src/dialog_translation.cpp index c5fb4ffb8..c953b6874 100644 --- a/src/dialog_translation.cpp +++ b/src/dialog_translation.cpp @@ -31,6 +31,7 @@ #include "format.h" #include "help_button.h" #include "libresrc/libresrc.h" +#include "options.h" #include "persist_location.h" #include "project.h" #include "subs_edit_ctrl.h" @@ -57,7 +58,8 @@ static void add_hotkey(wxSizer *sizer, wxWindow *parent, const char *command, wx // Skip over override blocks, comments, and whitespace between blocks static bool bad_block(std::unique_ptr &block) { - return block->GetType() != AssBlockType::PLAIN || boost::all(block->GetText(), boost::is_space()); + bool is_whitespace = boost::all(block->GetText(), boost::is_space()); + return block->GetType() != AssBlockType::PLAIN || (is_whitespace && OPT_GET("Tool/Translation Assistant/Skip Whitespace")->GetBool()); } DialogTranslation::DialogTranslation(agi::Context *c) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 593d4524e..0134efb94 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -559,7 +559,8 @@ "X" : -1, "Y" : -1 }, - "Maximized" : false + "Maximized" : false, + "Skip Whitespace" : true }, "Visual" : { "Autohide": false diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index fc3dd4daf..c230c7460 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -559,7 +559,8 @@ "X" : -1, "Y" : -1 }, - "Maximized" : false + "Maximized" : false, + "Skip Whitespace" : true }, "Visual" : { "Autohide": false diff --git a/src/preferences.cpp b/src/preferences.cpp index c835bad13..1986a6132 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -225,6 +225,9 @@ void Interface(wxTreebook *book, Preferences *parent) { p->OptionAdd(grid, _("Hide overrides symbol"), "Subtitle/Grid/Hide Overrides Char"); p->OptionFont(grid, "Subtitle/Grid/"); + auto tl_assistant = p->PageSizer(_("Translation Assistant")); + p->OptionAdd(tl_assistant, _("Skip over whitespace"), "Tool/Translation Assistant/Skip Whitespace"); + p->SetSizerAndFit(p->sizer); } From 2f500cd4804c94efb7583970b1435b8267d8bf0f Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 29 Mar 2018 02:51:01 -0400 Subject: [PATCH 005/185] Remove dead forums link --- src/command/help.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/command/help.cpp b/src/command/help.cpp index 144a1f81a..ece65000c 100644 --- a/src/command/help.cpp +++ b/src/command/help.cpp @@ -75,18 +75,6 @@ struct help_contents final : public Command { } }; -struct help_forums final : public Command { - CMD_NAME("help/forums") - CMD_ICON(forums_button) - STR_MENU("&Forums") - STR_DISP("Forums") - STR_HELP("Visit Aegisub's forums") - - void operator()(agi::Context *) override { - wxLaunchDefaultBrowser("http://forum.aegisub.org/", wxBROWSER_NEW_WINDOW); - } -}; - struct help_irc final : public Command { CMD_NAME("help/irc") CMD_ICON(irc_button) @@ -128,7 +116,6 @@ namespace cmd { void init_help() { reg(agi::make_unique()); reg(agi::make_unique()); - reg(agi::make_unique()); reg(agi::make_unique()); reg(agi::make_unique()); reg(agi::make_unique()); From dbd7dd8ba1928ccd6d70529f086b34e103f6d6b2 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Apr 2018 04:42:58 -0400 Subject: [PATCH 006/185] Remove shitty joke The default message here is an old joke in extremely poor taste, and best replaced in the config --- src/libresrc/default_config.json | 2 +- src/libresrc/osx/default_config.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 0134efb94..be276c57e 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -515,7 +515,7 @@ "Y" : -1 }, "Maximized" : false, - "Preview Text" : "Aegisub\\N0123 月語" + "Preview Text" : "Aegisub\\N0123 日本語" }, "Style Manager" : { "Last" : { diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index c230c7460..e9a01ea23 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -515,7 +515,7 @@ "Y" : -1 }, "Maximized" : false, - "Preview Text" : "Aegisub\\N0123 月語" + "Preview Text" : "Aegisub\\N0123 日本語" }, "Style Manager" : { "Last" : { From 50a18c79427ec0773fab77bdbb2092e7eb17cf01 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Apr 2018 17:58:12 -0400 Subject: [PATCH 007/185] Use proper event for DoubleUpdater Previously changes weren't recognized because the event bound was for integers --- src/preferences_base.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/preferences_base.cpp b/src/preferences_base.cpp index 32fa1fd7d..cb2c832d7 100644 --- a/src/preferences_base.cpp +++ b/src/preferences_base.cpp @@ -55,7 +55,7 @@ OPTION_UPDATER(StringUpdater, wxCommandEvent, OptionValueString, from_wx(evt.GetString())); OPTION_UPDATER(IntUpdater, wxSpinEvent, OptionValueInt, evt.GetInt()); OPTION_UPDATER(IntCBUpdater, wxCommandEvent, OptionValueInt, evt.GetInt()); -OPTION_UPDATER(DoubleUpdater, wxSpinEvent, OptionValueDouble, evt.GetInt()); +OPTION_UPDATER(DoubleUpdater, wxSpinDoubleEvent, OptionValueDouble, evt.GetValue()); OPTION_UPDATER(BoolUpdater, wxCommandEvent, OptionValueBool, !!evt.GetInt()); OPTION_UPDATER(ColourUpdater, ValueEvent, OptionValueColor, evt.Get()); @@ -132,7 +132,7 @@ wxControl *OptionPage::OptionAdd(wxFlexGridSizer *flex, const wxString &name, co case agi::OptionType::Double: { auto scd = new wxSpinCtrlDouble(this, -1, std::to_wstring(opt->GetDouble()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, min, max, opt->GetDouble(), inc); - scd->Bind(wxEVT_SPINCTRL, DoubleUpdater(opt_name, parent)); + scd->Bind(wxEVT_SPINCTRLDOUBLE, DoubleUpdater(opt_name, parent)); Add(flex, name, scd); return scd; } From 4d048e3c907c62fd8e295c014db46480dc9d537c Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Apr 2018 17:59:32 -0400 Subject: [PATCH 008/185] Add configuration options for colors in visual typesetting tools --- src/libresrc/default_config.json | 7 +++++++ src/libresrc/osx/default_config.json | 7 +++++++ src/options.h | 2 ++ src/preferences.cpp | 10 ++++++++++ src/visual_tool.cpp | 28 ++++++++++++++++------------ src/visual_tool.h | 9 +++++++-- src/visual_tool_clip.cpp | 14 ++++++++++---- src/visual_tool_drag.cpp | 8 ++++++-- src/visual_tool_rotatexy.cpp | 16 +++++++++++----- src/visual_tool_rotatez.cpp | 19 +++++++++++++------ src/visual_tool_scale.cpp | 18 +++++++++++++----- src/visual_tool_vector_clip.cpp | 27 +++++++++++++++++---------- 12 files changed, 119 insertions(+), 46 deletions(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index be276c57e..61921d0b0 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -266,6 +266,13 @@ }, "Video Dummy" : { "Last Colour" : "rgb(47, 163, 254)" + }, + "Visual Tools" : { + "Highlight Primary" : "rgb(255, 169, 40)", + "Highlight Secondary" : "rgb(255, 253, 185)", + "Lines Primary" : "rgb(187, 0, 0)", + "Lines Secondary" : "rgb(106, 32, 19)", + "Shaded Area Alpha" : 0.5 } }, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index e9a01ea23..62d04874e 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -266,6 +266,13 @@ }, "Video Dummy" : { "Last Colour" : "rgb(47, 163, 254)" + }, + "Visual Tools" : { + "Highlight Primary" : "rgb(255, 169, 40)", + "Highlight Secondary" : "rgb(255, 253, 185)", + "Lines Primary" : "rgb(187, 0, 0)", + "Lines Secondary" : "rgb(106, 32, 19)", + "Shaded Area Alpha" : 0.5 } }, diff --git a/src/options.h b/src/options.h index 8f0240334..77e6676a2 100644 --- a/src/options.h +++ b/src/options.h @@ -14,6 +14,8 @@ // // Aegisub Project http://www.aegisub.org/ +#pragma once + #include #include #include diff --git a/src/preferences.cpp b/src/preferences.cpp index 1986a6132..7850af5f9 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -288,6 +288,16 @@ void Interface_Colours(wxTreebook *book, Preferences *parent) { p->OptionAdd(grid, _("Lines"), "Colour/Subtitle Grid/Lines"); p->OptionAdd(grid, _("CPS Error"), "Colour/Subtitle Grid/CPS Error"); + auto visual_tools = p->PageSizer(_("Visual Typesetting Tools")); + p->OptionAdd(visual_tools, _("Primary Lines"), "Colour/Visual Tools/Lines Primary"); + p->OptionAdd(visual_tools, _("Secondary Lines"), "Colour/Visual Tools/Lines Secondary"); + p->OptionAdd(visual_tools, _("Primary Highlight"), "Colour/Visual Tools/Highlight Primary"); + p->OptionAdd(visual_tools, _("Secondary Highlight"), "Colour/Visual Tools/Highlight Secondary"); + + // Separate sizer to prevent the colors in the visual tools section from getting resized + auto visual_tools_alpha = p->PageSizer(_("Visual Typesetting Tools Alpha")); + p->OptionAdd(visual_tools_alpha, _("Shaded Area"), "Colour/Visual Tools/Shaded Area Alpha", 0, 1, 0.1); + p->sizer = main_sizer; p->SetSizerAndFit(p->sizer); diff --git a/src/visual_tool.cpp b/src/visual_tool.cpp index bdbc4e813..13009127c 100644 --- a/src/visual_tool.cpp +++ b/src/visual_tool.cpp @@ -23,7 +23,9 @@ #include "ass_dialogue.h" #include "ass_file.h" #include "ass_style.h" +#include "compat.h" #include "include/aegisub/context.h" +#include "options.h" #include "selection_controller.h" #include "video_controller.h" #include "video_display.h" @@ -37,17 +39,15 @@ #include -const wxColour VisualToolBase::colour[] = { - wxColour(106,32,19), - wxColour(255,169,40), - wxColour(255,253,185), - wxColour(187,0,0) -}; - VisualToolBase::VisualToolBase(VideoDisplay *parent, agi::Context *context) : c(context) , parent(parent) , frame_number(c->videoController->GetFrameN()) +, highlight_color_primary_opt(OPT_GET("Colour/Visual Tools/Highlight Primary")) +, highlight_color_secondary_opt(OPT_GET("Colour/Visual Tools/Highlight Secondary")) +, line_color_primary_opt(OPT_GET("Colour/Visual Tools/Lines Primary")) +, line_color_secondary_opt(OPT_GET("Colour/Visual Tools/Lines Secondary")) +, shaded_area_alpha_opt(OPT_GET("Colour/Visual Tools/Shaded Area Alpha")) , file_changed_connection(c->ass->AddCommitListener(&VisualToolBase::OnCommit, this)) { int script_w, script_h; @@ -273,14 +273,18 @@ void VisualTool::OnMouseEvent(wxMouseEvent &event) { template void VisualTool::DrawAllFeatures() { - gl.SetLineColour(colour[0], 1.0f, 1); + wxColour grid_color = to_wx(line_color_secondary_opt->GetColor()); + gl.SetLineColour(grid_color, 1.0f, 1); + wxColour base_fill = to_wx(line_color_primary_opt->GetColor()); + wxColour active_fill = to_wx(highlight_color_secondary_opt->GetColor()); + wxColour alt_fill = to_wx(line_color_primary_opt->GetColor()); for (auto& feature : features) { - int fill = 1; + wxColour fill = base_fill; if (&feature == active_feature) - fill = 2; + fill = active_fill; else if (sel_features.count(&feature)) - fill = 3; - gl.SetFillColour(colour[fill], 0.3f); + fill = alt_fill; + gl.SetFillColour(fill, 0.3f); feature.Draw(gl); } } diff --git a/src/visual_tool.h b/src/visual_tool.h index d1af51f02..72eec4224 100644 --- a/src/visual_tool.h +++ b/src/visual_tool.h @@ -22,6 +22,7 @@ #include "gl_wrap.h" #include "vector2d.h" +#include "options.h" #include #include @@ -85,8 +86,6 @@ protected: /// Called when the user double-clicks virtual void OnDoubleClick() { } - static const wxColour colour[4]; - agi::Context *c; VideoDisplay *parent; @@ -106,6 +105,12 @@ protected: Vector2D video_pos; ///< Top-left corner of the video in the display area Vector2D video_res; ///< Video resolution + const agi::OptionValue *highlight_color_primary_opt; + const agi::OptionValue *highlight_color_secondary_opt; + const agi::OptionValue *line_color_primary_opt; + const agi::OptionValue *line_color_secondary_opt; + const agi::OptionValue *shaded_area_alpha_opt; + agi::signal::Connection file_changed_connection; int commit_id = -1; ///< Last used commit id for coalescing diff --git a/src/visual_tool_clip.cpp b/src/visual_tool_clip.cpp index b9e41f3c1..52a1024b2 100644 --- a/src/visual_tool_clip.cpp +++ b/src/visual_tool_clip.cpp @@ -21,7 +21,9 @@ #include "visual_tool_clip.h" #include "ass_dialogue.h" +#include "compat.h" #include "include/aegisub/context.h" +#include "options.h" #include "selection_controller.h" #include @@ -66,14 +68,18 @@ void VisualToolClip::Draw() { DrawAllFeatures(); + // Load colors from options + wxColour line_color = to_wx(line_color_primary_opt->GetColor()); + float shaded_alpha = static_cast(shaded_area_alpha_opt->GetDouble()); + // Draw rectangle - gl.SetLineColour(colour[3], 1.0f, 2); - gl.SetFillColour(colour[3], 0.0f); + gl.SetLineColour(line_color, 1.0f, 2); + gl.SetFillColour(line_color, 0.0f); gl.DrawRectangle(cur_1, cur_2); // Draw outside area - gl.SetLineColour(colour[3], 0.0f); - gl.SetFillColour(*wxBLACK, 0.5f); + gl.SetLineColour(line_color, 0.0f); + gl.SetFillColour(*wxBLACK, shaded_alpha); if (inverse) { gl.DrawRectangle(cur_1, cur_2); } diff --git a/src/visual_tool_drag.cpp b/src/visual_tool_drag.cpp index 63236dc7f..9d8aa6594 100644 --- a/src/visual_tool_drag.cpp +++ b/src/visual_tool_drag.cpp @@ -22,6 +22,7 @@ #include "ass_dialogue.h" #include "ass_file.h" +#include "compat.h" #include "include/aegisub/context.h" #include "libresrc/libresrc.h" #include "options.h" @@ -182,6 +183,9 @@ void VisualToolDrag::OnSelectedSetChanged() { void VisualToolDrag::Draw() { DrawAllFeatures(); + // Load colors from options + wxColour line_color = to_wx(line_color_primary_opt->GetColor()); + // Draw connecting lines for (auto& feature : features) { if (feature.type == DRAG_START) continue; @@ -203,7 +207,7 @@ void VisualToolDrag::Draw() { Vector2D end = p2->pos - direction * (10 + arrow_len); if (has_arrow) { - gl.SetLineColour(colour[3], 0.8f, 2); + gl.SetLineColour(line_color, 0.8f, 2); // Arrow line gl.DrawLine(start, end); @@ -214,7 +218,7 @@ void VisualToolDrag::Draw() { } // Draw dashed line else { - gl.SetLineColour(colour[3], 0.5f, 2); + gl.SetLineColour(line_color, 0.5f, 2); gl.DrawDashedLine(start, end, 6); } } diff --git a/src/visual_tool_rotatexy.cpp b/src/visual_tool_rotatexy.cpp index 0a6949c22..acb389acd 100644 --- a/src/visual_tool_rotatexy.cpp +++ b/src/visual_tool_rotatexy.cpp @@ -20,7 +20,9 @@ #include "visual_tool_rotatexy.h" +#include "compat.h" #include "include/aegisub/context.h" +#include "options.h" #include "selection_controller.h" #include @@ -41,17 +43,21 @@ void VisualToolRotateXY::Draw() { DrawAllFeatures(); + // Load colors from options + wxColour line_color_primary = to_wx(line_color_primary_opt->GetColor()); + wxColour line_color_secondary = to_wx(line_color_secondary_opt->GetColor()); + // Transform grid gl.SetOrigin(org->pos); gl.SetRotation(angle_x, angle_y, angle_z); gl.SetShear(fax, fay); // Draw grid - gl.SetLineColour(colour[0], 0.5f, 2); + gl.SetLineColour(line_color_secondary, 0.5f, 2); gl.SetModeLine(); - float r = colour[0].Red() / 255.f; - float g = colour[0].Green() / 255.f; - float b = colour[0].Blue() / 255.f; + float r = line_color_secondary.Red() / 255.f; + float g = line_color_secondary.Green() / 255.f; + float b = line_color_secondary.Blue() / 255.f; // Number of lines on each side of each axis static const int radius = 15; @@ -103,7 +109,7 @@ void VisualToolRotateXY::Draw() { gl.DrawLines(2, points, 4, colors); // Draw vectors - gl.SetLineColour(colour[3], 1.f, 2); + gl.SetLineColour(line_color_primary, 1.f, 2); float vectors[] = { 0.f, 0.f, 0.f, 50.f, 0.f, 0.f, diff --git a/src/visual_tool_rotatez.cpp b/src/visual_tool_rotatez.cpp index 9e7e1f8e6..0d8bf2a9c 100644 --- a/src/visual_tool_rotatez.cpp +++ b/src/visual_tool_rotatez.cpp @@ -20,7 +20,9 @@ #include "visual_tool_rotatez.h" +#include "compat.h" #include "include/aegisub/context.h" +#include "options.h" #include "selection_controller.h" #include @@ -44,6 +46,11 @@ void VisualToolRotateZ::Draw() { DrawAllFeatures(); + // Load colors from options + wxColour line_color_primary = to_wx(line_color_primary_opt->GetColor()); + wxColour line_color_secondary = to_wx(line_color_secondary_opt->GetColor()); + wxColour highlight_color = to_wx(highlight_color_primary_opt->GetColor()); + float radius = (pos - org->pos).Len(); float oRadius = radius; if (radius < 50) @@ -55,8 +62,8 @@ void VisualToolRotateZ::Draw() { gl.SetScale(scale); // Draw the circle - gl.SetLineColour(colour[0]); - gl.SetFillColour(colour[1], 0.3f); + gl.SetLineColour(line_color_secondary); + gl.SetFillColour(highlight_color, 0.3f); gl.DrawRing(Vector2D(0, 0), radius + 4, radius - 4); // Draw markers around circle @@ -70,7 +77,7 @@ void VisualToolRotateZ::Draw() { // Draw the baseline through the origin showing current rotation Vector2D angle_vec(Vector2D::FromAngle(angle * deg2rad)); - gl.SetLineColour(colour[3], 1, 2); + gl.SetLineColour(line_color_primary, 1, 2); gl.DrawLine(angle_vec * -radius, angle_vec * radius); if (org->pos != pos) { @@ -84,8 +91,8 @@ void VisualToolRotateZ::Draw() { } // Draw the fake features on the ring - gl.SetLineColour(colour[0], 1.f, 1); - gl.SetFillColour(colour[1], 0.3f); + gl.SetLineColour(line_color_secondary, 1.f, 1); + gl.SetFillColour(highlight_color, 0.3f); gl.DrawCircle(angle_vec * radius, 4); gl.DrawCircle(angle_vec * -radius, 4); @@ -94,7 +101,7 @@ void VisualToolRotateZ::Draw() { // Draw line to mouse if it isn't over the origin feature if (mouse_pos && (mouse_pos - org->pos).SquareLen() > 100) { - gl.SetLineColour(colour[0]); + gl.SetLineColour(line_color_secondary); gl.DrawLine(org->pos, mouse_pos); } } diff --git a/src/visual_tool_scale.cpp b/src/visual_tool_scale.cpp index 045352048..10468d3a9 100644 --- a/src/visual_tool_scale.cpp +++ b/src/visual_tool_scale.cpp @@ -20,6 +20,9 @@ #include "visual_tool_scale.h" +#include "compat.h" +#include "options.h" + #include VisualToolScale::VisualToolScale(VideoDisplay *parent, agi::Context *context) @@ -35,6 +38,11 @@ void VisualToolScale::Draw() { // The width of the y scale guide/height of the x scale guide static const int guide_size = 10; + // Load colors from options + wxColour line_color_primary = to_wx(line_color_primary_opt->GetColor()); + wxColour line_color_secondary = to_wx(line_color_secondary_opt->GetColor()); + wxColour highlight_color = to_wx(highlight_color_primary_opt->GetColor()); + // Ensure that the scaling UI is comfortably visible on screen Vector2D base_point = pos .Max(Vector2D(base_len / 2 + guide_size, base_len / 2 + guide_size)) @@ -54,13 +62,13 @@ void VisualToolScale::Draw() { Vector2D y_p2(scale_half_length.X(), minor_dim_offset); // Current scale amount lines - gl.SetLineColour(colour[3], 1.f, 2); + gl.SetLineColour(line_color_primary, 1.f, 2); gl.DrawLine(x_p1, x_p2); gl.DrawLine(y_p1, y_p2); // Fake features at the end of the lines - gl.SetLineColour(colour[0], 1.f, 1); - gl.SetFillColour(colour[1], 0.3f); + gl.SetLineColour(line_color_secondary, 1.f, 1); + gl.SetFillColour(highlight_color, 0.3f); gl.DrawCircle(x_p1, 4); gl.DrawCircle(x_p2, 4); gl.DrawCircle(y_p1, 4); @@ -68,12 +76,12 @@ void VisualToolScale::Draw() { // Draw the guides int half_len = base_len / 2; - gl.SetLineColour(colour[0], 1.f, 1); + gl.SetLineColour(line_color_secondary, 1.f, 1); gl.DrawRectangle(Vector2D(half_len, -half_len), Vector2D(half_len + guide_size, half_len)); gl.DrawRectangle(Vector2D(-half_len, half_len), Vector2D(half_len, half_len + guide_size)); // Draw the feet - gl.SetLineColour(colour[0], 1.f, 2); + gl.SetLineColour(line_color_secondary, 1.f, 2); gl.DrawLine(Vector2D(half_len + guide_size, -half_len), Vector2D(half_len + guide_size + guide_size / 2, -half_len)); gl.DrawLine(Vector2D(half_len + guide_size, half_len), Vector2D(half_len + guide_size + guide_size / 2, half_len)); gl.DrawLine(Vector2D(-half_len, half_len + guide_size), Vector2D(-half_len, half_len + guide_size + guide_size / 2)); diff --git a/src/visual_tool_vector_clip.cpp b/src/visual_tool_vector_clip.cpp index cc04eddca..bbe00d8e9 100644 --- a/src/visual_tool_vector_clip.cpp +++ b/src/visual_tool_vector_clip.cpp @@ -17,6 +17,7 @@ #include "visual_tool_vector_clip.h" #include "ass_dialogue.h" +#include "compat.h" #include "include/aegisub/context.h" #include "libresrc/libresrc.h" #include "options.h" @@ -92,8 +93,14 @@ void VisualToolVectorClip::Draw() { assert(!start.empty()); assert(!count.empty()); - gl.SetLineColour(colour[3], .5f, 2); - gl.SetFillColour(wxColour(0, 0, 0), 0.5f); + // Load colors from options + wxColour line_color = to_wx(line_color_primary_opt->GetColor()); + wxColour highlight_color_primary = to_wx(highlight_color_primary_opt->GetColor()); + wxColour highlight_color_secondary = to_wx(highlight_color_secondary_opt->GetColor()); + float shaded_alpha = static_cast(shaded_area_alpha_opt->GetDouble()); + + gl.SetLineColour(line_color, .5f, 2); + gl.SetFillColour(*wxBLACK, shaded_alpha); // draw the shade over clipped out areas and line showing the clip gl.DrawMultiPolygon(points, start, count, video_pos, video_res, !inverse); @@ -117,13 +124,13 @@ void VisualToolVectorClip::Draw() { if ((mode == 3 || mode == 4) && !active_feature && points.size() > 2) { auto highlighted_points = spline.GetPointList(highlighted_curve); if (!highlighted_points.empty()) { - gl.SetLineColour(colour[2], 1.f, 2); + gl.SetLineColour(highlight_color_secondary, 1.f, 2); gl.DrawLineStrip(2, highlighted_points); } } // Draw lines connecting the bicubic features - gl.SetLineColour(colour[3], 0.9f, 1); + gl.SetLineColour(line_color, 0.9f, 1); for (auto const& curve : spline) { if (curve.type == SplineCurve::BICUBIC) { gl.DrawDashedLine(curve.p1, curve.p2, 6); @@ -133,19 +140,19 @@ void VisualToolVectorClip::Draw() { // Draw features for (auto& feature : features) { - int color = 3; + wxColour feature_color = line_color; if (&feature == active_feature) - color = 1; + feature_color = highlight_color_primary; else if (sel_features.count(&feature)) - color = 2; - gl.SetFillColour(colour[color], .6f); + feature_color = highlight_color_secondary; + gl.SetFillColour(feature_color, .6f); if (feature.type == DRAG_SMALL_SQUARE) { - gl.SetLineColour(colour[3], .5f, 1); + gl.SetLineColour(line_color, .5f, 1); gl.DrawRectangle(feature.pos - 3, feature.pos + 3); } else { - gl.SetLineColour(colour[color], .5f, 1); + gl.SetLineColour(feature_color, .5f, 1); gl.DrawCircle(feature.pos, 2.f); } } From e516ab6e320aabc96661052a7e4de57ac8da6411 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Fri, 27 Apr 2018 11:19:37 -0400 Subject: [PATCH 009/185] Fix line order when splitting after current frame --- src/command/edit.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/command/edit.cpp b/src/command/edit.cpp index 3559d2606..333cdc6d5 100644 --- a/src/command/edit.cpp +++ b/src/command/edit.cpp @@ -672,7 +672,7 @@ static void duplicate_lines(agi::Context *c, int shift) { // after the selected block do { auto old_diag = &*start; - auto new_diag = new AssDialogue(*old_diag); + auto new_diag = new AssDialogue(*old_diag); c->ass->Events.insert(insert_pos, *new_diag); new_sel.insert(new_diag); @@ -697,8 +697,8 @@ static void duplicate_lines(agi::Context *c, int shift) { new_diag->Start = c->videoController->TimeAtFrame(cur_frame, agi::vfr::START); } else { - old_diag->Start = c->videoController->TimeAtFrame(cur_frame + 1, agi::vfr::START); - new_diag->End = c->videoController->TimeAtFrame(cur_frame, agi::vfr::END); + old_diag->End = c->videoController->TimeAtFrame(cur_frame, agi::vfr::END); + new_diag->Start = c->videoController->TimeAtFrame(cur_frame + 1, agi::vfr::START); } /// @todo also split \t and \move? From 3eaa56fc18ecd84f21d7c643addffd856303c9f5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 29 Apr 2018 16:51:53 -0400 Subject: [PATCH 010/185] Point users at a functional bug tracker --- src/command/help.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command/help.cpp b/src/command/help.cpp index ece65000c..ff47624cd 100644 --- a/src/command/help.cpp +++ b/src/command/help.cpp @@ -59,7 +59,7 @@ struct help_bugs final : public Command { throw c->parent; } } - wxLaunchDefaultBrowser("http://devel.aegisub.org/", wxBROWSER_NEW_WINDOW); + wxLaunchDefaultBrowser("https://github.com/Aegisub/Aegisub/issues", wxBROWSER_NEW_WINDOW); } }; From 869cdcc7a11d95f1578e35be104d46471e8d3617 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 29 Apr 2018 17:19:02 -0400 Subject: [PATCH 011/185] Properly ignore ASS whitespace characters in character counter --- libaegisub/common/character_count.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/libaegisub/common/character_count.cpp b/libaegisub/common/character_count.cpp index 1276f74fb..4563157a1 100644 --- a/libaegisub/common/character_count.cpp +++ b/libaegisub/common/character_count.cpp @@ -31,6 +31,8 @@ struct utext_deleter { }; using utext_ptr = std::unique_ptr; +UChar32 ass_special_chars[] = {'n', 'N', 'h'}; + icu::BreakIterator& get_break_iterator(const char *ptr, size_t len) { static std::unique_ptr bi; static std::once_flag token; @@ -65,10 +67,25 @@ size_t count_in_range(Iterator begin, Iterator end, int mask) { UChar32 c; int i = 0; U8_NEXT_UNSAFE(begin + pos, i, c); - if ((U_GET_GC_MASK(c) & mask) == 0) - ++count; + if ((U_GET_GC_MASK(c) & mask) == 0) { + if (mask & U_GC_Z_MASK && pos != 0) { + UChar32 *result = std::find(std::begin(ass_special_chars), std::end(ass_special_chars), c); + if (result != std::end(ass_special_chars)) { + UChar32 c2; + i = 0; + U8_PREV_UNSAFE(begin + pos, i, c2); + if (c2 != (UChar32) '\\') + ++count; + else if (!(mask & U_GC_P_MASK)) + --count; + } + else + ++count; + } + else + ++count; + } } - } return count; } From 747525142a7312d18a20f4d1ff1ae25128266848 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 7 May 2018 19:24:47 -0400 Subject: [PATCH 012/185] Pass 0 to FFMS_Init The argument is no longer used, and the docs specify to pass a value of 0 to avoid confusion --- src/ffmpegsource_common.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ffmpegsource_common.cpp b/src/ffmpegsource_common.cpp index c9e2e16cc..0de47e1ee 100644 --- a/src/ffmpegsource_common.cpp +++ b/src/ffmpegsource_common.cpp @@ -67,7 +67,7 @@ enum { FFmpegSourceProvider::FFmpegSourceProvider(agi::BackgroundRunner *br) : br(br) { - FFMS_Init(0, 1); + FFMS_Init(0, 0); } /// @brief Does indexing of a source file From a621072e7de9b55f8ff0fdfec84d87249139121c Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 10 May 2018 03:28:51 -0400 Subject: [PATCH 013/185] Add support for WWXD keyframes in qpfile format --- libaegisub/common/keyframe.cpp | 42 +++++++++++++++++++----- libaegisub/include/libaegisub/keyframe.h | 3 +- src/project.cpp | 6 +++- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/libaegisub/common/keyframe.cpp b/libaegisub/common/keyframe.cpp index 50e537338..b2855bd11 100644 --- a/libaegisub/common/keyframe.cpp +++ b/libaegisub/common/keyframe.cpp @@ -19,6 +19,8 @@ #include "libaegisub/keyframe.h" +#include + #include "libaegisub/io.h" #include "libaegisub/line_iterator.h" @@ -35,10 +37,9 @@ std::vector agi_keyframes(std::istream &file) { return std::vector(agi::line_iterator(file), agi::line_iterator()); } -std::vector other_keyframes(std::istream &file, char (*func)(std::string const&)) { +std::vector enumerated_keyframes(std::istream &file, char (*func)(std::string const&)) { int count = 0; std::vector ret; - agi::line_iterator end; for (auto line : agi::line_iterator(file)) { char c = tolower(func(line)); if (c == 'i') @@ -49,6 +50,16 @@ std::vector other_keyframes(std::istream &file, char (*func)(std::string co return ret; } +std::vector indexed_keyframes(std::istream &file, int (*func)(std::string const&)) { + std::vector ret; + for (auto line : agi::line_iterator(file)) { + int frame_no = func(line); + if (frame_no >= 0) + ret.push_back(frame_no); + } + return ret; +} + char xvid(std::string const& line) { return line.empty() ? 0 : line[0]; } @@ -68,6 +79,20 @@ char x264(std::string const& line) { if (pos == line.npos || pos + 5 >= line.size()) return 0; return line[pos + 5]; } + +int wwxd(std::string const& line) { + if (line.empty() || line[0] == '#') + return -1; + std::istringstream ss(line); + int frame_no; + char frame_type; + ss >> frame_no >> frame_type; + if (ss.fail()) + throw agi::keyframe::KeyframeFormatParseError("WWXD keyframe file not in qpfile format"); + if (frame_type == 'I') + return frame_no; + return -1; +} } namespace agi { namespace keyframe { @@ -87,13 +112,14 @@ std::vector Load(agi::fs::path const& filename) { getline(is, header); if (header == "# keyframe format v1") return agi_keyframes(is); - if (boost::starts_with(header, "# XviD 2pass stat file")) return other_keyframes(is, xvid); - if (boost::starts_with(header, "# ffmpeg 2-pass log file, using xvid codec")) return other_keyframes(is, xvid); - if (boost::starts_with(header, "# avconv 2-pass log file, using xvid codec")) return other_keyframes(is, xvid); - if (boost::starts_with(header, "##map version")) return other_keyframes(is, divx); - if (boost::starts_with(header, "#options:")) return other_keyframes(is, x264); + if (boost::starts_with(header, "# XviD 2pass stat file")) return enumerated_keyframes(is, xvid); + if (boost::starts_with(header, "# ffmpeg 2-pass log file, using xvid codec")) return enumerated_keyframes(is, xvid); + if (boost::starts_with(header, "# avconv 2-pass log file, using xvid codec")) return enumerated_keyframes(is, xvid); + if (boost::starts_with(header, "##map version")) return enumerated_keyframes(is, divx); + if (boost::starts_with(header, "#options:")) return enumerated_keyframes(is, x264); + if (boost::starts_with(header, "# WWXD log file, using qpfile format")) return indexed_keyframes(is, wwxd); - throw Error("Unknown keyframe format"); + throw UnknownKeyframeFormatError("File header does not match any known formats"); } } } diff --git a/libaegisub/include/libaegisub/keyframe.h b/libaegisub/include/libaegisub/keyframe.h index 43fb9333f..6fc82ff49 100644 --- a/libaegisub/include/libaegisub/keyframe.h +++ b/libaegisub/include/libaegisub/keyframe.h @@ -29,6 +29,7 @@ namespace agi { /// @param keyframes List of keyframes to save void Save(agi::fs::path const& filename, std::vector const& keyframes); - DEFINE_EXCEPTION(Error, Exception); + DEFINE_EXCEPTION(KeyframeFormatParseError, agi::InvalidInputException); + DEFINE_EXCEPTION(UnknownKeyframeFormatError, agi::InvalidInputException); } } diff --git a/src/project.cpp b/src/project.cpp index 312f86fe8..633a526b7 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -391,10 +391,14 @@ void Project::LoadKeyframes(agi::fs::path path) { ShowError(e.GetMessage()); config::mru->Remove("Keyframes", path); } - catch (agi::keyframe::Error const& e) { + catch (agi::keyframe::KeyframeFormatParseError const& e) { ShowError("Failed to parse keyframes file: " + e.GetMessage()); config::mru->Remove("Keyframes", path); } + catch (agi::keyframe::UnknownKeyframeFormatError const& e) { + ShowError("Keyframes file in unknown format: " + e.GetMessage()); + config::mru->Remove("Keyframes", path); + } } void Project::CloseKeyframes() { From 90586ca58821c1353c21ca8c776c7df34b6d7424 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 12 May 2018 02:58:15 -0400 Subject: [PATCH 014/185] Update LuaJIT to 2.0.5 --- vendor/luajit/dynasm/dasm_arm.h | 2 +- vendor/luajit/dynasm/dasm_arm.lua | 2 +- vendor/luajit/dynasm/dasm_mips.h | 2 +- vendor/luajit/dynasm/dasm_mips.lua | 2 +- vendor/luajit/dynasm/dasm_ppc.h | 2 +- vendor/luajit/dynasm/dasm_ppc.lua | 2 +- vendor/luajit/dynasm/dasm_proto.h | 2 +- vendor/luajit/dynasm/dasm_x64.lua | 2 +- vendor/luajit/dynasm/dasm_x86.h | 5 +- vendor/luajit/dynasm/dasm_x86.lua | 13 +-- vendor/luajit/dynasm/dynasm.lua | 4 +- vendor/luajit/include/luaconf.h | 4 +- vendor/luajit/include/luajit.h | 10 +- vendor/luajit/include/lualib.h | 2 +- vendor/luajit/src/Makefile | 109 +++++++++++----------- vendor/luajit/src/Makefile.dep | 52 +++++------ vendor/luajit/src/host/buildvm.c | 2 +- vendor/luajit/src/host/buildvm.h | 2 +- vendor/luajit/src/host/buildvm_asm.c | 5 +- vendor/luajit/src/host/buildvm_fold.c | 4 +- vendor/luajit/src/host/buildvm_lib.c | 2 +- vendor/luajit/src/host/buildvm_peobj.c | 2 +- vendor/luajit/src/host/genminilua.lua | 11 ++- vendor/luajit/src/host/minilua.c | 2 +- vendor/luajit/src/jit/bc.lua | 4 +- vendor/luajit/src/jit/bcsave.lua | 6 +- vendor/luajit/src/jit/dis_arm.lua | 4 +- vendor/luajit/src/jit/dis_mips.lua | 6 +- vendor/luajit/src/jit/dis_mipsel.lua | 2 +- vendor/luajit/src/jit/dis_ppc.lua | 4 +- vendor/luajit/src/jit/dis_x64.lua | 2 +- vendor/luajit/src/jit/dis_x86.lua | 2 +- vendor/luajit/src/jit/dump.lua | 16 ++-- vendor/luajit/src/jit/v.lua | 4 +- vendor/luajit/src/lib_aux.c | 2 +- vendor/luajit/src/lib_base.c | 2 +- vendor/luajit/src/lib_bit.c | 2 +- vendor/luajit/src/lib_debug.c | 2 +- vendor/luajit/src/lib_ffi.c | 4 +- vendor/luajit/src/lib_init.c | 2 +- vendor/luajit/src/lib_io.c | 47 +++------- vendor/luajit/src/lib_jit.c | 3 +- vendor/luajit/src/lib_math.c | 2 +- vendor/luajit/src/lib_os.c | 21 +---- vendor/luajit/src/lib_package.c | 2 +- vendor/luajit/src/lib_string.c | 2 +- vendor/luajit/src/lib_table.c | 2 +- vendor/luajit/src/lj.supp | 15 +++ vendor/luajit/src/lj_alloc.c | 2 +- vendor/luajit/src/lj_api.c | 2 +- vendor/luajit/src/lj_arch.h | 25 ++++- vendor/luajit/src/lj_asm.c | 2 +- vendor/luajit/src/lj_asm.h | 2 +- vendor/luajit/src/lj_asm_arm.h | 5 +- vendor/luajit/src/lj_asm_mips.h | 23 ++--- vendor/luajit/src/lj_asm_ppc.h | 5 +- vendor/luajit/src/lj_asm_x86.h | 124 ++++++++++++++++++++++--- vendor/luajit/src/lj_bc.c | 2 +- vendor/luajit/src/lj_bc.h | 2 +- vendor/luajit/src/lj_bcdump.h | 2 +- vendor/luajit/src/lj_bcread.c | 2 +- vendor/luajit/src/lj_bcwrite.c | 2 +- vendor/luajit/src/lj_carith.c | 2 +- vendor/luajit/src/lj_carith.h | 2 +- vendor/luajit/src/lj_ccall.c | 2 +- vendor/luajit/src/lj_ccall.h | 2 +- vendor/luajit/src/lj_ccallback.c | 2 +- vendor/luajit/src/lj_ccallback.h | 2 +- vendor/luajit/src/lj_cconv.c | 2 +- vendor/luajit/src/lj_cconv.h | 2 +- vendor/luajit/src/lj_cdata.c | 2 +- vendor/luajit/src/lj_cdata.h | 2 +- vendor/luajit/src/lj_clib.c | 10 +- vendor/luajit/src/lj_clib.h | 2 +- vendor/luajit/src/lj_cparse.c | 21 +++-- vendor/luajit/src/lj_cparse.h | 2 +- vendor/luajit/src/lj_crecord.c | 5 +- vendor/luajit/src/lj_crecord.h | 2 +- vendor/luajit/src/lj_ctype.c | 2 +- vendor/luajit/src/lj_ctype.h | 16 ++-- vendor/luajit/src/lj_debug.c | 2 +- vendor/luajit/src/lj_debug.h | 2 +- vendor/luajit/src/lj_def.h | 2 +- vendor/luajit/src/lj_dispatch.c | 2 +- vendor/luajit/src/lj_dispatch.h | 2 +- vendor/luajit/src/lj_emit_arm.h | 4 +- vendor/luajit/src/lj_emit_mips.h | 2 +- vendor/luajit/src/lj_emit_ppc.h | 2 +- vendor/luajit/src/lj_emit_x86.h | 2 +- vendor/luajit/src/lj_err.c | 12 ++- vendor/luajit/src/lj_err.h | 2 +- vendor/luajit/src/lj_errmsg.h | 2 +- vendor/luajit/src/lj_ff.h | 2 +- vendor/luajit/src/lj_ffrecord.c | 17 ++-- vendor/luajit/src/lj_ffrecord.h | 2 +- vendor/luajit/src/lj_frame.h | 6 +- vendor/luajit/src/lj_func.c | 6 +- vendor/luajit/src/lj_func.h | 2 +- vendor/luajit/src/lj_gc.c | 21 +++-- vendor/luajit/src/lj_gc.h | 2 +- vendor/luajit/src/lj_gdbjit.c | 2 +- vendor/luajit/src/lj_gdbjit.h | 2 +- vendor/luajit/src/lj_ir.c | 2 +- vendor/luajit/src/lj_ir.h | 2 +- vendor/luajit/src/lj_ircall.h | 10 +- vendor/luajit/src/lj_iropt.h | 6 +- vendor/luajit/src/lj_jit.h | 2 +- vendor/luajit/src/lj_lex.c | 2 +- vendor/luajit/src/lj_lex.h | 2 +- vendor/luajit/src/lj_lib.c | 2 +- vendor/luajit/src/lj_lib.h | 2 +- vendor/luajit/src/lj_load.c | 2 +- vendor/luajit/src/lj_mcode.c | 17 ++-- vendor/luajit/src/lj_mcode.h | 2 +- vendor/luajit/src/lj_meta.c | 2 +- vendor/luajit/src/lj_meta.h | 2 +- vendor/luajit/src/lj_obj.c | 2 +- vendor/luajit/src/lj_obj.h | 2 +- vendor/luajit/src/lj_opt_dce.c | 2 +- vendor/luajit/src/lj_opt_fold.c | 18 ++-- vendor/luajit/src/lj_opt_loop.c | 2 +- vendor/luajit/src/lj_opt_mem.c | 2 +- vendor/luajit/src/lj_opt_narrow.c | 54 ++++++----- vendor/luajit/src/lj_opt_sink.c | 7 +- vendor/luajit/src/lj_opt_split.c | 5 +- vendor/luajit/src/lj_parse.c | 16 ++-- vendor/luajit/src/lj_parse.h | 2 +- vendor/luajit/src/lj_record.c | 23 +++-- vendor/luajit/src/lj_record.h | 2 +- vendor/luajit/src/lj_snap.c | 30 +++--- vendor/luajit/src/lj_snap.h | 2 +- vendor/luajit/src/lj_state.c | 2 +- vendor/luajit/src/lj_state.h | 2 +- vendor/luajit/src/lj_str.c | 2 +- vendor/luajit/src/lj_str.h | 2 +- vendor/luajit/src/lj_strscan.c | 2 +- vendor/luajit/src/lj_strscan.h | 2 +- vendor/luajit/src/lj_tab.c | 2 +- vendor/luajit/src/lj_tab.h | 2 +- vendor/luajit/src/lj_target.h | 2 +- vendor/luajit/src/lj_target_arm.h | 2 +- vendor/luajit/src/lj_target_mips.h | 9 +- vendor/luajit/src/lj_target_ppc.h | 2 +- vendor/luajit/src/lj_target_x86.h | 2 +- vendor/luajit/src/lj_trace.c | 18 +++- vendor/luajit/src/lj_trace.h | 2 +- vendor/luajit/src/lj_traceerr.h | 4 +- vendor/luajit/src/lj_udata.c | 2 +- vendor/luajit/src/lj_udata.h | 2 +- vendor/luajit/src/lj_vm.h | 2 +- vendor/luajit/src/lj_vmevent.c | 2 +- vendor/luajit/src/lj_vmevent.h | 2 +- vendor/luajit/src/lj_vmmath.c | 2 +- vendor/luajit/src/ljamalg.c | 2 +- vendor/luajit/src/luaconf.h | 4 +- vendor/luajit/src/luajit.c | 2 +- vendor/luajit/src/luajit.h | 10 +- vendor/luajit/src/lualib.h | 2 +- vendor/luajit/src/vm_arm.dasc | 2 +- vendor/luajit/src/vm_mips.dasc | 43 +++++---- vendor/luajit/src/vm_ppc.dasc | 2 +- vendor/luajit/src/vm_ppcspe.dasc | 2 +- vendor/luajit/src/vm_x86.dasc | 26 +++++- 163 files changed, 657 insertions(+), 512 deletions(-) diff --git a/vendor/luajit/dynasm/dasm_arm.h b/vendor/luajit/dynasm/dasm_arm.h index 57e0116f5..a43f7c664 100644 --- a/vendor/luajit/dynasm/dasm_arm.h +++ b/vendor/luajit/dynasm/dasm_arm.h @@ -1,6 +1,6 @@ /* ** DynASM ARM encoding engine. -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** Released under the MIT license. See dynasm.lua for full copyright notice. */ diff --git a/vendor/luajit/dynasm/dasm_arm.lua b/vendor/luajit/dynasm/dasm_arm.lua index 90a259c5c..9ece1d7f5 100644 --- a/vendor/luajit/dynasm/dasm_arm.lua +++ b/vendor/luajit/dynasm/dasm_arm.lua @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- DynASM ARM module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See dynasm.lua for full copyright notice. ------------------------------------------------------------------------------ diff --git a/vendor/luajit/dynasm/dasm_mips.h b/vendor/luajit/dynasm/dasm_mips.h index 2f4c2d222..7eac66948 100644 --- a/vendor/luajit/dynasm/dasm_mips.h +++ b/vendor/luajit/dynasm/dasm_mips.h @@ -1,6 +1,6 @@ /* ** DynASM MIPS encoding engine. -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** Released under the MIT license. See dynasm.lua for full copyright notice. */ diff --git a/vendor/luajit/dynasm/dasm_mips.lua b/vendor/luajit/dynasm/dasm_mips.lua index ae0dbd7a9..8e250ceff 100644 --- a/vendor/luajit/dynasm/dasm_mips.lua +++ b/vendor/luajit/dynasm/dasm_mips.lua @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- DynASM MIPS module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See dynasm.lua for full copyright notice. ------------------------------------------------------------------------------ diff --git a/vendor/luajit/dynasm/dasm_ppc.h b/vendor/luajit/dynasm/dasm_ppc.h index 7df493654..611036126 100644 --- a/vendor/luajit/dynasm/dasm_ppc.h +++ b/vendor/luajit/dynasm/dasm_ppc.h @@ -1,6 +1,6 @@ /* ** DynASM PPC encoding engine. -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** Released under the MIT license. See dynasm.lua for full copyright notice. */ diff --git a/vendor/luajit/dynasm/dasm_ppc.lua b/vendor/luajit/dynasm/dasm_ppc.lua index 91f4ff9a4..4e1656e3c 100644 --- a/vendor/luajit/dynasm/dasm_ppc.lua +++ b/vendor/luajit/dynasm/dasm_ppc.lua @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- DynASM PPC module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See dynasm.lua for full copyright notice. ------------------------------------------------------------------------------ diff --git a/vendor/luajit/dynasm/dasm_proto.h b/vendor/luajit/dynasm/dasm_proto.h index a8bc6fd28..f5e79c7a3 100644 --- a/vendor/luajit/dynasm/dasm_proto.h +++ b/vendor/luajit/dynasm/dasm_proto.h @@ -1,6 +1,6 @@ /* ** DynASM encoding engine prototypes. -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** Released under the MIT license. See dynasm.lua for full copyright notice. */ diff --git a/vendor/luajit/dynasm/dasm_x64.lua b/vendor/luajit/dynasm/dasm_x64.lua index b1b62022f..e8bdeb37d 100644 --- a/vendor/luajit/dynasm/dasm_x64.lua +++ b/vendor/luajit/dynasm/dasm_x64.lua @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- DynASM x64 module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See dynasm.lua for full copyright notice. ------------------------------------------------------------------------------ -- This module just sets 64 bit mode for the combined x86/x64 module. diff --git a/vendor/luajit/dynasm/dasm_x86.h b/vendor/luajit/dynasm/dasm_x86.h index 652e8c99b..90dc5d159 100644 --- a/vendor/luajit/dynasm/dasm_x86.h +++ b/vendor/luajit/dynasm/dasm_x86.h @@ -1,6 +1,6 @@ /* ** DynASM x86 encoding engine. -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** Released under the MIT license. See dynasm.lua for full copyright notice. */ @@ -204,7 +204,8 @@ void dasm_put(Dst_DECL, int start, ...) case DASM_SPACE: p++; ofs += n; break; case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */ case DASM_VREG: CK((n&-8) == 0 && (n != 4 || (*p&1) == 0), RANGE_VREG); - if (*p++ == 1 && *p == DASM_DISP) mrm = n; continue; + if (*p++ == 1 && *p == DASM_DISP) mrm = n; + continue; } mrm = 4; } else { diff --git a/vendor/luajit/dynasm/dasm_x86.lua b/vendor/luajit/dynasm/dasm_x86.lua index 7ca061d22..21c208655 100644 --- a/vendor/luajit/dynasm/dasm_x86.lua +++ b/vendor/luajit/dynasm/dasm_x86.lua @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- DynASM x86/x64 module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See dynasm.lua for full copyright notice. ------------------------------------------------------------------------------ @@ -1081,10 +1081,11 @@ local map_op = { btr_2 = "mrqdw:0FB3Rm|miqdw:0FBA6mU", bts_2 = "mrqdw:0FABRm|miqdw:0FBA5mU", - shld_3 = "mriqdw:0FA4RmU|mrCqdw:0FA5Rm", - shrd_3 = "mriqdw:0FACRmU|mrCqdw:0FADRm", + shld_3 = "mriqdw:0FA4RmU|mrC/qq:0FA5Rm|mrC/dd:|mrC/ww:", + shrd_3 = "mriqdw:0FACRmU|mrC/qq:0FADRm|mrC/dd:|mrC/ww:", rdtsc_0 = "0F31", -- P1+ + rdpmc_0 = "0F33", -- P6+ cpuid_0 = "0FA2", -- P1+ -- floating point ops @@ -1190,7 +1191,7 @@ local map_op = { cvtsi2sd_2 = "rm/od:F20F2ArM|rm/oq:F20F2ArXM", cvtsi2ss_2 = "rm/od:F30F2ArM|rm/oq:F30F2ArXM", cvtss2sd_2 = "rro:F30F5ArM|rx/od:", - cvtss2si_2 = "rr/do:F20F2CrM|rr/qo:|rxd:|rx/qd:", + cvtss2si_2 = "rr/do:F30F2DrM|rr/qo:|rxd:|rx/qd:", cvttpd2dq_2 = "rmo:660FE6rM", cvttps2dq_2 = "rmo:F30F5BrM", cvttsd2si_2 = "rr/do:F20F2CrM|rr/qo:|rx/dq:|rxq:", @@ -1247,7 +1248,7 @@ local map_op = { pcmpgtb_2 = "rmo:660F64rM", pcmpgtd_2 = "rmo:660F66rM", pcmpgtw_2 = "rmo:660F65rM", - pextrw_3 = "rri/do:660FC5rMU|xri/wo:660F3A15nrMU", -- Mem op: SSE4.1 only. + pextrw_3 = "rri/do:660FC5rMU|xri/wo:660F3A15nRmU", -- Mem op: SSE4.1 only. pinsrw_3 = "rri/od:660FC4rMU|rxi/ow:", pmaddwd_2 = "rmo:660FF5rM", pmaxsw_2 = "rmo:660FEErM", @@ -1352,7 +1353,7 @@ local map_op = { dpps_3 = "rmio:660F3A40rMU", extractps_3 = "mri/do:660F3A17RmU|rri/qo:660F3A17RXmU", insertps_3 = "rrio:660F3A41rMU|rxi/od:", - movntdqa_2 = "rmo:660F382ArM", + movntdqa_2 = "rxo:660F382ArM", mpsadbw_3 = "rmio:660F3A42rMU", packusdw_2 = "rmo:660F382BrM", pblendvb_3 = "rmRo:660F3810rM", diff --git a/vendor/luajit/dynasm/dynasm.lua b/vendor/luajit/dynasm/dynasm.lua index fffda7513..c46e956e6 100644 --- a/vendor/luajit/dynasm/dynasm.lua +++ b/vendor/luajit/dynasm/dynasm.lua @@ -2,7 +2,7 @@ -- DynASM. A dynamic assembler for code generation engines. -- Originally designed and implemented for LuaJIT. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- See below for full copyright notice. ------------------------------------------------------------------------------ @@ -17,7 +17,7 @@ local _info = { url = "http://luajit.org/dynasm.html", license = "MIT", copyright = [[ -Copyright (C) 2005-2015 Mike Pall. All rights reserved. +Copyright (C) 2005-2017 Mike Pall. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/vendor/luajit/include/luaconf.h b/vendor/luajit/include/luaconf.h index 84fa64187..b33e91b77 100644 --- a/vendor/luajit/include/luaconf.h +++ b/vendor/luajit/include/luaconf.h @@ -1,6 +1,6 @@ /* ** Configuration header. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef luaconf_h @@ -37,7 +37,7 @@ #endif #define LUA_LROOT "/usr/local" #define LUA_LUADIR "/lua/5.1/" -#define LUA_LJDIR "/luajit-2.0.4/" +#define LUA_LJDIR "/luajit-2.0.5/" #ifdef LUA_ROOT #define LUA_JROOT LUA_ROOT diff --git a/vendor/luajit/include/luajit.h b/vendor/luajit/include/luajit.h index 9ced18eb8..c5ff3acb4 100644 --- a/vendor/luajit/include/luajit.h +++ b/vendor/luajit/include/luajit.h @@ -1,7 +1,7 @@ /* ** LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/ ** -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the @@ -30,10 +30,10 @@ #include "lua.h" -#define LUAJIT_VERSION "LuaJIT 2.0.4" -#define LUAJIT_VERSION_NUM 20004 /* Version 2.0.4 = 02.00.04. */ -#define LUAJIT_VERSION_SYM luaJIT_version_2_0_4 -#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2015 Mike Pall" +#define LUAJIT_VERSION "LuaJIT 2.0.5" +#define LUAJIT_VERSION_NUM 20005 /* Version 2.0.5 = 02.00.05. */ +#define LUAJIT_VERSION_SYM luaJIT_version_2_0_5 +#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2017 Mike Pall" #define LUAJIT_URL "http://luajit.org/" /* Modes for luaJIT_setmode. */ diff --git a/vendor/luajit/include/lualib.h b/vendor/luajit/include/lualib.h index 96530e79a..bfc130a1a 100644 --- a/vendor/luajit/include/lualib.h +++ b/vendor/luajit/include/lualib.h @@ -1,6 +1,6 @@ /* ** Standard library header. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LUALIB_H diff --git a/vendor/luajit/src/Makefile b/vendor/luajit/src/Makefile index 37c7da8ec..f7f81a4e6 100644 --- a/vendor/luajit/src/Makefile +++ b/vendor/luajit/src/Makefile @@ -7,12 +7,12 @@ # Also works with MinGW and Cygwin on Windows. # Please check msvcbuild.bat for building with MSVC on Windows. # -# Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +# Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ############################################################################## MAJVER= 2 MINVER= 0 -RELVER= 4 +RELVER= 5 ABIVER= 5.1 NODOTABIVER= 51 @@ -24,11 +24,13 @@ NODOTABIVER= 51 # removing the '#' in front of them. Make sure you force a full recompile # with "make clean", followed by "make" if you change any options. # +DEFAULT_CC = gcc +# # LuaJIT builds as a native 32 or 64 bit binary by default. -CC= gcc +CC= $(DEFAULT_CC) # # Use this if you want to force a 32 bit build on a 64 bit multilib OS. -#CC= gcc -m32 +#CC= $(DEFAULT_CC) -m32 # # Since the assembler part does NOT maintain a frame pointer, it's pointless # to slow down the C part by not omitting it. Debugging, tracebacks and @@ -55,11 +57,11 @@ CCOPT_ppc= CCOPT_ppcspe= CCOPT_mips= # -#CCDEBUG= +CCDEBUG= # Uncomment the next line to generate debug information: -CCDEBUG= -g +#CCDEBUG= -g # -CCWARN= -Wall -Wno-unused-function +CCWARN= -Wall # Uncomment the next line to enable more warnings: #CCWARN+= -Wextra -Wdeclaration-after-statement -Wredundant-decls -Wshadow -Wpointer-arith # @@ -72,10 +74,10 @@ CCWARN= -Wall -Wno-unused-function # as dynamic mode. # # Mixed mode creates a static + dynamic library and a statically linked luajit. -#BUILDMODE= mixed +BUILDMODE= mixed # # Static mode creates a static library and a statically linked luajit. -BUILDMODE= static +#BUILDMODE= static # # Dynamic mode creates a dynamic library and a dynamically linked luajit. # Note: this executable will only run when the library is installed! @@ -88,7 +90,7 @@ BUILDMODE= static ############################################################################## # Enable/disable these features as needed, but make sure you force a full # recompile with "make clean", followed by "make". -XCFLAGS=-Igen +XCFLAGS= # # Permanently disable the FFI extension to reduce the size of the LuaJIT # executable. But please consider that the FFI library is compiled-in, @@ -100,7 +102,7 @@ XCFLAGS=-Igen # enabled by default. Some other features that *might* break some existing # code (e.g. __pairs or os.execute() return values) can be enabled here. # Note: this does not provide full compatibility with Lua 5.2 at this time. -XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT +#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT # # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter. #XCFLAGS+= -DLUAJIT_DISABLE_JIT @@ -150,6 +152,25 @@ XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT # You probably don't need to change anything below this line! ############################################################################## +############################################################################## +# Host system detection. +############################################################################## + +ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM)) + HOST_SYS= Windows + HOST_RM= del +else + HOST_SYS:= $(shell uname -s) + ifneq (,$(findstring MINGW,$(HOST_SYS))) + HOST_SYS= Windows + HOST_MSYS= mingw + endif + ifneq (,$(findstring CYGWIN,$(HOST_SYS))) + HOST_SYS= Windows + HOST_MSYS= cygwin + endif +endif + ############################################################################## # Flags and options for host and target. ############################################################################## @@ -187,14 +208,12 @@ TARGET_CC= $(STATIC_CC) TARGET_STCC= $(STATIC_CC) TARGET_DYNCC= $(DYNAMIC_CC) TARGET_LD= $(CROSS)$(CC) -TARGET_AR= $(CROSS)ar rcus +TARGET_AR= $(CROSS)ar rcus 2>/dev/null TARGET_STRIP= $(CROSS)strip -TARGET_LIBPATH= $(CURDIR) -#TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib) +TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib) TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) -TARGET_DYLIBNAME= libluajit-aegisub.so -#TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib +TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib TARGET_DYLIBPATH= $(TARGET_LIBPATH)/$(TARGET_DYLIBNAME) TARGET_DLLNAME= lua$(NODOTABIVER).dll TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) @@ -245,9 +264,6 @@ ifneq (,$(findstring LJ_TARGET_PS3 1,$(TARGET_TESTARCH))) TARGET_ARCH+= -D__CELLOS_LV2__ TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC endif -ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) - TARGET_ARCH+= -DLUAJIT_NO_UNWIND -endif TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH)) @@ -268,24 +284,9 @@ ifneq (,$(LMULTILIB)) endif ############################################################################## -# System detection. +# Target system detection. ############################################################################## -ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM)) - HOST_SYS= Windows - HOST_RM= del -else - HOST_SYS:= $(shell uname -s) - ifneq (,$(findstring MINGW,$(HOST_SYS))) - HOST_SYS= Windows - HOST_MSYS= mingw - endif - ifneq (,$(findstring CYGWIN,$(HOST_SYS))) - HOST_SYS= Windows - HOST_MSYS= cygwin - endif -endif - TARGET_SYS?= $(HOST_SYS) ifeq (Windows,$(TARGET_SYS)) TARGET_STRIP+= --strip-unneeded @@ -300,7 +301,6 @@ ifeq (Darwin,$(TARGET_SYS)) export MACOSX_DEPLOYMENT_TARGET=10.4 endif TARGET_STRIP+= -x - TARGET_AR+= 2>/dev/null TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC TARGET_DYNXLDOPTS= TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) @@ -311,7 +311,6 @@ ifeq (Darwin,$(TARGET_SYS)) else ifeq (iOS,$(TARGET_SYS)) TARGET_STRIP+= -x - TARGET_AR+= 2>/dev/null TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC TARGET_DYNXLDOPTS= TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) @@ -399,6 +398,10 @@ ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH))) else TARGET_ARCH+= -DLJ_ABI_SOFTFP=1 endif +ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) + DASM_AFLAGS+= -D NO_UNWIND + TARGET_ARCH+= -DLUAJIT_NO_UNWIND +endif DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH)))) ifeq (Windows,$(TARGET_SYS)) DASM_AFLAGS+= -D WIN @@ -475,12 +478,12 @@ LIB_VMDEFP= $(LIB_VMDEF) LUAJIT_O= luajit.o LUAJIT_A= libluajit.a -LUAJIT_SO= libluajit-aegisub.so +LUAJIT_SO= libluajit.so LUAJIT_T= luajit ALL_T= $(LUAJIT_T) $(LUAJIT_A) $(LUAJIT_SO) $(HOST_T) -ALL_HDRGEN= gen/lj_bcdef.h gen/lj_ffdef.h gen/lj_libdef.h gen/lj_recdef.h gen/lj_folddef.h \ - gen/buildvm_arch.h +ALL_HDRGEN= lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h \ + host/buildvm_arch.h ALL_GEN= $(LJVM_S) $(ALL_HDRGEN) $(LIB_VMDEFP) WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk ALL_RM= $(ALL_T) $(ALL_GEN) *.o host/*.o $(WIN_RM) @@ -513,9 +516,6 @@ ifeq (Windows,$(TARGET_SYS)) endif ifeq (Darwin,$(TARGET_SYS)) LJVM_MODE= machasm - # -dead_strip breaks LuaJIT, but we really want it for everything else, so we - # have to dynamically link it - BUILDMODE= dynamic endif ifeq (iOS,$(TARGET_SYS)) LJVM_MODE= machasm @@ -562,13 +562,10 @@ endif endif endif -ifeq ($(V),1) -Q= -E= @: -else Q= @ E= @echo -endif +#Q= +#E= @: ############################################################################## # Make targets. @@ -577,6 +574,7 @@ endif default all: $(TARGET_T) amalg: + @grep "^[+|]" ljamalg.c $(MAKE) all "LJCORE_O=ljamalg.o" clean: @@ -606,10 +604,7 @@ $(MINILUA_T): $(MINILUA_O) $(E) "HOSTLINK $@" $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(MINILUA_O) $(MINILUA_LIBS) $(HOST_ALIBS) -gen: - mkdir -p gen - -gen/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP) gen +host/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP) $(E) "DYNASM $@" $(Q)$(DASM) $(DASM_FLAGS) -o $@ $(DASM_DASC) @@ -623,19 +618,19 @@ $(LJVM_BOUT): $(BUILDVM_T) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m $(LJVM_MODE) -o $@ -gen/lj_bcdef.h: $(BUILDVM_T) $(LJLIB_C) +lj_bcdef.h: $(BUILDVM_T) $(LJLIB_C) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m bcdef -o $@ $(LJLIB_C) -gen/lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C) +lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m ffdef -o $@ $(LJLIB_C) -gen/lj_libdef.h: $(BUILDVM_T) $(LJLIB_C) +lj_libdef.h: $(BUILDVM_T) $(LJLIB_C) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m libdef -o $@ $(LJLIB_C) -gen/lj_recdef.h: $(BUILDVM_T) $(LJLIB_C) +lj_recdef.h: $(BUILDVM_T) $(LJLIB_C) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m recdef -o $@ $(LJLIB_C) @@ -643,7 +638,7 @@ $(LIB_VMDEF): $(BUILDVM_T) $(LJLIB_C) $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m vmdef -o $(LIB_VMDEFP) $(LJLIB_C) -gen/lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c +lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c $(E) "BUILDVM $@" $(Q)$(BUILDVM_X) -m folddef -o $@ lj_opt_fold.c diff --git a/vendor/luajit/src/Makefile.dep b/vendor/luajit/src/Makefile.dep index b05b3129f..9e14d6173 100644 --- a/vendor/luajit/src/Makefile.dep +++ b/vendor/luajit/src/Makefile.dep @@ -4,39 +4,39 @@ lib_aux.o: lib_aux.c lua.h luaconf.h lauxlib.h lj_obj.h lj_def.h \ lib_base.o: lib_base.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h \ lj_tab.h lj_meta.h lj_state.h lj_ctype.h lj_cconv.h lj_bc.h lj_ff.h \ - gen/lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \ - lj_lib.h gen/lj_libdef.h + lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \ + lj_lib.h lj_libdef.h lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_str.h lj_lib.h gen/lj_libdef.h + lj_arch.h lj_err.h lj_errmsg.h lj_str.h lj_lib.h lj_libdef.h lib_debug.o: lib_debug.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_lib.h \ - gen/lj_libdef.h + lj_libdef.h lib_ffi.o: lib_ffi.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_meta.h \ lj_ctype.h lj_cparse.h lj_cdata.h lj_cconv.h lj_carith.h lj_ccall.h \ - lj_ccallback.h lj_clib.h lj_ff.h gen/lj_ffdef.h lj_lib.h gen/lj_libdef.h + lj_ccallback.h lj_clib.h lj_ff.h lj_ffdef.h lj_lib.h lj_libdef.h lib_init.o: lib_init.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h lib_io.o: lib_io.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_state.h lj_ff.h \ - gen/lj_ffdef.h lj_lib.h gen/lj_libdef.h + lj_ffdef.h lj_lib.h lj_libdef.h lib_jit.o: lib_jit.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h \ lj_obj.h lj_def.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h \ lj_bc.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_target.h \ lj_target_*.h lj_dispatch.h lj_vm.h lj_vmevent.h lj_lib.h luajit.h \ - gen/lj_libdef.h + lj_libdef.h lib_math.o: lib_math.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_lib.h lj_vm.h gen/lj_libdef.h + lj_def.h lj_arch.h lj_lib.h lj_vm.h lj_libdef.h lib_os.o: lib_os.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_lib.h gen/lj_libdef.h + lj_arch.h lj_err.h lj_errmsg.h lj_lib.h lj_libdef.h lib_package.o: lib_package.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ lj_def.h lj_arch.h lj_err.h lj_errmsg.h lj_lib.h lib_string.o: lib_string.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h \ - lj_meta.h lj_state.h lj_ff.h gen/lj_ffdef.h lj_bcdump.h lj_lex.h lj_char.h \ - lj_lib.h gen/lj_libdef.h + lj_meta.h lj_state.h lj_ff.h lj_ffdef.h lj_bcdump.h lj_lex.h lj_char.h \ + lj_lib.h lj_libdef.h lib_table.o: lib_table.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_lib.h \ - gen/lj_libdef.h + lj_libdef.h lj_alloc.o: lj_alloc.c lj_def.h lua.h luaconf.h lj_arch.h lj_alloc.h lj_api.o: lj_api.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_func.h lj_udata.h \ @@ -48,7 +48,7 @@ lj_asm.o: lj_asm.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ lj_snap.h lj_asm.h lj_vm.h lj_target.h lj_target_*.h lj_emit_*.h \ lj_asm_*.h lj_bc.o: lj_bc.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_bc.h \ - gen/lj_bcdef.h + lj_bcdef.h lj_bcread.o: lj_bcread.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_bc.h lj_ctype.h \ lj_cdata.h lualib.h lj_lex.h lj_bcdump.h lj_state.h @@ -83,28 +83,28 @@ lj_cparse.o: lj_cparse.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_crecord.o: lj_crecord.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_frame.h lj_bc.h lj_ctype.h \ lj_gc.h lj_cdata.h lj_cparse.h lj_cconv.h lj_clib.h lj_ccall.h lj_ff.h \ - gen/lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ + lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ lj_dispatch.h lj_traceerr.h lj_record.h lj_ffrecord.h lj_snap.h \ lj_crecord.h lj_ctype.o: lj_ctype.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_ccallback.h lj_debug.o: lj_debug.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_state.h lj_frame.h \ - lj_bc.h lj_jit.h lj_ir.h + lj_bc.h lj_vm.h lj_jit.h lj_ir.h lj_dispatch.o: lj_dispatch.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_func.h lj_str.h lj_tab.h lj_meta.h lj_debug.h \ - lj_state.h lj_frame.h lj_bc.h lj_ff.h gen/lj_ffdef.h lj_jit.h lj_ir.h \ + lj_state.h lj_frame.h lj_bc.h lj_ff.h lj_ffdef.h lj_jit.h lj_ir.h \ lj_ccallback.h lj_ctype.h lj_gc.h lj_trace.h lj_dispatch.h lj_traceerr.h \ lj_vm.h luajit.h lj_err.o: lj_err.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_err.h \ lj_errmsg.h lj_debug.h lj_str.h lj_func.h lj_state.h lj_frame.h lj_bc.h \ - lj_ff.h gen/lj_ffdef.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h \ + lj_ff.h lj_ffdef.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h \ lj_traceerr.h lj_vm.h lj_ffrecord.o: lj_ffrecord.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_frame.h lj_bc.h lj_ff.h \ - gen/lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ + lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ lj_dispatch.h lj_traceerr.h lj_record.h lj_ffrecord.h lj_crecord.h \ - lj_vm.h lj_strscan.h gen/lj_recdef.h + lj_vm.h lj_strscan.h lj_recdef.h lj_func.o: lj_func.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ lj_func.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h lj_bc.h \ lj_traceerr.h lj_vm.h @@ -140,7 +140,7 @@ lj_opt_dce.o: lj_opt_dce.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_opt_fold.o: lj_opt_fold.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_str.h lj_tab.h lj_ir.h lj_jit.h lj_iropt.h lj_trace.h lj_dispatch.h \ lj_bc.h lj_traceerr.h lj_ctype.h lj_gc.h lj_carith.h lj_vm.h \ - lj_strscan.h gen/lj_folddef.h + lj_strscan.h lj_folddef.h lj_opt_loop.o: lj_opt_loop.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_str.h lj_ir.h lj_jit.h lj_iropt.h lj_trace.h \ lj_dispatch.h lj_bc.h lj_traceerr.h lj_snap.h lj_vm.h @@ -159,7 +159,7 @@ lj_parse.o: lj_parse.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_state.h lj_bc.h lj_ctype.h lj_lex.h lj_parse.h lj_vm.h lj_vmevent.h lj_record.o: lj_record.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_meta.h lj_frame.h lj_bc.h \ - lj_ctype.h lj_gc.h lj_ff.h gen/lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h \ + lj_ctype.h lj_gc.h lj_ff.h lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h \ lj_iropt.h lj_trace.h lj_dispatch.h lj_traceerr.h lj_record.h \ lj_ffrecord.h lj_snap.h lj_vm.h lj_snap.o: lj_snap.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ @@ -192,7 +192,7 @@ ljamalg.o: ljamalg.c lua.h luaconf.h lauxlib.h lj_gc.c lj_obj.h lj_def.h \ lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_func.h \ lj_udata.h lj_meta.h lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cdata.h \ lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h lj_traceerr.h lj_vm.h lj_err.c \ - lj_debug.h lj_ff.h gen/lj_ffdef.h lj_char.c lj_char.h lj_bc.c gen/lj_bcdef.h \ + lj_debug.h lj_ff.h lj_ffdef.h lj_char.c lj_char.h lj_bc.c lj_bcdef.h \ lj_obj.c lj_str.c lj_tab.c lj_func.c lj_udata.c lj_meta.c lj_strscan.h \ lj_debug.c lj_state.c lj_lex.h lj_alloc.h lj_dispatch.c lj_ccallback.h \ luajit.h lj_vmevent.c lj_vmevent.h lj_vmmath.c lj_strscan.c lj_api.c \ @@ -201,12 +201,12 @@ ljamalg.o: ljamalg.c lua.h luaconf.h lauxlib.h lj_gc.c lj_obj.h lj_def.h \ lj_ccall.c lj_ccall.h lj_ccallback.c lj_target.h lj_target_*.h \ lj_mcode.h lj_carith.c lj_carith.h lj_clib.c lj_clib.h lj_cparse.c \ lj_cparse.h lj_lib.c lj_lib.h lj_ir.c lj_ircall.h lj_iropt.h \ - lj_opt_mem.c lj_opt_fold.c gen/lj_folddef.h lj_opt_narrow.c lj_opt_dce.c \ + lj_opt_mem.c lj_opt_fold.c lj_folddef.h lj_opt_narrow.c lj_opt_dce.c \ lj_opt_loop.c lj_snap.h lj_opt_split.c lj_opt_sink.c lj_mcode.c \ lj_snap.c lj_record.c lj_record.h lj_ffrecord.h lj_crecord.c \ - lj_crecord.h lj_ffrecord.c gen/lj_recdef.h lj_asm.c lj_asm.h lj_emit_*.h \ + lj_crecord.h lj_ffrecord.c lj_recdef.h lj_asm.c lj_asm.h lj_emit_*.h \ lj_asm_*.h lj_trace.c lj_gdbjit.h lj_gdbjit.c lj_alloc.c lib_aux.c \ - lib_base.c gen/lj_libdef.h lib_math.c lib_string.c lib_table.c lib_io.c \ + lib_base.c lj_libdef.h lib_math.c lib_string.c lib_table.c lib_io.c \ lib_os.c lib_package.c lib_debug.c lib_bit.c lib_jit.c lib_ffi.c \ lib_init.c luajit.o: luajit.c lua.h luaconf.h lauxlib.h lualib.h luajit.h lj_arch.h @@ -214,7 +214,7 @@ host/buildvm.o: host/buildvm.c host/buildvm.h lj_def.h lua.h luaconf.h \ lj_arch.h lj_obj.h lj_def.h lj_arch.h lj_gc.h lj_obj.h lj_bc.h lj_ir.h \ lj_ircall.h lj_ir.h lj_jit.h lj_frame.h lj_bc.h lj_dispatch.h lj_ctype.h \ lj_gc.h lj_ccall.h lj_ctype.h luajit.h \ - gen/buildvm_arch.h lj_traceerr.h + host/buildvm_arch.h lj_traceerr.h host/buildvm_asm.o: host/buildvm_asm.c host/buildvm.h lj_def.h lua.h luaconf.h \ lj_arch.h lj_bc.h lj_def.h lj_arch.h host/buildvm_fold.o: host/buildvm_fold.c host/buildvm.h lj_def.h lua.h \ diff --git a/vendor/luajit/src/host/buildvm.c b/vendor/luajit/src/host/buildvm.c index 07122a645..b9560f313 100644 --- a/vendor/luajit/src/host/buildvm.c +++ b/vendor/luajit/src/host/buildvm.c @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** This is a tool to build the hand-tuned assembler code required for ** LuaJIT's bytecode interpreter. It supports a variety of output formats diff --git a/vendor/luajit/src/host/buildvm.h b/vendor/luajit/src/host/buildvm.h index b26218502..e6dd3dcbe 100644 --- a/vendor/luajit/src/host/buildvm.h +++ b/vendor/luajit/src/host/buildvm.h @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _BUILDVM_H diff --git a/vendor/luajit/src/host/buildvm_asm.c b/vendor/luajit/src/host/buildvm_asm.c index 2c9a2d482..81a3969a1 100644 --- a/vendor/luajit/src/host/buildvm_asm.c +++ b/vendor/luajit/src/host/buildvm_asm.c @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder: Assembler source code emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "buildvm.h" @@ -183,7 +183,8 @@ static void emit_asm_label(BuildCtx *ctx, const char *name, int size, int isfunc case BUILD_machasm: fprintf(ctx->fp, "\n\t.private_extern %s\n" - "%s:\n", name, name); + "\t.no_dead_strip %s\n" + "%s:\n", name, name, name); break; default: break; diff --git a/vendor/luajit/src/host/buildvm_fold.c b/vendor/luajit/src/host/buildvm_fold.c index daed7eccb..d579f4d41 100644 --- a/vendor/luajit/src/host/buildvm_fold.c +++ b/vendor/luajit/src/host/buildvm_fold.c @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder: IR folding hash table generator. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "buildvm.h" @@ -9,7 +9,7 @@ /* Context for the folding hash table generator. */ static int lineno; -static int funcidx; +static uint32_t funcidx; static uint32_t foldkeys[BUILD_MAX_FOLD]; static uint32_t nkeys; diff --git a/vendor/luajit/src/host/buildvm_lib.c b/vendor/luajit/src/host/buildvm_lib.c index c37301d46..569e2cafd 100644 --- a/vendor/luajit/src/host/buildvm_lib.c +++ b/vendor/luajit/src/host/buildvm_lib.c @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder: library definition compiler. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "buildvm.h" diff --git a/vendor/luajit/src/host/buildvm_peobj.c b/vendor/luajit/src/host/buildvm_peobj.c index 4279f5005..aab00d68f 100644 --- a/vendor/luajit/src/host/buildvm_peobj.c +++ b/vendor/luajit/src/host/buildvm_peobj.c @@ -1,6 +1,6 @@ /* ** LuaJIT VM builder: PE object emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Only used for building on Windows, since we cannot assume the presence ** of a suitable assembler. The host and target byte order must match. diff --git a/vendor/luajit/src/host/genminilua.lua b/vendor/luajit/src/host/genminilua.lua index cd0d94662..50feff014 100644 --- a/vendor/luajit/src/host/genminilua.lua +++ b/vendor/luajit/src/host/genminilua.lua @@ -2,7 +2,7 @@ -- Lua script to generate a customized, minified version of Lua. -- The resulting 'minilua' is used for the build process of LuaJIT. ---------------------------------------------------------------------------- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- @@ -157,11 +157,11 @@ local function merge_includes(src) if includes[name] then return "" end includes[name] = true local fp = assert(io.open(LUA_SOURCE..name, "r")) - local src = fp:read("*a") + local inc = fp:read("*a") assert(fp:close()) - src = gsub(src, "#ifndef%s+%w+_h\n#define%s+%w+_h\n", "") - src = gsub(src, "#endif%s*$", "") - return merge_includes(src) + inc = gsub(inc, "#ifndef%s+%w+_h\n#define%s+%w+_h\n", "") + inc = gsub(inc, "#endif%s*$", "") + return merge_includes(inc) end) end @@ -300,6 +300,7 @@ local function strip_unused3(src) src = gsub(src, "if%([^\n]*hookmask[^\n]*&&\n[^\n]*%b{}\n", "") src = gsub(src, "(twoto%b()%()", "%1(size_t)") src = gsub(src, "isizearray)) +if(cast(unsigned int,key)-1sizearray)) return&t->array[key-1]; else{ lua_Number nk=cast_num(key); diff --git a/vendor/luajit/src/jit/bc.lua b/vendor/luajit/src/jit/bc.lua index 46a40892e..a2f84aaf3 100644 --- a/vendor/luajit/src/jit/bc.lua +++ b/vendor/luajit/src/jit/bc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT bytecode listing module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -41,7 +41,7 @@ -- Cache some library functions and objects. local jit = require("jit") -assert(jit.version_num == 20004, "LuaJIT core/library version mismatch") +assert(jit.version_num == 20005, "LuaJIT core/library version mismatch") local jutil = require("jit.util") local vmdef = require("jit.vmdef") local bit = require("bit") diff --git a/vendor/luajit/src/jit/bcsave.lua b/vendor/luajit/src/jit/bcsave.lua index 0319b3d25..aa677dfc3 100644 --- a/vendor/luajit/src/jit/bcsave.lua +++ b/vendor/luajit/src/jit/bcsave.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT module to save/list bytecode. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -11,7 +11,7 @@ ------------------------------------------------------------------------------ local jit = require("jit") -assert(jit.version_num == 20004, "LuaJIT core/library version mismatch") +assert(jit.version_num == 20005, "LuaJIT core/library version mismatch") local bit = require("bit") -- Symbol name prefix for LuaJIT bytecode. @@ -239,7 +239,7 @@ typedef struct { hdr.type = f16(1) hdr.machine = f16(({ x86=3, x64=62, arm=40, ppc=20, ppcspe=20, mips=8, mipsel=8 })[ctx.arch]) if ctx.arch == "mips" or ctx.arch == "mipsel" then - hdr.flags = 0x50001006 + hdr.flags = f32(0x50001006) end hdr.version = f32(1) hdr.shofs = fofs(ffi.offsetof(o, "sect")) diff --git a/vendor/luajit/src/jit/dis_arm.lua b/vendor/luajit/src/jit/dis_arm.lua index 59be715a9..91ebb7d5f 100644 --- a/vendor/luajit/src/jit/dis_arm.lua +++ b/vendor/luajit/src/jit/dis_arm.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT ARM disassembler module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. @@ -12,7 +12,7 @@ local type = type local sub, byte, format = string.sub, string.byte, string.format -local match, gmatch, gsub = string.match, string.gmatch, string.gsub +local match, gmatch = string.match, string.gmatch local concat = table.concat local bit = require("bit") local band, bor, ror, tohex = bit.band, bit.bor, bit.ror, bit.tohex diff --git a/vendor/luajit/src/jit/dis_mips.lua b/vendor/luajit/src/jit/dis_mips.lua index acdd2be16..02dfc1722 100644 --- a/vendor/luajit/src/jit/dis_mips.lua +++ b/vendor/luajit/src/jit/dis_mips.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPS disassembler module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. @@ -11,8 +11,8 @@ ------------------------------------------------------------------------------ local type = type -local sub, byte, format = string.sub, string.byte, string.format -local match, gmatch, gsub = string.match, string.gmatch, string.gsub +local byte, format = string.byte, string.format +local match, gmatch = string.match, string.gmatch local concat = table.concat local bit = require("bit") local band, bor, tohex = bit.band, bit.bor, bit.tohex diff --git a/vendor/luajit/src/jit/dis_mipsel.lua b/vendor/luajit/src/jit/dis_mipsel.lua index dd9d26ae6..c9c2e2456 100644 --- a/vendor/luajit/src/jit/dis_mipsel.lua +++ b/vendor/luajit/src/jit/dis_mipsel.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT MIPSEL disassembler wrapper module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the little-endian functions from the diff --git a/vendor/luajit/src/jit/dis_ppc.lua b/vendor/luajit/src/jit/dis_ppc.lua index d05c43111..4043aeb8d 100644 --- a/vendor/luajit/src/jit/dis_ppc.lua +++ b/vendor/luajit/src/jit/dis_ppc.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT PPC disassembler module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT/X license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. @@ -13,7 +13,7 @@ ------------------------------------------------------------------------------ local type = type -local sub, byte, format = string.sub, string.byte, string.format +local byte, format = string.byte, string.format local match, gmatch, gsub = string.match, string.gmatch, string.gsub local concat = table.concat local bit = require("bit") diff --git a/vendor/luajit/src/jit/dis_x64.lua b/vendor/luajit/src/jit/dis_x64.lua index a80981bd5..08918035e 100644 --- a/vendor/luajit/src/jit/dis_x64.lua +++ b/vendor/luajit/src/jit/dis_x64.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x64 disassembler wrapper module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This module just exports the 64 bit functions from the combined diff --git a/vendor/luajit/src/jit/dis_x86.lua b/vendor/luajit/src/jit/dis_x86.lua index 078d6094d..74d0f5292 100644 --- a/vendor/luajit/src/jit/dis_x86.lua +++ b/vendor/luajit/src/jit/dis_x86.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT x86/x64 disassembler module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- This is a helper module used by the LuaJIT machine code dumper module. diff --git a/vendor/luajit/src/jit/dump.lua b/vendor/luajit/src/jit/dump.lua index d15c528ea..666ba438f 100644 --- a/vendor/luajit/src/jit/dump.lua +++ b/vendor/luajit/src/jit/dump.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- LuaJIT compiler dump module. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -55,7 +55,7 @@ -- Cache some library functions and objects. local jit = require("jit") -assert(jit.version_num == 20004, "LuaJIT core/library version mismatch") +assert(jit.version_num == 20005, "LuaJIT core/library version mismatch") local jutil = require("jit.util") local vmdef = require("jit.vmdef") local funcinfo, funcbc = jutil.funcinfo, jutil.funcbc @@ -63,9 +63,9 @@ local traceinfo, traceir, tracek = jutil.traceinfo, jutil.traceir, jutil.tracek local tracemc, tracesnap = jutil.tracemc, jutil.tracesnap local traceexitstub, ircalladdr = jutil.traceexitstub, jutil.ircalladdr local bit = require("bit") -local band, shl, shr = bit.band, bit.lshift, bit.rshift +local band, shr = bit.band, bit.rshift local sub, gsub, format = string.sub, string.gsub, string.format -local byte, char, rep = string.byte, string.char, string.rep +local byte, rep = string.byte, string.rep local type, tostring = type, tostring local stdout, stderr = io.stdout, io.stderr @@ -207,7 +207,7 @@ local colortype_ansi = { "\027[35m%s\027[m", } -local function colorize_text(s, t) +local function colorize_text(s) return s end @@ -324,7 +324,7 @@ local function formatk(tr, idx) s = format("userdata:%p", k) else s = format("[%p]", k) - if s == "[0x00000000]" then s = "NULL" end + if s == "[NULL]" then s = "NULL" end end elseif t == 21 then -- int64_t s = sub(tostring(k), 1, -3) @@ -564,6 +564,7 @@ local function dump_trace(what, tr, func, pc, otr, oex) end if dumpmode.H then out:write("\n\n") else out:write("\n") end else + if what == "flush" then symtab, nexitsym = {}, 0 end out:write("---- TRACE ", what, "\n\n") end out:flush() @@ -643,7 +644,8 @@ end local function dumpon(opt, outfile) if active then dumpoff() end - local colormode = os.getenv("COLORTERM") and "A" or "T" + local term = os.getenv("TERM") + local colormode = (term and term:match("color") or os.getenv("COLORTERM")) and "A" or "T" if opt then opt = gsub(opt, "[TAH]", function(mode) colormode = mode; return ""; end) end diff --git a/vendor/luajit/src/jit/v.lua b/vendor/luajit/src/jit/v.lua index 32666fd1a..47ee39410 100644 --- a/vendor/luajit/src/jit/v.lua +++ b/vendor/luajit/src/jit/v.lua @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- Verbose mode of the LuaJIT compiler. -- --- Copyright (C) 2005-2015 Mike Pall. All rights reserved. +-- Copyright (C) 2005-2017 Mike Pall. All rights reserved. -- Released under the MIT license. See Copyright Notice in luajit.h ---------------------------------------------------------------------------- -- @@ -59,7 +59,7 @@ -- Cache some library functions and objects. local jit = require("jit") -assert(jit.version_num == 20004, "LuaJIT core/library version mismatch") +assert(jit.version_num == 20005, "LuaJIT core/library version mismatch") local jutil = require("jit.util") local vmdef = require("jit.vmdef") local funcinfo, traceinfo = jutil.funcinfo, jutil.traceinfo diff --git a/vendor/luajit/src/lib_aux.c b/vendor/luajit/src/lib_aux.c index 4a1b70ddc..7af1cd43b 100644 --- a/vendor/luajit/src/lib_aux.c +++ b/vendor/luajit/src/lib_aux.c @@ -1,6 +1,6 @@ /* ** Auxiliary library for the Lua/C API. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major parts taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lib_base.c b/vendor/luajit/src/lib_base.c index 17b9525d6..162bbbb2e 100644 --- a/vendor/luajit/src/lib_base.c +++ b/vendor/luajit/src/lib_base.c @@ -1,6 +1,6 @@ /* ** Base and coroutine library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2011 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lib_bit.c b/vendor/luajit/src/lib_bit.c index 583e04b0c..6dffdfac0 100644 --- a/vendor/luajit/src/lib_bit.c +++ b/vendor/luajit/src/lib_bit.c @@ -1,6 +1,6 @@ /* ** Bit manipulation library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lib_bit_c diff --git a/vendor/luajit/src/lib_debug.c b/vendor/luajit/src/lib_debug.c index e87c35cfe..54c3b7e26 100644 --- a/vendor/luajit/src/lib_debug.c +++ b/vendor/luajit/src/lib_debug.c @@ -1,6 +1,6 @@ /* ** Debug library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lib_ffi.c b/vendor/luajit/src/lib_ffi.c index f6df39d67..f2f2ede45 100644 --- a/vendor/luajit/src/lib_ffi.c +++ b/vendor/luajit/src/lib_ffi.c @@ -1,6 +1,6 @@ /* ** FFI library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lib_ffi_c @@ -811,7 +811,7 @@ static GCtab *ffi_finalizer(lua_State *L) settabV(L, L->top++, t); setgcref(t->metatable, obj2gco(t)); setstrV(L, lj_tab_setstr(L, t, lj_str_newlit(L, "__mode")), - lj_str_newlit(L, "K")); + lj_str_newlit(L, "k")); t->nomm = (uint8_t)(~(1u< - -static int widen(const char *in, wchar_t *out) -{ - return MultiByteToWideChar(CP_UTF8, 0, in, -1, out, MAX_PATH); -} -#endif - /* Userdata payload for I/O file. */ typedef struct IOFileUD { FILE *fp; /* File handle. */ @@ -92,15 +82,7 @@ static IOFileUD *io_file_open(lua_State *L, const char *mode) { const char *fname = strdata(lj_lib_checkstr(L, 1)); IOFileUD *iof = io_file_new(L); -#if LJ_TARGET_WINDOWS - wchar_t wfname[MAX_PATH]; - wchar_t wmode[MAX_PATH]; - if (!widen(fname, wfname) || !widen(mode, wmode)) - luaL_argerror(L, 1, lj_str_pushf(L, "%s: failed to convert path to utf-16", fname)); - iof->fp = _wfopen(wfname, wmode); -#else iof->fp = fopen(fname, mode); -#endif if (iof->fp == NULL) luaL_argerror(L, 1, lj_str_pushf(L, "%s: %s", fname, strerror(errno))); return iof; @@ -296,6 +278,15 @@ static int io_file_iter(lua_State *L) return n; } +static int io_file_lines(lua_State *L) +{ + int n = (int)(L->top - L->base); + if (n > LJ_MAX_UPVAL) + lj_err_caller(L, LJ_ERR_UNPACK); + lua_pushcclosure(L, io_file_iter, n); + return 1; +} + /* -- I/O file methods ---------------------------------------------------- */ #define LJLIB_MODULE_io_method @@ -379,8 +370,7 @@ LJLIB_CF(io_method_setvbuf) LJLIB_CF(io_method_lines) { io_tofile(L); - lua_pushcclosure(L, io_file_iter, (int)(L->top - L->base)); - return 1; + return io_file_lines(L); } LJLIB_CF(io_method___gc) @@ -417,14 +407,7 @@ LJLIB_CF(io_open) GCstr *s = lj_lib_optstr(L, 2); const char *mode = s ? strdata(s) : "r"; IOFileUD *iof = io_file_new(L); -#if LJ_TARGET_WINDOWS - wchar_t wfname[MAX_PATH]; - wchar_t wmode[MAX_PATH]; - if (widen(fname, wfname) && widen(mode, wmode)) - iof->fp = _wfopen(wfname, wmode); -#else iof->fp = fopen(fname, mode); -#endif return iof->fp != NULL ? 1 : luaL_fileresult(L, 0, fname); } @@ -440,10 +423,7 @@ LJLIB_CF(io_popen) fflush(NULL); iof->fp = popen(fname, mode); #else - wchar_t wfname[MAX_PATH]; - wchar_t wmode[MAX_PATH]; - if (widen(fname, wfname) && widen(mode, wmode)) - iof->fp = _wpopen(wfname, wmode); + iof->fp = _popen(fname, mode); #endif return iof->fp != NULL ? 1 : luaL_fileresult(L, 0, fname); #else @@ -520,8 +500,7 @@ LJLIB_CF(io_lines) } else { /* io.lines() iterates over stdin. */ setudataV(L, L->base, IOSTDF_UD(L, GCROOT_IO_INPUT)); } - lua_pushcclosure(L, io_file_iter, (int)(L->top - L->base)); - return 1; + return io_file_lines(L); } LJLIB_CF(io_type) diff --git a/vendor/luajit/src/lib_jit.c b/vendor/luajit/src/lib_jit.c index 96525faf2..d2fcf21be 100644 --- a/vendor/luajit/src/lib_jit.c +++ b/vendor/luajit/src/lib_jit.c @@ -1,6 +1,6 @@ /* ** JIT library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lib_jit_c @@ -199,6 +199,7 @@ LJLIB_CF(jit_util_funcinfo) lua_setfield(L, -2, "source"); lj_debug_pushloc(L, pt, pc); lua_setfield(L, -2, "loc"); + setprotoV(L, lj_tab_setstr(L, t, lj_str_newlit(L, "proto")), pt); } else { GCfunc *fn = funcV(L->base); GCtab *t; diff --git a/vendor/luajit/src/lib_math.c b/vendor/luajit/src/lib_math.c index 40f29142d..4c708a47e 100644 --- a/vendor/luajit/src/lib_math.c +++ b/vendor/luajit/src/lib_math.c @@ -1,6 +1,6 @@ /* ** Math library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include diff --git a/vendor/luajit/src/lib_os.c b/vendor/luajit/src/lib_os.c index a2ed170b7..8c96b86c7 100644 --- a/vendor/luajit/src/lib_os.c +++ b/vendor/luajit/src/lib_os.c @@ -1,6 +1,6 @@ /* ** OS library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h @@ -32,28 +32,11 @@ /* ------------------------------------------------------------------------ */ -#if LJ_TARGET_WINDOWS -#define WIN32_LEAN_AND_MEAN -#include - -static wchar_t *widen_static(const char *narrow, int idx) -{ - __declspec(thread) static wchar_t buffer[2][MAX_PATH]; - return MultiByteToWideChar(CP_UTF8, 0, narrow, -1, buffer[idx], MAX_PATH) ? buffer[idx] : L""; -} - -#define remove(x) _wremove(widen_static(x, 0)) -#define system(x) _wsystem(widen_static(x, 0)) -#define rename(x, y) _wrename(widen_static(x, 0), widen_static(y, 1)) -#endif - -/* ------------------------------------------------------------------------ */ - #define LJLIB_MODULE_os LJLIB_CF(os_execute) { -#if LJ_TARGET_CONSOLE +#if LJ_NO_SYSTEM #if LJ_52 errno = ENOSYS; return luaL_fileresult(L, 0, NULL); diff --git a/vendor/luajit/src/lib_package.c b/vendor/luajit/src/lib_package.c index ac38c8158..01b63d638 100644 --- a/vendor/luajit/src/lib_package.c +++ b/vendor/luajit/src/lib_package.c @@ -1,6 +1,6 @@ /* ** Package library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2012 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lib_string.c b/vendor/luajit/src/lib_string.c index c6168edbb..d1a60b617 100644 --- a/vendor/luajit/src/lib_string.c +++ b/vendor/luajit/src/lib_string.c @@ -1,6 +1,6 @@ /* ** String library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lib_table.c b/vendor/luajit/src/lib_table.c index fbfe86387..b2856ee2f 100644 --- a/vendor/luajit/src/lib_table.c +++ b/vendor/luajit/src/lib_table.c @@ -1,6 +1,6 @@ /* ** Table library. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj.supp b/vendor/luajit/src/lj.supp index 411f26170..217f7c890 100644 --- a/vendor/luajit/src/lj.supp +++ b/vendor/luajit/src/lj.supp @@ -24,3 +24,18 @@ Memcheck:Cond fun:lj_str_new } +{ + Optimized string compare + Memcheck:Addr4 + fun:str_fastcmp +} +{ + Optimized string compare + Memcheck:Addr1 + fun:str_fastcmp +} +{ + Optimized string compare + Memcheck:Cond + fun:str_fastcmp +} diff --git a/vendor/luajit/src/lj_alloc.c b/vendor/luajit/src/lj_alloc.c index 7c7ec6787..dc64dca9a 100644 --- a/vendor/luajit/src/lj_alloc.c +++ b/vendor/luajit/src/lj_alloc.c @@ -194,7 +194,7 @@ static LJ_AINLINE void *CALL_MMAP(size_t size) return ptr; } -#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__sun__) +#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__sun__) || LJ_TARGET_CYGWIN /* OSX and FreeBSD mmap() use a naive first-fit linear search. ** That's perfect for us. Except that -pagezero_size must be set for OSX, diff --git a/vendor/luajit/src/lj_api.c b/vendor/luajit/src/lj_api.c index 3bedb39fd..7b0b3f9d0 100644 --- a/vendor/luajit/src/lj_api.c +++ b/vendor/luajit/src/lj_api.c @@ -1,6 +1,6 @@ /* ** Public Lua/C API. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_arch.h b/vendor/luajit/src/lj_arch.h index d3a9d57d7..e04c4ee9f 100644 --- a/vendor/luajit/src/lj_arch.h +++ b/vendor/luajit/src/lj_arch.h @@ -1,6 +1,6 @@ /* ** Target architecture selection. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_ARCH_H @@ -70,7 +70,10 @@ defined(__NetBSD__) || defined(__OpenBSD__) || \ defined(__DragonFly__)) && !defined(__ORBIS__) #define LUAJIT_OS LUAJIT_OS_BSD -#elif (defined(__sun__) && defined(__svr4__)) || defined(__CYGWIN__) +#elif (defined(__sun__) && defined(__svr4__)) +#define LUAJIT_OS LUAJIT_OS_POSIX +#elif defined(__CYGWIN__) +#define LJ_TARGET_CYGWIN 1 #define LUAJIT_OS LUAJIT_OS_POSIX #else #define LUAJIT_OS LUAJIT_OS_OTHER @@ -133,7 +136,7 @@ #define LJ_ARCH_NAME "x86" #define LJ_ARCH_BITS 32 #define LJ_ARCH_ENDIAN LUAJIT_LE -#if LJ_TARGET_WINDOWS || __CYGWIN__ +#if LJ_TARGET_WINDOWS || LJ_TARGET_CYGWIN #define LJ_ABI_WIN 1 #else #define LJ_ABI_WIN 0 @@ -151,7 +154,11 @@ #define LJ_ARCH_NAME "x64" #define LJ_ARCH_BITS 64 #define LJ_ARCH_ENDIAN LUAJIT_LE -#define LJ_ABI_WIN LJ_TARGET_WINDOWS +#if LJ_TARGET_WINDOWS || LJ_TARGET_CYGWIN +#define LJ_ABI_WIN 1 +#else +#define LJ_ABI_WIN 0 +#endif #define LJ_TARGET_X64 1 #define LJ_TARGET_X86ORX64 1 #define LJ_TARGET_EHRETREG 0 @@ -422,8 +429,16 @@ #if defined(__symbian__) #define LUAJIT_NO_EXP2 #endif +#if LJ_TARGET_CONSOLE || (LJ_TARGET_IOS && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0) +#define LJ_NO_SYSTEM 1 +#endif -#if defined(LUAJIT_NO_UNWIND) || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 +#if !defined(LUAJIT_NO_UNWIND) && __GNU_COMPACT_EH__ +/* NYI: no support for compact unwind specification, yet. */ +#define LUAJIT_NO_UNWIND 1 +#endif + +#if defined(LUAJIT_NO_UNWIND) || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 || LJ_TARGET_PS4 #define LJ_NO_UNWIND 1 #endif diff --git a/vendor/luajit/src/lj_asm.c b/vendor/luajit/src/lj_asm.c index 804b4dc80..02714d4ef 100644 --- a/vendor/luajit/src/lj_asm.c +++ b/vendor/luajit/src/lj_asm.c @@ -1,6 +1,6 @@ /* ** IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_asm_c diff --git a/vendor/luajit/src/lj_asm.h b/vendor/luajit/src/lj_asm.h index 85f297632..2819481b6 100644 --- a/vendor/luajit/src/lj_asm.h +++ b/vendor/luajit/src/lj_asm.h @@ -1,6 +1,6 @@ /* ** IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_ASM_H diff --git a/vendor/luajit/src/lj_asm_arm.h b/vendor/luajit/src/lj_asm_arm.h index 9e4cf4367..961f7e397 100644 --- a/vendor/luajit/src/lj_asm_arm.h +++ b/vendor/luajit/src/lj_asm_arm.h @@ -1,6 +1,6 @@ /* ** ARM IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Register allocator extensions --------------------------------------- */ @@ -426,7 +426,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) { RegSet drop = RSET_SCRATCH; - int hiop = ((ir+1)->o == IR_HIOP); + int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); if (ra_hasreg(ir->r)) rset_clear(drop, ir->r); /* Dest reg handled below. */ if (hiop && ra_hasreg((ir+1)->r)) @@ -976,7 +976,6 @@ static void asm_newref(ASMState *as, IRIns *ir) static void asm_uref(ASMState *as, IRIns *ir) { - /* NYI: Check that UREFO is still open and not aliasing a slot. */ Reg dest = ra_dest(as, ir, RSET_GPR); if (irref_isk(ir->op1)) { GCfunc *fn = ir_kfunc(IR(ir->op1)); diff --git a/vendor/luajit/src/lj_asm_mips.h b/vendor/luajit/src/lj_asm_mips.h index 78bd26d5d..03270ccaa 100644 --- a/vendor/luajit/src/lj_asm_mips.h +++ b/vendor/luajit/src/lj_asm_mips.h @@ -1,6 +1,6 @@ /* ** MIPS IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Register allocator extensions --------------------------------------- */ @@ -291,7 +291,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) { RegSet drop = RSET_SCRATCH; - int hiop = ((ir+1)->o == IR_HIOP); + int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); if ((ci->flags & CCI_NOFPRCLOBBER)) drop &= ~RSET_FPR; if (ra_hasreg(ir->r)) @@ -443,18 +443,14 @@ static void asm_conv(ASMState *as, IRIns *ir) /* y = (x ^ 0x8000000) + 2147483648.0 */ Reg left = ra_alloc1(as, lref, RSET_GPR); Reg tmp = ra_scratch(as, rset_exclude(RSET_FPR, dest)); - emit_fgh(as, irt_isfloat(ir->t) ? MIPSI_ADD_S : MIPSI_ADD_D, - dest, dest, tmp); - emit_fg(as, irt_isfloat(ir->t) ? MIPSI_CVT_S_W : MIPSI_CVT_D_W, - dest, dest); if (irt_isfloat(ir->t)) - emit_lsptr(as, MIPSI_LWC1, (tmp & 31), - (void *)lj_ir_k64_find(as->J, U64x(4f000000,4f000000)), - RSET_GPR); - else - emit_lsptr(as, MIPSI_LDC1, (tmp & 31), - (void *)lj_ir_k64_find(as->J, U64x(41e00000,00000000)), - RSET_GPR); + emit_fg(as, MIPSI_CVT_S_D, dest, dest); + /* Must perform arithmetic with doubles to keep the precision. */ + emit_fgh(as, MIPSI_ADD_D, dest, dest, tmp); + emit_fg(as, MIPSI_CVT_D_W, dest, dest); + emit_lsptr(as, MIPSI_LDC1, (tmp & 31), + (void *)lj_ir_k64_find(as->J, U64x(41e00000,00000000)), + RSET_GPR); emit_tg(as, MIPSI_MTC1, RID_TMP, dest); emit_dst(as, MIPSI_XOR, RID_TMP, RID_TMP, left); emit_ti(as, MIPSI_LUI, RID_TMP, 0x8000); @@ -793,7 +789,6 @@ static void asm_newref(ASMState *as, IRIns *ir) static void asm_uref(ASMState *as, IRIns *ir) { - /* NYI: Check that UREFO is still open and not aliasing a slot. */ Reg dest = ra_dest(as, ir, RSET_GPR); if (irref_isk(ir->op1)) { GCfunc *fn = ir_kfunc(IR(ir->op1)); diff --git a/vendor/luajit/src/lj_asm_ppc.h b/vendor/luajit/src/lj_asm_ppc.h index 2c5d74a8d..d8a14c839 100644 --- a/vendor/luajit/src/lj_asm_ppc.h +++ b/vendor/luajit/src/lj_asm_ppc.h @@ -1,6 +1,6 @@ /* ** PPC IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Register allocator extensions --------------------------------------- */ @@ -298,7 +298,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) { RegSet drop = RSET_SCRATCH; - int hiop = ((ir+1)->o == IR_HIOP); + int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); if ((ci->flags & CCI_NOFPRCLOBBER)) drop &= ~RSET_FPR; if (ra_hasreg(ir->r)) @@ -789,7 +789,6 @@ static void asm_newref(ASMState *as, IRIns *ir) static void asm_uref(ASMState *as, IRIns *ir) { - /* NYI: Check that UREFO is still open and not aliasing a slot. */ Reg dest = ra_dest(as, ir, RSET_GPR); if (irref_isk(ir->op1)) { GCfunc *fn = ir_kfunc(IR(ir->op1)); diff --git a/vendor/luajit/src/lj_asm_x86.h b/vendor/luajit/src/lj_asm_x86.h index 0b6b2d4a5..10468bb71 100644 --- a/vendor/luajit/src/lj_asm_x86.h +++ b/vendor/luajit/src/lj_asm_x86.h @@ -1,6 +1,6 @@ /* ** x86/x64 IR assembler (SSA IR -> machine code). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Guard handling ------------------------------------------------------ */ @@ -325,11 +325,11 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow) as->mrm.base = as->mrm.idx = RID_NONE; return RID_MRM; } - } else if (ir->o == IR_KINT64) { + } else if (ref == REF_BASE || ir->o == IR_KINT64) { RegSet avail = as->freeset & ~as->modset & RSET_GPR; lua_assert(allow != RSET_EMPTY); if (!(avail & (avail-1))) { /* Fuse if less than two regs available. */ - as->mrm.ofs = ptr2addr(ir_kint64(ir)); + as->mrm.ofs = ptr2addr(ref == REF_BASE ? (void *)&J2G(as->J)->jit_base : (void *)ir_kint64(ir)); as->mrm.base = as->mrm.idx = RID_NONE; return RID_MRM; } @@ -369,7 +369,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow) return RID_MRM; } } - if (!(as->freeset & allow) && !irref_isk(ref) && + if (!(as->freeset & allow) && !emit_canremat(ref) && (allow == RSET_EMPTY || ra_hasspill(ir->s) || iscrossref(as, ref))) goto fusespill; return ra_allocref(as, ref, allow); @@ -531,7 +531,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) { RegSet drop = RSET_SCRATCH; - int hiop = (LJ_32 && (ir+1)->o == IR_HIOP); + int hiop = (LJ_32 && (ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); if ((ci->flags & CCI_NOFPRCLOBBER)) drop &= ~RSET_FPR; if (ra_hasreg(ir->r)) @@ -1215,7 +1215,6 @@ static void asm_newref(ASMState *as, IRIns *ir) static void asm_uref(ASMState *as, IRIns *ir) { - /* NYI: Check that UREFO is still open and not aliasing a slot. */ Reg dest = ra_dest(as, ir, RSET_GPR); if (irref_isk(ir->op1)) { GCfunc *fn = ir_kfunc(IR(ir->op1)); @@ -2776,6 +2775,106 @@ static void asm_setup_target(ASMState *as) /* -- Trace patching ------------------------------------------------------ */ +static const uint8_t map_op1[256] = { +0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x20, +0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51, +0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51, +0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51, +#if LJ_64 +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, +#else +0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51, +#endif +0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51, +0x51,0x51,0x92,0x92,0x10,0x10,0x12,0x11,0x45,0x86,0x52,0x93,0x51,0x51,0x51,0x51, +0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52, +0x93,0x86,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, +0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x47,0x51,0x51,0x51,0x51,0x51, +#if LJ_64 +0x59,0x59,0x59,0x59,0x51,0x51,0x51,0x51,0x52,0x45,0x51,0x51,0x51,0x51,0x51,0x51, +#else +0x55,0x55,0x55,0x55,0x51,0x51,0x51,0x51,0x52,0x45,0x51,0x51,0x51,0x51,0x51,0x51, +#endif +0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x93,0x93,0x53,0x51,0x70,0x71,0x93,0x86,0x54,0x51,0x53,0x51,0x51,0x52,0x51,0x51, +0x92,0x92,0x92,0x92,0x52,0x52,0x51,0x51,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92, +0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x45,0x45,0x47,0x52,0x51,0x51,0x51,0x51, +0x10,0x51,0x10,0x10,0x51,0x51,0x63,0x66,0x51,0x51,0x51,0x51,0x51,0x51,0x92,0x92 +}; + +static const uint8_t map_op2[256] = { +0x93,0x93,0x93,0x93,0x52,0x52,0x52,0x52,0x52,0x52,0x51,0x52,0x51,0x93,0x52,0x94, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x34,0x51,0x35,0x51,0x51,0x51,0x51,0x51, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x53,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x94,0x54,0x54,0x54,0x93,0x93,0x93,0x52,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x52,0x52,0x52,0x93,0x94,0x93,0x51,0x51,0x52,0x52,0x52,0x93,0x94,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x94,0x93,0x94,0x94,0x94,0x93,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93, +0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x52 +}; + +static uint32_t asm_x86_inslen(const uint8_t* p) +{ + uint32_t result = 0; + uint32_t prefixes = 0; + uint32_t x = map_op1[*p]; + for (;;) { + switch (x >> 4) { + case 0: return result + x + (prefixes & 4); + case 1: prefixes |= x; x = map_op1[*++p]; result++; break; + case 2: x = map_op2[*++p]; break; + case 3: p++; goto mrm; + case 4: result -= (prefixes & 2); /* fallthrough */ + case 5: return result + (x & 15); + case 6: /* Group 3. */ + if (p[1] & 0x38) x = 2; + else if ((prefixes & 2) && (x == 0x66)) x = 4; + goto mrm; + case 7: /* VEX c4/c5. */ + if (LJ_32 && p[1] < 0xc0) { + x = 2; + goto mrm; + } + if (x == 0x70) { + x = *++p & 0x1f; + result++; + if (x >= 2) { + p += 2; + result += 2; + goto mrm; + } + } + p++; + result++; + x = map_op2[*++p]; + break; + case 8: result -= (prefixes & 2); /* fallthrough */ + case 9: mrm: /* ModR/M and possibly SIB. */ + result += (x & 15); + x = *++p; + switch (x >> 6) { + case 0: if ((x & 7) == 5) return result + 4; break; + case 1: result++; break; + case 2: result += 4; break; + case 3: return result; + } + if ((x & 7) == 4) { + result++; + if (x < 0x40 && (p[1] & 7) == 5) result += 4; + } + return result; + } + } +} + /* Patch exit jumps of existing machine code to a new target. */ void lj_asm_patchexit(jit_State *J, GCtrace *T, ExitNo exitno, MCode *target) { @@ -2788,18 +2887,13 @@ void lj_asm_patchexit(jit_State *J, GCtrace *T, ExitNo exitno, MCode *target) if (len > 5 && p[len-5] == XI_JMP && p+len-6 + *(int32_t *)(p+len-4) == px) *(int32_t *)(p+len-4) = jmprel(p+len, target); /* Do not patch parent exit for a stack check. Skip beyond vmstate update. */ - for (; p < pe; p++) - if (*(uint32_t *)(p+(LJ_64 ? 3 : 2)) == stateaddr && p[0] == XI_MOVmi) { - p += LJ_64 ? 11 : 10; + for (; p < pe; p += asm_x86_inslen(p)) + if (*(uint32_t *)(p+(LJ_64 ? 3 : 2)) == stateaddr && p[0] == XI_MOVmi) break; - } lua_assert(p < pe); - for (; p < pe; p++) { - if ((*(uint16_t *)p & 0xf0ff) == 0x800f && p + *(int32_t *)(p+2) == px) { + for (; p < pe; p += asm_x86_inslen(p)) + if ((*(uint16_t *)p & 0xf0ff) == 0x800f && p + *(int32_t *)(p+2) == px) *(int32_t *)(p+2) = jmprel(p+6, target); - p += 5; - } - } lj_mcode_sync(T->mcode, T->mcode + T->szmcode); lj_mcode_patch(J, mcarea, 1); } diff --git a/vendor/luajit/src/lj_bc.c b/vendor/luajit/src/lj_bc.c index a8f444c26..a597692ca 100644 --- a/vendor/luajit/src/lj_bc.c +++ b/vendor/luajit/src/lj_bc.c @@ -1,6 +1,6 @@ /* ** Bytecode instruction modes. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_bc_c diff --git a/vendor/luajit/src/lj_bc.h b/vendor/luajit/src/lj_bc.h index 7436fabfe..108c10f28 100644 --- a/vendor/luajit/src/lj_bc.h +++ b/vendor/luajit/src/lj_bc.h @@ -1,6 +1,6 @@ /* ** Bytecode instruction format. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_BC_H diff --git a/vendor/luajit/src/lj_bcdump.h b/vendor/luajit/src/lj_bcdump.h index 812d0e151..ba53c0a11 100644 --- a/vendor/luajit/src/lj_bcdump.h +++ b/vendor/luajit/src/lj_bcdump.h @@ -1,6 +1,6 @@ /* ** Bytecode dump definitions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_BCDUMP_H diff --git a/vendor/luajit/src/lj_bcread.c b/vendor/luajit/src/lj_bcread.c index 25859d2fa..6a462bd6d 100644 --- a/vendor/luajit/src/lj_bcread.c +++ b/vendor/luajit/src/lj_bcread.c @@ -1,6 +1,6 @@ /* ** Bytecode reader. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_bcread_c diff --git a/vendor/luajit/src/lj_bcwrite.c b/vendor/luajit/src/lj_bcwrite.c index ff97450b8..fae1ebb33 100644 --- a/vendor/luajit/src/lj_bcwrite.c +++ b/vendor/luajit/src/lj_bcwrite.c @@ -1,6 +1,6 @@ /* ** Bytecode writer. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_bcwrite_c diff --git a/vendor/luajit/src/lj_carith.c b/vendor/luajit/src/lj_carith.c index 2a358a9bb..6224dee62 100644 --- a/vendor/luajit/src/lj_carith.c +++ b/vendor/luajit/src/lj_carith.c @@ -1,6 +1,6 @@ /* ** C data arithmetic. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_carith.h b/vendor/luajit/src/lj_carith.h index 8c4bdbbe2..3c1559107 100644 --- a/vendor/luajit/src/lj_carith.h +++ b/vendor/luajit/src/lj_carith.h @@ -1,6 +1,6 @@ /* ** C data arithmetic. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CARITH_H diff --git a/vendor/luajit/src/lj_ccall.c b/vendor/luajit/src/lj_ccall.c index 998417c1c..65076e776 100644 --- a/vendor/luajit/src/lj_ccall.c +++ b/vendor/luajit/src/lj_ccall.c @@ -1,6 +1,6 @@ /* ** FFI C call handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_ccall.h b/vendor/luajit/src/lj_ccall.h index f55301093..9089e6c7e 100644 --- a/vendor/luajit/src/lj_ccall.h +++ b/vendor/luajit/src/lj_ccall.h @@ -1,6 +1,6 @@ /* ** FFI C call handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CCALL_H diff --git a/vendor/luajit/src/lj_ccallback.c b/vendor/luajit/src/lj_ccallback.c index b210641f9..06a740190 100644 --- a/vendor/luajit/src/lj_ccallback.c +++ b/vendor/luajit/src/lj_ccallback.c @@ -1,6 +1,6 @@ /* ** FFI C callback handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_ccallback.h b/vendor/luajit/src/lj_ccallback.h index 83dbe048b..a8cdad386 100644 --- a/vendor/luajit/src/lj_ccallback.h +++ b/vendor/luajit/src/lj_ccallback.h @@ -1,6 +1,6 @@ /* ** FFI C callback handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CCALLBACK_H diff --git a/vendor/luajit/src/lj_cconv.c b/vendor/luajit/src/lj_cconv.c index 8a270766f..ab398adcd 100644 --- a/vendor/luajit/src/lj_cconv.c +++ b/vendor/luajit/src/lj_cconv.c @@ -1,6 +1,6 @@ /* ** C type conversions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_cconv.h b/vendor/luajit/src/lj_cconv.h index 2bd50ff46..0a0b66c90 100644 --- a/vendor/luajit/src/lj_cconv.h +++ b/vendor/luajit/src/lj_cconv.h @@ -1,6 +1,6 @@ /* ** C type conversions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CCONV_H diff --git a/vendor/luajit/src/lj_cdata.c b/vendor/luajit/src/lj_cdata.c index 39fc13a9f..49b1aa502 100644 --- a/vendor/luajit/src/lj_cdata.c +++ b/vendor/luajit/src/lj_cdata.c @@ -1,6 +1,6 @@ /* ** C data management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_cdata.h b/vendor/luajit/src/lj_cdata.h index 3a1275e6c..4bb65db2a 100644 --- a/vendor/luajit/src/lj_cdata.h +++ b/vendor/luajit/src/lj_cdata.h @@ -1,6 +1,6 @@ /* ** C data management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CDATA_H diff --git a/vendor/luajit/src/lj_clib.c b/vendor/luajit/src/lj_clib.c index d35260909..8dc3c10e3 100644 --- a/vendor/luajit/src/lj_clib.c +++ b/vendor/luajit/src/lj_clib.c @@ -1,6 +1,6 @@ /* ** FFI C library loader. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" @@ -39,7 +39,7 @@ LJ_NORET LJ_NOINLINE static void clib_error_(lua_State *L) #define clib_error(L, fmt, name) clib_error_(L) -#if defined(__CYGWIN__) +#if LJ_TARGET_CYGWIN #define CLIB_SOPREFIX "cyg" #else #define CLIB_SOPREFIX "lib" @@ -47,7 +47,7 @@ LJ_NORET LJ_NOINLINE static void clib_error_(lua_State *L) #if LJ_TARGET_OSX #define CLIB_SOEXT "%s.dylib" -#elif defined(__CYGWIN__) +#elif LJ_TARGET_CYGWIN #define CLIB_SOEXT "%s.dll" #else #define CLIB_SOEXT "%s.so" @@ -56,14 +56,14 @@ LJ_NORET LJ_NOINLINE static void clib_error_(lua_State *L) static const char *clib_extname(lua_State *L, const char *name) { if (!strchr(name, '/') -#ifdef __CYGWIN__ +#if LJ_TARGET_CYGWIN && !strchr(name, '\\') #endif ) { if (!strchr(name, '.')) { name = lj_str_pushf(L, CLIB_SOEXT, name); L->top--; -#ifdef __CYGWIN__ +#if LJ_TARGET_CYGWIN } else { return name; #endif diff --git a/vendor/luajit/src/lj_clib.h b/vendor/luajit/src/lj_clib.h index e5dc98e1c..fcc9dac59 100644 --- a/vendor/luajit/src/lj_clib.h +++ b/vendor/luajit/src/lj_clib.h @@ -1,6 +1,6 @@ /* ** FFI C library loader. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CLIB_H diff --git a/vendor/luajit/src/lj_cparse.c b/vendor/luajit/src/lj_cparse.c index b9df88d77..2ba50a722 100644 --- a/vendor/luajit/src/lj_cparse.c +++ b/vendor/luajit/src/lj_cparse.c @@ -1,6 +1,6 @@ /* ** C declaration parser. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" @@ -310,13 +310,17 @@ static CPToken cp_next_(CPState *cp) else return '/'; break; case '|': - if (cp_get(cp) != '|') return '|'; cp_get(cp); return CTOK_OROR; + if (cp_get(cp) != '|') return '|'; + cp_get(cp); return CTOK_OROR; case '&': - if (cp_get(cp) != '&') return '&'; cp_get(cp); return CTOK_ANDAND; + if (cp_get(cp) != '&') return '&'; + cp_get(cp); return CTOK_ANDAND; case '=': - if (cp_get(cp) != '=') return '='; cp_get(cp); return CTOK_EQ; + if (cp_get(cp) != '=') return '='; + cp_get(cp); return CTOK_EQ; case '!': - if (cp_get(cp) != '=') return '!'; cp_get(cp); return CTOK_NE; + if (cp_get(cp) != '=') return '!'; + cp_get(cp); return CTOK_NE; case '<': if (cp_get(cp) == '=') { cp_get(cp); return CTOK_LE; } else if (cp->c == '<') { cp_get(cp); return CTOK_SHL; } @@ -326,7 +330,8 @@ static CPToken cp_next_(CPState *cp) else if (cp->c == '>') { cp_get(cp); return CTOK_SHR; } return '>'; case '-': - if (cp_get(cp) != '>') return '-'; cp_get(cp); return CTOK_DEREF; + if (cp_get(cp) != '>') return '-'; + cp_get(cp); return CTOK_DEREF; case '$': return cp_param(cp); case '\0': return CTOK_EOF; @@ -798,6 +803,10 @@ static void cp_push_type(CPDecl *decl, CTypeID id) cp_push(decl, info & ~CTMASK_CID, size); /* Copy type. */ break; case CT_ARRAY: + if ((ct->info & (CTF_VECTOR|CTF_COMPLEX))) { + info |= (decl->attr & CTF_QUAL); + decl->attr &= ~CTF_QUAL; + } cp_push_type(decl, ctype_cid(info)); /* Unroll. */ cp_push(decl, info & ~CTMASK_CID, size); /* Copy type. */ decl->stack[decl->pos].sib = 1; /* Mark as already checked and sized. */ diff --git a/vendor/luajit/src/lj_cparse.h b/vendor/luajit/src/lj_cparse.h index 441580de6..bad1060bb 100644 --- a/vendor/luajit/src/lj_cparse.h +++ b/vendor/luajit/src/lj_cparse.h @@ -1,6 +1,6 @@ /* ** C declaration parser. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CPARSE_H diff --git a/vendor/luajit/src/lj_crecord.c b/vendor/luajit/src/lj_crecord.c index a46665e9a..84fc49ee1 100644 --- a/vendor/luajit/src/lj_crecord.c +++ b/vendor/luajit/src/lj_crecord.c @@ -1,6 +1,6 @@ /* ** Trace recorder for C data operations. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_ffrecord_c @@ -1205,7 +1205,7 @@ void LJ_FASTCALL recff_cdata_call(jit_State *J, RecordFFData *rd) static TRef crec_arith_int64(jit_State *J, TRef *sp, CType **s, MMS mm) { - if (ctype_isnum(s[0]->info) && ctype_isnum(s[1]->info)) { + if (sp[0] && sp[1] && ctype_isnum(s[0]->info) && ctype_isnum(s[1]->info)) { IRType dt; CTypeID id; TRef tr; @@ -1263,6 +1263,7 @@ static TRef crec_arith_ptr(jit_State *J, TRef *sp, CType **s, MMS mm) { CTState *cts = ctype_ctsG(J2G(J)); CType *ctp = s[0]; + if (!(sp[0] && sp[1])) return 0; if (ctype_isptr(ctp->info) || ctype_isrefarray(ctp->info)) { if ((mm == MM_sub || mm == MM_eq || mm == MM_lt || mm == MM_le) && (ctype_isptr(s[1]->info) || ctype_isrefarray(s[1]->info))) { diff --git a/vendor/luajit/src/lj_crecord.h b/vendor/luajit/src/lj_crecord.h index a4628caca..8e0afd18c 100644 --- a/vendor/luajit/src/lj_crecord.h +++ b/vendor/luajit/src/lj_crecord.h @@ -1,6 +1,6 @@ /* ** Trace recorder for C data operations. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CRECORD_H diff --git a/vendor/luajit/src/lj_ctype.c b/vendor/luajit/src/lj_ctype.c index ac3017494..9417500cb 100644 --- a/vendor/luajit/src/lj_ctype.c +++ b/vendor/luajit/src/lj_ctype.c @@ -1,6 +1,6 @@ /* ** C type management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include "lj_obj.h" diff --git a/vendor/luajit/src/lj_ctype.h b/vendor/luajit/src/lj_ctype.h index 3df26f095..2aefd3b6e 100644 --- a/vendor/luajit/src/lj_ctype.h +++ b/vendor/luajit/src/lj_ctype.h @@ -1,6 +1,6 @@ /* ** C type management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_CTYPE_H @@ -42,18 +42,18 @@ LJ_STATIC_ASSERT(((int)CT_STRUCT & (int)CT_ARRAY) == CT_STRUCT); ** ---------- info ------------ ** |type flags... A cid | size | sib | next | name | ** +----------------------------+--------+-------+-------+-------+-- -** |NUM BFvcUL.. A | size | | type | | -** |STRUCT ..vcU..V A | size | field | name? | name? | -** |PTR ..vcR... A cid | size | | type | | -** |ARRAY VCvc...V A cid | size | | type | | -** |VOID ..vc.... A | size | | type | | +** |NUM BFcvUL.. A | size | | type | | +** |STRUCT ..cvU..V A | size | field | name? | name? | +** |PTR ..cvR... A cid | size | | type | | +** |ARRAY VCcv...V A cid | size | | type | | +** |VOID ..cv.... A | size | | type | | ** |ENUM A cid | size | const | name? | name? | ** |FUNC ....VS.. cc cid | nargs | field | name? | name? | ** |TYPEDEF cid | | | name | name | ** |ATTRIB attrnum cid | attr | sib? | type? | | ** |FIELD cid | offset | field | | name? | -** |BITFIELD B.vcU csz bsz pos | offset | field | | name? | -** |CONSTVAL c cid | value | const | name | name | +** |BITFIELD B.cvU csz bsz pos | offset | field | | name? | +** |CONSTVAL c cid | value | const | name | name | ** |EXTERN cid | | sib? | name | name | ** |KW tok | size | | name | name | ** +----------------------------+--------+-------+-------+-------+-- diff --git a/vendor/luajit/src/lj_debug.c b/vendor/luajit/src/lj_debug.c index bd2fa1f56..a684302c1 100644 --- a/vendor/luajit/src/lj_debug.c +++ b/vendor/luajit/src/lj_debug.c @@ -1,6 +1,6 @@ /* ** Debugging and introspection. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_debug_c diff --git a/vendor/luajit/src/lj_debug.h b/vendor/luajit/src/lj_debug.h index fa8988c3e..d10d0da2c 100644 --- a/vendor/luajit/src/lj_debug.h +++ b/vendor/luajit/src/lj_debug.h @@ -1,6 +1,6 @@ /* ** Debugging and introspection. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_DEBUG_H diff --git a/vendor/luajit/src/lj_def.h b/vendor/luajit/src/lj_def.h index e666c9e30..21cc59a4f 100644 --- a/vendor/luajit/src/lj_def.h +++ b/vendor/luajit/src/lj_def.h @@ -1,6 +1,6 @@ /* ** LuaJIT common internal definitions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_DEF_H diff --git a/vendor/luajit/src/lj_dispatch.c b/vendor/luajit/src/lj_dispatch.c index 37256576e..627379a2a 100644 --- a/vendor/luajit/src/lj_dispatch.c +++ b/vendor/luajit/src/lj_dispatch.c @@ -1,6 +1,6 @@ /* ** Instruction dispatch handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_dispatch_c diff --git a/vendor/luajit/src/lj_dispatch.h b/vendor/luajit/src/lj_dispatch.h index 778affc8c..e46a0eee7 100644 --- a/vendor/luajit/src/lj_dispatch.h +++ b/vendor/luajit/src/lj_dispatch.h @@ -1,6 +1,6 @@ /* ** Instruction dispatch handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_DISPATCH_H diff --git a/vendor/luajit/src/lj_emit_arm.h b/vendor/luajit/src/lj_emit_arm.h index 8c5e5379c..285c98de0 100644 --- a/vendor/luajit/src/lj_emit_arm.h +++ b/vendor/luajit/src/lj_emit_arm.h @@ -1,6 +1,6 @@ /* ** ARM instruction emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Constant encoding --------------------------------------------------- */ @@ -273,7 +273,7 @@ static void emit_call(ASMState *as, void *target) ptrdiff_t delta = ((char *)target - (char *)p) - 8; if ((((delta>>2) + 0x00800000) >> 24) == 0) { if ((delta & 1)) - *p = ARMI_BLX | ((uint32_t)(delta>>2) & 0x00ffffffu) | ((delta&2) << 27); + *p = ARMI_BLX | ((uint32_t)(delta>>2) & 0x00ffffffu) | ((delta&2) << 23); else *p = ARMI_BL | ((uint32_t)(delta>>2) & 0x00ffffffu); } else { /* Target out of range: need indirect call. But don't use R0-R3. */ diff --git a/vendor/luajit/src/lj_emit_mips.h b/vendor/luajit/src/lj_emit_mips.h index 0fc07d910..ed62608a4 100644 --- a/vendor/luajit/src/lj_emit_mips.h +++ b/vendor/luajit/src/lj_emit_mips.h @@ -1,6 +1,6 @@ /* ** MIPS instruction emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Emit basic instructions --------------------------------------------- */ diff --git a/vendor/luajit/src/lj_emit_ppc.h b/vendor/luajit/src/lj_emit_ppc.h index 14edf00fd..14099302c 100644 --- a/vendor/luajit/src/lj_emit_ppc.h +++ b/vendor/luajit/src/lj_emit_ppc.h @@ -1,6 +1,6 @@ /* ** PPC instruction emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Emit basic instructions --------------------------------------------- */ diff --git a/vendor/luajit/src/lj_emit_x86.h b/vendor/luajit/src/lj_emit_x86.h index 3a2f6510b..bcceb93e7 100644 --- a/vendor/luajit/src/lj_emit_x86.h +++ b/vendor/luajit/src/lj_emit_x86.h @@ -1,6 +1,6 @@ /* ** x86/x64 instruction emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* -- Emit basic instructions --------------------------------------------- */ diff --git a/vendor/luajit/src/lj_err.c b/vendor/luajit/src/lj_err.c index 081bfde4a..54f42c374 100644 --- a/vendor/luajit/src/lj_err.c +++ b/vendor/luajit/src/lj_err.c @@ -1,6 +1,6 @@ /* ** Error handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_err_c @@ -57,10 +57,10 @@ ** EXT cannot be enabled on WIN32 since system exceptions use code-driven SEH. ** EXT is mandatory on WIN64 since the calling convention has an abundance ** of callee-saved registers (rbx, rbp, rsi, rdi, r12-r15, xmm6-xmm15). -** EXT is mandatory on POSIX/x64 since the interpreter doesn't save r12/r13. +** The POSIX/x64 interpreter only saves r12/r13 for INT (e.g. PS4). */ -#if defined(__GNUC__) && (LJ_TARGET_X64 || defined(LUAJIT_UNWIND_EXTERNAL)) +#if defined(__GNUC__) && (LJ_TARGET_X64 || defined(LUAJIT_UNWIND_EXTERNAL)) && !LJ_NO_UNWIND #define LJ_UNWIND_EXT 1 #elif LJ_TARGET_X64 && LJ_TARGET_WINDOWS #define LJ_UNWIND_EXT 1 @@ -186,7 +186,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) /* -- External frame unwinding -------------------------------------------- */ -#if defined(__GNUC__) && !LJ_NO_UNWIND && !LJ_TARGET_WINDOWS +#if defined(__GNUC__) && !LJ_NO_UNWIND && !LJ_ABI_WIN /* ** We have to use our own definitions instead of the mandatory (!) unwind.h, @@ -352,7 +352,7 @@ LJ_FUNCA int lj_err_unwind_arm(int state, void *ucb, _Unwind_Context *ctx) #endif -#elif LJ_TARGET_X64 && LJ_TARGET_WINDOWS +#elif LJ_TARGET_X64 && LJ_ABI_WIN /* ** Someone in Redmond owes me several days of my life. A lot of this is @@ -417,7 +417,9 @@ LJ_FUNCA EXCEPTION_DISPOSITION lj_err_unwind_win64(EXCEPTION_RECORD *rec, if (cf2) { /* We catch it, so start unwinding the upper frames. */ if (rec->ExceptionCode == LJ_MSVC_EXCODE || rec->ExceptionCode == LJ_GCC_EXCODE) { +#if LJ_TARGET_WINDOWS __DestructExceptionObject(rec, 1); +#endif setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRCPP)); } else if (!LJ_EXCODE_CHECK(rec->ExceptionCode)) { /* Don't catch access violations etc. */ diff --git a/vendor/luajit/src/lj_err.h b/vendor/luajit/src/lj_err.h index 03a56f036..cba5fb714 100644 --- a/vendor/luajit/src/lj_err.h +++ b/vendor/luajit/src/lj_err.h @@ -1,6 +1,6 @@ /* ** Error handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_ERR_H diff --git a/vendor/luajit/src/lj_errmsg.h b/vendor/luajit/src/lj_errmsg.h index 1c9487607..ac552f40c 100644 --- a/vendor/luajit/src/lj_errmsg.h +++ b/vendor/luajit/src/lj_errmsg.h @@ -1,6 +1,6 @@ /* ** VM error messages. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* This file may be included multiple times with different ERRDEF macros. */ diff --git a/vendor/luajit/src/lj_ff.h b/vendor/luajit/src/lj_ff.h index 73dad9695..31d65a00d 100644 --- a/vendor/luajit/src/lj_ff.h +++ b/vendor/luajit/src/lj_ff.h @@ -1,6 +1,6 @@ /* ** Fast function IDs. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_FF_H diff --git a/vendor/luajit/src/lj_ffrecord.c b/vendor/luajit/src/lj_ffrecord.c index 69f71ab2e..da09dca5f 100644 --- a/vendor/luajit/src/lj_ffrecord.c +++ b/vendor/luajit/src/lj_ffrecord.c @@ -1,6 +1,6 @@ /* ** Fast function call recorder. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_ffrecord_c @@ -366,11 +366,12 @@ static void LJ_FASTCALL recff_ipairs_aux(jit_State *J, RecordFFData *rd) static void LJ_FASTCALL recff_ipairs(jit_State *J, RecordFFData *rd) { - if (!(LJ_52 && recff_metacall(J, rd, MM_ipairs))) { - TRef tab = J->base[0]; - if (tref_istab(tab)) { + TRef tr = J->base[0]; + if (!((LJ_52 || (LJ_HASFFI && tref_iscdata(tr))) && + recff_metacall(J, rd, MM_ipairs))) { + if (tref_istab(tr)) { J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0])); - J->base[1] = tab; + J->base[1] = tr; J->base[2] = lj_ir_kint(J, 0); rd->nres = 3; } /* else: Interpreter will throw. */ @@ -538,10 +539,8 @@ static void LJ_FASTCALL recff_math_degrad(jit_State *J, RecordFFData *rd) static void LJ_FASTCALL recff_math_pow(jit_State *J, RecordFFData *rd) { - TRef tr = lj_ir_tonum(J, J->base[0]); - if (!tref_isnumber_str(J->base[1])) - lj_trace_err(J, LJ_TRERR_BADTYPE); - J->base[0] = lj_opt_narrow_pow(J, tr, J->base[1], &rd->argv[1]); + J->base[0] = lj_opt_narrow_pow(J, J->base[0], J->base[1], + &rd->argv[0], &rd->argv[1]); UNUSED(rd); } diff --git a/vendor/luajit/src/lj_ffrecord.h b/vendor/luajit/src/lj_ffrecord.h index f858ca29c..3b407450d 100644 --- a/vendor/luajit/src/lj_ffrecord.h +++ b/vendor/luajit/src/lj_ffrecord.h @@ -1,6 +1,6 @@ /* ** Fast function call recorder. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_FFRECORD_H diff --git a/vendor/luajit/src/lj_frame.h b/vendor/luajit/src/lj_frame.h index cd57be223..eb5df3079 100644 --- a/vendor/luajit/src/lj_frame.h +++ b/vendor/luajit/src/lj_frame.h @@ -1,6 +1,6 @@ /* ** Stack frames. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_FRAME_H @@ -86,7 +86,11 @@ enum { #define CFRAME_OFS_ERRF (5*4) #define CFRAME_OFS_NRES (4*4) #define CFRAME_OFS_MULTRES (1*4) +#if LJ_NO_UNWIND +#define CFRAME_SIZE (12*8) +#else #define CFRAME_SIZE (10*8) +#endif #define CFRAME_SIZE_JIT (CFRAME_SIZE + 16) #define CFRAME_SHIFT_MULTRES 0 #endif diff --git a/vendor/luajit/src/lj_func.c b/vendor/luajit/src/lj_func.c index eb8a9dbbf..639dad876 100644 --- a/vendor/luajit/src/lj_func.c +++ b/vendor/luajit/src/lj_func.c @@ -1,6 +1,6 @@ /* ** Function handling (prototypes, functions and upvalues). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h @@ -140,7 +140,9 @@ GCfunc *lj_func_newL_empty(lua_State *L, GCproto *pt, GCtab *env) /* NOBARRIER: The GCfunc is new (marked white). */ for (i = 0; i < nuv; i++) { GCupval *uv = func_emptyuv(L); - uv->dhash = (uint32_t)(uintptr_t)pt ^ ((uint32_t)proto_uv(pt)[i] << 24); + int32_t v = proto_uv(pt)[i]; + uv->immutable = ((v / PROTO_UV_IMMUTABLE) & 1); + uv->dhash = (uint32_t)(uintptr_t)pt ^ (v << 24); setgcref(fn->l.uvptr[i], obj2gco(uv)); } fn->l.nupvalues = (uint8_t)nuv; diff --git a/vendor/luajit/src/lj_func.h b/vendor/luajit/src/lj_func.h index a6e534e77..901751b98 100644 --- a/vendor/luajit/src/lj_func.h +++ b/vendor/luajit/src/lj_func.h @@ -1,6 +1,6 @@ /* ** Function handling (prototypes, functions and upvalues). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_FUNC_H diff --git a/vendor/luajit/src/lj_gc.c b/vendor/luajit/src/lj_gc.c index b498abaa8..a5d32ea35 100644 --- a/vendor/luajit/src/lj_gc.c +++ b/vendor/luajit/src/lj_gc.c @@ -1,6 +1,6 @@ /* ** Garbage collector. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h @@ -168,12 +168,19 @@ static int gc_traverse_tab(global_State *g, GCtab *t) while ((c = *modestr++)) { if (c == 'k') weak |= LJ_GC_WEAKKEY; else if (c == 'v') weak |= LJ_GC_WEAKVAL; - else if (c == 'K') weak = (int)(~0u & ~LJ_GC_WEAKVAL); } - if (weak > 0) { /* Weak tables are cleared in the atomic phase. */ - t->marked = (uint8_t)((t->marked & ~LJ_GC_WEAK) | weak); - setgcrefr(t->gclist, g->gc.weak); - setgcref(g->gc.weak, obj2gco(t)); + if (weak) { /* Weak tables are cleared in the atomic phase. */ +#if LJ_HASFFI + CTState *cts = ctype_ctsG(g); + if (cts && cts->finalizer == t) { + weak = (int)(~0u & ~LJ_GC_WEAKVAL); + } else +#endif + { + t->marked = (uint8_t)((t->marked & ~LJ_GC_WEAK) | weak); + setgcrefr(t->gclist, g->gc.weak); + setgcref(g->gc.weak, obj2gco(t)); + } } } if (weak == LJ_GC_WEAK) /* Nothing to mark if both keys/values are weak. */ @@ -307,7 +314,7 @@ static size_t propagatemark(global_State *g) if (gc_traverse_tab(g, t) > 0) black2gray(o); /* Keep weak tables gray. */ return sizeof(GCtab) + sizeof(TValue) * t->asize + - sizeof(Node) * (t->hmask + 1); + (t->hmask ? sizeof(Node) * (t->hmask + 1) : 0); } else if (LJ_LIKELY(gct == ~LJ_TFUNC)) { GCfunc *fn = gco2func(o); gc_traverse_func(g, fn); diff --git a/vendor/luajit/src/lj_gc.h b/vendor/luajit/src/lj_gc.h index ba061bc5d..57ac7147b 100644 --- a/vendor/luajit/src/lj_gc.h +++ b/vendor/luajit/src/lj_gc.h @@ -1,6 +1,6 @@ /* ** Garbage collector. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_GC_H diff --git a/vendor/luajit/src/lj_gdbjit.c b/vendor/luajit/src/lj_gdbjit.c index d3f3e6119..eeb017bb8 100644 --- a/vendor/luajit/src/lj_gdbjit.c +++ b/vendor/luajit/src/lj_gdbjit.c @@ -1,6 +1,6 @@ /* ** Client for the GDB JIT API. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_gdbjit_c diff --git a/vendor/luajit/src/lj_gdbjit.h b/vendor/luajit/src/lj_gdbjit.h index 49c586301..bbaa1568c 100644 --- a/vendor/luajit/src/lj_gdbjit.h +++ b/vendor/luajit/src/lj_gdbjit.h @@ -1,6 +1,6 @@ /* ** Client for the GDB JIT API. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_GDBJIT_H diff --git a/vendor/luajit/src/lj_ir.c b/vendor/luajit/src/lj_ir.c index 439f3fc34..1e4860df6 100644 --- a/vendor/luajit/src/lj_ir.c +++ b/vendor/luajit/src/lj_ir.c @@ -1,6 +1,6 @@ /* ** SSA IR (Intermediate Representation) emitter. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_ir_c diff --git a/vendor/luajit/src/lj_ir.h b/vendor/luajit/src/lj_ir.h index 8126482e8..ded3e0eb6 100644 --- a/vendor/luajit/src/lj_ir.h +++ b/vendor/luajit/src/lj_ir.h @@ -1,6 +1,6 @@ /* ** SSA IR (Intermediate Representation) format. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_IR_H diff --git a/vendor/luajit/src/lj_ircall.h b/vendor/luajit/src/lj_ircall.h index 893dac2f8..44afde3ae 100644 --- a/vendor/luajit/src/lj_ircall.h +++ b/vendor/luajit/src/lj_ircall.h @@ -1,6 +1,6 @@ /* ** IR CALL* instruction definitions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_IRCALL_H @@ -86,12 +86,6 @@ typedef struct CCallInfo { #define IRCALLCOND_FFI32(x) NULL #endif -#if LJ_TARGET_X86 -#define CCI_RANDFPR 0 /* Clang on OSX/x86 is overzealous. */ -#else -#define CCI_RANDFPR CCI_NOFPRCLOBBER -#endif - #if LJ_SOFTFP #define ARG1_FP 2 /* Treat as 2 32 bit arguments. */ #else @@ -118,7 +112,7 @@ typedef struct CCallInfo { _(ANY, lj_gc_step_jit, 2, FS, NIL, CCI_L) \ _(ANY, lj_gc_barrieruv, 2, FS, NIL, 0) \ _(ANY, lj_mem_newgco, 2, FS, P32, CCI_L) \ - _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64|CCI_RANDFPR)\ + _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64) \ _(ANY, lj_vm_modi, 2, FN, INT, 0) \ _(ANY, sinh, ARG1_FP, N, NUM, 0) \ _(ANY, cosh, ARG1_FP, N, NUM, 0) \ diff --git a/vendor/luajit/src/lj_iropt.h b/vendor/luajit/src/lj_iropt.h index 4e424e700..b5081e069 100644 --- a/vendor/luajit/src/lj_iropt.h +++ b/vendor/luajit/src/lj_iropt.h @@ -1,6 +1,6 @@ /* ** Common header for IR emitter and optimizations. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_IROPT_H @@ -142,8 +142,8 @@ LJ_FUNC TRef LJ_FASTCALL lj_opt_narrow_cindex(jit_State *J, TRef key); LJ_FUNC TRef lj_opt_narrow_arith(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc, IROp op); LJ_FUNC TRef lj_opt_narrow_unm(jit_State *J, TRef rc, TValue *vc); -LJ_FUNC TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc, TValue *vc); -LJ_FUNC TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vc); +LJ_FUNC TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc); +LJ_FUNC TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc); LJ_FUNC IRType lj_opt_narrow_forl(jit_State *J, cTValue *forbase); /* Optimization passes. */ diff --git a/vendor/luajit/src/lj_jit.h b/vendor/luajit/src/lj_jit.h index eb7654770..a2e8fd922 100644 --- a/vendor/luajit/src/lj_jit.h +++ b/vendor/luajit/src/lj_jit.h @@ -1,6 +1,6 @@ /* ** Common definitions for the JIT compiler. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_JIT_H diff --git a/vendor/luajit/src/lj_lex.c b/vendor/luajit/src/lj_lex.c index e1dc3cdfd..366031680 100644 --- a/vendor/luajit/src/lj_lex.c +++ b/vendor/luajit/src/lj_lex.c @@ -1,6 +1,6 @@ /* ** Lexical analyzer. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_lex.h b/vendor/luajit/src/lj_lex.h index fe0176864..41c03f934 100644 --- a/vendor/luajit/src/lj_lex.h +++ b/vendor/luajit/src/lj_lex.h @@ -1,6 +1,6 @@ /* ** Lexical analyzer. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_LEX_H diff --git a/vendor/luajit/src/lj_lib.c b/vendor/luajit/src/lj_lib.c index 856685ee3..a1bb6a2a9 100644 --- a/vendor/luajit/src/lj_lib.c +++ b/vendor/luajit/src/lj_lib.c @@ -1,6 +1,6 @@ /* ** Library function support. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_lib_c diff --git a/vendor/luajit/src/lj_lib.h b/vendor/luajit/src/lj_lib.h index 9320f34fd..aa8740766 100644 --- a/vendor/luajit/src/lj_lib.h +++ b/vendor/luajit/src/lj_lib.h @@ -1,6 +1,6 @@ /* ** Library function support. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_LIB_H diff --git a/vendor/luajit/src/lj_load.c b/vendor/luajit/src/lj_load.c index ff7b85117..20be8ebe3 100644 --- a/vendor/luajit/src/lj_load.c +++ b/vendor/luajit/src/lj_load.c @@ -1,6 +1,6 @@ /* ** Load and dump code. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include diff --git a/vendor/luajit/src/lj_mcode.c b/vendor/luajit/src/lj_mcode.c index d95ebeb1f..f0a1f6996 100644 --- a/vendor/luajit/src/lj_mcode.c +++ b/vendor/luajit/src/lj_mcode.c @@ -1,6 +1,6 @@ /* ** Machine code management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_mcode_c @@ -204,8 +204,8 @@ static void mcode_protect(jit_State *J, int prot) /* -- MCode area allocation ----------------------------------------------- */ -#if LJ_TARGET_X64 -#define mcode_validptr(p) ((p) && (uintptr_t)(p) < (uintptr_t)1<<47) +#if LJ_64 +#define mcode_validptr(p) (p) #else #define mcode_validptr(p) ((p) && (uintptr_t)(p) < 0xffff0000) #endif @@ -230,7 +230,8 @@ static void *mcode_alloc(jit_State *J, size_t sz) /* First try a contiguous area below the last one. */ uintptr_t hint = J->mcarea ? (uintptr_t)J->mcarea - sz : 0; int i; - for (i = 0; i < 32; i++) { /* 32 attempts ought to be enough ... */ + /* Limit probing iterations, depending on the available pool size. */ + for (i = 0; i < LJ_TARGET_JUMPRANGE; i++) { if (mcode_validptr(hint)) { void *p = mcode_alloc_at(J, hint, sz, MCPROT_GEN); @@ -239,11 +240,11 @@ static void *mcode_alloc(jit_State *J, size_t sz) return p; if (p) mcode_free(J, p, sz); /* Free badly placed area. */ } - /* Next try probing pseudo-random addresses. */ + /* Next try probing 64K-aligned pseudo-random addresses. */ do { - hint = (0x78fb ^ LJ_PRNG_BITS(J, 15)) << 16; /* 64K aligned. */ - } while (!(hint + sz < range)); - hint = target + hint - (range>>1); + hint = LJ_PRNG_BITS(J, LJ_TARGET_JUMPRANGE-16) << 16; + } while (!(hint + sz < range+range)); + hint = target + hint - range; } lj_trace_err(J, LJ_TRERR_MCODEAL); /* Give up. OS probably ignores hints? */ return NULL; diff --git a/vendor/luajit/src/lj_mcode.h b/vendor/luajit/src/lj_mcode.h index ee6045234..f0847e931 100644 --- a/vendor/luajit/src/lj_mcode.h +++ b/vendor/luajit/src/lj_mcode.h @@ -1,6 +1,6 @@ /* ** Machine code management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_MCODE_H diff --git a/vendor/luajit/src/lj_meta.c b/vendor/luajit/src/lj_meta.c index faaaf7026..10e349842 100644 --- a/vendor/luajit/src/lj_meta.c +++ b/vendor/luajit/src/lj_meta.c @@ -1,6 +1,6 @@ /* ** Metamethod handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_meta.h b/vendor/luajit/src/lj_meta.h index 2c1ad0dd9..e061d99eb 100644 --- a/vendor/luajit/src/lj_meta.h +++ b/vendor/luajit/src/lj_meta.h @@ -1,6 +1,6 @@ /* ** Metamethod handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_META_H diff --git a/vendor/luajit/src/lj_obj.c b/vendor/luajit/src/lj_obj.c index 7fab714e5..4779d26df 100644 --- a/vendor/luajit/src/lj_obj.c +++ b/vendor/luajit/src/lj_obj.c @@ -1,6 +1,6 @@ /* ** Miscellaneous object handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_obj_c diff --git a/vendor/luajit/src/lj_obj.h b/vendor/luajit/src/lj_obj.h index 6e8381cba..e70b00322 100644 --- a/vendor/luajit/src/lj_obj.h +++ b/vendor/luajit/src/lj_obj.h @@ -1,6 +1,6 @@ /* ** LuaJIT VM tags, values and objects. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_opt_dce.c b/vendor/luajit/src/lj_opt_dce.c index 7f1faafe6..2417f3242 100644 --- a/vendor/luajit/src/lj_opt_dce.c +++ b/vendor/luajit/src/lj_opt_dce.c @@ -1,6 +1,6 @@ /* ** DCE: Dead Code Elimination. Pre-LOOP only -- ASM already performs DCE. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_dce_c diff --git a/vendor/luajit/src/lj_opt_fold.c b/vendor/luajit/src/lj_opt_fold.c index d00fdd56f..3d0e35a6f 100644 --- a/vendor/luajit/src/lj_opt_fold.c +++ b/vendor/luajit/src/lj_opt_fold.c @@ -2,7 +2,7 @@ ** FOLD: Constant Folding, Algebraic Simplifications and Reassociation. ** ABCelim: Array Bounds Check Elimination. ** CSE: Common-Subexpression Elimination. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_fold_c @@ -444,14 +444,14 @@ LJFOLDF(kfold_int64comp) #if LJ_HASFFI uint64_t a = ir_k64(fleft)->u64, b = ir_k64(fright)->u64; switch ((IROp)fins->o) { - case IR_LT: return CONDFOLD(a < b); - case IR_GE: return CONDFOLD(a >= b); - case IR_LE: return CONDFOLD(a <= b); - case IR_GT: return CONDFOLD(a > b); - case IR_ULT: return CONDFOLD((uint64_t)a < (uint64_t)b); - case IR_UGE: return CONDFOLD((uint64_t)a >= (uint64_t)b); - case IR_ULE: return CONDFOLD((uint64_t)a <= (uint64_t)b); - case IR_UGT: return CONDFOLD((uint64_t)a > (uint64_t)b); + case IR_LT: return CONDFOLD((int64_t)a < (int64_t)b); + case IR_GE: return CONDFOLD((int64_t)a >= (int64_t)b); + case IR_LE: return CONDFOLD((int64_t)a <= (int64_t)b); + case IR_GT: return CONDFOLD((int64_t)a > (int64_t)b); + case IR_ULT: return CONDFOLD(a < b); + case IR_UGE: return CONDFOLD(a >= b); + case IR_ULE: return CONDFOLD(a <= b); + case IR_UGT: return CONDFOLD(a > b); default: lua_assert(0); return FAILFOLD; } #else diff --git a/vendor/luajit/src/lj_opt_loop.c b/vendor/luajit/src/lj_opt_loop.c index b7d1923ed..36317b346 100644 --- a/vendor/luajit/src/lj_opt_loop.c +++ b/vendor/luajit/src/lj_opt_loop.c @@ -1,6 +1,6 @@ /* ** LOOP: Loop Optimizations. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_loop_c diff --git a/vendor/luajit/src/lj_opt_mem.c b/vendor/luajit/src/lj_opt_mem.c index a4d96fc0f..9f7140562 100644 --- a/vendor/luajit/src/lj_opt_mem.c +++ b/vendor/luajit/src/lj_opt_mem.c @@ -3,7 +3,7 @@ ** AA: Alias Analysis using high-level semantic disambiguation. ** FWD: Load Forwarding (L2L) + Store Forwarding (S2L). ** DSE: Dead-Store Elimination. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_mem_c diff --git a/vendor/luajit/src/lj_opt_narrow.c b/vendor/luajit/src/lj_opt_narrow.c index 58b3763db..73365953b 100644 --- a/vendor/luajit/src/lj_opt_narrow.c +++ b/vendor/luajit/src/lj_opt_narrow.c @@ -1,7 +1,7 @@ /* ** NARROW: Narrowing of numbers to integers (double to int32_t). ** STRIPOV: Stripping of overflow checks. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_narrow_c @@ -205,7 +205,6 @@ typedef struct NarrowConv { jit_State *J; /* JIT compiler state. */ NarrowIns *sp; /* Current stack pointer. */ NarrowIns *maxsp; /* Maximum stack pointer minus redzone. */ - int lim; /* Limit on the number of emitted conversions. */ IRRef mode; /* Conversion mode (IRCONV_*). */ IRType t; /* Destination type: IRT_INT or IRT_I64. */ NarrowIns stack[NARROW_MAX_STACK]; /* Stack holding stack-machine code. */ @@ -342,7 +341,7 @@ static int narrow_conv_backprop(NarrowConv *nc, IRRef ref, int depth) NarrowIns *savesp = nc->sp; int count = narrow_conv_backprop(nc, ir->op1, depth); count += narrow_conv_backprop(nc, ir->op2, depth); - if (count <= nc->lim) { /* Limit total number of conversions. */ + if (count <= 1) { /* Limit total number of conversions. */ *nc->sp++ = NARROWINS(IRT(ir->o, nc->t), ref); return count; } @@ -414,12 +413,10 @@ TRef LJ_FASTCALL lj_opt_narrow_convert(jit_State *J) nc.t = irt_type(fins->t); if (fins->o == IR_TOBIT) { nc.mode = IRCONV_TOBIT; /* Used only in the backpropagation cache. */ - nc.lim = 2; /* TOBIT can use a more optimistic rule. */ } else { nc.mode = fins->op2; - nc.lim = 1; } - if (narrow_conv_backprop(&nc, fins->op1, 0) <= nc.lim) + if (narrow_conv_backprop(&nc, fins->op1, 0) <= 1) return narrow_conv_emit(J, &nc); } return NEXTFOLD; @@ -504,8 +501,7 @@ TRef LJ_FASTCALL lj_opt_narrow_cindex(jit_State *J, TRef tr) { lua_assert(tref_isnumber(tr)); if (tref_isnum(tr)) - return emitir(IRT(IR_CONV, IRT_INTP), tr, - (IRT_INTP<<5)|IRT_NUM|IRCONV_TRUNC|IRCONV_ANY); + return emitir(IRT(IR_CONV, IRT_INTP), tr, (IRT_INTP<<5)|IRT_NUM|IRCONV_ANY); /* Undefined overflow semantics allow stripping of ADDOV, SUBOV and MULOV. */ return narrow_stripov(J, tr, IR_MULOV, LJ_64 ? ((IRT_INTP<<5)|IRT_INT|IRCONV_SEXT) : @@ -521,18 +517,24 @@ static int numisint(lua_Number n) return (n == (lua_Number)lj_num2int(n)); } +/* Convert string to number. Error out for non-numeric string values. */ +static TRef conv_str_tonum(jit_State *J, TRef tr, TValue *o) +{ + if (tref_isstr(tr)) { + tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); + /* Would need an inverted STRTO for this rare and useless case. */ + if (!lj_strscan_num(strV(o), o)) /* Convert in-place. Value used below. */ + lj_trace_err(J, LJ_TRERR_BADTYPE); /* Punt if non-numeric. */ + } + return tr; +} + /* Narrowing of arithmetic operations. */ TRef lj_opt_narrow_arith(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc, IROp op) { - if (tref_isstr(rb)) { - rb = emitir(IRTG(IR_STRTO, IRT_NUM), rb, 0); - lj_strscan_num(strV(vb), vb); - } - if (tref_isstr(rc)) { - rc = emitir(IRTG(IR_STRTO, IRT_NUM), rc, 0); - lj_strscan_num(strV(vc), vc); - } + rb = conv_str_tonum(J, rb, vb); + rc = conv_str_tonum(J, rc, vc); /* Must not narrow MUL in non-DUALNUM variant, because it loses -0. */ if ((op >= IR_ADD && op <= (LJ_DUALNUM ? IR_MUL : IR_SUB)) && tref_isinteger(rb) && tref_isinteger(rc) && @@ -547,10 +549,7 @@ TRef lj_opt_narrow_arith(jit_State *J, TRef rb, TRef rc, /* Narrowing of unary minus operator. */ TRef lj_opt_narrow_unm(jit_State *J, TRef rc, TValue *vc) { - if (tref_isstr(rc)) { - rc = emitir(IRTG(IR_STRTO, IRT_NUM), rc, 0); - lj_strscan_num(strV(vc), vc); - } + rc = conv_str_tonum(J, rc, vc); if (tref_isinteger(rc)) { if ((uint32_t)numberVint(vc) != 0x80000000u) return emitir(IRTGI(IR_SUBOV), lj_ir_kint(J, 0), rc); @@ -560,11 +559,11 @@ TRef lj_opt_narrow_unm(jit_State *J, TRef rc, TValue *vc) } /* Narrowing of modulo operator. */ -TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc, TValue *vc) +TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc) { TRef tmp; - if (tvisstr(vc) && !lj_strscan_num(strV(vc), vc)) - lj_trace_err(J, LJ_TRERR_BADTYPE); + rb = conv_str_tonum(J, rb, vb); + rc = conv_str_tonum(J, rc, vc); if ((LJ_DUALNUM || (J->flags & JIT_F_OPT_NARROW)) && tref_isinteger(rb) && tref_isinteger(rc) && (tvisint(vc) ? intV(vc) != 0 : !tviszero(vc))) { @@ -581,10 +580,11 @@ TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc, TValue *vc) } /* Narrowing of power operator or math.pow. */ -TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vc) +TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vb, TValue *vc) { - if (tvisstr(vc) && !lj_strscan_num(strV(vc), vc)) - lj_trace_err(J, LJ_TRERR_BADTYPE); + rb = conv_str_tonum(J, rb, vb); + rb = lj_ir_tonum(J, rb); /* Left arg is always treated as an FP number. */ + rc = conv_str_tonum(J, rc, vc); /* Narrowing must be unconditional to preserve (-x)^i semantics. */ if (tvisint(vc) || numisint(numV(vc))) { int checkrange = 0; @@ -595,8 +595,6 @@ TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vc) checkrange = 1; } if (!tref_isinteger(rc)) { - if (tref_isstr(rc)) - rc = emitir(IRTG(IR_STRTO, IRT_NUM), rc, 0); /* Guarded conversion to integer! */ rc = emitir(IRTGI(IR_CONV), rc, IRCONV_INT_NUM|IRCONV_CHECK); } diff --git a/vendor/luajit/src/lj_opt_sink.c b/vendor/luajit/src/lj_opt_sink.c index a98e9dfe3..6a00d04c8 100644 --- a/vendor/luajit/src/lj_opt_sink.c +++ b/vendor/luajit/src/lj_opt_sink.c @@ -1,6 +1,6 @@ /* ** SINK: Allocation Sinking and Store Sinking. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_sink_c @@ -153,10 +153,9 @@ static void sink_remark_phi(jit_State *J) remark = 0; for (ir = IR(J->cur.nins-1); ir->o == IR_PHI; ir--) { IRIns *irl = IR(ir->op1), *irr = IR(ir->op2); - if (((irl->t.irt ^ irr->t.irt) & IRT_MARK)) - remark = 1; - else if (irl->prev == irr->prev) + if (!((irl->t.irt ^ irr->t.irt) & IRT_MARK) && irl->prev == irr->prev) continue; + remark |= (~(irl->t.irt & irr->t.irt) & IRT_MARK); irt_setmark(IR(ir->op1)->t); irt_setmark(IR(ir->op2)->t); } diff --git a/vendor/luajit/src/lj_opt_split.c b/vendor/luajit/src/lj_opt_split.c index 1cee5093b..8d7cd4c25 100644 --- a/vendor/luajit/src/lj_opt_split.c +++ b/vendor/luajit/src/lj_opt_split.c @@ -1,6 +1,6 @@ /* ** SPLIT: Split 64 bit IR instructions into 32 bit IR instructions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_opt_split_c @@ -471,7 +471,8 @@ static void split_ir(jit_State *J) } #endif else if (st == IRT_I64 || st == IRT_U64) { /* 64/64 bit cast. */ - /* Drop cast, since assembler doesn't care. */ + /* Drop cast, since assembler doesn't care. But fwd both parts. */ + hi = hiref; goto fwdlo; } else if ((ir->op2 & IRCONV_SEXT)) { /* Sign-extend to 64 bit. */ IRRef k31 = lj_ir_kint(J, 31); diff --git a/vendor/luajit/src/lj_parse.c b/vendor/luajit/src/lj_parse.c index abfac3c0c..9e5976f71 100644 --- a/vendor/luajit/src/lj_parse.c +++ b/vendor/luajit/src/lj_parse.c @@ -1,6 +1,6 @@ /* ** Lua parser (source code -> bytecode). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h @@ -1280,12 +1280,14 @@ static void fscope_end(FuncState *fs) MSize idx = gola_new(ls, NAME_BREAK, VSTACK_LABEL, fs->pc); ls->vtop = idx; /* Drop break label immediately. */ gola_resolve(ls, bl, idx); + } else { /* Need the fixup step to propagate the breaks. */ + gola_fixup(ls, bl); return; - } /* else: need the fixup step to propagate the breaks. */ - } else if (!(bl->flags & FSCOPE_GOLA)) { - return; + } + } + if ((bl->flags & FSCOPE_GOLA)) { + gola_fixup(ls, bl); } - gola_fixup(ls, bl); } /* Mark scope as having an upvalue. */ @@ -2207,6 +2209,8 @@ static void assign_adjust(LexState *ls, BCReg nvars, BCReg nexps, ExpDesc *e) bcemit_nil(fs, reg, (BCReg)extra); } } + if (nexps > nvars) + ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */ } /* Recursively parse assignment statement. */ @@ -2240,8 +2244,6 @@ static void parse_assignment(LexState *ls, LHSVarList *lh, BCReg nvars) return; } assign_adjust(ls, nvars, nexps, &e); - if (nexps > nvars) - ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */ } /* Assign RHS to LHS and recurse downwards. */ expr_init(&e, VNONRELOC, ls->fs->freereg-1); diff --git a/vendor/luajit/src/lj_parse.h b/vendor/luajit/src/lj_parse.h index dc4fd405d..ceeab6994 100644 --- a/vendor/luajit/src/lj_parse.h +++ b/vendor/luajit/src/lj_parse.h @@ -1,6 +1,6 @@ /* ** Lua parser (source code -> bytecode). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_PARSE_H diff --git a/vendor/luajit/src/lj_record.c b/vendor/luajit/src/lj_record.c index 843108c85..7b5727648 100644 --- a/vendor/luajit/src/lj_record.c +++ b/vendor/luajit/src/lj_record.c @@ -1,6 +1,6 @@ /* ** Trace recorder (bytecode -> SSA IR). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_record_c @@ -687,7 +687,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) (void)getslot(J, rbase+i); /* Ensure all results have a reference. */ while (frame_ispcall(frame)) { /* Immediately resolve pcall() returns. */ BCReg cbase = (BCReg)frame_delta(frame); - if (--J->framedepth < 0) + if (--J->framedepth <= 0) lj_trace_err(J, LJ_TRERR_NYIRETL); lua_assert(J->baseslot > 1); gotresults++; @@ -1343,13 +1343,17 @@ noconstify: /* Note: this effectively limits LJ_MAX_UPVAL to 127. */ uv = (uv << 8) | (hashrot(uvp->dhash, uvp->dhash + HASH_BIAS) & 0xff); if (!uvp->closed) { + uref = tref_ref(emitir(IRTG(IR_UREFO, IRT_P32), fn, uv)); /* In current stack? */ if (uvval(uvp) >= tvref(J->L->stack) && uvval(uvp) < tvref(J->L->maxstack)) { int32_t slot = (int32_t)(uvval(uvp) - (J->L->base - J->baseslot)); if (slot >= 0) { /* Aliases an SSA slot? */ + emitir(IRTG(IR_EQ, IRT_P32), + REF_BASE, + emitir(IRT(IR_ADD, IRT_P32), uref, + lj_ir_kint(J, (slot - 1) * -8))); slot -= (int32_t)J->baseslot; /* Note: slot number may be negative! */ - /* NYI: add IR to guard that it's still aliasing the same slot. */ if (val == 0) { return getslot(J, slot); } else { @@ -1359,7 +1363,9 @@ noconstify: } } } - uref = tref_ref(emitir(IRTG(IR_UREFO, IRT_P32), fn, uv)); + emitir(IRTG(IR_UGT, IRT_P32), + emitir(IRT(IR_SUB, IRT_P32), uref, REF_BASE), + lj_ir_kint(J, (J->baseslot + J->maxslot) * 8)); } else { needbarrier = 1; uref = tref_ref(emitir(IRTG(IR_UREFC, IRT_P32), fn, uv)); @@ -1490,8 +1496,11 @@ static int select_detect(jit_State *J) BCIns ins = J->pc[1]; if (bc_op(ins) == BC_CALLM && bc_b(ins) == 2 && bc_c(ins) == 1) { cTValue *func = &J->L->base[bc_a(ins)]; - if (tvisfunc(func) && funcV(func)->c.ffid == FF_select) + if (tvisfunc(func) && funcV(func)->c.ffid == FF_select) { + TRef kfunc = lj_ir_kfunc(J, funcV(func)); + emitir(IRTG(IR_EQ, IRT_FUNC), getslot(J, bc_a(ins)), kfunc); return 1; + } } return 0; } @@ -1881,14 +1890,14 @@ void lj_record_ins(jit_State *J) case BC_MODVN: case BC_MODVV: recmod: if (tref_isnumber_str(rb) && tref_isnumber_str(rc)) - rc = lj_opt_narrow_mod(J, rb, rc, rcv); + rc = lj_opt_narrow_mod(J, rb, rc, rbv, rcv); else rc = rec_mm_arith(J, &ix, MM_mod); break; case BC_POW: if (tref_isnumber_str(rb) && tref_isnumber_str(rc)) - rc = lj_opt_narrow_pow(J, lj_ir_tonum(J, rb), rc, rcv); + rc = lj_opt_narrow_pow(J, rb, rc, rbv, rcv); else rc = rec_mm_arith(J, &ix, MM_pow); break; diff --git a/vendor/luajit/src/lj_record.h b/vendor/luajit/src/lj_record.h index c9f4882a9..2bbbde5be 100644 --- a/vendor/luajit/src/lj_record.h +++ b/vendor/luajit/src/lj_record.h @@ -1,6 +1,6 @@ /* ** Trace recorder (bytecode -> SSA IR). -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_RECORD_H diff --git a/vendor/luajit/src/lj_snap.c b/vendor/luajit/src/lj_snap.c index 5c870bafd..e891f7a9b 100644 --- a/vendor/luajit/src/lj_snap.c +++ b/vendor/luajit/src/lj_snap.c @@ -1,6 +1,6 @@ /* ** Snapshot handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_snap_c @@ -26,9 +26,6 @@ #include "lj_cdata.h" #endif -/* Some local macros to save typing. Undef'd at the end. */ -#define IR(ref) (&J->cur.ir[(ref)]) - /* Pass IR on to next optimization in chain (FOLD). */ #define emitir(ot, a, b) (lj_ir_set(J, (ot), (a), (b)), lj_opt_fold(J)) @@ -73,7 +70,7 @@ static MSize snapshot_slots(jit_State *J, SnapEntry *map, BCReg nslots) IRRef ref = tref_ref(tr); if (ref) { SnapEntry sn = SNAP_TR(s, tr); - IRIns *ir = IR(ref); + IRIns *ir = &J->cur.ir[ref]; if (!(sn & (SNAP_CONT|SNAP_FRAME)) && ir->o == IR_SLOAD && ir->op1 == s && ref > retf) { /* No need to snapshot unmodified non-inherited slots. */ @@ -404,24 +401,24 @@ static TRef snap_pref(jit_State *J, GCtrace *T, SnapEntry *map, MSize nmax, } /* Check whether a sunk store corresponds to an allocation. Slow path. */ -static int snap_sunk_store2(jit_State *J, IRIns *ira, IRIns *irs) +static int snap_sunk_store2(GCtrace *T, IRIns *ira, IRIns *irs) { if (irs->o == IR_ASTORE || irs->o == IR_HSTORE || irs->o == IR_FSTORE || irs->o == IR_XSTORE) { - IRIns *irk = IR(irs->op1); + IRIns *irk = &T->ir[irs->op1]; if (irk->o == IR_AREF || irk->o == IR_HREFK) - irk = IR(irk->op1); - return (IR(irk->op1) == ira); + irk = &T->ir[irk->op1]; + return (&T->ir[irk->op1] == ira); } return 0; } /* Check whether a sunk store corresponds to an allocation. Fast path. */ -static LJ_AINLINE int snap_sunk_store(jit_State *J, IRIns *ira, IRIns *irs) +static LJ_AINLINE int snap_sunk_store(GCtrace *T, IRIns *ira, IRIns *irs) { if (irs->s != 255) return (ira + irs->s == irs); /* Fast check. */ - return snap_sunk_store2(J, ira, irs); + return snap_sunk_store2(T, ira, irs); } /* Replay snapshot state to setup side trace. */ @@ -484,7 +481,7 @@ void lj_snap_replay(jit_State *J, GCtrace *T) } else { IRIns *irs; for (irs = ir+1; irs < irlast; irs++) - if (irs->r == RID_SINK && snap_sunk_store(J, ir, irs)) { + if (irs->r == RID_SINK && snap_sunk_store(T, ir, irs)) { if (snap_pref(J, T, map, nent, seen, irs->op2) == 0) snap_pref(J, T, map, nent, seen, T->ir[irs->op2].op1); else if ((LJ_SOFTFP || (LJ_32 && LJ_HASFFI)) && @@ -518,13 +515,13 @@ void lj_snap_replay(jit_State *J, GCtrace *T) op2 = emitir_raw(IRT(IR_HIOP, IRT_I64), op2, snap_pref(J, T, map, nent, seen, (ir+1)->op2)); } - J->slot[snap_slot(sn)] = emitir(ir->ot, op1, op2); + J->slot[snap_slot(sn)] = emitir(ir->ot & ~(IRT_MARK|IRT_ISPHI), op1, op2); } else { IRIns *irs; TRef tr = emitir(ir->ot, op1, op2); J->slot[snap_slot(sn)] = tr; for (irs = ir+1; irs < irlast; irs++) - if (irs->r == RID_SINK && snap_sunk_store(J, ir, irs)) { + if (irs->r == RID_SINK && snap_sunk_store(T, ir, irs)) { IRIns *irr = &T->ir[irs->op1]; TRef val, key = irr->op2, tmp = tr; if (irr->o != IR_FREF) { @@ -726,7 +723,7 @@ static void snap_unsink(jit_State *J, GCtrace *T, ExitState *ex, } else { IRIns *irs, *irlast = &T->ir[T->snap[snapno].ref]; for (irs = ir+1; irs < irlast; irs++) - if (irs->r == RID_SINK && snap_sunk_store(J, ir, irs)) { + if (irs->r == RID_SINK && snap_sunk_store(T, ir, irs)) { IRIns *iro = &T->ir[T->ir[irs->op1].op2]; uint8_t *p = (uint8_t *)cd; CTSize szs; @@ -759,7 +756,7 @@ static void snap_unsink(jit_State *J, GCtrace *T, ExitState *ex, settabV(J->L, o, t); irlast = &T->ir[T->snap[snapno].ref]; for (irs = ir+1; irs < irlast; irs++) - if (irs->r == RID_SINK && snap_sunk_store(J, ir, irs)) { + if (irs->r == RID_SINK && snap_sunk_store(T, ir, irs)) { IRIns *irk = &T->ir[irs->op1]; TValue tmp, *val; lua_assert(irs->o == IR_ASTORE || irs->o == IR_HSTORE || @@ -859,7 +856,6 @@ const BCIns *lj_snap_restore(jit_State *J, void *exptr) return pc; } -#undef IR #undef emitir_raw #undef emitir diff --git a/vendor/luajit/src/lj_snap.h b/vendor/luajit/src/lj_snap.h index 9a125be7f..2c9ae3d64 100644 --- a/vendor/luajit/src/lj_snap.h +++ b/vendor/luajit/src/lj_snap.h @@ -1,6 +1,6 @@ /* ** Snapshot handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_SNAP_H diff --git a/vendor/luajit/src/lj_state.c b/vendor/luajit/src/lj_state.c index e654afaeb..f89135198 100644 --- a/vendor/luajit/src/lj_state.c +++ b/vendor/luajit/src/lj_state.c @@ -1,6 +1,6 @@ /* ** State and stack handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_state.h b/vendor/luajit/src/lj_state.h index 687889a26..d5b476b2f 100644 --- a/vendor/luajit/src/lj_state.h +++ b/vendor/luajit/src/lj_state.h @@ -1,6 +1,6 @@ /* ** State and stack handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_STATE_H diff --git a/vendor/luajit/src/lj_str.c b/vendor/luajit/src/lj_str.c index ca60bccb7..aae6ec5b5 100644 --- a/vendor/luajit/src/lj_str.c +++ b/vendor/luajit/src/lj_str.c @@ -1,6 +1,6 @@ /* ** String handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_str.h b/vendor/luajit/src/lj_str.h index 99697051d..be04a975d 100644 --- a/vendor/luajit/src/lj_str.h +++ b/vendor/luajit/src/lj_str.h @@ -1,6 +1,6 @@ /* ** String handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_STR_H diff --git a/vendor/luajit/src/lj_strscan.c b/vendor/luajit/src/lj_strscan.c index 568f647d6..f1e34a3df 100644 --- a/vendor/luajit/src/lj_strscan.c +++ b/vendor/luajit/src/lj_strscan.c @@ -1,6 +1,6 @@ /* ** String scanning. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include diff --git a/vendor/luajit/src/lj_strscan.h b/vendor/luajit/src/lj_strscan.h index 776068936..6fb0dda08 100644 --- a/vendor/luajit/src/lj_strscan.h +++ b/vendor/luajit/src/lj_strscan.h @@ -1,6 +1,6 @@ /* ** String scanning. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_STRSCAN_H diff --git a/vendor/luajit/src/lj_tab.c b/vendor/luajit/src/lj_tab.c index a8062db7c..50f447e88 100644 --- a/vendor/luajit/src/lj_tab.c +++ b/vendor/luajit/src/lj_tab.c @@ -1,6 +1,6 @@ /* ** Table handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/lj_tab.h b/vendor/luajit/src/lj_tab.h index f0d228eb2..36ce7cdd5 100644 --- a/vendor/luajit/src/lj_tab.h +++ b/vendor/luajit/src/lj_tab.h @@ -1,6 +1,6 @@ /* ** Table handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TAB_H diff --git a/vendor/luajit/src/lj_target.h b/vendor/luajit/src/lj_target.h index 1a242325f..53bfa6bf9 100644 --- a/vendor/luajit/src/lj_target.h +++ b/vendor/luajit/src/lj_target.h @@ -1,6 +1,6 @@ /* ** Definitions for target CPU. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TARGET_H diff --git a/vendor/luajit/src/lj_target_arm.h b/vendor/luajit/src/lj_target_arm.h index 6d4d0aed0..d02cbf861 100644 --- a/vendor/luajit/src/lj_target_arm.h +++ b/vendor/luajit/src/lj_target_arm.h @@ -1,6 +1,6 @@ /* ** Definitions for ARM CPUs. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TARGET_ARM_H diff --git a/vendor/luajit/src/lj_target_mips.h b/vendor/luajit/src/lj_target_mips.h index 0ab140bf3..bed174b8e 100644 --- a/vendor/luajit/src/lj_target_mips.h +++ b/vendor/luajit/src/lj_target_mips.h @@ -1,6 +1,6 @@ /* ** Definitions for MIPS CPUs. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TARGET_MIPS_H @@ -28,6 +28,7 @@ enum { RID_MAX, RID_ZERO = RID_R0, RID_TMP = RID_RA, + RID_GP = RID_R28, /* Calling conventions. */ RID_RET = RID_R2, @@ -62,10 +63,10 @@ enum { /* -- Register sets ------------------------------------------------------- */ -/* Make use of all registers, except ZERO, TMP, SP, SYS1, SYS2 and JGL. */ +/* Make use of all registers, except ZERO, TMP, SP, SYS1, SYS2, JGL and GP. */ #define RSET_FIXED \ (RID2RSET(RID_ZERO)|RID2RSET(RID_TMP)|RID2RSET(RID_SP)|\ - RID2RSET(RID_SYS1)|RID2RSET(RID_SYS2)|RID2RSET(RID_JGL)) + RID2RSET(RID_SYS1)|RID2RSET(RID_SYS2)|RID2RSET(RID_JGL)|RID2RSET(RID_GP)) #define RSET_GPR (RSET_RANGE(RID_MIN_GPR, RID_MAX_GPR) - RSET_FIXED) #define RSET_FPR \ (RID2RSET(RID_F0)|RID2RSET(RID_F2)|RID2RSET(RID_F4)|RID2RSET(RID_F6)|\ @@ -77,7 +78,7 @@ enum { #define RSET_SCRATCH_GPR \ (RSET_RANGE(RID_R1, RID_R15+1)|\ - RID2RSET(RID_R24)|RID2RSET(RID_R25)|RID2RSET(RID_R28)) + RID2RSET(RID_R24)|RID2RSET(RID_R25)) #define RSET_SCRATCH_FPR \ (RID2RSET(RID_F0)|RID2RSET(RID_F2)|RID2RSET(RID_F4)|RID2RSET(RID_F6)|\ RID2RSET(RID_F8)|RID2RSET(RID_F10)|RID2RSET(RID_F12)|RID2RSET(RID_F14)|\ diff --git a/vendor/luajit/src/lj_target_ppc.h b/vendor/luajit/src/lj_target_ppc.h index 2caeeb044..e57e27dfd 100644 --- a/vendor/luajit/src/lj_target_ppc.h +++ b/vendor/luajit/src/lj_target_ppc.h @@ -1,6 +1,6 @@ /* ** Definitions for PPC CPUs. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TARGET_PPC_H diff --git a/vendor/luajit/src/lj_target_x86.h b/vendor/luajit/src/lj_target_x86.h index d12a1b87c..4426cc8ce 100644 --- a/vendor/luajit/src/lj_target_x86.h +++ b/vendor/luajit/src/lj_target_x86.h @@ -1,6 +1,6 @@ /* ** Definitions for x86 and x64 CPUs. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TARGET_X86_H diff --git a/vendor/luajit/src/lj_trace.c b/vendor/luajit/src/lj_trace.c index e51ec5467..6f8dc1a48 100644 --- a/vendor/luajit/src/lj_trace.c +++ b/vendor/luajit/src/lj_trace.c @@ -1,6 +1,6 @@ /* ** Trace management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_trace_c @@ -117,15 +117,22 @@ static void perftools_addtrace(GCtrace *T) } #endif -/* Save current trace by copying and compacting it. */ -static void trace_save(jit_State *J) +/* Allocate space for copy of trace. */ +static GCtrace *trace_save_alloc(jit_State *J) { size_t sztr = ((sizeof(GCtrace)+7)&~7); size_t szins = (J->cur.nins-J->cur.nk)*sizeof(IRIns); size_t sz = sztr + szins + J->cur.nsnap*sizeof(SnapShot) + J->cur.nsnapmap*sizeof(SnapEntry); - GCtrace *T = lj_mem_newt(J->L, (MSize)sz, GCtrace); + return lj_mem_newt(J->L, (MSize)sz, GCtrace); +} + +/* Save current trace by copying and compacting it. */ +static void trace_save(jit_State *J, GCtrace *T) +{ + size_t sztr = ((sizeof(GCtrace)+7)&~7); + size_t szins = (J->cur.nins-J->cur.nk)*sizeof(IRIns); char *p = (char *)T + sztr; memcpy(T, &J->cur, sizeof(GCtrace)); setgcrefr(T->nextgc, J2G(J)->gc.root); @@ -417,6 +424,7 @@ static void trace_stop(jit_State *J) BCOp op = bc_op(J->cur.startins); GCproto *pt = &gcref(J->cur.startpt)->pt; TraceNo traceno = J->cur.traceno; + GCtrace *T = trace_save_alloc(J); /* Do this first. May throw OOM. */ lua_State *L; switch (op) { @@ -461,7 +469,7 @@ static void trace_stop(jit_State *J) /* Commit new mcode only after all patching is done. */ lj_mcode_commit(J, J->cur.mcode); J->postproc = LJ_POST_NONE; - trace_save(J); + trace_save(J, T); L = J->L; lj_vmevent_send(L, TRACE, diff --git a/vendor/luajit/src/lj_trace.h b/vendor/luajit/src/lj_trace.h index 4fbe5cf25..edc7af0d2 100644 --- a/vendor/luajit/src/lj_trace.h +++ b/vendor/luajit/src/lj_trace.h @@ -1,6 +1,6 @@ /* ** Trace management. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_TRACE_H diff --git a/vendor/luajit/src/lj_traceerr.h b/vendor/luajit/src/lj_traceerr.h index 9bef117ab..f920e5edb 100644 --- a/vendor/luajit/src/lj_traceerr.h +++ b/vendor/luajit/src/lj_traceerr.h @@ -1,6 +1,6 @@ /* ** Trace compiler error messages. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* This file may be included multiple times with different TREDEF macros. */ @@ -23,7 +23,7 @@ TREDEF(BADTYPE, "bad argument type") TREDEF(CJITOFF, "JIT compilation disabled for function") TREDEF(CUNROLL, "call unroll limit reached") TREDEF(DOWNREC, "down-recursion, restarting") -TREDEF(NYICF, "NYI: C function %p") +TREDEF(NYICF, "NYI: C function %s") TREDEF(NYIFF, "NYI: FastFunc %s") TREDEF(NYIFFU, "NYI: unsupported variant of FastFunc %s") TREDEF(NYIRETL, "NYI: return to lower frame") diff --git a/vendor/luajit/src/lj_udata.c b/vendor/luajit/src/lj_udata.c index d401a3d8e..bd0321b83 100644 --- a/vendor/luajit/src/lj_udata.c +++ b/vendor/luajit/src/lj_udata.c @@ -1,6 +1,6 @@ /* ** Userdata handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_udata_c diff --git a/vendor/luajit/src/lj_udata.h b/vendor/luajit/src/lj_udata.h index 676e970f4..f271a42d3 100644 --- a/vendor/luajit/src/lj_udata.h +++ b/vendor/luajit/src/lj_udata.h @@ -1,6 +1,6 @@ /* ** Userdata handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_UDATA_H diff --git a/vendor/luajit/src/lj_vm.h b/vendor/luajit/src/lj_vm.h index 036cabc57..3ffa76bf7 100644 --- a/vendor/luajit/src/lj_vm.h +++ b/vendor/luajit/src/lj_vm.h @@ -1,6 +1,6 @@ /* ** Assembler VM interface definitions. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_VM_H diff --git a/vendor/luajit/src/lj_vmevent.c b/vendor/luajit/src/lj_vmevent.c index 81fe47d4d..7b6d7bf34 100644 --- a/vendor/luajit/src/lj_vmevent.c +++ b/vendor/luajit/src/lj_vmevent.c @@ -1,6 +1,6 @@ /* ** VM event handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #include diff --git a/vendor/luajit/src/lj_vmevent.h b/vendor/luajit/src/lj_vmevent.h index 231e00ecd..050fb4dd2 100644 --- a/vendor/luajit/src/lj_vmevent.h +++ b/vendor/luajit/src/lj_vmevent.h @@ -1,6 +1,6 @@ /* ** VM event handling. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LJ_VMEVENT_H diff --git a/vendor/luajit/src/lj_vmmath.c b/vendor/luajit/src/lj_vmmath.c index 31c6029fc..73fc667f6 100644 --- a/vendor/luajit/src/lj_vmmath.c +++ b/vendor/luajit/src/lj_vmmath.c @@ -1,6 +1,6 @@ /* ** Math helper functions for assembler VM. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #define lj_vmmath_c diff --git a/vendor/luajit/src/ljamalg.c b/vendor/luajit/src/ljamalg.c index 9b237b7e9..654fe82f2 100644 --- a/vendor/luajit/src/ljamalg.c +++ b/vendor/luajit/src/ljamalg.c @@ -1,6 +1,6 @@ /* ** LuaJIT core and libraries amalgamation. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ /* diff --git a/vendor/luajit/src/luaconf.h b/vendor/luajit/src/luaconf.h index 84fa64187..b33e91b77 100644 --- a/vendor/luajit/src/luaconf.h +++ b/vendor/luajit/src/luaconf.h @@ -1,6 +1,6 @@ /* ** Configuration header. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef luaconf_h @@ -37,7 +37,7 @@ #endif #define LUA_LROOT "/usr/local" #define LUA_LUADIR "/lua/5.1/" -#define LUA_LJDIR "/luajit-2.0.4/" +#define LUA_LJDIR "/luajit-2.0.5/" #ifdef LUA_ROOT #define LUA_JROOT LUA_ROOT diff --git a/vendor/luajit/src/luajit.c b/vendor/luajit/src/luajit.c index 85d713fb4..9e15b26d6 100644 --- a/vendor/luajit/src/luajit.c +++ b/vendor/luajit/src/luajit.c @@ -1,6 +1,6 @@ /* ** LuaJIT frontend. Runs commands, scripts, read-eval-print (REPL) etc. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h ** ** Major portions taken verbatim or adapted from the Lua interpreter. ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h diff --git a/vendor/luajit/src/luajit.h b/vendor/luajit/src/luajit.h index 9ced18eb8..c5ff3acb4 100644 --- a/vendor/luajit/src/luajit.h +++ b/vendor/luajit/src/luajit.h @@ -1,7 +1,7 @@ /* ** LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/ ** -** Copyright (C) 2005-2015 Mike Pall. All rights reserved. +** Copyright (C) 2005-2017 Mike Pall. All rights reserved. ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the @@ -30,10 +30,10 @@ #include "lua.h" -#define LUAJIT_VERSION "LuaJIT 2.0.4" -#define LUAJIT_VERSION_NUM 20004 /* Version 2.0.4 = 02.00.04. */ -#define LUAJIT_VERSION_SYM luaJIT_version_2_0_4 -#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2015 Mike Pall" +#define LUAJIT_VERSION "LuaJIT 2.0.5" +#define LUAJIT_VERSION_NUM 20005 /* Version 2.0.5 = 02.00.05. */ +#define LUAJIT_VERSION_SYM luaJIT_version_2_0_5 +#define LUAJIT_COPYRIGHT "Copyright (C) 2005-2017 Mike Pall" #define LUAJIT_URL "http://luajit.org/" /* Modes for luaJIT_setmode. */ diff --git a/vendor/luajit/src/lualib.h b/vendor/luajit/src/lualib.h index 96530e79a..bfc130a1a 100644 --- a/vendor/luajit/src/lualib.h +++ b/vendor/luajit/src/lualib.h @@ -1,6 +1,6 @@ /* ** Standard library header. -** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h */ #ifndef _LUALIB_H diff --git a/vendor/luajit/src/vm_arm.dasc b/vendor/luajit/src/vm_arm.dasc index 457efa63c..be5540ce4 100644 --- a/vendor/luajit/src/vm_arm.dasc +++ b/vendor/luajit/src/vm_arm.dasc @@ -1,6 +1,6 @@ |// Low-level VM code for ARM CPUs. |// Bytecode interpreter, fast functions and helper functions. -|// Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +|// Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h | |.arch arm |.section code_op, code_sub diff --git a/vendor/luajit/src/vm_mips.dasc b/vendor/luajit/src/vm_mips.dasc index ac8346bbd..3f9c98c1a 100644 --- a/vendor/luajit/src/vm_mips.dasc +++ b/vendor/luajit/src/vm_mips.dasc @@ -1,6 +1,6 @@ |// Low-level VM code for MIPS CPUs. |// Bytecode interpreter, fast functions and helper functions. -|// Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +|// Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h | |.arch mips |.section code_op, code_sub @@ -1621,6 +1621,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_char // Only handle the 1-arg case here. | ffgccheck + |. nop | lw CARG3, HI(BASE) | ldc1 FARG1, 0(BASE) | li AT, 8 @@ -1648,6 +1649,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_sub | ffgccheck + |. nop | addiu AT, NARGS8:RC, -16 | lw CARG3, 16+HI(BASE) | ldc1 f0, 16(BASE) @@ -1697,6 +1699,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_rep // Only handle the 1-char case inline. | ffgccheck + |. nop | lw TMP0, HI(BASE) | addiu AT, NARGS8:RC, -16 // Exactly 2 arguments. | lw CARG4, 8+HI(BASE) @@ -1731,6 +1734,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_reverse | ffgccheck + |. nop | lw CARG3, HI(BASE) | lw STR:CARG1, LO(BASE) | beqz NARGS8:RC, ->fff_fallback @@ -1756,6 +1760,7 @@ static void build_subroutines(BuildCtx *ctx) |.macro ffstring_case, name, lo | .ffunc name | ffgccheck + |. nop | lw CARG3, HI(BASE) | lw STR:CARG1, LO(BASE) | beqz NARGS8:RC, ->fff_fallback @@ -3614,24 +3619,24 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) case BC_ISNEXT: | // RA = base*8, RD = target (points to ITERN) | addu RA, BASE, RA - | lw TMP0, -24+HI(RA) - | lw CFUNC:TMP1, -24+LO(RA) - | lw TMP2, -16+HI(RA) - | lw TMP3, -8+HI(RA) + | srl TMP0, RD, 1 + | lw CARG1, -24+HI(RA) + | lw CFUNC:CARG2, -24+LO(RA) + | addu TMP0, PC, TMP0 + | lw CARG3, -16+HI(RA) + | lw CARG4, -8+HI(RA) | li AT, LJ_TFUNC - | bne TMP0, AT, >5 - |. addiu TMP2, TMP2, -LJ_TTAB - | lbu TMP1, CFUNC:TMP1->ffid - | addiu TMP3, TMP3, -LJ_TNIL - | srl TMP0, RD, 1 - | or TMP2, TMP2, TMP3 - | addiu TMP1, TMP1, -FF_next_N - | addu TMP0, PC, TMP0 - | or TMP1, TMP1, TMP2 - | bnez TMP1, >5 - |. lui TMP2, (-(BCBIAS_J*4 >> 16) & 65535) + | bne CARG1, AT, >5 + |. lui TMP2, (-(BCBIAS_J*4 >> 16) & 65535) + | lbu CARG2, CFUNC:CARG2->ffid + | addiu CARG3, CARG3, -LJ_TTAB + | addiu CARG4, CARG4, -LJ_TNIL + | or CARG3, CARG3, CARG4 + | addiu CARG2, CARG2, -FF_next_N + | or CARG2, CARG2, CARG3 + | bnez CARG2, >5 + |. lui TMP1, 0xfffe | addu PC, TMP0, TMP2 - | lui TMP1, 0xfffe | ori TMP1, TMP1, 0x7fff | sw r0, -8+LO(RA) // Initialize control var. | sw TMP1, -8+HI(RA) @@ -3641,7 +3646,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | li TMP3, BC_JMP | li TMP1, BC_ITERC | sb TMP3, -4+OFS_OP(PC) - | addu PC, TMP0, TMP2 + | addu PC, TMP0, TMP2 | b <1 |. sb TMP1, OFS_OP(PC) break; @@ -4165,6 +4170,7 @@ static void emit_asm_debug(BuildCtx *ctx) "\t.align 2\n" ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); #endif +#if !LJ_NO_UNWIND fprintf(ctx->fp, "\t.section .eh_frame,\"aw\",@progbits\n"); fprintf(ctx->fp, "\t.globl lj_err_unwind_dwarf\n" @@ -4232,6 +4238,7 @@ static void emit_asm_debug(BuildCtx *ctx) "\t.byte 0xd\n\t.uleb128 0x10\n" "\t.align 2\n" ".LEFDE3:\n\n", (int)ctx->codesz - fcofs); +#endif #endif break; default: diff --git a/vendor/luajit/src/vm_ppc.dasc b/vendor/luajit/src/vm_ppc.dasc index ad8a023e4..91f50037d 100644 --- a/vendor/luajit/src/vm_ppc.dasc +++ b/vendor/luajit/src/vm_ppc.dasc @@ -1,6 +1,6 @@ |// Low-level VM code for PowerPC CPUs. |// Bytecode interpreter, fast functions and helper functions. -|// Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +|// Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h | |.arch ppc |.section code_op, code_sub diff --git a/vendor/luajit/src/vm_ppcspe.dasc b/vendor/luajit/src/vm_ppcspe.dasc index 53ea2d965..2a57a41f3 100644 --- a/vendor/luajit/src/vm_ppcspe.dasc +++ b/vendor/luajit/src/vm_ppcspe.dasc @@ -1,6 +1,6 @@ |// Low-level VM code for PowerPC/e500 CPUs. |// Bytecode interpreter, fast functions and helper functions. -|// Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +|// Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h | |.arch ppc |.section code_op, code_sub diff --git a/vendor/luajit/src/vm_x86.dasc b/vendor/luajit/src/vm_x86.dasc index 6cdb8cbd2..359ad4f4f 100644 --- a/vendor/luajit/src/vm_x86.dasc +++ b/vendor/luajit/src/vm_x86.dasc @@ -1,6 +1,6 @@ |// Low-level VM code for x86 CPUs. |// Bytecode interpreter, fast functions and helper functions. -|// Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h +|// Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h | |.if P64 |.arch x64 @@ -222,6 +222,9 @@ |.define CFRAME_SPACE, aword*5 // Delta for rsp (see <--). |.macro saveregs_ | push rbx; push r15; push r14 +|.if NO_UNWIND +| push r13; push r12 +|.endif | sub rsp, CFRAME_SPACE |.endmacro |.macro saveregs @@ -229,15 +232,28 @@ |.endmacro |.macro restoreregs | add rsp, CFRAME_SPACE +|.if NO_UNWIND +| pop r12; pop r13 +|.endif | pop r14; pop r15; pop rbx; pop rbp |.endmacro | |//----- 16 byte aligned, +|.if NO_UNWIND +|.define SAVE_RET, aword [rsp+aword*11] //<-- rsp entering interpreter. +|.define SAVE_R4, aword [rsp+aword*10] +|.define SAVE_R3, aword [rsp+aword*9] +|.define SAVE_R2, aword [rsp+aword*8] +|.define SAVE_R1, aword [rsp+aword*7] +|.define SAVE_RU2, aword [rsp+aword*6] +|.define SAVE_RU1, aword [rsp+aword*5] //<-- rsp after register saves. +|.else |.define SAVE_RET, aword [rsp+aword*9] //<-- rsp entering interpreter. |.define SAVE_R4, aword [rsp+aword*8] |.define SAVE_R3, aword [rsp+aword*7] |.define SAVE_R2, aword [rsp+aword*6] |.define SAVE_R1, aword [rsp+aword*5] //<-- rsp after register saves. +|.endif |.define SAVE_CFRAME, aword [rsp+aword*4] |.define SAVE_PC, dword [rsp+dword*7] |.define SAVE_L, dword [rsp+dword*6] @@ -6119,6 +6135,10 @@ static void emit_asm_debug(BuildCtx *ctx) "\t.byte 0x83\n\t.uleb128 0x3\n" /* offset rbx */ "\t.byte 0x8f\n\t.uleb128 0x4\n" /* offset r15 */ "\t.byte 0x8e\n\t.uleb128 0x5\n" /* offset r14 */ +#if LJ_NO_UNWIND + "\t.byte 0x8d\n\t.uleb128 0x6\n" /* offset r13 */ + "\t.byte 0x8c\n\t.uleb128 0x7\n" /* offset r12 */ +#endif #else "\t.long .Lbegin\n" "\t.long %d\n" @@ -6154,6 +6174,7 @@ static void emit_asm_debug(BuildCtx *ctx) "\t.align " SZPTR "\n" ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); #endif +#if !LJ_NO_UNWIND #if (defined(__sun__) && defined(__svr4__)) #if LJ_64 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@unwind\n"); @@ -6241,8 +6262,10 @@ static void emit_asm_debug(BuildCtx *ctx) #endif "\t.align " SZPTR "\n" ".LEFDE3:\n\n", (int)ctx->codesz - fcofs); +#endif #endif break; +#if !LJ_NO_UNWIND /* Mental note: never let Apple design an assembler. ** Or a linker. Or a plastic case. But I digress. */ @@ -6370,6 +6393,7 @@ static void emit_asm_debug(BuildCtx *ctx) #endif } break; +#endif default: /* Difficult for other modes. */ break; } From adb7c36be35d8b1c42ea47287f7cc501ca2c15cc Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 12 May 2018 03:06:01 -0400 Subject: [PATCH 015/185] Apply and update LuaJIT patches --- vendor/luajit/src/lib_io.c | 30 +++++++++++++++++++++++++++++- vendor/luajit/src/lib_os.c | 17 +++++++++++++++++ vendor/luajit/unicode-io.patch | 6 +++--- vendor/luajit/unicode-os.patch | 2 +- 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/vendor/luajit/src/lib_io.c b/vendor/luajit/src/lib_io.c index 9cdcfcfcb..6858e6455 100644 --- a/vendor/luajit/src/lib_io.c +++ b/vendor/luajit/src/lib_io.c @@ -24,6 +24,16 @@ #include "lj_ff.h" #include "lj_lib.h" +#if LJ_TARGET_WINDOWS +#define WIN32_LEAN_AND_MEAN +#include + +static int widen(const char *in, wchar_t *out) +{ + return MultiByteToWideChar(CP_UTF8, 0, in, -1, out, MAX_PATH); +} +#endif + /* Userdata payload for I/O file. */ typedef struct IOFileUD { FILE *fp; /* File handle. */ @@ -82,7 +92,15 @@ static IOFileUD *io_file_open(lua_State *L, const char *mode) { const char *fname = strdata(lj_lib_checkstr(L, 1)); IOFileUD *iof = io_file_new(L); +#if LJ_TARGET_WINDOWS + wchar_t wfname[MAX_PATH]; + wchar_t wmode[MAX_PATH]; + if (!widen(fname, wfname) || !widen(mode, wmode)) + luaL_argerror(L, 1, lj_str_pushf(L, "%s: failed to convert path to utf-16", fname)); + iof->fp = _wfopen(wfname, wmode); +#else iof->fp = fopen(fname, mode); +#endif if (iof->fp == NULL) luaL_argerror(L, 1, lj_str_pushf(L, "%s: %s", fname, strerror(errno))); return iof; @@ -407,7 +425,14 @@ LJLIB_CF(io_open) GCstr *s = lj_lib_optstr(L, 2); const char *mode = s ? strdata(s) : "r"; IOFileUD *iof = io_file_new(L); +#if LJ_TARGET_WINDOWS + wchar_t wfname[MAX_PATH]; + wchar_t wmode[MAX_PATH]; + if (widen(fname, wfname) && widen(mode, wmode)) + iof->fp = _wfopen(wfname, wmode); +#else iof->fp = fopen(fname, mode); +#endif return iof->fp != NULL ? 1 : luaL_fileresult(L, 0, fname); } @@ -423,7 +448,10 @@ LJLIB_CF(io_popen) fflush(NULL); iof->fp = popen(fname, mode); #else - iof->fp = _popen(fname, mode); + wchar_t wfname[MAX_PATH]; + wchar_t wmode[MAX_PATH]; + if (widen(fname, wfname) && widen(mode, wmode)) + iof->fp = _wpopen(wfname, wmode); #endif return iof->fp != NULL ? 1 : luaL_fileresult(L, 0, fname); #else diff --git a/vendor/luajit/src/lib_os.c b/vendor/luajit/src/lib_os.c index 8c96b86c7..05b324950 100644 --- a/vendor/luajit/src/lib_os.c +++ b/vendor/luajit/src/lib_os.c @@ -32,6 +32,23 @@ /* ------------------------------------------------------------------------ */ +#if LJ_TARGET_WINDOWS +#define WIN32_LEAN_AND_MEAN +#include + +static wchar_t *widen_static(const char *narrow, int idx) +{ + __declspec(thread) static wchar_t buffer[2][MAX_PATH]; + return MultiByteToWideChar(CP_UTF8, 0, narrow, -1, buffer[idx], MAX_PATH) ? buffer[idx] : L""; +} + +#define remove(x) _wremove(widen_static(x, 0)) +#define system(x) _wsystem(widen_static(x, 0)) +#define rename(x, y) _wrename(widen_static(x, 0), widen_static(y, 1)) +#endif + +/* ------------------------------------------------------------------------ */ + #define LJLIB_MODULE_os LJLIB_CF(os_execute) diff --git a/vendor/luajit/unicode-io.patch b/vendor/luajit/unicode-io.patch index 08e2322ca..3d9873f59 100644 --- a/vendor/luajit/unicode-io.patch +++ b/vendor/luajit/unicode-io.patch @@ -1,5 +1,5 @@ diff --git a/vendor/luajit/src/lib_io.c b/vendor/luajit/src/lib_io.c -index 037aa28..8923e70 100644 +index 9cdcfcfcb..6858e6455 100644 --- a/vendor/luajit/src/lib_io.c +++ b/vendor/luajit/src/lib_io.c @@ -24,6 +24,16 @@ @@ -35,7 +35,7 @@ index 037aa28..8923e70 100644 if (iof->fp == NULL) luaL_argerror(L, 1, lj_str_pushf(L, "%s: %s", fname, strerror(errno))); return iof; -@@ -399,7 +417,14 @@ LJLIB_CF(io_open) +@@ -407,7 +425,14 @@ LJLIB_CF(io_open) GCstr *s = lj_lib_optstr(L, 2); const char *mode = s ? strdata(s) : "r"; IOFileUD *iof = io_file_new(L); @@ -50,7 +50,7 @@ index 037aa28..8923e70 100644 return iof->fp != NULL ? 1 : luaL_fileresult(L, 0, fname); } -@@ -415,7 +440,10 @@ LJLIB_CF(io_popen) +@@ -423,7 +448,10 @@ LJLIB_CF(io_popen) fflush(NULL); iof->fp = popen(fname, mode); #else diff --git a/vendor/luajit/unicode-os.patch b/vendor/luajit/unicode-os.patch index 8bbee2341..5d69f7e9c 100644 --- a/vendor/luajit/unicode-os.patch +++ b/vendor/luajit/unicode-os.patch @@ -1,5 +1,5 @@ diff --git a/vendor/luajit/src/lib_os.c b/vendor/luajit/src/lib_os.c -index bb5a141..a2ed170 100644 +index 8c96b86c7..05b324950 100644 --- a/vendor/luajit/src/lib_os.c +++ b/vendor/luajit/src/lib_os.c @@ -32,6 +32,23 @@ From 861a1c169418da873c58fec2245b76dc93cad558 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 31 May 2018 04:22:11 -0400 Subject: [PATCH 016/185] Update gitignore to include additional generated luajit files --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index cfe7a1ee5..439055b4a 100644 --- a/.gitignore +++ b/.gitignore @@ -80,9 +80,15 @@ tools/repack-thes-dict.dSYM vendor/fribidi vendor/luajit/src/host/buildvm vendor/luajit/src/host/minilua +vendor/luajit/src/host/buildvm_arch.h vendor/luajit/src/jit/vmdef.lua vendor/luajit/src/gen vendor/luajit/src/lj_vm.s +vendor/luajit/src/lj_bcdef.h +vendor/luajit/src/lj_ffdef.h +vendor/luajit/src/lj_folddef.h +vendor/luajit/src/lj_libdef.h +vendor/luajit/src/lj_recdef.h vendor/luajit/src/luajit .nuget From d4e99700d42552c4d71d0331f356b48146c4d668 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 31 May 2018 04:22:43 -0400 Subject: [PATCH 017/185] Remove ambiguity over distance function call --- src/search_replace_engine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search_replace_engine.cpp b/src/search_replace_engine.cpp index 594c21e5e..14c71680d 100644 --- a/src/search_replace_engine.cpp +++ b/src/search_replace_engine.cpp @@ -253,7 +253,7 @@ bool SearchReplaceEngine::ReplaceAll() { if (MatchState ms = matches(&diag, 0)) { auto& diag_field = diag.*get_dialogue_field(settings.field); std::string const& text = diag_field.get(); - count += distance( + count += std::distance( boost::u32regex_iterator(begin(text), end(text), *ms.re), boost::u32regex_iterator()); diag_field = u32regex_replace(text, *ms.re, settings.replace_with); From 9ce76d3802bc87c463a3441e92a9d4bef7342ecd Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 31 May 2018 04:23:59 -0400 Subject: [PATCH 018/185] Update OSX build instructions Tested against a fresh copy of 10.13 --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e28366617..817a214d7 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,11 @@ Nothing older than Xcode 5 has been tested recently, but it is likely that some For personal usage, you can use homebrew to install almost all of Aegisub's dependencies: - brew install autoconf ffmpeg freetype gettext ffms2 fftw fribidi libass m4 + brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config brew install --devel --with-gc64 luajit - brew install --HEAD icu4c brew link --force icu4c brew link --force gettext - brew install --HEAD --c++11 --with-icu4c boost + brew install --with-icu4c boost wxWidgets is located in vendor/wxWidgets, and can be built like so: From c3e03f3039d5c12c4b50b61f5ff717a327272ab9 Mon Sep 17 00:00:00 2001 From: darealshinji Date: Sun, 17 Jun 2018 20:14:35 +0200 Subject: [PATCH 019/185] Update config.sub, config.guess, install-sh (#77) --- config.guess | 690 ++++++++++---------- config.sub | 1698 +++++++++++++++++++++++++------------------------- install-sh | 376 ++++++----- 3 files changed, 1408 insertions(+), 1356 deletions(-) diff --git a/config.guess b/config.guess index 1f5c50c0d..883a6713b 100755 --- a/config.guess +++ b/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2018-05-19' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2014-03-23' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -106,10 +106,10 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; +case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -168,21 +175,31 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,44 +214,67 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,63 +291,54 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -346,38 +377,38 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + eval "$set_cc_for_build" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -386,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +492,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -503,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -542,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -574,26 +605,27 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -608,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -662,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -679,23 +711,23 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -720,11 +752,11 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -733,7 +765,7 @@ EOF *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -741,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -768,127 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -901,58 +915,64 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -966,64 +986,70 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1037,34 +1063,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1074,12 +1100,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1089,9 +1115,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1099,7 +1125,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1111,9 +1137,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1133,9 +1159,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1144,28 +1170,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1176,7 +1202,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1196,23 +1222,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1231,46 +1257,56 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1281,27 +1317,33 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1310,18 +1352,18 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1342,14 +1384,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1358,34 +1400,48 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp @@ -1404,16 +1460,16 @@ hostinfo = `(hostinfo) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/config.sub b/config.sub index d654d03cd..d1f5b5490 100755 --- a/config.sub +++ b/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2014-05-01' +timestamp='2018-05-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2014-05-01' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -25,7 +25,7 @@ timestamp='2014-05-01' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +33,7 @@ timestamp='2014-05-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,12 +53,11 @@ timestamp='2014-05-01' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -95,7 +94,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,134 +110,455 @@ case $# in exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac +# Split fields of configuration type +IFS="-" read -r field1 field2 field3 field4 <&2 + exit 1 ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 + *-*-*-*) + basic_machine=$field1-$field2 + os=$field3-$field4 ;; - -bluegene*) - os=-cnk + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ + | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + os=linux-android + ;; + *) + basic_machine=$field1-$field2 + os=$field3 + ;; + esac ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \ + | c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \ + | harris | dolphin | highlevel | gould | cbm | ns | masscomp \ + | apple | axis | knuth | cray | microblaze* \ + | sim | cisco | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + os= + ;; + *) + basic_machine=$field1 + os=$field2 + ;; + esac ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + os=bsd + ;; + a29khif) + basic_machine=a29k-amd + os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=scout + ;; + am29k) + basic_machine=a29k-none + os=bsd + ;; + amdahl) + basic_machine=580-amdahl + os=sysv + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=bsd + ;; + aros) + basic_machine=i386-pc + os=aros + ;; + aux) + basic_machine=m68k-apple + os=aux + ;; + balance) + basic_machine=ns32k-sequent + os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=linux + ;; + cegcc) + basic_machine=arm-unknown + os=cegcc + ;; + cray) + basic_machine=j90-cray + os=unicos + ;; + craynv) + basic_machine=craynv-cray + os=unicosmp + ;; + delta88) + basic_machine=m88k-motorola + os=sysv3 + ;; + dicos) + basic_machine=i686-pc + os=dicos + ;; + djgpp) + basic_machine=i586-pc + os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=ose + ;; + gmicro) + basic_machine=tron-gmicro + os=sysv + ;; + go32) + basic_machine=i386-pc + os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=hms + ;; + harris) + basic_machine=m88k-harris + os=sysv3 + ;; + hp300bsd) + basic_machine=m68k-hp + os=bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=hpux + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=proelf + ;; + i386mach) + basic_machine=i386-mach + os=mach + ;; + vsta) + basic_machine=i386-unknown + os=vsta + ;; + isi68 | isi) + basic_machine=m68k-isi + os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=sysv + ;; + merlin) + basic_machine=ns32k-utek + os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + os=coff + ;; + morphos) + basic_machine=powerpc-unknown + os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=moxiebox + ;; + msdos) + basic_machine=i386-pc + os=msdos + ;; + msys) + basic_machine=i686-pc + os=msys + ;; + mvs) + basic_machine=i370-ibm + os=mvs + ;; + nacl) + basic_machine=le32-unknown + os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=newsos + ;; + news1000) + basic_machine=m68030-sony + os=newsos + ;; + necv70) + basic_machine=v70-nec + os=sysv + ;; + nh3000) + basic_machine=m68k-harris + os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=cxux + ;; + nindy960) + basic_machine=i960-intel + os=nindy + ;; + mon960) + basic_machine=i960-intel + os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=ose + ;; + os68k) + basic_machine=m68k-none + os=os68k + ;; + paragon) + basic_machine=i860-intel + os=osf + ;; + parisc) + basic_machine=hppa-unknown + os=linux + ;; + pw32) + basic_machine=i586-unknown + os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=rdos + ;; + rdos32) + basic_machine=i386-pc + os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=coff + ;; + sa29200) + basic_machine=a29k-amd + os=udi + ;; + sei) + basic_machine=mips-sei + os=seiux + ;; + sps7) + basic_machine=m68k-bull + os=sysv2 + ;; + stratus) + basic_machine=i860-stratus + os=sysv4 + ;; + sun2os3) + basic_machine=m68000-sun + os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=solaris2 + ;; + sv1) + basic_machine=sv1-cray + os=unicos + ;; + symmetry) + basic_machine=i386-sequent + os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=unicos + ;; + t90) + basic_machine=t90-cray + os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + os=tpf + ;; + udi29k) + basic_machine=a29k-amd + os=udi + ;; + ultra3) + basic_machine=a29k-nyu + os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=none + ;; + vaxv) + basic_machine=vax-dec + os=sysv + ;; + vms) + basic_machine=vax-dec + os=vms + ;; + vxworks960) + basic_machine=i960-wrs + os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=vxworks + ;; + xbox) + basic_machine=i686-pc + os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + os=unicos + ;; + *) + basic_machine=$1 + os= + ;; + esac ;; esac @@ -253,17 +573,18 @@ case $basic_machine in | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ - | c4x | c8051 | clipper \ + | c4x | c8051 | clipper | csky \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -296,15 +617,18 @@ case $basic_machine in | mt \ | msp430 \ | nds32 | nds32le | nds32be \ + | nfp \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -312,7 +636,8 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ + | visium \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -326,22 +651,28 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown - os=-none + os=${os:-none} ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + m9s12z | m68hcs12z | hcs12z | s12z) + basic_machine=s12z-unknown + os=${os:-none} ;; ms1) basic_machine=mt-unknown ;; - strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown - os=-none + os=${os:-none} ;; xscaleeb) basic_machine=armeb-unknown @@ -357,11 +688,6 @@ case $basic_machine in i*86 | x86_64) basic_machine=$basic_machine-pc ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ @@ -371,17 +697,18 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -415,6 +742,7 @@ case $basic_machine in | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ + | nfp-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ @@ -422,13 +750,15 @@ case $basic_machine in | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -436,6 +766,8 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -448,138 +780,77 @@ case $basic_machine in ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; abacus) basic_machine=abacus-unknown ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; amd64) basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amiga | amiga-*) basic_machine=m68k-unknown ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux + asmjs) + basic_machine=asmjs-unknown ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=linux ;; bluegene*) basic_machine=powerpc-ibm - os=-cnk + os=cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc + os=${os:-unicos} ;; convex-c1) basic_machine=c1-convex - os=-bsd + os=bsd ;; convex-c2) basic_machine=c2-convex - os=-bsd + os=bsd ;; convex-c32) basic_machine=c32-convex - os=-bsd + os=bsd ;; convex-c34) basic_machine=c34-convex - os=-bsd + os=bsd ;; convex-c38) basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp + os=bsd ;; cr16 | cr16-*) basic_machine=cr16-unknown - os=-elf + os=${os:-elf} ;; crds | unos) basic_machine=m68k-crds @@ -592,7 +863,7 @@ case $basic_machine in ;; crx) basic_machine=crx-unknown - os=-elf + os=${os:-elf} ;; da30 | da30-*) basic_machine=m68k-da30 @@ -602,50 +873,38 @@ case $basic_machine in ;; decsystem10* | dec10*) basic_machine=pdp10-dec - os=-tops10 + os=tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec - os=-tops20 + os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; dpx20 | dpx20-*) basic_machine=rs6000-bull - os=-bosx + os=${os:-bosx} ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull - os=-sysv3 + os=sysv3 ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" ;; encore | umax | mmax) basic_machine=ns32k-encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + basic_machine=elxsi-elxsi + os=${os:-bsd} ;; fx2800) basic_machine=i860-alliant @@ -653,45 +912,13 @@ case $basic_machine in genix) basic_machine=ns32k-ns ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 + os=hiuxwe2 ;; hp300-*) basic_machine=m68k-hp ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; @@ -721,193 +948,82 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=solaris2 ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + j90 | j90-cray) + basic_machine=j90-cray + os=${os:-unicos} ;; iris | iris4d) basic_machine=mips-sgi case $os in - -irix*) + irix*) ;; *) - os=-irix4 + os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=linux ;; microblaze*) basic_machine=microblaze-xilinx ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) basic_machine=m68000-convergent ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari - os=-mint + os=mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; news-3600 | risc-news) basic_machine=mips-sony - os=-newsos + os=newsos ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in - -nextstep* ) + nextstep* ) ;; - -ns2*) - os=-nextstep2 + ns2*) + os=nextstep2 ;; *) - os=-nextstep3 + os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) basic_machine=np1-gould ;; @@ -920,40 +1036,26 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki - os=-proelf + os=proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; pa-hitachi) basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux + os=hiuxwe2 ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=linux ;; pbd) basic_machine=sparc-tti @@ -968,7 +1070,7 @@ case $basic_machine in basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -983,16 +1085,16 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1002,43 +1104,27 @@ case $basic_machine in ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; rm[46]00) basic_machine=mips-siemens ;; @@ -1051,10 +1137,6 @@ case $basic_machine in s390x | s390x-*) basic_machine=s390x-ibm ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; sb1) basic_machine=mipsisa64sb1-unknown ;; @@ -1063,32 +1145,17 @@ case $basic_machine in ;; sde) basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux + os=${os:-elf} ;; sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 + os=vxworks ;; spur) basic_machine=spur-unknown @@ -1096,44 +1163,12 @@ case $basic_machine in st2000) basic_machine=m68k-tandem ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; sun3 | sun3-*) basic_machine=m68k-sun ;; @@ -1143,25 +1178,9 @@ case $basic_machine in sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; tile*) basic_machine=$basic_machine-unknown - os=-linux-gnu + os=linux-gnu ;; tx39) basic_machine=mipstx39-unknown @@ -1169,85 +1188,32 @@ case $basic_machine in tx39el) basic_machine=mipstx39el-unknown ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; tower | tower-32) basic_machine=m68k-ncr ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; w65*) basic_machine=w65-wdc - os=-none + os=none ;; w89k-*) basic_machine=hppa1.1-winbond - os=-proelf + os=proelf ;; - xbox) - basic_machine=i686-pc - os=-mingw32 + x64) + basic_machine=x86_64-pc ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; none) basic_machine=none-none - os=-none + os=${os:-none} ;; # Here we handle the default manufacturer of certain CPU types. It is in @@ -1273,10 +1239,6 @@ case $basic_machine in vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1286,9 +1248,6 @@ case $basic_machine in sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1308,7 +1267,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1316,10 +1275,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1327,197 +1286,246 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if [ x$os != x ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + # First match some system type aliases that might get confused + # with valid system types. + # solaris* is a basic system type, with this one exception. + auroraux) + os=auroraux ;; - -solaris1 | -solaris1.*) + bluegene*) + os=cnk + ;; + solaris1 | solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; - -solaris) - os=-solaris2 + solaris) + os=solaris2 ;; - -svr4*) - os=-sysv4 + unixware*) + os=sysv4.2uw ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) + gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + es1800*) + os=ose + ;; + # Some version numbers need modification + chorusos*) + os=chorusos + ;; + isc) + os=isc2.2 + ;; + sco6) + os=sco5v6 + ;; + sco5) + os=sco3.2v5 + ;; + sco4) + os=sco3.2v4 + ;; + sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + ;; + sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + scout) + # Don't match below + ;; + sco*) + os=sco3.2v2 + ;; + psos*) + os=psos + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + # Each alternative MUST end in a * to match a version number. + # sysv* is not here because it comes later, after sysvr4. + gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | kopensolaris* | plan9* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \ + | knetbsd* | mirbsd* | netbsd* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* \ + | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ + | linux-newlib* | linux-musl* | linux-uclibc* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* \ + | morphos* | superux* | rtmk* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; - -qnx*) + qnx*) case $basic_machine in x86-* | i*86-*) ;; *) - os=-nto$os + os=nto-$os ;; esac ;; - -nto-qnx*) + hiux*) + os=hiuxwe2 ;; - -nto*) + nto-qnx*) + ;; + nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + sim | xray | os68k* | v88r* \ + | windows* | osx | abug | netware* | os9* \ + | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + linux-dietlibc) + os=linux-dietlibc ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) + linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + lynx*178) + os=lynxos178 ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + lynx*5) + os=lynxos5 ;; - -opened*) - os=-openedition + lynx*) + os=lynxos ;; - -os400*) - os=-os400 + mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` ;; - -wince*) - os=-wince + opened*) + os=openedition ;; - -osfrose*) - os=-osfrose + os400*) + os=os400 ;; - -osf*) - os=-osf + sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; - -utek*) - os=-bsd + sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; - -dynix*) - os=-bsd + wince*) + os=wince ;; - -acis*) - os=-aos + utek*) + os=bsd ;; - -atheos*) - os=-atheos + dynix*) + os=bsd ;; - -syllable*) - os=-syllable + acis*) + os=aos ;; - -386bsd) - os=-bsd + atheos*) + os=atheos ;; - -ctix* | -uts*) - os=-sysv + syllable*) + os=syllable ;; - -nova*) - os=-rtmk-nova + 386bsd) + os=bsd ;; - -ns2 ) - os=-nextstep2 + ctix* | uts*) + os=sysv ;; - -nsk*) - os=-nsk + nova*) + os=rtmk-nova + ;; + ns2) + os=nextstep2 + ;; + nsk*) + os=nsk ;; # Preserve the version number of sinix5. - -sinix5.*) + sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; - -sinix*) - os=-sysv4 + sinix*) + os=sysv4 ;; - -tpf*) - os=-tpf + tpf*) + os=tpf ;; - -triton*) - os=-sysv3 + triton*) + os=sysv3 ;; - -oss*) - os=-sysv3 + oss*) + os=sysv3 ;; - -svr4) - os=-sysv4 + svr4*) + os=sysv4 ;; - -svr3) - os=-sysv3 + svr3) + os=sysv3 ;; - -sysvr4) - os=-sysv4 + sysvr4) + os=sysv4 ;; - # This must come after -sysvr4. - -sysv*) + # This must come after sysvr4. + sysv*) ;; - -ose*) - os=-ose + ose*) + os=ose ;; - -es1800*) - os=-ose + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + os=mint ;; - -xenix) - os=-xenix + zvmoe) + os=zvmoe ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + dicos*) + os=dicos ;; - -aros*) - os=-aros + pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=eabi + ;; + *) + os=elf + ;; + esac ;; - -zvmoe) - os=-zvmoe + nacl*) ;; - -dicos*) - os=-dicos + ios) ;; - -nacl*) + none) ;; - -none) + *-eabi) ;; *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1535,176 +1543,179 @@ else case $basic_machine in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + os=linux ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 + ;; + pru-*) + os=elf ;; *-be) - os=-beos - ;; - *-haiku) - os=-haiku + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs + os=luna ;; *-next) - os=-nextstep3 + os=nextstep + ;; + *-sequent) + os=ptx + ;; + *-crds) + os=unos + ;; + *-ns) + os=genix + ;; + i370-*) + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac fi @@ -1715,79 +1726,82 @@ vendor=unknown case $basic_machine in *-unknown) case $os in - -riscix*) + riscix*) vendor=acorn ;; - -sunos*) + sunos*) vendor=sun ;; - -cnk*|-aix*) + cnk*|-aix*) vendor=ibm ;; - -beos*) + beos*) vendor=be ;; - -hpux*) + hpux*) vendor=hp ;; - -mpeix*) + mpeix*) vendor=hp ;; - -hiux*) + hiux*) vendor=hitachi ;; - -unos*) + unos*) vendor=crds ;; - -dgux*) + dgux*) vendor=dg ;; - -luna*) + luna*) vendor=omron ;; - -genix*) + genix*) vendor=ns ;; - -mvs* | -opened*) + clix*) + vendor=intergraph + ;; + mvs* | opened*) vendor=ibm ;; - -os400*) + os400*) vendor=ibm ;; - -ptx*) + ptx*) vendor=sequent ;; - -tpf*) + tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + vxsim* | vxworks* | windiss*) vendor=wrs ;; - -aux*) + aux*) vendor=apple ;; - -hms*) + hms*) vendor=hitachi ;; - -mpw* | -macos*) + mpw* | macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) vendor=atari ;; - -vos*) + vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine-$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/install-sh b/install-sh index a5897de6e..0360b79e7 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2006-12-25.00 +scriptversion=2016-01-11.22; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,25 +35,21 @@ scriptversion=2006-12-25.00 # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it +# 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. +tab=' ' nl=' ' -IFS=" "" $nl" +IFS=" $tab$nl" -# set DOITPROG to echo to test this script +# Set DOITPROG to "echo" to test this script. -# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi +doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -68,17 +64,6 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - posix_mkdir= # Desired mode of installed file. @@ -97,7 +82,7 @@ dir_arg= dst_arg= copy_on_change=false -no_target_directory= +is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -137,42 +122,57 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - shift;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; - -T) no_target_directory=true;; + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -186,6 +186,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -194,13 +198,26 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call `install-sh -d' without argument. + # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -211,16 +228,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -228,9 +245,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for 'test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,51 +269,20 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi @@ -307,74 +293,74 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -384,53 +370,51 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test -z "$d" && continue + test X"$d" = X && continue - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -465,15 +449,12 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -486,24 +467,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 @@ -515,5 +496,6 @@ done # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" # End: From 2ce503ebe71137bc0a9d88cbf7ef52be4663ba25 Mon Sep 17 00:00:00 2001 From: bkbkb <41873894+bkbkb@users.noreply.github.com> Date: Mon, 30 Jul 2018 00:27:07 -0400 Subject: [PATCH 020/185] Fix fribidi download link --- build/fribidi/fribidi.vcxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/fribidi/fribidi.vcxproj b/build/fribidi/fribidi.vcxproj index aa1533f1b..860a6767d 100644 --- a/build/fribidi/fribidi.vcxproj +++ b/build/fribidi/fribidi.vcxproj @@ -35,7 +35,7 @@ Outputs="$(FribidiSrcDir)nonexistent-file" > From 5c1566752ab28078893bffabfc083ef7a96542d1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Fri, 5 Oct 2018 17:51:55 -0400 Subject: [PATCH 021/185] Ignore VS build files Most files were moved to .vs directory with VS15 --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 439055b4a..a9b3616b4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.bz2 *.cache *.dep +*.db *.dll *.dmg *.exe @@ -92,3 +93,4 @@ vendor/luajit/src/lj_recdef.h vendor/luajit/src/luajit .nuget +.vs From 2961ea1947ba5ccc9f86cf92b80008f87c9a8bcb Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Fri, 5 Oct 2018 20:56:13 -0400 Subject: [PATCH 022/185] Update VS project to properly locate fribidi headers --- build/libass/libass.vcxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/libass/libass.vcxproj b/build/libass/libass.vcxproj index 61408f354..bf3047710 100644 --- a/build/libass/libass.vcxproj +++ b/build/libass/libass.vcxproj @@ -23,7 +23,7 @@ $(LibassSrcDir)\libass; $(MSBuildThisFileDirectory); - $(AegisubSourceBase)\include\fribidi; + $(FribidiSrcDir)\fribidi; %(AdditionalIncludeDirectories) @@ -108,4 +108,4 @@ {fb8e8d19-a4d6-4181-943c-282075f49b41} - \ No newline at end of file + From e2bd1283c605901d118f68d401ac2bb25c39c519 Mon Sep 17 00:00:00 2001 From: line0 Date: Mon, 2 Apr 2018 17:45:56 +0200 Subject: [PATCH 023/185] add DependencyControl plus requirements to windows installer; also split features in components and drop 32-bit support --- packages/win_installer/aegisub3.iss | 6 +- packages/win_installer/aegisub3_64.iss | 4 - packages/win_installer/fragment_assdraw.iss | 6 +- .../win_installer/fragment_automation.iss | 88 +++++++++----- packages/win_installer/fragment_codecs_64.iss | 6 +- .../win_installer/fragment_mainprogram.iss | 24 +++- ...nt_codecs_32.iss => fragment_runtimes.iss} | 22 +++- packages/win_installer/fragment_setupbase.iss | 2 +- .../win_installer/fragment_translations.iss | 110 +++++++++--------- .../win_installer/vendor/ASSDraw/ASSDraw3.chm | Bin 0 -> 431872 bytes 10 files changed, 165 insertions(+), 103 deletions(-) delete mode 100644 packages/win_installer/aegisub3_64.iss rename packages/win_installer/{fragment_codecs_32.iss => fragment_runtimes.iss} (63%) create mode 100644 packages/win_installer/vendor/ASSDraw/ASSDraw3.chm diff --git a/packages/win_installer/aegisub3.iss b/packages/win_installer/aegisub3.iss index d3c109eef..a9505044e 100644 --- a/packages/win_installer/aegisub3.iss +++ b/packages/win_installer/aegisub3.iss @@ -32,9 +32,8 @@ ; Contact: mailto:nielsm@indvikleren.dk ; -#ifndef ARCH -#define ARCH 32 -#endif +#define ARCH64 +#define ARCH 64 #include "fragment_setupbase.iss" #include "fragment_strings.iss" @@ -59,6 +58,7 @@ ArchitecturesAllowed=x64 #include "fragment_translations.iss" #include "fragment_spelling.iss" #include "fragment_assdraw.iss" +#include "fragment_runtimes.iss" [Code] diff --git a/packages/win_installer/aegisub3_64.iss b/packages/win_installer/aegisub3_64.iss deleted file mode 100644 index 7231f670a..000000000 --- a/packages/win_installer/aegisub3_64.iss +++ /dev/null @@ -1,4 +0,0 @@ -#define ARCH64 -#define ARCH 64 - -#include "aegisub3.iss" diff --git a/packages/win_installer/fragment_assdraw.iss b/packages/win_installer/fragment_assdraw.iss index 2acd41076..405929298 100644 --- a/packages/win_installer/fragment_assdraw.iss +++ b/packages/win_installer/fragment_assdraw.iss @@ -35,9 +35,9 @@ [Files] ; ASSDraw3 -Source: src\ASSDraw3.exe; DestDir: {app}; Flags: ignoreversion -Source: src\ASSDraw3.chm; DestDir: {app}; Flags: ignoreversion +Source: vendor\ASSDraw\ASSDraw3.exe; DestDir: {app}; Flags: ignoreversion; Components: assdraw +Source: vendor\ASSDraw\ASSDraw3.chm; DestDir: {app}; Flags: ignoreversion; Components: assdraw [Icons] -Name: {commonprograms}\ASSDraw3; Filename: {app}\ASSDraw3.exe; WorkingDir: {app}; IconIndex: 0; Flags: createonlyiffileexists; Comment: Create vector drawings for ASS-format subtitles +Name: {commonprograms}\ASSDraw3; Filename: {app}\ASSDraw3.exe; WorkingDir: {app}; IconIndex: 0; Flags: createonlyiffileexists; Comment: Create vector drawings for ASS-format subtitles; Components: assdraw diff --git a/packages/win_installer/fragment_automation.iss b/packages/win_installer/fragment_automation.iss index 00e3f545f..d40994a1f 100644 --- a/packages/win_installer/fragment_automation.iss +++ b/packages/win_installer/fragment_automation.iss @@ -35,29 +35,65 @@ ; This file declares all installables related to Aegisub Automation [Files] -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-1-edgeblur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-2-mkfullwitdh.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\demos; Source: ..\..\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\demos; Source: ..\..\automation\demos\raytracer.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\re.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\unicode.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\util.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\cleantags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\lfs.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\moonscript.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\re.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\unicode.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly -DestDir: {app}\automation\include; Source: ..\..\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-1-edgeblur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-2-mkfullwitdh.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\demos; Source: ..\..\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos +DestDir: {app}\automation\demos; Source: ..\..\automation\demos\raytracer.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\re.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\unicode.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\util.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\cleantags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\lfs.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\moonscript.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\re.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\unicode.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main + + +DestDir: {userappdata}\Aegisub\automation\include\l0; Source: vendor\DependencyControl\modules\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\autoload; Source: vendor\DependencyControl\macros\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\Yutils\src\Yutils.lua; Flags: ignoreversion; Components: macros\modules\yutils +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\luajson\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\luajson +DestDir: {userappdata}\Aegisub\automation\include\requireffi; Source: vendor\ffi-experiments\requireffi\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +#ifdef ARCH64 + +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex-v0.1.3-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer-v0.1.5-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager-v0.4.0-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +#else +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex-v0.1.3-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer-v0.1.5-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager-v0.4.0-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +#endif + +[Dirs] +Name: {userappdata}\Aegisub\automation\test\DepUnit\automation; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\test\DepUnit\modules; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\schema\DepSqlite\automation; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\schema\DepSqlite\modules; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\automation; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\modules; Components: macros\modules\depctrl; + + +[InstallDelete] +Type: files; Name: "{userappdata}\Aegisub\l0.UpdateFeed_*.json" +Type: files; Name: "{userappdata}\Aegisub\DependencyControl.json" +Type: files; Name: "{userappdata}\Aegisub\Nudge.json" +Type: files; Name: "{userappdata}\Aegisub\PasteAILines.json" +Type: files; Name: "{userappdata}\Aegisub\ASSWipe.json" +Type: files; Name: "{userappdata}\Aegisub\automation\include\DM\DownloadManager.dll" +Type: files; Name: "{userappdata}\Aegisub\automation\include\BM\BadMutex.dll" +Type: files; Name: "{userappdata}\Aegisub\automation\include\PT\PreciseTimer.dll" \ No newline at end of file diff --git a/packages/win_installer/fragment_codecs_64.iss b/packages/win_installer/fragment_codecs_64.iss index df1ff6ffa..654f97241 100644 --- a/packages/win_installer/fragment_codecs_64.iss +++ b/packages/win_installer/fragment_codecs_64.iss @@ -34,6 +34,10 @@ [Files] +; avisynth +DestDir: {app}; Source: vendor\AvisynthPlus64\devil.dll; Flags: ignoreversion; Components: main +DestDir: {app}; Source: vendor\AvisynthPlus64\avisynth.dll; Flags: ignoreversion; Components: main +DestDir: {app}; Source: vendor\AvisynthPlus64\DirectShowSource.dll; Flags: ignoreversion; Components: main ; vsfilter -DestDir: {app}\csri; Source: ..\..\bin\csri\xy-vsfilter-aegisub64.dll; Flags: ignoreversion +DestDir: {app}\csri; Source: vendor\xy-vsfilter\xy-vsfilter-aegisub64.dll; Flags: ignoreversion; Components: main diff --git a/packages/win_installer/fragment_mainprogram.iss b/packages/win_installer/fragment_mainprogram.iss index 41ac0d036..1258b0b7c 100644 --- a/packages/win_installer/fragment_mainprogram.iss +++ b/packages/win_installer/fragment_mainprogram.iss @@ -32,19 +32,31 @@ ; Contact: mailto:nielsm@indvikleren.dk ; +[Components] +Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed +Name: "macros"; Description: "Automation Scripts"; Types: full +Name: "macros\bundled"; Description: "Bundled macros"; Types: full +Name: "macros\demos"; Description: "Example macros/Demos"; Types: full +Name: "macros\modules"; Description: "Modules"; Types: full +Name: "macros\modules\depctrl"; Description: "DependencyControl"; Types: full +Name: "macros\modules\yutils"; Description: "YUtils"; Types: full +Name: "macros\modules\luajson"; Description: "LuaJSON"; Types: full +Name: "dictionaries"; Description: "Spellcheck Dictionaries"; Types: full +Name: "dictionaries\en_US"; Description: "English (US)"; Types: full +Name: "translations"; Description: "Aegisub Translations"; Types: full +Name: "assdraw"; Description: "ASSDraw 3"; Types: full + [Tasks] Name: "startmenuicon"; Description: "{cm:StartMenuIcon}"; GroupDescription: "{cm:AdditionalIcons}" -Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: "checkforupdates"; Description: "{cm:CheckForUpdates}"; GroupDescription: "{cm:UpdatesGroup}" [Files] ; main -DestDir: {app}; Source: ..\..\bin\aegisub{#ARCH}.exe; Flags: ignoreversion -DestDir: {app}; Source: license.txt; Flags: ignoreversion; Tasks: ; Languages: +DestDir: {app}; Source: ..\..\bin\aegisub{#ARCH}.exe; Flags: ignoreversion; Components: main +DestDir: {app}; Source: license.txt; Flags: ignoreversion; Components: main [Icons] Name: {commonprograms}\Aegisub; Filename: {app}\aegisub{#ARCH}.exe; WorkingDir: {app}; IconIndex: 0; Tasks: startmenuicon; Comment: Create and edit subtitle files -Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Aegisub; Filename: {app}\aegisub{#ARCH}.exe; WorkingDir: {app}; IconIndex: 0; Tasks: quicklaunchicon; Comment: Create and edit subtitle files [Registry] ; Register in App Paths so the user can conveniently enter 'aegisub' in their Run box @@ -53,3 +65,7 @@ Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\aegisub [Run] Filename: {app}\aegisub{#ARCH}.exe; Description: {cm:LaunchProgram,Aegisub}; Flags: nowait postinstall skipifsilent + +[InstallDelete] +Type: files; Name: "{app}\ffms2_64.dll" +Type: files; Name: "{app}\ffms2_32.dll" diff --git a/packages/win_installer/fragment_codecs_32.iss b/packages/win_installer/fragment_runtimes.iss similarity index 63% rename from packages/win_installer/fragment_codecs_32.iss rename to packages/win_installer/fragment_runtimes.iss index 06839e47c..bccc41568 100644 --- a/packages/win_installer/fragment_codecs_32.iss +++ b/packages/win_installer/fragment_runtimes.iss @@ -32,12 +32,22 @@ ; Contact: mailto:nielsm@indvikleren.dk ; +; This file implements checking for and installing runtime libraries for Aegisub +#ifdef ARCH64 +#define SUFFIX "x64" +#else +#define SUFFIX "x86" +#endif [Files] -; avisynth -DestDir: {app}; Source: src\devil.dll; Flags: ignoreversion -DestDir: {app}; Source: src\avisynth.dll; Flags: ignoreversion -DestDir: {app}; Source: src\DirectShowSource.dll; Flags: ignoreversion -; vsfilter -DestDir: {app}\csri; Source: ..\..\bin\csri\xy-vsfilter-aegisub32.dll; Flags: ignoreversion +DestDir: {tmp}; Source: src\vcredist_{#SUFFIX}.exe; Flags: nocompression deleteafterinstall +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\msvcp140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\concrt140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\vccorlib140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\vcruntime140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.MFC\mfc140u.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#SUFFIX}\Microsoft.VC140.MFC\mfcm140u.dll; DestDir: {app}; Flags: ignoreversion + +[Run] +Filename: {tmp}\vcredist_{#SUFFIX}.exe; StatusMsg: {cm:InstallRuntime}; Parameters: "/install /quiet /norestart" \ No newline at end of file diff --git a/packages/win_installer/fragment_setupbase.iss b/packages/win_installer/fragment_setupbase.iss index 7a517304b..9c7926319 100644 --- a/packages/win_installer/fragment_setupbase.iss +++ b/packages/win_installer/fragment_setupbase.iss @@ -41,7 +41,7 @@ AppVersion={#INSTALLER_VERSION} AppPublisher=Aegisub Team AppPublisherURL=http://www.aegisub.org/ AppSupportURL=http://forum.aegisub.org/ -AppCopyright= 2005-2014 The Aegisub Team +AppCopyright= 2005-2018 The Aegisub Team VersionInfoVersion={#INSTALLER_VERSION} DefaultGroupName=Aegisub AllowNoIcons=true diff --git a/packages/win_installer/fragment_translations.iss b/packages/win_installer/fragment_translations.iss index 2c0f302c7..08d6a5ca5 100644 --- a/packages/win_installer/fragment_translations.iss +++ b/packages/win_installer/fragment_translations.iss @@ -37,62 +37,62 @@ [Files] ; localization (commented out ones are out of date; some don't have wxstd.mo) -Source: ..\..\po\ar.mo; DestDir: {app}\locale\ar; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-ar.mo; DestDir: {app}\locale\ar; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\bg.mo; DestDir: {app}\locale\bg; DestName: aegisub.mo; Flags: ignoreversion +Source: ..\..\po\ar.mo; DestDir: {app}\locale\ar; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-ar.mo; DestDir: {app}\locale\ar; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\bg.mo; DestDir: {app}\locale\bg; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Missing wxstd for Bulgarian -Source: ..\..\po\ca.mo; DestDir: {app}\locale\ca; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-ca.mo; DestDir: {app}\locale\ca; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\cs.mo; DestDir: {app}\locale\cs; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-cs.mo; DestDir: {app}\locale\cs; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\da.mo; DestDir: {app}\locale\da; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-da.mo; DestDir: {app}\locale\da; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\de.mo; DestDir: {app}\locale\de; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-de.mo; DestDir: {app}\locale\de; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\el.mo; DestDir: {app}\locale\el; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-el.mo; DestDir: {app}\locale\el; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\es.mo; DestDir: {app}\locale\es; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-es.mo; DestDir: {app}\locale\es; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\eu.mo; DestDir: {app}\locale\eu; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-eu.mo; DestDir: {app}\locale\eu; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\fa.mo; DestDir: {app}\locale\fa; DestName: aegisub.mo; Flags: ignoreversion +Source: ..\..\po\ca.mo; DestDir: {app}\locale\ca; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-ca.mo; DestDir: {app}\locale\ca; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\cs.mo; DestDir: {app}\locale\cs; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-cs.mo; DestDir: {app}\locale\cs; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\da.mo; DestDir: {app}\locale\da; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-da.mo; DestDir: {app}\locale\da; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\de.mo; DestDir: {app}\locale\de; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-de.mo; DestDir: {app}\locale\de; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\el.mo; DestDir: {app}\locale\el; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-el.mo; DestDir: {app}\locale\el; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\es.mo; DestDir: {app}\locale\es; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-es.mo; DestDir: {app}\locale\es; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\eu.mo; DestDir: {app}\locale\eu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-eu.mo; DestDir: {app}\locale\eu; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\fa.mo; DestDir: {app}\locale\fa; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Farsi wxstd missing -;Source: src\mo\wxstd-fa.mo; DestDir: {app}\locale\fa; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\fi.mo; DestDir: {app}\locale\fi; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-fi.mo; DestDir: {app}\locale\fi; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\fr_FR.mo; DestDir: {app}\locale\fr_FR; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-fr.mo; DestDir: {app}\locale\fr_FR; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\gl.mo; DestDir: {app}\locale\gl; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-gl_ES.mo; DestDir: {app}\locale\gl; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\hu.mo; DestDir: {app}\locale\hu; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-hu.mo; DestDir: {app}\locale\hu; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\id.mo; DestDir: {app}\locale\id; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-id.mo; DestDir: {app}\locale\id; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\it.mo; DestDir: {app}\locale\it; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-it.mo; DestDir: {app}\locale\it; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\ja.mo; DestDir: {app}\locale\ja; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-ja.mo; DestDir: {app}\locale\ja; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\ko.mo; DestDir: {app}\locale\ko; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-ko_KR.mo; DestDir: {app}\locale\ko; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\nl.mo; DestDir: {app}\locale\nl; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-nl.mo; DestDir: {app}\locale\nl; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\pl.mo; DestDir: {app}\locale\pl; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-pl.mo; DestDir: {app}\locale\pl; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\pt_PT.mo; DestDir: {app}\locale\pt_PT; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-pt.mo; DestDir: {app}\locale\pt_PT; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\ru.mo; DestDir: {app}\locale\ru; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-ru.mo; DestDir: {app}\locale\ru; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\sr_RS.mo; DestDir: {app}\locale\sr_RS; DestName: aegisub.mo; Flags: ignoreversion -Source: ..\..\po\sr_RS@latin.mo; DestDir: {app}\locale\sr_RS@latin; DestName: aegisub.mo; Flags: ignoreversion +;Source: src\mo\wxstd-fa.mo; DestDir: {app}\locale\fa; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\fi.mo; DestDir: {app}\locale\fi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-fi.mo; DestDir: {app}\locale\fi; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\fr_FR.mo; DestDir: {app}\locale\fr_FR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-fr.mo; DestDir: {app}\locale\fr_FR; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\gl.mo; DestDir: {app}\locale\gl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-gl_ES.mo; DestDir: {app}\locale\gl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\hu.mo; DestDir: {app}\locale\hu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-hu.mo; DestDir: {app}\locale\hu; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\id.mo; DestDir: {app}\locale\id; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-id.mo; DestDir: {app}\locale\id; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\it.mo; DestDir: {app}\locale\it; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-it.mo; DestDir: {app}\locale\it; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\ja.mo; DestDir: {app}\locale\ja; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-ja.mo; DestDir: {app}\locale\ja; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\ko.mo; DestDir: {app}\locale\ko; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-ko_KR.mo; DestDir: {app}\locale\ko; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\nl.mo; DestDir: {app}\locale\nl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-nl.mo; DestDir: {app}\locale\nl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\pl.mo; DestDir: {app}\locale\pl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-pl.mo; DestDir: {app}\locale\pl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\pt_PT.mo; DestDir: {app}\locale\pt_PT; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-pt.mo; DestDir: {app}\locale\pt_PT; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\ru.mo; DestDir: {app}\locale\ru; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-ru.mo; DestDir: {app}\locale\ru; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\sr_RS.mo; DestDir: {app}\locale\sr_RS; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\sr_RS@latin.mo; DestDir: {app}\locale\sr_RS@latin; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Missing wxstd for Serbian -Source: ..\..\po\uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\vi.mo; DestDir: {app}\locale\vi; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-vi.mo; DestDir: {app}\locale\vi; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: wxstd.mo; Flags: ignoreversion -Source: ..\..\po\zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: aegisub.mo; Flags: ignoreversion -Source: src\mo\wxstd-zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: wxstd.mo; Flags: ignoreversion +Source: ..\..\po\uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\vi.mo; DestDir: {app}\locale\vi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-vi.mo; DestDir: {app}\locale\vi; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: wxstd.mo; Flags: ignoreversion; Components: translations +Source: ..\..\po\zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: src\mo\wxstd-zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: wxstd.mo; Flags: ignoreversion; Components: translations diff --git a/packages/win_installer/vendor/ASSDraw/ASSDraw3.chm b/packages/win_installer/vendor/ASSDraw/ASSDraw3.chm new file mode 100644 index 0000000000000000000000000000000000000000..fad2f5edfc00ccb960692dc7f31232babf19e011 GIT binary patch literal 431872 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

Z9?Vr?n6Vq$o(XDQjXiDK#R73lKxmHR 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 Date: Sun, 30 Dec 2018 14:08:21 -0500 Subject: [PATCH 037/185] Ensure FFMS always indexes video tracks Matching historical behavior with DoIndexing, which is assumed throughout the codebase --- src/ffmpegsource_common.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ffmpegsource_common.cpp b/src/ffmpegsource_common.cpp index 0de47e1ee..db167e415 100644 --- a/src/ffmpegsource_common.cpp +++ b/src/ffmpegsource_common.cpp @@ -100,6 +100,7 @@ FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, FFMS_TrackTypeIndexSettings(Indexer, FFMS_TYPE_AUDIO, 1, 0); else if (Track != TrackSelection::None) FFMS_TrackIndexSettings(Indexer, static_cast(Track), 1, 0); + FFMS_TrackTypeIndexSettings(Indexer, FFMS_TYPE_VIDEO, 1, 0); FFMS_SetProgressCallback(Indexer, callback, ps); Index = FFMS_DoIndexing2(Indexer, IndexEH, &ErrInfo); #else From a1ec3767e407f55a389876ede3aa88c1b6df25c3 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 30 Dec 2018 14:19:11 -0500 Subject: [PATCH 038/185] Remove compatibility with old versions of FFMS2 2.22 was released oct 2015, so I think a more recent version is a fairly safe assumption --- src/audio_provider_ffmpegsource.cpp | 4 ---- src/ffmpegsource_common.cpp | 30 ----------------------------- src/video_provider_ffmpegsource.cpp | 8 -------- 3 files changed, 42 deletions(-) diff --git a/src/audio_provider_ffmpegsource.cpp b/src/audio_provider_ffmpegsource.cpp index 606d5b415..b3ad702b0 100644 --- a/src/audio_provider_ffmpegsource.cpp +++ b/src/audio_provider_ffmpegsource.cpp @@ -126,10 +126,8 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) { // reindex if the error handling mode has changed FFMS_IndexErrorHandling ErrorHandling = GetErrorHandlingMode(); -#if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (2 << 8) | 0) if (Index && FFMS_GetErrorHandling(Index) != ErrorHandling) Index = nullptr; -#endif // moment of truth if (!Index) { @@ -167,7 +165,6 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) { throw agi::AudioProviderError("unknown or unsupported sample format"); } -#if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (4 << 8) | 0) if (channels > 1 || bytes_per_sample != 2) { std::unique_ptr opt(FFMS_CreateResampleOptions(AudioSource), FFMS_DestroyResampleOptions); @@ -181,7 +178,6 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) { float_samples = false; } } -#endif } } diff --git a/src/ffmpegsource_common.cpp b/src/ffmpegsource_common.cpp index db167e415..3ffa7f4fb 100644 --- a/src/ffmpegsource_common.cpp +++ b/src/ffmpegsource_common.cpp @@ -50,20 +50,6 @@ #include #include -#if FFMS_VERSION < ((2 << 24) | (22 << 16) | (0 << 8) | 0) -enum { - FFMS_LOG_QUIET = -8, - FFMS_LOG_PANIC = 0, - FFMS_LOG_FATAL = 8, - FFMS_LOG_ERROR = 16, - FFMS_LOG_WARNING = 24, - FFMS_LOG_INFO = 32, - FFMS_LOG_VERBOSE = 40, - FFMS_LOG_DEBUG = 48, - FFMS_LOG_TRACE = 56 -}; -#endif - FFmpegSourceProvider::FFmpegSourceProvider(agi::BackgroundRunner *br) : br(br) { @@ -95,7 +81,6 @@ FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, ps->SetProgress(Current, Total); return ps->IsCancelled(); }; -#if FFMS_VERSION >= ((2 << 24) | (21 << 16) | (0 << 8) | 0) if (Track == TrackSelection::All) FFMS_TrackTypeIndexSettings(Indexer, FFMS_TYPE_AUDIO, 1, 0); else if (Track != TrackSelection::None) @@ -103,15 +88,6 @@ FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, FFMS_TrackTypeIndexSettings(Indexer, FFMS_TYPE_VIDEO, 1, 0); FFMS_SetProgressCallback(Indexer, callback, ps); Index = FFMS_DoIndexing2(Indexer, IndexEH, &ErrInfo); -#else - int Trackmask = 0; - if (Track == TrackSelection::All) - Trackmask = std::numeric_limits::max(); - else if (Track != TrackSelection::None) - Trackmask = 1 << static_cast(Track); - Index = FFMS_DoIndexing(Indexer, Trackmask, 0, - nullptr, nullptr, IndexEH, callback, ps, &ErrInfo); -#endif }); if (Index == nullptr) @@ -131,12 +107,6 @@ std::map FFmpegSourceProvider::GetTracksOfType(FFMS_Indexer *I std::map TrackList; int NumTracks = FFMS_GetNumTracksI(Indexer); - // older versions of ffms2 can't index audio tracks past 31 -#if FFMS_VERSION < ((2 << 24) | (21 << 16) | (0 << 8) | 0) - if (Type == FFMS_TYPE_AUDIO) - NumTracks = std::min(NumTracks, std::numeric_limits::digits); -#endif - for (int i=0; i= ((2 << 24) | (17 << 16) | (1 << 8) | 0) if (matrix == ColorSpace) return; if (matrix == RealColorSpace) FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), nullptr); @@ -99,7 +98,6 @@ public: else return; ColorSpace = matrix; -#endif } int GetFrameCount() const override { return VideoInfo->NumFrames; } @@ -223,10 +221,6 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st // set thread count int Threads = OPT_GET("Provider/Video/FFmpegSource/Decoding Threads")->GetInt(); -#if FFMS_VERSION < ((2 << 24) | (30 << 16) | (0 << 8) | 0) - if (FFMS_GetVersion() < ((2 << 24) | (17 << 16) | (2 << 8) | 1) && FFMS_GetSourceType(Index) == FFMS_SOURCE_LAVF) - Threads = 1; -#endif // set seekmode // TODO: give this its own option? @@ -261,7 +255,6 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st CS = Width > 1024 || Height >= 600 ? AGI_CS_BT709 : AGI_CS_BT470BG; RealColorSpace = ColorSpace = colormatrix_description(CS, CR); -#if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (1 << 8) | 0) if (CS != AGI_CS_RGB && CS != AGI_CS_BT470BG && ColorSpace != colormatrix && colormatrix == "TV.601") { CS = AGI_CS_BT470BG; ColorSpace = colormatrix_description(CS, CR); @@ -271,7 +264,6 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st if (FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), &ErrInfo)) throw VideoOpenError(std::string("Failed to set input format: ") + ErrInfo.Buffer); } -#endif const int TargetFormat[] = { FFMS_GetPixFmt("bgra"), -1 }; if (FFMS_SetOutputFormatV2(VideoSource, TargetFormat, Width, Height, FFMS_RESIZER_BICUBIC, &ErrInfo)) From 3ba7358bfe649fccb36b9809c8dd403d9a90b062 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Jan 2019 19:34:14 -0500 Subject: [PATCH 039/185] Use FFMS2 constant in place of magic number --- src/audio_provider_ffmpegsource.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio_provider_ffmpegsource.cpp b/src/audio_provider_ffmpegsource.cpp index b3ad702b0..0a201855a 100644 --- a/src/audio_provider_ffmpegsource.cpp +++ b/src/audio_provider_ffmpegsource.cpp @@ -142,7 +142,7 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) { // update access time of index file so it won't get cleaned away agi::fs::Touch(CacheName); - AudioSource = FFMS_CreateAudioSource(filename.string().c_str(), TrackNumber, Index, -1, &ErrInfo); + AudioSource = FFMS_CreateAudioSource(filename.string().c_str(), TrackNumber, Index, FFMS_DELAY_FIRST_VIDEO_TRACK, &ErrInfo); if (!AudioSource) throw agi::AudioProviderError(std::string("Failed to open audio track: ") + ErrInfo.Buffer); From 7147038e0adb9aac3a8a9394d020724e31f4f170 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Jan 2019 21:27:53 -0500 Subject: [PATCH 040/185] Fix luajit build flags Notably, don't build the dynamic library and enable 5.2 compatibility features --- vendor/luajit/src/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/luajit/src/Makefile b/vendor/luajit/src/Makefile index f7f81a4e6..5fba38718 100644 --- a/vendor/luajit/src/Makefile +++ b/vendor/luajit/src/Makefile @@ -74,10 +74,10 @@ CCWARN= -Wall # as dynamic mode. # # Mixed mode creates a static + dynamic library and a statically linked luajit. -BUILDMODE= mixed +#BUILDMODE= mixed # # Static mode creates a static library and a statically linked luajit. -#BUILDMODE= static +BUILDMODE= static # # Dynamic mode creates a dynamic library and a dynamically linked luajit. # Note: this executable will only run when the library is installed! @@ -102,7 +102,7 @@ XCFLAGS= # enabled by default. Some other features that *might* break some existing # code (e.g. __pairs or os.execute() return values) can be enabled here. # Note: this does not provide full compatibility with Lua 5.2 at this time. -#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT +XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT # # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter. #XCFLAGS+= -DLUAJIT_DISABLE_JIT From 7853e7abe228be9effafa78828ba4c6b64447975 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 7 Jan 2019 21:23:56 -0500 Subject: [PATCH 041/185] Update libass Worth noting that this does NOT currently build, thanks to a few lines in libass that are not compatible with vc++. I'll bump the libass commit when MrSmile's pr gets merged and this is remedied. You can apply this commit to remedy that: https://github.com/libass/libass/pull/321/commits/5317a8dd897a1b6481c1d77e16443f8fdb7621df Also worth noting that while libass switched to nasm, I haven't done so here because it wasn't worth the effort, so I just made a questionable change to the yasm.targets to emulate nasm behavior --- build/libass/libass.vcxproj | 23 +++++++---- build/libass/libass.vcxproj.filters | 60 +++++++++++++++++++---------- build/yasm.targets | 2 +- vendor/libass | 2 +- 4 files changed, 58 insertions(+), 29 deletions(-) diff --git a/build/libass/libass.vcxproj b/build/libass/libass.vcxproj index bf3047710..cf21877c8 100644 --- a/build/libass/libass.vcxproj +++ b/build/libass/libass.vcxproj @@ -29,6 +29,7 @@ inline=__inline; FRIBIDI_ENTRY=; + _USE_MATH_DEFINES=; %(PreprocessorDefinitions) @@ -37,8 +38,8 @@ ass\ - %(Config) -DARCH_X86_64=0 -DPREFIX -DHAVE_ALIGNED_STACK=0 - %(Config) -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=1 + %(Config) -DARCH_X86_64=0 -DPREFIX -DHAVE_ALIGNED_STACK=0 -DHAVE_CPUNOP=1 + %(Config) -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=1 -DHAVE_CPUNOP=1 @@ -54,39 +55,47 @@ + - + + + + + + + + + - - + - - + + diff --git a/build/libass/libass.vcxproj.filters b/build/libass/libass.vcxproj.filters index db35379ba..9623c769c 100644 --- a/build/libass/libass.vcxproj.filters +++ b/build/libass/libass.vcxproj.filters @@ -13,10 +13,6 @@ {56793734-89BD-4b04-88EB-625FBE52EBFB} asm - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - @@ -31,24 +27,21 @@ Assembly Files - - Assembly Files - - - Assembly Files - - - Assembly Files - Assembly Files - + Assembly Files - - + + Assembly Files - + + + Assembly Files + + + Assembly Files + @@ -63,39 +56,60 @@ Header Files + + Header Files + + + Header Files + Header Files Header Files + + Header Files + + + Header Files + Header Files + + Header Files + Header Files + + Header Files + Header Files Header Files + + Header Files + Header Files Header Files + + Header Files + Header Files Header Files - - Header Files - @@ -110,6 +124,9 @@ Source Files + + Source Files + Source Files @@ -122,6 +139,9 @@ Source Files + + Source Files + Source Files diff --git a/build/yasm.targets b/build/yasm.targets index bacd151e6..57fde6103 100644 --- a/build/yasm.targets +++ b/build/yasm.targets @@ -58,7 +58,7 @@ > <_Yasm> - %(Include) -I%(RootDir)%(Directory) + %(Include) -I%(RootDir)%(Directory)..\ %(OutputDir) $(AegisubObjectDir)%(OutputDir) diff --git a/vendor/libass b/vendor/libass index cfa1a61e3..98727c3b7 160000 --- a/vendor/libass +++ b/vendor/libass @@ -1 +1 @@ -Subproject commit cfa1a61e39f218fe4dc288ddf44b85200ff35fdd +Subproject commit 98727c3b78f44cb3bbc955fcf5d977ebd911d5ca From 75fc5f38d79ac2a776f6ccc452a8b7b3cd85c397 Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Fri, 1 Feb 2019 00:14:14 +0100 Subject: [PATCH 042/185] Adjust boost gil header paths for boost 1.69 boost/gil.hpp was added in 1.68 and boost/gil/gil_all.hpp removed in 1.69. --- src/colour_button.cpp | 4 ++++ src/subtitles_provider_libass.cpp | 4 ++++ src/video_frame.cpp | 4 ++++ src/video_provider_dummy.cpp | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/src/colour_button.cpp b/src/colour_button.cpp index c0b1c5d58..f7ff956b4 100644 --- a/src/colour_button.cpp +++ b/src/colour_button.cpp @@ -18,7 +18,11 @@ #include "dialogs.h" +#if (BOOST_VERSION / 100000) <= 1 && ((BOOST_VERSION / 100) % 1000) <= 67 #include +#else +#include +#endif AGI_DEFINE_EVENT(EVT_COLOR, agi::Color); diff --git a/src/subtitles_provider_libass.cpp b/src/subtitles_provider_libass.cpp index efb5cb481..f424c0177 100644 --- a/src/subtitles_provider_libass.cpp +++ b/src/subtitles_provider_libass.cpp @@ -46,7 +46,11 @@ #include #include +#if (BOOST_VERSION / 100000) <= 1 && ((BOOST_VERSION / 100) % 1000) <= 67 #include +#else +#include +#endif #include #include diff --git a/src/video_frame.cpp b/src/video_frame.cpp index 610005879..9f22f5063 100644 --- a/src/video_frame.cpp +++ b/src/video_frame.cpp @@ -16,7 +16,11 @@ #include "video_frame.h" +#if (BOOST_VERSION / 100000) <= 1 && ((BOOST_VERSION / 100) % 1000) <= 67 #include +#else +#include +#endif #include namespace { diff --git a/src/video_provider_dummy.cpp b/src/video_provider_dummy.cpp index b68b206b7..da3b4a0a4 100644 --- a/src/video_provider_dummy.cpp +++ b/src/video_provider_dummy.cpp @@ -45,7 +45,11 @@ #include #include #include +#if (BOOST_VERSION / 100000) <= 1 && ((BOOST_VERSION / 100) % 1000) <= 67 #include +#else +#include +#endif DummyVideoProvider::DummyVideoProvider(double fps, int frames, int width, int height, agi::Color colour, bool pattern) : framecount(frames) From a78f5d2760fd78f569ad53d541ed2282d9f2bb36 Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Thu, 14 Feb 2019 14:52:27 +0100 Subject: [PATCH 043/185] DataBlockCache: Fix crash in cache invalidation Fixes #33 --- src/block_cache.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/block_cache.h b/src/block_cache.h index 9fcaf42e7..f2ebfa261 100644 --- a/src/block_cache.h +++ b/src/block_cache.h @@ -150,8 +150,8 @@ public: } // Remove old entries until we're under the max size - for (auto it = age.rbegin(); size > max_size && it != age.rend(); ) - KillMacroBlock(**it++); + for (auto it = age.rbegin(); size > max_size && it != age.rend(); it++) + KillMacroBlock(**it); } /// @brief Obtain a data block from the cache From 0e6b4927350e9d6939d085e6d6785cbb8e704d5b Mon Sep 17 00:00:00 2001 From: davste0816 Date: Mon, 11 Mar 2019 19:54:31 -0400 Subject: [PATCH 044/185] Recognize .opus as an audio format, .h264 .hevc as video formats --- packages/win_installer/fragment_associations.iss | 6 ++++++ src/command/audio.cpp | 2 +- src/command/video.cpp | 2 +- src/project.cpp | 3 +++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/win_installer/fragment_associations.iss b/packages/win_installer/fragment_associations.iss index 83315f1d0..0162854d4 100644 --- a/packages/win_installer/fragment_associations.iss +++ b/packages/win_installer/fragment_associations.iss @@ -63,6 +63,9 @@ Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedT Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".wav"; ValueData: ""; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".ogg"; ValueData: ""; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".avs"; ValueData: ""; Flags: uninsdeletekey +Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".opus"; ValueData: ""; Flags: uninsdeletekey +Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".h264"; ValueData: ""; Flags: uninsdeletekey +Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".hevc"; ValueData: ""; Flags: uninsdeletekey ; Class for general subtitle formats Root: HKLM; Subkey: "SOFTWARE\Classes\Aegisub.Subtitle.1"; ValueType: string; ValueName: ""; ValueData: "Aegisub subtitle file"; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Aegisub.Subtitle.1"; ValueType: dword; ValueName: "EditFlags"; ValueData: $af0; Flags: uninsdeletekey @@ -194,3 +197,6 @@ Root: HKLM; Subkey: "SOFTWARE\Classes\.m4a\OpenWithProgids"; ValueType: string; Root: HKLM; Subkey: "SOFTWARE\Classes\.wav\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Audio.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.ogg\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Media.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.avs\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue +Root: HKLM; Subkey: "SOFTWARE\Classes\.opus\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Audio.1"; Flags: uninsdeletevalue +Root: HKLM; Subkey: "SOFTWARE\Classes\.h264\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue +Root: HKLM; Subkey: "SOFTWARE\Classes\.hevc\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue diff --git a/src/command/audio.cpp b/src/command/audio.cpp index d10491b07..de25d6454 100644 --- a/src/command/audio.cpp +++ b/src/command/audio.cpp @@ -80,7 +80,7 @@ struct audio_open final : public Command { STR_HELP("Open an audio file") void operator()(agi::Context *c) override { - auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.w64;*.wav;*.wma|" + auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.opus,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.opus;*.w64;*.wav;*.wma|" + _("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts|" + _("All Files") + " (*.*)|*.*"); auto filename = OpenFileSelector(_("Open Audio File"), "Path/Last/Audio", "", "", str, c->parent); diff --git a/src/command/video.cpp b/src/command/video.cpp index fb2bcb0ba..d3ffaf7fe 100644 --- a/src/command/video.cpp +++ b/src/command/video.cpp @@ -564,7 +564,7 @@ struct video_open final : public Command { STR_HELP("Open a video file") void operator()(agi::Context *c) override { - auto str = from_wx(_("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts,*.y4m,*.yuv)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts;*.y4m;*.yuv|" + auto str = from_wx(_("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.h264,*.hevc,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts,*.y4m,*.yuv)|*.asf;*.avi;*.avs;*.d2v;*.h264;*.hevc;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts;*.y4m;*.yuv|" + _("All Files") + " (*.*)|*.*"); auto filename = OpenFileSelector(_("Open video file"), "Path/Last/Video", "", "", str, c->parent); if (!filename.empty()) diff --git a/src/project.cpp b/src/project.cpp index 633a526b7..5dde79d4a 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -416,6 +416,8 @@ void Project::LoadList(std::vector const& files) { ".avi", ".avs", ".d2v", + ".h264", + ".hevc", ".m2ts", ".m4v", ".mkv", @@ -453,6 +455,7 @@ void Project::LoadList(std::vector const& files) { ".mka", ".mp3", ".ogg", + ".opus", ".w64", ".wav", ".wma" From b107077b20496cd6134f86b67407ea3095ee018f Mon Sep 17 00:00:00 2001 From: davste0816 Date: Tue, 12 Mar 2019 02:25:46 -0400 Subject: [PATCH 045/185] Add .webm to extension list, add .eac3 as an audio format Co-Authored-By: FichteFoll --- packages/win_installer/fragment_associations.iss | 4 ++++ src/command/audio.cpp | 2 +- src/project.cpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/win_installer/fragment_associations.iss b/packages/win_installer/fragment_associations.iss index 0162854d4..113b42dce 100644 --- a/packages/win_installer/fragment_associations.iss +++ b/packages/win_installer/fragment_associations.iss @@ -66,6 +66,8 @@ Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedT Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".opus"; ValueData: ""; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".h264"; ValueData: ""; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".hevc"; ValueData: ""; Flags: uninsdeletekey +Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".eac3"; ValueData: ""; Flags: uninsdeletekey +Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\aegisub{#ARCH}.exe\SupportedTypes"; ValueType: string; ValueName: ".webm"; ValueData: ""; Flags: uninsdeletekey ; Class for general subtitle formats Root: HKLM; Subkey: "SOFTWARE\Classes\Aegisub.Subtitle.1"; ValueType: string; ValueName: ""; ValueData: "Aegisub subtitle file"; Flags: uninsdeletekey Root: HKLM; Subkey: "SOFTWARE\Classes\Aegisub.Subtitle.1"; ValueType: dword; ValueName: "EditFlags"; ValueData: $af0; Flags: uninsdeletekey @@ -200,3 +202,5 @@ Root: HKLM; Subkey: "SOFTWARE\Classes\.avs\OpenWithProgids"; ValueType: string; Root: HKLM; Subkey: "SOFTWARE\Classes\.opus\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Audio.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.h264\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.hevc\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue +Root: HKLM; Subkey: "SOFTWARE\Classes\.eac3\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Audio.1"; Flags: uninsdeletevalue +Root: HKLM; Subkey: "SOFTWARE\Classes\.webm\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Media.1"; Flags: uninsdeletevalue diff --git a/src/command/audio.cpp b/src/command/audio.cpp index de25d6454..386866775 100644 --- a/src/command/audio.cpp +++ b/src/command/audio.cpp @@ -80,7 +80,7 @@ struct audio_open final : public Command { STR_HELP("Open an audio file") void operator()(agi::Context *c) override { - auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.opus,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.opus;*.w64;*.wav;*.wma|" + auto str = from_wx(_("Audio Formats") + " (*.aac,*.ac3,*.ape,*.dts,*.eac3,*.flac,*.m4a,*.mka,*.mp3,*.mp4,*.ogg,*.opus,*.w64,*.wav,*.wma)|*.aac;*.ac3;*.ape;*.dts;*.eac3;*.flac;*.m4a;*.mka;*.mp3;*.mp4;*.ogg;*.opus;*.w64;*.wav;*.wma|" + _("Video Formats") + " (*.asf,*.avi,*.avs,*.d2v,*.m2ts,*.m4v,*.mkv,*.mov,*.mp4,*.mpeg,*.mpg,*.ogm,*.webm,*.wmv,*.ts)|*.asf;*.avi;*.avs;*.d2v;*.m2ts;*.m4v;*.mkv;*.mov;*.mp4;*.mpeg;*.mpg;*.ogm;*.webm;*.wmv;*.ts|" + _("All Files") + " (*.*)|*.*"); auto filename = OpenFileSelector(_("Open Audio File"), "Path/Last/Audio", "", "", str, c->parent); diff --git a/src/project.cpp b/src/project.cpp index 5dde79d4a..e01dd3749 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -450,6 +450,7 @@ void Project::LoadList(std::vector const& files) { ".ac3", ".ape", ".dts", + ".eac3", ".flac", ".m4a", ".mka", From c2085d139c750fc54a2db11a1a62bcac0516944a Mon Sep 17 00:00:00 2001 From: davste0816 Date: Sat, 16 Mar 2019 15:12:57 -0400 Subject: [PATCH 046/185] Fix Move Down button in Export dialog --- src/dialog_export.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dialog_export.cpp b/src/dialog_export.cpp index d2584c528..d0bf99389 100644 --- a/src/dialog_export.cpp +++ b/src/dialog_export.cpp @@ -125,7 +125,7 @@ DialogExport::DialogExport(agi::Context *c) wxButton *btn_none = new wxButton(&d, -1, _("Select &None"), wxDefaultPosition, wxSize(80, -1)); btn_up->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) { swap(filter_list, filter_list->GetSelection() - 1, 0); }); - btn_down->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) { swap(filter_list, filter_list->GetSelection() - 1, 0); }); + btn_down->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) { swap(filter_list, filter_list->GetSelection(), 1); }); btn_all->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) { SetAll(true); }); btn_none->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) { SetAll(false); }); From a5228d8d4412980cb684a8030d28d9b35a4697d4 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 16 May 2019 14:46:26 -0400 Subject: [PATCH 047/185] Update OSX build instructions Two notable changes: attempting to forcibly link icu4c no longer works for :reasons:, so you have to manually add it to the pkg-config and compiler/linker search directories. Additionally, homebrew removed build options from most packages as part of https://github.com/Homebrew/homebrew-core/issues/31510, and this includes luajit and boost. The former builds with gc64 by default on HEAD, and the latter with icu4c support by default, so this actually somewhat simplifies things. --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 817a214d7..5739c3688 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,12 @@ Nothing older than Xcode 5 has been tested recently, but it is likely that some For personal usage, you can use homebrew to install almost all of Aegisub's dependencies: - brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config - brew install --devel --with-gc64 luajit - brew link --force icu4c + brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config boost + brew install luajit --HEAD brew link --force gettext - brew install --with-icu4c boost + export LDFLAGS="-L/usr/local/opt/icu4c/lib" + export CPPFLAGS="-I/usr/local/opt/icu4c/include" + export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig" wxWidgets is located in vendor/wxWidgets, and can be built like so: From fb02d6855ce8394a45a29611fd9e5c64edf4f5a9 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 16 May 2019 17:41:18 -0400 Subject: [PATCH 048/185] Fix compilation on Mojave --- Makefile.inc.in | 2 +- src/libresrc/Makefile | 2 +- vendor/luajit/src/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.inc.in b/Makefile.inc.in index a8c0e0c48..5f1a4054f 100644 --- a/Makefile.inc.in +++ b/Makefile.inc.in @@ -104,7 +104,7 @@ LIBS_PTHREAD = @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ LIBS_UCHARDET = @UCHARDET_LIBS@ ifeq (yes, $(BUILD_DARWIN)) -LIBS_LUA = $(TOP)vendor/luajit/src/libluajit-aegisub.so +LIBS_LUA = $(TOP)vendor/luajit/src/libluajit.a endif FONTCONFIG_CONF_DIR = @FONTCONFIG_CONF_DIR@ diff --git a/src/libresrc/Makefile b/src/libresrc/Makefile index 8b6d19595..6058ff9a3 100644 --- a/src/libresrc/Makefile +++ b/src/libresrc/Makefile @@ -10,7 +10,7 @@ resrc_OBJ := \ $(resrc_OBJ): $(d)default_config.h $(d)bitmap.h $(d)default_config.cpp $(d)bitmap.cpp -RESPACK := cd $(TOP)src/libresrc; $(BIN_LUA) $(TOP)tools/respack.lua +RESPACK := cd $(TOP)src/libresrc; $(TOP)$(BIN_LUA) $(TOP)tools/respack.lua $(d)bitmap.cpp: $(d)bitmap.h $(d)default_config.cpp: $(d)default_config.h diff --git a/vendor/luajit/src/Makefile b/vendor/luajit/src/Makefile index 5fba38718..16ddd9a17 100644 --- a/vendor/luajit/src/Makefile +++ b/vendor/luajit/src/Makefile @@ -298,7 +298,7 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector endif ifeq (Darwin,$(TARGET_SYS)) ifeq (,$(MACOSX_DEPLOYMENT_TARGET)) - export MACOSX_DEPLOYMENT_TARGET=10.4 + export MACOSX_DEPLOYMENT_TARGET=10.6 endif TARGET_STRIP+= -x TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC From 5005d6d2a2e5bc2083aca385118a291fa90cb54e Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 16 May 2019 18:10:43 -0400 Subject: [PATCH 049/185] Set visual tool default feature color correctly Fixes #50 --- src/visual_tool.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/visual_tool.cpp b/src/visual_tool.cpp index 13009127c..61d320722 100644 --- a/src/visual_tool.cpp +++ b/src/visual_tool.cpp @@ -275,7 +275,7 @@ template void VisualTool::DrawAllFeatures() { wxColour grid_color = to_wx(line_color_secondary_opt->GetColor()); gl.SetLineColour(grid_color, 1.0f, 1); - wxColour base_fill = to_wx(line_color_primary_opt->GetColor()); + wxColour base_fill = to_wx(highlight_color_primary_opt->GetColor()); wxColour active_fill = to_wx(highlight_color_secondary_opt->GetColor()); wxColour alt_fill = to_wx(line_color_primary_opt->GetColor()); for (auto& feature : features) { From 5ed4838d00d6984211a0652aad75afbfd552f287 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Thu, 16 May 2019 18:11:03 -0400 Subject: [PATCH 050/185] Convert osx-fix-libs to py3 --- tools/osx-fix-libs.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tools/osx-fix-libs.py b/tools/osx-fix-libs.py index 6e14c9064..ac4327a9a 100755 --- a/tools/osx-fix-libs.py +++ b/tools/osx-fix-libs.py @@ -32,21 +32,21 @@ def collectlibs(lib, masterlist, targetdir): badlist.append(l) if ((not is_sys_lib(l)) or is_bad_lib(l)) and not l in masterlist: locallist.append(l) - print "found %s:" % l + print("found %s:" % l) check = l link_list = [] while check: if os.path.isfile(check) and not os.path.islink(check): os.system("cp '%s' '%s'" % (check, targetdir)) - print " FILE %s ... copied to target" % check + print(" FILE %s ... copied to target" % check) if link_list: for link in link_list: link_map[link] = os.path.basename(check) break if os.path.islink(check): - print " LINK %s" % check + print(" LINK %s" % check) link_list.append(os.path.basename(check)) check = os.path.dirname(check) + "/" + os.readlink(check) @@ -60,20 +60,20 @@ def collectlibs(lib, masterlist, targetdir): exit; binname = sys.argv[1] targetdir = os.path.dirname(binname) -print "Searching for libraries in ", binname, "..." +print("Searching for libraries in ", binname, "...") libs = [binname] collectlibs(sys.argv[1], libs, targetdir) -print -print "System libraries used..." +print() +print("System libraries used...") goodlist.sort() for l in goodlist: - print l + print(l) -print -print "Fixing library install names..." +print() +print("Fixing library install names...") in_tool_cmdline = "install_name_tool " for lib in libs: libbase = os.path.basename(lib) @@ -85,19 +85,19 @@ for lib in libs: if libbase in link_map: libbase = link_map[libbase] - print "%s -> @executable_path/%s (REMAPPED)" % (lib, libbase) + print("%s -> @executable_path/%s (REMAPPED)" % (lib, libbase)) else: - print "%s -> @executable_path/%s" % (lib, libbase) + print("%s -> @executable_path/%s" % (lib, libbase)) os.system("%s -id '@executable_path/%s' '%s/%s'" % (in_tool_cmdline, libbase, targetdir, libbase)) sys.stdout.flush() if badlist: - print - print "WARNING: The following libraries have blacklisted paths:" + print() + print("WARNING: The following libraries have blacklisted paths:") for lib in sorted(badlist): - print lib - print "These paths normally have files from a package manager, which means that end result may not work if copied to another machine." + print(lib) + print("These paths normally have files from a package manager, which means that end result may not work if copied to another machine.") -print -print "All done!" +print() +print("All done!") From d9bd7def0bb96c13295878ac567a3f6cd86e360f Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Sep 2019 18:36:58 -0400 Subject: [PATCH 051/185] Fix autotools lua detection --- configure.ac | 2 +- src/libresrc/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 58dc23f8d..9cc9eaf53 100644 --- a/configure.ac +++ b/configure.ac @@ -435,7 +435,7 @@ AC_CHECK_PROGS([LUA], [lua luajit lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1]) # If the user doesn't have an installed copy of Lua, just use the one built # as part of building LuaJIT -AS_IF([test -z $LUA], [LUA="$srcdir/vendor/luajit/src/host/minilua"]) +AS_IF([test -z $LUA], [LUA='$(TOP)vendor/luajit/src/host/minilua']) ###################################################### # Debugging support diff --git a/src/libresrc/Makefile b/src/libresrc/Makefile index 6058ff9a3..8b6d19595 100644 --- a/src/libresrc/Makefile +++ b/src/libresrc/Makefile @@ -10,7 +10,7 @@ resrc_OBJ := \ $(resrc_OBJ): $(d)default_config.h $(d)bitmap.h $(d)default_config.cpp $(d)bitmap.cpp -RESPACK := cd $(TOP)src/libresrc; $(TOP)$(BIN_LUA) $(TOP)tools/respack.lua +RESPACK := cd $(TOP)src/libresrc; $(BIN_LUA) $(TOP)tools/respack.lua $(d)bitmap.cpp: $(d)bitmap.h $(d)default_config.cpp: $(d)default_config.h From d0bab1212c430c72b6072070c1679ef174286dff Mon Sep 17 00:00:00 2001 From: Andrew Neth Date: Sat, 8 Feb 2020 14:41:03 -0600 Subject: [PATCH 052/185] Look for both system fonts and user fonts on Windows (#64) * Look for both system fonts and user fonts on Windows * Move repeated font registry reading code to separate function * Pass the files vector to read_fonts_from_key as a reference * Allocate a larger filename buffer when necessary while reading fonts from registry --- src/font_file_lister_gdi.cpp | 65 +++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/src/font_file_lister_gdi.cpp b/src/font_file_lister_gdi.cpp index 1e55b7870..14ff9261a 100644 --- a/src/font_file_lister_gdi.cpp +++ b/src/font_file_lister_gdi.cpp @@ -28,6 +28,47 @@ #include #include +static void read_fonts_from_key(HKEY hkey, agi::fs::path font_dir, std::vector &files) { + static const auto fonts_key_name = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"; + + HKEY key; + auto ret = RegOpenKeyExW(hkey, fonts_key_name, 0, KEY_QUERY_VALUE, &key); + if (ret != ERROR_SUCCESS) return; + BOOST_SCOPE_EXIT_ALL(=) { RegCloseKey(key); }; + + DWORD name_buf_size = SHRT_MAX; + DWORD data_buf_size = MAX_PATH; + + auto font_name = new wchar_t[name_buf_size]; + auto font_filename = new wchar_t[data_buf_size]; + + for (DWORD i = 0;; ++i) { +retry: + DWORD name_len = name_buf_size; + DWORD data_len = data_buf_size; + + ret = RegEnumValueW(key, i, font_name, &name_len, NULL, NULL, reinterpret_cast(font_filename), &data_len); + if (ret == ERROR_MORE_DATA) { + data_buf_size = data_len; + delete font_filename; + font_filename = new wchar_t[data_buf_size]; + goto retry; + } + if (ret == ERROR_NO_MORE_ITEMS) break; + if (ret != ERROR_SUCCESS) continue; + + agi::fs::path font_path(font_filename); + if (!agi::fs::FileExists(font_path)) + // Doesn't make a ton of sense to do this with user fonts, but they seem to be stored as full paths anyway + font_path = font_dir / font_path; + if (agi::fs::FileExists(font_path)) // The path might simply be invalid + files.push_back(font_path); + } + + delete font_name; + delete font_filename; +} + namespace { uint32_t murmur3(const char *data, uint32_t len) { static const uint32_t c1 = 0xcc9e2d51; @@ -62,33 +103,17 @@ uint32_t murmur3(const char *data, uint32_t len) { } std::vector get_installed_fonts() { - static const auto fonts_key_name = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"; - std::vector files; - HKEY key; - auto ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, fonts_key_name, 0, KEY_QUERY_VALUE, &key); - if (ret != ERROR_SUCCESS) return files; - BOOST_SCOPE_EXIT_ALL(=) { RegCloseKey(key); }; - wchar_t fdir[MAX_PATH]; SHGetFolderPathW(NULL, CSIDL_FONTS, NULL, 0, fdir); agi::fs::path font_dir(fdir); - for (DWORD i = 0;; ++i) { - wchar_t font_name[SHRT_MAX], font_filename[MAX_PATH]; - DWORD name_len = sizeof(font_name); - DWORD data_len = sizeof(font_filename); + // System fonts + read_fonts_from_key(HKEY_LOCAL_MACHINE, font_dir, files); - ret = RegEnumValueW(key, i, font_name, &name_len, NULL, NULL, reinterpret_cast(font_filename), &data_len); - if (ret == ERROR_NO_MORE_ITEMS) break; - if (ret != ERROR_SUCCESS) continue; - - agi::fs::path font_path(font_filename); - if (!agi::fs::FileExists(font_path)) - font_path = font_dir / font_path; - files.push_back(font_path); - } + // User fonts + read_fonts_from_key(HKEY_CURRENT_USER, font_dir, files); return files; } From 8905921a2de0042a36de9493b83bbe315b0fb932 Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Wed, 15 Nov 2017 17:25:11 +0100 Subject: [PATCH 053/185] Initial port of the build system to Meson Still some TODOs left. Probably only works on Linux for now. --- build/meson.build | 5 + libaegisub/include/lagi_pre.h | 1 + libaegisub/meson.build | 88 +++++++++++++ meson.build | 147 +++++++++++++++++++++ meson_options.txt | 21 +++ src/include/agi_pre.h | 1 + src/libresrc/meson.build | 28 ++++ src/meson.build | 202 +++++++++++++++++++++++++++++ subprojects/luajit | 1 + vendor/luabins/src/meson.build | 11 ++ vendor/luajit/meson.build | 42 ++++++ vendor/luajit/src/host/meson.build | 50 +++++++ vendor/luajit/src/meson.build | 95 ++++++++++++++ 13 files changed, 692 insertions(+) create mode 100644 build/meson.build create mode 120000 libaegisub/include/lagi_pre.h create mode 100644 libaegisub/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 120000 src/include/agi_pre.h create mode 100644 src/libresrc/meson.build create mode 100644 src/meson.build create mode 120000 subprojects/luajit create mode 100644 vendor/luabins/src/meson.build create mode 100644 vendor/luajit/meson.build create mode 100644 vendor/luajit/src/host/meson.build create mode 100644 vendor/luajit/src/meson.build diff --git a/build/meson.build b/build/meson.build new file mode 100644 index 000000000..c0cdd8122 --- /dev/null +++ b/build/meson.build @@ -0,0 +1,5 @@ +version_sh = find_program('./version.sh') +version_inc = include_directories('.') +version_h = custom_target('git_version.h', + command : [version_sh, meson.source_root()], + output : ['git_version.h', 'git_version.xml']) diff --git a/libaegisub/include/lagi_pre.h b/libaegisub/include/lagi_pre.h new file mode 120000 index 000000000..13ed6ac57 --- /dev/null +++ b/libaegisub/include/lagi_pre.h @@ -0,0 +1 @@ +../lagi_pre.h \ No newline at end of file diff --git a/libaegisub/meson.build b/libaegisub/meson.build new file mode 100644 index 000000000..1752ff688 --- /dev/null +++ b/libaegisub/meson.build @@ -0,0 +1,88 @@ +libaegisub_src = [ + 'ass/dialogue_parser.cpp', + 'ass/time.cpp', + 'ass/uuencode.cpp', + + 'audio/provider_convert.cpp', + 'audio/provider.cpp', + 'audio/provider_dummy.cpp', + 'audio/provider_hd.cpp', + 'audio/provider_lock.cpp', + 'audio/provider_pcm.cpp', + 'audio/provider_ram.cpp', + + 'common/calltip_provider.cpp', + 'common/character_count.cpp', + 'common/charset_6937.cpp', + 'common/charset_conv.cpp', + 'common/charset.cpp', + 'common/color.cpp', + 'common/file_mapping.cpp', + 'common/format.cpp', + 'common/fs.cpp', + 'common/hotkey.cpp', + 'common/io.cpp', + 'common/json.cpp', + 'common/kana_table.cpp', + 'common/karaoke_matcher.cpp', + 'common/keyframe.cpp', + 'common/line_iterator.cpp', + 'common/log.cpp', + 'common/mru.cpp', + 'common/option.cpp', + 'common/option_value.cpp', + 'common/parser.cpp', + 'common/path.cpp', + 'common/thesaurus.cpp', + 'common/util.cpp', + 'common/vfr.cpp', + 'common/ycbcr_conv.cpp', + 'common/cajun/elements.cpp', + 'common/cajun/reader.cpp', + 'common/cajun/writer.cpp', + + 'lua/modules.cpp', + 'lua/script_reader.cpp', + 'lua/utils.cpp', + 'lua/modules/lfs.cpp', + 'lua/modules/re.cpp', + 'lua/modules/unicode.cpp', + 'lua/modules/lpeg.c', +] + +if host_machine.system() == 'darwin' + libaegisub_src += [ + 'osx/dispatch.mm', + 'osx/spellchecker.mm', + 'osx/util.mm', + ] +else + libaegisub_src += 'common/dispatch.cpp' + if host_machine.system() == 'windows' + libaegisub_src += [ + 'windows/access.cpp', + 'windows/charset_conv_win.cpp', + 'windows/fs.cpp', + 'windows/lagi_pre.cpp', + 'windows/log_win.cpp', + 'windows/path_win.cpp', + 'windows/util_win.cpp', + ] + else + libaegisub_src += [ + 'unix/access.cpp', + 'unix/fs.cpp', + 'unix/log.cpp', + 'unix/path.cpp', + 'unix/util.cpp', + ] + endif +endif + +libaegisub_cpp_pch = ['lagi_pre.h'] +libaegisub_inc = include_directories('include') + +libaegisub = static_library('aegisub', libaegisub_src, acconf, + include_directories : libaegisub_inc, + cpp_pch : 'include/lagi_pre.h', + dependencies : deps) diff --git a/meson.build b/meson.build new file mode 100644 index 000000000..78b4b28f2 --- /dev/null +++ b/meson.build @@ -0,0 +1,147 @@ +project('Aegisub', ['c', 'cpp'], license : 'BSD-3-Clause', + meson_version : '>=0.41.0', + default_options : ['cpp_std=c++11', 'b_lto=true']) + +subdir('build') + +dataroot = join_paths(get_option('prefix'), get_option('datadir'), 'aegisub') +add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language : 'cpp') +b_static = get_option('static') + +conf = configuration_data() +conf.set_quoted('P_DATA', dataroot) +conf.set_quoted('AEGISUB_CATALOG', 'aegisub') +conf.set_quoted('AEGISUB_COMMAND', 'aegisub') +if get_option('build_credit') != '' + conf.set_quoted('BUILD_CREDIT', get_option('build_credit')) +endif +conf.set('WITH_UPDATE_CHECKER', get_option('enable_update_checker')) + +deps = [] + +if host_machine.system() == 'darwin' + add_languages('objc') +else + deps += dependency('fontconfig', static: b_static) +endif + +cxx = meson.get_compiler('cpp') +cc = meson.get_compiler('c') +deps += cc.find_library('m', required : false) +deps += cc.find_library('dl', required : false) +deps += cc.find_library('iconv', required : false) + +deps += dependency('libass', version : '>=0.9.7', static: b_static) +deps += dependency('boost', version : '>=1.50.0', static: b_static, + modules : ['chrono', 'filesystem', 'locale', 'regex', + 'system', 'thread']) +deps += dependency('icu-uc', version : '>=4.8.1.1', static: b_static) +deps += dependency('icu-i18n', version : '>=4.8.1.1', static: b_static) +deps += dependency('zlib', static: b_static) + +dep_avail = [] +foreach dep : [ + # audio, in order of precedence + ['libpulse', '', 'PulseAudio'], + ['alsa', '', 'ALSA'], + ['portaudio-2.0', '', 'PortAudio'], + ['openal', '>=0.0.8', 'OpenAL'], + # video + ['ffms2', '', 'FFMS2'], + # other + ['fftw3', '', 'FFTW3'], + ['hunspell', '', 'Hunspell'], + ['uchardet', '', 'uchardet'], +] + d = dependency(dep[0], version : dep[1] != '' ? dep[1] : '>=0', + required : false, static: b_static) + + optname = 'enable_@0@'.format(dep[0].split('-')[0]) + if d.found() and get_option(optname) != 'false' + deps += d + conf.set('WITH_@0@'.format(dep[0].split('-')[0].to_upper()), '1') + dep_avail += dep[2] + elif get_option(optname) == 'true' + error('@0@ enabled but not found'.format(dep[2])) + endif +endforeach + +# TODO: OSS + +def_audio = get_option('default_audio_output') +if def_audio != 'auto' + if not dep_avail.contains(def_audio) + error('Default audio output "@0@" selected but not available'.format(def_audio)) + endif +elif dep_avail.length() != 0 + def_audio = dep_avail[0] +else + def_audio = '' +endif + +conf_platform = configuration_data() +conf_platform.set('DEFAULT_PLAYER_AUDIO', def_audio) + +luajit = dependency('luajit', version : '>=2.0.0', required : get_option('system_luajit')) +if luajit.found() + luajit_test = cc.run('''#include +int main(void) +{ + lua_State *L = luaL_newstate(); + if (!L) return 1; + // This is valid in lua 5.2, but a syntax error in 5.1 + const char testprogram[] = "function foo() while true do break return end end"; + return luaL_loadstring(L, testprogram) == LUA_ERRSYNTAX; +}''', dependencies : luajit) + + if luajit_test.returncode() == 1 + if get_option('system_luajit') + error('System luajit found but not compiled in 5.2 mode') + else + message('System luajit found but not compiled in 5.2 mode; using built-in luajit') + endif + else + deps += luajit + endif +else + message('System luajit not found; using built-in luajit') +endif + +lua_names = ['lua', 'luajit', 'lua5.3', 'lua5.2', 'lua-5.2', 'lua5.1', 'lua-5.1'] +if not deps.contains(luajit) + luajit_sp = subproject('luajit') + luajit_inc = luajit_sp.get_variable('incdir') + deps += luajit_sp.get_variable('luajit_dep') + lua_names += luajit_sp.get_variable('minilua').full_path() +else + luajit_inc = include_directories(luajit.get_pkgconfig_variable('includedir')) +endif +lua = find_program(lua_names, native : true) +subdir('vendor/luabins/src') + +deps += dependency('wxWidgets', version : '>=3.0.0', + modules : ['std', 'stc', 'gl']) + +dep_gl = dependency('gl', required : false) +if not dep_gl.found() + if host_machine.system() == 'windows' + dep_gl = cc.find_library('opengl32', required : false) + else + dep_gl = cc.find_library('GL', required : false) + endif + + if not cc.has_header('GL/gl.h') + dep_gl = dependency('', required : false) + endif +endif + +if not dep_gl.found() + error('OpenGL implementation not found') +endif + +deps += dep_gl + +acconf = configure_file(output : 'acconf.h', configuration : conf) + +subdir('libaegisub') +subdir('src') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 000000000..690d080c1 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,21 @@ +option('static', type : 'boolean', value : false, description : 'Build statically linked executable') + +option('enable_alsa', type : 'combo', choices : ['auto', 'true', 'false'], description : 'ALSA audio output') +option('enable_openal', type : 'combo', choices : ['auto', 'true', 'false'], description : 'OpenAL audio output') +option('enable_libpulse', type : 'combo', choices : ['auto', 'true', 'false'], description : 'PulseAudio audio output') +option('enable_portaudio', type : 'combo', choices : ['auto', 'true', 'false'], description : 'PortAudio audio output') +option('default_audio_output', type : 'combo', choices : ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio'], description : 'Default audio output') + +option('enable_ffms2', type : 'combo', choices : ['auto', 'true', 'false'], description : 'FFMS2 video source') + +option('enable_fftw3', type : 'combo', choices : ['auto', 'true', 'false'], description : 'FFTW3 support') +option('enable_hunspell', type : 'combo', choices : ['auto', 'true', 'false'], description : 'Hunspell spell checker') +option('enable_uchardet', type : 'combo', choices : ['auto', 'true', 'false'], description : 'uchardet character encoding detection') + +option('system_luajit', type : 'boolean', value : false, description : 'Force using system luajit') + +option('build_credit', type : 'string', value : '', description : 'Build credit shown in program title') + +option('enable_update_checker', type : 'boolean', value : false, description : 'Enable the update checker') +option('update_server', type : 'string', value : 'updates.aegisub.org', description : 'Server to use for the update checker') +option('update_url', type : 'string', value : '/trunk', description : 'Base path to use for the update checker') diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h new file mode 120000 index 000000000..7b2f4b2e2 --- /dev/null +++ b/src/include/agi_pre.h @@ -0,0 +1 @@ +../agi_pre.h \ No newline at end of file diff --git a/src/libresrc/meson.build b/src/libresrc/meson.build new file mode 100644 index 000000000..b9c5fc906 --- /dev/null +++ b/src/libresrc/meson.build @@ -0,0 +1,28 @@ +respack = [lua, files('../../tools/respack.lua')] + +resrc = [ + custom_target('bitmap.{cpp,h}', + command : respack + ['@INPUT@', '@OUTPUT@'], + input : files('../bitmaps/manifest.respack'), + output : ['bitmap.cpp', 'bitmap.h']) +] + +conf_platform_json = configure_file(input: 'default_config_platform.json.in', + output : '@BASENAME@', + configuration : conf_platform) + +if host_machine.system() == 'darwin' + resrc += custom_target('default_config.{cpp,h}', + command : respack + ['@INPUT0@', '@OUTPUT@'], + input : [files('manifest_osx.respack'), conf_platform_json], + output : ['default_config.cpp', 'default_config.h']) +else + resrc += custom_target('default_config.{cpp,h}', + command : respack + ['@INPUT0@', '@OUTPUT@'], + input : [files('manifest.respack'), conf_platform_json], + output : ['default_config.cpp', 'default_config.h']) +endif + + +libresrc_inc = include_directories('.') +libresrc = static_library('resrc', 'libresrc.cpp', resrc, dependencies : deps) diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 000000000..6a6091f18 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,202 @@ +subdir('libresrc') + +aegisub_src = files( + 'MatroskaParser.c', + 'aegisublocale.cpp', + 'ass_attachment.cpp', + 'ass_dialogue.cpp', + 'ass_entry.cpp', + 'ass_export_filter.cpp', + 'ass_exporter.cpp', + 'ass_file.cpp', + 'ass_karaoke.cpp', + 'ass_override.cpp', + 'ass_parser.cpp', + 'ass_style.cpp', + 'ass_style_storage.cpp', + 'async_video_provider.cpp', + 'audio_box.cpp', + 'audio_colorscheme.cpp', + 'audio_controller.cpp', + 'audio_display.cpp', + 'audio_karaoke.cpp', + 'audio_marker.cpp', + 'audio_player.cpp', + 'audio_provider_factory.cpp', + 'audio_renderer.cpp', + 'audio_renderer_spectrum.cpp', + 'audio_renderer_waveform.cpp', + 'audio_timing_dialogue.cpp', + 'audio_timing_karaoke.cpp', + 'auto4_base.cpp', + 'auto4_lua.cpp', + 'auto4_lua_assfile.cpp', + 'auto4_lua_dialog.cpp', + 'auto4_lua_progresssink.cpp', + 'avisynth_wrap.cpp', + 'base_grid.cpp', + 'charset_detect.cpp', + 'colorspace.cpp', + 'colour_button.cpp', + 'command/app.cpp', + 'command/audio.cpp', + 'command/automation.cpp', + 'command/command.cpp', + 'command/edit.cpp', + 'command/grid.cpp', + 'command/help.cpp', + 'command/keyframe.cpp', + 'command/recent.cpp', + 'command/subtitle.cpp', + 'command/time.cpp', + 'command/timecode.cpp', + 'command/tool.cpp', + 'command/video.cpp', + 'command/vis_tool.cpp', + 'compat.cpp', + 'context.cpp', + 'crash_writer.cpp', + 'dialog_about.cpp', + 'dialog_attachments.cpp', + 'dialog_automation.cpp', + 'dialog_autosave.cpp', + 'dialog_colorpicker.cpp', + 'dialog_detached_video.cpp', + 'dialog_dummy_video.cpp', + 'dialog_export.cpp', + 'dialog_export_ebu3264.cpp', + 'dialog_fonts_collector.cpp', + 'dialog_jumpto.cpp', + 'dialog_kara_timing_copy.cpp', + 'dialog_log.cpp', + 'dialog_paste_over.cpp', + 'dialog_progress.cpp', + 'dialog_properties.cpp', + 'dialog_resample.cpp', + 'dialog_search_replace.cpp', + 'dialog_selected_choices.cpp', + 'dialog_selection.cpp', + 'dialog_shift_times.cpp', + 'dialog_spellchecker.cpp', + 'dialog_style_editor.cpp', + 'dialog_style_manager.cpp', + 'dialog_styling_assistant.cpp', + 'dialog_text_import.cpp', + 'dialog_timing_processor.cpp', + 'dialog_translation.cpp', + 'dialog_version_check.cpp', + 'dialog_video_details.cpp', + 'dialog_video_properties.cpp', + 'export_fixstyle.cpp', + 'export_framerate.cpp', + 'fft.cpp', + 'font_file_lister.cpp', + 'frame_main.cpp', + 'gl_text.cpp', + 'gl_wrap.cpp', + 'grid_column.cpp', + 'help_button.cpp', + 'hotkey.cpp', + 'hotkey_data_view_model.cpp', + 'initial_line_state.cpp', + 'main.cpp', + 'menu.cpp', + 'mkv_wrap.cpp', + 'pen.cpp', + 'persist_location.cpp', + 'preferences.cpp', + 'preferences_base.cpp', + 'project.cpp', + 'resolution_resampler.cpp', + 'search_replace_engine.cpp', + 'selection_controller.cpp', + 'spellchecker.cpp', + 'spline.cpp', + 'spline_curve.cpp', + 'string_codec.cpp', + 'subs_controller.cpp', + 'subs_edit_box.cpp', + 'subs_edit_ctrl.cpp', + 'subs_preview.cpp', + 'subtitle_format.cpp', + 'subtitle_format_ass.cpp', + 'subtitle_format_ebu3264.cpp', + 'subtitle_format_encore.cpp', + 'subtitle_format_microdvd.cpp', + 'subtitle_format_mkv.cpp', + 'subtitle_format_srt.cpp', + 'subtitle_format_ssa.cpp', + 'subtitle_format_transtation.cpp', + 'subtitle_format_ttxt.cpp', + 'subtitle_format_txt.cpp', + 'subtitles_provider.cpp', + 'subtitles_provider_libass.cpp', + 'text_file_reader.cpp', + 'text_file_writer.cpp', + 'text_selection_controller.cpp', + 'thesaurus.cpp', + 'timeedit_ctrl.cpp', + 'toggle_bitmap.cpp', + 'toolbar.cpp', + 'tooltip_manager.cpp', + 'utils.cpp', + 'validators.cpp', + 'vector2d.cpp', + 'version.cpp', + 'video_box.cpp', + 'video_controller.cpp', + 'video_display.cpp', + 'video_frame.cpp', + 'video_out_gl.cpp', + 'video_provider_cache.cpp', + 'video_provider_dummy.cpp', + 'video_provider_manager.cpp', + 'video_provider_yuv4mpeg.cpp', + 'video_slider.cpp', + 'visual_feature.cpp', + 'visual_tool.cpp', + 'visual_tool_clip.cpp', + 'visual_tool_cross.cpp', + 'visual_tool_drag.cpp', + 'visual_tool_rotatexy.cpp', + 'visual_tool_rotatez.cpp', + 'visual_tool_scale.cpp', + 'visual_tool_vector_clip.cpp', +) + +if host_machine.system() == 'darwin' + aegisub_src += [ + 'font_file_lister_coretext.mm', + 'osx/osx_utils.mm', + 'osx/retina_helper.mm', + 'osx/scintilla_ime.mm', + ] +else + aegisub_src += 'font_file_lister_fontconfig.cpp' +endif + +opt_src = [ + ['ALSA', 'audio_player_alsa.cpp'], + ['PortAudio', 'audio_player_portaudio.cpp'], + ['PulseAudio', 'audio_player_pulse.cpp'], + ['OpenAL', 'audio_player_openal.cpp'], + ['OSS', 'audio_player_oss.cpp'], + + ['FFMS2', ['audio_provider_ffmpegsource.cpp', + 'video_provider_ffmpegsource.cpp', + 'ffmpegsource_common.cpp']], + + ['Hunspell', 'spellchecker_hunspell.cpp'], +] + +foreach opt : opt_src + if dep_avail.contains(opt[0]) + aegisub_src += opt[1] + endif +endforeach + +aegisub = executable('aegisub', aegisub_src, version_h, acconf, + link_with : [libresrc, libluabins, libaegisub], + include_directories : [libaegisub_inc, libresrc_inc, version_inc], + cpp_pch : 'include/agi_pre.h', + dependencies : deps) diff --git a/subprojects/luajit b/subprojects/luajit new file mode 120000 index 000000000..cf99205fa --- /dev/null +++ b/subprojects/luajit @@ -0,0 +1 @@ +../vendor/luajit \ No newline at end of file diff --git a/vendor/luabins/src/meson.build b/vendor/luabins/src/meson.build new file mode 100644 index 000000000..d785e3ba5 --- /dev/null +++ b/vendor/luabins/src/meson.build @@ -0,0 +1,11 @@ +luabins_src = files( + 'fwrite.c', + 'load.c', + 'luabins.c', + 'luainternals.c', + 'savebuffer.c', + 'save.c', + 'write.c', +) + +libluabins = static_library('luabins', luabins_src, include_directories : luajit_inc) diff --git a/vendor/luajit/meson.build b/vendor/luajit/meson.build new file mode 100644 index 000000000..9338096ce --- /dev/null +++ b/vendor/luajit/meson.build @@ -0,0 +1,42 @@ +project('luajit', 'c', version : '2.0.4', license : 'MIT') + +cc = meson.get_compiler('c') + +system_deps = [ + cc.find_library('dl', required : false), + cc.find_library('m', required : false) +] + +system_deps_native = [ + cc.find_library('dl', required : false, native : true), + cc.find_library('m', required : false, native : true) +] + +add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language : 'c') +if host_machine.system() == 'linux' + add_project_arguments('-DLUAJIT_USE_LINUX', language : 'c') + readline_dep = cc.find_library('readline') + ljvm_mode = 'elfasm' + ljvm_bout = 'lj_vm.s' +elif host_machine.system() == 'darwin' + add_project_arguments(['-DLUAJIT_USE_MACOSX'], language : 'c') + readline_dep = cc.find_library('readline') + ljvm_mode = 'machasm' + ljvm_bout = 'lj_vm.s' +elif host_machine.system() == 'windows' + add_project_arguments('-DLUAJIT_USE_WINDOWS', '-DWIN', + '-malign-double', language : 'c') + readline_dep = [] + ljvm_mode = 'peobj' + ljvm_bout = 'lj_vm.o' +else + readline_dep = [] + error('Unsupported platform') +endif + +incdir = include_directories('include') + +subdir('src') + +luajit_dep = declare_dependency(link_with : luajit_lib, + include_directories : incdir) diff --git a/vendor/luajit/src/host/meson.build b/vendor/luajit/src/host/meson.build new file mode 100644 index 000000000..2e43a8e5c --- /dev/null +++ b/vendor/luajit/src/host/meson.build @@ -0,0 +1,50 @@ +minilua = executable('minilua', 'minilua.c', + dependencies : system_deps_native, + native : true) + +if host_machine.cpu_family() == 'x86_64' + dynasm_arch = 'x86' +else + dynasm_arch = host_machine.cpu_family() +endif + +dynasm_dasc = files('../vm_@0@.dasc'.format(dynasm_arch)) +dasm = [minilua, files('../../dynasm/dynasm.lua')] + +# BUG: meson does not resolve paths correctly for subprojects +hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir()) + +checkdefs = [ + ['LJ_ARCH_BITS', '64', ['-D', 'P64']], + ['LJ_HASJIT', '1', ['-D', 'JIT']], + ['LJ_HASFFI', '1', ['-D', 'FFI']], + ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], +] + +if host_machine.cpu_family() == 'x86' + checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] +endif + +foreach def : checkdefs + if cc.get_define(def[0], prefix : hpre) == def[1] + dasm += def[2] + endif +endforeach + +buildvm_src = files( + 'buildvm.c', + 'buildvm_asm.c', + 'buildvm_peobj.c', + 'buildvm_lib.c', + 'buildvm_fold.c', +) + +buildvm_arch = custom_target('buildvm_arch.h', + command : dasm + ['-o', '@OUTPUT@', '@INPUT@'], + input : dynasm_dasc, + output : 'buildvm_arch.h') + +buildvm = executable('buildvm', buildvm_src, buildvm_arch, + dependencies : system_deps_native, + include_directories : src_inc, + native : true) diff --git a/vendor/luajit/src/meson.build b/vendor/luajit/src/meson.build new file mode 100644 index 000000000..7027ec24f --- /dev/null +++ b/vendor/luajit/src/meson.build @@ -0,0 +1,95 @@ +ljlib_src = files( + 'lib_base.c', + 'lib_bit.c', + 'lib_debug.c', + 'lib_ffi.c', + 'lib_io.c', + 'lib_jit.c', + 'lib_math.c', + 'lib_os.c', + 'lib_package.c', + 'lib_string.c', + 'lib_table.c', +) + +ljcore_src = files( + 'lib_aux.c', + 'lib_init.c', + 'lj_alloc.c', + 'lj_api.c', + 'lj_asm.c', + 'lj_bc.c', + 'lj_bcread.c', + 'lj_bcwrite.c', + 'lj_carith.c', + 'lj_ccall.c', + 'lj_ccallback.c', + 'lj_cconv.c', + 'lj_cdata.c', + 'lj_char.c', + 'lj_clib.c', + 'lj_cparse.c', + 'lj_crecord.c', + 'lj_ctype.c', + 'lj_debug.c', + 'lj_dispatch.c', + 'lj_err.c', + 'lj_ffrecord.c', + 'lj_func.c', + 'lj_gc.c', + 'lj_gdbjit.c', + 'lj_ir.c', + 'lj_lex.c', + 'lj_lib.c', + 'lj_load.c', + 'lj_mcode.c', + 'lj_meta.c', + 'lj_obj.c', + 'lj_opt_dce.c', + 'lj_opt_fold.c', + 'lj_opt_loop.c', + 'lj_opt_mem.c', + 'lj_opt_narrow.c', + 'lj_opt_sink.c', + 'lj_opt_split.c', + 'lj_parse.c', + 'lj_record.c', + 'lj_snap.c', + 'lj_state.c', + 'lj_str.c', + 'lj_strscan.c', + 'lj_tab.c', + 'lj_trace.c', + 'lj_udata.c', + 'lj_vmevent.c', + 'lj_vmmath.c', +) + +src_inc = include_directories('.') + +subdir('host') + +hdrgen = [ + 'bcdef', + 'ffdef', + 'libdef', + 'recdef', +] + +genheaders = [] +foreach h : hdrgen + genheaders += custom_target(h, + command : [buildvm, '-m', h, '-o', '@OUTPUT@', ljlib_src], + output : 'lj_@0@.h'.format(h)) +endforeach + +genheaders += custom_target('folddef', + command : [buildvm, '-m', 'folddef', '-o', '@OUTPUT@', files('lj_opt_fold.c')], + output : 'lj_folddef.h') + +ljvm = custom_target(ljvm_bout, + command : [buildvm, '-m', ljvm_mode, '-o', '@OUTPUT@'], + output : ljvm_bout) + +luajit_lib = static_library('luajit', ljlib_src, ljcore_src, genheaders, ljvm, + dependencies : system_deps) From 97b4dfb7f462169a627aa28643a97616b906348f Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Wed, 15 Nov 2017 19:20:08 +0100 Subject: [PATCH 054/185] Meson: add install rules --- automation/meson.build | 40 +++ meson.build | 4 +- packages/desktop/16x16/aegisub.png | Bin 0 -> 895 bytes packages/desktop/22x22/aegisub.png | Bin 0 -> 1315 bytes packages/desktop/24x24/aegisub.png | Bin 0 -> 1502 bytes packages/desktop/32x32/aegisub.png | Bin 0 -> 2144 bytes packages/desktop/48x48/aegisub.png | Bin 0 -> 3563 bytes packages/desktop/64x64/aegisub.png | Bin 0 -> 5030 bytes packages/desktop/scalable/aegisub.svg | 375 ++++++++++++++++++++++++++ packages/meson.build | 19 ++ src/meson.build | 1 + 11 files changed, 437 insertions(+), 2 deletions(-) create mode 100644 automation/meson.build create mode 100644 packages/desktop/16x16/aegisub.png create mode 100644 packages/desktop/22x22/aegisub.png create mode 100644 packages/desktop/24x24/aegisub.png create mode 100644 packages/desktop/32x32/aegisub.png create mode 100644 packages/desktop/48x48/aegisub.png create mode 100644 packages/desktop/64x64/aegisub.png create mode 100644 packages/desktop/scalable/aegisub.svg create mode 100644 packages/meson.build diff --git a/automation/meson.build b/automation/meson.build new file mode 100644 index 000000000..baf3b2615 --- /dev/null +++ b/automation/meson.build @@ -0,0 +1,40 @@ +automation_dir = join_paths(get_option('datadir'), 'aegisub', 'automation') + +install_data( + 'autoload/cleantags-autoload.lua', + 'autoload/karaoke-auto-leadin.lua', + 'autoload/kara-templater.lua', + 'autoload/macro-1-edgeblur.lua', + 'autoload/macro-2-mkfullwitdh.lua', + 'autoload/select-overlaps.moon', + 'autoload/strip-tags.lua', + install_dir : join_paths(automation_dir, 'autoload')) + +install_data( + 'demos/future-windy-blur.lua', + 'demos/raytracer.lua', + 'demos/raytracer-test1.ass', + install_dir : join_paths(automation_dir, 'demos')) + +install_data( + 'include/cleantags.lua', + 'include/clipboard.lua', + 'include/karaskel-auto4.lua', + 'include/karaskel.lua', + 'include/lfs.lua', + 'include/moonscript.lua', + 'include/re.lua', + 'include/unicode.lua', + 'include/utils-auto4.lua', + 'include/utils.lua', + install_dir : join_paths(automation_dir, 'include')) + +install_data( + 'include/aegisub/argcheck.moon', + 'include/aegisub/clipboard.lua', + 'include/aegisub/ffi.moon', + 'include/aegisub/lfs.moon', + 'include/aegisub/re.moon', + 'include/aegisub/unicode.moon', + 'include/aegisub/util.moon', + install_dir : join_paths(automation_dir, 'include', 'aegisub')) diff --git a/meson.build b/meson.build index 78b4b28f2..8b06c36ec 100644 --- a/meson.build +++ b/meson.build @@ -10,8 +10,6 @@ b_static = get_option('static') conf = configuration_data() conf.set_quoted('P_DATA', dataroot) -conf.set_quoted('AEGISUB_CATALOG', 'aegisub') -conf.set_quoted('AEGISUB_COMMAND', 'aegisub') if get_option('build_credit') != '' conf.set_quoted('BUILD_CREDIT', get_option('build_credit')) endif @@ -143,5 +141,7 @@ deps += dep_gl acconf = configure_file(output : 'acconf.h', configuration : conf) +subdir('automation') subdir('libaegisub') +subdir('packages') subdir('src') diff --git a/packages/desktop/16x16/aegisub.png b/packages/desktop/16x16/aegisub.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5d58846b0a611580e9092c9084be8ffce42969 GIT binary patch literal 895 zcmV-_1AzRAP)w~Lw+Vk}J95@FKoD;zR5djd~ga-f)puUj^YnjPxuIv*nBZmXuH-ppou zcNj*bHyn=ig~O4FT5Yb**zJD9I9YO>Z`MU*{dl^){lilO149SW=~sVRSh(=#+L~mZ z2hJFl9S2uU^M_~R@k8&X)BE>CA|E_t5CxJirql1GDAkU3bUfOo>)F$@vy+@LFweuc z^YhbNH7%2m#U4rezV>7&^nM&j{2L+P+4mQu#ZwhaE=@yZ6(IGm4&!OcO{e0kK}TntVtOQcSlC`xHpmzTE@-}jrnj&pr(X6F9**jO_av7ksCr1b@Ww18%g z!q7R0Tt=~2#I30*Pq?ld6ru(x-N4Rh^x#K5J?9>4X^GyW6qD&RnjJfEvA74T%@n#L zGuW3cH50Y_A)``3wp4=NXy6ad?J?kZ004#)iSbXjZ$F}>gb)HhdtU9gY__nI^OrKF zNzW`TefbJwuMa4dltMr#g|C6}>%cJz02U$FbRiDs2uU!`@ttX2j8rO_mseJDQQHnI zx^D265I1%SF$mws72wVl;0OmA1OTdzvvAe6&zjAqylh$JzdY~eFd_TdgB~1E>WLMl z$^~HF0^}5Mx&bUcROJQE3w6$iON{-}PwDV(-|yy}LvW6u?*~?a*lpm)yMR9lybZwr z?-u-3;GV5i?`|Mp<(yTNVoLy90$31e{S}z50H3?S?51mcfDC{woA3bO0H|yv{s#21 Vfu(7+5B~rF002ovPDHLkV1k#2um=DD literal 0 HcmV?d00001 diff --git a/packages/desktop/22x22/aegisub.png b/packages/desktop/22x22/aegisub.png new file mode 100644 index 0000000000000000000000000000000000000000..74dd3f2c323ca003ad4f562745feaa9d55e1f250 GIT binary patch literal 1315 zcmV+;1>E|HP)H^eDp7a7W^&dom?(+S={ z@v=)hTiaS=+q6w=+FYBH)12@7&bJ>nuIdE;Y%hH9zArBi@AdhB|44+#_{ECC!t=}B z?hNM~CIFZwIOi}q2cNNjPbM8UJO8P+h$|tn0^jcXjm>LO^HUY<+()7>pRk_iMf0 z=blp4&mSpyw&Aneo7?>URa+MFxR-tS+MGR;5s_4VDPvofWG;K0z(?Ia=BUh{Yw zIb&Gobb138%l_G|mGVk`QPHkFjg9NvvMe!5QBzQ0J0Fc!59|8j8bx{DCCf5r3?WV9 zMXO zB{jS|Dq01kAxknGib#pYTDGOcwU7`3b7q)zlBCqzY@3EMnXds%N&v9L>FoHVq2XD{ zG;uwVz`j%p{ee3C5??RsnF-mLJSQ0XIC2I7@okZ6Ys(i-6i&!zxz&2FpJzBe96Z1G}zbnqbVXbrg1UjQ<&{hukASuoLsgt$UD z^V2SrFKxovWD*xN4fbpnrG^1&n%*JcH%StN?Sr|T{+*^(ZQ8aCt!vi6X0zeapGjQr z1L)Y{2N&Pb2)VEZ8(%JkC<>^mugAPai*Q{K$Vp1+5HLKMNEAthlC)F-rfjkt?hOWg zip^$mI-R0oF>&&u0MG<@w(lOO#SNu$GnyBPXsQZagRqfn%1nx+$$Wn*LZxseDgx_*B%rWwOt;LL5{1pxqTK;YHV(u?numiifE z_XB%$-T208JydMBx3-C5ts|4cmv`^>ju7(W`&R3Rb2*pu@tkuU1BNdED|H|w0>Csd zd^MFi9@I3JKU+!&j>KX;(UFmBE5l)5MI-`8GKn@xssn(IT<&Im=Q-zy0PH4kOb0>_ zob*60x8uP0cz6D6uVgaXD5am4OVZXxQB?E(GRCBNoVSf~e&_~cSpeVwI)ED?VCTPa z1qtPHJ5HxkaY6`wn40=a;M}>^Vp*6cpgg<1!g-wysQMYW!2w(X5~IL20OS#_0DuhV z0}0byk!7sx8l~?A1YvutB>C7($!w;VDj?heJcGba0eI;$a3Kuro{c3v%%hWxox4TI zi*o>dqb#?njEQ-onJodp)d@^?0oHNgO#s@Hd`%Vy&{Zc0DRBPSf9)3FngSZ`&HsOr ZzX3d`rpmAYjO+ja002ovPDHLkV1j9=Y`g#f literal 0 HcmV?d00001 diff --git a/packages/desktop/24x24/aegisub.png b/packages/desktop/24x24/aegisub.png new file mode 100644 index 0000000000000000000000000000000000000000..f57623260d4f58fca6586388804b3d9a01fe4c15 GIT binary patch literal 1502 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/scalable/aegisub.svg b/packages/desktop/scalable/aegisub.svg new file mode 100644 index 000000000..e0dfeadb6 --- /dev/null +++ b/packages/desktop/scalable/aegisub.svg @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/meson.build b/packages/meson.build new file mode 100644 index 000000000..4b11c51fd --- /dev/null +++ b/packages/meson.build @@ -0,0 +1,19 @@ +c_pkg = configuration_data() +c_pkg.set('AEGISUB_COMMAND', 'aegisub') + +if host_machine.system() == 'windows' +elif host_machine.system() == 'darwin' +else + configure_file(input : 'desktop/aegisub.desktop.template.in', + output : 'aegisub.desktop', + configuration : c_pkg, + install_dir : join_paths(get_option('datadir'), 'applications')) +endif + +foreach s : ['16x16.png', '22x22.png', '24x24.png', '32x32.png', + '48x48.png', '64x64.png', 'scalable.svg'] + dir = s.split('.')[0] + ext = s.split('.')[1] + install_data(join_paths('desktop', dir, 'aegisub.' + ext), + install_dir : join_paths(get_option('datadir'), 'icons', 'hicolor', dir)) +endforeach diff --git a/src/meson.build b/src/meson.build index 6a6091f18..939978f4b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -199,4 +199,5 @@ aegisub = executable('aegisub', aegisub_src, version_h, acconf, link_with : [libresrc, libluabins, libaegisub], include_directories : [libaegisub_inc, libresrc_inc, version_inc], cpp_pch : 'include/agi_pre.h', + install : true, dependencies : deps) From 48af346e949838695bc095a160e69ca1f0e7e4cd Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Wed, 15 Nov 2017 19:41:04 +0100 Subject: [PATCH 055/185] Meson: add gettext i18n --- meson.build | 1 + po/POTFILES | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ po/meson.build | 34 +++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 po/POTFILES create mode 100644 po/meson.build diff --git a/meson.build b/meson.build index 8b06c36ec..86963c88f 100644 --- a/meson.build +++ b/meson.build @@ -144,4 +144,5 @@ acconf = configure_file(output : 'acconf.h', configuration : conf) subdir('automation') subdir('libaegisub') subdir('packages') +subdir('po') subdir('src') diff --git a/po/POTFILES b/po/POTFILES new file mode 100644 index 000000000..233f76faf --- /dev/null +++ b/po/POTFILES @@ -0,0 +1,81 @@ +src/ass_style.cpp +src/audio_box.cpp +src/audio_karaoke.cpp +src/audio_renderer_waveform.cpp +src/audio_timing_dialogue.cpp +src/audio_timing_karaoke.cpp +src/auto4_base.cpp +src/auto4_lua.cpp +src/charset_detect.cpp +src/command/app.cpp +src/command/audio.cpp +src/command/automation.cpp +src/command/command.cpp +src/command/command.h +src/command/edit.cpp +src/command/grid.cpp +src/command/keyframe.cpp +src/command/recent.cpp +src/command/subtitle.cpp +src/command/timecode.cpp +src/command/time.cpp +src/command/tool.cpp +src/command/video.cpp +src/dialog_about.cpp +src/dialog_attachments.cpp +src/dialog_automation.cpp +src/dialog_autosave.cpp +src/dialog_colorpicker.cpp +src/dialog_dummy_video.cpp +src/dialog_export.cpp +src/dialog_export_ebu3264.cpp +src/dialog_fonts_collector.cpp +src/dialog_jumpto.cpp +src/dialog_kara_timing_copy.cpp +src/dialog_log.cpp +src/dialog_paste_over.cpp +src/dialog_progress.cpp +src/dialog_properties.cpp +src/dialog_resample.cpp +src/dialog_search_replace.cpp +src/dialog_selected_choices.cpp +src/dialog_selection.cpp +src/dialog_shift_times.cpp +src/dialog_spellchecker.cpp +src/dialog_style_editor.cpp +src/dialog_style_manager.cpp +src/dialog_styling_assistant.cpp +src/dialog_text_import.cpp +src/dialog_timing_processor.cpp +src/dialog_translation.cpp +src/dialog_version_check.cpp +src/dialog_video_details.cpp +src/dialog_video_properties.cpp +src/export_fixstyle.cpp +src/export_framerate.cpp +src/ffmpegsource_common.cpp +src/font_file_lister.cpp +src/font_file_lister_fontconfig.cpp +src/font_file_lister_gdi.cpp +src/grid_column.cpp +src/hotkey.cpp +src/main.cpp +src/menu.cpp +src/mkv_wrap.cpp +src/preferences_base.cpp +src/preferences.cpp +src/project.cpp +src/resolution_resampler.cpp +src/search_replace_engine.cpp +src/subs_controller.cpp +src/subs_edit_box.cpp +src/subs_edit_ctrl.cpp +src/subtitle_format.cpp +src/subtitle_format_ebu3264.cpp +src/subtitles_provider_libass.cpp +src/timeedit_ctrl.cpp +src/video_box.cpp +src/visual_tool.cpp +src/visual_tool_cross.cpp +src/visual_tool_drag.cpp +src/visual_tool_vector_clip.cpp diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 000000000..8b2f65bf6 --- /dev/null +++ b/po/meson.build @@ -0,0 +1,34 @@ +i18n = import('i18n') +langs = [ + 'ar', + 'bg', + 'ca', + 'cs', + 'da', + 'de', + 'el', + 'es', + 'eu', + 'fa', + 'fi', + 'fr_FR', + 'gl', + 'hu', + 'id', + 'it', + 'ja', + 'ko', + 'nl', + 'pl', + 'pt_BR', + 'pt_PT', + 'ru', + 'sr_RS@latin', + 'sr_RS', + 'uk_UA', + 'vi', + 'zh_CN', + 'zh_TW', +] + +i18n.gettext('aegisub', languages : langs) From ca3802e82abb5beea95c279d221afd7087132d25 Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Wed, 15 Nov 2017 20:40:10 +0100 Subject: [PATCH 056/185] =?UTF-8?q?Meson:=20respack.lua=20=E2=86=92=20resp?= =?UTF-8?q?ack.py;=20works=20out-of-tree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meson.build | 3 --- src/libresrc/meson.build | 8 ++++---- tools/respack.py | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 7 deletions(-) create mode 100755 tools/respack.py diff --git a/meson.build b/meson.build index 86963c88f..8df4b7e7a 100644 --- a/meson.build +++ b/meson.build @@ -105,16 +105,13 @@ else message('System luajit not found; using built-in luajit') endif -lua_names = ['lua', 'luajit', 'lua5.3', 'lua5.2', 'lua-5.2', 'lua5.1', 'lua-5.1'] if not deps.contains(luajit) luajit_sp = subproject('luajit') luajit_inc = luajit_sp.get_variable('incdir') deps += luajit_sp.get_variable('luajit_dep') - lua_names += luajit_sp.get_variable('minilua').full_path() else luajit_inc = include_directories(luajit.get_pkgconfig_variable('includedir')) endif -lua = find_program(lua_names, native : true) subdir('vendor/luabins/src') deps += dependency('wxWidgets', version : '>=3.0.0', diff --git a/src/libresrc/meson.build b/src/libresrc/meson.build index b9c5fc906..b0392dc54 100644 --- a/src/libresrc/meson.build +++ b/src/libresrc/meson.build @@ -1,8 +1,8 @@ -respack = [lua, files('../../tools/respack.lua')] +respack = find_program('../../tools/respack.py') resrc = [ custom_target('bitmap.{cpp,h}', - command : respack + ['@INPUT@', '@OUTPUT@'], + command : [respack, '@INPUT@', '@OUTPUT@'], input : files('../bitmaps/manifest.respack'), output : ['bitmap.cpp', 'bitmap.h']) ] @@ -13,12 +13,12 @@ conf_platform_json = configure_file(input: 'default_config_platform.json.in', if host_machine.system() == 'darwin' resrc += custom_target('default_config.{cpp,h}', - command : respack + ['@INPUT0@', '@OUTPUT@'], + command : [respack, '@INPUT0@', '@OUTPUT@'], input : [files('manifest_osx.respack'), conf_platform_json], output : ['default_config.cpp', 'default_config.h']) else resrc += custom_target('default_config.{cpp,h}', - command : respack + ['@INPUT0@', '@OUTPUT@'], + command : [respack, '@INPUT0@', '@OUTPUT@'], input : [files('manifest.respack'), conf_platform_json], output : ['default_config.cpp', 'default_config.h']) endif diff --git a/tools/respack.py b/tools/respack.py new file mode 100755 index 000000000..c1c78fb73 --- /dev/null +++ b/tools/respack.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +import sys +import os + +manifestfile, cppfile, hfile = sys.argv[1:] + +with open(manifestfile, 'r') as manifest: + files = dict((x.strip(), None) for x in manifest.readlines() if x.strip() != '') + +sourcepath = os.path.split(manifestfile)[0] +buildpath = os.path.split(cppfile)[0] + +for k in files: + sf = os.path.join(sourcepath, k) + bf = os.path.join(buildpath, k) + + if os.path.isfile(sf): + files[k] = sf + elif os.path.isfile(bf): + files[k] = bf + else: + print("{}: Failed to open '{}'".format(manifestfile, k)) + sys.exit(1) + +with open(cppfile, 'w') as cpp: + cpp.write('#include "libresrc.h"\n') + with open(hfile, 'w') as h: + + for k in files: + with open(files[k], 'rb') as f: + data = [str(int(x)) for x in f.read()] + + datastr = ','.join(data) + name = os.path.splitext(os.path.basename(k))[0] + cpp.write('const unsigned char {}[] = {{{}}};\n'.format(name, datastr)) + h.write('extern const unsigned char {}[{}];\n'.format(name, len(data))) From 2e3a78383f3af2d589112c2de27497958112a194 Mon Sep 17 00:00:00 2001 From: Martin Herkt Date: Mon, 22 Jan 2018 10:03:45 +0100 Subject: [PATCH 057/185] Fix fdo icon install path --- packages/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/meson.build b/packages/meson.build index 4b11c51fd..30ba88c6e 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -15,5 +15,5 @@ foreach s : ['16x16.png', '22x22.png', '24x24.png', '32x32.png', dir = s.split('.')[0] ext = s.split('.')[1] install_data(join_paths('desktop', dir, 'aegisub.' + ext), - install_dir : join_paths(get_option('datadir'), 'icons', 'hicolor', dir)) + install_dir : join_paths(get_option('datadir'), 'icons', 'hicolor', dir, 'apps')) endforeach From a6076ed580b6864a3ee357dec88e928e7c4d255e Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Thu, 22 Feb 2018 18:02:04 +0100 Subject: [PATCH 058/185] Always build git_version.sh --- build/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/build/meson.build b/build/meson.build index c0cdd8122..85cc9f92c 100644 --- a/build/meson.build +++ b/build/meson.build @@ -2,4 +2,5 @@ version_sh = find_program('./version.sh') version_inc = include_directories('.') version_h = custom_target('git_version.h', command : [version_sh, meson.source_root()], + build_always : true, # has internal check whether target file will be refreshed output : ['git_version.h', 'git_version.xml']) From 2f13615342bd67e3462d7cb28f23af9d5ae199e7 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Jan 2019 20:48:16 +0100 Subject: [PATCH 059/185] add powershell version of build/version.sh --- build/version.ps1 | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 build/version.ps1 diff --git a/build/version.ps1 b/build/version.ps1 new file mode 100644 index 000000000..8a1769356 --- /dev/null +++ b/build/version.ps1 @@ -0,0 +1,89 @@ +$lastSvnRevision = 6962 +$lastSvnHash = '16cd907fe7482cb54a7374cd28b8501f138116be' +$defineNumberMatch = [regex] '^#define\s+(\w+)\s+(\d+)$' +$defineStringMatch = [regex] "^#define\s+(\w+)\s+[`"']?(.+?)[`"']?$" +$semVerMatch = [regex] 'v?(\d+)\.(\d+).(\d+)(?:-(\w+))?' + +if (!(git rev-parse --is-inside-work-tree 2>$null)) { + throw 'git repo not found' +} + +$repositoryRootPath = git rev-parse --git-path . | Join-Path -ChildPath .. | Resolve-Path +$buildPath = Join-Path $repositoryRootPath 'build' +$gitVersionHeaderPath = Join-Path $buildPath 'git_version.h' +$gitVersionXmlPath = Join-Path $buildPath 'git_version.xml' + +if (!(Test-Path $gitVersionHeaderPath)) { + throw "missing git_version.h in ${buildPath}" +} + +$version = @{} +Get-Content $gitVersionHeaderPath | %{$_.Trim()} | ?{$_} | %{ + switch -regex ($_) { + $defineNumberMatch { + $version[$Matches[1]] = [int]$Matches[2]; + } + $defineStringMatch { + $version[$Matches[1]] = $Matches[2]; + } + } +} + +if(!($version.ContainsKey('BUILD_GIT_VERSION_NUMBER') -and $version.ContainsKey('BUILD_GIT_VERSION_STRING'))) { + throw 'invalid git_version.h' +} + +$gitRevision = $lastSvnRevision + ((git log --pretty=oneline "$($lastSvnHash)..HEAD" 2>$null | Measure-Object).Count) +$gitBranch = git symbolic-ref --short HEAD 2>$null +$gitHash = git rev-parse --short HEAD 2>$null +$gitVersionString = $gitRevision, $gitBranch, $gitHash -join '-' +$exactGitTag = git describe --exact-match --tags 2>$null + +if ($exactGitTag -match $semVerMatch) { + $version['TAGGED_RELEASE'] = $true + $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] + $version['INSTALLER_VERSION'] = $gitVersionString = ($Matches[1..3] -join '.') + @("-$($Matches[4])",'')[!$Matches[4]] +} else { + foreach ($rev in (git rev-list --tags 2>$null)) { + $tag = git describe --exact-match --tags $rev 2>$null + if ($tag -match $semVerMatch) {# + $version['TAGGED_RELEASE'] = $false + $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] + $gitRevision + $version['INSTALLER_VERSION'] = ($Matches[1..3] -join '.') + "-" + $gitBranch + break; + } + } +} + +$version['BUILD_GIT_VERSION_NUMBER'] = $gitRevision +$version['BUILD_GIT_VERSION_STRING'] = $gitVersionString + +$version.GetEnumerator() | %{ + $type = $_.Value.GetType() + $value = $_.Value + $fmtValue = switch ($type) { + ([string]) {"`"$value`""} + ([int]) {$value.ToString()} + ([bool]) {([int]$value).ToString()} + ([object[]]) {$value -join ', '} + default { + Write-Host "no format known for type '$type' - trying default string conversion" -ForegroundColor Red + {"`"$($value.ToString())`""} + } + } + "#define $($_.Key) $($fmtValue)" +} | Out-File -FilePath $gitVersionHeaderPath -Encoding utf8 + +$gitVersionXml = [xml]@' + + + + + + + +'@ + +$gitVersionXml.Project.PropertyGroup.GitVersionNumber = $gitRevision.ToString() +$gitVersionXml.Project.PropertyGroup.GitVersionString = $gitVersionString +$gitVersionXml.Save($gitVersionXmlPath) \ No newline at end of file From c564df55aa90675d4634360469b03d49f963c0ca Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 28 Jan 2019 16:42:31 -0500 Subject: [PATCH 060/185] Bump Meson version Build file was using a now-deprecated property --- build/meson.build | 5 +++-- meson.build | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build/meson.build b/build/meson.build index 85cc9f92c..df569be2c 100644 --- a/build/meson.build +++ b/build/meson.build @@ -2,5 +2,6 @@ version_sh = find_program('./version.sh') version_inc = include_directories('.') version_h = custom_target('git_version.h', command : [version_sh, meson.source_root()], - build_always : true, # has internal check whether target file will be refreshed - output : ['git_version.h', 'git_version.xml']) + build_by_default: true, + build_always_stale: true, # has internal check whether target file will be refreshed + output: ['git_version.h', 'git_version.xml']) diff --git a/meson.build b/meson.build index 8df4b7e7a..1681bb1fa 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('Aegisub', ['c', 'cpp'], license : 'BSD-3-Clause', - meson_version : '>=0.41.0', + meson_version : '>=0.47.0', default_options : ['cpp_std=c++11', 'b_lto=true']) subdir('build') From 02a2c12ceece8c8071aeb8cc64ee1eee1afd3e9f Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 28 Jan 2019 16:43:36 -0500 Subject: [PATCH 061/185] Enable version.ps1 on windows version.ps1 itself still has to be modified to support out-of-tree builds --- build/meson.build | 6 +++++- build/version.ps1 | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/build/meson.build b/build/meson.build index df569be2c..0240f4671 100644 --- a/build/meson.build +++ b/build/meson.build @@ -1,4 +1,8 @@ -version_sh = find_program('./version.sh') +if host_machine.system() == 'windows' + version_sh = find_program('.\\version.ps1') +else + version_sh = find_program('./version.sh') +endif version_inc = include_directories('.') version_h = custom_target('git_version.h', command : [version_sh, meson.source_root()], diff --git a/build/version.ps1 b/build/version.ps1 index 8a1769356..caea09f02 100644 --- a/build/version.ps1 +++ b/build/version.ps1 @@ -1,3 +1,4 @@ +#!/usr/bin/env powershell $lastSvnRevision = 6962 $lastSvnHash = '16cd907fe7482cb54a7374cd28b8501f138116be' $defineNumberMatch = [regex] '^#define\s+(\w+)\s+(\d+)$' @@ -86,4 +87,4 @@ $gitVersionXml = [xml]@' $gitVersionXml.Project.PropertyGroup.GitVersionNumber = $gitRevision.ToString() $gitVersionXml.Project.PropertyGroup.GitVersionString = $gitVersionString -$gitVersionXml.Save($gitVersionXmlPath) \ No newline at end of file +$gitVersionXml.Save($gitVersionXmlPath) From 68f58431179bc037fbf52393d94f1b9862ac103e Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 28 Jan 2019 16:44:07 -0500 Subject: [PATCH 062/185] Don't require fontconfig on windows --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 1681bb1fa..9f5536e3a 100644 --- a/meson.build +++ b/meson.build @@ -19,7 +19,7 @@ deps = [] if host_machine.system() == 'darwin' add_languages('objc') -else +elif host_machine.system() != 'windows' deps += dependency('fontconfig', static: b_static) endif From cde5778283f8923f59c32752a8b2279595b03e45 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 30 Jan 2019 16:58:31 -0500 Subject: [PATCH 063/185] Make spacing around colons consistent --- automation/meson.build | 8 +++---- build/meson.build | 2 +- libaegisub/meson.build | 6 ++--- meson.build | 50 ++++++++++++++++++++-------------------- packages/meson.build | 12 +++++----- po/meson.build | 2 +- src/libresrc/meson.build | 24 +++++++++---------- src/meson.build | 12 +++++----- 8 files changed, 58 insertions(+), 58 deletions(-) diff --git a/automation/meson.build b/automation/meson.build index baf3b2615..ac3a2c85f 100644 --- a/automation/meson.build +++ b/automation/meson.build @@ -8,13 +8,13 @@ install_data( 'autoload/macro-2-mkfullwitdh.lua', 'autoload/select-overlaps.moon', 'autoload/strip-tags.lua', - install_dir : join_paths(automation_dir, 'autoload')) + install_dir: join_paths(automation_dir, 'autoload')) install_data( 'demos/future-windy-blur.lua', 'demos/raytracer.lua', 'demos/raytracer-test1.ass', - install_dir : join_paths(automation_dir, 'demos')) + install_dir: join_paths(automation_dir, 'demos')) install_data( 'include/cleantags.lua', @@ -27,7 +27,7 @@ install_data( 'include/unicode.lua', 'include/utils-auto4.lua', 'include/utils.lua', - install_dir : join_paths(automation_dir, 'include')) + install_dir: join_paths(automation_dir, 'include')) install_data( 'include/aegisub/argcheck.moon', @@ -37,4 +37,4 @@ install_data( 'include/aegisub/re.moon', 'include/aegisub/unicode.moon', 'include/aegisub/util.moon', - install_dir : join_paths(automation_dir, 'include', 'aegisub')) + install_dir: join_paths(automation_dir, 'include', 'aegisub')) diff --git a/build/meson.build b/build/meson.build index 0240f4671..d1699bc4c 100644 --- a/build/meson.build +++ b/build/meson.build @@ -5,7 +5,7 @@ else endif version_inc = include_directories('.') version_h = custom_target('git_version.h', - command : [version_sh, meson.source_root()], + command: [version_sh, meson.source_root()], build_by_default: true, build_always_stale: true, # has internal check whether target file will be refreshed output: ['git_version.h', 'git_version.xml']) diff --git a/libaegisub/meson.build b/libaegisub/meson.build index 1752ff688..a02cc8750 100644 --- a/libaegisub/meson.build +++ b/libaegisub/meson.build @@ -83,6 +83,6 @@ libaegisub_cpp_pch = ['lagi_pre.h'] libaegisub_inc = include_directories('include') libaegisub = static_library('aegisub', libaegisub_src, acconf, - include_directories : libaegisub_inc, - cpp_pch : 'include/lagi_pre.h', - dependencies : deps) + include_directories: libaegisub_inc, + cpp_pch: 'include/lagi_pre.h', + dependencies: deps) diff --git a/meson.build b/meson.build index 9f5536e3a..139132c13 100644 --- a/meson.build +++ b/meson.build @@ -1,11 +1,11 @@ -project('Aegisub', ['c', 'cpp'], license : 'BSD-3-Clause', - meson_version : '>=0.47.0', - default_options : ['cpp_std=c++11', 'b_lto=true']) +project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', + meson_version: '>=0.47.0', + default_options: ['cpp_std=c++11', 'b_lto=true']) subdir('build') dataroot = join_paths(get_option('prefix'), get_option('datadir'), 'aegisub') -add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language : 'cpp') +add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') b_static = get_option('static') conf = configuration_data() @@ -25,20 +25,20 @@ endif cxx = meson.get_compiler('cpp') cc = meson.get_compiler('c') -deps += cc.find_library('m', required : false) -deps += cc.find_library('dl', required : false) -deps += cc.find_library('iconv', required : false) +deps += cc.find_library('m', required: false) +deps += cc.find_library('dl', required: false) +deps += cc.find_library('iconv', required: false) -deps += dependency('libass', version : '>=0.9.7', static: b_static) -deps += dependency('boost', version : '>=1.50.0', static: b_static, - modules : ['chrono', 'filesystem', 'locale', 'regex', - 'system', 'thread']) -deps += dependency('icu-uc', version : '>=4.8.1.1', static: b_static) -deps += dependency('icu-i18n', version : '>=4.8.1.1', static: b_static) +deps += dependency('libass', version: '>=0.9.7', static: b_static) +deps += dependency('boost', version: '>=1.50.0', static: b_static, + modules: ['chrono', 'filesystem', 'locale', 'regex', + 'system', 'thread']) +deps += dependency('icu-uc', version: '>=4.8.1.1', static: b_static) +deps += dependency('icu-i18n', version: '>=4.8.1.1', static: b_static) deps += dependency('zlib', static: b_static) dep_avail = [] -foreach dep : [ +foreach dep: [ # audio, in order of precedence ['libpulse', '', 'PulseAudio'], ['alsa', '', 'ALSA'], @@ -51,8 +51,8 @@ foreach dep : [ ['hunspell', '', 'Hunspell'], ['uchardet', '', 'uchardet'], ] - d = dependency(dep[0], version : dep[1] != '' ? dep[1] : '>=0', - required : false, static: b_static) + d = dependency(dep[0], version: dep[1] != '' ? dep[1]: '>=0', + required: false, static: b_static) optname = 'enable_@0@'.format(dep[0].split('-')[0]) if d.found() and get_option(optname) != 'false' @@ -80,7 +80,7 @@ endif conf_platform = configuration_data() conf_platform.set('DEFAULT_PLAYER_AUDIO', def_audio) -luajit = dependency('luajit', version : '>=2.0.0', required : get_option('system_luajit')) +luajit = dependency('luajit', version: '>=2.0.0', required: get_option('system_luajit')) if luajit.found() luajit_test = cc.run('''#include int main(void) @@ -90,7 +90,7 @@ int main(void) // This is valid in lua 5.2, but a syntax error in 5.1 const char testprogram[] = "function foo() while true do break return end end"; return luaL_loadstring(L, testprogram) == LUA_ERRSYNTAX; -}''', dependencies : luajit) +}''', dependencies: luajit) if luajit_test.returncode() == 1 if get_option('system_luajit') @@ -114,19 +114,19 @@ else endif subdir('vendor/luabins/src') -deps += dependency('wxWidgets', version : '>=3.0.0', - modules : ['std', 'stc', 'gl']) +deps += dependency('wxWidgets', version: '>=3.0.0', + modules: ['std', 'stc', 'gl']) -dep_gl = dependency('gl', required : false) +dep_gl = dependency('gl', required: false) if not dep_gl.found() if host_machine.system() == 'windows' - dep_gl = cc.find_library('opengl32', required : false) + dep_gl = cc.find_library('opengl32', required: false) else - dep_gl = cc.find_library('GL', required : false) + dep_gl = cc.find_library('GL', required: false) endif if not cc.has_header('GL/gl.h') - dep_gl = dependency('', required : false) + dep_gl = dependency('', required: false) endif endif @@ -136,7 +136,7 @@ endif deps += dep_gl -acconf = configure_file(output : 'acconf.h', configuration : conf) +acconf = configure_file(output: 'acconf.h', configuration: conf) subdir('automation') subdir('libaegisub') diff --git a/packages/meson.build b/packages/meson.build index 30ba88c6e..3be1d6301 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -4,16 +4,16 @@ c_pkg.set('AEGISUB_COMMAND', 'aegisub') if host_machine.system() == 'windows' elif host_machine.system() == 'darwin' else - configure_file(input : 'desktop/aegisub.desktop.template.in', - output : 'aegisub.desktop', - configuration : c_pkg, - install_dir : join_paths(get_option('datadir'), 'applications')) + configure_file(input: 'desktop/aegisub.desktop.template.in', + output: 'aegisub.desktop', + configuration: c_pkg, + install_dir: join_paths(get_option('datadir'), 'applications')) endif -foreach s : ['16x16.png', '22x22.png', '24x24.png', '32x32.png', +foreach s: ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] dir = s.split('.')[0] ext = s.split('.')[1] install_data(join_paths('desktop', dir, 'aegisub.' + ext), - install_dir : join_paths(get_option('datadir'), 'icons', 'hicolor', dir, 'apps')) + install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', dir, 'apps')) endforeach diff --git a/po/meson.build b/po/meson.build index 8b2f65bf6..48bded975 100644 --- a/po/meson.build +++ b/po/meson.build @@ -31,4 +31,4 @@ langs = [ 'zh_TW', ] -i18n.gettext('aegisub', languages : langs) +i18n.gettext('aegisub', languages: langs) diff --git a/src/libresrc/meson.build b/src/libresrc/meson.build index b0392dc54..9c4ab499e 100644 --- a/src/libresrc/meson.build +++ b/src/libresrc/meson.build @@ -2,27 +2,27 @@ respack = find_program('../../tools/respack.py') resrc = [ custom_target('bitmap.{cpp,h}', - command : [respack, '@INPUT@', '@OUTPUT@'], - input : files('../bitmaps/manifest.respack'), - output : ['bitmap.cpp', 'bitmap.h']) + command: [respack, '@INPUT@', '@OUTPUT@'], + input: files('../bitmaps/manifest.respack'), + output: ['bitmap.cpp', 'bitmap.h']) ] conf_platform_json = configure_file(input: 'default_config_platform.json.in', - output : '@BASENAME@', - configuration : conf_platform) + output: '@BASENAME@', + configuration: conf_platform) if host_machine.system() == 'darwin' resrc += custom_target('default_config.{cpp,h}', - command : [respack, '@INPUT0@', '@OUTPUT@'], - input : [files('manifest_osx.respack'), conf_platform_json], - output : ['default_config.cpp', 'default_config.h']) + command: [respack, '@INPUT0@', '@OUTPUT@'], + input: [files('manifest_osx.respack'), conf_platform_json], + output: ['default_config.cpp', 'default_config.h']) else resrc += custom_target('default_config.{cpp,h}', - command : [respack, '@INPUT0@', '@OUTPUT@'], - input : [files('manifest.respack'), conf_platform_json], - output : ['default_config.cpp', 'default_config.h']) + command: [respack, '@INPUT0@', '@OUTPUT@'], + input: [files('manifest.respack'), conf_platform_json], + output: ['default_config.cpp', 'default_config.h']) endif libresrc_inc = include_directories('.') -libresrc = static_library('resrc', 'libresrc.cpp', resrc, dependencies : deps) +libresrc = static_library('resrc', 'libresrc.cpp', resrc, dependencies: deps) diff --git a/src/meson.build b/src/meson.build index 939978f4b..df94b4b6f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -189,15 +189,15 @@ opt_src = [ ['Hunspell', 'spellchecker_hunspell.cpp'], ] -foreach opt : opt_src +foreach opt: opt_src if dep_avail.contains(opt[0]) aegisub_src += opt[1] endif endforeach aegisub = executable('aegisub', aegisub_src, version_h, acconf, - link_with : [libresrc, libluabins, libaegisub], - include_directories : [libaegisub_inc, libresrc_inc, version_inc], - cpp_pch : 'include/agi_pre.h', - install : true, - dependencies : deps) + link_with: [libresrc, libluabins, libaegisub], + include_directories: [libaegisub_inc, libresrc_inc, version_inc], + cpp_pch: 'include/agi_pre.h', + install: true, + dependencies: deps) From 83fcab07755699f7af16046ffc0b60737e7659b3 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 30 Jan 2019 17:07:39 -0500 Subject: [PATCH 064/185] Switch to newer path concatenation syntax --- automation/meson.build | 10 +++++----- meson.build | 4 ++-- packages/meson.build | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/automation/meson.build b/automation/meson.build index ac3a2c85f..fff6b45c1 100644 --- a/automation/meson.build +++ b/automation/meson.build @@ -1,4 +1,4 @@ -automation_dir = join_paths(get_option('datadir'), 'aegisub', 'automation') +automation_dir = get_option('datadir') / 'aegisub' / 'automation' install_data( 'autoload/cleantags-autoload.lua', @@ -8,13 +8,13 @@ install_data( 'autoload/macro-2-mkfullwitdh.lua', 'autoload/select-overlaps.moon', 'autoload/strip-tags.lua', - install_dir: join_paths(automation_dir, 'autoload')) + install_dir: automation_dir / 'autoload') install_data( 'demos/future-windy-blur.lua', 'demos/raytracer.lua', 'demos/raytracer-test1.ass', - install_dir: join_paths(automation_dir, 'demos')) + install_dir: automation_dir / 'demos') install_data( 'include/cleantags.lua', @@ -27,7 +27,7 @@ install_data( 'include/unicode.lua', 'include/utils-auto4.lua', 'include/utils.lua', - install_dir: join_paths(automation_dir, 'include')) + install_dir: automation_dir / 'include') install_data( 'include/aegisub/argcheck.moon', @@ -37,4 +37,4 @@ install_data( 'include/aegisub/re.moon', 'include/aegisub/unicode.moon', 'include/aegisub/util.moon', - install_dir: join_paths(automation_dir, 'include', 'aegisub')) + install_dir: automation_dir / 'include' / 'aegisub') diff --git a/meson.build b/meson.build index 139132c13..f87aa28a0 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,10 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', - meson_version: '>=0.47.0', + meson_version: '>=0.49.0', default_options: ['cpp_std=c++11', 'b_lto=true']) subdir('build') -dataroot = join_paths(get_option('prefix'), get_option('datadir'), 'aegisub') +dataroot = get_option('prefix') / get_option('datadir') / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') b_static = get_option('static') diff --git a/packages/meson.build b/packages/meson.build index 3be1d6301..799f4ff68 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -7,13 +7,13 @@ else configure_file(input: 'desktop/aegisub.desktop.template.in', output: 'aegisub.desktop', configuration: c_pkg, - install_dir: join_paths(get_option('datadir'), 'applications')) + install_dir: get_option('datadir') / 'applications') endif foreach s: ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] dir = s.split('.')[0] ext = s.split('.')[1] - install_data(join_paths('desktop', dir, 'aegisub.' + ext), - install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', dir, 'apps')) + install_data('desktop' / dir / 'aegisub.' + ext), + install_dir: get_option('datadir') / 'icons' / 'hicolor' / dir / 'apps') endforeach From ddd6a4f289831a684e837fcdf0a040ead9e307bc Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 30 Jan 2019 17:47:33 -0500 Subject: [PATCH 065/185] Move version generation scripts up a level --- build/meson.build | 11 ----------- meson.build | 12 +++++++++++- build/version.ps1 => version.ps1 | 0 build/version.sh => version.sh | 0 4 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 build/meson.build rename build/version.ps1 => version.ps1 (100%) rename build/version.sh => version.sh (100%) mode change 100755 => 100644 diff --git a/build/meson.build b/build/meson.build deleted file mode 100644 index d1699bc4c..000000000 --- a/build/meson.build +++ /dev/null @@ -1,11 +0,0 @@ -if host_machine.system() == 'windows' - version_sh = find_program('.\\version.ps1') -else - version_sh = find_program('./version.sh') -endif -version_inc = include_directories('.') -version_h = custom_target('git_version.h', - command: [version_sh, meson.source_root()], - build_by_default: true, - build_always_stale: true, # has internal check whether target file will be refreshed - output: ['git_version.h', 'git_version.xml']) diff --git a/meson.build b/meson.build index f87aa28a0..11204c887 100644 --- a/meson.build +++ b/meson.build @@ -2,7 +2,17 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', meson_version: '>=0.49.0', default_options: ['cpp_std=c++11', 'b_lto=true']) -subdir('build') +if host_machine.system() == 'windows' + version_sh = find_program('version.ps1') +else + version_sh = find_program('version.sh') +endif +version_inc = include_directories('.') +version_h = custom_target('git_version.h', + command: [version_sh, meson.source_root()], + build_by_default: true, + build_always_stale: true, # has internal check whether target file will be refreshed + output: ['git_version.h', 'git_version.xml']) dataroot = get_option('prefix') / get_option('datadir') / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') diff --git a/build/version.ps1 b/version.ps1 similarity index 100% rename from build/version.ps1 rename to version.ps1 diff --git a/build/version.sh b/version.sh old mode 100755 new mode 100644 similarity index 100% rename from build/version.sh rename to version.sh From 3b7724aab49f33328cc33c21c7ebca47b1809b3c Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 30 Jan 2019 18:33:39 -0500 Subject: [PATCH 066/185] Fix spacing around colons in luajit subproject files --- vendor/luabins/src/meson.build | 2 +- vendor/luajit/meson.build | 22 +++++++++++----------- vendor/luajit/src/host/meson.build | 20 ++++++++++---------- vendor/luajit/src/meson.build | 16 ++++++++-------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/vendor/luabins/src/meson.build b/vendor/luabins/src/meson.build index d785e3ba5..3861eb6d2 100644 --- a/vendor/luabins/src/meson.build +++ b/vendor/luabins/src/meson.build @@ -8,4 +8,4 @@ luabins_src = files( 'write.c', ) -libluabins = static_library('luabins', luabins_src, include_directories : luajit_inc) +libluabins = static_library('luabins', luabins_src, include_directories: luajit_inc) diff --git a/vendor/luajit/meson.build b/vendor/luajit/meson.build index 9338096ce..38b2f9743 100644 --- a/vendor/luajit/meson.build +++ b/vendor/luajit/meson.build @@ -1,31 +1,31 @@ -project('luajit', 'c', version : '2.0.4', license : 'MIT') +project('luajit', 'c', version: '2.0.4', license: 'MIT') cc = meson.get_compiler('c') system_deps = [ - cc.find_library('dl', required : false), - cc.find_library('m', required : false) + cc.find_library('dl', required: false), + cc.find_library('m', required: false) ] system_deps_native = [ - cc.find_library('dl', required : false, native : true), - cc.find_library('m', required : false, native : true) + cc.find_library('dl', required: false, native: true), + cc.find_library('m', required: false, native: true) ] -add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language : 'c') +add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language: 'c') if host_machine.system() == 'linux' - add_project_arguments('-DLUAJIT_USE_LINUX', language : 'c') + add_project_arguments('-DLUAJIT_USE_LINUX', language: 'c') readline_dep = cc.find_library('readline') ljvm_mode = 'elfasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'darwin' - add_project_arguments(['-DLUAJIT_USE_MACOSX'], language : 'c') + add_project_arguments(['-DLUAJIT_USE_MACOSX'], language: 'c') readline_dep = cc.find_library('readline') ljvm_mode = 'machasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'windows' add_project_arguments('-DLUAJIT_USE_WINDOWS', '-DWIN', - '-malign-double', language : 'c') + '-malign-double', language: 'c') readline_dep = [] ljvm_mode = 'peobj' ljvm_bout = 'lj_vm.o' @@ -38,5 +38,5 @@ incdir = include_directories('include') subdir('src') -luajit_dep = declare_dependency(link_with : luajit_lib, - include_directories : incdir) +luajit_dep = declare_dependency(link_with: luajit_lib, + include_directories: incdir) diff --git a/vendor/luajit/src/host/meson.build b/vendor/luajit/src/host/meson.build index 2e43a8e5c..eca091c46 100644 --- a/vendor/luajit/src/host/meson.build +++ b/vendor/luajit/src/host/meson.build @@ -1,6 +1,6 @@ minilua = executable('minilua', 'minilua.c', - dependencies : system_deps_native, - native : true) + dependencies: system_deps_native, + native: true) if host_machine.cpu_family() == 'x86_64' dynasm_arch = 'x86' @@ -25,8 +25,8 @@ if host_machine.cpu_family() == 'x86' checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] endif -foreach def : checkdefs - if cc.get_define(def[0], prefix : hpre) == def[1] +foreach def: checkdefs + if cc.get_define(def[0], prefix: hpre) == def[1] dasm += def[2] endif endforeach @@ -40,11 +40,11 @@ buildvm_src = files( ) buildvm_arch = custom_target('buildvm_arch.h', - command : dasm + ['-o', '@OUTPUT@', '@INPUT@'], - input : dynasm_dasc, - output : 'buildvm_arch.h') + command: dasm + ['-o', '@OUTPUT@', '@INPUT@'], + input: dynasm_dasc, + output: 'buildvm_arch.h') buildvm = executable('buildvm', buildvm_src, buildvm_arch, - dependencies : system_deps_native, - include_directories : src_inc, - native : true) + dependencies: system_deps_native, + include_directories: src_inc, + native: true) diff --git a/vendor/luajit/src/meson.build b/vendor/luajit/src/meson.build index 7027ec24f..a2224c393 100644 --- a/vendor/luajit/src/meson.build +++ b/vendor/luajit/src/meson.build @@ -77,19 +77,19 @@ hdrgen = [ ] genheaders = [] -foreach h : hdrgen +foreach h: hdrgen genheaders += custom_target(h, - command : [buildvm, '-m', h, '-o', '@OUTPUT@', ljlib_src], - output : 'lj_@0@.h'.format(h)) + command: [buildvm, '-m', h, '-o', '@OUTPUT@', ljlib_src], + output: 'lj_@0@.h'.format(h)) endforeach genheaders += custom_target('folddef', - command : [buildvm, '-m', 'folddef', '-o', '@OUTPUT@', files('lj_opt_fold.c')], - output : 'lj_folddef.h') + command: [buildvm, '-m', 'folddef', '-o', '@OUTPUT@', files('lj_opt_fold.c')], + output: 'lj_folddef.h') ljvm = custom_target(ljvm_bout, - command : [buildvm, '-m', ljvm_mode, '-o', '@OUTPUT@'], - output : ljvm_bout) + command: [buildvm, '-m', ljvm_mode, '-o', '@OUTPUT@'], + output: ljvm_bout) luajit_lib = static_library('luajit', ljlib_src, ljcore_src, genheaders, ljvm, - dependencies : system_deps) + dependencies: system_deps) From f361138a4daab0bfed7f3b3d0610bafa85f1b7e5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Fri, 1 Feb 2019 13:03:57 -0500 Subject: [PATCH 067/185] Switch from combo option to feature where appropriate Also remove the extra space before colons :) --- meson.build | 4 ++-- meson_options.txt | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/meson.build b/meson.build index 11204c887..1a48dfc51 100644 --- a/meson.build +++ b/meson.build @@ -65,11 +65,11 @@ foreach dep: [ required: false, static: b_static) optname = 'enable_@0@'.format(dep[0].split('-')[0]) - if d.found() and get_option(optname) != 'false' + if d.found() and get_option(optname) != 'disabled' deps += d conf.set('WITH_@0@'.format(dep[0].split('-')[0].to_upper()), '1') dep_avail += dep[2] - elif get_option(optname) == 'true' + elif get_option(optname) == 'enabled' error('@0@ enabled but not found'.format(dep[2])) endif endforeach diff --git a/meson_options.txt b/meson_options.txt index 690d080c1..f80de7e63 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,21 +1,21 @@ -option('static', type : 'boolean', value : false, description : 'Build statically linked executable') +option('static', type: 'boolean', value: false, description: 'Build statically linked executable') -option('enable_alsa', type : 'combo', choices : ['auto', 'true', 'false'], description : 'ALSA audio output') -option('enable_openal', type : 'combo', choices : ['auto', 'true', 'false'], description : 'OpenAL audio output') -option('enable_libpulse', type : 'combo', choices : ['auto', 'true', 'false'], description : 'PulseAudio audio output') -option('enable_portaudio', type : 'combo', choices : ['auto', 'true', 'false'], description : 'PortAudio audio output') -option('default_audio_output', type : 'combo', choices : ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio'], description : 'Default audio output') +option('enable_alsa', type: 'feature', description: 'ALSA audio output') +option('enable_openal', type: 'feature', description: 'OpenAL audio output') +option('enable_libpulse', type: 'feature', description: 'PulseAudio audio output') +option('enable_portaudio', type: 'feature', description: 'PortAudio audio output') +option('default_audio_output', type: 'combo', choices: ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio'], description: 'Default audio output') -option('enable_ffms2', type : 'combo', choices : ['auto', 'true', 'false'], description : 'FFMS2 video source') +option('enable_ffms2', type: 'feature', description: 'FFMS2 video source') -option('enable_fftw3', type : 'combo', choices : ['auto', 'true', 'false'], description : 'FFTW3 support') -option('enable_hunspell', type : 'combo', choices : ['auto', 'true', 'false'], description : 'Hunspell spell checker') -option('enable_uchardet', type : 'combo', choices : ['auto', 'true', 'false'], description : 'uchardet character encoding detection') +option('enable_fftw3', type: 'feature', description: 'FFTW3 support') +option('enable_hunspell', type: 'feature', description: 'Hunspell spell checker') +option('enable_uchardet', type: 'feature', description: 'uchardet character encoding detection') -option('system_luajit', type : 'boolean', value : false, description : 'Force using system luajit') +option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') -option('build_credit', type : 'string', value : '', description : 'Build credit shown in program title') +option('build_credit', type: 'string', value: '', description: 'Build credit shown in program title') -option('enable_update_checker', type : 'boolean', value : false, description : 'Enable the update checker') -option('update_server', type : 'string', value : 'updates.aegisub.org', description : 'Server to use for the update checker') -option('update_url', type : 'string', value : '/trunk', description : 'Base path to use for the update checker') +option('enable_update_checker', type: 'boolean', value: false, description: 'Enable the update checker') +option('update_server', type: 'string', value: 'updates.aegisub.org', description: 'Server to use for the update checker') +option('update_url', type: 'string', value: '/trunk', description: 'Base path to use for the update checker') From 7596a7c5e45d04c1b3a25a8d929ff4c13ea58a81 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 9 Feb 2019 18:26:50 -0500 Subject: [PATCH 068/185] meson: remove 'static' option --- meson.build | 18 ++++++++++-------- meson_options.txt | 2 -- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index 1a48dfc51..7e99ac304 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,6 @@ version_h = custom_target('git_version.h', dataroot = get_option('prefix') / get_option('datadir') / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') -b_static = get_option('static') conf = configuration_data() conf.set_quoted('P_DATA', dataroot) @@ -30,7 +29,7 @@ deps = [] if host_machine.system() == 'darwin' add_languages('objc') elif host_machine.system() != 'windows' - deps += dependency('fontconfig', static: b_static) + deps += dependency('fontconfig') endif cxx = meson.get_compiler('cpp') @@ -39,13 +38,16 @@ deps += cc.find_library('m', required: false) deps += cc.find_library('dl', required: false) deps += cc.find_library('iconv', required: false) -deps += dependency('libass', version: '>=0.9.7', static: b_static) -deps += dependency('boost', version: '>=1.50.0', static: b_static, +deps += dependency('libass', version: '>=0.9.7') +deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', 'system', 'thread']) -deps += dependency('icu-uc', version: '>=4.8.1.1', static: b_static) -deps += dependency('icu-i18n', version: '>=4.8.1.1', static: b_static) -deps += dependency('zlib', static: b_static) +deps += dependency('zlib') + +icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1') +deps += icu_uc_dep +icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1') +deps += icu_i18n_dep dep_avail = [] foreach dep: [ @@ -62,7 +64,7 @@ foreach dep: [ ['uchardet', '', 'uchardet'], ] d = dependency(dep[0], version: dep[1] != '' ? dep[1]: '>=0', - required: false, static: b_static) + required: false) optname = 'enable_@0@'.format(dep[0].split('-')[0]) if d.found() and get_option(optname) != 'disabled' diff --git a/meson_options.txt b/meson_options.txt index f80de7e63..a28feb701 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,5 +1,3 @@ -option('static', type: 'boolean', value: false, description: 'Build statically linked executable') - option('enable_alsa', type: 'feature', description: 'ALSA audio output') option('enable_openal', type: 'feature', description: 'OpenAL audio output') option('enable_libpulse', type: 'feature', description: 'PulseAudio audio output') From 613cef19a0fd7fd3e5bc2c789911e65cea6ed294 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 9 Feb 2019 18:28:32 -0500 Subject: [PATCH 069/185] meson: rename option for optional dependencies --- meson.build | 4 ++-- meson_options.txt | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index 7e99ac304..77e64573f 100644 --- a/meson.build +++ b/meson.build @@ -67,11 +67,11 @@ foreach dep: [ required: false) optname = 'enable_@0@'.format(dep[0].split('-')[0]) - if d.found() and get_option(optname) != 'disabled' + if d.found() and not get_option(optname).disabled() deps += d conf.set('WITH_@0@'.format(dep[0].split('-')[0].to_upper()), '1') dep_avail += dep[2] - elif get_option(optname) == 'enabled' + elif get_option(optname).enabled() error('@0@ enabled but not found'.format(dep[2])) endif endforeach diff --git a/meson_options.txt b/meson_options.txt index a28feb701..80e0ddf73 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,14 +1,14 @@ -option('enable_alsa', type: 'feature', description: 'ALSA audio output') -option('enable_openal', type: 'feature', description: 'OpenAL audio output') -option('enable_libpulse', type: 'feature', description: 'PulseAudio audio output') -option('enable_portaudio', type: 'feature', description: 'PortAudio audio output') +option('alsa', type: 'feature', description: 'ALSA audio output') +option('openal', type: 'feature', description: 'OpenAL audio output') +option('libpulse', type: 'feature', description: 'PulseAudio audio output') +option('portaudio', type: 'feature', description: 'PortAudio audio output') option('default_audio_output', type: 'combo', choices: ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio'], description: 'Default audio output') -option('enable_ffms2', type: 'feature', description: 'FFMS2 video source') +option('ffms2', type: 'feature', description: 'FFMS2 video source') -option('enable_fftw3', type: 'feature', description: 'FFTW3 support') -option('enable_hunspell', type: 'feature', description: 'Hunspell spell checker') -option('enable_uchardet', type: 'feature', description: 'uchardet character encoding detection') +option('fftw3', type: 'feature', description: 'FFTW3 support') +option('hunspell', type: 'feature', description: 'Hunspell spell checker') +option('uchardet', type: 'feature', description: 'uchardet character encoding detection') option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') From 936b39303d09d5681ebe6c7b4bf0408b472282d3 Mon Sep 17 00:00:00 2001 From: line0 Date: Tue, 12 Feb 2019 00:57:00 +0100 Subject: [PATCH 070/185] PowerShell version script: work correctly from any cwd; do not error out when version.h doesn't already exist; adjust git_version.h and git_version.xml paths for meson build system --- version.ps1 | 50 +++++++++++++++++++++++--------------------------- version.sh | 0 2 files changed, 23 insertions(+), 27 deletions(-) mode change 100644 => 100755 version.sh diff --git a/version.ps1 b/version.ps1 index caea09f02..03d02dbef 100644 --- a/version.ps1 +++ b/version.ps1 @@ -5,48 +5,44 @@ $defineNumberMatch = [regex] '^#define\s+(\w+)\s+(\d+)$' $defineStringMatch = [regex] "^#define\s+(\w+)\s+[`"']?(.+?)[`"']?$" $semVerMatch = [regex] 'v?(\d+)\.(\d+).(\d+)(?:-(\w+))?' -if (!(git rev-parse --is-inside-work-tree 2>$null)) { - throw 'git repo not found' + +$repositoryRootPath = Join-Path $PSScriptRoot .. | Resolve-Path +if (!(git -C $repositoryRootPath rev-parse --is-inside-work-tree 2>$null)) { + throw "$repositoryRootPath is not a git repository" } -$repositoryRootPath = git rev-parse --git-path . | Join-Path -ChildPath .. | Resolve-Path -$buildPath = Join-Path $repositoryRootPath 'build' -$gitVersionHeaderPath = Join-Path $buildPath 'git_version.h' -$gitVersionXmlPath = Join-Path $buildPath 'git_version.xml' - -if (!(Test-Path $gitVersionHeaderPath)) { - throw "missing git_version.h in ${buildPath}" -} +$gitVersionHeaderPath = Join-Path $repositoryRootPath 'src' | Join-Path -ChildPath 'include' | Join-Path -ChildPath 'aegisub' ` + | Join-Path -ChildPath 'git_version.h' +$gitVersionXmlPath = Join-Path $repositoryRootPath 'packages' | Join-Path -ChildPath 'win_installer' ` + | Join-Path -ChildPath 'git_version.xml' $version = @{} -Get-Content $gitVersionHeaderPath | %{$_.Trim()} | ?{$_} | %{ - switch -regex ($_) { - $defineNumberMatch { - $version[$Matches[1]] = [int]$Matches[2]; - } - $defineStringMatch { - $version[$Matches[1]] = $Matches[2]; +if (Test-Path $gitVersionHeaderPath) { + Get-Content $gitVersionHeaderPath | %{$_.Trim()} | ?{$_} | %{ + switch -regex ($_) { + $defineNumberMatch { + $version[$Matches[1]] = [int]$Matches[2]; + } + $defineStringMatch { + $version[$Matches[1]] = $Matches[2]; + } } } } -if(!($version.ContainsKey('BUILD_GIT_VERSION_NUMBER') -and $version.ContainsKey('BUILD_GIT_VERSION_STRING'))) { - throw 'invalid git_version.h' -} - -$gitRevision = $lastSvnRevision + ((git log --pretty=oneline "$($lastSvnHash)..HEAD" 2>$null | Measure-Object).Count) -$gitBranch = git symbolic-ref --short HEAD 2>$null -$gitHash = git rev-parse --short HEAD 2>$null +$gitRevision = $lastSvnRevision + ((git -C $repositoryRootPath log --pretty=oneline "$($lastSvnHash)..HEAD" 2>$null | Measure-Object).Count) +$gitBranch = git -C $repositoryRootPath symbolic-ref --short HEAD 2>$null +$gitHash = git -C $repositoryRootPath rev-parse --short HEAD 2>$null $gitVersionString = $gitRevision, $gitBranch, $gitHash -join '-' -$exactGitTag = git describe --exact-match --tags 2>$null +$exactGitTag = git -C $repositoryRootPath describe --exact-match --tags 2>$null if ($exactGitTag -match $semVerMatch) { $version['TAGGED_RELEASE'] = $true $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] $version['INSTALLER_VERSION'] = $gitVersionString = ($Matches[1..3] -join '.') + @("-$($Matches[4])",'')[!$Matches[4]] } else { - foreach ($rev in (git rev-list --tags 2>$null)) { - $tag = git describe --exact-match --tags $rev 2>$null + foreach ($rev in (git -C $repositoryRootPath rev-list --tags 2>$null)) { + $tag = git -C $repositoryRootPath describe --exact-match --tags $rev 2>$null if ($tag -match $semVerMatch) {# $version['TAGGED_RELEASE'] = $false $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] + $gitRevision diff --git a/version.sh b/version.sh old mode 100644 new mode 100755 From c965171663bf73529d3061db330f02c77fd6bb02 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 19:16:48 -0500 Subject: [PATCH 071/185] Remove autotools build system --- Makefile | 12 - Makefile.inc.in | 139 --- Makefile.target | 121 --- acinclude.m4 | 15 - autogen.sh | 7 - automation/Makefile | 28 - config.guess | 1476 ------------------------- config.sub | 1808 ------------------------------- configure.ac | 630 ----------- header.mk | 43 - install-sh | 501 --------- libaegisub/Makefile | 56 - m4macros/ac_agi.m4 | 51 - m4macros/ac_flag.m4 | 56 - m4macros/agi_find_libheader.m4 | 58 - m4macros/ax_boost_base.m4 | 301 ----- m4macros/ax_boost_chrono.m4 | 118 -- m4macros/ax_boost_filesystem.m4 | 118 -- m4macros/ax_boost_locale.m4 | 119 -- m4macros/ax_boost_regex.m4 | 111 -- m4macros/ax_boost_system.m4 | 121 --- m4macros/ax_boost_thread.m4 | 163 --- m4macros/ax_check_gl.m4 | 559 ---------- m4macros/ax_lang_compiler_ms.m4 | 36 - m4macros/ax_pthread.m4 | 332 ------ m4macros/check_gnu_make.m4 | 78 -- m4macros/wxwin.m4 | 1060 ------------------ tests/Makefile | 36 - 28 files changed, 8153 deletions(-) delete mode 100644 Makefile delete mode 100644 Makefile.inc.in delete mode 100644 Makefile.target delete mode 100644 acinclude.m4 delete mode 100755 autogen.sh delete mode 100644 automation/Makefile delete mode 100755 config.guess delete mode 100755 config.sub delete mode 100644 configure.ac delete mode 100644 header.mk delete mode 100755 install-sh delete mode 100644 libaegisub/Makefile delete mode 100644 m4macros/ac_agi.m4 delete mode 100644 m4macros/ac_flag.m4 delete mode 100644 m4macros/agi_find_libheader.m4 delete mode 100644 m4macros/ax_boost_base.m4 delete mode 100644 m4macros/ax_boost_chrono.m4 delete mode 100644 m4macros/ax_boost_filesystem.m4 delete mode 100644 m4macros/ax_boost_locale.m4 delete mode 100644 m4macros/ax_boost_regex.m4 delete mode 100644 m4macros/ax_boost_system.m4 delete mode 100644 m4macros/ax_boost_thread.m4 delete mode 100644 m4macros/ax_check_gl.m4 delete mode 100644 m4macros/ax_lang_compiler_ms.m4 delete mode 100644 m4macros/ax_pthread.m4 delete mode 100644 m4macros/check_gnu_make.m4 delete mode 100644 m4macros/wxwin.m4 delete mode 100644 tests/Makefile diff --git a/Makefile b/Makefile deleted file mode 100644 index d3429e3be..000000000 --- a/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -include header.mk - -ifeq (yes, $(BUILD_DARWIN)) -osx-bundle: - $(BIN_SHELL) tools/osx-bundle.sh "$(AEGISUB_COMMAND)" "$(BIN_WX_CONFIG)" "$(FONTCONFIG_CONF_DIR)" DICT_DIR=$(DICT_DIR) - -osx-dmg: osx-bundle - codesign -s 'Mac Developer' --deep Aegisub.app || true - $(BIN_SHELL) tools/osx-dmg.sh "$(BUILD_VERSION_STRING)" -endif - -include Makefile.target diff --git a/Makefile.inc.in b/Makefile.inc.in deleted file mode 100644 index 5f1a4054f..000000000 --- a/Makefile.inc.in +++ /dev/null @@ -1,139 +0,0 @@ -######################### -# AEGISUB FEATURE SUPPORT -######################### -HAVE_ALSA = @with_alsa@ -HAVE_FFMS2 = @with_ffms2@ -HAVE_HUNSPELL = @with_hunspell@ -HAVE_LIBPULSE = @with_libpulse@ -HAVE_OPENAL = @with_openal@ -HAVE_OSS = @with_oss@ -HAVE_PORTAUDIO = @with_portaudio@ -HAVE_UCHARDET = @with_uchardet@ - -############## -# BUILD OUTPUT -############## -PROGRAM := $(PROGRAM) -LIB := $(LIB) - -################### -# PLATFORM SETTINGS -################### -BUILD_DARWIN = @build_darwin@ - -####### -# FLAGS -####### -CFLAGS = @CFLAGS@ -CXXFLAGS = @CXXFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CFLAGS_DEP = -MMD -MP -LIBS = @LIBS@ -LDFLAGS = @LDFLAGS@ -INSTALL_FLAGS = -m 644 -LIB_SHARED_LINK = -shared -Wl,-soname -Wl,$(LIB_SHARED_FULL) -LIB_SHARED_LINK_OSX = -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -compatibility_version $(LIB_VERSION) -current_version $(LIB_VERSION) -Wl,-single_module -mmacosx-version-min=10.8 -install_name ${CURDIR}/$(LIB_SHARED_FULL) - -######### -# STRINGS -######### -AEGISUB_COMMAND = @AEGISUB_COMMAND@ -AEGISUB_CATALOG = @AEGISUB_CATALOG@ -BUILD_DATE = @BUILD_DATE@ -BUILD_VERSION_STRING = @BUILD_GIT_VERSION_STRING@ - -####### -# PATHS -####### -prefix = ${P_PREFIX} -exec_prefix = ${P_PREFIX_EXEC} -datarootdir = ${P_DATAROOT} -P_PREFIX = @prefix@ -P_PREFIX_EXEC = @exec_prefix@ -P_BINDIR = @bindir@ -P_DATAROOT = @datarootdir@ -P_LOCALE = @localedir@ - -P_DESKTOP = @P_DESKTOP@ -P_ICON = @P_ICON@ -P_DATA = $(P_DATAROOT)/aegisub/ - -############### -# LIBRARY FLAGS -############### -CFLAGS_WX = @WX_CFLAGS@ -CXXFLAGS_WX = @WX_CXXFLAGS@ -CPPFLAGS_WX = @WX_CPPFLAGS@ -LIBS_WX = @WX_LIBS@ -lz - -CPPFLAGS_BOOST = @BOOST_CPPFLAGS@ -LIBS_BOOST = @BOOST_LDFLAGS@ @BOOST_FILESYSTEM_LIB@ @BOOST_LOCALE_LIB@ @BOOST_REGEX_LIB@ @BOOST_SYSTEM_LIB@ @BOOST_THREAD_LIB@ @BOOST_CHRONO_LIB@ - -CFLAGS_FFMS2 = @FFMS2_CFLAGS@ -CFLAGS_FFTW3 = @FFTW3_CFLAGS@ -CFLAGS_FONTCONFIG = @FONTCONFIG_CFLAGS@ -CFLAGS_FREETYPE = @FREETYPE_CFLAGS@ -CFLAGS_GL = @GL_CFLAGS@ -CFLAGS_HUNSPELL = @HUNSPELL_CFLAGS@ -CFLAGS_ICONV = @ICONV_CFLAGS@ -CFLAGS_ICU = @ICU_I18N_CFLAGS@ -CFLAGS_LIBASS = @LIBASS_CFLAGS@ -CFLAGS_LIBPULSE = @LIBPULSE_CFLAGS@ -CFLAGS_LUA = @LUAJIT_CFLAGS@ -CFLAGS_OPENAL = @OPENAL_CFLAGS@ -CFLAGS_OSS = @OSS_CFLAGS@ -CFLAGS_PORTAUDIO = @PORTAUDIO_CFLAGS@ -CFLAGS_PTHREAD = @PTHREAD_CFLAGS@ -CFLAGS_UCHARDET = @UCHARDET_CFLAGS@ - -LIBS_ALSA = @ALSA_LIBS@ -LIBS_FFMS2 = @FFMS2_LIBS@ -LIBS_FFTW3 = @FFTW3_LIBS@ -LIBS_FONTCONFIG = @FONTCONFIG_LIBS@ -LIBS_FREETYPE = @FREETYPE_LIBS@ -LIBS_GL = @GL_LIBS@ -LIBS_HUNSPELL = @HUNSPELL_LIBS@ -LIBS_ICONV = @ICONV_LIBS@ -LIBS_ICU = @ICU_UC_LIBS@ @ICU_I18N_LIBS@ -LIBS_LIBASS = @LIBASS_LIBS@ -LIBS_LIBPULSE = @LIBPULSE_LIBS@ -LIBS_LUA = @LUAJIT_LIBS@ -LIBS_OPENAL = @OPENAL_LIBS@ -LIBS_PORTAUDIO = @PORTAUDIO_LIBS@ -LIBS_PTHREAD = @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -LIBS_UCHARDET = @UCHARDET_LIBS@ - -ifeq (yes, $(BUILD_DARWIN)) -LIBS_LUA = $(TOP)vendor/luajit/src/libluajit.a -endif - -FONTCONFIG_CONF_DIR = @FONTCONFIG_CONF_DIR@ - -##################### -# DEBUG / DEVELOPMENT -##################### -PRECOMPILED_HEADER = @enable_gcc_prec@ - -########## -# BINARIES -########## -BIN_AR = ar -BIN_RANLIB = ranlib -BIN_LN = ln -BIN_RM = rm -BIN_SHELL = @SHELL@ -BIN_MV = mv -BIN_SED = sed -BIN_INSTALL = @INSTALL@ -BIN_MSGMERGE = @MSGMERGE@ -BIN_XGETTEXT = @XGETTEXT@ -BIN_MSGFMT = @MSGFMT@ -BIN_CC = @CC@ -BIN_CXX = @CXX@ -BIN_CP = cp -BIN_MKDIR = mkdir -BIN_MKDIR_P = mkdir -p -BIN_ECHO = echo -BIN_TOUCH = touch -BIN_LUA = @LUA@ -BIN_WX_CONFIG = @WX_CONFIG_PATH@ diff --git a/Makefile.target b/Makefile.target deleted file mode 100644 index 516ef3c24..000000000 --- a/Makefile.target +++ /dev/null @@ -1,121 +0,0 @@ -ifneq (yes, $(INCLUDING_CHILD_MAKEFILES)) -COMMANDS := all install clean distclean test depclean osx-bundle osx-dmg test-automation test-libaegisub -.PHONY: $(COMMANDS) -.DEFAULT_GOAL := all - -# Would be nice to move this somewhere else (Makefile.inc?) -ifeq (yes, $(BUILD_DARWIN)) -CFLAGS += -mmacosx-version-min=10.8 -gfull -CXXFLAGS += -mmacosx-version-min=10.8 -gfull -LDFLAGS += -mmacosx-version-min=10.8 -Wl,-dead_strip -pagezero_size 10000 -image_base 100000000 -LIB_SHARED_LINK = $(LIB_SHARED_LINK_OSX) -endif - -LIB_TARGETS := $(addprefix $(TOP)lib/,$(LIB:%=lib%.a)) - -# Handle per-target flags in the form foo_CFLAGS := -w by mapping them to all -# of the objects a target depends on. This has potentially dumb results if -# multiple targets use a single object file, so don't do that. -define set_target_flags - OBJ += $($1_OBJ) - - $($1_OBJ): CPPFLAGS := $(CPPFLAGS) $($1_CPPFLAGS) - $($1_OBJ): CXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS) - $($1_OBJ): OBJCXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS) - - ifeq (yes, $(PRECOMPILED_HEADER)) - ifdef $1_PCH - CLEANFILES += $($1_PCH).gch - $($1_OBJ): CXXFLAGS += -include $($1_PCH) $(PCHFLAGS) - $($1_OBJ): $($1_PCH).gch - $($1_PCH).gch: $($1_PCH) - $($1_PCH).gch: CPPFLAGS := $(CPPFLAGS) $($1_CPPFLAGS) - $($1_PCH).gch: CXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS) - else - $($1_OBJ): CXXFLAGS += -include acconf.h - endif - else - $($1_OBJ): CXXFLAGS += -include acconf.h - endif -endef -$(foreach target,$(LIB),$(eval $(call set_target_flags,$(target),$(TOP)lib/lib$(target).a))) -$(foreach target,$(PROGRAM),$(eval $(call set_target_flags,$(notdir $(target)),$(target)))) - -# Create the build and install targets for programs -# Not done with a pattern rule since the pattern would be just %: and doing that -# leads to make trying to use gcc to make any nonexistent targets rather than -# erroring -define create_program_targets - ifdef $1_INSTALLNAME -install: $(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME) -$(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME): $(dir $2)$($1_INSTALLNAME) - @$(BIN_MKDIR) -p $(DESTDIR)$(P_BINDIR) - @$(BIN_INSTALL) $(dir $2)$($1_INSTALLNAME) $(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME) -$(dir $2)$($1_INSTALLNAME): $($1_OBJ) - $(BIN_CXX) -o $(dir $2)$($1_INSTALLNAME) $(LDFLAGS) $($1_OBJ) $(LIBS) $($1_LIBS) -all: $(dir $2)$($1_INSTALLNAME) - else -$2: $($1_OBJ) - $(BIN_CXX) -o $2 $(LDFLAGS) $($1_OBJ) $(LIBS) $($1_LIBS) -all: $2 - endif - $(eval CLEANFILES += $(filter-out %/,$2 $(dir $2)$($1_INSTALLNAME))) -endef -$(foreach target,$(PROGRAM),$(eval $(call create_program_targets,$(notdir $(target)),$(target)))) - -# The dependency files which will be automatically generated by gcc. -# The filter is due to that libraries also appear in OBJ -DEP := $(filter %.d,$(OBJ:%.o=%.d)) - -# If the goal is a relative path to a file, convert it to an absolute path -ifneq ($(filter-out $(COMMANDS),$(MAKECMDGOALS)),) -ABSGOAL := $(abspath $(MAKECMDGOALS)) -ifneq ($(MAKECMDGOALS),$(ABSGOAL)) -$(MAKECMDGOALS): $(ABSGOAL) ; -endif -endif - -# Primary build targets -all: $(LIB_TARGETS) - -clean: - $(BIN_RM) -f $(OBJ) $(CLEANFILES) $(LIB_TARGETS) - -distclean: clean - $(BIN_RM) -rf $(DISTCLEANFILES) $(DEP) - -depclean: clean - $(BIN_RM) -rf $(DEP) - -install: - -# The actual build rules -.SUFFIXES: - -CXX_CMD = $(CXX_ENV) $(BIN_CXX) $(CFLAGS_DEP) $(CPPFLAGS) -CC_CMD = $(CXX_ENV) $(BIN_CC) $(CFLAGS_DEP) $(CPPFLAGS) -POST_FLAGS = $($@_FLAGS) -c -o $@ $< - -%.o: %.c ; $(CC_CMD) $(CFLAGS) $(POST_FLAGS) -%.o: %.cpp ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS) -%.o: %.cxx ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS) -%.o: %.cc ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS) -%.o: %.mm ; $(CXX_CMD) $(OBJCXXFLAGS) $(POST_FLAGS) -%.o: %.m ; $(CC_CMD) $(CFLAGS) -fmodules $(POST_FLAGS) - -%.gch: % - @$(BIN_RM) -f $@ - $(CXX_ENV) $(BIN_CXX) $(CPPFLAGS) $(CXXFLAGS) -x c++-header $< - -.SECONDEXPANSION: - -# Libraries contain all object files they depend on (but they may depend on other files) -# Not using libtool on OS X because it has an unsilenceable warning about a -# compatibility issue with BSD 4.3 (wtf) -lib%.a: $$($$*_OBJ) - @$(BIN_MKDIR_P) $(dir $@) - $(BIN_AR) cru $@ $(filter %.o,$^) - $(BIN_RANLIB) $@ - --include $(DEP) -endif diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index aee5b047d..000000000 --- a/acinclude.m4 +++ /dev/null @@ -1,15 +0,0 @@ -m4_include([m4macros/ac_agi.m4]) -m4_include([m4macros/ac_flag.m4]) -m4_include([m4macros/agi_find_libheader.m4]) -m4_include([m4macros/ax_boost_base.m4]) -m4_include([m4macros/ax_boost_chrono.m4]) -m4_include([m4macros/ax_boost_filesystem.m4]) -m4_include([m4macros/ax_boost_locale.m4]) -m4_include([m4macros/ax_boost_regex.m4]) -m4_include([m4macros/ax_boost_system.m4]) -m4_include([m4macros/ax_boost_thread.m4]) -m4_include([m4macros/ax_check_gl.m4]) -m4_include([m4macros/ax_lang_compiler_ms.m4]) -m4_include([m4macros/ax_pthread.m4]) -m4_include([m4macros/check_gnu_make.m4]) -m4_include([m4macros/wxwin.m4]) diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 46b4be7e7..000000000 --- a/autogen.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -set -e - -echo Running autoreconf... -autoreconf -ivf "$@" - -echo Now run ./configure and then make to build Aegisub diff --git a/automation/Makefile b/automation/Makefile deleted file mode 100644 index 76c7dd992..000000000 --- a/automation/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -DATA_AUTOMATION := \ - $(sort $(wildcard $(d)autoload/*)) \ - $(sort $(wildcard $(d)demos/*)) \ - $(sort $(wildcard $(d)include/*.lua)) \ - $(sort $(wildcard $(d)include/aegisub/*)) - -DATA_AUTOMATION_REL := $(subst $(d),,$(DATA_AUTOMATION)) -DATA_AUTOMATION_INSTALLED = $(addprefix $(DESTDIR)$(P_DATA)/automation/, $(DATA_AUTOMATION_REL)) - -$(DESTDIR)$(P_DATA)/automation/%: $(d)% - $(MKDIR_INSTALL) - -aegisub-lua_OBJ := $(d)tests/aegisub.o $(TOP)lib/libaegisub.a $(TOP)lib/libluabins.a $(LIBS_LUA) -aegisub-lua_CPPFLAGS := $(CPPFLAGS_BOOST) $(CFLAGS_LUA) -I$(TOP)libaegisub/include -I$(TOP)src $(CXXFLAGS_WX) -aegisub-lua_LIBS := $(LIBS_WX) $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_PTHREAD) - -PROGRAM += $(d)aegisub-lua - -test-automation: $(PROGRAM) - eval `luarocks path`; cd $(TOP)automation; ./aegisub-lua tests/busted.lua -p 'moon' tests/modules - -test: test-automation - -install: $(DATA_AUTOMATION_INSTALLED) - -include $(TOP)Makefile.target diff --git a/config.guess b/config.guess deleted file mode 100755 index 883a6713b..000000000 --- a/config.guess +++ /dev/null @@ -1,1476 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-05-19' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -# -# Please send patches to . - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "$UNAME_SYSTEM" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval "$set_cc_for_build" - cat <<-EOF > "$dummy.c" - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" - - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ - echo unknown)` - case "$UNAME_MACHINE_ARCH" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; - *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; - sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] - then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" - fi - else - echo i586-dg-dgux"$UNAME_RELEASE" - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ "$HP_ARCH" = hppa2.0w ] - then - eval "$set_cc_for_build" - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; - *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; - *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; - *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; - i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; - *:Interix*:*) - case "$UNAME_MACHINE" in - x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; - IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; - esac ;; - i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - *:GNU:*:*) - # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix - exit ;; - aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arm*:Linux:*:*) - eval "$set_cc_for_build" - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi - else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; - sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; - i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; - i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; - SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = 386; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -esac - -echo "$0: unable to guess system type" >&2 - -case "$UNAME_MACHINE:$UNAME_SYSTEM" in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.sub b/config.sub deleted file mode 100755 index d1f5b5490..000000000 --- a/config.sub +++ /dev/null @@ -1,1808 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-05-24' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Split fields of configuration type -IFS="-" read -r field1 field2 field3 field4 <&2 - exit 1 - ;; - *-*-*-*) - basic_machine=$field1-$field2 - os=$field3-$field4 - ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ - | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) - basic_machine=$field1 - os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown - os=linux-android - ;; - *) - basic_machine=$field1-$field2 - os=$field3 - ;; - esac - ;; - *-*) - # Second component is usually, but not always the OS - case $field2 in - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 - os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \ - | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ - | unicom* | ibm* | next | hp | isi* | apollo | altos* \ - | convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \ - | c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \ - | harris | dolphin | highlevel | gould | cbm | ns | masscomp \ - | apple | axis | knuth | cray | microblaze* \ - | sim | cisco | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 - os= - ;; - *) - basic_machine=$field1 - os=$field2 - ;; - esac - ;; - *) - # Convert single-component short-hands not valid as part of - # multi-component configurations. - case $field1 in - 386bsd) - basic_machine=i386-pc - os=bsd - ;; - a29khif) - basic_machine=a29k-amd - os=udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=scout - ;; - am29k) - basic_machine=a29k-none - os=bsd - ;; - amdahl) - basic_machine=580-amdahl - os=sysv - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=bsd - ;; - aros) - basic_machine=i386-pc - os=aros - ;; - aux) - basic_machine=m68k-apple - os=aux - ;; - balance) - basic_machine=ns32k-sequent - os=dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=linux - ;; - cegcc) - basic_machine=arm-unknown - os=cegcc - ;; - cray) - basic_machine=j90-cray - os=unicos - ;; - craynv) - basic_machine=craynv-cray - os=unicosmp - ;; - delta88) - basic_machine=m88k-motorola - os=sysv3 - ;; - dicos) - basic_machine=i686-pc - os=dicos - ;; - djgpp) - basic_machine=i586-pc - os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd - os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=ose - ;; - gmicro) - basic_machine=tron-gmicro - os=sysv - ;; - go32) - basic_machine=i386-pc - os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=hms - ;; - harris) - basic_machine=m88k-harris - os=sysv3 - ;; - hp300bsd) - basic_machine=m68k-hp - os=bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=hpux - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=proelf - ;; - i386mach) - basic_machine=i386-mach - os=mach - ;; - vsta) - basic_machine=i386-unknown - os=vsta - ;; - isi68 | isi) - basic_machine=m68k-isi - os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=sysv - ;; - merlin) - basic_machine=ns32k-utek - os=sysv - ;; - mingw64) - basic_machine=x86_64-pc - os=mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k - os=coff - ;; - morphos) - basic_machine=powerpc-unknown - os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=moxiebox - ;; - msdos) - basic_machine=i386-pc - os=msdos - ;; - msys) - basic_machine=i686-pc - os=msys - ;; - mvs) - basic_machine=i370-ibm - os=mvs - ;; - nacl) - basic_machine=le32-unknown - os=nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=newsos - ;; - news1000) - basic_machine=m68030-sony - os=newsos - ;; - necv70) - basic_machine=v70-nec - os=sysv - ;; - nh3000) - basic_machine=m68k-harris - os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=cxux - ;; - nindy960) - basic_machine=i960-intel - os=nindy - ;; - mon960) - basic_machine=i960-intel - os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm - os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=ose - ;; - os68k) - basic_machine=m68k-none - os=os68k - ;; - paragon) - basic_machine=i860-intel - os=osf - ;; - parisc) - basic_machine=hppa-unknown - os=linux - ;; - pw32) - basic_machine=i586-unknown - os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=rdos - ;; - rdos32) - basic_machine=i386-pc - os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=coff - ;; - sa29200) - basic_machine=a29k-amd - os=udi - ;; - sei) - basic_machine=mips-sei - os=seiux - ;; - sps7) - basic_machine=m68k-bull - os=sysv2 - ;; - stratus) - basic_machine=i860-stratus - os=sysv4 - ;; - sun2os3) - basic_machine=m68000-sun - os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=solaris2 - ;; - sv1) - basic_machine=sv1-cray - os=unicos - ;; - symmetry) - basic_machine=i386-sequent - os=dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=unicos - ;; - t90) - basic_machine=t90-cray - os=unicos - ;; - toad1) - basic_machine=pdp10-xkl - os=tops20 - ;; - tpf) - basic_machine=s390x-ibm - os=tpf - ;; - udi29k) - basic_machine=a29k-amd - os=udi - ;; - ultra3) - basic_machine=a29k-nyu - os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=none - ;; - vaxv) - basic_machine=vax-dec - os=sysv - ;; - vms) - basic_machine=vax-dec - os=vms - ;; - vxworks960) - basic_machine=i960-wrs - os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=vxworks - ;; - xbox) - basic_machine=i686-pc - os=mingw32 - ;; - ymp) - basic_machine=ymp-cray - os=unicos - ;; - *) - basic_machine=$1 - os= - ;; - esac - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper | csky \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nfp \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=${os:-none} - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) - ;; - m9s12z | m68hcs12z | hcs12z | s12z) - basic_machine=s12z-unknown - os=${os:-none} - ;; - ms1) - basic_machine=mt-unknown - ;; - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=${os:-none} - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nfp-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - abacus) - basic_machine=abacus-unknown - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=${os:-unicos} - ;; - convex-c1) - basic_machine=c1-convex - os=bsd - ;; - convex-c2) - basic_machine=c2-convex - os=bsd - ;; - convex-c32) - basic_machine=c32-convex - os=bsd - ;; - convex-c34) - basic_machine=c34-convex - os=bsd - ;; - convex-c38) - basic_machine=c38-convex - os=bsd - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=${os:-elf} - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=${os:-elf} - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=${os:-bosx} - ;; - dpx2*) - basic_machine=m68k-bull - os=sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - elxsi) - basic_machine=elxsi-elxsi - os=${os:-bsd} - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=hiuxwe2 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=sysv32 - ;; - i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=sysv4 - ;; - i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=sysv - ;; - i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=solaris2 - ;; - j90 | j90-cray) - basic_machine=j90-cray - os=${os:-unicos} - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - irix*) - ;; - *) - os=irix4 - ;; - esac - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=linux - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=newsos - ;; - next | m*-next) - basic_machine=m68k-next - case $os in - nextstep* ) - ;; - ns2*) - os=nextstep2 - ;; - *) - os=nextstep3 - ;; - esac - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=hiuxwe2 - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=${os:-elf} - ;; - sequent) - basic_machine=i386-sequent - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - simso-wrs) - basic_machine=sparclite-wrs - os=vxworks - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - tile*) - basic_machine=$basic_machine-unknown - os=linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - w65*) - basic_machine=w65-wdc - os=none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=proelf - ;; - x64) - basic_machine=x86_64-pc - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` - ;; - none) - basic_machine=none-none - os=${os:-none} - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x$os != x ] -then -case $os in - # First match some system type aliases that might get confused - # with valid system types. - # solaris* is a basic system type, with this one exception. - auroraux) - os=auroraux - ;; - bluegene*) - os=cnk - ;; - solaris1 | solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - solaris) - os=solaris2 - ;; - unixware*) - os=sysv4.2uw - ;; - gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # es1800 is here to avoid being matched by es* (a different OS) - es1800*) - os=ose - ;; - # Some version numbers need modification - chorusos*) - os=chorusos - ;; - isc) - os=isc2.2 - ;; - sco6) - os=sco5v6 - ;; - sco5) - os=sco3.2v5 - ;; - sco4) - os=sco3.2v4 - ;; - sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - ;; - sco3.2v[4-9]* | sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - ;; - scout) - # Don't match below - ;; - sco*) - os=sco3.2v2 - ;; - psos*) - os=psos - ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - # sysv* is not here because it comes later, after sysvr4. - gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ - | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ - | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ - | sym* | kopensolaris* | plan9* \ - | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ - | aos* | aros* | cloudabi* | sortix* \ - | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ - | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \ - | knetbsd* | mirbsd* | netbsd* \ - | bitrig* | openbsd* | solidbsd* | libertybsd* \ - | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ - | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ - | chorusrdb* | cegcc* | glidix* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ - | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ - | linux-newlib* | linux-musl* | linux-uclibc* \ - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ - | interix* | uwin* | mks* | rhapsody* | darwin* \ - | openstep* | oskit* | conix* | pw32* | nonstopux* \ - | storm-chaos* | tops10* | tenex* | tops20* | its* \ - | os2* | vos* | palmos* | uclinux* | nucleus* \ - | morphos* | superux* | rtmk* | windiss* \ - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ - | skyos* | haiku* | rdos* | toppers* | drops* | es* \ - | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=nto-$os - ;; - esac - ;; - hiux*) - os=hiuxwe2 - ;; - nto-qnx*) - ;; - nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - sim | xray | os68k* | v88r* \ - | windows* | osx | abug | netware* | os9* \ - | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) - ;; - linux-dietlibc) - os=linux-dietlibc - ;; - linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - lynx*178) - os=lynxos178 - ;; - lynx*5) - os=lynxos5 - ;; - lynx*) - os=lynxos - ;; - mac*) - os=`echo "$os" | sed -e 's|mac|macos|'` - ;; - opened*) - os=openedition - ;; - os400*) - os=os400 - ;; - sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; - sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; - wince*) - os=wince - ;; - utek*) - os=bsd - ;; - dynix*) - os=bsd - ;; - acis*) - os=aos - ;; - atheos*) - os=atheos - ;; - syllable*) - os=syllable - ;; - 386bsd) - os=bsd - ;; - ctix* | uts*) - os=sysv - ;; - nova*) - os=rtmk-nova - ;; - ns2) - os=nextstep2 - ;; - nsk*) - os=nsk - ;; - # Preserve the version number of sinix5. - sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - sinix*) - os=sysv4 - ;; - tpf*) - os=tpf - ;; - triton*) - os=sysv3 - ;; - oss*) - os=sysv3 - ;; - svr4*) - os=sysv4 - ;; - svr3) - os=sysv3 - ;; - sysvr4) - os=sysv4 - ;; - # This must come after sysvr4. - sysv*) - ;; - ose*) - os=ose - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - os=mint - ;; - zvmoe) - os=zvmoe - ;; - dicos*) - os=dicos - ;; - pikeos*) - # Until real need of OS specific support for - # particular features comes up, bare metal - # configurations are quite functional. - case $basic_machine in - arm*) - os=eabi - ;; - *) - os=elf - ;; - esac - ;; - nacl*) - ;; - ios) - ;; - none) - ;; - *-eabi) - ;; - *) - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=elf - ;; - spu-*) - os=elf - ;; - *-acorn) - os=riscix1.2 - ;; - arm*-rebel) - os=linux - ;; - arm*-semi) - os=aout - ;; - c4x-* | tic4x-*) - os=coff - ;; - c8051-*) - os=elf - ;; - clipper-intergraph) - os=clix - ;; - hexagon-*) - os=elf - ;; - tic54x-*) - os=coff - ;; - tic55x-*) - os=coff - ;; - tic6x-*) - os=coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=tops20 - ;; - pdp11-*) - os=none - ;; - *-dec | vax-*) - os=ultrix4.2 - ;; - m68*-apollo) - os=domain - ;; - i386-sun) - os=sunos4.0.2 - ;; - m68000-sun) - os=sunos3 - ;; - m68*-cisco) - os=aout - ;; - mep-*) - os=elf - ;; - mips*-cisco) - os=elf - ;; - mips*-*) - os=elf - ;; - or32-*) - os=coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=sysv3 - ;; - sparc-* | *-sun) - os=sunos4.1.1 - ;; - pru-*) - os=elf - ;; - *-be) - os=beos - ;; - *-ibm) - os=aix - ;; - *-knuth) - os=mmixware - ;; - *-wec) - os=proelf - ;; - *-winbond) - os=proelf - ;; - *-oki) - os=proelf - ;; - *-hp) - os=hpux - ;; - *-hitachi) - os=hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=sysv - ;; - *-cbm) - os=amigaos - ;; - *-dg) - os=dgux - ;; - *-dolphin) - os=sysv3 - ;; - m68k-ccur) - os=rtu - ;; - m88k-omron*) - os=luna - ;; - *-next) - os=nextstep - ;; - *-sequent) - os=ptx - ;; - *-crds) - os=unos - ;; - *-ns) - os=genix - ;; - i370-*) - os=mvs - ;; - *-gould) - os=sysv - ;; - *-highlevel) - os=bsd - ;; - *-encore) - os=bsd - ;; - *-sgi) - os=irix - ;; - *-siemens) - os=sysv4 - ;; - *-masscomp) - os=rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=uxpv - ;; - *-rom68k) - os=coff - ;; - *-*bug) - os=coff - ;; - *-apple) - os=macos - ;; - *-atari*) - os=mint - ;; - *-wrs) - os=vxworks - ;; - *) - os=none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - riscix*) - vendor=acorn - ;; - sunos*) - vendor=sun - ;; - cnk*|-aix*) - vendor=ibm - ;; - beos*) - vendor=be - ;; - hpux*) - vendor=hp - ;; - mpeix*) - vendor=hp - ;; - hiux*) - vendor=hitachi - ;; - unos*) - vendor=crds - ;; - dgux*) - vendor=dg - ;; - luna*) - vendor=omron - ;; - genix*) - vendor=ns - ;; - clix*) - vendor=intergraph - ;; - mvs* | opened*) - vendor=ibm - ;; - os400*) - vendor=ibm - ;; - ptx*) - vendor=sequent - ;; - tpf*) - vendor=ibm - ;; - vxsim* | vxworks* | windiss*) - vendor=wrs - ;; - aux*) - vendor=apple - ;; - hms*) - vendor=hitachi - ;; - mpw* | macos*) - vendor=apple - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - vendor=atari - ;; - vos*) - vendor=stratus - ;; - esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` - ;; -esac - -echo "$basic_machine-$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 9cc9eaf53..000000000 --- a/configure.ac +++ /dev/null @@ -1,630 +0,0 @@ -AC_PREREQ(2.57) - -################### -# Required packages -################### -m4_define([boost_required_version], [1.50.0]) -m4_define([curl_required_version], [7.18.2]) -m4_define([ffms2_required_version], [2.16]) -m4_define([fftw3_required_version], [3.3]) -m4_define([fontconfig_required_version], [2.4]) -m4_define([freetype_required_version], [9.7.0]) -m4_define([hunspell_required_version], [1.2.0]) -m4_define([icu_required_version], [4.8.1.1]) -m4_define([libass_required_version], [0.9.7]) -m4_define([libpulse_required_version], [0.5]) -m4_define([pkgconfig_required_version], [0.20]) -m4_define([portaudio_required_version], [19]) -m4_define([wx_required_version], [3.0.0]) - -####### -# Setup -####### -AC_INIT([Aegisub], [aegisub_version],, [aegisub]) -: ${CFLAGS=""} -: ${CXXFLAGS=""} -AC_CONFIG_SRCDIR([src/main.cpp]) -AC_CONFIG_HEADER([acconf.h]) -AC_GNU_SOURCE -AC_CANONICAL_HOST - -########################### -# Check host architecture -########################### -build_darwin="no" -build_linux="no" - -AS_CASE([$host], - [*-*-darwin*], [build_darwin="yes"], - [*-*-linux*], [build_linux="yes"]) - -AC_SUBST(build_darwin) - -######################## -# Configurable variables -######################## -# Name of aegisub binary. -# This is tagged with the version on release branches. -AEGISUB_COMMAND="aegisub" -AC_SUBST(AEGISUB_COMMAND) -AC_DEFINE_UNQUOTED([AEGISUB_COMMAND], ["${AEGISUB_COMMAND}"], [Name of the Aegisub executable]) - -# Name of gettext catalog. -AEGISUB_CATALOG="aegisub" -AC_SUBST(AEGISUB_CATALOG) -AC_DEFINE_UNQUOTED([AEGISUB_CATALOG], ["${AEGISUB_CATALOG}"], [Name of the Aegisub gettext catalog]) - -# Handle location of desktop files: http://freedesktop.org/wiki/Specifications/desktop-entry-spec -AC_ARG_WITH(desktop-dir, - AS_HELP_STRING([--with-desktop-dir=PATH],[desktop file locations [PREFIX/share/applications]])) - -P_DESKTOP=${with_desktop_dir:-$datarootdir/applications} -AC_SUBST(P_DESKTOP) - -# Handle location of icons: http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html -AC_ARG_WITH(icon-dir, - AS_HELP_STRING([--with-icon-dir=PATH],[icon locations [PREFIX/share/icons]])) - -P_ICON=${with_icon_dir:-$datarootdir/icons} -AC_SUBST(P_ICON) - -# Install prefix -# If a user doesn't supply --prefix then it is set to NONE so we -# set it to $ac_default_prefix if it hasn't been supplied. -AS_CASE([x$prefix], [xNONE | x], [prefix="$ac_default_prefix"], []) - -# Install prefix used by wxStandardPaths::SetInstallPrefix. -AC_DEFINE_UNQUOTED([INSTALL_PREFIX], ["$prefix"], [Default install prefix, or --prefix.]) - -# Build credit -AC_ARG_WITH(build-credit, - AS_HELP_STRING([--with-build-credit=NAME],[Build credit shown in the program title.]), - [use_build_credit="yes"]) - -AC_MSG_CHECKING([whether BUILD_CREDIT has been set]) -AS_IF([test x$use_build_credit = xyes], - AS_IF([test x$with_build_credit = xyes || test -z "$with_build_credit"], [ - AC_MSG_FAILURE([You must set a value eg --with-build-credit=]) - ], [ - AC_MSG_RESULT([yes ($with_build_credit)]) - AC_DEFINE_UNQUOTED([BUILD_CREDIT], ["$with_build_credit"], [Build credit supplied in application title using --with-build-credit=]) - ]), - [AC_MSG_RESULT([no])]) - -#################### -# Check for programs -#################### -CHECK_GNU_MAKE -AC_PROG_CC -AC_PROG_CXX -AC_LANG(C++) -AM_PROG_CC_C_O -# This is reported to be required on Ubuntu, I haven't had time to check. -define([AC_LIBTOOL_LANG_F77_CONFIG], [:]) -AC_PROG_INSTALL -AC_PROG_RANLIB -PKG_PROG_PKG_CONFIG([pkgconfig_required_version]) - -################# -# Developers only -################# -AC_MSG_CHECKING([for version]) -. $srcdir/build/version.sh "$srcdir" -AC_MSG_RESULT([$BUILD_GIT_VERSION_STRING $VERSION_SOURCE]) - -AC_MSG_CHECKING([for build date]) -BUILD_DATE=`date "+%Y-%m-%d %H:%M %Z"` -AC_MSG_RESULT($BUILD_DATE) - -AC_SUBST([BUILD_GIT_VERSION_STRING]) -AC_SUBST([BUILD_DATE]) - -################################################### -# Check for pthreads and setup variables / compiler -################################################### -AS_IF([test x$build_darwin != xyes], [ - ACX_PTHREAD([], [AC_MSG_FAILURE([You must have working pthreads.])]) - CC="$PTHREAD_CC" -]) - -###################### -# Check compiler flags -###################### -AC_ARG_ENABLE(compiler-flags, AS_HELP_STRING([--disable-compiler-flags],[Disable *all* additional compiler flags. [no]])) - -AS_IF([test x$enable_compiler_flags != xno], [ - CFLAGS="$CFLAGS -Wall -Wextra -Wno-unused-parameter -std=gnu99 -pipe -g" - CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing -pipe -g" - AC_CXX_FLAG([-std=c++11]) - AC_CXX_FLAG([-Wno-c++11-narrowing]) - AC_C_FLAG([-Wno-unused-local-typedefs]) - AC_CXX_FLAG([-Wno-unused-local-typedefs]) - - # -O* messes with debugging. - AS_IF([test x$enable_debug = xyes], [ - CFLAGS="$CFLAGS -O0" - CXXFLAGS="$CXXFLAGS -O0" - ], [ - CFLAGS="$CFLAGS -O3" - CXXFLAGS="$CXXFLAGS -O3" - ]) -]) - -AC_ARG_WITH([libc++], AS_HELP_STRING([--with-libc++],[Use libc++ rather than libstdc++. [auto]])) -AS_IF([test x$with_libc__ != xno], [ - AC_LANG_PUSH(C++) - ac_ld_flag_save="$LDFLAGS" - LDFLAGS="$LDFLAGS -stdlib=libc++" - AC_MSG_CHECKING([[whether $CXX supports -stdlib=libc++]]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]])], [ - AC_MSG_RESULT([yes]) - CXXFLAGS="$CXXFLAGS -stdlib=libc++" - ], [ - AS_IF([test x$with_libc__ = xyes], [ - AC_MSG_FAILURE([no]) - ], [ - LDFLAGS="$ac_ld_flag_save" - AC_MSG_RESULT([no]) - ]) - ]) - AC_LANG_POP(C++) -]) - -###################################### -# Check Headers / Features / Libraries -###################################### -AC_CHECK_LIB([m], [main]) -AC_CHECK_LIB([dl], [dlclose]) -AC_CHECK_HEADERS([sys/time.h]) - -AC_ARG_ENABLE(sanity-checks, - AS_HELP_STRING([--disable-sanity-checks],[Skip verifying that found libraries work.])) - -############################## -# Program Support and Features -############################## -######################### -### Required Dependencies -######################### - -AS_IF([test x$build_darwin != xyes], [ - AC_PATH_XTRA - AS_IF([test x$no_x = xyes], - [AC_MSG_FAILURE([You must have a working copy of X installed.])]) - - AX_CHECK_GL - AS_IF([test x$no_gl = xyes], [AC_MSG_FAILURE([Aegisub requires GL support.])]) -], [ - AC_CHECK_HEADERS([OpenGL/gl.h]) -]) -AC_SUBST(GL_CFLAGS) -AC_SUBST(GL_LIBS) - -PKG_CHECK_MODULES(FREETYPE, freetype2 >= freetype_required_version) - -AS_IF([test x$build_darwin != xyes], [ - PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version) - FONTCONFIG_CONF_DIR=$($PKG_CONFIG --variable=confdir fontconfig) - AC_SUBST(FONTCONFIG_CONF_DIR) -]) - -PKG_CHECK_MODULES(LIBASS, libass >= libass_required_version) - -AX_BOOST_BASE([boost_required_version]) -AX_BOOST_CHRONO -AX_BOOST_FILESYSTEM -AX_BOOST_LOCALE -AX_BOOST_REGEX -AX_BOOST_SYSTEM -AX_BOOST_THREAD - -cppflags_bak="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" -AC_CHECK_HEADERS([boost/spirit/home/phoenix/version.hpp]) -CPPFLAGS=$cppflags_bak - -AC_DEFINE(BOOST_SYSTEM_NO_DEPRECATED, 1, - [Disable deprecated parts of boost.system]) -AC_DEFINE(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION, 1, - [Disable boost.serialization support for boost.multi_index]) - -PKG_CHECK_MODULES(ICU_UC, icu-uc >= icu_required_version) -PKG_CHECK_MODULES(ICU_I18N, icu-i18n >= icu_required_version) - -######## -## boost -######## -AS_IF([test x$enable_sanity_checks != xno], [ - AC_AGI_COMPILE([boost ICU support], [boost_icu], [$BOOST_CPPFLAGS], - [$BOOST_LDFLAGS $BOOST_REGEX_LIB $ICU_UC_LIBS $ICU_I18N_LIBS],[ - #include - int main() { - auto regex = boost::make_u32regex(".", boost::u32regex::perl); - boost::smatch result; - u32regex_search("a", result, regex, boost::match_default); - } ]) - - AS_IF([test x$agi_cv_with_boost_icu = xno], - [AC_MSG_FAILURE([Aegisub requires that boost be built with ICU support.])]) -]) - -######## -## iconv -######## -AC_ARG_VAR([ICONV_CFLAGS], [CFLAGS to use for iconv []]) -AC_ARG_VAR([ICONV_LIBS], [LIBS to use for iconv [-liconv]]) - -AS_IF([test -z "$ICONV_LIBS"], AC_SEARCH_LIBS([iconv_open], [iconv])) - -AC_AGI_COMPILE([iconv], [iconv], [$ICONV_CFLAGS], [$ICONV_LIBS],[ -#include -int main() { - return !iconv_open("UTF-8", "UTF-8"); -} ]) - -AC_SUBST(ICONV_LIBS) -AC_SUBST(ICONV_CFLAGS) - -AS_IF([test x$agi_cv_with_iconv = xno], [AC_MSG_FAILURE([Please install a working iconv library.])]) - -AC_AGI_COMPILE([iconv (const)], [iconv_const], [$ICONV_CFLAGS], [$ICONV_LIBS],[ -#include -int main(void) { - iconv_t cd = iconv_open("UTF-16", "UTF-8"); - const char *in = "in"; - char *out = new char(); - size_t res, inbytesleft, outbytesleft; - res = iconv(cd, &in, &inbytesleft, &out, &outbytesleft); - return 0; -} ]) - -AS_IF([test x$agi_cv_with_iconv_const = xyes], - [AC_DEFINE(AGI_ICONV_CONST, 1, [Enable if iconv expects the in argument to be const])]) - -############### -# Audio Players -############### -####### -## ALSA -####### -AC_ARG_WITH(alsa, - AS_HELP_STRING([--without-alsa], - [build without ALSA audio player [auto]])) - -AC_ARG_VAR([ALSA_CFLAGS], [CFLAGS to use for ALSA []]) -AC_ARG_VAR([ALSA_LIBS], [LIBS to use for ALSA [-lasound -lrt]]) - -ALSA_LIBS=${ALSA_LIBS:--lasound -lrt} - -AS_IF([test x$with_alsa = xno], - [alsa_disabled="(disabled)"], - [AC_CHECK_LIB([asound], [snd_pcm_open], [with_alsa="yes"], [with_alsa="no"], $ALSA_LIBS)]) - -AS_IF([test x$with_alsa = xyes], AC_DEFINE(WITH_ALSA, 1, [Enable ALSA Support])) - -AC_SUBST(ALSA_CFLAGS) -AC_SUBST(ALSA_LIBS) -AC_SUBST(with_alsa) - -######### -## OpenAL -######### -AC_ARG_WITH(openal, - AS_HELP_STRING([--without-openal], - [build without OpenAL audio player [auto]])) - -AS_IF([test x$build_darwin = xyes], [ - OPENAL_LIBS="-framework OpenAL" - OPENAL_CFLAGS="" - AC_SUBST(OPENAL_LIBS) - AC_SUBST(OPENAL_CFLAGS) - with_openal="yes" -], - [test x$with_openal = xno], [openal_disabled="(disabled)"], - [PKG_CHECK_MODULES(OPENAL, openal >= 0.0.8, [with_openal=yes], [with_openal=no])]) - -AS_IF([test x$with_openal != xno], [ - AC_AGI_COMPILE([OpenAL], [openal], [$OPENAL_CFLAGS], [$OPENAL_LIBS],[ -#if defined(__APPLE__) -#include -#include -#else -#include -#include -#endif -int main(void) { - ALCdevice *device = alcOpenDevice(0); - if (!device) return 1; - ALCcontext *context = alcCreateContext(device, 0); - if (!context) return 1; - return 0; -} ]) -]) - -AS_IF([test x$agi_cv_with_openal = xno && test x$with_openal = xyes], [ - AC_MSG_WARN([OpenAL detected, but it doesn''t work...]) - with_openal="no" -]) - -AS_IF([test x$agi_cv_with_openal = xyes && test x$with_openal = xyes], - AC_DEFINE(WITH_OPENAL, 1, [Enable OpenAL support])) - -AC_SUBST(with_openal) - -###### -## OSS -###### -AC_ARG_VAR([OSS_CFLAGS], [CFLAGS to use for OSS [auto]]) -AC_ARG_WITH(oss, - AS_HELP_STRING([--without-oss], - [build without OSS audio player [auto]])) - -AS_IF([test x$with_oss = xno], [oss_disabled="(disabled)"], [ - AS_IF([test -z "$OSS_CFLAGS" && test -f "/etc/oss.conf"], [ - . /etc/oss.conf - OSS_CFLAGS="-I${OSSLIBDIR}/include/sys" - ]) - AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [with_oss="yes"], [with_oss="no"]) -]) - -AS_IF([test x$with_oss = xyes], AC_DEFINE(WITH_OSS, 1, [Enable OSS support])) - -AC_SUBST(with_oss) - -################### -# Simple pkg-config stuff -################### -AGI_OPT_PKG(libpulse, [build without PulseAudio audio player [auto]], [Enable PulseAudio support]) -AGI_OPT_PKG(portaudio-2.0, [build without PortAudio v19 audio player [auto]], [Enable PortAudio v19 support]) - -AGI_OPT_PKG(ffms2, [build without ffms2 A/V provider [auto]], [Enable FFMS2 support]) - -AGI_OPT_PKG(fftw3, [build without fftw support [auto]], [Enable fftw support]) -AGI_OPT_PKG(hunspell, [build without hunspell spell-checking [auto]], [Enable Hunspell support]) -AGI_OPT_PKG(uchardet, [build without automatic character set detection [auto]], [Enable uchardet support]) - -######## -# LuaJIT -######## -system_luajit="bundled" -AC_ARG_WITH(system-luajit, AS_HELP_STRING([--without-system-luajit], [Use built-in LuaJIT [auto]])) -# Check if it's available at all -AS_IF([test x$with_system_luajit = xno], [], - [PKG_CHECK_MODULES(LUAJIT, luajit >= 2.0.0, [], [ - AS_IF([test x$with_system_luajit = xyes], - [AC_MSG_FAILURE([--with-sytem-luajit was specified, but luajit could not be found])]) - with_system_luajit="no"])]) - -# Check if it's compiled in Lua 5.2 mode -# This check can be skipped by manually setting agi_cv_luajit_is_52 -AS_IF([test x$with_system_luajit != xno], [ - aegisub_save_LIBS="$LIBS" - aegisub_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $LUAJIT_CFLAGS" - LIBS="$LIBS $LUAJIT_LIBS" - AC_CACHE_CHECK( - [whether LuaJIT is compiled in 5.2 mode], [agi_cv_luajit_is_52], - [AC_RUN_IFELSE([AC_LANG_PROGRAM( - [[#include ]], - [[lua_State *L = luaL_newstate(); - if (!L) return 1; - // This is valid in lua 5.2, but a syntax error in 5.1 - const char testprogram[] = "function foo() while true do break return end end"; - return luaL_loadstring(L, testprogram) == LUA_ERRSYNTAX; - ]])], [agi_cv_luajit_is_52="yes"], [agi_cv_luajit_is_52="no"])]) - CPPFLAGS="$aegisub_save_CPPFLAGS" - LIBS="$aegisub_save_LIBS" - - if test $agi_cv_luajit_is_52 != yes; then - AS_IF([test x$with_system_luajit = xyes], - [AC_MSG_FAILURE([LuaJIT must be compiled in Lua 5.2 mode])]) - with_system_luajit="no" - else - with_system_luajit="yes" - system_luajit="system" - fi -]) - -AS_IF([test $with_system_luajit = no], - [AC_SUBST([LUAJIT_CFLAGS], ['-I$(TOP)vendor/luajit/include']) - AC_SUBST([LUAJIT_LIBS], ['$(TOP)vendor/luajit/src/libluajit.a'])]) - -# We also need a Lua binary to run part of the build system -# Which version doesn't matter as the scripts are portable between them -AC_CHECK_PROGS([LUA], [lua luajit lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1]) - -# If the user doesn't have an installed copy of Lua, just use the one built -# as part of building LuaJIT -AS_IF([test -z $LUA], [LUA='$(TOP)vendor/luajit/src/host/minilua']) - -###################################################### -# Debugging support -###################################################### -AC_MSG_CHECKING([whether to turn on debugging]) -AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[enable debugging [no]])) -AC_MSG_RESULT([${enable_debug:=no}]) - -AC_MSG_CHECKING([whether to use exception handling in debug mode]) -AC_ARG_ENABLE(debug-exceptions, AS_HELP_STRING([--enable-debug-exceptions],[enable exception handling in debug mode [no]])) -AC_MSG_RESULT([${enabled_debug_exceptions:=no}]) - -AS_IF([test x$enable_debug_exceptions = xyes], - [AC_DEFINE(WITH_EXCEPTIONS, 1, - [Enable exception handling in debug mode. (--enable-debug) This is always enabled when debug mode is off.])]) - -################ -# Widget support -################ -WX_CONFIG_OPTIONS -WX_STANDARD_OPTIONS([debug]) -WX_DEBUG=$DEBUG -WX_UNICODE=$UNICODE -WX_CONFIG_CHECK([wx_required_version],,,[std,gl,stc],[$WXCONFIG_FLAGS]) -AC_SUBST(WX_CONFIG_PATH) - -AS_IF([test x$WX_VERSION = x], - [AC_MSG_FAILURE([wxWidgets detection failed, please set --with-wx* or add the libraries to your LIBS, CXX/CFLAGS.])]) - -AS_IF([test x$enable_sanity_checks != xno], [ - AC_AGI_LINK([wxWidgets OpenGL support], [wxopengl], [wx/glcanvas.h], [$GL_CFLAGS $WX_CFLAGS], [$GL_LIBS $WX_LIBS],[ -#include -int main(void) { - wxGLCanvas *canvas; - wxGLContext *context; - return 0; -} ]) - AC_AGI_LINK([wxWidgets StyledTextCtrl support], [wxstc], [wx/stc/stc.h], [$WX_CFLAGS], [$WX_LIBS],[ -#include -int main(void) { - wxStyledTextCtrl *canvas; - return 0; -} ]) -]) - -AS_IF([test x$with_agi_cv_wxopengl = xno], AC_MSG_FAILURE([wxWidgets OpenGL support missing])) -AS_IF([test x$with_agi_cv_wxstc = xno], AC_MSG_FAILURE([wxWidgets StyledTextCtrl support missing])) - -# This turns on some internal (to aegisub) debugging features. -# A debug version of wxWidgets is required. -AS_IF([test x$enable_debug = xyes], - [AS_IF([$WX_CONFIG_PATH --debug],[AC_CXX_FLAG([-D_DEBUG])])]) - -############################ -# Precompiled Header Support -# Only works with gcc! (and clang) -############################ -AC_MSG_CHECKING([whether to use precompiled headers]) -AC_ARG_ENABLE(gcc-prec, AS_HELP_STRING([--disable-gcc-prec],[disable GCC precompiled headers])) -AC_MSG_RESULT([${enable_gcc_prec:=yes}]) -AC_SUBST(enable_gcc_prec) -AC_PCH_FLAG([-Winvalid-pch]) -AC_PCH_FLAG([-fpch-deps]) -AC_PCH_FLAG([-fpch-preprocess]) - -############################## -# Internationalisation support -############################## -AM_GNU_GETTEXT([external]) - -################ -# Update checker -################ -AC_MSG_CHECKING([whether to enable the update checker]) -AC_ARG_ENABLE(update-checker, - AS_HELP_STRING([--disable-update-checker], [disable the update checker [no]])) -AC_MSG_RESULT(${enable_update_checker:=yes}) -AS_IF([test "x$enable_update_checker" != "xno"], - [AC_DEFINE([WITH_UPDATE_CHECKER], [], - [Whether to enable the update checker])]) - -AC_MSG_CHECKING([for update checker server]) -AC_ARG_WITH(update-server, - AS_HELP_STRING([--with-update-server=HOSTNAME], - [Server to use for the update checker - [updates.aegisub.org]])) -AC_MSG_RESULT(${with_update_server:=updates.aegisub.org}) -AC_DEFINE_UNQUOTED([UPDATE_CHECKER_SERVER], ["$with_update_server"], - [Server for the update checker]) - -AC_MSG_CHECKING([for update checker base URL]) -AC_ARG_WITH(update-url, - AS_HELP_STRING([--with-update-url=HOSTNAME], - [Base path to use for the update checker [/trunk]])) -AC_MSG_RESULT(${with_update_url:=/trunk}) -AC_DEFINE_UNQUOTED([UPDATE_CHECKER_BASE_URL], ["$with_update_url"], - [Base path for the update checker]) - -#################################################################### -# Default settings for Providers/Players -# * This is done at the end to preserve sanity rather than littering -# it above. -#################################################################### -AC_ARG_WITH(player-audio, - AS_HELP_STRING([--with-player-audio=(ALSA|OpenAL|PortAudio|PulseAudio|OSS)], - [Default Audio Player [Linux/ALSA, Darwin/OpenAL, 1:*/OSS, 2:*/PortAudio]])) - -# Default audio player. -AS_IF([test -z "$with_player_audio"], [ - AS_IF([test x$build_linux = xyes && test x$with_alsa = xyes], [DEFAULT_PLAYER_AUDIO="ALSA"], - [test x$build_darwin = xyes && test x$with_openal = xyes], [DEFAULT_PLAYER_AUDIO="OpenAL"], - [test x$with_portaudio = xyes], [DEFAULT_PLAYER_AUDIO="PortAudio"], - [test x$with_oss = xyes], [DEFAULT_PLAYER_AUDIO="OSS"], - [test x$with_alsa = xyes], [DEFAULT_PLAYER_AUDIO="ALSA"], - [test x$with_openal = xyes], [DEFAULT_PLAYER_AUDIO="OpenAL"], - [test x$with_libpulse = xyes], [DEFAULT_PLAYER_AUDIO="PulseAudio"])], - [DEFAULT_PLAYER_AUDIO="$with_player_audio"]) -AC_SUBST(DEFAULT_PLAYER_AUDIO) - -# Set some friendly strings if some of the above aren't detected. -DEFAULT_PLAYER_AUDIO=${DEFAULT_PLAYER_AUDIO:-NONE} - -############### -# Misc settings -############### -# Files that need substitution. -AC_CONFIG_FILES([ -packages/desktop/aegisub.desktop.template -src/libresrc/default_config_platform.json -tools/osx-bundle.sed -Makefile.inc -]) - -AC_OUTPUT - -AS_IF([test x"$DEFAULT_PLAYER_AUDIO" = xNONE], AC_MSG_NOTICE([ - -*********************************************************************** -* No supported audio player interface was found on your system. -* If you want audio support in Aegisub you need to install one of -* these libraries: -* - PulseAudio -* * http://pulseaudio.org/ -* - ALSA (Linux only) -* * http://www.alsa-project.org/ -* - PortAudio (version 19 only) -* * http://www.portaudio.com/ -*********************************************************************** -])) - -AS_IF([test x$with_ffms2 != xyes], [AC_MSG_NOTICE([ - -*********************************************************************** -* No supported video/audio reader interface was found on your system. -* You will not be able to open any video or audio files in Aegisub -* unless you install a supported video/audio provider. -* You will however still be able to open "dummy" video, ie. a blank, -* virtual video clip with subtitles overlaid. -* Currently we only support one video/audio provider on non-Windows -* systems: -* - FFMS2 -* * http://github.com/FFMS/ffms2 -*********************************************************************** -])]) - -AC_MSG_RESULT([ -Configure settings - Install prefix: $prefix - Revision: $BUILD_GIT_VERSION_STRING - Debug $enable_debug - CFLAGS $CFLAGS - CXXFLAGS $CXXFLAGS - CPPFLAGS $CPPFLAGS - LDFLAGS $LDFLAGS - LIBS $LIBS - -Default Settings - Audio Player: $DEFAULT_PLAYER_AUDIO - -Audio Players - ALSA: $with_alsa $alsa_disabled - OpenAL: $with_openal $openal_disabled - OSS: $with_oss $oss_disabled - PortAudio: $with_portaudio $portaudio_disabled - PulseAudio: $with_libpulse $libpulse_disabled - -Misc Packages - uchardet: $with_uchardet $uchardet_disabled - Hunspell: $with_hunspell $hunspell_disabled - FFTW3: $with_fftw3 $fftw3_disabled - LuaJIT: $system_luajit -]) diff --git a/header.mk b/header.mk deleted file mode 100644 index 613b38ff1..000000000 --- a/header.mk +++ /dev/null @@ -1,43 +0,0 @@ -d := $(abspath $(dir $(lastword $(filter-out $(lastword $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))))/ - -ifndef TOP -TOP := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/ -include $(TOP)Makefile.inc - -subdirs := \ - automation \ - libaegisub \ - packages/desktop \ - po \ - src \ - tests \ - tools \ - vendor/luabins \ - vendor/luajit - -subdirs := $(addprefix $(TOP),$(addsuffix /Makefile,$(subdirs))) - -INCLUDING_CHILD_MAKEFILES=yes -d_save := $d -$(foreach dir,$(filter-out $(abspath $(MAKEFILE_LIST)),$(subdirs)), $(eval include $(dir))) -d := $(d_save) -INCLUDING_CHILD_MAKEFILES=no - -DISTCLEANFILES += \ - $(TOP)acconf.h \ - $(TOP)configure \ - $(TOP)acconf.h.in~ \ - $(TOP)build/git_version.h \ - $(TOP)Makefile.inc \ - $(TOP)config.log \ - $(TOP)acconf.h.in \ - $(TOP)config.status \ - $(TOP)autom4te.cache \ - $(TOP)aclocal.m4 \ - -define MKDIR_INSTALL -@$(BIN_MKDIR_P) $(dir $@) -$(BIN_INSTALL) -m644 $< $@ -endef - -endif diff --git a/install-sh b/install-sh deleted file mode 100755 index 0360b79e7..000000000 --- a/install-sh +++ /dev/null @@ -1,501 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2016-01-11.22; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -tab=' ' -nl=' -' -IFS=" $tab$nl" - -# Set DOITPROG to "echo" to test this script. - -doit=${DOITPROG-} -doit_exec=${doit:-exec} - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -is_target_a_directory=possibly - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) is_target_a_directory=never;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - dstdir=`dirname "$dst"` - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - oIFS=$IFS - IFS=/ - set -f - set fnord $dstdir - shift - set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - set +f && - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/libaegisub/Makefile b/libaegisub/Makefile deleted file mode 100644 index 76fc8d6e4..000000000 --- a/libaegisub/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -aegisub_OBJ := \ - $(d)common/parser.o \ - $(d)ass/dialogue_parser.o \ - $(d)ass/time.o \ - $(d)ass/uuencode.o \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)audio/*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)common/cajun/*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)lua/modules/*.cpp))) \ - $(patsubst %.c,%.o,$(sort $(wildcard $(d)lua/modules/*.c))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)lua/*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)unix/*.cpp))) \ - $(d)common/calltip_provider.o \ - $(d)common/character_count.o \ - $(d)common/charset.o \ - $(d)common/charset_6937.o \ - $(d)common/charset_conv.o \ - $(d)common/color.o \ - $(d)common/file_mapping.o \ - $(d)common/format.o \ - $(d)common/fs.o \ - $(d)common/hotkey.o \ - $(d)common/io.o \ - $(d)common/json.o \ - $(d)common/kana_table.o \ - $(d)common/karaoke_matcher.o \ - $(d)common/keyframe.o \ - $(d)common/line_iterator.o \ - $(d)common/log.o \ - $(d)common/mru.o \ - $(d)common/option.o \ - $(d)common/option_value.o \ - $(d)common/path.o \ - $(d)common/thesaurus.o \ - $(d)common/util.o \ - $(d)common/vfr.o \ - $(d)common/ycbcr_conv.o - -ifeq (yes, $(BUILD_DARWIN)) -aegisub_OBJ += $(patsubst %.mm,%.o,$(sort $(wildcard $(d)osx/*.mm))) -else -aegisub_OBJ += $(d)common/dispatch.o -endif - -aegisub_PCH := $(d)lagi_pre.h -aegisub_CPPFLAGS := -I$(d)include -I$(TOP) $(CPPFLAGS_BOOST) $(CFLAGS_LUA) $(CFLAGS_PTHREAD) - -$(d)common/charset.o_FLAGS := $(CFLAGS_UCHARDET) -$(d)common/charset_conv.o_FLAGS := $(CFLAGS_ICONV) -$(d)common/parser.o_FLAGS := -ftemplate-depth=256 -$(d)unix/path.o_FLAGS := -DP_DATA=\"$(P_DATA)\" - -LIB += aegisub - -include $(TOP)Makefile.target diff --git a/m4macros/ac_agi.m4 b/m4macros/ac_agi.m4 deleted file mode 100644 index e45a54767..000000000 --- a/m4macros/ac_agi.m4 +++ /dev/null @@ -1,51 +0,0 @@ -AC_DEFUN([AC_AGI_COMPILE],[ - aegisub_save_LIBS="$LIBS" - aegisub_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $3" - LIBS="$LIBS $4" - AC_LANG_PUSH(C++) - AC_CACHE_CHECK( - [whether $1 works], [agi_cv_with_$2], - [AC_RUN_IFELSE([AC_LANG_SOURCE([$5])], - [eval agi_cv_with_$2="yes"], - [eval agi_cv_with_$2="no"], - [AS_IF([test $? -ne 0], [eval agi_cv_with_$2="no"], [eval agi_cv_with_$2="yes"])])]) - AC_LANG_POP(C++) - CPPFLAGS="$aegisub_save_CPPFLAGS" - LIBS="$aegisub_save_LIBS" -]) - -AC_DEFUN([AC_AGI_LINK],[ - aegisub_save_LIBS="$LIBS" - aegisub_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $4" - LIBS="$LIBS $5" - AC_CHECK_HEADER([$3], [agi_cv_header="yes"], [agi_cv_header="no"]) - AS_IF([test "x$agi_cv_header" = xyes], - [AC_CACHE_CHECK( - [whether $1 works], [agi_cv_with_$2], - [AC_LINK_IFELSE([AC_LANG_SOURCE([$6])], [eval agi_cv_with_$2="yes"], [eval agi_cv_with_$2="no"])])] - [eval agi_cv_with_$2="no"]) - CPPFLAGS="$aegisub_save_CPPFLAGS" - LIBS="$aegisub_save_LIBS" -]) - -# An optional dependency which requires pkg-config -# Args: Name, AC_ARG_WITH help string, AC_DEFINE help string -AC_DEFUN([AGI_OPT_PKG], [ - m4_define([varname], m4_bpatsubst([$1], [-.*], []))dnl - m4_define([upper], m4_translit(varname, [a-z], [A-Z]))dnl - - AC_ARG_WITH(varname, AS_HELP_STRING([--without-][varname], [$2])) - AS_IF([test x$with_]varname[ = xno], - varname[_disabled="(disabled)"], - [PKG_CHECK_MODULES(upper, $1 >= varname[]_required_version, [ - AC_DEFINE([WITH_]upper, 1, $3) - with_[]varname="yes" - ], [ - AS_IF([test x$with_]varname[ = xyes], - [AC_MSG_FAILURE([--with-]varname[ was specified, but ]varname[ could not be found])]) - with_[]varname="no" - ])]) - AC_SUBST([with_]varname) -]) diff --git a/m4macros/ac_flag.m4 b/m4macros/ac_flag.m4 deleted file mode 100644 index 7b22ccad0..000000000 --- a/m4macros/ac_flag.m4 +++ /dev/null @@ -1,56 +0,0 @@ -AC_DEFUN([AC_C_FLAG], [{ - AC_LANG_PUSH(C) - ac_c_flag_save="$CFLAGS" - CFLAGS="$CFLAGS -Werror $1" - AC_MSG_CHECKING([[whether $CC supports $1]]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]])], - [ - CFLAGS="$ac_c_flag_save $1" - AC_MSG_RESULT([yes]) - ], [ - CFLAGS="$ac_c_flag_save" - AC_MSG_RESULT([no]) - $2 - ]) - AC_LANG_POP(C) - }]) -AC_DEFUN([AC_CXX_FLAG], [{ - AC_LANG_PUSH(C++) - ac_cxx_flag_save="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -Werror $1" - AC_MSG_CHECKING([[whether $CXX supports $1]]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]])], - [ - CXXFLAGS="$ac_cxx_flag_save $1" - AC_MSG_RESULT([yes]) - ], - [ - CXXFLAGS="$ac_cxx_flag_save" - AC_MSG_RESULT([no]) - $2 - ]) - AC_LANG_POP(C++) - }]) -AC_DEFUN([AC_PCH_FLAG], [{ - AC_LANG_PUSH(C++) - ac_cxx_flag_save="$CXXFLAGS" - ac_cxx_werror_flag_save="$ac_cxx_werror_flag" - ac_cxx_werror_flag=yes - CXXFLAGS="$CXXFLAGS -Werror $1" - AC_MSG_CHECKING([[whether $CXX supports $1]]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]])], - [ - PCHFLAGS="$PCHFLAGS $1" - AC_MSG_RESULT([yes]) - ], - [ - AC_MSG_RESULT([no]) - $2 - ]) - CXXFLAGS="$ac_cxx_flag_save" - ac_cxx_werror_flag="$ac_cxx_werror_flag_save" - AC_LANG_POP(C++) - }]) diff --git a/m4macros/agi_find_libheader.m4 b/m4macros/agi_find_libheader.m4 deleted file mode 100644 index 7d1dea637..000000000 --- a/m4macros/agi_find_libheader.m4 +++ /dev/null @@ -1,58 +0,0 @@ -AC_DEFUN([AGI_FIND_HEADER],[ - file=`echo $2 | $as_tr_sh` - - aegisub_save_CPPFLAGS="$CPPFLAGS" - - for dir in $3; do - vdir=`echo $dir | $as_tr_sh` - CPPFLAGS="-I$dir" - AC_CACHE_CHECK( - [for $2 in $dir], - [agi_cv_header_${vdir}_${file}], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([#include <$2>])], - [eval agi_cv_header_${vdir}_${file}="yes"; found="${dir}"], - [eval agi_cv_header_${vdir}_${file}="no"; found=""]) - ]) - - if test -n "$found"; then - break; - fi - done - - if test -n "$found"; then - $1_CFLAGS="-I$found" - fi - CPPFLAGS="$aegisub_save_CPPFLAGS" -]) - - -AC_DEFUN([AGI_FIND_LIB],[ - aegisub_save_LIBS="$LIBS" - - if test -n "$3"; then - LDDIR="-L$3" - fi - - for lib in $2; do - vlib=`echo $lib | $as_tr_sh` - LIBS="$LDDIR -l$lib" - AC_CACHE_CHECK( - [for -l${lib}], - [agi_cv_lib_${vlib}], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM()], - [eval agi_cv_lib_${vlib}="yes"; found="${lib}"], - [eval agi_cv_lib_${vlib}="no"; found=""]) - ]) - - if test -n "$found"; then - break; - fi - done - - if test -n "$found"; then - $1_LIBS="$LDDIR -l$found" - fi - LIBS="$aegisub_save_LIBS" -]) diff --git a/m4macros/ax_boost_base.m4 b/m4macros/ax_boost_base.m4 deleted file mode 100644 index 478050ff0..000000000 --- a/m4macros/ax_boost_base.m4 +++ /dev/null @@ -1,301 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_base.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# DESCRIPTION -# -# Test for the Boost C++ libraries of a particular version (or newer) -# -# If no path to the installed boost library is given the macro searchs -# under /usr, /usr/local, /opt and /opt/local and evaluates the -# $BOOST_ROOT environment variable. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) -# -# And sets: -# -# HAVE_BOOST -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# Copyright (c) 2009 Peter Adolphs -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 42 - -# example boost program (need to pass version) -m4_define([_AX_BOOST_BASE_PROGRAM], - [AC_LANG_PROGRAM([[ -#include -]],[[ -(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))])); -]])]) - -AC_DEFUN([AX_BOOST_BASE], -[ -AC_ARG_WITH([boost], - [AS_HELP_STRING([--with-boost@<:@=ARG@:>@], - [use Boost library from a standard location (ARG=yes), - from the specified location (ARG=), - or disable it (ARG=no) - @<:@ARG=yes@:>@ ])], - [ - AS_CASE([$withval], - [no],[want_boost="no";_AX_BOOST_BASE_boost_path=""], - [yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""], - [want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"]) - ], - [want_boost="yes"]) - - -AC_ARG_WITH([boost-libdir], - [AS_HELP_STRING([--with-boost-libdir=LIB_DIR], - [Force given directory for boost libraries. - Note that this will override library path detection, - so use this parameter only if default library detection fails - and you know exactly where your boost libraries are located.])], - [ - AS_IF([test -d "$withval"], - [_AX_BOOST_BASE_boost_lib_path="$withval"], - [AC_MSG_ERROR([--with-boost-libdir expected directory name])]) - ], - [_AX_BOOST_BASE_boost_lib_path=""]) - -BOOST_LDFLAGS="" -BOOST_CPPFLAGS="" -AS_IF([test "x$want_boost" = "xyes"], - [_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])]) -AC_SUBST(BOOST_CPPFLAGS) -AC_SUBST(BOOST_LDFLAGS) -]) - - -# convert a version string in $2 to numeric and affect to polymorphic var $1 -AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[ - AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"]) - _AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'` - _AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'` - AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"], - [AC_MSG_ERROR([You should at least specify libboost major version])]) - _AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'` - AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"], - [_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"]) - _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` - AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"], - [_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"]) - _AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor` - AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET) -]) - -dnl Run the detection of boost should be run only if $want_boost -AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ - _AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1]) - succeeded=no - - - AC_REQUIRE([AC_CANONICAL_HOST]) - dnl On 64-bit systems check for system libraries in both lib64 and lib. - dnl The former is specified by FHS, but e.g. Debian does not adhere to - dnl this (as it rises problems for generic multi-arch support). - dnl The last entry in the list is chosen by default when no libraries - dnl are found, e.g. when only header-only libraries are installed! - AS_CASE([${host_cpu}], - [x86_64],[libsubdirs="lib64 libx32 lib lib64"], - [ppc64|s390x|sparc64|aarch64|ppc64le],[libsubdirs="lib64 lib lib64"], - [libsubdirs="lib"], - ) - - dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give - dnl them priority over the other paths since, if libs are found there, they - dnl are almost assuredly the ones desired. - AS_CASE([${host_cpu}], - [i?86],[multiarch_libsubdir="lib/i386-${host_os}"], - [multiarch_libsubdir="lib/${host_cpu}-${host_os}"] - ) - - dnl first we check the system location for boost libraries - dnl this location ist chosen if boost libraries are installed with the --layout=system option - dnl or if you install boost with RPM - AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[ - AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"]) - AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[ - AC_MSG_RESULT([yes]) - BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include" - for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do - AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"]) - AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[ - AC_MSG_RESULT([yes]) - BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"; - break; - ], - [AC_MSG_RESULT([no])]) - done],[ - AC_MSG_RESULT([no])]) - ],[ - if test X"$cross_compiling" = Xyes; then - search_libsubdirs=$multiarch_libsubdir - else - search_libsubdirs="$multiarch_libsubdir $libsubdirs" - fi - for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do - if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then - for libsubdir in $search_libsubdirs ; do - if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir" - BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include" - break; - fi - done - ]) - - dnl overwrite ld flags if we have required special directory with - dnl --with-boost-libdir parameter - AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"], - [BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"]) - - AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_REQUIRE([AC_PROG_CXX]) - AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ - AC_MSG_RESULT(yes) - succeeded=yes - found_system=yes - ],[ - ]) - AC_LANG_POP([C++]) - - - - dnl if we found no boost with system layout we search for boost libraries - dnl built and installed without the --layout=system option or for a staged(not installed) version - if test "x$succeeded" != "xyes" ; then - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - BOOST_CPPFLAGS= - if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then - BOOST_LDFLAGS= - fi - _version=0 - if test -n "$_AX_BOOST_BASE_boost_path" ; then - if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then - for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do - _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` - V_CHECK=`expr $_version_tmp \> $_version` - if test "x$V_CHECK" = "x1" ; then - _version=$_version_tmp - fi - VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` - BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE" - done - dnl if nothing found search for layout used in Windows distributions - if test -z "$BOOST_CPPFLAGS"; then - if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then - BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path" - fi - fi - dnl if we found something and BOOST_LDFLAGS was unset before - dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here. - if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then - for libsubdir in $libsubdirs ; do - if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir" - fi - fi - else - if test "x$cross_compiling" != "xyes" ; then - for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do - if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then - for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do - _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` - V_CHECK=`expr $_version_tmp \> $_version` - if test "x$V_CHECK" = "x1" ; then - _version=$_version_tmp - best_path=$_AX_BOOST_BASE_boost_path - fi - done - fi - done - - VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` - BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" - if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then - for libsubdir in $libsubdirs ; do - if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - BOOST_LDFLAGS="-L$best_path/$libsubdir" - fi - fi - - if test -n "$BOOST_ROOT" ; then - for libsubdir in $libsubdirs ; do - if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then - version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` - stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` - stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` - V_CHECK=`expr $stage_version_shorten \>\= $_version` - if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then - AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) - BOOST_CPPFLAGS="-I$BOOST_ROOT" - BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" - fi - fi - fi - fi - - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ - AC_MSG_RESULT(yes) - succeeded=yes - found_system=yes - ],[ - ]) - AC_LANG_POP([C++]) - fi - - if test "x$succeeded" != "xyes" ; then - if test "x$_version" = "x0" ; then - AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) - else - AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) - fi - # execute ACTION-IF-NOT-FOUND (if present): - ifelse([$3], , :, [$3]) - else - AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) - # execute ACTION-IF-FOUND (if present): - ifelse([$2], , :, [$2]) - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - -]) \ No newline at end of file diff --git a/m4macros/ax_boost_chrono.m4 b/m4macros/ax_boost_chrono.m4 deleted file mode 100644 index 6ea77b9b3..000000000 --- a/m4macros/ax_boost_chrono.m4 +++ /dev/null @@ -1,118 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_chrono.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_CHRONO -# -# DESCRIPTION -# -# Test for Chrono library from the Boost C++ libraries. The macro requires -# a preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_CHRONO_LIB) -# -# And sets: -# -# HAVE_BOOST_CHRONO -# -# LICENSE -# -# Copyright (c) 2012 Xiyue Deng -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 4 - -AC_DEFUN([AX_BOOST_CHRONO], -[ - AC_ARG_WITH([boost-chrono], - AS_HELP_STRING([--with-boost-chrono@<:@=special-lib@:>@], - [use the Chrono library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-chrono=boost_chrono-gcc-mt ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_chrono_lib="" - else - want_boost="yes" - ax_boost_user_chrono_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_BUILD]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Chrono library is available, - ax_cv_boost_chrono, - [AC_LANG_PUSH([C++]) - CXXFLAGS_SAVE=$CXXFLAGS - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], - [[boost::chrono::system_clock::time_point* time = new boost::chrono::system_clock::time_point; delete time;]])], - ax_cv_boost_chrono=yes, ax_cv_boost_chrono=no) - CXXFLAGS=$CXXFLAGS_SAVE - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_chrono" = "xyes"; then - AC_SUBST(BOOST_CPPFLAGS) - - AC_DEFINE(HAVE_BOOST_CHRONO,,[define if the Boost::Chrono library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - - LDFLAGS_SAVE=$LDFLAGS - if test "x$ax_boost_user_chrono_lib" = "x"; then - for libextension in `ls $BOOSTLIBDIR/libboost_chrono*.so* $BOOSTLIBDIR/libboost_chrono*.dylib* $BOOSTLIBDIR/libboost_chrono*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_chrono.*\)\.so.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_CHRONO_LIB="-l$ax_lib"; AC_SUBST(BOOST_CHRONO_LIB) link_chrono="yes"; break], - [link_chrono="no"]) - done - if test "x$link_chrono" != "xyes"; then - for libextension in `ls $BOOSTLIBDIR/boost_chrono*.dll* $BOOSTLIBDIR/boost_chrono*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_chrono.*\)\.dll.*$;\1;' -e 's;^\(boost_chrono.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_CHRONO_LIB="-l$ax_lib"; AC_SUBST(BOOST_CHRONO_LIB) link_chrono="yes"; break], - [link_chrono="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_chrono_lib boost_chrono-$ax_boost_user_chrono_lib; do - AC_CHECK_LIB($ax_lib, exit, - [BOOST_CHRONO_LIB="-l$ax_lib"; AC_SUBST(BOOST_CHRONO_LIB) link_chrono="yes"; break], - [link_chrono="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_chrono" = "xno"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4macros/ax_boost_filesystem.m4 b/m4macros/ax_boost_filesystem.m4 deleted file mode 100644 index c392f9d65..000000000 --- a/m4macros/ax_boost_filesystem.m4 +++ /dev/null @@ -1,118 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_FILESYSTEM -# -# DESCRIPTION -# -# Test for Filesystem library from the Boost C++ libraries. The macro -# requires a preceding call to AX_BOOST_BASE. Further documentation is -# available at . -# -# This macro calls: -# -# AC_SUBST(BOOST_FILESYSTEM_LIB) -# -# And sets: -# -# HAVE_BOOST_FILESYSTEM -# -# LICENSE -# -# Copyright (c) 2009 Thomas Porschberg -# Copyright (c) 2009 Michael Tindal -# Copyright (c) 2009 Roman Rybalko -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 27 - -AC_DEFUN([AX_BOOST_FILESYSTEM], -[ - AC_ARG_WITH([boost-filesystem], - AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@], - [use the Filesystem library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_filesystem_lib="" - else - want_boost="yes" - ax_boost_user_filesystem_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - LIBS_SAVED=$LIBS - LIBS="$LIBS $BOOST_SYSTEM_LIB" - export LIBS - - AC_CACHE_CHECK(whether the Boost::Filesystem library is available, - ax_cv_boost_filesystem, - [AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], - [[using namespace boost::filesystem; - path my_path( "foo/bar/data.txt" ); - return 0;]])], - ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no) - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_filesystem" = "xyes"; then - AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - if test "x$ax_boost_user_filesystem_lib" = "x"; then - for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], - [link_filesystem="no"]) - done - if test "x$link_filesystem" != "xyes"; then - for libextension in `ls -r $BOOSTLIBDIR/boost_filesystem* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], - [link_filesystem="no"]) - done - fi - else - for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do - AC_CHECK_LIB($ax_lib, exit, - [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], - [link_filesystem="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_filesystem" != "xyes"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - LIBS="$LIBS_SAVED" - fi -]) diff --git a/m4macros/ax_boost_locale.m4 b/m4macros/ax_boost_locale.m4 deleted file mode 100644 index adaedf09e..000000000 --- a/m4macros/ax_boost_locale.m4 +++ /dev/null @@ -1,119 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_locale.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_LOCALE -# -# DESCRIPTION -# -# Test for System library from the Boost C++ libraries. The macro requires -# a preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_LOCALE_LIB) -# -# And sets: -# -# HAVE_BOOST_LOCALE -# -# LICENSE -# -# Copyright (c) 2012 Xiyue Deng -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 2 - -AC_DEFUN([AX_BOOST_LOCALE], -[ - AC_ARG_WITH([boost-locale], - AS_HELP_STRING([--with-boost-locale@<:@=special-lib@:>@], - [use the Locale library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-locale=boost_locale-gcc-mt ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_locale_lib="" - else - want_boost="yes" - ax_boost_user_locale_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_BUILD]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Locale library is available, - ax_cv_boost_locale, - [AC_LANG_PUSH([C++]) - CXXFLAGS_SAVE=$CXXFLAGS - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], - [[boost::locale::generator gen; - std::locale::global(gen(""));]])], - ax_cv_boost_locale=yes, ax_cv_boost_locale=no) - CXXFLAGS=$CXXFLAGS_SAVE - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_locale" = "xyes"; then - AC_SUBST(BOOST_CPPFLAGS) - - AC_DEFINE(HAVE_BOOST_LOCALE,,[define if the Boost::Locale library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - - LDFLAGS_SAVE=$LDFLAGS - if test "x$ax_boost_user_locale_lib" = "x"; then - for libextension in `ls $BOOSTLIBDIR/libboost_locale*.so* $BOOSTLIBDIR/libboost_locale*.dylib* $BOOSTLIBDIR/libboost_locale*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_locale.*\)\.so.*$;\1;' -e 's;^lib\(boost_locale.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_locale.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break], - [link_locale="no"]) - done - if test "x$link_locale" != "xyes"; then - for libextension in `ls $BOOSTLIBDIR/boost_locale*.dll* $BOOSTLIBDIR/boost_locale*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_locale.*\)\.dll.*$;\1;' -e 's;^\(boost_locale.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break], - [link_locale="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_locale_lib boost_locale-$ax_boost_user_locale_lib; do - AC_CHECK_LIB($ax_lib, exit, - [BOOST_LOCALE_LIB="-l$ax_lib"; AC_SUBST(BOOST_LOCALE_LIB) link_locale="yes"; break], - [link_locale="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_locale" = "xno"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4macros/ax_boost_regex.m4 b/m4macros/ax_boost_regex.m4 deleted file mode 100644 index e2413c24f..000000000 --- a/m4macros/ax_boost_regex.m4 +++ /dev/null @@ -1,111 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_regex.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_REGEX -# -# DESCRIPTION -# -# Test for Regex library from the Boost C++ libraries. The macro requires -# a preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_REGEX_LIB) -# -# And sets: -# -# HAVE_BOOST_REGEX -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# Copyright (c) 2008 Michael Tindal -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 23 - -AC_DEFUN([AX_BOOST_REGEX], -[ - AC_ARG_WITH([boost-regex], - AS_HELP_STRING([--with-boost-regex@<:@=special-lib@:>@], - [use the Regex library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-regex=boost_regex-gcc-mt-d-1_33_1 ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_regex_lib="" - else - want_boost="yes" - ax_boost_user_regex_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Regex library is available, - ax_cv_boost_regex, - [AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include - ]], - [[boost::regex r(); return 0;]])], - ax_cv_boost_regex=yes, ax_cv_boost_regex=no) - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_regex" = "xyes"; then - AC_DEFINE(HAVE_BOOST_REGEX,,[define if the Boost::Regex library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - if test "x$ax_boost_user_regex_lib" = "x"; then - for libextension in `ls $BOOSTLIBDIR/libboost_regex*.so* $BOOSTLIBDIR/libboost_regex*.dylib* $BOOSTLIBDIR/libboost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_regex.*\)\.so.*$;\1;' -e 's;^lib\(boost_regex.*\)\.dylib.*;\1;' -e 's;^lib\(boost_regex.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], - [link_regex="no"]) - done - if test "x$link_regex" != "xyes"; then - for libextension in `ls $BOOSTLIBDIR/boost_regex*.dll* $BOOSTLIBDIR/boost_regex*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_regex.*\)\.dll.*$;\1;' -e 's;^\(boost_regex.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], - [link_regex="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_regex_lib boost_regex-$ax_boost_user_regex_lib; do - AC_CHECK_LIB($ax_lib, main, - [BOOST_REGEX_LIB="-l$ax_lib"; AC_SUBST(BOOST_REGEX_LIB) link_regex="yes"; break], - [link_regex="no"]) - done - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the Boost::Regex library!) - fi - if test "x$link_regex" != "xyes"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4macros/ax_boost_system.m4 b/m4macros/ax_boost_system.m4 deleted file mode 100644 index 207d7be8d..000000000 --- a/m4macros/ax_boost_system.m4 +++ /dev/null @@ -1,121 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_system.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_SYSTEM -# -# DESCRIPTION -# -# Test for System library from the Boost C++ libraries. The macro requires -# a preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_SYSTEM_LIB) -# -# And sets: -# -# HAVE_BOOST_SYSTEM -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# Copyright (c) 2008 Michael Tindal -# Copyright (c) 2008 Daniel Casimiro -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 19 - -AC_DEFUN([AX_BOOST_SYSTEM], -[ - AC_ARG_WITH([boost-system], - AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@], - [use the System library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-system=boost_system-gcc-mt ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_system_lib="" - else - want_boost="yes" - ax_boost_user_system_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_BUILD]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::System library is available, - ax_cv_boost_system, - [AC_LANG_PUSH([C++]) - CXXFLAGS_SAVE=$CXXFLAGS - CXXFLAGS= - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], - [[boost::system::error_category *a = 0;]])], - ax_cv_boost_system=yes, ax_cv_boost_system=no) - CXXFLAGS=$CXXFLAGS_SAVE - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_system" = "xyes"; then - AC_SUBST(BOOST_CPPFLAGS) - - AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - - LDFLAGS_SAVE=$LDFLAGS - if test "x$ax_boost_user_system_lib" = "x"; then - for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], - [link_system="no"]) - done - if test "x$link_system" != "xyes"; then - for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], - [link_system="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do - AC_CHECK_LIB($ax_lib, exit, - [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], - [link_system="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_system" = "xno"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4macros/ax_boost_thread.m4 b/m4macros/ax_boost_thread.m4 deleted file mode 100644 index eee9ab61e..000000000 --- a/m4macros/ax_boost_thread.m4 +++ /dev/null @@ -1,163 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_boost_thread.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_THREAD -# -# DESCRIPTION -# -# Test for Thread library from the Boost C++ libraries. The macro requires -# a preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_THREAD_LIB) -# -# And sets: -# -# HAVE_BOOST_THREAD -# -# LICENSE -# -# Copyright (c) 2009 Thomas Porschberg -# Copyright (c) 2009 Michael Tindal -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 31 - -AC_DEFUN([AX_BOOST_THREAD], -[ - AC_ARG_WITH([boost-thread], - AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@], - [use the Thread library from boost - - it is possible to specify a certain library for the linker - e.g. --with-boost-thread=boost_thread-gcc-mt ]), - [ - if test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_thread_lib="" - else - want_boost="yes" - ax_boost_user_thread_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_BUILD]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Thread library is available, - ax_cv_boost_thread, - [AC_LANG_PUSH([C++]) - CXXFLAGS_SAVE=$CXXFLAGS - - if test "x$host_os" = "xsolaris" ; then - CXXFLAGS="-pthreads $CXXFLAGS" - elif test "x$host_os" = "xmingw32" ; then - CXXFLAGS="-mthreads $CXXFLAGS" - else - CXXFLAGS="-pthread $CXXFLAGS" - fi - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM( - [[@%:@include ]], - [[boost::thread_group thrds; - return 0;]])], - ax_cv_boost_thread=yes, ax_cv_boost_thread=no) - CXXFLAGS=$CXXFLAGS_SAVE - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_thread" = "xyes"; then - if test "x$host_os" = "xsolaris" ; then - BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS" - elif test "x$host_os" = "xmingw32" ; then - BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS" - else - BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS" - fi - - AC_SUBST(BOOST_CPPFLAGS) - - AC_DEFINE(HAVE_BOOST_THREAD,, - [define if the Boost::Thread library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - - LDFLAGS_SAVE=$LDFLAGS - case "x$host_os" in - *bsd* ) - LDFLAGS="-pthread $LDFLAGS" - break; - ;; - esac - if test "x$ax_boost_user_thread_lib" = "x"; then - for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [link_thread="yes"; break], - [link_thread="no"]) - done - if test "x$link_thread" != "xyes"; then - for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [link_thread="yes"; break], - [link_thread="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do - AC_CHECK_LIB($ax_lib, exit, - [link_thread="yes"; break], - [link_thread="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_thread" = "xno"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - else - BOOST_THREAD_LIB="-l$ax_lib" - case "x$host_os" in - *bsd* ) - BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS" - break; - ;; - xsolaris ) - BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread" - break; - ;; - xmingw32 ) - break; - ;; - * ) - BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread" - break; - ;; - esac - AC_SUBST(BOOST_THREAD_LIB) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4macros/ax_check_gl.m4 b/m4macros/ax_check_gl.m4 deleted file mode 100644 index 39423bf7f..000000000 --- a/m4macros/ax_check_gl.m4 +++ /dev/null @@ -1,559 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_check_gl.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_CHECK_GL -# -# DESCRIPTION -# -# Check for an OpenGL implementation. If GL is found, the required -# compiler and linker flags are included in the output variables -# "GL_CFLAGS", "GL_LIBS", "GL_LDFLAGS", respectively. If no usable GL -# implementation is found, "no_gl" is set to "yes". -# -# You could disable OpenGL using --with-gl=no -# -# You could choose a specific OpenGL libs using --with-gl=lib_name -# -# Under darwin, cygwin and mingw target you could prefer the OpenGL -# implementation that link with X setting --with-gl=x or without X support -# with --with-gl=nox. Notes that this script try to guess the right -# implementation. -# -# If the header "GL/gl.h" is found, "HAVE_GL_GL_H" is defined. If the -# header "OpenGL/gl.h" is found, HAVE_OPENGL_GL_H is defined. These -# preprocessor definitions may not be mutually exclusive. -# -# You should use something like this in your headers: -# -# #if defined(HAVE_WINDOWS_H) && defined(_WIN32) -# # include -# #endif -# #ifdef HAVE_GL_GL_H -# # include -# #elif defined(HAVE_OPENGL_GL_H) -# # include -# #else -# # error no gl.h -# #endif -# -# LICENSE -# -# Copyright (c) 2009 Braden McDaniel -# Copyright (c) 2012 Bastien Roucaries -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 17 - -m4_define([_AX_CHECK_GL_PROGRAM], - [AC_LANG_PROGRAM([[ -# if defined(HAVE_WINDOWS_H) && defined(_WIN32) -# include -# endif -# ifdef HAVE_GL_GL_H -# include -# elif defined(HAVE_OPENGL_GL_H) -# include -# else -# error no gl.h -# endif -]],[[glBegin(0)]])]) - -dnl Default include : add windows.h -dnl see http://www.opengl.org/wiki/Platform_specifics:_Windows -dnl (acceded 20120801) -AC_DEFUN([_AX_CHECK_GL_INCLUDES_DEFAULT],dnl -[ - AC_INCLUDES_DEFAULT - [ - # if defined(HAVE_WINDOWS_H) && defined(_WIN32) - # include - # endif - ] -]) - -dnl local save flags -AC_DEFUN([_AX_CHECK_GL_SAVE_FLAGS], -[dnl -ax_check_gl_saved_libs="${LIBS}" -ax_check_gl_saved_cflags="${CFLAGS}" -ax_check_gl_saved_cppflags="${CPPFLAGS}" -ax_check_gl_saved_ldflags="${LDFLAGS}" -]) - -dnl local restore flags -AC_DEFUN([_AX_CHECK_GL_RESTORE_FLAGS], -[dnl -LIBS="${ax_check_gl_saved_libs}" -CFLAGS="${ax_check_gl_saved_cflags}" -CPPFLAGS="${ax_check_gl_saved_cppflags}" -LDFLAGS="${ax_check_gl_saved_ldflags}" -]) - -dnl default switch case failure -AC_DEFUN([_AX_CHECK_MSG_FAILURE_ORDER], -[dnl - AC_MSG_FAILURE([Order logic in ax_check_gl is buggy]) -]) - -# set the varible ax_check_gl_need_x -# this variable determine if we need opengl that link with X -# value are default aka try the first library wether if it link or not with x -# yes that means we need a opengl with x -# no that means we do not need an opengl with x -AC_DEFUN([_AX_CHECK_GL_NEED_X], -[dnl - # do not check if empty : allow a subroutine to modify the choice - AS_IF([test "X$ax_check_gl_need_x" = "X"], - [ax_check_gl_need_x="default" - AS_IF([test "X$no_x" = "Xyes"],[ax_check_gl_need_x="no"]) - AS_IF([test "X$ax_check_gl_want_gl" = "Xnox"],[ax_check_gl_need_x="no"]) - AS_IF([test "X$ax_check_gl_want_gl" = "Xx"],[ax_check_gl_need_x="yes"])]) -]) - -# compile the example program -AC_DEFUN([_AX_CHECK_GL_COMPILE], -[dnl - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - AC_COMPILE_IFELSE([_AX_CHECK_GL_PROGRAM], - [ax_check_gl_compile_opengl="yes"], - [ax_check_gl_compile_opengl="no"]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) -]) - -# compile the example program (cache) -AC_DEFUN([_AX_CHECK_GL_COMPILE_CV], -[dnl - AC_CACHE_CHECK([for compiling a minimal OpenGL program],[ax_cv_check_gl_compile_opengl], - [_AX_CHECK_GL_COMPILE() - ax_cv_check_gl_compile_opengl="${ax_check_gl_compile_opengl}"]) - ax_check_gl_compile_opengl="${ax_cv_check_gl_compile_opengl}" -]) - -# link the example program -AC_DEFUN([_AX_CHECK_GL_LINK], -[dnl - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - LIBS="${GL_LIBS} ${LIBS}" - LDFLAGS="${GL_LDFLAGS} ${LDFLAGS}" - AC_LINK_IFELSE([_AX_CHECK_GL_PROGRAM], - [ax_check_gl_link_opengl="yes"], - [ax_check_gl_link_opengl="no"]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) -]) - -# link the example program (cache) -AC_DEFUN([_AX_CHECK_GL_LINK_CV], -[dnl - AC_CACHE_CHECK([for linking a minimal OpenGL program],[ax_cv_check_gl_link_opengl], - [_AX_CHECK_GL_LINK() - ax_cv_check_gl_link_opengl="${ax_check_gl_link_opengl}"]) - ax_check_gl_link_opengl="${ax_cv_check_gl_link_opengl}" -]) - -dnl Check headers manually (default case) -AC_DEFUN([_AX_CHECK_GL_MANUAL_HEADERS_DEFAULT], -[AC_REQUIRE([AC_PATH_XTRA]) - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - # see comment in _AX_CHECK_GL_INCLUDES_DEFAULT - AC_CHECK_HEADERS([windows.h],[],[],[AC_INCLUDES_DEFAULT]) - # FIXME: use extra cflags - AC_CHECK_HEADERS([GL/gl.h],[ax_check_gl_have_headers="yes"], - [ax_check_gl_have_headers_headers="no"], - [_AX_CHECK_GL_INCLUDES_DEFAULT()]) - # do not try darwin specific OpenGl/gl.h - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) -]) - -# darwin headers without X -AC_DEFUN([_AX_CHECK_GL_MANUAL_HEADERS_DARWIN_NOX],[ - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - # FIXME: use -framework opengl as an extra cflags - CFLAGS="-framework opengl ${GL_CFLAGS} ${CFLAGS}" - AC_CHECK_HEADERS([OpenGL/gl.h],[ax_check_gl_have_headers="yes"], - [ax_check_gl_have_headers_headers="no"], - [_AX_CHECK_GL_INCLUDES_DEFAULT()]) - AS_IF([test "X$ax_check_gl_have_headers" = "yes"], - [GL_CFLAGS="-framework opengl ${GL_CFLAGS}"]) - _AX_CHECK_GL_SAVE_FLAGS() - AC_LANG_POP([C]) -]) - -# check header for darwin -AC_DEFUN([_AX_CHECK_GL_MANUAL_HEADERS_DARWIN], -[AC_REQUIRE([_AX_CHECK_GL_NEED_X])dnl - AS_CASE(["$ax_check_gl_order"], - # try to use framework - ["gl"],[_AX_CHECK_GL_MANUAL_HEADERS_DARWIN_NOX()], - # try to use framework then mesa (X) - ["gl mesagl"],[ - _AX_CHECK_GL_MANUAL_HEADERS_DARWIN_NOX() - AS_IF([test "X$ax_check_gl_have_headers" = "yes"], - [ax_check_gl_order="gl" - ax_check_gl_need_x="yes"], - [ax_check_gl_order="mesagl gl" - ax_check_gl_need_x="no"] - # retry with general test - _AX_CHECK_GL_MANUAL_HEADERS_DEFAULT()])], - ["mesagl gl"],[ - _AX_CHECK_GL_MANUAL_HEADERS_DEFAULT() - AS_IF([test "X$ax_check_gl_have_headers" = "yes"], - [ax_check_gl_order="mesagl gl" - ax_check_gl_need_x="no"], - [ax_check_gl_order="gl" - ax_check_gl_need_x="yes" - # retry with framework - _AX_CHECK_GL_MANUAL_HEADERS_DARWIN_NOX()])], - [_AX_CHECK_MSG_FAILURE_ORDER()]) -]) - -dnl Check headers manually: subroutine must set ax_check_gl_have_headers={yes,no} -AC_DEFUN([_AX_CHECK_GL_MANUAL_HEADERS], -[AC_REQUIRE([AC_CANONICAL_HOST]) - AS_CASE([${host}], - [*-darwin*],[_AX_CHECK_GL_MANUAL_HEADERS_DARWIN], - [_AX_CHECK_GL_MANUAL_HEADERS_DEFAULT()]) - AC_CACHE_CHECK([for OpenGL headers],[ax_cv_check_gl_have_headers], - [ax_cv_check_gl_have_headers="${ax_check_gl_have_headers}"]) -]) - -# dnl try to found library (generic case) -# dnl $1 is set to the library to found -AC_DEFUN([_AX_CHECK_GL_MANUAL_LIBS_GENERIC], -[dnl - ax_check_gl_manual_libs_generic_extra_libs="$1" - AS_IF([test "X$ax_check_gl_manual_libs_generic_extra_libs" = "X"], - [AC_MSG_ERROR([AX_CHECK_GL_MANUAL_LIBS_GENERIC argument must no be empty])]) - - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - LIBS="${GL_LIBS} ${LIBS}" - AC_SEARCH_LIBS([glBegin],[$ax_check_gl_manual_libs_generic_extra_libs], - [ax_check_gl_lib_opengl="yes"], - [ax_check_gl_lib_opengl="no"]) - AS_CASE([$ac_cv_search_glBegin], - ["none required"],[], - [no],[], - [GL_LIBS="${ac_cv_search_glBegin} ${GL_LIBS}"]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_PUSH([C]) -]) - -# dnl try to found lib under darwin -# darwin opengl hack -# see http://web.archive.org/web/20090410052741/http://developer.apple.com/qa/qa2007/qa1567.html -# and http://web.eecs.umich.edu/~sugih/courses/eecs487/glut-howto/ -AC_DEFUN([_AX_CHECK_GL_MANUAL_LIBS_DARWIN], -[# ldhack list - ldhack1 = "-Wl,-framework,OpenGL" - ldhack2 = "-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" - ldhack3 = "$ldhack1,$ldhack2" - - # select hack - AS_IF([test "X$ax_check_gl_need_x" = "Xyes"], - [# libs already set by -framework cflag - darwinlibs="" - ldhacks="$ldhack1 $ldhack2 $ldhack3"], - [# do not use framework ldflags in case of x version - darwinlibs="GL gl MesaGL" - ldhack="$ldhack2"]) - - ax_check_gl_link_opengl="no" - for extralibs in " " $darwinlibs; do - for extraldflags in " " ldhacks; do - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - LIBS="$extralibs ${GL_LIBS} ${LIBS}" - LDFLAGS="$extraldflags ${GL_LDFLAGS} ${LDFLAGS}" - AC_LINK_IFELSE([_AX_CHECK_GL_PROGRAM], - [ax_check_gl_link_opengl="yes"], - [ax_check_gl_link_opengl="no"]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) - AS_IF([test "X$ax_check_gl_link_opengl" = "Xyes"],[break]) - done; - AS_IF([test "X$ax_check_gl_link_opengl" = "Xyes"],[break]) - done; - GL_LIBS="$extralibs ${GL_LIBS}" - GL_LDFLAGS="$extraldflags ${GL_LDFLAGS}" -]) - -dnl Check library manually: subroutine must set -dnl $ax_check_gl_lib_opengl={yes,no} -AC_DEFUN([_AX_CHECK_GL_MANUAL_LIBS], -[AC_REQUIRE([AC_CANONICAL_HOST]) - AS_CASE([${host}], - [*-darwin*],[_AX_CHECK_GL_MANUAL_LIBS_DARWIN()], - # try first cygwin version - [*-cygwin*|*-mingw*],[ - AS_CASE(["$ax_check_gl_order"], - ["gl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([opengl32])], - ["gl mesagl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([opengl32 GL gl MesaGL])], - ["mesagl gl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([GL gl MesaGL opengl32])], - [_AX_CHECK_MSG_FAILURE_ORDER()])], - [AS_CASE(["$ax_check_gl_order"], - ["gl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([GL gl])], - ["gl mesagl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([GL gl MesaGL])], - ["mesagl gl"],[_AX_CHECK_GL_MANUAL_LIBS_GENERIC([MesaGL GL gl])], - [_AX_CHECK_MSG_FAILURE_ORDER()])] - ) - - AC_CACHE_CHECK([for OpenGL libraries],[ax_cv_check_gl_lib_opengl], - [ax_cv_check_gl_lib_opengl="${ax_check_gl_lib_opengl}"]) - ax_check_gl_lib_opengl="${ax_cv_check_gl_lib_opengl}" -]) - -# manually check aka old way -AC_DEFUN([_AX_CHECK_GL_MANUAL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PATH_XTRA])dnl - - no_gl="yes" - - _AX_CHECK_GL_MANUAL_HEADERS() - AS_IF([test "X$ax_check_gl_have_headers" = "Xyes"], - [_AX_CHECK_GL_COMPILE_CV()], - [ax_check_gl_compile_opengl=no]) - - AS_IF([test "X$ax_check_gl_compile_opengl" = "Xyes"], - [_AX_CHECK_GL_MANUAL_LIBS], - [ax_check_gl_lib_opengl=no]) - - AS_IF([test "X$ax_check_gl_lib_opengl" = "Xyes"], - [_AX_CHECK_GL_LINK_CV()], - [ax_check_gl_link_opengl=no]) - - AS_IF([test "X$ax_check_gl_link_opengl" = "Xyes"], - [no_gl="no"], - [no_gl="yes"]) -])dnl - - -# try to test using pkgconfig: set ax_check_gl_pkg_config=no if not found -AC_DEFUN([_AX_CHECK_GL_PKG_CONFIG],dnl -[dnl - AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - - dnl First try mesagl - AS_CASE(["$ax_check_gl_order"], - ["gl"],[PKG_CHECK_MODULES([GL],[mesagl], - [ax_check_gl_pkg_config=yes], - [ax_check_gl_pkg_config=no])], - ["gl mesagl"],[PKG_CHECK_MODULES([GL],[gl], - [ax_check_gl_pkg_config=yes], - [PKG_CHECK_MODULES([GL],[mesagl], - [ax_check_gl_pkg_config=yes], - [ax_check_gl_pkg_config=no])])], - ["mesagl gl"],[PKG_CHECK_MODULES([GL],[mesagl], - [ax_check_gl_pkg_config=yes], - [PKG_CHECK_MODULES([GL],[gl], - [ax_check_gl_pkg_config=yes], - [ax_check_gl_pkg_config=no])])], - [_AX_CHECK_MSG_FAILURE_ORDER]) - - AS_IF([test "X$ax_check_gl_pkg_config" = "Xyes"],[ - # check headers - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - AC_CHECK_HEADERS([windows.h],[],[],[AC_INCLUDES_DEFAULT]) - AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], - [ax_check_gl_have_headers="yes";break], - [ax_check_gl_have_headers_headers="no"], - [_AX_CHECK_GL_INCLUDES_DEFAULT()]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) - AC_CACHE_CHECK([for OpenGL headers],[ax_cv_check_gl_have_headers], - [ax_cv_check_gl_have_headers="${ax_check_gl_have_headers}"]) - - # pkgconfig library are suposed to work ... - AS_IF([test "X$ax_cv_check_gl_have_headers" = "Xno"], - [AC_MSG_ERROR("Pkgconfig detected OpenGL library has no headers!")]) - - _AX_CHECK_GL_COMPILE_CV() - AS_IF([test "X$ax_cv_check_gl_compile_opengl" = "Xno"], - [AC_MSG_ERROR("Pkgconfig detected opengl library could not be used for compiling minimal program!")]) - - _AX_CHECK_GL_LINK_CV() - AS_IF([test "X$ax_cv_check_gl_link_opengl" = "Xno"], - [AC_MSG_ERROR("Pkgconfig detected opengl library could not be used for linking minimal program!")]) - ],[ax_check_gl_pkg_config=no]) -]) - -# test if gl link with X -AC_DEFUN([_AX_CHECK_GL_WITH_X], -[ - # try if opengl need X - AC_LANG_PUSH([C]) - _AX_CHECK_GL_SAVE_FLAGS() - CFLAGS="${GL_CFLAGS} ${CFLAGS}" - LIBS="${GL_LIBS} ${LIBS}" - LDFLAGS="${GL_LDFLAGS} ${LDFLAGS}" - AC_LINK_IFELSE([AC_LANG_CALL([], [glXQueryVersion])], - [ax_check_gl_link_implicitly_with_x="yes"], - [ax_check_gl_link_implicitly_with_x="no"]) - _AX_CHECK_GL_RESTORE_FLAGS() - AC_LANG_POP([C]) -]) - -# internal routine: entry point if gl not disable -AC_DEFUN([_AX_CHECK_GL],[dnl - AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - AC_REQUIRE([AC_PATH_X])dnl - - # does we need X or not - _AX_CHECK_GL_NEED_X() - - # try first pkgconfig - AC_MSG_CHECKING([for a working OpenGL implementation by pkg-config]) - AS_IF([test "X${PKG_CONFIG}" = "X"], - [ AC_MSG_RESULT([no]) - ax_check_gl_pkg_config=no], - [ AC_MSG_RESULT([yes]) - _AX_CHECK_GL_PKG_CONFIG()]) - - # if no pkgconfig or pkgconfig fail try manual way - AS_IF([test "X$ax_check_gl_pkg_config" = "Xno"], - [_AX_CHECK_GL_MANUAL()], - [no_gl=no]) - - # test if need to test X compatibility - AS_IF([test $no_gl = no], - [# test X compatibility - AS_IF([test X$ax_check_gl_need_x != "Xdefault"], - [AC_CACHE_CHECK([wether OpenGL link implictly with X],[ax_cv_check_gl_link_with_x], - [_AX_CHECK_GL_WITH_X() - ax_cv_check_gl_link_with_x="${ax_check_gl_link_implicitly_with_x}"]) - AS_IF([test "X${ax_cv_check_gl_link_with_x}" = "X${ax_check_gl_need_x}"], - [no_gl="no"], - [no_gl=yes])]) - ]) -]) - -# ax_check_gl entry point -AC_DEFUN([AX_CHECK_GL], -[AC_REQUIRE([AC_PATH_X])dnl - AC_REQUIRE([AC_CANONICAL_HOST]) - - AC_ARG_WITH([gl], - [AS_HELP_STRING([--with-gl@<:@=ARG@:>@], - [use opengl (ARG=yes), - using the specific lib (ARG=), - using the OpenGL lib that link with X (ARG=x), - using the OpenGL lib that link without X (ARG=nox), - or disable it (ARG=no) - @<:@ARG=yes@:>@ ])], - [ - AS_CASE(["$withval"], - ["no"|"NO"],[ax_check_gl_want_gl="no"], - ["yes"|"YES"],[ax_check_gl_want_gl="yes"], - [ax_check_gl_want_gl="$withval"]) - ], - [ax_check_gl_want_gl="yes"]) - - dnl compatibility with AX_HAVE_OPENGL - AC_ARG_WITH([Mesa], - [AS_HELP_STRING([--with-Mesa@<:@=ARG@:>@], - [Prefer the Mesa library over a vendors native OpenGL (ARG=yes except on mingw ARG=no), - @<:@ARG=yes@:>@ ])], - [ - AS_CASE(["$withval"], - ["no"|"NO"],[ax_check_gl_want_mesa="no"], - ["yes"|"YES"],[ax_check_gl_want_mesa="yes"], - [AC_MSG_ERROR([--with-mesa flag is only yes no])]) - ], - [ax_check_gl_want_mesa="default"]) - - # check consistency of parameters - AS_IF([test "X$have_x" = "Xdisabled"], - [AS_IF([test X$ax_check_gl_want_gl = "Xx"], - [AC_MSG_ERROR([You prefer OpenGL with X and asked for no X support])])]) - - AS_IF([test "X$have_x" = "Xdisabled"], - [AS_IF([test X$x_check_gl_want_mesa = "Xyes"], - [AC_MSG_WARN([You prefer mesa but you disable X. Disable mesa because mesa need X]) - ax_check_gl_want_mesa="no"])]) - - # mesa default means yes except on mingw - AC_MSG_CHECKING([wether we should prefer mesa for opengl implementation]) - AS_IF([test X$ax_check_gl_want_mesa = "Xdefault"], - [AS_CASE([${host}], - [*-mingw*],[ax_check_gl_want_mesa=no], - [ax_check_gl_want_mesa=yes])]) - AC_MSG_RESULT($ax_check_gl_want_mesa) - - # set default guess order - AC_MSG_CHECKING([for a working OpenGL order detection]) - AS_IF([test "X$no_x" = "Xyes"], - [ax_check_gl_order="gl"], - [AS_IF([test X$ax_check_gl_want_mesa = "Xyes"], - [ax_check_gl_order="mesagl gl"], - [ax_check_gl_order="gl mesagl"])]) - AC_MSG_RESULT($ax_check_gl_order) - - # set flags - no_gl="yes" - have_GL="no" - - # now do the real testing - AS_IF([test X$ax_check_gl_want_gl != "Xno"], - [_AX_CHECK_GL()]) - - AC_MSG_CHECKING([for a working OpenGL implementation]) - AS_IF([test "X$no_gl" = "Xno"], - [have_GL="yes" - AC_MSG_RESULT([yes]) - AC_MSG_CHECKING([for CFLAGS needed for OpenGL]) - AC_MSG_RESULT(["${GL_CFLAGS}"]) - AC_MSG_CHECKING([for LIBS needed for OpenGL]) - AC_MSG_RESULT(["${GL_LIBS}"]) - AC_MSG_CHECKING([for LDFLAGS needed for OpenGL]) - AC_MSG_RESULT(["${GL_LDFLAGS}"])], - [AC_MSG_RESULT([no]) - GL_CFLAGS="" - GL_LIBS="" - GL_LDFLAGS=""]) - - AC_SUBST([GL_CFLAGS]) - AC_SUBST([GL_LIBS]) - AC_SUBST([GL_LDFLAGS]) -]) diff --git a/m4macros/ax_lang_compiler_ms.m4 b/m4macros/ax_lang_compiler_ms.m4 deleted file mode 100644 index 71b3d20ec..000000000 --- a/m4macros/ax_lang_compiler_ms.m4 +++ /dev/null @@ -1,36 +0,0 @@ -##### http://autoconf-archive.cryp.to/ax_lang_compiler_ms.html -# -# SYNOPSIS -# -# AX_LANG_COMPILER_MS -# -# DESCRIPTION -# -# Check whether the compiler for the current language is Microsoft. -# -# This macro is modeled after _AC_LANG_COMPILER_GNU in the GNU -# Autoconf implementation. -# -# LAST MODIFICATION -# -# 2004-11-15 -# -# COPYLEFT -# -# Copyright (c) 2004 Braden McDaniel -# -# Copying and distribution of this file, with or without -# modification, are permitted in any medium without royalty provided -# the copyright notice and this notice are preserved. - -AC_DEFUN([AX_LANG_COMPILER_MS], -[AC_CACHE_CHECK([whether we are using the Microsoft _AC_LANG compiler], - [ax_cv_[]_AC_LANG_ABBREV[]_compiler_ms], -[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[#ifndef _MSC_VER - choke me -#endif -]])], - [ax_compiler_ms=yes], - [ax_compiler_ms=no]) -ax_cv_[]_AC_LANG_ABBREV[]_compiler_ms=$ax_compiler_ms -])]) diff --git a/m4macros/ax_pthread.m4 b/m4macros/ax_pthread.m4 deleted file mode 100644 index d383ad5c6..000000000 --- a/m4macros/ax_pthread.m4 +++ /dev/null @@ -1,332 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_pthread.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro figures out how to build C programs using POSIX threads. It -# sets the PTHREAD_LIBS output variable to the threads library and linker -# flags, and the PTHREAD_CFLAGS output variable to any special C compiler -# flags that are needed. (The user can also force certain compiler -# flags/libs to be tested by setting these environment variables.) -# -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) -# -# NOTE: You are assumed to not only compile your program with these flags, -# but also link it with them as well. e.g. you should link with -# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS -# -# If you are only building threads programs, you may wish to use these -# variables in your default LIBS, CFLAGS, and CC: -# -# LIBS="$PTHREAD_LIBS $LIBS" -# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -# CC="$PTHREAD_CC" -# -# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name -# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). -# -# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the -# PTHREAD_PRIO_INHERIT symbol is defined when compiling with -# PTHREAD_CFLAGS. -# -# ACTION-IF-FOUND is a list of shell commands to run if a threads library -# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it -# is not found. If ACTION-IF-FOUND is not specified, the default action -# will define HAVE_PTHREAD. -# -# Please let the authors know if this macro fails on any platform, or if -# you have any other suggestions or comments. This macro was based on work -# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help -# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by -# Alejandro Forero Cuervo to the autoconf macro repository. We are also -# grateful for the helpful feedback of numerous users. -# -# Updated for Autoconf 2.68 by Daniel Richard G. -# -# LICENSE -# -# Copyright (c) 2008 Steven G. Johnson -# Copyright (c) 2011 Daniel Richard G. -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 21 - -AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) -AC_DEFUN([AX_PTHREAD], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_PUSH([C]) -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) - AC_MSG_RESULT([$ax_pthread_ok]) - if test x"$ax_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case ${host_os} in - solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" - ;; - - darwin*) - ax_pthread_flags="-pthread $ax_pthread_flags" - ;; -esac - -# Clang doesn't consider unrecognized options an error unless we specify -# -Werror. We throw in some extra Clang-specific options to ensure that -# this doesn't happen for GCC, which also accepts -Werror. - -AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) -save_CFLAGS="$CFLAGS" -ax_pthread_extra_flags="-Werror" -CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], - [AC_MSG_RESULT([yes])], - [ax_pthread_extra_flags= - AC_MSG_RESULT([no])]) -CFLAGS="$save_CFLAGS" - -if test x"$ax_pthread_ok" = xno; then -for flag in $ax_pthread_flags; do - - case $flag in - none) - AC_MSG_CHECKING([whether pthreads work without any flags]) - ;; - - -*) - AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) - if test x"$ax_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include - static void routine(void *a) { a = 0; } - static void *start_routine(void *a) { return a; }], - [pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */])], - [ax_pthread_ok=yes], - []) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - AC_MSG_RESULT([$ax_pthread_ok]) - if test "x$ax_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$ax_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], - [int attr = $attr; return attr /* ; */])], - [attr_name=$attr; break], - []) - done - AC_MSG_RESULT([$attr_name]) - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - fi - - AC_MSG_CHECKING([if more special flags are required for pthreads]) - flag=no - case ${host_os} in - aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; - osf* | hpux*) flag="-D_REENTRANT";; - solaris*) - if test "$GCC" = "yes"; then - flag="-D_REENTRANT" - else - # TODO: What about Clang on Solaris? - flag="-mt -D_REENTRANT" - fi - ;; - esac - AC_MSG_RESULT([$flag]) - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - [ax_cv_PTHREAD_PRIO_INHERIT], [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[int i = PTHREAD_PRIO_INHERIT;]])], - [ax_cv_PTHREAD_PRIO_INHERIT=yes], - [ax_cv_PTHREAD_PRIO_INHERIT=no]) - ]) - AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], - [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: compile with *_r variant - if test "x$GCC" != xyes; then - case $host_os in - aix*) - AS_CASE(["x/$CC"], - [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], - [#handle absolute path differently from PATH based program lookup - AS_CASE(["x$CC"], - [x/*], - [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], - [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) - ;; - esac - fi -fi - -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - -AC_SUBST([PTHREAD_LIBS]) -AC_SUBST([PTHREAD_CFLAGS]) -AC_SUBST([PTHREAD_CC]) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_pthread_ok" = xyes; then - ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) - : -else - ax_pthread_ok=no - $2 -fi -AC_LANG_POP -])dnl AX_PTHREAD diff --git a/m4macros/check_gnu_make.m4 b/m4macros/check_gnu_make.m4 deleted file mode 100644 index 44e1d9aa2..000000000 --- a/m4macros/check_gnu_make.m4 +++ /dev/null @@ -1,78 +0,0 @@ -##### http://autoconf-archive.cryp.to/check_gnu_make.html -# -# SYNOPSIS -# -# CHECK_GNU_MAKE() -# -# DESCRIPTION -# -# This macro searches for a GNU version of make. If a match is found, -# the makefile variable `ifGNUmake' is set to the empty string, -# otherwise it is set to "#". This is useful for including a special -# features in a Makefile, which cannot be handled by other versions -# of make. The variable _cv_gnu_make_command is set to the command to -# invoke GNU make if it exists, the empty string otherwise. -# -# Here is an example of its use: -# -# Makefile.in might contain: -# -# # A failsafe way of putting a dependency rule into a makefile -# $(DEPEND): -# $(CC) -MM $(srcdir)/*.c > $(DEPEND) -# -# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND))) -# @ifGNUmake@ include $(DEPEND) -# @ifGNUmake@ endif -# -# Then configure.in would normally contain: -# -# CHECK_GNU_MAKE() -# AC_OUTPUT(Makefile) -# -# Then perhaps to cause gnu make to override any other make, we could -# do something like this (note that GNU make always looks for -# GNUmakefile first): -# -# if ! test x$_cv_gnu_make_command = x ; then -# mv Makefile GNUmakefile -# echo .DEFAULT: > Makefile ; -# echo \ $_cv_gnu_make_command \$@ >> Makefile; -# fi -# -# Then, if any (well almost any) other make is called, and GNU make -# also exists, then the other make wraps the GNU make. -# -# LAST MODIFICATION -# -# 2002-01-04 -# -# COPYLEFT -# -# Copyright (c) 2002 John Darrington -# -# Copying and distribution of this file, with or without -# modification, are permitted in any medium without royalty provided -# the copyright notice and this notice are preserved. - -AC_DEFUN( - [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command, - _cv_gnu_make_command='' ; -dnl Search all the common names for GNU make - for a in "$MAKE" make gmake gnumake ; do - if test -z "$a" ; then continue ; fi ; - if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then - _cv_gnu_make_command=$a ; - break; - fi - done ; - ) ; -dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise - if test "x$_cv_gnu_make_command" != "x" ; then - ifGNUmake='' ; - else - ifGNUmake='#' ; - AC_MSG_RESULT("Not found"); - fi - AC_SUBST(ifGNUmake) -] ) diff --git a/m4macros/wxwin.m4 b/m4macros/wxwin.m4 deleted file mode 100644 index 1c50dcc27..000000000 --- a/m4macros/wxwin.m4 +++ /dev/null @@ -1,1060 +0,0 @@ -dnl --------------------------------------------------------------------------- -dnl Author: wxWidgets development team, -dnl Francesco Montorsi, -dnl Bob McCown (Mac-testing) -dnl Creation date: 24/11/2001 -dnl RCS-ID: $Id$ -dnl --------------------------------------------------------------------------- - -dnl =========================================================================== -dnl Table of Contents of this macro file: -dnl ------------------------------------- -dnl -dnl SECTION A: wxWidgets main macros -dnl - WX_CONFIG_OPTIONS -dnl - WX_CONFIG_CHECK -dnl - WXRC_CHECK -dnl - WX_STANDARD_OPTIONS -dnl - WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS -dnl - WX_DETECT_STANDARD_OPTION_VALUES -dnl -dnl SECTION B: wxWidgets-related utilities -dnl - WX_LIKE_LIBNAME -dnl - WX_ARG_ENABLE_YESNOAUTO -dnl - WX_ARG_WITH_YESNOAUTO -dnl -dnl SECTION C: messages to the user -dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG -dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN -dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_END -dnl - WX_BOOLOPT_SUMMARY -dnl -dnl The special "WX_DEBUG_CONFIGURE" variable can be set to 1 to enable extra -dnl debug output on stdout from these macros. -dnl =========================================================================== - - -dnl --------------------------------------------------------------------------- -dnl Macros for wxWidgets detection. Typically used in configure.in as: -dnl -dnl AC_ARG_ENABLE(...) -dnl AC_ARG_WITH(...) -dnl ... -dnl WX_CONFIG_OPTIONS -dnl ... -dnl ... -dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1]) -dnl if test "$wxWin" != 1; then -dnl AC_MSG_ERROR([ -dnl wxWidgets must be installed on your system -dnl but wx-config script couldn't be found. -dnl -dnl Please check that wx-config is in path, the directory -dnl where wxWidgets libraries are installed (returned by -dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or -dnl equivalent variable and wxWidgets version is 2.3.4 or above. -dnl ]) -dnl fi -dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" -dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" -dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" -dnl -dnl LIBS="$LIBS $WX_LIBS" -dnl -dnl If you want to support standard --enable-debug/unicode/shared options, you -dnl may do the following: -dnl -dnl ... -dnl AC_CANONICAL_SYSTEM -dnl -dnl # define configure options -dnl WX_CONFIG_OPTIONS -dnl WX_STANDARD_OPTIONS([debug,unicode,shared,toolkit,wxshared]) -dnl -dnl # basic configure checks -dnl ... -dnl -dnl # we want to always have DEBUG==WX_DEBUG and UNICODE==WX_UNICODE -dnl WX_DEBUG=$DEBUG -dnl WX_UNICODE=$UNICODE -dnl -dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS -dnl WX_CONFIG_CHECK([2.8.0], [wxWin=1],,[html,core,net,base],[$WXCONFIG_FLAGS]) -dnl WX_DETECT_STANDARD_OPTION_VALUES -dnl -dnl # write the output files -dnl AC_CONFIG_FILES([Makefile ...]) -dnl AC_OUTPUT -dnl -dnl # optional: just to show a message to the user -dnl WX_STANDARD_OPTIONS_SUMMARY_MSG -dnl -dnl --------------------------------------------------------------------------- - - -dnl --------------------------------------------------------------------------- -dnl WX_CONFIG_OPTIONS -dnl -dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and -dnl --wx-config command line options -dnl --------------------------------------------------------------------------- - -AC_DEFUN([WX_CONFIG_OPTIONS], -[ - AC_ARG_WITH(wxdir, - [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], - [ wx_config_name="$withval/wx-config" - wx_config_args="--inplace"]) - AC_ARG_WITH(wx-config, - [ --with-wx-config=CONFIG wx-config script to use (optional)], - wx_config_name="$withval" ) - AC_ARG_WITH(wx-prefix, - [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], - wx_config_prefix="$withval", wx_config_prefix="") - AC_ARG_WITH(wx-exec-prefix, - [ --with-wx-exec-prefix=PREFIX - Exec prefix where wxWidgets is installed (optional)], - wx_config_exec_prefix="$withval", wx_config_exec_prefix="") -]) - -dnl Helper macro for checking if wx version is at least $1.$2.$3, set's -dnl wx_ver_ok=yes if it is: -AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], -[ - wx_ver_ok="" - if test "x$WX_VERSION" != x ; then - if test $wx_config_major_version -gt $1; then - wx_ver_ok=yes - else - if test $wx_config_major_version -eq $1; then - if test $wx_config_minor_version -gt $2; then - wx_ver_ok=yes - else - if test $wx_config_minor_version -eq $2; then - if test $wx_config_micro_version -ge $3; then - wx_ver_ok=yes - fi - fi - fi - fi - fi - fi -]) - -dnl --------------------------------------------------------------------------- -dnl WX_CONFIG_CHECK(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND -dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) -dnl -dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC -dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME -dnl environment variable to override the default name of the wx-config script -dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this -dnl case the macro won't even waste time on tests for its existence. -dnl -dnl Optional WX-LIBS argument contains comma- or space-separated list of -dnl wxWidgets libraries to link against. If it is not specified then WX_LIBS -dnl and WX_LIBS_STATIC will contain flags to link with all of the core -dnl wxWidgets libraries. -dnl -dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config -dnl invocation command in present. It can be used to fine-tune lookup of -dnl best wxWidgets build available. -dnl -dnl Example use: -dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] -dnl [--unicode --debug]) -dnl --------------------------------------------------------------------------- - -dnl -dnl Get the cflags and libraries from the wx-config script -dnl -AC_DEFUN([WX_CONFIG_CHECK], -[ - dnl do we have wx-config name: it can be wx-config or wxd-config or ... - if test x${WX_CONFIG_NAME+set} != xset ; then - WX_CONFIG_NAME=wx-config - fi - - if test "x$wx_config_name" != x ; then - WX_CONFIG_NAME="$wx_config_name" - fi - - dnl deal with optional prefixes - if test x$wx_config_exec_prefix != x ; then - wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" - WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" - fi - if test x$wx_config_prefix != x ; then - wx_config_args="$wx_config_args --prefix=$wx_config_prefix" - WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" - fi - if test "$cross_compiling" = "yes"; then - wx_config_args="$wx_config_args --host=$host_alias" - fi - - dnl don't search the PATH if WX_CONFIG_NAME is absolute filename - if test -x "$WX_CONFIG_NAME" ; then - AC_MSG_CHECKING(for wx-config) - WX_CONFIG_PATH="$WX_CONFIG_NAME" - AC_MSG_RESULT($WX_CONFIG_PATH) - else - AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") - fi - - if test "$WX_CONFIG_PATH" != "no" ; then - WX_VERSION="" - - min_wx_version=ifelse([$1], ,2.2.1,$1) - if test -z "$5" ; then - AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) - else - AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) - fi - - dnl don't add the libraries ($4) to this variable as this would result in - dnl an error when it's used with --version below - WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5" - - WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` - wx_config_major_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - wx_config_minor_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - wx_config_micro_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - - wx_requested_major_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - wx_requested_minor_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - wx_requested_micro_version=`echo $min_wx_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - - _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], - [$wx_requested_minor_version], - [$wx_requested_micro_version]) - - if test -n "$wx_ver_ok"; then - AC_MSG_RESULT(yes (version $WX_VERSION)) - WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs $4` - - dnl is this even still appropriate? --static is a real option now - dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is - dnl what the user actually wants, making this redundant at best. - dnl For now keep it in case anyone actually used it in the past. - AC_MSG_CHECKING([for wxWidgets static library]) - WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs $4 2>/dev/null` - if test "x$WX_LIBS_STATIC" = "x"; then - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(yes) - fi - - dnl starting with version 2.2.6 wx-config has --cppflags argument - wx_has_cppflags="" - if test $wx_config_major_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -gt 2; then - wx_has_cppflags=yes - else - if test $wx_config_minor_version -eq 2; then - if test $wx_config_micro_version -ge 6; then - wx_has_cppflags=yes - fi - fi - fi - fi - fi - - dnl starting with version 2.7.0 wx-config has --rescomp option - wx_has_rescomp="" - if test $wx_config_major_version -gt 2; then - wx_has_rescomp=yes - else - if test $wx_config_major_version -eq 2; then - if test $wx_config_minor_version -ge 7; then - wx_has_rescomp=yes - fi - fi - fi - if test "x$wx_has_rescomp" = x ; then - dnl cannot give any useful info for resource compiler - WX_RESCOMP= - else - WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` - fi - - if test "x$wx_has_cppflags" = x ; then - dnl no choice but to define all flags like CFLAGS - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $4` - WX_CPPFLAGS=$WX_CFLAGS - WX_CXXFLAGS=$WX_CFLAGS - - WX_CFLAGS_ONLY=$WX_CFLAGS - WX_CXXFLAGS_ONLY=$WX_CFLAGS - else - dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS - WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags $4` - WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags $4` - WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags $4` - - WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` - WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` - fi - - ifelse([$2], , :, [$2]) - - else - - if test "x$WX_VERSION" = x; then - dnl no wx-config at all - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) - fi - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - - if test ! -z "$5"; then - - wx_error_message=" - The configuration you asked for $PACKAGE_NAME requires a wxWidgets - build with the following settings: - $5 - but such build is not available. - - To see the wxWidgets builds available on this system, please use - 'wx-config --list' command. To use the default build, returned by - 'wx-config --selected-config', use the options with their 'auto' - default values." - - fi - - wx_error_message=" - The requested wxWidgets build couldn't be found. - $wx_error_message - - If you still get this error, then check that 'wx-config' is - in path, the directory where wxWidgets libraries are installed - (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH - or equivalent variable and wxWidgets version is $1 or above." - - ifelse([$3], , AC_MSG_ERROR([$wx_error_message]), [$3]) - - fi - else - - WX_CFLAGS="" - WX_CPPFLAGS="" - WX_CXXFLAGS="" - WX_LIBS="" - WX_LIBS_STATIC="" - WX_RESCOMP="" - - ifelse([$3], , :, [$3]) - - fi - - AC_SUBST(WX_CPPFLAGS) - AC_SUBST(WX_CFLAGS) - AC_SUBST(WX_CXXFLAGS) - AC_SUBST(WX_CFLAGS_ONLY) - AC_SUBST(WX_CXXFLAGS_ONLY) - AC_SUBST(WX_LIBS) - AC_SUBST(WX_LIBS_STATIC) - AC_SUBST(WX_VERSION) - AC_SUBST(WX_RESCOMP) - - dnl need to export also WX_VERSION_MINOR and WX_VERSION_MAJOR symbols - dnl to support wxpresets bakefiles (we export also WX_VERSION_MICRO for completeness): - WX_VERSION_MAJOR="$wx_config_major_version" - WX_VERSION_MINOR="$wx_config_minor_version" - WX_VERSION_MICRO="$wx_config_micro_version" - AC_SUBST(WX_VERSION_MAJOR) - AC_SUBST(WX_VERSION_MINOR) - AC_SUBST(WX_VERSION_MICRO) -]) - -dnl --------------------------------------------------------------------------- -dnl Get information on the wxrc program for making C++, Python and xrs -dnl resource files. -dnl -dnl AC_ARG_ENABLE(...) -dnl AC_ARG_WITH(...) -dnl ... -dnl WX_CONFIG_OPTIONS -dnl ... -dnl WX_CONFIG_CHECK(2.6.0, wxWin=1) -dnl if test "$wxWin" != 1; then -dnl AC_MSG_ERROR([ -dnl wxWidgets must be installed on your system -dnl but wx-config script couldn't be found. -dnl -dnl Please check that wx-config is in path, the directory -dnl where wxWidgets libraries are installed (returned by -dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or -dnl equivalent variable and wxWidgets version is 2.6.0 or above. -dnl ]) -dnl fi -dnl -dnl WXRC_CHECK([HAVE_WXRC=1], [HAVE_WXRC=0]) -dnl if test "x$HAVE_WXRC" != x1; then -dnl AC_MSG_ERROR([ -dnl The wxrc program was not installed or not found. -dnl -dnl Please check the wxWidgets installation. -dnl ]) -dnl fi -dnl -dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" -dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" -dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" -dnl -dnl LDFLAGS="$LDFLAGS $WX_LIBS" -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl WXRC_CHECK([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) -dnl -dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS -dnl resources. The variable WXRC will be set and substituted in the configure -dnl script and Makefiles. -dnl -dnl Example use: -dnl WXRC_CHECK([wxrc=1], [wxrc=0]) -dnl --------------------------------------------------------------------------- - -dnl -dnl wxrc program from the wx-config script -dnl -AC_DEFUN([WXRC_CHECK], -[ - AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) - - if test "x$WX_CONFIG_NAME" = x; then - AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) - else - - AC_MSG_CHECKING([for wxrc]) - - if test "x$WXRC" = x ; then - dnl wx-config --utility is a new addition to wxWidgets: - _WX_PRIVATE_CHECK_VERSION(2,5,3) - if test -n "$wx_ver_ok"; then - WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` - fi - fi - - if test "x$WXRC" = x ; then - AC_MSG_RESULT([not found]) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT([$WXRC]) - ifelse([$1], , :, [$1]) - fi - - AC_SUBST(WXRC) - fi -]) - -dnl --------------------------------------------------------------------------- -dnl WX_LIKE_LIBNAME([output-var] [prefix], [name]) -dnl -dnl Sets the "output-var" variable to the name of a library named with same -dnl wxWidgets rule. -dnl E.g. for output-var=='lib', name=='test', prefix='mine', sets -dnl the $lib variable to: -dnl 'mine_gtk2ud_test-2.8' -dnl if WX_PORT=gtk2, WX_UNICODE=1, WX_DEBUG=1 and WX_RELEASE=28 -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_LIKE_LIBNAME], - [ - wx_temp="$2""_""$WX_PORT" - - dnl add the [u][d] string - if test "$WX_UNICODE" = "1"; then - wx_temp="$wx_temp""u" - fi - if test "$WX_DEBUG" = "1"; then - wx_temp="$wx_temp""d" - fi - - dnl complete the name of the lib - wx_temp="$wx_temp""_""$3""-$WX_VERSION_MAJOR.$WX_VERSION_MINOR" - - dnl save it in the user's variable - $1=$wx_temp - ]) - -dnl --------------------------------------------------------------------------- -dnl WX_ARG_ENABLE_YESNOAUTO/WX_ARG_WITH_YESNOAUTO -dnl -dnl Two little custom macros which define the ENABLE/WITH configure arguments. -dnl Macro arguments: -dnl $1 = the name of the --enable / --with feature -dnl $2 = the name of the variable associated -dnl $3 = the description of that feature -dnl $4 = the default value for that feature -dnl $5 = additional action to do in case option is given with "yes" value -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_ARG_ENABLE_YESNOAUTO], - [AC_ARG_ENABLE($1, - AC_HELP_STRING([--enable-$1], [$3 (default is $4)]), - [], [enableval="$4"]) - - dnl Show a message to the user about this option - AC_MSG_CHECKING([for the --enable-$1 option]) - if test "$enableval" = "yes" ; then - AC_MSG_RESULT([yes]) - $2=1 - $5 - elif test "$enableval" = "no" ; then - AC_MSG_RESULT([no]) - $2=0 - elif test "$enableval" = "auto" ; then - AC_MSG_RESULT([will be automatically detected]) - $2="auto" - else - AC_MSG_ERROR([ - Unrecognized option value (allowed values: yes, no, auto) - ]) - fi - ]) - -AC_DEFUN([WX_ARG_WITH_YESNOAUTO], - [AC_ARG_WITH($1, - AC_HELP_STRING([--with-$1], [$3 (default is $4)]), - [], [withval="$4"]) - - dnl Show a message to the user about this option - AC_MSG_CHECKING([for the --with-$1 option]) - if test "$withval" = "yes" ; then - AC_MSG_RESULT([yes]) - $2=1 - $5 - dnl NB: by default we don't allow --with-$1=no option - dnl since it does not make much sense ! - elif test "$6" = "1" -a "$withval" = "no" ; then - AC_MSG_RESULT([no]) - $2=0 - elif test "$withval" = "auto" ; then - AC_MSG_RESULT([will be automatically detected]) - $2="auto" - else - AC_MSG_ERROR([ - Unrecognized option value (allowed values: yes, auto) - ]) - fi - ]) - - -dnl --------------------------------------------------------------------------- -dnl WX_STANDARD_OPTIONS([options-to-add]) -dnl -dnl Adds to the configure script one or more of the following options: -dnl --enable-[debug|unicode|shared|wxshared|wxdebug] -dnl --with-[gtk|msw|motif|x11|mac|dfb] -dnl --with-wxversion -dnl Then checks for their presence and eventually set the DEBUG, UNICODE, SHARED, -dnl PORT, WX_SHARED, WX_DEBUG, variables to one of the "yes", "no", "auto" values. -dnl -dnl Note that e.g. UNICODE != WX_UNICODE; the first is the value of the -dnl --enable-unicode option (in boolean format) while the second indicates -dnl if wxWidgets was built in Unicode mode (and still is in boolean format). -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_STANDARD_OPTIONS], - [ - - dnl the following lines will expand to WX_ARG_ENABLE_YESNOAUTO calls if and only if - dnl the $1 argument contains respectively the debug,unicode or shared options. - - dnl be careful here not to set debug flag if only "wxdebug" was specified - ifelse(regexp([$1], [\bdebug]), [-1],, - [WX_ARG_ENABLE_YESNOAUTO([debug], [DEBUG], [Build in debug mode], [auto])]) - - ifelse(index([$1], [unicode]), [-1],, - [WX_ARG_ENABLE_YESNOAUTO([unicode], [UNICODE], [Build in Unicode mode], [auto])]) - - ifelse(regexp([$1], [\bshared]), [-1],, - [WX_ARG_ENABLE_YESNOAUTO([shared], [SHARED], [Build as shared library], [auto])]) - - dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-toolkit since it's an option - dnl which must be able to accept the auto|gtk1|gtk2|msw|... values - ifelse(index([$1], [toolkit]), [-1],, - [ - AC_ARG_WITH([toolkit], - AC_HELP_STRING([--with-toolkit], - [Build against a specific wxWidgets toolkit (default is auto)]), - [], [withval="auto"]) - - dnl Show a message to the user about this option - AC_MSG_CHECKING([for the --with-toolkit option]) - if test "$withval" = "auto" ; then - AC_MSG_RESULT([will be automatically detected]) - TOOLKIT="auto" - else - TOOLKIT="$withval" - - dnl PORT must be one of the allowed values - if test "$TOOLKIT" != "gtk1" -a "$TOOLKIT" != "gtk2" -a \ - "$TOOLKIT" != "msw" -a "$TOOLKIT" != "motif" -a \ - "$TOOLKIT" != "osx_carbon" -a "$TOOLKIT" != "osx_cocoa" -a \ - "$TOOLKIT" != "dfb" -a "$TOOLKIT" != "x11"; then - AC_MSG_ERROR([ - Unrecognized option value (allowed values: auto, gtk1, gtk2, msw, motif, osx_carbon, osx_cocoa, dfb, x11) - ]) - fi - - AC_MSG_RESULT([$TOOLKIT]) - fi - ]) - - dnl ****** IMPORTANT ******* - dnl Unlike for the UNICODE setting, you can build your program in - dnl shared mode against a static build of wxWidgets. Thus we have the - dnl following option which allows these mixtures. E.g. - dnl - dnl ./configure --disable-shared --with-wxshared - dnl - dnl will build your library in static mode against the first available - dnl shared build of wxWidgets. - dnl - dnl Note that's not possible to do the viceversa: - dnl - dnl ./configure --enable-shared --without-wxshared - dnl - dnl Doing so you would try to build your library in shared mode against a static - dnl build of wxWidgets. This is not possible (you would mix PIC and non PIC code) ! - dnl A check for this combination of options is in WX_DETECT_STANDARD_OPTION_VALUES - dnl (where we know what 'auto' should be expanded to). - dnl - dnl If you try to build something in ANSI mode against a UNICODE build - dnl of wxWidgets or in RELEASE mode against a DEBUG build of wxWidgets, - dnl then at best you'll get ton of linking errors ! - dnl ************************ - - ifelse(index([$1], [wxshared]), [-1],, - [ - WX_ARG_WITH_YESNOAUTO( - [wxshared], [WX_SHARED], - [Force building against a shared build of wxWidgets, even if --disable-shared is given], - [auto], [], [1]) - ]) - - dnl Just like for SHARED and WX_SHARED it may happen that some adventurous - dnl peoples will want to mix a wxWidgets release build with a debug build of - dnl his app/lib. So, we have both DEBUG and WX_DEBUG variables. - ifelse(index([$1], [wxdebug]), [-1],, - [ - WX_ARG_WITH_YESNOAUTO( - [wxdebug], [WX_DEBUG], - [Force building against a debug build of wxWidgets, even if --disable-debug is given], - [auto], [], [1]) - ]) - - dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-wxversion since it's an option - dnl which accepts the "auto|2.6|2.7|2.8|2.9|3.0" etc etc values - ifelse(index([$1], [wxversion]), [-1],, - [ - AC_ARG_WITH([wxversion], - AC_HELP_STRING([--with-wxversion], - [Build against a specific version of wxWidgets (default is auto)]), - [], [withval="auto"]) - - dnl Show a message to the user about this option - AC_MSG_CHECKING([for the --with-wxversion option]) - if test "$withval" = "auto" ; then - AC_MSG_RESULT([will be automatically detected]) - WX_RELEASE="auto" - else - - wx_requested_major_version=`echo $withval | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\1/'` - wx_requested_minor_version=`echo $withval | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\2/'` - - dnl both vars above must be exactly 1 digit - if test "${#wx_requested_major_version}" != "1" -o \ - "${#wx_requested_minor_version}" != "1" ; then - AC_MSG_ERROR([ - Unrecognized option value (allowed values: auto, 2.6, 2.7, 2.8, 2.9, 3.0) - ]) - fi - - WX_RELEASE="$wx_requested_major_version"".""$wx_requested_minor_version" - AC_MSG_RESULT([$WX_RELEASE]) - fi - ]) - - if test "$WX_DEBUG_CONFIGURE" = "1"; then - echo "[[dbg]] DEBUG: $DEBUG, WX_DEBUG: $WX_DEBUG" - echo "[[dbg]] UNICODE: $UNICODE, WX_UNICODE: $WX_UNICODE" - echo "[[dbg]] SHARED: $SHARED, WX_SHARED: $WX_SHARED" - echo "[[dbg]] TOOLKIT: $TOOLKIT, WX_TOOLKIT: $WX_TOOLKIT" - echo "[[dbg]] VERSION: $VERSION, WX_RELEASE: $WX_RELEASE" - fi - ]) - - -dnl --------------------------------------------------------------------------- -dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS -dnl -dnl Sets the WXCONFIG_FLAGS string using the SHARED,DEBUG,UNICODE variable values -dnl which are different from "auto". -dnl Thus this macro needs to be called only once all options have been set. -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS], - [ - if test "$WX_SHARED" = "1" ; then - WXCONFIG_FLAGS="--static=no " - elif test "$WX_SHARED" = "0" ; then - WXCONFIG_FLAGS="--static=yes " - fi - - if test "$WX_DEBUG" = "1" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=yes " - elif test "$WX_DEBUG" = "0" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=no " - fi - - dnl The user should have set WX_UNICODE=UNICODE - if test "$WX_UNICODE" = "1" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=yes " - elif test "$WX_UNICODE" = "0" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=no " - fi - - if test "$TOOLKIT" != "auto" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--toolkit=$TOOLKIT " - fi - - if test "$WX_RELEASE" != "auto" ; then - WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--version=$WX_RELEASE " - fi - - dnl strip out the last space of the string - WXCONFIG_FLAGS=${WXCONFIG_FLAGS% } - - if test "$WX_DEBUG_CONFIGURE" = "1"; then - echo "[[dbg]] WXCONFIG_FLAGS: $WXCONFIG_FLAGS" - fi - ]) - - -dnl --------------------------------------------------------------------------- -dnl _WX_SELECTEDCONFIG_CHECKFOR([RESULTVAR], [STRING], [MSG] -dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) -dnl -dnl Outputs the given MSG. Then searches the given STRING in the wxWidgets -dnl additional CPP flags and put the result of the search in WX_$RESULTVAR -dnl also adding the "yes" or "no" message result to MSG. -dnl --------------------------------------------------------------------------- -AC_DEFUN([_WX_SELECTEDCONFIG_CHECKFOR], - [ - if test "$$1" = "auto" ; then - - dnl The user does not have particular preferences for this option; - dnl so we will detect the wxWidgets relative build setting and use it - AC_MSG_CHECKING([$3]) - - dnl set WX_$1 variable to 1 if the $WX_SELECTEDCONFIG contains the $2 - dnl string or to 0 otherwise. - dnl NOTE: 'expr match STRING REGEXP' cannot be used since on Mac it - dnl doesn't work; we use 'expr STRING : REGEXP' instead - WX_$1=$(expr "$WX_SELECTEDCONFIG" : ".*$2.*") - - if test "$WX_$1" != "0"; then - WX_$1=1 - AC_MSG_RESULT([yes]) - ifelse([$4], , :, [$4]) - else - WX_$1=0 - AC_MSG_RESULT([no]) - ifelse([$5], , :, [$5]) - fi - else - - dnl Use the setting given by the user - WX_$1=$$1 - fi - ]) - -dnl --------------------------------------------------------------------------- -dnl WX_DETECT_STANDARD_OPTION_VALUES -dnl -dnl Detects the values of the following variables: -dnl 1) WX_RELEASE -dnl 2) WX_UNICODE -dnl 3) WX_DEBUG -dnl 4) WX_SHARED (and also WX_STATIC) -dnl 5) WX_PORT -dnl from the previously selected wxWidgets build; this macro in fact must be -dnl called *after* calling the WX_CONFIG_CHECK macro. -dnl -dnl Note that the WX_VERSION_MAJOR, WX_VERSION_MINOR symbols are already set -dnl by WX_CONFIG_CHECK macro -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_DETECT_STANDARD_OPTION_VALUES], - [ - dnl IMPORTANT: WX_VERSION contains all three major.minor.micro digits, - dnl while WX_RELEASE only the major.minor ones. - WX_RELEASE="$WX_VERSION_MAJOR""$WX_VERSION_MINOR" - if test $WX_RELEASE -lt 26 ; then - - AC_MSG_ERROR([ - Cannot detect the wxWidgets configuration for the selected wxWidgets build - since its version is $WX_VERSION < 2.6.0; please install a newer - version of wxWidgets. - ]) - fi - - dnl The wx-config we are using understands the "--selected_config" - dnl option which returns an easy-parseable string ! - WX_SELECTEDCONFIG=$($WX_CONFIG_WITH_ARGS --selected_config) - - if test "$WX_DEBUG_CONFIGURE" = "1"; then - echo "[[dbg]] Using wx-config --selected-config" - echo "[[dbg]] WX_SELECTEDCONFIG: $WX_SELECTEDCONFIG" - fi - - - dnl we could test directly for WX_SHARED with a line like: - dnl _WX_SELECTEDCONFIG_CHECKFOR([SHARED], [shared], - dnl [if wxWidgets was built in SHARED mode]) - dnl but wx-config --selected-config DOES NOT outputs the 'shared' - dnl word when wx was built in shared mode; it rather outputs the - dnl 'static' word when built in static mode. - if test $WX_SHARED = "1"; then - STATIC=0 - elif test $WX_SHARED = "0"; then - STATIC=1 - elif test $WX_SHARED = "auto"; then - STATIC="auto" - fi - - dnl Now set the WX_UNICODE, WX_DEBUG, WX_STATIC variables - _WX_SELECTEDCONFIG_CHECKFOR([UNICODE], [unicode], - [if wxWidgets was built with UNICODE enabled]) - _WX_SELECTEDCONFIG_CHECKFOR([DEBUG], [debug], - [if wxWidgets was built in DEBUG mode]) - _WX_SELECTEDCONFIG_CHECKFOR([STATIC], [static], - [if wxWidgets was built in STATIC mode]) - - dnl init WX_SHARED from WX_STATIC - if test "$WX_STATIC" != "0"; then - WX_SHARED=0 - else - WX_SHARED=1 - fi - - AC_SUBST(WX_UNICODE) - AC_SUBST(WX_DEBUG) - AC_SUBST(WX_SHARED) - - dnl detect the WX_PORT to use - if test "$TOOLKIT" = "auto" ; then - - dnl The user does not have particular preferences for this option; - dnl so we will detect the wxWidgets relative build setting and use it - AC_MSG_CHECKING([which wxWidgets toolkit was selected]) - - WX_GTKPORT1=$(expr "$WX_SELECTEDCONFIG" : ".*gtk1.*") - WX_GTKPORT2=$(expr "$WX_SELECTEDCONFIG" : ".*gtk2.*") - WX_MSWPORT=$(expr "$WX_SELECTEDCONFIG" : ".*msw.*") - WX_MOTIFPORT=$(expr "$WX_SELECTEDCONFIG" : ".*motif.*") - WX_OSXCOCOAPORT=$(expr "$WX_SELECTEDCONFIG" : ".*osx_cocoa.*") - WX_OSXCARBONPORT=$(expr "$WX_SELECTEDCONFIG" : ".*osx_carbon.*") - WX_X11PORT=$(expr "$WX_SELECTEDCONFIG" : ".*x11.*") - WX_DFBPORT=$(expr "$WX_SELECTEDCONFIG" : ".*dfb.*") - - WX_PORT="unknown" - if test "$WX_GTKPORT1" != "0"; then WX_PORT="gtk1"; fi - if test "$WX_GTKPORT2" != "0"; then WX_PORT="gtk2"; fi - if test "$WX_MSWPORT" != "0"; then WX_PORT="msw"; fi - if test "$WX_MOTIFPORT" != "0"; then WX_PORT="motif"; fi - if test "$WX_OSXCOCOAPORT" != "0"; then WX_PORT="osx_cocoa"; fi - if test "$WX_OSXCARBONPORT" != "0"; then WX_PORT="osx_carbon"; fi - if test "$WX_X11PORT" != "0"; then WX_PORT="x11"; fi - if test "$WX_DFBPORT" != "0"; then WX_PORT="dfb"; fi - - dnl NOTE: backward-compatible check for wx2.8; in wx2.9 the mac - dnl ports are called 'osx_cocoa' and 'osx_carbon' (see above) - WX_MACPORT=$(expr "$WX_SELECTEDCONFIG" : ".*mac.*") - if test "$WX_MACPORT" != "0"; then WX_PORT="mac"; fi - - dnl check at least one of the WX_*PORT has been set ! - - if test "$WX_PORT" = "unknown" ; then - AC_MSG_ERROR([ - Cannot detect the currently installed wxWidgets port ! - Please check your 'wx-config --cxxflags'... - ]) - fi - - AC_MSG_RESULT([$WX_PORT]) - else - - dnl Use the setting given by the user - if test -z "$TOOLKIT" ; then - WX_PORT=$TOOLKIT - else - dnl try with PORT - WX_PORT=$PORT - fi - fi - - AC_SUBST(WX_PORT) - - if test "$WX_DEBUG_CONFIGURE" = "1"; then - echo "[[dbg]] Values of all WX_* options after final detection:" - echo "[[dbg]] WX_DEBUG: $WX_DEBUG" - echo "[[dbg]] WX_UNICODE: $WX_UNICODE" - echo "[[dbg]] WX_SHARED: $WX_SHARED" - echo "[[dbg]] WX_RELEASE: $WX_RELEASE" - echo "[[dbg]] WX_PORT: $WX_PORT" - fi - - dnl Avoid problem described in the WX_STANDARD_OPTIONS which happens when - dnl the user gives the options: - dnl ./configure --enable-shared --without-wxshared - dnl or just do - dnl ./configure --enable-shared - dnl but there is only a static build of wxWidgets available. - if test "$WX_SHARED" = "0" -a "$SHARED" = "1"; then - AC_MSG_ERROR([ - Cannot build shared library against a static build of wxWidgets ! - This error happens because the wxWidgets build which was selected - has been detected as static while you asked to build $PACKAGE_NAME - as shared library and this is not possible. - Use the '--disable-shared' option to build $PACKAGE_NAME - as static library or '--with-wxshared' to use wxWidgets as shared library. - ]) - fi - - dnl now we can finally update the DEBUG,UNICODE,SHARED options - dnl to their final values if they were set to 'auto' - if test "$DEBUG" = "auto"; then - DEBUG=$WX_DEBUG - fi - if test "$UNICODE" = "auto"; then - UNICODE=$WX_UNICODE - fi - if test "$SHARED" = "auto"; then - SHARED=$WX_SHARED - fi - if test "$TOOLKIT" = "auto"; then - TOOLKIT=$WX_PORT - fi - - dnl in case the user needs a BUILD=debug/release var... - if test "$DEBUG" = "1"; then - BUILD="debug" - elif test "$DEBUG" = "0" -o "$DEBUG" = ""; then - BUILD="release" - fi - - dnl respect the DEBUG variable adding the optimize/debug flags - dnl NOTE: the CXXFLAGS are merged together with the CPPFLAGS so we - dnl don't need to set them, too - if test "$DEBUG" = "1"; then - CXXFLAGS="$CXXFLAGS -g -O0" - CFLAGS="$CFLAGS -g -O0" - else - CXXFLAGS="$CXXFLAGS -O2" - CFLAGS="$CFLAGS -O2" - fi - ]) - -dnl --------------------------------------------------------------------------- -dnl WX_BOOLOPT_SUMMARY([name of the boolean variable to show summary for], -dnl [what to print when var is 1], -dnl [what to print when var is 0]) -dnl -dnl Prints $2 when variable $1 == 1 and prints $3 when variable $1 == 0. -dnl This macro mainly exists just to make configure.ac scripts more readable. -dnl -dnl NOTE: you need to use the [" my message"] syntax for 2nd and 3rd arguments -dnl if you want that m4 avoid to throw away the spaces prefixed to the -dnl argument value. -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_BOOLOPT_SUMMARY], - [ - if test "x$$1" = "x1" ; then - echo $2 - elif test "x$$1" = "x0" ; then - echo $3 - else - echo "$1 is $$1" - fi - ]) - -dnl --------------------------------------------------------------------------- -dnl WX_STANDARD_OPTIONS_SUMMARY_MSG -dnl -dnl Shows a summary message to the user about the WX_* variable contents. -dnl This macro is used typically at the end of the configure script. -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG], - [ - echo - echo " The wxWidgets build which will be used by $PACKAGE_NAME $PACKAGE_VERSION" - echo " has the following settings:" - WX_BOOLOPT_SUMMARY([WX_DEBUG], [" - DEBUG build"], [" - RELEASE build"]) - WX_BOOLOPT_SUMMARY([WX_UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) - WX_BOOLOPT_SUMMARY([WX_SHARED], [" - SHARED mode"], [" - STATIC mode"]) - echo " - VERSION: $WX_VERSION" - echo " - PORT: $WX_PORT" - ]) - - -dnl --------------------------------------------------------------------------- -dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN, WX_STANDARD_OPTIONS_SUMMARY_MSG_END -dnl -dnl Like WX_STANDARD_OPTIONS_SUMMARY_MSG macro but these two macros also gives info -dnl about the configuration of the package which used the wxpresets. -dnl -dnl Typical usage: -dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN -dnl echo " - Package setting 1: $SETTING1" -dnl echo " - Package setting 2: $SETTING1" -dnl ... -dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_END -dnl -dnl --------------------------------------------------------------------------- -AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN], - [ - echo - echo " ----------------------------------------------------------------" - echo " Configuration for $PACKAGE_NAME $PACKAGE_VERSION successfully completed." - echo " Summary of main configuration settings for $PACKAGE_NAME:" - WX_BOOLOPT_SUMMARY([DEBUG], [" - DEBUG build"], [" - RELEASE build"]) - WX_BOOLOPT_SUMMARY([UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) - WX_BOOLOPT_SUMMARY([SHARED], [" - SHARED mode"], [" - STATIC mode"]) - ]) - -AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_END], - [ - WX_STANDARD_OPTIONS_SUMMARY_MSG - echo - echo " Now, just run make." - echo " ----------------------------------------------------------------" - echo - ]) - - -dnl --------------------------------------------------------------------------- -dnl Deprecated macro wrappers -dnl --------------------------------------------------------------------------- - -AC_DEFUN([AM_OPTIONS_WXCONFIG], [WX_CONFIG_OPTIONS]) -AC_DEFUN([AM_PATH_WXCONFIG], [ - WX_CONFIG_CHECK([$1],[$2],[$3],[$4],[$5]) -]) -AC_DEFUN([AM_PATH_WXRC], [WXRC_CHECK([$1],[$2])]) diff --git a/tests/Makefile b/tests/Makefile deleted file mode 100644 index 137430854..000000000 --- a/tests/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -GTEST_ROOT ?= $(TOP)vendor/googletest -GTEST_FILE := ${GTEST_ROOT}/src/gtest-all - -run_PCH := $(d)support/tests_pre.h -run_CPPFLAGS := -I$(TOP)libaegisub/include -I$(TOP) -I$(d)support \ - -I$(GTEST_ROOT) -I$(GTEST_ROOT)/include $(CPPFLAGS_BOOST) $(CFLAGS_LUA) -run_CXXFLAGS := -Wno-unused-value -Wno-sign-compare -run_LIBS := $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_UCHARDET) $(LIBS_PTHREAD) -run_OBJ := \ - $(patsubst %.cpp,%.o,$(wildcard $(d)tests/*.cpp)) \ - $(d)support/main.o \ - $(d)support/util.o \ - $(TOP)lib/libaegisub.a \ - $(GTEST_FILE).o - -# This bit of goofiness is to make it only try to build the tests if google -# test can be found and silently skip it if not, by using $(wildcard) to check -# for file existence -PROGRAM += $(subst $(GTEST_FILE).cc,$(d)run,$(wildcard $(GTEST_FILE).cc)) - -ifeq (yes, $(BUILD_DARWIN)) -run_LIBS += -framework ApplicationServices -framework Foundation -endif - -$(d)data: $(d)setup.sh - cd $(TOP)tests; ./setup.sh - -gtest_filter ?= * -test-libaegisub: $(d)run $(d)data - cd $(TOP)tests; ./run --gtest_filter="$(gtest_filter)" - -test: $(subst $(GTEST_FILE).cc,test-libaegisub,$(wildcard $(GTEST_FILE).cc)) - -include $(TOP)Makefile.target From 1a133cd567a3c3fd97233a3a678ed12ebe46bf5d Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 19:27:48 -0500 Subject: [PATCH 072/185] meson: move version scripts to tools directory --- meson.build | 4 ++-- version.ps1 => tools/version.ps1 | 0 version.sh => tools/version.sh | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename version.ps1 => tools/version.ps1 (100%) rename version.sh => tools/version.sh (100%) mode change 100755 => 100644 diff --git a/meson.build b/meson.build index 77e64573f..c919ae867 100644 --- a/meson.build +++ b/meson.build @@ -3,9 +3,9 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', default_options: ['cpp_std=c++11', 'b_lto=true']) if host_machine.system() == 'windows' - version_sh = find_program('version.ps1') + version_sh = find_program('tools/version.ps1') else - version_sh = find_program('version.sh') + version_sh = find_program('tools/version.sh') endif version_inc = include_directories('.') version_h = custom_target('git_version.h', diff --git a/version.ps1 b/tools/version.ps1 similarity index 100% rename from version.ps1 rename to tools/version.ps1 diff --git a/version.sh b/tools/version.sh old mode 100755 new mode 100644 similarity index 100% rename from version.sh rename to tools/version.sh From a9dfafd37a197fa9f995a9c78164295897657d4b Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 19:28:58 -0500 Subject: [PATCH 073/185] meson: fix syntax errors in packages/meson.build --- packages/meson.build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/meson.build b/packages/meson.build index 799f4ff68..c114848f6 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -10,10 +10,11 @@ else install_dir: get_option('datadir') / 'applications') endif -foreach s: ['16x16.png', '22x22.png', '24x24.png', '32x32.png', - '48x48.png', '64x64.png', 'scalable.svg'] +aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] + +foreach s: aegisub_logos dir = s.split('.')[0] ext = s.split('.')[1] - install_data('desktop' / dir / 'aegisub.' + ext), + install_data('desktop' / dir / 'aegisub.' + ext, install_dir: get_option('datadir') / 'icons' / 'hicolor' / dir / 'apps') endforeach From 506bac365d30b616092292fa7ef9ffb29bc91ace Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 19:56:21 -0500 Subject: [PATCH 074/185] meson: move luajit to subprojects directory --- subprojects/luajit | 1 - {vendor => subprojects}/luajit/COPYRIGHT | 0 {vendor => subprojects}/luajit/Makefile | 0 {vendor => subprojects}/luajit/README | 0 .../luajit/dynasm/dasm_arm.h | 0 .../luajit/dynasm/dasm_arm.lua | 0 .../luajit/dynasm/dasm_mips.h | 0 .../luajit/dynasm/dasm_mips.lua | 0 .../luajit/dynasm/dasm_ppc.h | 0 .../luajit/dynasm/dasm_ppc.lua | 0 .../luajit/dynasm/dasm_proto.h | 0 .../luajit/dynasm/dasm_x64.lua | 0 .../luajit/dynasm/dasm_x86.h | 0 .../luajit/dynasm/dasm_x86.lua | 0 .../luajit/dynasm/dynasm.lua | 0 .../luajit/include/lauxlib.h | 0 {vendor => subprojects}/luajit/include/lua.h | 0 .../luajit/include/lua.hpp | 0 .../luajit/include/luaconf.h | 0 .../luajit/include/luajit.h | 0 .../luajit/include/lualib.h | 0 {vendor => subprojects}/luajit/meson.build | 0 {vendor => subprojects}/luajit/src/Makefile | 0 .../luajit/src/host/README | 0 .../luajit/src/host/buildvm.c | 0 .../luajit/src/host/buildvm.h | 0 .../luajit/src/host/buildvm_asm.c | 0 .../luajit/src/host/buildvm_fold.c | 0 .../luajit/src/host/buildvm_lib.c | 0 .../luajit/src/host/buildvm_peobj.c | 0 .../luajit/src/host/genminilua.lua | 0 .../luajit/src/host/meson.build | 0 .../luajit/src/host/minilua.c | 0 {vendor => subprojects}/luajit/src/jit/bc.lua | 0 .../luajit/src/jit/bcsave.lua | 0 .../luajit/src/jit/dis_arm.lua | 0 .../luajit/src/jit/dis_mips.lua | 0 .../luajit/src/jit/dis_mipsel.lua | 0 .../luajit/src/jit/dis_ppc.lua | 0 .../luajit/src/jit/dis_x64.lua | 0 .../luajit/src/jit/dis_x86.lua | 0 .../luajit/src/jit/dump.lua | 0 {vendor => subprojects}/luajit/src/jit/v.lua | 0 {vendor => subprojects}/luajit/src/lauxlib.h | 0 {vendor => subprojects}/luajit/src/lib_aux.c | 0 {vendor => subprojects}/luajit/src/lib_base.c | 0 {vendor => subprojects}/luajit/src/lib_bit.c | 0 .../luajit/src/lib_debug.c | 0 {vendor => subprojects}/luajit/src/lib_ffi.c | 0 {vendor => subprojects}/luajit/src/lib_init.c | 0 {vendor => subprojects}/luajit/src/lib_io.c | 0 {vendor => subprojects}/luajit/src/lib_jit.c | 0 {vendor => subprojects}/luajit/src/lib_math.c | 0 {vendor => subprojects}/luajit/src/lib_os.c | 0 .../luajit/src/lib_package.c | 0 .../luajit/src/lib_string.c | 0 .../luajit/src/lib_table.c | 0 {vendor => subprojects}/luajit/src/lj.supp | 0 {vendor => subprojects}/luajit/src/lj_alloc.c | 0 {vendor => subprojects}/luajit/src/lj_alloc.h | 0 {vendor => subprojects}/luajit/src/lj_api.c | 0 {vendor => subprojects}/luajit/src/lj_arch.h | 0 {vendor => subprojects}/luajit/src/lj_asm.c | 0 {vendor => subprojects}/luajit/src/lj_asm.h | 0 .../luajit/src/lj_asm_arm.h | 0 .../luajit/src/lj_asm_mips.h | 0 .../luajit/src/lj_asm_ppc.h | 0 .../luajit/src/lj_asm_x86.h | 0 {vendor => subprojects}/luajit/src/lj_bc.c | 0 {vendor => subprojects}/luajit/src/lj_bc.h | 0 .../luajit/src/lj_bcdump.h | 0 .../luajit/src/lj_bcread.c | 0 .../luajit/src/lj_bcwrite.c | 0 .../luajit/src/lj_carith.c | 0 .../luajit/src/lj_carith.h | 0 {vendor => subprojects}/luajit/src/lj_ccall.c | 0 {vendor => subprojects}/luajit/src/lj_ccall.h | 0 .../luajit/src/lj_ccallback.c | 0 .../luajit/src/lj_ccallback.h | 0 {vendor => subprojects}/luajit/src/lj_cconv.c | 0 {vendor => subprojects}/luajit/src/lj_cconv.h | 0 {vendor => subprojects}/luajit/src/lj_cdata.c | 0 {vendor => subprojects}/luajit/src/lj_cdata.h | 0 {vendor => subprojects}/luajit/src/lj_char.c | 0 {vendor => subprojects}/luajit/src/lj_char.h | 0 {vendor => subprojects}/luajit/src/lj_clib.c | 0 {vendor => subprojects}/luajit/src/lj_clib.h | 0 .../luajit/src/lj_cparse.c | 0 .../luajit/src/lj_cparse.h | 0 .../luajit/src/lj_crecord.c | 0 .../luajit/src/lj_crecord.h | 0 {vendor => subprojects}/luajit/src/lj_ctype.c | 0 {vendor => subprojects}/luajit/src/lj_ctype.h | 0 {vendor => subprojects}/luajit/src/lj_debug.c | 0 {vendor => subprojects}/luajit/src/lj_debug.h | 0 {vendor => subprojects}/luajit/src/lj_def.h | 0 .../luajit/src/lj_dispatch.c | 0 .../luajit/src/lj_dispatch.h | 0 .../luajit/src/lj_emit_arm.h | 0 .../luajit/src/lj_emit_mips.h | 0 .../luajit/src/lj_emit_ppc.h | 0 .../luajit/src/lj_emit_x86.h | 0 {vendor => subprojects}/luajit/src/lj_err.c | 0 {vendor => subprojects}/luajit/src/lj_err.h | 0 .../luajit/src/lj_errmsg.h | 0 {vendor => subprojects}/luajit/src/lj_ff.h | 0 .../luajit/src/lj_ffrecord.c | 0 .../luajit/src/lj_ffrecord.h | 0 {vendor => subprojects}/luajit/src/lj_frame.h | 0 {vendor => subprojects}/luajit/src/lj_func.c | 0 {vendor => subprojects}/luajit/src/lj_func.h | 0 {vendor => subprojects}/luajit/src/lj_gc.c | 0 {vendor => subprojects}/luajit/src/lj_gc.h | 0 .../luajit/src/lj_gdbjit.c | 0 .../luajit/src/lj_gdbjit.h | 0 {vendor => subprojects}/luajit/src/lj_ir.c | 0 {vendor => subprojects}/luajit/src/lj_ir.h | 0 .../luajit/src/lj_ircall.h | 0 {vendor => subprojects}/luajit/src/lj_iropt.h | 0 {vendor => subprojects}/luajit/src/lj_jit.h | 0 {vendor => subprojects}/luajit/src/lj_lex.c | 0 {vendor => subprojects}/luajit/src/lj_lex.h | 0 {vendor => subprojects}/luajit/src/lj_lib.c | 0 {vendor => subprojects}/luajit/src/lj_lib.h | 0 {vendor => subprojects}/luajit/src/lj_load.c | 0 {vendor => subprojects}/luajit/src/lj_mcode.c | 0 {vendor => subprojects}/luajit/src/lj_mcode.h | 0 {vendor => subprojects}/luajit/src/lj_meta.c | 0 {vendor => subprojects}/luajit/src/lj_meta.h | 0 {vendor => subprojects}/luajit/src/lj_obj.c | 0 {vendor => subprojects}/luajit/src/lj_obj.h | 0 .../luajit/src/lj_opt_dce.c | 0 .../luajit/src/lj_opt_fold.c | 0 .../luajit/src/lj_opt_loop.c | 0 .../luajit/src/lj_opt_mem.c | 0 .../luajit/src/lj_opt_narrow.c | 0 .../luajit/src/lj_opt_sink.c | 0 .../luajit/src/lj_opt_split.c | 0 {vendor => subprojects}/luajit/src/lj_parse.c | 0 {vendor => subprojects}/luajit/src/lj_parse.h | 0 .../luajit/src/lj_record.c | 0 .../luajit/src/lj_record.h | 0 {vendor => subprojects}/luajit/src/lj_snap.c | 0 {vendor => subprojects}/luajit/src/lj_snap.h | 0 {vendor => subprojects}/luajit/src/lj_state.c | 0 {vendor => subprojects}/luajit/src/lj_state.h | 0 {vendor => subprojects}/luajit/src/lj_str.c | 0 {vendor => subprojects}/luajit/src/lj_str.h | 0 .../luajit/src/lj_strscan.c | 0 .../luajit/src/lj_strscan.h | 0 {vendor => subprojects}/luajit/src/lj_tab.c | 0 {vendor => subprojects}/luajit/src/lj_tab.h | 0 .../luajit/src/lj_target.h | 0 .../luajit/src/lj_target_arm.h | 0 .../luajit/src/lj_target_mips.h | 0 .../luajit/src/lj_target_ppc.h | 0 .../luajit/src/lj_target_x86.h | 0 {vendor => subprojects}/luajit/src/lj_trace.c | 0 {vendor => subprojects}/luajit/src/lj_trace.h | 0 .../luajit/src/lj_traceerr.h | 0 {vendor => subprojects}/luajit/src/lj_udata.c | 0 {vendor => subprojects}/luajit/src/lj_udata.h | 0 {vendor => subprojects}/luajit/src/lj_vm.h | 0 .../luajit/src/lj_vmevent.c | 0 .../luajit/src/lj_vmevent.h | 0 .../luajit/src/lj_vmmath.c | 0 {vendor => subprojects}/luajit/src/ljamalg.c | 0 {vendor => subprojects}/luajit/src/lua.h | 0 {vendor => subprojects}/luajit/src/lua.hpp | 0 {vendor => subprojects}/luajit/src/luaconf.h | 0 {vendor => subprojects}/luajit/src/luajit.c | 0 {vendor => subprojects}/luajit/src/luajit.h | 0 {vendor => subprojects}/luajit/src/lualib.h | 0 .../luajit/src/meson.build | 0 .../luajit/src/vm_arm.dasc | 0 .../luajit/src/vm_mips.dasc | 0 .../luajit/src/vm_ppc.dasc | 0 .../luajit/src/vm_ppcspe.dasc | 0 .../luajit/src/vm_x86.dasc | 0 .../luajit/unicode-io.patch | 0 .../luajit/unicode-os.patch | 0 vendor/luajit/src/Makefile.dep | 226 ------------------ 182 files changed, 227 deletions(-) delete mode 120000 subprojects/luajit rename {vendor => subprojects}/luajit/COPYRIGHT (100%) rename {vendor => subprojects}/luajit/Makefile (100%) rename {vendor => subprojects}/luajit/README (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_arm.h (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_arm.lua (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_mips.h (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_mips.lua (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_ppc.h (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_ppc.lua (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_proto.h (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_x64.lua (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_x86.h (100%) rename {vendor => subprojects}/luajit/dynasm/dasm_x86.lua (100%) rename {vendor => subprojects}/luajit/dynasm/dynasm.lua (100%) rename {vendor => subprojects}/luajit/include/lauxlib.h (100%) rename {vendor => subprojects}/luajit/include/lua.h (100%) rename {vendor => subprojects}/luajit/include/lua.hpp (100%) rename {vendor => subprojects}/luajit/include/luaconf.h (100%) rename {vendor => subprojects}/luajit/include/luajit.h (100%) rename {vendor => subprojects}/luajit/include/lualib.h (100%) rename {vendor => subprojects}/luajit/meson.build (100%) rename {vendor => subprojects}/luajit/src/Makefile (100%) rename {vendor => subprojects}/luajit/src/host/README (100%) rename {vendor => subprojects}/luajit/src/host/buildvm.c (100%) rename {vendor => subprojects}/luajit/src/host/buildvm.h (100%) rename {vendor => subprojects}/luajit/src/host/buildvm_asm.c (100%) rename {vendor => subprojects}/luajit/src/host/buildvm_fold.c (100%) rename {vendor => subprojects}/luajit/src/host/buildvm_lib.c (100%) rename {vendor => subprojects}/luajit/src/host/buildvm_peobj.c (100%) rename {vendor => subprojects}/luajit/src/host/genminilua.lua (100%) rename {vendor => subprojects}/luajit/src/host/meson.build (100%) rename {vendor => subprojects}/luajit/src/host/minilua.c (100%) rename {vendor => subprojects}/luajit/src/jit/bc.lua (100%) rename {vendor => subprojects}/luajit/src/jit/bcsave.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_arm.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_mips.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_mipsel.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_ppc.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_x64.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dis_x86.lua (100%) rename {vendor => subprojects}/luajit/src/jit/dump.lua (100%) rename {vendor => subprojects}/luajit/src/jit/v.lua (100%) rename {vendor => subprojects}/luajit/src/lauxlib.h (100%) rename {vendor => subprojects}/luajit/src/lib_aux.c (100%) rename {vendor => subprojects}/luajit/src/lib_base.c (100%) rename {vendor => subprojects}/luajit/src/lib_bit.c (100%) rename {vendor => subprojects}/luajit/src/lib_debug.c (100%) rename {vendor => subprojects}/luajit/src/lib_ffi.c (100%) rename {vendor => subprojects}/luajit/src/lib_init.c (100%) rename {vendor => subprojects}/luajit/src/lib_io.c (100%) rename {vendor => subprojects}/luajit/src/lib_jit.c (100%) rename {vendor => subprojects}/luajit/src/lib_math.c (100%) rename {vendor => subprojects}/luajit/src/lib_os.c (100%) rename {vendor => subprojects}/luajit/src/lib_package.c (100%) rename {vendor => subprojects}/luajit/src/lib_string.c (100%) rename {vendor => subprojects}/luajit/src/lib_table.c (100%) rename {vendor => subprojects}/luajit/src/lj.supp (100%) rename {vendor => subprojects}/luajit/src/lj_alloc.c (100%) rename {vendor => subprojects}/luajit/src/lj_alloc.h (100%) rename {vendor => subprojects}/luajit/src/lj_api.c (100%) rename {vendor => subprojects}/luajit/src/lj_arch.h (100%) rename {vendor => subprojects}/luajit/src/lj_asm.c (100%) rename {vendor => subprojects}/luajit/src/lj_asm.h (100%) rename {vendor => subprojects}/luajit/src/lj_asm_arm.h (100%) rename {vendor => subprojects}/luajit/src/lj_asm_mips.h (100%) rename {vendor => subprojects}/luajit/src/lj_asm_ppc.h (100%) rename {vendor => subprojects}/luajit/src/lj_asm_x86.h (100%) rename {vendor => subprojects}/luajit/src/lj_bc.c (100%) rename {vendor => subprojects}/luajit/src/lj_bc.h (100%) rename {vendor => subprojects}/luajit/src/lj_bcdump.h (100%) rename {vendor => subprojects}/luajit/src/lj_bcread.c (100%) rename {vendor => subprojects}/luajit/src/lj_bcwrite.c (100%) rename {vendor => subprojects}/luajit/src/lj_carith.c (100%) rename {vendor => subprojects}/luajit/src/lj_carith.h (100%) rename {vendor => subprojects}/luajit/src/lj_ccall.c (100%) rename {vendor => subprojects}/luajit/src/lj_ccall.h (100%) rename {vendor => subprojects}/luajit/src/lj_ccallback.c (100%) rename {vendor => subprojects}/luajit/src/lj_ccallback.h (100%) rename {vendor => subprojects}/luajit/src/lj_cconv.c (100%) rename {vendor => subprojects}/luajit/src/lj_cconv.h (100%) rename {vendor => subprojects}/luajit/src/lj_cdata.c (100%) rename {vendor => subprojects}/luajit/src/lj_cdata.h (100%) rename {vendor => subprojects}/luajit/src/lj_char.c (100%) rename {vendor => subprojects}/luajit/src/lj_char.h (100%) rename {vendor => subprojects}/luajit/src/lj_clib.c (100%) rename {vendor => subprojects}/luajit/src/lj_clib.h (100%) rename {vendor => subprojects}/luajit/src/lj_cparse.c (100%) rename {vendor => subprojects}/luajit/src/lj_cparse.h (100%) rename {vendor => subprojects}/luajit/src/lj_crecord.c (100%) rename {vendor => subprojects}/luajit/src/lj_crecord.h (100%) rename {vendor => subprojects}/luajit/src/lj_ctype.c (100%) rename {vendor => subprojects}/luajit/src/lj_ctype.h (100%) rename {vendor => subprojects}/luajit/src/lj_debug.c (100%) rename {vendor => subprojects}/luajit/src/lj_debug.h (100%) rename {vendor => subprojects}/luajit/src/lj_def.h (100%) rename {vendor => subprojects}/luajit/src/lj_dispatch.c (100%) rename {vendor => subprojects}/luajit/src/lj_dispatch.h (100%) rename {vendor => subprojects}/luajit/src/lj_emit_arm.h (100%) rename {vendor => subprojects}/luajit/src/lj_emit_mips.h (100%) rename {vendor => subprojects}/luajit/src/lj_emit_ppc.h (100%) rename {vendor => subprojects}/luajit/src/lj_emit_x86.h (100%) rename {vendor => subprojects}/luajit/src/lj_err.c (100%) rename {vendor => subprojects}/luajit/src/lj_err.h (100%) rename {vendor => subprojects}/luajit/src/lj_errmsg.h (100%) rename {vendor => subprojects}/luajit/src/lj_ff.h (100%) rename {vendor => subprojects}/luajit/src/lj_ffrecord.c (100%) rename {vendor => subprojects}/luajit/src/lj_ffrecord.h (100%) rename {vendor => subprojects}/luajit/src/lj_frame.h (100%) rename {vendor => subprojects}/luajit/src/lj_func.c (100%) rename {vendor => subprojects}/luajit/src/lj_func.h (100%) rename {vendor => subprojects}/luajit/src/lj_gc.c (100%) rename {vendor => subprojects}/luajit/src/lj_gc.h (100%) rename {vendor => subprojects}/luajit/src/lj_gdbjit.c (100%) rename {vendor => subprojects}/luajit/src/lj_gdbjit.h (100%) rename {vendor => subprojects}/luajit/src/lj_ir.c (100%) rename {vendor => subprojects}/luajit/src/lj_ir.h (100%) rename {vendor => subprojects}/luajit/src/lj_ircall.h (100%) rename {vendor => subprojects}/luajit/src/lj_iropt.h (100%) rename {vendor => subprojects}/luajit/src/lj_jit.h (100%) rename {vendor => subprojects}/luajit/src/lj_lex.c (100%) rename {vendor => subprojects}/luajit/src/lj_lex.h (100%) rename {vendor => subprojects}/luajit/src/lj_lib.c (100%) rename {vendor => subprojects}/luajit/src/lj_lib.h (100%) rename {vendor => subprojects}/luajit/src/lj_load.c (100%) rename {vendor => subprojects}/luajit/src/lj_mcode.c (100%) rename {vendor => subprojects}/luajit/src/lj_mcode.h (100%) rename {vendor => subprojects}/luajit/src/lj_meta.c (100%) rename {vendor => subprojects}/luajit/src/lj_meta.h (100%) rename {vendor => subprojects}/luajit/src/lj_obj.c (100%) rename {vendor => subprojects}/luajit/src/lj_obj.h (100%) rename {vendor => subprojects}/luajit/src/lj_opt_dce.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_fold.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_loop.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_mem.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_narrow.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_sink.c (100%) rename {vendor => subprojects}/luajit/src/lj_opt_split.c (100%) rename {vendor => subprojects}/luajit/src/lj_parse.c (100%) rename {vendor => subprojects}/luajit/src/lj_parse.h (100%) rename {vendor => subprojects}/luajit/src/lj_record.c (100%) rename {vendor => subprojects}/luajit/src/lj_record.h (100%) rename {vendor => subprojects}/luajit/src/lj_snap.c (100%) rename {vendor => subprojects}/luajit/src/lj_snap.h (100%) rename {vendor => subprojects}/luajit/src/lj_state.c (100%) rename {vendor => subprojects}/luajit/src/lj_state.h (100%) rename {vendor => subprojects}/luajit/src/lj_str.c (100%) rename {vendor => subprojects}/luajit/src/lj_str.h (100%) rename {vendor => subprojects}/luajit/src/lj_strscan.c (100%) rename {vendor => subprojects}/luajit/src/lj_strscan.h (100%) rename {vendor => subprojects}/luajit/src/lj_tab.c (100%) rename {vendor => subprojects}/luajit/src/lj_tab.h (100%) rename {vendor => subprojects}/luajit/src/lj_target.h (100%) rename {vendor => subprojects}/luajit/src/lj_target_arm.h (100%) rename {vendor => subprojects}/luajit/src/lj_target_mips.h (100%) rename {vendor => subprojects}/luajit/src/lj_target_ppc.h (100%) rename {vendor => subprojects}/luajit/src/lj_target_x86.h (100%) rename {vendor => subprojects}/luajit/src/lj_trace.c (100%) rename {vendor => subprojects}/luajit/src/lj_trace.h (100%) rename {vendor => subprojects}/luajit/src/lj_traceerr.h (100%) rename {vendor => subprojects}/luajit/src/lj_udata.c (100%) rename {vendor => subprojects}/luajit/src/lj_udata.h (100%) rename {vendor => subprojects}/luajit/src/lj_vm.h (100%) rename {vendor => subprojects}/luajit/src/lj_vmevent.c (100%) rename {vendor => subprojects}/luajit/src/lj_vmevent.h (100%) rename {vendor => subprojects}/luajit/src/lj_vmmath.c (100%) rename {vendor => subprojects}/luajit/src/ljamalg.c (100%) rename {vendor => subprojects}/luajit/src/lua.h (100%) rename {vendor => subprojects}/luajit/src/lua.hpp (100%) rename {vendor => subprojects}/luajit/src/luaconf.h (100%) rename {vendor => subprojects}/luajit/src/luajit.c (100%) rename {vendor => subprojects}/luajit/src/luajit.h (100%) rename {vendor => subprojects}/luajit/src/lualib.h (100%) rename {vendor => subprojects}/luajit/src/meson.build (100%) rename {vendor => subprojects}/luajit/src/vm_arm.dasc (100%) rename {vendor => subprojects}/luajit/src/vm_mips.dasc (100%) rename {vendor => subprojects}/luajit/src/vm_ppc.dasc (100%) rename {vendor => subprojects}/luajit/src/vm_ppcspe.dasc (100%) rename {vendor => subprojects}/luajit/src/vm_x86.dasc (100%) rename {vendor => subprojects}/luajit/unicode-io.patch (100%) rename {vendor => subprojects}/luajit/unicode-os.patch (100%) delete mode 100644 vendor/luajit/src/Makefile.dep diff --git a/subprojects/luajit b/subprojects/luajit deleted file mode 120000 index cf99205fa..000000000 --- a/subprojects/luajit +++ /dev/null @@ -1 +0,0 @@ -../vendor/luajit \ No newline at end of file diff --git a/vendor/luajit/COPYRIGHT b/subprojects/luajit/COPYRIGHT similarity index 100% rename from vendor/luajit/COPYRIGHT rename to subprojects/luajit/COPYRIGHT diff --git a/vendor/luajit/Makefile b/subprojects/luajit/Makefile similarity index 100% rename from vendor/luajit/Makefile rename to subprojects/luajit/Makefile diff --git a/vendor/luajit/README b/subprojects/luajit/README similarity index 100% rename from vendor/luajit/README rename to subprojects/luajit/README diff --git a/vendor/luajit/dynasm/dasm_arm.h b/subprojects/luajit/dynasm/dasm_arm.h similarity index 100% rename from vendor/luajit/dynasm/dasm_arm.h rename to subprojects/luajit/dynasm/dasm_arm.h diff --git a/vendor/luajit/dynasm/dasm_arm.lua b/subprojects/luajit/dynasm/dasm_arm.lua similarity index 100% rename from vendor/luajit/dynasm/dasm_arm.lua rename to subprojects/luajit/dynasm/dasm_arm.lua diff --git a/vendor/luajit/dynasm/dasm_mips.h b/subprojects/luajit/dynasm/dasm_mips.h similarity index 100% rename from vendor/luajit/dynasm/dasm_mips.h rename to subprojects/luajit/dynasm/dasm_mips.h diff --git a/vendor/luajit/dynasm/dasm_mips.lua b/subprojects/luajit/dynasm/dasm_mips.lua similarity index 100% rename from vendor/luajit/dynasm/dasm_mips.lua rename to subprojects/luajit/dynasm/dasm_mips.lua diff --git a/vendor/luajit/dynasm/dasm_ppc.h b/subprojects/luajit/dynasm/dasm_ppc.h similarity index 100% rename from vendor/luajit/dynasm/dasm_ppc.h rename to subprojects/luajit/dynasm/dasm_ppc.h diff --git a/vendor/luajit/dynasm/dasm_ppc.lua b/subprojects/luajit/dynasm/dasm_ppc.lua similarity index 100% rename from vendor/luajit/dynasm/dasm_ppc.lua rename to subprojects/luajit/dynasm/dasm_ppc.lua diff --git a/vendor/luajit/dynasm/dasm_proto.h b/subprojects/luajit/dynasm/dasm_proto.h similarity index 100% rename from vendor/luajit/dynasm/dasm_proto.h rename to subprojects/luajit/dynasm/dasm_proto.h diff --git a/vendor/luajit/dynasm/dasm_x64.lua b/subprojects/luajit/dynasm/dasm_x64.lua similarity index 100% rename from vendor/luajit/dynasm/dasm_x64.lua rename to subprojects/luajit/dynasm/dasm_x64.lua diff --git a/vendor/luajit/dynasm/dasm_x86.h b/subprojects/luajit/dynasm/dasm_x86.h similarity index 100% rename from vendor/luajit/dynasm/dasm_x86.h rename to subprojects/luajit/dynasm/dasm_x86.h diff --git a/vendor/luajit/dynasm/dasm_x86.lua b/subprojects/luajit/dynasm/dasm_x86.lua similarity index 100% rename from vendor/luajit/dynasm/dasm_x86.lua rename to subprojects/luajit/dynasm/dasm_x86.lua diff --git a/vendor/luajit/dynasm/dynasm.lua b/subprojects/luajit/dynasm/dynasm.lua similarity index 100% rename from vendor/luajit/dynasm/dynasm.lua rename to subprojects/luajit/dynasm/dynasm.lua diff --git a/vendor/luajit/include/lauxlib.h b/subprojects/luajit/include/lauxlib.h similarity index 100% rename from vendor/luajit/include/lauxlib.h rename to subprojects/luajit/include/lauxlib.h diff --git a/vendor/luajit/include/lua.h b/subprojects/luajit/include/lua.h similarity index 100% rename from vendor/luajit/include/lua.h rename to subprojects/luajit/include/lua.h diff --git a/vendor/luajit/include/lua.hpp b/subprojects/luajit/include/lua.hpp similarity index 100% rename from vendor/luajit/include/lua.hpp rename to subprojects/luajit/include/lua.hpp diff --git a/vendor/luajit/include/luaconf.h b/subprojects/luajit/include/luaconf.h similarity index 100% rename from vendor/luajit/include/luaconf.h rename to subprojects/luajit/include/luaconf.h diff --git a/vendor/luajit/include/luajit.h b/subprojects/luajit/include/luajit.h similarity index 100% rename from vendor/luajit/include/luajit.h rename to subprojects/luajit/include/luajit.h diff --git a/vendor/luajit/include/lualib.h b/subprojects/luajit/include/lualib.h similarity index 100% rename from vendor/luajit/include/lualib.h rename to subprojects/luajit/include/lualib.h diff --git a/vendor/luajit/meson.build b/subprojects/luajit/meson.build similarity index 100% rename from vendor/luajit/meson.build rename to subprojects/luajit/meson.build diff --git a/vendor/luajit/src/Makefile b/subprojects/luajit/src/Makefile similarity index 100% rename from vendor/luajit/src/Makefile rename to subprojects/luajit/src/Makefile diff --git a/vendor/luajit/src/host/README b/subprojects/luajit/src/host/README similarity index 100% rename from vendor/luajit/src/host/README rename to subprojects/luajit/src/host/README diff --git a/vendor/luajit/src/host/buildvm.c b/subprojects/luajit/src/host/buildvm.c similarity index 100% rename from vendor/luajit/src/host/buildvm.c rename to subprojects/luajit/src/host/buildvm.c diff --git a/vendor/luajit/src/host/buildvm.h b/subprojects/luajit/src/host/buildvm.h similarity index 100% rename from vendor/luajit/src/host/buildvm.h rename to subprojects/luajit/src/host/buildvm.h diff --git a/vendor/luajit/src/host/buildvm_asm.c b/subprojects/luajit/src/host/buildvm_asm.c similarity index 100% rename from vendor/luajit/src/host/buildvm_asm.c rename to subprojects/luajit/src/host/buildvm_asm.c diff --git a/vendor/luajit/src/host/buildvm_fold.c b/subprojects/luajit/src/host/buildvm_fold.c similarity index 100% rename from vendor/luajit/src/host/buildvm_fold.c rename to subprojects/luajit/src/host/buildvm_fold.c diff --git a/vendor/luajit/src/host/buildvm_lib.c b/subprojects/luajit/src/host/buildvm_lib.c similarity index 100% rename from vendor/luajit/src/host/buildvm_lib.c rename to subprojects/luajit/src/host/buildvm_lib.c diff --git a/vendor/luajit/src/host/buildvm_peobj.c b/subprojects/luajit/src/host/buildvm_peobj.c similarity index 100% rename from vendor/luajit/src/host/buildvm_peobj.c rename to subprojects/luajit/src/host/buildvm_peobj.c diff --git a/vendor/luajit/src/host/genminilua.lua b/subprojects/luajit/src/host/genminilua.lua similarity index 100% rename from vendor/luajit/src/host/genminilua.lua rename to subprojects/luajit/src/host/genminilua.lua diff --git a/vendor/luajit/src/host/meson.build b/subprojects/luajit/src/host/meson.build similarity index 100% rename from vendor/luajit/src/host/meson.build rename to subprojects/luajit/src/host/meson.build diff --git a/vendor/luajit/src/host/minilua.c b/subprojects/luajit/src/host/minilua.c similarity index 100% rename from vendor/luajit/src/host/minilua.c rename to subprojects/luajit/src/host/minilua.c diff --git a/vendor/luajit/src/jit/bc.lua b/subprojects/luajit/src/jit/bc.lua similarity index 100% rename from vendor/luajit/src/jit/bc.lua rename to subprojects/luajit/src/jit/bc.lua diff --git a/vendor/luajit/src/jit/bcsave.lua b/subprojects/luajit/src/jit/bcsave.lua similarity index 100% rename from vendor/luajit/src/jit/bcsave.lua rename to subprojects/luajit/src/jit/bcsave.lua diff --git a/vendor/luajit/src/jit/dis_arm.lua b/subprojects/luajit/src/jit/dis_arm.lua similarity index 100% rename from vendor/luajit/src/jit/dis_arm.lua rename to subprojects/luajit/src/jit/dis_arm.lua diff --git a/vendor/luajit/src/jit/dis_mips.lua b/subprojects/luajit/src/jit/dis_mips.lua similarity index 100% rename from vendor/luajit/src/jit/dis_mips.lua rename to subprojects/luajit/src/jit/dis_mips.lua diff --git a/vendor/luajit/src/jit/dis_mipsel.lua b/subprojects/luajit/src/jit/dis_mipsel.lua similarity index 100% rename from vendor/luajit/src/jit/dis_mipsel.lua rename to subprojects/luajit/src/jit/dis_mipsel.lua diff --git a/vendor/luajit/src/jit/dis_ppc.lua b/subprojects/luajit/src/jit/dis_ppc.lua similarity index 100% rename from vendor/luajit/src/jit/dis_ppc.lua rename to subprojects/luajit/src/jit/dis_ppc.lua diff --git a/vendor/luajit/src/jit/dis_x64.lua b/subprojects/luajit/src/jit/dis_x64.lua similarity index 100% rename from vendor/luajit/src/jit/dis_x64.lua rename to subprojects/luajit/src/jit/dis_x64.lua diff --git a/vendor/luajit/src/jit/dis_x86.lua b/subprojects/luajit/src/jit/dis_x86.lua similarity index 100% rename from vendor/luajit/src/jit/dis_x86.lua rename to subprojects/luajit/src/jit/dis_x86.lua diff --git a/vendor/luajit/src/jit/dump.lua b/subprojects/luajit/src/jit/dump.lua similarity index 100% rename from vendor/luajit/src/jit/dump.lua rename to subprojects/luajit/src/jit/dump.lua diff --git a/vendor/luajit/src/jit/v.lua b/subprojects/luajit/src/jit/v.lua similarity index 100% rename from vendor/luajit/src/jit/v.lua rename to subprojects/luajit/src/jit/v.lua diff --git a/vendor/luajit/src/lauxlib.h b/subprojects/luajit/src/lauxlib.h similarity index 100% rename from vendor/luajit/src/lauxlib.h rename to subprojects/luajit/src/lauxlib.h diff --git a/vendor/luajit/src/lib_aux.c b/subprojects/luajit/src/lib_aux.c similarity index 100% rename from vendor/luajit/src/lib_aux.c rename to subprojects/luajit/src/lib_aux.c diff --git a/vendor/luajit/src/lib_base.c b/subprojects/luajit/src/lib_base.c similarity index 100% rename from vendor/luajit/src/lib_base.c rename to subprojects/luajit/src/lib_base.c diff --git a/vendor/luajit/src/lib_bit.c b/subprojects/luajit/src/lib_bit.c similarity index 100% rename from vendor/luajit/src/lib_bit.c rename to subprojects/luajit/src/lib_bit.c diff --git a/vendor/luajit/src/lib_debug.c b/subprojects/luajit/src/lib_debug.c similarity index 100% rename from vendor/luajit/src/lib_debug.c rename to subprojects/luajit/src/lib_debug.c diff --git a/vendor/luajit/src/lib_ffi.c b/subprojects/luajit/src/lib_ffi.c similarity index 100% rename from vendor/luajit/src/lib_ffi.c rename to subprojects/luajit/src/lib_ffi.c diff --git a/vendor/luajit/src/lib_init.c b/subprojects/luajit/src/lib_init.c similarity index 100% rename from vendor/luajit/src/lib_init.c rename to subprojects/luajit/src/lib_init.c diff --git a/vendor/luajit/src/lib_io.c b/subprojects/luajit/src/lib_io.c similarity index 100% rename from vendor/luajit/src/lib_io.c rename to subprojects/luajit/src/lib_io.c diff --git a/vendor/luajit/src/lib_jit.c b/subprojects/luajit/src/lib_jit.c similarity index 100% rename from vendor/luajit/src/lib_jit.c rename to subprojects/luajit/src/lib_jit.c diff --git a/vendor/luajit/src/lib_math.c b/subprojects/luajit/src/lib_math.c similarity index 100% rename from vendor/luajit/src/lib_math.c rename to subprojects/luajit/src/lib_math.c diff --git a/vendor/luajit/src/lib_os.c b/subprojects/luajit/src/lib_os.c similarity index 100% rename from vendor/luajit/src/lib_os.c rename to subprojects/luajit/src/lib_os.c diff --git a/vendor/luajit/src/lib_package.c b/subprojects/luajit/src/lib_package.c similarity index 100% rename from vendor/luajit/src/lib_package.c rename to subprojects/luajit/src/lib_package.c diff --git a/vendor/luajit/src/lib_string.c b/subprojects/luajit/src/lib_string.c similarity index 100% rename from vendor/luajit/src/lib_string.c rename to subprojects/luajit/src/lib_string.c diff --git a/vendor/luajit/src/lib_table.c b/subprojects/luajit/src/lib_table.c similarity index 100% rename from vendor/luajit/src/lib_table.c rename to subprojects/luajit/src/lib_table.c diff --git a/vendor/luajit/src/lj.supp b/subprojects/luajit/src/lj.supp similarity index 100% rename from vendor/luajit/src/lj.supp rename to subprojects/luajit/src/lj.supp diff --git a/vendor/luajit/src/lj_alloc.c b/subprojects/luajit/src/lj_alloc.c similarity index 100% rename from vendor/luajit/src/lj_alloc.c rename to subprojects/luajit/src/lj_alloc.c diff --git a/vendor/luajit/src/lj_alloc.h b/subprojects/luajit/src/lj_alloc.h similarity index 100% rename from vendor/luajit/src/lj_alloc.h rename to subprojects/luajit/src/lj_alloc.h diff --git a/vendor/luajit/src/lj_api.c b/subprojects/luajit/src/lj_api.c similarity index 100% rename from vendor/luajit/src/lj_api.c rename to subprojects/luajit/src/lj_api.c diff --git a/vendor/luajit/src/lj_arch.h b/subprojects/luajit/src/lj_arch.h similarity index 100% rename from vendor/luajit/src/lj_arch.h rename to subprojects/luajit/src/lj_arch.h diff --git a/vendor/luajit/src/lj_asm.c b/subprojects/luajit/src/lj_asm.c similarity index 100% rename from vendor/luajit/src/lj_asm.c rename to subprojects/luajit/src/lj_asm.c diff --git a/vendor/luajit/src/lj_asm.h b/subprojects/luajit/src/lj_asm.h similarity index 100% rename from vendor/luajit/src/lj_asm.h rename to subprojects/luajit/src/lj_asm.h diff --git a/vendor/luajit/src/lj_asm_arm.h b/subprojects/luajit/src/lj_asm_arm.h similarity index 100% rename from vendor/luajit/src/lj_asm_arm.h rename to subprojects/luajit/src/lj_asm_arm.h diff --git a/vendor/luajit/src/lj_asm_mips.h b/subprojects/luajit/src/lj_asm_mips.h similarity index 100% rename from vendor/luajit/src/lj_asm_mips.h rename to subprojects/luajit/src/lj_asm_mips.h diff --git a/vendor/luajit/src/lj_asm_ppc.h b/subprojects/luajit/src/lj_asm_ppc.h similarity index 100% rename from vendor/luajit/src/lj_asm_ppc.h rename to subprojects/luajit/src/lj_asm_ppc.h diff --git a/vendor/luajit/src/lj_asm_x86.h b/subprojects/luajit/src/lj_asm_x86.h similarity index 100% rename from vendor/luajit/src/lj_asm_x86.h rename to subprojects/luajit/src/lj_asm_x86.h diff --git a/vendor/luajit/src/lj_bc.c b/subprojects/luajit/src/lj_bc.c similarity index 100% rename from vendor/luajit/src/lj_bc.c rename to subprojects/luajit/src/lj_bc.c diff --git a/vendor/luajit/src/lj_bc.h b/subprojects/luajit/src/lj_bc.h similarity index 100% rename from vendor/luajit/src/lj_bc.h rename to subprojects/luajit/src/lj_bc.h diff --git a/vendor/luajit/src/lj_bcdump.h b/subprojects/luajit/src/lj_bcdump.h similarity index 100% rename from vendor/luajit/src/lj_bcdump.h rename to subprojects/luajit/src/lj_bcdump.h diff --git a/vendor/luajit/src/lj_bcread.c b/subprojects/luajit/src/lj_bcread.c similarity index 100% rename from vendor/luajit/src/lj_bcread.c rename to subprojects/luajit/src/lj_bcread.c diff --git a/vendor/luajit/src/lj_bcwrite.c b/subprojects/luajit/src/lj_bcwrite.c similarity index 100% rename from vendor/luajit/src/lj_bcwrite.c rename to subprojects/luajit/src/lj_bcwrite.c diff --git a/vendor/luajit/src/lj_carith.c b/subprojects/luajit/src/lj_carith.c similarity index 100% rename from vendor/luajit/src/lj_carith.c rename to subprojects/luajit/src/lj_carith.c diff --git a/vendor/luajit/src/lj_carith.h b/subprojects/luajit/src/lj_carith.h similarity index 100% rename from vendor/luajit/src/lj_carith.h rename to subprojects/luajit/src/lj_carith.h diff --git a/vendor/luajit/src/lj_ccall.c b/subprojects/luajit/src/lj_ccall.c similarity index 100% rename from vendor/luajit/src/lj_ccall.c rename to subprojects/luajit/src/lj_ccall.c diff --git a/vendor/luajit/src/lj_ccall.h b/subprojects/luajit/src/lj_ccall.h similarity index 100% rename from vendor/luajit/src/lj_ccall.h rename to subprojects/luajit/src/lj_ccall.h diff --git a/vendor/luajit/src/lj_ccallback.c b/subprojects/luajit/src/lj_ccallback.c similarity index 100% rename from vendor/luajit/src/lj_ccallback.c rename to subprojects/luajit/src/lj_ccallback.c diff --git a/vendor/luajit/src/lj_ccallback.h b/subprojects/luajit/src/lj_ccallback.h similarity index 100% rename from vendor/luajit/src/lj_ccallback.h rename to subprojects/luajit/src/lj_ccallback.h diff --git a/vendor/luajit/src/lj_cconv.c b/subprojects/luajit/src/lj_cconv.c similarity index 100% rename from vendor/luajit/src/lj_cconv.c rename to subprojects/luajit/src/lj_cconv.c diff --git a/vendor/luajit/src/lj_cconv.h b/subprojects/luajit/src/lj_cconv.h similarity index 100% rename from vendor/luajit/src/lj_cconv.h rename to subprojects/luajit/src/lj_cconv.h diff --git a/vendor/luajit/src/lj_cdata.c b/subprojects/luajit/src/lj_cdata.c similarity index 100% rename from vendor/luajit/src/lj_cdata.c rename to subprojects/luajit/src/lj_cdata.c diff --git a/vendor/luajit/src/lj_cdata.h b/subprojects/luajit/src/lj_cdata.h similarity index 100% rename from vendor/luajit/src/lj_cdata.h rename to subprojects/luajit/src/lj_cdata.h diff --git a/vendor/luajit/src/lj_char.c b/subprojects/luajit/src/lj_char.c similarity index 100% rename from vendor/luajit/src/lj_char.c rename to subprojects/luajit/src/lj_char.c diff --git a/vendor/luajit/src/lj_char.h b/subprojects/luajit/src/lj_char.h similarity index 100% rename from vendor/luajit/src/lj_char.h rename to subprojects/luajit/src/lj_char.h diff --git a/vendor/luajit/src/lj_clib.c b/subprojects/luajit/src/lj_clib.c similarity index 100% rename from vendor/luajit/src/lj_clib.c rename to subprojects/luajit/src/lj_clib.c diff --git a/vendor/luajit/src/lj_clib.h b/subprojects/luajit/src/lj_clib.h similarity index 100% rename from vendor/luajit/src/lj_clib.h rename to subprojects/luajit/src/lj_clib.h diff --git a/vendor/luajit/src/lj_cparse.c b/subprojects/luajit/src/lj_cparse.c similarity index 100% rename from vendor/luajit/src/lj_cparse.c rename to subprojects/luajit/src/lj_cparse.c diff --git a/vendor/luajit/src/lj_cparse.h b/subprojects/luajit/src/lj_cparse.h similarity index 100% rename from vendor/luajit/src/lj_cparse.h rename to subprojects/luajit/src/lj_cparse.h diff --git a/vendor/luajit/src/lj_crecord.c b/subprojects/luajit/src/lj_crecord.c similarity index 100% rename from vendor/luajit/src/lj_crecord.c rename to subprojects/luajit/src/lj_crecord.c diff --git a/vendor/luajit/src/lj_crecord.h b/subprojects/luajit/src/lj_crecord.h similarity index 100% rename from vendor/luajit/src/lj_crecord.h rename to subprojects/luajit/src/lj_crecord.h diff --git a/vendor/luajit/src/lj_ctype.c b/subprojects/luajit/src/lj_ctype.c similarity index 100% rename from vendor/luajit/src/lj_ctype.c rename to subprojects/luajit/src/lj_ctype.c diff --git a/vendor/luajit/src/lj_ctype.h b/subprojects/luajit/src/lj_ctype.h similarity index 100% rename from vendor/luajit/src/lj_ctype.h rename to subprojects/luajit/src/lj_ctype.h diff --git a/vendor/luajit/src/lj_debug.c b/subprojects/luajit/src/lj_debug.c similarity index 100% rename from vendor/luajit/src/lj_debug.c rename to subprojects/luajit/src/lj_debug.c diff --git a/vendor/luajit/src/lj_debug.h b/subprojects/luajit/src/lj_debug.h similarity index 100% rename from vendor/luajit/src/lj_debug.h rename to subprojects/luajit/src/lj_debug.h diff --git a/vendor/luajit/src/lj_def.h b/subprojects/luajit/src/lj_def.h similarity index 100% rename from vendor/luajit/src/lj_def.h rename to subprojects/luajit/src/lj_def.h diff --git a/vendor/luajit/src/lj_dispatch.c b/subprojects/luajit/src/lj_dispatch.c similarity index 100% rename from vendor/luajit/src/lj_dispatch.c rename to subprojects/luajit/src/lj_dispatch.c diff --git a/vendor/luajit/src/lj_dispatch.h b/subprojects/luajit/src/lj_dispatch.h similarity index 100% rename from vendor/luajit/src/lj_dispatch.h rename to subprojects/luajit/src/lj_dispatch.h diff --git a/vendor/luajit/src/lj_emit_arm.h b/subprojects/luajit/src/lj_emit_arm.h similarity index 100% rename from vendor/luajit/src/lj_emit_arm.h rename to subprojects/luajit/src/lj_emit_arm.h diff --git a/vendor/luajit/src/lj_emit_mips.h b/subprojects/luajit/src/lj_emit_mips.h similarity index 100% rename from vendor/luajit/src/lj_emit_mips.h rename to subprojects/luajit/src/lj_emit_mips.h diff --git a/vendor/luajit/src/lj_emit_ppc.h b/subprojects/luajit/src/lj_emit_ppc.h similarity index 100% rename from vendor/luajit/src/lj_emit_ppc.h rename to subprojects/luajit/src/lj_emit_ppc.h diff --git a/vendor/luajit/src/lj_emit_x86.h b/subprojects/luajit/src/lj_emit_x86.h similarity index 100% rename from vendor/luajit/src/lj_emit_x86.h rename to subprojects/luajit/src/lj_emit_x86.h diff --git a/vendor/luajit/src/lj_err.c b/subprojects/luajit/src/lj_err.c similarity index 100% rename from vendor/luajit/src/lj_err.c rename to subprojects/luajit/src/lj_err.c diff --git a/vendor/luajit/src/lj_err.h b/subprojects/luajit/src/lj_err.h similarity index 100% rename from vendor/luajit/src/lj_err.h rename to subprojects/luajit/src/lj_err.h diff --git a/vendor/luajit/src/lj_errmsg.h b/subprojects/luajit/src/lj_errmsg.h similarity index 100% rename from vendor/luajit/src/lj_errmsg.h rename to subprojects/luajit/src/lj_errmsg.h diff --git a/vendor/luajit/src/lj_ff.h b/subprojects/luajit/src/lj_ff.h similarity index 100% rename from vendor/luajit/src/lj_ff.h rename to subprojects/luajit/src/lj_ff.h diff --git a/vendor/luajit/src/lj_ffrecord.c b/subprojects/luajit/src/lj_ffrecord.c similarity index 100% rename from vendor/luajit/src/lj_ffrecord.c rename to subprojects/luajit/src/lj_ffrecord.c diff --git a/vendor/luajit/src/lj_ffrecord.h b/subprojects/luajit/src/lj_ffrecord.h similarity index 100% rename from vendor/luajit/src/lj_ffrecord.h rename to subprojects/luajit/src/lj_ffrecord.h diff --git a/vendor/luajit/src/lj_frame.h b/subprojects/luajit/src/lj_frame.h similarity index 100% rename from vendor/luajit/src/lj_frame.h rename to subprojects/luajit/src/lj_frame.h diff --git a/vendor/luajit/src/lj_func.c b/subprojects/luajit/src/lj_func.c similarity index 100% rename from vendor/luajit/src/lj_func.c rename to subprojects/luajit/src/lj_func.c diff --git a/vendor/luajit/src/lj_func.h b/subprojects/luajit/src/lj_func.h similarity index 100% rename from vendor/luajit/src/lj_func.h rename to subprojects/luajit/src/lj_func.h diff --git a/vendor/luajit/src/lj_gc.c b/subprojects/luajit/src/lj_gc.c similarity index 100% rename from vendor/luajit/src/lj_gc.c rename to subprojects/luajit/src/lj_gc.c diff --git a/vendor/luajit/src/lj_gc.h b/subprojects/luajit/src/lj_gc.h similarity index 100% rename from vendor/luajit/src/lj_gc.h rename to subprojects/luajit/src/lj_gc.h diff --git a/vendor/luajit/src/lj_gdbjit.c b/subprojects/luajit/src/lj_gdbjit.c similarity index 100% rename from vendor/luajit/src/lj_gdbjit.c rename to subprojects/luajit/src/lj_gdbjit.c diff --git a/vendor/luajit/src/lj_gdbjit.h b/subprojects/luajit/src/lj_gdbjit.h similarity index 100% rename from vendor/luajit/src/lj_gdbjit.h rename to subprojects/luajit/src/lj_gdbjit.h diff --git a/vendor/luajit/src/lj_ir.c b/subprojects/luajit/src/lj_ir.c similarity index 100% rename from vendor/luajit/src/lj_ir.c rename to subprojects/luajit/src/lj_ir.c diff --git a/vendor/luajit/src/lj_ir.h b/subprojects/luajit/src/lj_ir.h similarity index 100% rename from vendor/luajit/src/lj_ir.h rename to subprojects/luajit/src/lj_ir.h diff --git a/vendor/luajit/src/lj_ircall.h b/subprojects/luajit/src/lj_ircall.h similarity index 100% rename from vendor/luajit/src/lj_ircall.h rename to subprojects/luajit/src/lj_ircall.h diff --git a/vendor/luajit/src/lj_iropt.h b/subprojects/luajit/src/lj_iropt.h similarity index 100% rename from vendor/luajit/src/lj_iropt.h rename to subprojects/luajit/src/lj_iropt.h diff --git a/vendor/luajit/src/lj_jit.h b/subprojects/luajit/src/lj_jit.h similarity index 100% rename from vendor/luajit/src/lj_jit.h rename to subprojects/luajit/src/lj_jit.h diff --git a/vendor/luajit/src/lj_lex.c b/subprojects/luajit/src/lj_lex.c similarity index 100% rename from vendor/luajit/src/lj_lex.c rename to subprojects/luajit/src/lj_lex.c diff --git a/vendor/luajit/src/lj_lex.h b/subprojects/luajit/src/lj_lex.h similarity index 100% rename from vendor/luajit/src/lj_lex.h rename to subprojects/luajit/src/lj_lex.h diff --git a/vendor/luajit/src/lj_lib.c b/subprojects/luajit/src/lj_lib.c similarity index 100% rename from vendor/luajit/src/lj_lib.c rename to subprojects/luajit/src/lj_lib.c diff --git a/vendor/luajit/src/lj_lib.h b/subprojects/luajit/src/lj_lib.h similarity index 100% rename from vendor/luajit/src/lj_lib.h rename to subprojects/luajit/src/lj_lib.h diff --git a/vendor/luajit/src/lj_load.c b/subprojects/luajit/src/lj_load.c similarity index 100% rename from vendor/luajit/src/lj_load.c rename to subprojects/luajit/src/lj_load.c diff --git a/vendor/luajit/src/lj_mcode.c b/subprojects/luajit/src/lj_mcode.c similarity index 100% rename from vendor/luajit/src/lj_mcode.c rename to subprojects/luajit/src/lj_mcode.c diff --git a/vendor/luajit/src/lj_mcode.h b/subprojects/luajit/src/lj_mcode.h similarity index 100% rename from vendor/luajit/src/lj_mcode.h rename to subprojects/luajit/src/lj_mcode.h diff --git a/vendor/luajit/src/lj_meta.c b/subprojects/luajit/src/lj_meta.c similarity index 100% rename from vendor/luajit/src/lj_meta.c rename to subprojects/luajit/src/lj_meta.c diff --git a/vendor/luajit/src/lj_meta.h b/subprojects/luajit/src/lj_meta.h similarity index 100% rename from vendor/luajit/src/lj_meta.h rename to subprojects/luajit/src/lj_meta.h diff --git a/vendor/luajit/src/lj_obj.c b/subprojects/luajit/src/lj_obj.c similarity index 100% rename from vendor/luajit/src/lj_obj.c rename to subprojects/luajit/src/lj_obj.c diff --git a/vendor/luajit/src/lj_obj.h b/subprojects/luajit/src/lj_obj.h similarity index 100% rename from vendor/luajit/src/lj_obj.h rename to subprojects/luajit/src/lj_obj.h diff --git a/vendor/luajit/src/lj_opt_dce.c b/subprojects/luajit/src/lj_opt_dce.c similarity index 100% rename from vendor/luajit/src/lj_opt_dce.c rename to subprojects/luajit/src/lj_opt_dce.c diff --git a/vendor/luajit/src/lj_opt_fold.c b/subprojects/luajit/src/lj_opt_fold.c similarity index 100% rename from vendor/luajit/src/lj_opt_fold.c rename to subprojects/luajit/src/lj_opt_fold.c diff --git a/vendor/luajit/src/lj_opt_loop.c b/subprojects/luajit/src/lj_opt_loop.c similarity index 100% rename from vendor/luajit/src/lj_opt_loop.c rename to subprojects/luajit/src/lj_opt_loop.c diff --git a/vendor/luajit/src/lj_opt_mem.c b/subprojects/luajit/src/lj_opt_mem.c similarity index 100% rename from vendor/luajit/src/lj_opt_mem.c rename to subprojects/luajit/src/lj_opt_mem.c diff --git a/vendor/luajit/src/lj_opt_narrow.c b/subprojects/luajit/src/lj_opt_narrow.c similarity index 100% rename from vendor/luajit/src/lj_opt_narrow.c rename to subprojects/luajit/src/lj_opt_narrow.c diff --git a/vendor/luajit/src/lj_opt_sink.c b/subprojects/luajit/src/lj_opt_sink.c similarity index 100% rename from vendor/luajit/src/lj_opt_sink.c rename to subprojects/luajit/src/lj_opt_sink.c diff --git a/vendor/luajit/src/lj_opt_split.c b/subprojects/luajit/src/lj_opt_split.c similarity index 100% rename from vendor/luajit/src/lj_opt_split.c rename to subprojects/luajit/src/lj_opt_split.c diff --git a/vendor/luajit/src/lj_parse.c b/subprojects/luajit/src/lj_parse.c similarity index 100% rename from vendor/luajit/src/lj_parse.c rename to subprojects/luajit/src/lj_parse.c diff --git a/vendor/luajit/src/lj_parse.h b/subprojects/luajit/src/lj_parse.h similarity index 100% rename from vendor/luajit/src/lj_parse.h rename to subprojects/luajit/src/lj_parse.h diff --git a/vendor/luajit/src/lj_record.c b/subprojects/luajit/src/lj_record.c similarity index 100% rename from vendor/luajit/src/lj_record.c rename to subprojects/luajit/src/lj_record.c diff --git a/vendor/luajit/src/lj_record.h b/subprojects/luajit/src/lj_record.h similarity index 100% rename from vendor/luajit/src/lj_record.h rename to subprojects/luajit/src/lj_record.h diff --git a/vendor/luajit/src/lj_snap.c b/subprojects/luajit/src/lj_snap.c similarity index 100% rename from vendor/luajit/src/lj_snap.c rename to subprojects/luajit/src/lj_snap.c diff --git a/vendor/luajit/src/lj_snap.h b/subprojects/luajit/src/lj_snap.h similarity index 100% rename from vendor/luajit/src/lj_snap.h rename to subprojects/luajit/src/lj_snap.h diff --git a/vendor/luajit/src/lj_state.c b/subprojects/luajit/src/lj_state.c similarity index 100% rename from vendor/luajit/src/lj_state.c rename to subprojects/luajit/src/lj_state.c diff --git a/vendor/luajit/src/lj_state.h b/subprojects/luajit/src/lj_state.h similarity index 100% rename from vendor/luajit/src/lj_state.h rename to subprojects/luajit/src/lj_state.h diff --git a/vendor/luajit/src/lj_str.c b/subprojects/luajit/src/lj_str.c similarity index 100% rename from vendor/luajit/src/lj_str.c rename to subprojects/luajit/src/lj_str.c diff --git a/vendor/luajit/src/lj_str.h b/subprojects/luajit/src/lj_str.h similarity index 100% rename from vendor/luajit/src/lj_str.h rename to subprojects/luajit/src/lj_str.h diff --git a/vendor/luajit/src/lj_strscan.c b/subprojects/luajit/src/lj_strscan.c similarity index 100% rename from vendor/luajit/src/lj_strscan.c rename to subprojects/luajit/src/lj_strscan.c diff --git a/vendor/luajit/src/lj_strscan.h b/subprojects/luajit/src/lj_strscan.h similarity index 100% rename from vendor/luajit/src/lj_strscan.h rename to subprojects/luajit/src/lj_strscan.h diff --git a/vendor/luajit/src/lj_tab.c b/subprojects/luajit/src/lj_tab.c similarity index 100% rename from vendor/luajit/src/lj_tab.c rename to subprojects/luajit/src/lj_tab.c diff --git a/vendor/luajit/src/lj_tab.h b/subprojects/luajit/src/lj_tab.h similarity index 100% rename from vendor/luajit/src/lj_tab.h rename to subprojects/luajit/src/lj_tab.h diff --git a/vendor/luajit/src/lj_target.h b/subprojects/luajit/src/lj_target.h similarity index 100% rename from vendor/luajit/src/lj_target.h rename to subprojects/luajit/src/lj_target.h diff --git a/vendor/luajit/src/lj_target_arm.h b/subprojects/luajit/src/lj_target_arm.h similarity index 100% rename from vendor/luajit/src/lj_target_arm.h rename to subprojects/luajit/src/lj_target_arm.h diff --git a/vendor/luajit/src/lj_target_mips.h b/subprojects/luajit/src/lj_target_mips.h similarity index 100% rename from vendor/luajit/src/lj_target_mips.h rename to subprojects/luajit/src/lj_target_mips.h diff --git a/vendor/luajit/src/lj_target_ppc.h b/subprojects/luajit/src/lj_target_ppc.h similarity index 100% rename from vendor/luajit/src/lj_target_ppc.h rename to subprojects/luajit/src/lj_target_ppc.h diff --git a/vendor/luajit/src/lj_target_x86.h b/subprojects/luajit/src/lj_target_x86.h similarity index 100% rename from vendor/luajit/src/lj_target_x86.h rename to subprojects/luajit/src/lj_target_x86.h diff --git a/vendor/luajit/src/lj_trace.c b/subprojects/luajit/src/lj_trace.c similarity index 100% rename from vendor/luajit/src/lj_trace.c rename to subprojects/luajit/src/lj_trace.c diff --git a/vendor/luajit/src/lj_trace.h b/subprojects/luajit/src/lj_trace.h similarity index 100% rename from vendor/luajit/src/lj_trace.h rename to subprojects/luajit/src/lj_trace.h diff --git a/vendor/luajit/src/lj_traceerr.h b/subprojects/luajit/src/lj_traceerr.h similarity index 100% rename from vendor/luajit/src/lj_traceerr.h rename to subprojects/luajit/src/lj_traceerr.h diff --git a/vendor/luajit/src/lj_udata.c b/subprojects/luajit/src/lj_udata.c similarity index 100% rename from vendor/luajit/src/lj_udata.c rename to subprojects/luajit/src/lj_udata.c diff --git a/vendor/luajit/src/lj_udata.h b/subprojects/luajit/src/lj_udata.h similarity index 100% rename from vendor/luajit/src/lj_udata.h rename to subprojects/luajit/src/lj_udata.h diff --git a/vendor/luajit/src/lj_vm.h b/subprojects/luajit/src/lj_vm.h similarity index 100% rename from vendor/luajit/src/lj_vm.h rename to subprojects/luajit/src/lj_vm.h diff --git a/vendor/luajit/src/lj_vmevent.c b/subprojects/luajit/src/lj_vmevent.c similarity index 100% rename from vendor/luajit/src/lj_vmevent.c rename to subprojects/luajit/src/lj_vmevent.c diff --git a/vendor/luajit/src/lj_vmevent.h b/subprojects/luajit/src/lj_vmevent.h similarity index 100% rename from vendor/luajit/src/lj_vmevent.h rename to subprojects/luajit/src/lj_vmevent.h diff --git a/vendor/luajit/src/lj_vmmath.c b/subprojects/luajit/src/lj_vmmath.c similarity index 100% rename from vendor/luajit/src/lj_vmmath.c rename to subprojects/luajit/src/lj_vmmath.c diff --git a/vendor/luajit/src/ljamalg.c b/subprojects/luajit/src/ljamalg.c similarity index 100% rename from vendor/luajit/src/ljamalg.c rename to subprojects/luajit/src/ljamalg.c diff --git a/vendor/luajit/src/lua.h b/subprojects/luajit/src/lua.h similarity index 100% rename from vendor/luajit/src/lua.h rename to subprojects/luajit/src/lua.h diff --git a/vendor/luajit/src/lua.hpp b/subprojects/luajit/src/lua.hpp similarity index 100% rename from vendor/luajit/src/lua.hpp rename to subprojects/luajit/src/lua.hpp diff --git a/vendor/luajit/src/luaconf.h b/subprojects/luajit/src/luaconf.h similarity index 100% rename from vendor/luajit/src/luaconf.h rename to subprojects/luajit/src/luaconf.h diff --git a/vendor/luajit/src/luajit.c b/subprojects/luajit/src/luajit.c similarity index 100% rename from vendor/luajit/src/luajit.c rename to subprojects/luajit/src/luajit.c diff --git a/vendor/luajit/src/luajit.h b/subprojects/luajit/src/luajit.h similarity index 100% rename from vendor/luajit/src/luajit.h rename to subprojects/luajit/src/luajit.h diff --git a/vendor/luajit/src/lualib.h b/subprojects/luajit/src/lualib.h similarity index 100% rename from vendor/luajit/src/lualib.h rename to subprojects/luajit/src/lualib.h diff --git a/vendor/luajit/src/meson.build b/subprojects/luajit/src/meson.build similarity index 100% rename from vendor/luajit/src/meson.build rename to subprojects/luajit/src/meson.build diff --git a/vendor/luajit/src/vm_arm.dasc b/subprojects/luajit/src/vm_arm.dasc similarity index 100% rename from vendor/luajit/src/vm_arm.dasc rename to subprojects/luajit/src/vm_arm.dasc diff --git a/vendor/luajit/src/vm_mips.dasc b/subprojects/luajit/src/vm_mips.dasc similarity index 100% rename from vendor/luajit/src/vm_mips.dasc rename to subprojects/luajit/src/vm_mips.dasc diff --git a/vendor/luajit/src/vm_ppc.dasc b/subprojects/luajit/src/vm_ppc.dasc similarity index 100% rename from vendor/luajit/src/vm_ppc.dasc rename to subprojects/luajit/src/vm_ppc.dasc diff --git a/vendor/luajit/src/vm_ppcspe.dasc b/subprojects/luajit/src/vm_ppcspe.dasc similarity index 100% rename from vendor/luajit/src/vm_ppcspe.dasc rename to subprojects/luajit/src/vm_ppcspe.dasc diff --git a/vendor/luajit/src/vm_x86.dasc b/subprojects/luajit/src/vm_x86.dasc similarity index 100% rename from vendor/luajit/src/vm_x86.dasc rename to subprojects/luajit/src/vm_x86.dasc diff --git a/vendor/luajit/unicode-io.patch b/subprojects/luajit/unicode-io.patch similarity index 100% rename from vendor/luajit/unicode-io.patch rename to subprojects/luajit/unicode-io.patch diff --git a/vendor/luajit/unicode-os.patch b/subprojects/luajit/unicode-os.patch similarity index 100% rename from vendor/luajit/unicode-os.patch rename to subprojects/luajit/unicode-os.patch diff --git a/vendor/luajit/src/Makefile.dep b/vendor/luajit/src/Makefile.dep deleted file mode 100644 index 9e14d6173..000000000 --- a/vendor/luajit/src/Makefile.dep +++ /dev/null @@ -1,226 +0,0 @@ -lib_aux.o: lib_aux.c lua.h luaconf.h lauxlib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_state.h lj_trace.h lj_jit.h lj_ir.h \ - lj_dispatch.h lj_bc.h lj_traceerr.h lj_lib.h lj_alloc.h -lib_base.o: lib_base.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h \ - lj_tab.h lj_meta.h lj_state.h lj_ctype.h lj_cconv.h lj_bc.h lj_ff.h \ - lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \ - lj_lib.h lj_libdef.h -lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_str.h lj_lib.h lj_libdef.h -lib_debug.o: lib_debug.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_lib.h \ - lj_libdef.h -lib_ffi.o: lib_ffi.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_meta.h \ - lj_ctype.h lj_cparse.h lj_cdata.h lj_cconv.h lj_carith.h lj_ccall.h \ - lj_ccallback.h lj_clib.h lj_ff.h lj_ffdef.h lj_lib.h lj_libdef.h -lib_init.o: lib_init.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h -lib_io.o: lib_io.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_state.h lj_ff.h \ - lj_ffdef.h lj_lib.h lj_libdef.h -lib_jit.o: lib_jit.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h \ - lj_obj.h lj_def.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h \ - lj_bc.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_target.h \ - lj_target_*.h lj_dispatch.h lj_vm.h lj_vmevent.h lj_lib.h luajit.h \ - lj_libdef.h -lib_math.o: lib_math.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_lib.h lj_vm.h lj_libdef.h -lib_os.o: lib_os.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_lib.h lj_libdef.h -lib_package.o: lib_package.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_err.h lj_errmsg.h lj_lib.h -lib_string.o: lib_string.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h \ - lj_meta.h lj_state.h lj_ff.h lj_ffdef.h lj_bcdump.h lj_lex.h lj_char.h \ - lj_lib.h lj_libdef.h -lib_table.o: lib_table.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ - lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_lib.h \ - lj_libdef.h -lj_alloc.o: lj_alloc.c lj_def.h lua.h luaconf.h lj_arch.h lj_alloc.h -lj_api.o: lj_api.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_func.h lj_udata.h \ - lj_meta.h lj_state.h lj_bc.h lj_frame.h lj_trace.h lj_jit.h lj_ir.h \ - lj_dispatch.h lj_traceerr.h lj_vm.h lj_strscan.h -lj_asm.o: lj_asm.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_str.h lj_tab.h lj_frame.h lj_bc.h lj_ctype.h lj_ir.h lj_jit.h \ - lj_ircall.h lj_iropt.h lj_mcode.h lj_trace.h lj_dispatch.h lj_traceerr.h \ - lj_snap.h lj_asm.h lj_vm.h lj_target.h lj_target_*.h lj_emit_*.h \ - lj_asm_*.h -lj_bc.o: lj_bc.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_bc.h \ - lj_bcdef.h -lj_bcread.o: lj_bcread.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_bc.h lj_ctype.h \ - lj_cdata.h lualib.h lj_lex.h lj_bcdump.h lj_state.h -lj_bcwrite.o: lj_bcwrite.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_str.h lj_bc.h lj_ctype.h lj_dispatch.h lj_jit.h lj_ir.h \ - lj_bcdump.h lj_lex.h lj_err.h lj_errmsg.h lj_vm.h -lj_carith.o: lj_carith.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_meta.h lj_ctype.h lj_cconv.h \ - lj_cdata.h lj_carith.h -lj_ccall.o: lj_ccall.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_cconv.h \ - lj_cdata.h lj_ccall.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h lj_bc.h \ - lj_traceerr.h -lj_ccallback.o: lj_ccallback.c lj_obj.h lua.h luaconf.h lj_def.h \ - lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_state.h lj_frame.h \ - lj_bc.h lj_ctype.h lj_cconv.h lj_ccall.h lj_ccallback.h lj_target.h \ - lj_target_*.h lj_mcode.h lj_jit.h lj_ir.h lj_trace.h lj_dispatch.h \ - lj_traceerr.h lj_vm.h -lj_cconv.o: lj_cconv.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_tab.h lj_ctype.h lj_gc.h lj_cdata.h lj_cconv.h \ - lj_ccallback.h -lj_cdata.o: lj_cdata.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_cconv.h \ - lj_cdata.h -lj_char.o: lj_char.c lj_char.h lj_def.h lua.h luaconf.h -lj_clib.o: lj_clib.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_tab.h lj_str.h lj_udata.h lj_ctype.h lj_cconv.h \ - lj_cdata.h lj_clib.h -lj_cparse.o: lj_cparse.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_ctype.h lj_cparse.h lj_frame.h \ - lj_bc.h lj_vm.h lj_char.h lj_strscan.h -lj_crecord.o: lj_crecord.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_frame.h lj_bc.h lj_ctype.h \ - lj_gc.h lj_cdata.h lj_cparse.h lj_cconv.h lj_clib.h lj_ccall.h lj_ff.h \ - lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ - lj_dispatch.h lj_traceerr.h lj_record.h lj_ffrecord.h lj_snap.h \ - lj_crecord.h -lj_ctype.o: lj_ctype.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_ccallback.h -lj_debug.o: lj_debug.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_state.h lj_frame.h \ - lj_bc.h lj_vm.h lj_jit.h lj_ir.h -lj_dispatch.o: lj_dispatch.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_func.h lj_str.h lj_tab.h lj_meta.h lj_debug.h \ - lj_state.h lj_frame.h lj_bc.h lj_ff.h lj_ffdef.h lj_jit.h lj_ir.h \ - lj_ccallback.h lj_ctype.h lj_gc.h lj_trace.h lj_dispatch.h lj_traceerr.h \ - lj_vm.h luajit.h -lj_err.o: lj_err.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_err.h \ - lj_errmsg.h lj_debug.h lj_str.h lj_func.h lj_state.h lj_frame.h lj_bc.h \ - lj_ff.h lj_ffdef.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h \ - lj_traceerr.h lj_vm.h -lj_ffrecord.o: lj_ffrecord.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_frame.h lj_bc.h lj_ff.h \ - lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ - lj_dispatch.h lj_traceerr.h lj_record.h lj_ffrecord.h lj_crecord.h \ - lj_vm.h lj_strscan.h lj_recdef.h -lj_func.o: lj_func.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_func.h lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h lj_bc.h \ - lj_traceerr.h lj_vm.h -lj_gc.o: lj_gc.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_func.h lj_udata.h lj_meta.h \ - lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cdata.h lj_trace.h lj_jit.h \ - lj_ir.h lj_dispatch.h lj_traceerr.h lj_vm.h -lj_gdbjit.o: lj_gdbjit.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_frame.h lj_bc.h lj_jit.h \ - lj_ir.h lj_dispatch.h -lj_ir.o: lj_ir.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_str.h lj_tab.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_trace.h \ - lj_dispatch.h lj_bc.h lj_traceerr.h lj_ctype.h lj_cdata.h lj_carith.h \ - lj_vm.h lj_strscan.h lj_lib.h -lj_lex.o: lj_lex.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_ctype.h lj_cdata.h lualib.h \ - lj_state.h lj_lex.h lj_parse.h lj_char.h lj_strscan.h -lj_lib.o: lj_lib.c lauxlib.h lua.h luaconf.h lj_obj.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_func.h lj_bc.h \ - lj_dispatch.h lj_jit.h lj_ir.h lj_vm.h lj_strscan.h lj_lib.h -lj_load.o: lj_load.c lua.h luaconf.h lauxlib.h lj_obj.h lj_def.h \ - lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_func.h lj_frame.h \ - lj_bc.h lj_vm.h lj_lex.h lj_bcdump.h lj_parse.h -lj_mcode.o: lj_mcode.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_jit.h lj_ir.h lj_mcode.h lj_trace.h \ - lj_dispatch.h lj_bc.h lj_traceerr.h lj_vm.h -lj_meta.o: lj_meta.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_meta.h lj_frame.h lj_bc.h \ - lj_vm.h lj_strscan.h -lj_obj.o: lj_obj.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h -lj_opt_dce.o: lj_opt_dce.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_ir.h lj_jit.h lj_iropt.h -lj_opt_fold.o: lj_opt_fold.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_str.h lj_tab.h lj_ir.h lj_jit.h lj_iropt.h lj_trace.h lj_dispatch.h \ - lj_bc.h lj_traceerr.h lj_ctype.h lj_gc.h lj_carith.h lj_vm.h \ - lj_strscan.h lj_folddef.h -lj_opt_loop.o: lj_opt_loop.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_str.h lj_ir.h lj_jit.h lj_iropt.h lj_trace.h \ - lj_dispatch.h lj_bc.h lj_traceerr.h lj_snap.h lj_vm.h -lj_opt_mem.o: lj_opt_mem.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_tab.h lj_ir.h lj_jit.h lj_iropt.h -lj_opt_narrow.o: lj_opt_narrow.c lj_obj.h lua.h luaconf.h lj_def.h \ - lj_arch.h lj_bc.h lj_ir.h lj_jit.h lj_iropt.h lj_trace.h lj_dispatch.h \ - lj_traceerr.h lj_vm.h lj_strscan.h -lj_opt_sink.o: lj_opt_sink.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_ir.h lj_jit.h lj_iropt.h lj_target.h lj_target_*.h -lj_opt_split.o: lj_opt_split.c lj_obj.h lua.h luaconf.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_str.h lj_ir.h lj_jit.h lj_ircall.h \ - lj_iropt.h lj_vm.h -lj_parse.o: lj_parse.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h lj_func.h \ - lj_state.h lj_bc.h lj_ctype.h lj_lex.h lj_parse.h lj_vm.h lj_vmevent.h -lj_record.o: lj_record.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_meta.h lj_frame.h lj_bc.h \ - lj_ctype.h lj_gc.h lj_ff.h lj_ffdef.h lj_ir.h lj_jit.h lj_ircall.h \ - lj_iropt.h lj_trace.h lj_dispatch.h lj_traceerr.h lj_record.h \ - lj_ffrecord.h lj_snap.h lj_vm.h -lj_snap.o: lj_snap.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_tab.h lj_state.h lj_frame.h lj_bc.h lj_ir.h lj_jit.h lj_iropt.h \ - lj_trace.h lj_dispatch.h lj_traceerr.h lj_snap.h lj_target.h \ - lj_target_*.h lj_ctype.h lj_cdata.h -lj_state.o: lj_state.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_func.h lj_meta.h \ - lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_trace.h lj_jit.h lj_ir.h \ - lj_dispatch.h lj_traceerr.h lj_vm.h lj_lex.h lj_alloc.h -lj_str.o: lj_str.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_str.h lj_state.h lj_char.h -lj_strscan.o: lj_strscan.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_char.h lj_strscan.h -lj_tab.o: lj_tab.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h lj_gc.h \ - lj_err.h lj_errmsg.h lj_tab.h -lj_trace.o: lj_trace.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_frame.h lj_bc.h \ - lj_state.h lj_ir.h lj_jit.h lj_iropt.h lj_mcode.h lj_trace.h \ - lj_dispatch.h lj_traceerr.h lj_snap.h lj_gdbjit.h lj_record.h lj_asm.h \ - lj_vm.h lj_vmevent.h lj_target.h lj_target_*.h -lj_udata.o: lj_udata.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_gc.h lj_udata.h -lj_vmevent.o: lj_vmevent.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_str.h lj_tab.h lj_state.h lj_dispatch.h lj_bc.h lj_jit.h lj_ir.h \ - lj_vm.h lj_vmevent.h -lj_vmmath.o: lj_vmmath.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \ - lj_ir.h lj_vm.h -ljamalg.o: ljamalg.c lua.h luaconf.h lauxlib.h lj_gc.c lj_obj.h lj_def.h \ - lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_func.h \ - lj_udata.h lj_meta.h lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cdata.h \ - lj_trace.h lj_jit.h lj_ir.h lj_dispatch.h lj_traceerr.h lj_vm.h lj_err.c \ - lj_debug.h lj_ff.h lj_ffdef.h lj_char.c lj_char.h lj_bc.c lj_bcdef.h \ - lj_obj.c lj_str.c lj_tab.c lj_func.c lj_udata.c lj_meta.c lj_strscan.h \ - lj_debug.c lj_state.c lj_lex.h lj_alloc.h lj_dispatch.c lj_ccallback.h \ - luajit.h lj_vmevent.c lj_vmevent.h lj_vmmath.c lj_strscan.c lj_api.c \ - lj_lex.c lualib.h lj_parse.h lj_parse.c lj_bcread.c lj_bcdump.h \ - lj_bcwrite.c lj_load.c lj_ctype.c lj_cdata.c lj_cconv.h lj_cconv.c \ - lj_ccall.c lj_ccall.h lj_ccallback.c lj_target.h lj_target_*.h \ - lj_mcode.h lj_carith.c lj_carith.h lj_clib.c lj_clib.h lj_cparse.c \ - lj_cparse.h lj_lib.c lj_lib.h lj_ir.c lj_ircall.h lj_iropt.h \ - lj_opt_mem.c lj_opt_fold.c lj_folddef.h lj_opt_narrow.c lj_opt_dce.c \ - lj_opt_loop.c lj_snap.h lj_opt_split.c lj_opt_sink.c lj_mcode.c \ - lj_snap.c lj_record.c lj_record.h lj_ffrecord.h lj_crecord.c \ - lj_crecord.h lj_ffrecord.c lj_recdef.h lj_asm.c lj_asm.h lj_emit_*.h \ - lj_asm_*.h lj_trace.c lj_gdbjit.h lj_gdbjit.c lj_alloc.c lib_aux.c \ - lib_base.c lj_libdef.h lib_math.c lib_string.c lib_table.c lib_io.c \ - lib_os.c lib_package.c lib_debug.c lib_bit.c lib_jit.c lib_ffi.c \ - lib_init.c -luajit.o: luajit.c lua.h luaconf.h lauxlib.h lualib.h luajit.h lj_arch.h -host/buildvm.o: host/buildvm.c host/buildvm.h lj_def.h lua.h luaconf.h \ - lj_arch.h lj_obj.h lj_def.h lj_arch.h lj_gc.h lj_obj.h lj_bc.h lj_ir.h \ - lj_ircall.h lj_ir.h lj_jit.h lj_frame.h lj_bc.h lj_dispatch.h lj_ctype.h \ - lj_gc.h lj_ccall.h lj_ctype.h luajit.h \ - host/buildvm_arch.h lj_traceerr.h -host/buildvm_asm.o: host/buildvm_asm.c host/buildvm.h lj_def.h lua.h luaconf.h \ - lj_arch.h lj_bc.h lj_def.h lj_arch.h -host/buildvm_fold.o: host/buildvm_fold.c host/buildvm.h lj_def.h lua.h \ - luaconf.h lj_arch.h lj_obj.h lj_def.h lj_arch.h lj_ir.h lj_obj.h -host/buildvm_lib.o: host/buildvm_lib.c host/buildvm.h lj_def.h lua.h luaconf.h \ - lj_arch.h lj_obj.h lj_def.h lj_arch.h lj_lib.h lj_obj.h -host/buildvm_peobj.o: host/buildvm_peobj.c host/buildvm.h lj_def.h lua.h \ - luaconf.h lj_arch.h lj_bc.h lj_def.h lj_arch.h -host/minilua.o: host/minilua.c From 0be226aa6cc462a73bd2e22b362245656eeb0704 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 19:57:55 -0500 Subject: [PATCH 075/185] meson: add wrapfiles for essential subprojects --- .gitignore | 9 +++++++++ subprojects/expat.wrap | 10 ++++++++++ subprojects/freetype2.wrap | 10 ++++++++++ subprojects/fribidi.wrap | 4 ++++ subprojects/gtest.wrap | 10 ++++++++++ subprojects/harfbuzz.wrap | 5 +++++ subprojects/libass.wrap | 4 ++++ subprojects/libpng.wrap | 10 ++++++++++ subprojects/zlib.wrap | 10 ++++++++++ 9 files changed, 72 insertions(+) create mode 100644 subprojects/expat.wrap create mode 100644 subprojects/freetype2.wrap create mode 100644 subprojects/fribidi.wrap create mode 100644 subprojects/gtest.wrap create mode 100644 subprojects/harfbuzz.wrap create mode 100644 subprojects/libass.wrap create mode 100644 subprojects/libpng.wrap create mode 100644 subprojects/zlib.wrap diff --git a/.gitignore b/.gitignore index d800491d4..4a19137ba 100644 --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,12 @@ vendor/luajit/src/luajit .nuget .vs + +# Meson +subprojects/freetype* +subprojects/fribidi +subprojects/harfbuzz +subprojects/libass +subprojects/libpng* +subprojects/packagecache +subprojects/zlib* diff --git a/subprojects/expat.wrap b/subprojects/expat.wrap new file mode 100644 index 000000000..0a605d019 --- /dev/null +++ b/subprojects/expat.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = expat-2.2.6 + +source_url = https://github.com/libexpat/libexpat/releases/download/R_2_2_6/expat-2.2.6.tar.bz2 +source_filename = expat-2.2.6.tar.bz2 +source_hash = 17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/expat/2.2.6/1/get_zip +patch_filename = expat-2.2.6-1-wrap.zip +patch_hash = b8312fae757c7bff6f0cb430108104441a3da7a0a333809f5c80b354157eaa4d diff --git a/subprojects/freetype2.wrap b/subprojects/freetype2.wrap new file mode 100644 index 000000000..613f7d627 --- /dev/null +++ b/subprojects/freetype2.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = freetype-2.9.1 + +source_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz +source_filename = freetype-2.9.1.tar.gz +source_hash = ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/freetype2/2.9.1/1/get_zip +patch_filename = freetype2-2.9.1-1-wrap.zip +patch_hash = 06222607775e707c6d7b8d21ffdb04c7672f676a18c5ebb9880545130ab0407b diff --git a/subprojects/fribidi.wrap b/subprojects/fribidi.wrap new file mode 100644 index 000000000..e3f62a688 --- /dev/null +++ b/subprojects/fribidi.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = fribidi +url = https://github.com/fribidi/fribidi.git +revision = master diff --git a/subprojects/gtest.wrap b/subprojects/gtest.wrap new file mode 100644 index 000000000..773a713c9 --- /dev/null +++ b/subprojects/gtest.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = googletest-release-1.8.0 + +source_url = https://github.com/google/googletest/archive/release-1.8.0.zip +source_filename = gtest-1.8.0.zip +source_hash = f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.8.0/5/get_zip +patch_filename = gtest-1.8.0-5-wrap.zip +patch_hash = 7eeaede4aa2610a403313b74e04baf91ccfbaef03203d8f56312e22df1834ec5 diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap new file mode 100644 index 000000000..20cafdae6 --- /dev/null +++ b/subprojects/harfbuzz.wrap @@ -0,0 +1,5 @@ +[wrap-git] +directory = harfbuzz +# Change this URL once upstreamed! +url = https://github.com/tp-m/harfbuzz.git +revision = meson-rebased diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap new file mode 100644 index 000000000..2e0629c10 --- /dev/null +++ b/subprojects/libass.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = libass +url = https://github.com/TypesettingTools/libass.git +revision = meson diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap new file mode 100644 index 000000000..30774eb72 --- /dev/null +++ b/subprojects/libpng.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = libpng-1.6.35 + +source_url = https://github.com/glennrp/libpng/archive/v1.6.35.tar.gz +source_filename = libpng-1.6.35.tar.gz +source_hash = 6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.35/5/get_zip +patch_filename = libpng-1.6.35-5-wrap.zip +patch_hash = da42b18e8d75a88615bdbc1c7bbf1f739ae19f63a8e70d96c90bc448326ae6b7 diff --git a/subprojects/zlib.wrap b/subprojects/zlib.wrap new file mode 100644 index 000000000..97de00ef7 --- /dev/null +++ b/subprojects/zlib.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = zlib-1.2.11 + +source_url = http://zlib.net/fossils/zlib-1.2.11.tar.gz +source_filename = zlib-1.2.11.tar.gz +source_hash = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/3/get_zip +patch_filename = zlib-1.2.11-3-wrap.zip +patch_hash = f07dc491ab3d05daf00632a0591e2ae61b470615b5b73bcf9b3f061fff65cff0 From 42bfc53a77c49bce49b1647fd1a76709e311b8b7 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 11 Feb 2019 22:43:29 -0500 Subject: [PATCH 076/185] meson: bump c++ version --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index c919ae867..ee49e2b2f 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', meson_version: '>=0.49.0', - default_options: ['cpp_std=c++11', 'b_lto=true']) + default_options: ['cpp_std=c++14', 'b_lto=true']) if host_machine.system() == 'windows' version_sh = find_program('tools/version.ps1') From 6ca1d6463a5585e3c5ac6f40c170551ec8c56e59 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 13 Feb 2019 12:18:08 -0500 Subject: [PATCH 077/185] Remove submodules --- .gitmodules | 42 ------------------------------------------ vendor/boost | 1 - vendor/ffmpeg | 1 - vendor/ffms2 | 1 - vendor/fftw | 1 - vendor/freetype2 | 1 - vendor/googletest | 1 - vendor/icu | 1 - vendor/libass | 1 - vendor/uchardet | 1 - vendor/wxWidgets | 1 - 11 files changed, 52 deletions(-) delete mode 100644 .gitmodules delete mode 160000 vendor/boost delete mode 160000 vendor/ffmpeg delete mode 160000 vendor/ffms2 delete mode 160000 vendor/fftw delete mode 160000 vendor/freetype2 delete mode 160000 vendor/googletest delete mode 160000 vendor/icu delete mode 160000 vendor/libass delete mode 160000 vendor/uchardet delete mode 160000 vendor/wxWidgets diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e34fcc897..000000000 --- a/.gitmodules +++ /dev/null @@ -1,42 +0,0 @@ -[submodule "freetype2"] - path = vendor/freetype2 - url = git://git.sv.nongnu.org/freetype/freetype2.git - ignore = dirty -[submodule "wxWidgets"] - path = vendor/wxWidgets - url = git://github.com/Aegisub/wxWidgets.git - ignore = dirty -[submodule "googletest"] - path = vendor/googletest - url = git://github.com/svn2github/googletest.git - ignore = dirty -[submodule "ffmpeg"] - path = vendor/ffmpeg - url = git://source.ffmpeg.org/ffmpeg.git - ignore = dirty -[submodule "ffms2"] - path = vendor/ffms2 - url = git://github.com/FFMS/ffms2.git - branch = master - ignore = dirty -[submodule "libass"] - path = vendor/libass - url = git://github.com/libass/libass.git - branch = master -[submodule "icu"] - path = vendor/icu - url = git://github.com/svn2github/icu4c.git - branch = master - ignore = dirty -[submodule "boost"] - path = vendor/boost - url = https://github.com/boostorg/boost.git - ignore = dirty -[submodule "fftw"] - path = vendor/fftw - url = https://github.com/Aegisub/fftw3.git - ignore = dirty -[submodule "uchardet"] - path = vendor/uchardet - url = https://gitlab.freedesktop.org/uchardet/uchardet.git - ignore = dirty diff --git a/vendor/boost b/vendor/boost deleted file mode 160000 index 9ccd3390c..000000000 --- a/vendor/boost +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9ccd3390c8e9ef05f4cb681d15b2e14eac48886e diff --git a/vendor/ffmpeg b/vendor/ffmpeg deleted file mode 160000 index d290bb0c5..000000000 --- a/vendor/ffmpeg +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d290bb0c540425e937d11ed88e22c68ab97c57eb diff --git a/vendor/ffms2 b/vendor/ffms2 deleted file mode 160000 index f3c6b008b..000000000 --- a/vendor/ffms2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f3c6b008b53719dcac032293e3a42a3164c8d7ec diff --git a/vendor/fftw b/vendor/fftw deleted file mode 160000 index d68ca6315..000000000 --- a/vendor/fftw +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d68ca6315cafa5b8ff9367d9375314f32b7dbd81 diff --git a/vendor/freetype2 b/vendor/freetype2 deleted file mode 160000 index 51fee6558..000000000 --- a/vendor/freetype2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 51fee655837ef99084767873266aaddfa3a31da5 diff --git a/vendor/googletest b/vendor/googletest deleted file mode 160000 index cc0116f14..000000000 --- a/vendor/googletest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cc0116f14aa8ad9ab76226d082a96b1005221816 diff --git a/vendor/icu b/vendor/icu deleted file mode 160000 index 061be17bd..000000000 --- a/vendor/icu +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 061be17bd589bb65d37b70c23513ab530cad7821 diff --git a/vendor/libass b/vendor/libass deleted file mode 160000 index 98727c3b7..000000000 --- a/vendor/libass +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 98727c3b78f44cb3bbc955fcf5d977ebd911d5ca diff --git a/vendor/uchardet b/vendor/uchardet deleted file mode 160000 index bdfd6116a..000000000 --- a/vendor/uchardet +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bdfd6116a965fd210ef563613763e724424728b7 diff --git a/vendor/wxWidgets b/vendor/wxWidgets deleted file mode 160000 index d08c66fcb..000000000 --- a/vendor/wxWidgets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d08c66fcb46dea7d61e4a3565cd09fb4c675a201 From 609f5be03223cd74529feee344b9ff93f00d8f65 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 13 Feb 2019 12:20:49 -0500 Subject: [PATCH 078/185] Move CSRI to subprojects --- {vendor => subprojects}/csri/Doxyfile | 0 {vendor => subprojects}/csri/LICENSE | 0 {vendor => subprojects}/csri/Makefile.am | 0 {vendor => subprojects}/csri/ac/Makefile.am | 0 {vendor => subprojects}/csri/acinclude.m4 | 0 {vendor => subprojects}/csri/backends/Makefile.am | 0 {vendor => subprojects}/csri/backends/libass/Makefile.am | 0 {vendor => subprojects}/csri/backends/libass/libass_csri.c | 0 {vendor => subprojects}/csri/bootstrap | 0 {vendor => subprojects}/csri/configure.ac | 0 {vendor => subprojects}/csri/csri.pc.in | 0 {vendor => subprojects}/csri/csri_2008.vcproj | 0 {vendor => subprojects}/csri/frontends/Makefile.am | 0 {vendor => subprojects}/csri/frontends/avisynth25/Makefile.am | 0 {vendor => subprojects}/csri/frontends/avisynth25/avisynth.cpp | 0 {vendor => subprojects}/csri/frontends/avisynth25/avisynth.h | 0 {vendor => subprojects}/csri/frontends/cmdline/Makefile.am | 0 {vendor => subprojects}/csri/frontends/cmdline/cmdmain.c | 0 {vendor => subprojects}/csri/frontends/cmdline/render.c | 0 {vendor => subprojects}/csri/frontends/cmdline/render.h | 0 {vendor => subprojects}/csri/include/Makefile.am | 0 {vendor => subprojects}/csri/include/csri/csri.h | 0 {vendor => subprojects}/csri/include/csri/fmtids.h | 0 {vendor => subprojects}/csri/include/csri/logging.h | 0 {vendor => subprojects}/csri/include/csri/openerr.h | 0 {vendor => subprojects}/csri/include/csri/stream.h | 0 {vendor => subprojects}/csri/include/subhelp.h | 0 {vendor => subprojects}/csri/include/visibility.h | 0 {vendor => subprojects}/csri/lib/Makefile.am | 0 {vendor => subprojects}/csri/lib/csrilib.h | 0 {vendor => subprojects}/csri/lib/list.c | 0 {vendor => subprojects}/csri/lib/posix/csrilib_os.h | 0 {vendor => subprojects}/csri/lib/posix/enumerate.c | 0 {vendor => subprojects}/csri/lib/win32/csrilib_os.h | 0 {vendor => subprojects}/csri/lib/win32/enumerate.c | 0 {vendor => subprojects}/csri/lib/wrap.c | 0 {vendor => subprojects}/csri/subhelp/Makefile.am | 0 {vendor => subprojects}/csri/subhelp/logging.c | 0 {vendor => subprojects}/csri/subhelp/posix/openfile.c | 0 {vendor => subprojects}/csri/subhelp/win32/openfile.c | 0 40 files changed, 0 insertions(+), 0 deletions(-) rename {vendor => subprojects}/csri/Doxyfile (100%) rename {vendor => subprojects}/csri/LICENSE (100%) rename {vendor => subprojects}/csri/Makefile.am (100%) rename {vendor => subprojects}/csri/ac/Makefile.am (100%) rename {vendor => subprojects}/csri/acinclude.m4 (100%) rename {vendor => subprojects}/csri/backends/Makefile.am (100%) rename {vendor => subprojects}/csri/backends/libass/Makefile.am (100%) rename {vendor => subprojects}/csri/backends/libass/libass_csri.c (100%) rename {vendor => subprojects}/csri/bootstrap (100%) mode change 100755 => 100644 rename {vendor => subprojects}/csri/configure.ac (100%) rename {vendor => subprojects}/csri/csri.pc.in (100%) rename {vendor => subprojects}/csri/csri_2008.vcproj (100%) rename {vendor => subprojects}/csri/frontends/Makefile.am (100%) rename {vendor => subprojects}/csri/frontends/avisynth25/Makefile.am (100%) rename {vendor => subprojects}/csri/frontends/avisynth25/avisynth.cpp (100%) rename {vendor => subprojects}/csri/frontends/avisynth25/avisynth.h (100%) rename {vendor => subprojects}/csri/frontends/cmdline/Makefile.am (100%) rename {vendor => subprojects}/csri/frontends/cmdline/cmdmain.c (100%) rename {vendor => subprojects}/csri/frontends/cmdline/render.c (100%) rename {vendor => subprojects}/csri/frontends/cmdline/render.h (100%) rename {vendor => subprojects}/csri/include/Makefile.am (100%) rename {vendor => subprojects}/csri/include/csri/csri.h (100%) rename {vendor => subprojects}/csri/include/csri/fmtids.h (100%) rename {vendor => subprojects}/csri/include/csri/logging.h (100%) rename {vendor => subprojects}/csri/include/csri/openerr.h (100%) rename {vendor => subprojects}/csri/include/csri/stream.h (100%) rename {vendor => subprojects}/csri/include/subhelp.h (100%) rename {vendor => subprojects}/csri/include/visibility.h (100%) rename {vendor => subprojects}/csri/lib/Makefile.am (100%) rename {vendor => subprojects}/csri/lib/csrilib.h (100%) rename {vendor => subprojects}/csri/lib/list.c (100%) rename {vendor => subprojects}/csri/lib/posix/csrilib_os.h (100%) rename {vendor => subprojects}/csri/lib/posix/enumerate.c (100%) rename {vendor => subprojects}/csri/lib/win32/csrilib_os.h (100%) rename {vendor => subprojects}/csri/lib/win32/enumerate.c (100%) rename {vendor => subprojects}/csri/lib/wrap.c (100%) rename {vendor => subprojects}/csri/subhelp/Makefile.am (100%) rename {vendor => subprojects}/csri/subhelp/logging.c (100%) rename {vendor => subprojects}/csri/subhelp/posix/openfile.c (100%) rename {vendor => subprojects}/csri/subhelp/win32/openfile.c (100%) diff --git a/vendor/csri/Doxyfile b/subprojects/csri/Doxyfile similarity index 100% rename from vendor/csri/Doxyfile rename to subprojects/csri/Doxyfile diff --git a/vendor/csri/LICENSE b/subprojects/csri/LICENSE similarity index 100% rename from vendor/csri/LICENSE rename to subprojects/csri/LICENSE diff --git a/vendor/csri/Makefile.am b/subprojects/csri/Makefile.am similarity index 100% rename from vendor/csri/Makefile.am rename to subprojects/csri/Makefile.am diff --git a/vendor/csri/ac/Makefile.am b/subprojects/csri/ac/Makefile.am similarity index 100% rename from vendor/csri/ac/Makefile.am rename to subprojects/csri/ac/Makefile.am diff --git a/vendor/csri/acinclude.m4 b/subprojects/csri/acinclude.m4 similarity index 100% rename from vendor/csri/acinclude.m4 rename to subprojects/csri/acinclude.m4 diff --git a/vendor/csri/backends/Makefile.am b/subprojects/csri/backends/Makefile.am similarity index 100% rename from vendor/csri/backends/Makefile.am rename to subprojects/csri/backends/Makefile.am diff --git a/vendor/csri/backends/libass/Makefile.am b/subprojects/csri/backends/libass/Makefile.am similarity index 100% rename from vendor/csri/backends/libass/Makefile.am rename to subprojects/csri/backends/libass/Makefile.am diff --git a/vendor/csri/backends/libass/libass_csri.c b/subprojects/csri/backends/libass/libass_csri.c similarity index 100% rename from vendor/csri/backends/libass/libass_csri.c rename to subprojects/csri/backends/libass/libass_csri.c diff --git a/vendor/csri/bootstrap b/subprojects/csri/bootstrap old mode 100755 new mode 100644 similarity index 100% rename from vendor/csri/bootstrap rename to subprojects/csri/bootstrap diff --git a/vendor/csri/configure.ac b/subprojects/csri/configure.ac similarity index 100% rename from vendor/csri/configure.ac rename to subprojects/csri/configure.ac diff --git a/vendor/csri/csri.pc.in b/subprojects/csri/csri.pc.in similarity index 100% rename from vendor/csri/csri.pc.in rename to subprojects/csri/csri.pc.in diff --git a/vendor/csri/csri_2008.vcproj b/subprojects/csri/csri_2008.vcproj similarity index 100% rename from vendor/csri/csri_2008.vcproj rename to subprojects/csri/csri_2008.vcproj diff --git a/vendor/csri/frontends/Makefile.am b/subprojects/csri/frontends/Makefile.am similarity index 100% rename from vendor/csri/frontends/Makefile.am rename to subprojects/csri/frontends/Makefile.am diff --git a/vendor/csri/frontends/avisynth25/Makefile.am b/subprojects/csri/frontends/avisynth25/Makefile.am similarity index 100% rename from vendor/csri/frontends/avisynth25/Makefile.am rename to subprojects/csri/frontends/avisynth25/Makefile.am diff --git a/vendor/csri/frontends/avisynth25/avisynth.cpp b/subprojects/csri/frontends/avisynth25/avisynth.cpp similarity index 100% rename from vendor/csri/frontends/avisynth25/avisynth.cpp rename to subprojects/csri/frontends/avisynth25/avisynth.cpp diff --git a/vendor/csri/frontends/avisynth25/avisynth.h b/subprojects/csri/frontends/avisynth25/avisynth.h similarity index 100% rename from vendor/csri/frontends/avisynth25/avisynth.h rename to subprojects/csri/frontends/avisynth25/avisynth.h diff --git a/vendor/csri/frontends/cmdline/Makefile.am b/subprojects/csri/frontends/cmdline/Makefile.am similarity index 100% rename from vendor/csri/frontends/cmdline/Makefile.am rename to subprojects/csri/frontends/cmdline/Makefile.am diff --git a/vendor/csri/frontends/cmdline/cmdmain.c b/subprojects/csri/frontends/cmdline/cmdmain.c similarity index 100% rename from vendor/csri/frontends/cmdline/cmdmain.c rename to subprojects/csri/frontends/cmdline/cmdmain.c diff --git a/vendor/csri/frontends/cmdline/render.c b/subprojects/csri/frontends/cmdline/render.c similarity index 100% rename from vendor/csri/frontends/cmdline/render.c rename to subprojects/csri/frontends/cmdline/render.c diff --git a/vendor/csri/frontends/cmdline/render.h b/subprojects/csri/frontends/cmdline/render.h similarity index 100% rename from vendor/csri/frontends/cmdline/render.h rename to subprojects/csri/frontends/cmdline/render.h diff --git a/vendor/csri/include/Makefile.am b/subprojects/csri/include/Makefile.am similarity index 100% rename from vendor/csri/include/Makefile.am rename to subprojects/csri/include/Makefile.am diff --git a/vendor/csri/include/csri/csri.h b/subprojects/csri/include/csri/csri.h similarity index 100% rename from vendor/csri/include/csri/csri.h rename to subprojects/csri/include/csri/csri.h diff --git a/vendor/csri/include/csri/fmtids.h b/subprojects/csri/include/csri/fmtids.h similarity index 100% rename from vendor/csri/include/csri/fmtids.h rename to subprojects/csri/include/csri/fmtids.h diff --git a/vendor/csri/include/csri/logging.h b/subprojects/csri/include/csri/logging.h similarity index 100% rename from vendor/csri/include/csri/logging.h rename to subprojects/csri/include/csri/logging.h diff --git a/vendor/csri/include/csri/openerr.h b/subprojects/csri/include/csri/openerr.h similarity index 100% rename from vendor/csri/include/csri/openerr.h rename to subprojects/csri/include/csri/openerr.h diff --git a/vendor/csri/include/csri/stream.h b/subprojects/csri/include/csri/stream.h similarity index 100% rename from vendor/csri/include/csri/stream.h rename to subprojects/csri/include/csri/stream.h diff --git a/vendor/csri/include/subhelp.h b/subprojects/csri/include/subhelp.h similarity index 100% rename from vendor/csri/include/subhelp.h rename to subprojects/csri/include/subhelp.h diff --git a/vendor/csri/include/visibility.h b/subprojects/csri/include/visibility.h similarity index 100% rename from vendor/csri/include/visibility.h rename to subprojects/csri/include/visibility.h diff --git a/vendor/csri/lib/Makefile.am b/subprojects/csri/lib/Makefile.am similarity index 100% rename from vendor/csri/lib/Makefile.am rename to subprojects/csri/lib/Makefile.am diff --git a/vendor/csri/lib/csrilib.h b/subprojects/csri/lib/csrilib.h similarity index 100% rename from vendor/csri/lib/csrilib.h rename to subprojects/csri/lib/csrilib.h diff --git a/vendor/csri/lib/list.c b/subprojects/csri/lib/list.c similarity index 100% rename from vendor/csri/lib/list.c rename to subprojects/csri/lib/list.c diff --git a/vendor/csri/lib/posix/csrilib_os.h b/subprojects/csri/lib/posix/csrilib_os.h similarity index 100% rename from vendor/csri/lib/posix/csrilib_os.h rename to subprojects/csri/lib/posix/csrilib_os.h diff --git a/vendor/csri/lib/posix/enumerate.c b/subprojects/csri/lib/posix/enumerate.c similarity index 100% rename from vendor/csri/lib/posix/enumerate.c rename to subprojects/csri/lib/posix/enumerate.c diff --git a/vendor/csri/lib/win32/csrilib_os.h b/subprojects/csri/lib/win32/csrilib_os.h similarity index 100% rename from vendor/csri/lib/win32/csrilib_os.h rename to subprojects/csri/lib/win32/csrilib_os.h diff --git a/vendor/csri/lib/win32/enumerate.c b/subprojects/csri/lib/win32/enumerate.c similarity index 100% rename from vendor/csri/lib/win32/enumerate.c rename to subprojects/csri/lib/win32/enumerate.c diff --git a/vendor/csri/lib/wrap.c b/subprojects/csri/lib/wrap.c similarity index 100% rename from vendor/csri/lib/wrap.c rename to subprojects/csri/lib/wrap.c diff --git a/vendor/csri/subhelp/Makefile.am b/subprojects/csri/subhelp/Makefile.am similarity index 100% rename from vendor/csri/subhelp/Makefile.am rename to subprojects/csri/subhelp/Makefile.am diff --git a/vendor/csri/subhelp/logging.c b/subprojects/csri/subhelp/logging.c similarity index 100% rename from vendor/csri/subhelp/logging.c rename to subprojects/csri/subhelp/logging.c diff --git a/vendor/csri/subhelp/posix/openfile.c b/subprojects/csri/subhelp/posix/openfile.c similarity index 100% rename from vendor/csri/subhelp/posix/openfile.c rename to subprojects/csri/subhelp/posix/openfile.c diff --git a/vendor/csri/subhelp/win32/openfile.c b/subprojects/csri/subhelp/win32/openfile.c similarity index 100% rename from vendor/csri/subhelp/win32/openfile.c rename to subprojects/csri/subhelp/win32/openfile.c From 608d0c9c15f14f5e9fdbc6462c1fee42792616a5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 13 Feb 2019 12:33:37 -0500 Subject: [PATCH 079/185] Move hunspell to subprojects --- {vendor => subprojects}/hunspell/ABOUT-NLS | 0 {vendor => subprojects}/hunspell/AUTHORS | 0 .../hunspell/AUTHORS.myspell | 0 {vendor => subprojects}/hunspell/BUGS | 0 {vendor => subprojects}/hunspell/COPYING | 0 {vendor => subprojects}/hunspell/COPYING.LGPL | 0 {vendor => subprojects}/hunspell/COPYING.MPL | 0 {vendor => subprojects}/hunspell/ChangeLog | 0 {vendor => subprojects}/hunspell/ChangeLog.O | 0 {vendor => subprojects}/hunspell/INSTALL | 0 {vendor => subprojects}/hunspell/NEWS | 0 {vendor => subprojects}/hunspell/README | 0 .../hunspell/README.myspell | 0 {vendor => subprojects}/hunspell/THANKS | 0 {vendor => subprojects}/hunspell/TODO | 0 .../hunspell/license.hunspell | 0 .../hunspell/license.myspell | 0 .../hunspell/src/hunspell/README | 0 .../hunspell/src/hunspell/affentry.cxx | 0 .../hunspell/src/hunspell/affentry.hxx | 0 .../hunspell/src/hunspell/affixmgr.cxx | 0 .../hunspell/src/hunspell/affixmgr.hxx | 0 .../hunspell/src/hunspell/atypes.hxx | 0 .../hunspell/src/hunspell/baseaffix.hxx | 0 .../hunspell/src/hunspell/csutil.cxx | 0 .../hunspell/src/hunspell/csutil.hxx | 0 .../hunspell/src/hunspell/dictmgr.cxx | 0 .../hunspell/src/hunspell/dictmgr.hxx | 0 .../hunspell/src/hunspell/filemgr.cxx | 0 .../hunspell/src/hunspell/filemgr.hxx | 0 .../hunspell/src/hunspell/hashmgr.cxx | 0 .../hunspell/src/hunspell/hashmgr.hxx | 0 .../hunspell/src/hunspell/htypes.hxx | 0 .../hunspell/src/hunspell/hunspell.cxx | 0 .../hunspell/src/hunspell/hunspell.dsp | 328 +++++++++--------- .../hunspell/src/hunspell/hunspell.h | 0 .../hunspell/src/hunspell/hunspell.hxx | 0 .../hunspell/src/hunspell/hunvisapi.h | 0 .../hunspell/src/hunspell/hunvisapi.h.in | 0 .../hunspell/src/hunspell/hunzip.cxx | 0 .../hunspell/src/hunspell/hunzip.hxx | 0 .../hunspell/src/hunspell/langnum.hxx | 0 .../hunspell/src/hunspell/license.hunspell | 0 .../hunspell/src/hunspell/license.myspell | 0 .../hunspell/src/hunspell/makefile.mk | 0 .../hunspell/src/hunspell/phonet.cxx | 0 .../hunspell/src/hunspell/phonet.hxx | 0 .../hunspell/src/hunspell/replist.cxx | 0 .../hunspell/src/hunspell/replist.hxx | 0 .../hunspell/src/hunspell/suggestmgr.cxx | 0 .../hunspell/src/hunspell/suggestmgr.hxx | 0 .../hunspell/src/hunspell/utf_info.cxx | 0 .../hunspell/src/hunspell/w_char.hxx | 0 .../hunspell/src/win_api/config.h | 0 54 files changed, 164 insertions(+), 164 deletions(-) rename {vendor => subprojects}/hunspell/ABOUT-NLS (100%) rename {vendor => subprojects}/hunspell/AUTHORS (100%) rename {vendor => subprojects}/hunspell/AUTHORS.myspell (100%) rename {vendor => subprojects}/hunspell/BUGS (100%) rename {vendor => subprojects}/hunspell/COPYING (100%) rename {vendor => subprojects}/hunspell/COPYING.LGPL (100%) rename {vendor => subprojects}/hunspell/COPYING.MPL (100%) rename {vendor => subprojects}/hunspell/ChangeLog (100%) rename {vendor => subprojects}/hunspell/ChangeLog.O (100%) rename {vendor => subprojects}/hunspell/INSTALL (100%) rename {vendor => subprojects}/hunspell/NEWS (100%) rename {vendor => subprojects}/hunspell/README (100%) rename {vendor => subprojects}/hunspell/README.myspell (100%) rename {vendor => subprojects}/hunspell/THANKS (100%) rename {vendor => subprojects}/hunspell/TODO (100%) rename {vendor => subprojects}/hunspell/license.hunspell (100%) rename {vendor => subprojects}/hunspell/license.myspell (100%) rename {vendor => subprojects}/hunspell/src/hunspell/README (100%) rename {vendor => subprojects}/hunspell/src/hunspell/affentry.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/affentry.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/affixmgr.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/affixmgr.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/atypes.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/baseaffix.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/csutil.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/csutil.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/dictmgr.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/dictmgr.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/filemgr.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/filemgr.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hashmgr.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hashmgr.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/htypes.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunspell.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunspell.dsp (95%) rename {vendor => subprojects}/hunspell/src/hunspell/hunspell.h (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunspell.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunvisapi.h (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunvisapi.h.in (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunzip.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/hunzip.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/langnum.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/license.hunspell (100%) rename {vendor => subprojects}/hunspell/src/hunspell/license.myspell (100%) rename {vendor => subprojects}/hunspell/src/hunspell/makefile.mk (100%) rename {vendor => subprojects}/hunspell/src/hunspell/phonet.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/phonet.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/replist.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/replist.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/suggestmgr.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/suggestmgr.hxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/utf_info.cxx (100%) rename {vendor => subprojects}/hunspell/src/hunspell/w_char.hxx (100%) rename {vendor => subprojects}/hunspell/src/win_api/config.h (100%) diff --git a/vendor/hunspell/ABOUT-NLS b/subprojects/hunspell/ABOUT-NLS similarity index 100% rename from vendor/hunspell/ABOUT-NLS rename to subprojects/hunspell/ABOUT-NLS diff --git a/vendor/hunspell/AUTHORS b/subprojects/hunspell/AUTHORS similarity index 100% rename from vendor/hunspell/AUTHORS rename to subprojects/hunspell/AUTHORS diff --git a/vendor/hunspell/AUTHORS.myspell b/subprojects/hunspell/AUTHORS.myspell similarity index 100% rename from vendor/hunspell/AUTHORS.myspell rename to subprojects/hunspell/AUTHORS.myspell diff --git a/vendor/hunspell/BUGS b/subprojects/hunspell/BUGS similarity index 100% rename from vendor/hunspell/BUGS rename to subprojects/hunspell/BUGS diff --git a/vendor/hunspell/COPYING b/subprojects/hunspell/COPYING similarity index 100% rename from vendor/hunspell/COPYING rename to subprojects/hunspell/COPYING diff --git a/vendor/hunspell/COPYING.LGPL b/subprojects/hunspell/COPYING.LGPL similarity index 100% rename from vendor/hunspell/COPYING.LGPL rename to subprojects/hunspell/COPYING.LGPL diff --git a/vendor/hunspell/COPYING.MPL b/subprojects/hunspell/COPYING.MPL similarity index 100% rename from vendor/hunspell/COPYING.MPL rename to subprojects/hunspell/COPYING.MPL diff --git a/vendor/hunspell/ChangeLog b/subprojects/hunspell/ChangeLog similarity index 100% rename from vendor/hunspell/ChangeLog rename to subprojects/hunspell/ChangeLog diff --git a/vendor/hunspell/ChangeLog.O b/subprojects/hunspell/ChangeLog.O similarity index 100% rename from vendor/hunspell/ChangeLog.O rename to subprojects/hunspell/ChangeLog.O diff --git a/vendor/hunspell/INSTALL b/subprojects/hunspell/INSTALL similarity index 100% rename from vendor/hunspell/INSTALL rename to subprojects/hunspell/INSTALL diff --git a/vendor/hunspell/NEWS b/subprojects/hunspell/NEWS similarity index 100% rename from vendor/hunspell/NEWS rename to subprojects/hunspell/NEWS diff --git a/vendor/hunspell/README b/subprojects/hunspell/README similarity index 100% rename from vendor/hunspell/README rename to subprojects/hunspell/README diff --git a/vendor/hunspell/README.myspell b/subprojects/hunspell/README.myspell similarity index 100% rename from vendor/hunspell/README.myspell rename to subprojects/hunspell/README.myspell diff --git a/vendor/hunspell/THANKS b/subprojects/hunspell/THANKS similarity index 100% rename from vendor/hunspell/THANKS rename to subprojects/hunspell/THANKS diff --git a/vendor/hunspell/TODO b/subprojects/hunspell/TODO similarity index 100% rename from vendor/hunspell/TODO rename to subprojects/hunspell/TODO diff --git a/vendor/hunspell/license.hunspell b/subprojects/hunspell/license.hunspell similarity index 100% rename from vendor/hunspell/license.hunspell rename to subprojects/hunspell/license.hunspell diff --git a/vendor/hunspell/license.myspell b/subprojects/hunspell/license.myspell similarity index 100% rename from vendor/hunspell/license.myspell rename to subprojects/hunspell/license.myspell diff --git a/vendor/hunspell/src/hunspell/README b/subprojects/hunspell/src/hunspell/README similarity index 100% rename from vendor/hunspell/src/hunspell/README rename to subprojects/hunspell/src/hunspell/README diff --git a/vendor/hunspell/src/hunspell/affentry.cxx b/subprojects/hunspell/src/hunspell/affentry.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/affentry.cxx rename to subprojects/hunspell/src/hunspell/affentry.cxx diff --git a/vendor/hunspell/src/hunspell/affentry.hxx b/subprojects/hunspell/src/hunspell/affentry.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/affentry.hxx rename to subprojects/hunspell/src/hunspell/affentry.hxx diff --git a/vendor/hunspell/src/hunspell/affixmgr.cxx b/subprojects/hunspell/src/hunspell/affixmgr.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/affixmgr.cxx rename to subprojects/hunspell/src/hunspell/affixmgr.cxx diff --git a/vendor/hunspell/src/hunspell/affixmgr.hxx b/subprojects/hunspell/src/hunspell/affixmgr.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/affixmgr.hxx rename to subprojects/hunspell/src/hunspell/affixmgr.hxx diff --git a/vendor/hunspell/src/hunspell/atypes.hxx b/subprojects/hunspell/src/hunspell/atypes.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/atypes.hxx rename to subprojects/hunspell/src/hunspell/atypes.hxx diff --git a/vendor/hunspell/src/hunspell/baseaffix.hxx b/subprojects/hunspell/src/hunspell/baseaffix.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/baseaffix.hxx rename to subprojects/hunspell/src/hunspell/baseaffix.hxx diff --git a/vendor/hunspell/src/hunspell/csutil.cxx b/subprojects/hunspell/src/hunspell/csutil.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/csutil.cxx rename to subprojects/hunspell/src/hunspell/csutil.cxx diff --git a/vendor/hunspell/src/hunspell/csutil.hxx b/subprojects/hunspell/src/hunspell/csutil.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/csutil.hxx rename to subprojects/hunspell/src/hunspell/csutil.hxx diff --git a/vendor/hunspell/src/hunspell/dictmgr.cxx b/subprojects/hunspell/src/hunspell/dictmgr.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/dictmgr.cxx rename to subprojects/hunspell/src/hunspell/dictmgr.cxx diff --git a/vendor/hunspell/src/hunspell/dictmgr.hxx b/subprojects/hunspell/src/hunspell/dictmgr.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/dictmgr.hxx rename to subprojects/hunspell/src/hunspell/dictmgr.hxx diff --git a/vendor/hunspell/src/hunspell/filemgr.cxx b/subprojects/hunspell/src/hunspell/filemgr.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/filemgr.cxx rename to subprojects/hunspell/src/hunspell/filemgr.cxx diff --git a/vendor/hunspell/src/hunspell/filemgr.hxx b/subprojects/hunspell/src/hunspell/filemgr.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/filemgr.hxx rename to subprojects/hunspell/src/hunspell/filemgr.hxx diff --git a/vendor/hunspell/src/hunspell/hashmgr.cxx b/subprojects/hunspell/src/hunspell/hashmgr.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/hashmgr.cxx rename to subprojects/hunspell/src/hunspell/hashmgr.cxx diff --git a/vendor/hunspell/src/hunspell/hashmgr.hxx b/subprojects/hunspell/src/hunspell/hashmgr.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/hashmgr.hxx rename to subprojects/hunspell/src/hunspell/hashmgr.hxx diff --git a/vendor/hunspell/src/hunspell/htypes.hxx b/subprojects/hunspell/src/hunspell/htypes.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/htypes.hxx rename to subprojects/hunspell/src/hunspell/htypes.hxx diff --git a/vendor/hunspell/src/hunspell/hunspell.cxx b/subprojects/hunspell/src/hunspell/hunspell.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/hunspell.cxx rename to subprojects/hunspell/src/hunspell/hunspell.cxx diff --git a/vendor/hunspell/src/hunspell/hunspell.dsp b/subprojects/hunspell/src/hunspell/hunspell.dsp similarity index 95% rename from vendor/hunspell/src/hunspell/hunspell.dsp rename to subprojects/hunspell/src/hunspell/hunspell.dsp index c18262174..05e072fba 100644 --- a/vendor/hunspell/src/hunspell/hunspell.dsp +++ b/subprojects/hunspell/src/hunspell/hunspell.dsp @@ -1,164 +1,164 @@ -# Microsoft Developer Studio Project File - Name="hunspell" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=hunspell - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "hunspell.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "hunspell.mak" CFG="hunspell - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "hunspell - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "hunspell - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "hunspell - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "W32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "W32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x40e /d "NDEBUG" -# ADD RSC /l 0x40e /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "hunspell - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "W32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "W32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x40e /d "_DEBUG" -# ADD RSC /l 0x40e /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "hunspell - Win32 Release" -# Name "hunspell - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\affentry.cxx -# End Source File -# Begin Source File - -SOURCE=.\affixmgr.cxx -# End Source File -# Begin Source File - -SOURCE=.\csutil.cxx -# End Source File -# Begin Source File - -SOURCE=.\dictmgr.cxx -# End Source File -# Begin Source File - -SOURCE=.\hashmgr.cxx -# End Source File -# Begin Source File - -SOURCE=.\hunspell.cxx -# End Source File -# Begin Source File - -SOURCE=.\suggestmgr.cxx -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\affentry.hxx -# End Source File -# Begin Source File - -SOURCE=.\affixmgr.hxx -# End Source File -# Begin Source File - -SOURCE=.\atypes.hxx -# End Source File -# Begin Source File - -SOURCE=.\baseaffix.hxx -# End Source File -# Begin Source File - -SOURCE=.\csutil.hxx -# End Source File -# Begin Source File - -SOURCE=.\dictmgr.hxx -# End Source File -# Begin Source File - -SOURCE=.\hashmgr.hxx -# End Source File -# Begin Source File - -SOURCE=.\htypes.hxx -# End Source File -# Begin Source File - -SOURCE=.\langnum.hxx -# End Source File -# Begin Source File - -SOURCE=.\hunspell.hxx -# End Source File -# Begin Source File - -SOURCE=.\suggestmgr.hxx -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="hunspell" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=hunspell - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "hunspell.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "hunspell.mak" CFG="hunspell - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "hunspell - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "hunspell - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "hunspell - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "W32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "W32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x40e /d "NDEBUG" +# ADD RSC /l 0x40e /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "hunspell - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "W32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "W32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x40e /d "_DEBUG" +# ADD RSC /l 0x40e /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "hunspell - Win32 Release" +# Name "hunspell - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\affentry.cxx +# End Source File +# Begin Source File + +SOURCE=.\affixmgr.cxx +# End Source File +# Begin Source File + +SOURCE=.\csutil.cxx +# End Source File +# Begin Source File + +SOURCE=.\dictmgr.cxx +# End Source File +# Begin Source File + +SOURCE=.\hashmgr.cxx +# End Source File +# Begin Source File + +SOURCE=.\hunspell.cxx +# End Source File +# Begin Source File + +SOURCE=.\suggestmgr.cxx +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\affentry.hxx +# End Source File +# Begin Source File + +SOURCE=.\affixmgr.hxx +# End Source File +# Begin Source File + +SOURCE=.\atypes.hxx +# End Source File +# Begin Source File + +SOURCE=.\baseaffix.hxx +# End Source File +# Begin Source File + +SOURCE=.\csutil.hxx +# End Source File +# Begin Source File + +SOURCE=.\dictmgr.hxx +# End Source File +# Begin Source File + +SOURCE=.\hashmgr.hxx +# End Source File +# Begin Source File + +SOURCE=.\htypes.hxx +# End Source File +# Begin Source File + +SOURCE=.\langnum.hxx +# End Source File +# Begin Source File + +SOURCE=.\hunspell.hxx +# End Source File +# Begin Source File + +SOURCE=.\suggestmgr.hxx +# End Source File +# End Group +# End Target +# End Project diff --git a/vendor/hunspell/src/hunspell/hunspell.h b/subprojects/hunspell/src/hunspell/hunspell.h similarity index 100% rename from vendor/hunspell/src/hunspell/hunspell.h rename to subprojects/hunspell/src/hunspell/hunspell.h diff --git a/vendor/hunspell/src/hunspell/hunspell.hxx b/subprojects/hunspell/src/hunspell/hunspell.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/hunspell.hxx rename to subprojects/hunspell/src/hunspell/hunspell.hxx diff --git a/vendor/hunspell/src/hunspell/hunvisapi.h b/subprojects/hunspell/src/hunspell/hunvisapi.h similarity index 100% rename from vendor/hunspell/src/hunspell/hunvisapi.h rename to subprojects/hunspell/src/hunspell/hunvisapi.h diff --git a/vendor/hunspell/src/hunspell/hunvisapi.h.in b/subprojects/hunspell/src/hunspell/hunvisapi.h.in similarity index 100% rename from vendor/hunspell/src/hunspell/hunvisapi.h.in rename to subprojects/hunspell/src/hunspell/hunvisapi.h.in diff --git a/vendor/hunspell/src/hunspell/hunzip.cxx b/subprojects/hunspell/src/hunspell/hunzip.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/hunzip.cxx rename to subprojects/hunspell/src/hunspell/hunzip.cxx diff --git a/vendor/hunspell/src/hunspell/hunzip.hxx b/subprojects/hunspell/src/hunspell/hunzip.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/hunzip.hxx rename to subprojects/hunspell/src/hunspell/hunzip.hxx diff --git a/vendor/hunspell/src/hunspell/langnum.hxx b/subprojects/hunspell/src/hunspell/langnum.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/langnum.hxx rename to subprojects/hunspell/src/hunspell/langnum.hxx diff --git a/vendor/hunspell/src/hunspell/license.hunspell b/subprojects/hunspell/src/hunspell/license.hunspell similarity index 100% rename from vendor/hunspell/src/hunspell/license.hunspell rename to subprojects/hunspell/src/hunspell/license.hunspell diff --git a/vendor/hunspell/src/hunspell/license.myspell b/subprojects/hunspell/src/hunspell/license.myspell similarity index 100% rename from vendor/hunspell/src/hunspell/license.myspell rename to subprojects/hunspell/src/hunspell/license.myspell diff --git a/vendor/hunspell/src/hunspell/makefile.mk b/subprojects/hunspell/src/hunspell/makefile.mk similarity index 100% rename from vendor/hunspell/src/hunspell/makefile.mk rename to subprojects/hunspell/src/hunspell/makefile.mk diff --git a/vendor/hunspell/src/hunspell/phonet.cxx b/subprojects/hunspell/src/hunspell/phonet.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/phonet.cxx rename to subprojects/hunspell/src/hunspell/phonet.cxx diff --git a/vendor/hunspell/src/hunspell/phonet.hxx b/subprojects/hunspell/src/hunspell/phonet.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/phonet.hxx rename to subprojects/hunspell/src/hunspell/phonet.hxx diff --git a/vendor/hunspell/src/hunspell/replist.cxx b/subprojects/hunspell/src/hunspell/replist.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/replist.cxx rename to subprojects/hunspell/src/hunspell/replist.cxx diff --git a/vendor/hunspell/src/hunspell/replist.hxx b/subprojects/hunspell/src/hunspell/replist.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/replist.hxx rename to subprojects/hunspell/src/hunspell/replist.hxx diff --git a/vendor/hunspell/src/hunspell/suggestmgr.cxx b/subprojects/hunspell/src/hunspell/suggestmgr.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/suggestmgr.cxx rename to subprojects/hunspell/src/hunspell/suggestmgr.cxx diff --git a/vendor/hunspell/src/hunspell/suggestmgr.hxx b/subprojects/hunspell/src/hunspell/suggestmgr.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/suggestmgr.hxx rename to subprojects/hunspell/src/hunspell/suggestmgr.hxx diff --git a/vendor/hunspell/src/hunspell/utf_info.cxx b/subprojects/hunspell/src/hunspell/utf_info.cxx similarity index 100% rename from vendor/hunspell/src/hunspell/utf_info.cxx rename to subprojects/hunspell/src/hunspell/utf_info.cxx diff --git a/vendor/hunspell/src/hunspell/w_char.hxx b/subprojects/hunspell/src/hunspell/w_char.hxx similarity index 100% rename from vendor/hunspell/src/hunspell/w_char.hxx rename to subprojects/hunspell/src/hunspell/w_char.hxx diff --git a/vendor/hunspell/src/win_api/config.h b/subprojects/hunspell/src/win_api/config.h similarity index 100% rename from vendor/hunspell/src/win_api/config.h rename to subprojects/hunspell/src/win_api/config.h From d3c709a2eafb1051b9327b05a24dd75659908298 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 13 Feb 2019 12:41:08 -0500 Subject: [PATCH 080/185] Move iconv to subprojects --- {vendor => subprojects}/iconv/AUTHORS | 0 {vendor => subprojects}/iconv/COPYING | 0 {vendor => subprojects}/iconv/ChangeLog | 0 {vendor => subprojects}/iconv/DEPENDENCIES | 0 {vendor => subprojects}/iconv/DESIGN | 0 {vendor => subprojects}/iconv/HACKING | 0 {vendor => subprojects}/iconv/NEWS | 0 {vendor => subprojects}/iconv/NOTES | 0 {vendor => subprojects}/iconv/PORTS | 0 {vendor => subprojects}/iconv/README | 0 {vendor => subprojects}/iconv/THANKS | 0 {vendor => subprojects}/iconv/include/iconv.h | 0 {vendor => subprojects}/iconv/include/libcharset.h | 0 {vendor => subprojects}/iconv/include/localcharset.h | 0 {vendor => subprojects}/iconv/include/stdbool.h | 0 {vendor => subprojects}/iconv/libcharset/config.h | 0 {vendor => subprojects}/iconv/libcharset/localcharset.c | 0 {vendor => subprojects}/iconv/libcharset/relocatable.c | 0 {vendor => subprojects}/iconv/libcharset/relocatable.h | 0 {vendor => subprojects}/iconv/libiconv/aliases.h | 0 {vendor => subprojects}/iconv/libiconv/aliases2.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_aix.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_aix_sysaix.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_dos.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_extra.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_osf1.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_osf1_sysosf1.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_sysaix.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_syshpux.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_sysosf1.h | 0 {vendor => subprojects}/iconv/libiconv/aliases_syssolaris.h | 0 {vendor => subprojects}/iconv/libiconv/armscii_8.h | 0 {vendor => subprojects}/iconv/libiconv/ascii.h | 0 {vendor => subprojects}/iconv/libiconv/atarist.h | 0 {vendor => subprojects}/iconv/libiconv/big5.h | 0 {vendor => subprojects}/iconv/libiconv/big5_2003.h | 0 {vendor => subprojects}/iconv/libiconv/big5hkscs1999.h | 0 {vendor => subprojects}/iconv/libiconv/big5hkscs2001.h | 0 {vendor => subprojects}/iconv/libiconv/big5hkscs2004.h | 0 {vendor => subprojects}/iconv/libiconv/c99.h | 0 {vendor => subprojects}/iconv/libiconv/canonical.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_aix.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_aix_sysaix.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_dos.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_extra.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_local.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_local_sysaix.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_local_syshpux.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_local_sysosf1.h | 0 .../iconv/libiconv/canonical_local_syssolaris.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_osf1.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_osf1_sysosf1.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_sysaix.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_syshpux.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_sysosf1.h | 0 {vendor => subprojects}/iconv/libiconv/canonical_syssolaris.h | 0 {vendor => subprojects}/iconv/libiconv/ces_big5.h | 0 {vendor => subprojects}/iconv/libiconv/ces_gbk.h | 0 {vendor => subprojects}/iconv/libiconv/charset.alias | 0 {vendor => subprojects}/iconv/libiconv/cjk_variants.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_1.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_15.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_2.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_3.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_4.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_4a.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_4b.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_5.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_6.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_7.h | 0 {vendor => subprojects}/iconv/libiconv/cns11643_inv.h | 0 {vendor => subprojects}/iconv/libiconv/config.h | 0 {vendor => subprojects}/iconv/libiconv/converters.h | 0 {vendor => subprojects}/iconv/libiconv/cp1046.h | 0 {vendor => subprojects}/iconv/libiconv/cp1124.h | 0 {vendor => subprojects}/iconv/libiconv/cp1125.h | 0 {vendor => subprojects}/iconv/libiconv/cp1129.h | 0 {vendor => subprojects}/iconv/libiconv/cp1131.h | 0 {vendor => subprojects}/iconv/libiconv/cp1133.h | 0 {vendor => subprojects}/iconv/libiconv/cp1161.h | 0 {vendor => subprojects}/iconv/libiconv/cp1162.h | 0 {vendor => subprojects}/iconv/libiconv/cp1163.h | 0 {vendor => subprojects}/iconv/libiconv/cp1250.h | 0 {vendor => subprojects}/iconv/libiconv/cp1251.h | 0 {vendor => subprojects}/iconv/libiconv/cp1252.h | 0 {vendor => subprojects}/iconv/libiconv/cp1253.h | 0 {vendor => subprojects}/iconv/libiconv/cp1254.h | 0 {vendor => subprojects}/iconv/libiconv/cp1255.h | 0 {vendor => subprojects}/iconv/libiconv/cp1256.h | 0 {vendor => subprojects}/iconv/libiconv/cp1257.h | 0 {vendor => subprojects}/iconv/libiconv/cp1258.h | 0 {vendor => subprojects}/iconv/libiconv/cp437.h | 0 {vendor => subprojects}/iconv/libiconv/cp737.h | 0 {vendor => subprojects}/iconv/libiconv/cp775.h | 0 {vendor => subprojects}/iconv/libiconv/cp850.h | 0 {vendor => subprojects}/iconv/libiconv/cp852.h | 0 {vendor => subprojects}/iconv/libiconv/cp853.h | 0 {vendor => subprojects}/iconv/libiconv/cp855.h | 0 {vendor => subprojects}/iconv/libiconv/cp856.h | 0 {vendor => subprojects}/iconv/libiconv/cp857.h | 0 {vendor => subprojects}/iconv/libiconv/cp858.h | 0 {vendor => subprojects}/iconv/libiconv/cp860.h | 0 {vendor => subprojects}/iconv/libiconv/cp861.h | 0 {vendor => subprojects}/iconv/libiconv/cp862.h | 0 {vendor => subprojects}/iconv/libiconv/cp863.h | 0 {vendor => subprojects}/iconv/libiconv/cp864.h | 0 {vendor => subprojects}/iconv/libiconv/cp865.h | 0 {vendor => subprojects}/iconv/libiconv/cp866.h | 0 {vendor => subprojects}/iconv/libiconv/cp869.h | 0 {vendor => subprojects}/iconv/libiconv/cp874.h | 0 {vendor => subprojects}/iconv/libiconv/cp922.h | 0 {vendor => subprojects}/iconv/libiconv/cp932.h | 0 {vendor => subprojects}/iconv/libiconv/cp932ext.h | 0 {vendor => subprojects}/iconv/libiconv/cp936.h | 0 {vendor => subprojects}/iconv/libiconv/cp936ext.h | 0 {vendor => subprojects}/iconv/libiconv/cp943.h | 0 {vendor => subprojects}/iconv/libiconv/cp949.h | 0 {vendor => subprojects}/iconv/libiconv/cp950.h | 0 {vendor => subprojects}/iconv/libiconv/cp950ext.h | 0 {vendor => subprojects}/iconv/libiconv/dec_hanyu.h | 0 {vendor => subprojects}/iconv/libiconv/dec_kanji.h | 0 {vendor => subprojects}/iconv/libiconv/encodings.def | 0 {vendor => subprojects}/iconv/libiconv/encodings_aix.def | 0 {vendor => subprojects}/iconv/libiconv/encodings_dos.def | 0 {vendor => subprojects}/iconv/libiconv/encodings_extra.def | 0 {vendor => subprojects}/iconv/libiconv/encodings_local.def | 0 {vendor => subprojects}/iconv/libiconv/encodings_osf1.def | 0 {vendor => subprojects}/iconv/libiconv/euc_cn.h | 0 {vendor => subprojects}/iconv/libiconv/euc_jisx0213.h | 0 {vendor => subprojects}/iconv/libiconv/euc_jp.h | 0 {vendor => subprojects}/iconv/libiconv/euc_kr.h | 0 {vendor => subprojects}/iconv/libiconv/euc_tw.h | 0 {vendor => subprojects}/iconv/libiconv/flags.h | 0 {vendor => subprojects}/iconv/libiconv/flushwc.h | 0 {vendor => subprojects}/iconv/libiconv/gb12345.h | 0 {vendor => subprojects}/iconv/libiconv/gb12345ext.h | 0 {vendor => subprojects}/iconv/libiconv/gb18030.h | 0 {vendor => subprojects}/iconv/libiconv/gb18030ext.h | 0 {vendor => subprojects}/iconv/libiconv/gb18030uni.h | 0 {vendor => subprojects}/iconv/libiconv/gb2312.h | 0 {vendor => subprojects}/iconv/libiconv/gbk.h | 0 {vendor => subprojects}/iconv/libiconv/gbkext1.h | 0 {vendor => subprojects}/iconv/libiconv/gbkext2.h | 0 {vendor => subprojects}/iconv/libiconv/gbkext_inv.h | 0 {vendor => subprojects}/iconv/libiconv/genaliases.c | 0 {vendor => subprojects}/iconv/libiconv/genaliases2.c | 0 {vendor => subprojects}/iconv/libiconv/genflags.c | 0 {vendor => subprojects}/iconv/libiconv/gentranslit.c | 0 {vendor => subprojects}/iconv/libiconv/georgian_academy.h | 0 {vendor => subprojects}/iconv/libiconv/georgian_ps.h | 0 {vendor => subprojects}/iconv/libiconv/hkscs1999.h | 0 {vendor => subprojects}/iconv/libiconv/hkscs2001.h | 0 {vendor => subprojects}/iconv/libiconv/hkscs2004.h | 0 {vendor => subprojects}/iconv/libiconv/hp_roman8.h | 0 {vendor => subprojects}/iconv/libiconv/hz.h | 0 {vendor => subprojects}/iconv/libiconv/iconv.c | 0 {vendor => subprojects}/iconv/libiconv/iconv_open1.h | 0 {vendor => subprojects}/iconv/libiconv/iconv_open2.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_cn.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_cnext.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_jp.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_jp1.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_jp2.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_jp3.h | 0 {vendor => subprojects}/iconv/libiconv/iso2022_kr.h | 0 {vendor => subprojects}/iconv/libiconv/iso646_cn.h | 0 {vendor => subprojects}/iconv/libiconv/iso646_jp.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_1.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_10.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_11.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_13.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_14.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_15.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_16.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_2.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_3.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_4.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_5.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_6.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_7.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_8.h | 0 {vendor => subprojects}/iconv/libiconv/iso8859_9.h | 0 {vendor => subprojects}/iconv/libiconv/isoir165.h | 0 {vendor => subprojects}/iconv/libiconv/isoir165ext.h | 0 {vendor => subprojects}/iconv/libiconv/java.h | 0 {vendor => subprojects}/iconv/libiconv/jisx0201.h | 0 {vendor => subprojects}/iconv/libiconv/jisx0208.h | 0 {vendor => subprojects}/iconv/libiconv/jisx0212.h | 0 {vendor => subprojects}/iconv/libiconv/jisx0213.h | 0 {vendor => subprojects}/iconv/libiconv/johab.h | 0 {vendor => subprojects}/iconv/libiconv/johab_hangul.h | 0 {vendor => subprojects}/iconv/libiconv/koi8_r.h | 0 {vendor => subprojects}/iconv/libiconv/koi8_ru.h | 0 {vendor => subprojects}/iconv/libiconv/koi8_t.h | 0 {vendor => subprojects}/iconv/libiconv/koi8_u.h | 0 {vendor => subprojects}/iconv/libiconv/ksc5601.h | 0 {vendor => subprojects}/iconv/libiconv/libcharset.h | 0 {vendor => subprojects}/iconv/libiconv/localcharset.h | 0 {vendor => subprojects}/iconv/libiconv/loop_unicode.h | 0 {vendor => subprojects}/iconv/libiconv/loop_wchar.h | 0 {vendor => subprojects}/iconv/libiconv/loops.h | 0 {vendor => subprojects}/iconv/libiconv/mac_arabic.h | 0 {vendor => subprojects}/iconv/libiconv/mac_centraleurope.h | 0 {vendor => subprojects}/iconv/libiconv/mac_croatian.h | 0 {vendor => subprojects}/iconv/libiconv/mac_cyrillic.h | 0 {vendor => subprojects}/iconv/libiconv/mac_greek.h | 0 {vendor => subprojects}/iconv/libiconv/mac_hebrew.h | 0 {vendor => subprojects}/iconv/libiconv/mac_iceland.h | 0 {vendor => subprojects}/iconv/libiconv/mac_roman.h | 0 {vendor => subprojects}/iconv/libiconv/mac_romania.h | 0 {vendor => subprojects}/iconv/libiconv/mac_thai.h | 0 {vendor => subprojects}/iconv/libiconv/mac_turkish.h | 0 {vendor => subprojects}/iconv/libiconv/mac_ukraine.h | 0 {vendor => subprojects}/iconv/libiconv/mulelao.h | 0 {vendor => subprojects}/iconv/libiconv/nextstep.h | 0 {vendor => subprojects}/iconv/libiconv/pt154.h | 0 {vendor => subprojects}/iconv/libiconv/relocatable.c | 0 {vendor => subprojects}/iconv/libiconv/relocatable.h | 0 {vendor => subprojects}/iconv/libiconv/riscos1.h | 0 {vendor => subprojects}/iconv/libiconv/rk1048.h | 0 {vendor => subprojects}/iconv/libiconv/shift_jisx0213.h | 0 {vendor => subprojects}/iconv/libiconv/sjis.h | 0 {vendor => subprojects}/iconv/libiconv/tcvn.h | 0 {vendor => subprojects}/iconv/libiconv/tds565.h | 0 {vendor => subprojects}/iconv/libiconv/tis620.h | 0 {vendor => subprojects}/iconv/libiconv/translit.h | 0 {vendor => subprojects}/iconv/libiconv/ucs2.h | 0 {vendor => subprojects}/iconv/libiconv/ucs2be.h | 0 {vendor => subprojects}/iconv/libiconv/ucs2internal.h | 0 {vendor => subprojects}/iconv/libiconv/ucs2le.h | 0 {vendor => subprojects}/iconv/libiconv/ucs2swapped.h | 0 {vendor => subprojects}/iconv/libiconv/ucs4.h | 0 {vendor => subprojects}/iconv/libiconv/ucs4be.h | 0 {vendor => subprojects}/iconv/libiconv/ucs4internal.h | 0 {vendor => subprojects}/iconv/libiconv/ucs4le.h | 0 {vendor => subprojects}/iconv/libiconv/ucs4swapped.h | 0 {vendor => subprojects}/iconv/libiconv/uhc_1.h | 0 {vendor => subprojects}/iconv/libiconv/uhc_2.h | 0 {vendor => subprojects}/iconv/libiconv/utf16.h | 0 {vendor => subprojects}/iconv/libiconv/utf16be.h | 0 {vendor => subprojects}/iconv/libiconv/utf16le.h | 0 {vendor => subprojects}/iconv/libiconv/utf32.h | 0 {vendor => subprojects}/iconv/libiconv/utf32be.h | 0 {vendor => subprojects}/iconv/libiconv/utf32le.h | 0 {vendor => subprojects}/iconv/libiconv/utf7.h | 0 {vendor => subprojects}/iconv/libiconv/utf8.h | 0 {vendor => subprojects}/iconv/libiconv/vietcomb.h | 0 {vendor => subprojects}/iconv/libiconv/viscii.h | 0 249 files changed, 0 insertions(+), 0 deletions(-) rename {vendor => subprojects}/iconv/AUTHORS (100%) rename {vendor => subprojects}/iconv/COPYING (100%) rename {vendor => subprojects}/iconv/ChangeLog (100%) rename {vendor => subprojects}/iconv/DEPENDENCIES (100%) rename {vendor => subprojects}/iconv/DESIGN (100%) rename {vendor => subprojects}/iconv/HACKING (100%) rename {vendor => subprojects}/iconv/NEWS (100%) rename {vendor => subprojects}/iconv/NOTES (100%) rename {vendor => subprojects}/iconv/PORTS (100%) rename {vendor => subprojects}/iconv/README (100%) rename {vendor => subprojects}/iconv/THANKS (100%) rename {vendor => subprojects}/iconv/include/iconv.h (100%) rename {vendor => subprojects}/iconv/include/libcharset.h (100%) rename {vendor => subprojects}/iconv/include/localcharset.h (100%) rename {vendor => subprojects}/iconv/include/stdbool.h (100%) rename {vendor => subprojects}/iconv/libcharset/config.h (100%) rename {vendor => subprojects}/iconv/libcharset/localcharset.c (100%) rename {vendor => subprojects}/iconv/libcharset/relocatable.c (100%) rename {vendor => subprojects}/iconv/libcharset/relocatable.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases2.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_aix.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_aix_sysaix.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_dos.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_extra.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_osf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_osf1_sysosf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_sysaix.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_syshpux.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_sysosf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/aliases_syssolaris.h (100%) rename {vendor => subprojects}/iconv/libiconv/armscii_8.h (100%) rename {vendor => subprojects}/iconv/libiconv/ascii.h (100%) rename {vendor => subprojects}/iconv/libiconv/atarist.h (100%) rename {vendor => subprojects}/iconv/libiconv/big5.h (100%) rename {vendor => subprojects}/iconv/libiconv/big5_2003.h (100%) rename {vendor => subprojects}/iconv/libiconv/big5hkscs1999.h (100%) rename {vendor => subprojects}/iconv/libiconv/big5hkscs2001.h (100%) rename {vendor => subprojects}/iconv/libiconv/big5hkscs2004.h (100%) rename {vendor => subprojects}/iconv/libiconv/c99.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_aix.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_aix_sysaix.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_dos.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_extra.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_local.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_local_sysaix.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_local_syshpux.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_local_sysosf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_local_syssolaris.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_osf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_osf1_sysosf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_sysaix.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_syshpux.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_sysosf1.h (100%) rename {vendor => subprojects}/iconv/libiconv/canonical_syssolaris.h (100%) rename {vendor => subprojects}/iconv/libiconv/ces_big5.h (100%) rename {vendor => subprojects}/iconv/libiconv/ces_gbk.h (100%) rename {vendor => subprojects}/iconv/libiconv/charset.alias (100%) rename {vendor => subprojects}/iconv/libiconv/cjk_variants.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_1.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_15.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_2.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_3.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_4.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_4a.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_4b.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_5.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_6.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_7.h (100%) rename {vendor => subprojects}/iconv/libiconv/cns11643_inv.h (100%) rename {vendor => subprojects}/iconv/libiconv/config.h (100%) rename {vendor => subprojects}/iconv/libiconv/converters.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1046.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1124.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1125.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1129.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1131.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1133.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1161.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1162.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1163.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1250.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1251.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1252.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1253.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1254.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1255.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1256.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1257.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp1258.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp437.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp737.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp775.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp850.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp852.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp853.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp855.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp856.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp857.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp858.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp860.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp861.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp862.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp863.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp864.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp865.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp866.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp869.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp874.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp922.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp932.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp932ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp936.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp936ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp943.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp949.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp950.h (100%) rename {vendor => subprojects}/iconv/libiconv/cp950ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/dec_hanyu.h (100%) rename {vendor => subprojects}/iconv/libiconv/dec_kanji.h (100%) rename {vendor => subprojects}/iconv/libiconv/encodings.def (100%) rename {vendor => subprojects}/iconv/libiconv/encodings_aix.def (100%) rename {vendor => subprojects}/iconv/libiconv/encodings_dos.def (100%) rename {vendor => subprojects}/iconv/libiconv/encodings_extra.def (100%) rename {vendor => subprojects}/iconv/libiconv/encodings_local.def (100%) rename {vendor => subprojects}/iconv/libiconv/encodings_osf1.def (100%) rename {vendor => subprojects}/iconv/libiconv/euc_cn.h (100%) rename {vendor => subprojects}/iconv/libiconv/euc_jisx0213.h (100%) rename {vendor => subprojects}/iconv/libiconv/euc_jp.h (100%) rename {vendor => subprojects}/iconv/libiconv/euc_kr.h (100%) rename {vendor => subprojects}/iconv/libiconv/euc_tw.h (100%) rename {vendor => subprojects}/iconv/libiconv/flags.h (100%) rename {vendor => subprojects}/iconv/libiconv/flushwc.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb12345.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb12345ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb18030.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb18030ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb18030uni.h (100%) rename {vendor => subprojects}/iconv/libiconv/gb2312.h (100%) rename {vendor => subprojects}/iconv/libiconv/gbk.h (100%) rename {vendor => subprojects}/iconv/libiconv/gbkext1.h (100%) rename {vendor => subprojects}/iconv/libiconv/gbkext2.h (100%) rename {vendor => subprojects}/iconv/libiconv/gbkext_inv.h (100%) rename {vendor => subprojects}/iconv/libiconv/genaliases.c (100%) rename {vendor => subprojects}/iconv/libiconv/genaliases2.c (100%) rename {vendor => subprojects}/iconv/libiconv/genflags.c (100%) rename {vendor => subprojects}/iconv/libiconv/gentranslit.c (100%) rename {vendor => subprojects}/iconv/libiconv/georgian_academy.h (100%) rename {vendor => subprojects}/iconv/libiconv/georgian_ps.h (100%) rename {vendor => subprojects}/iconv/libiconv/hkscs1999.h (100%) rename {vendor => subprojects}/iconv/libiconv/hkscs2001.h (100%) rename {vendor => subprojects}/iconv/libiconv/hkscs2004.h (100%) rename {vendor => subprojects}/iconv/libiconv/hp_roman8.h (100%) rename {vendor => subprojects}/iconv/libiconv/hz.h (100%) rename {vendor => subprojects}/iconv/libiconv/iconv.c (100%) rename {vendor => subprojects}/iconv/libiconv/iconv_open1.h (100%) rename {vendor => subprojects}/iconv/libiconv/iconv_open2.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_cn.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_cnext.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_jp.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_jp1.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_jp2.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_jp3.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso2022_kr.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso646_cn.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso646_jp.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_1.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_10.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_11.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_13.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_14.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_15.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_16.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_2.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_3.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_4.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_5.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_6.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_7.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_8.h (100%) rename {vendor => subprojects}/iconv/libiconv/iso8859_9.h (100%) rename {vendor => subprojects}/iconv/libiconv/isoir165.h (100%) rename {vendor => subprojects}/iconv/libiconv/isoir165ext.h (100%) rename {vendor => subprojects}/iconv/libiconv/java.h (100%) rename {vendor => subprojects}/iconv/libiconv/jisx0201.h (100%) rename {vendor => subprojects}/iconv/libiconv/jisx0208.h (100%) rename {vendor => subprojects}/iconv/libiconv/jisx0212.h (100%) rename {vendor => subprojects}/iconv/libiconv/jisx0213.h (100%) rename {vendor => subprojects}/iconv/libiconv/johab.h (100%) rename {vendor => subprojects}/iconv/libiconv/johab_hangul.h (100%) rename {vendor => subprojects}/iconv/libiconv/koi8_r.h (100%) rename {vendor => subprojects}/iconv/libiconv/koi8_ru.h (100%) rename {vendor => subprojects}/iconv/libiconv/koi8_t.h (100%) rename {vendor => subprojects}/iconv/libiconv/koi8_u.h (100%) rename {vendor => subprojects}/iconv/libiconv/ksc5601.h (100%) rename {vendor => subprojects}/iconv/libiconv/libcharset.h (100%) rename {vendor => subprojects}/iconv/libiconv/localcharset.h (100%) rename {vendor => subprojects}/iconv/libiconv/loop_unicode.h (100%) rename {vendor => subprojects}/iconv/libiconv/loop_wchar.h (100%) rename {vendor => subprojects}/iconv/libiconv/loops.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_arabic.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_centraleurope.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_croatian.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_cyrillic.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_greek.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_hebrew.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_iceland.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_roman.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_romania.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_thai.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_turkish.h (100%) rename {vendor => subprojects}/iconv/libiconv/mac_ukraine.h (100%) rename {vendor => subprojects}/iconv/libiconv/mulelao.h (100%) rename {vendor => subprojects}/iconv/libiconv/nextstep.h (100%) rename {vendor => subprojects}/iconv/libiconv/pt154.h (100%) rename {vendor => subprojects}/iconv/libiconv/relocatable.c (100%) rename {vendor => subprojects}/iconv/libiconv/relocatable.h (100%) rename {vendor => subprojects}/iconv/libiconv/riscos1.h (100%) rename {vendor => subprojects}/iconv/libiconv/rk1048.h (100%) rename {vendor => subprojects}/iconv/libiconv/shift_jisx0213.h (100%) rename {vendor => subprojects}/iconv/libiconv/sjis.h (100%) rename {vendor => subprojects}/iconv/libiconv/tcvn.h (100%) rename {vendor => subprojects}/iconv/libiconv/tds565.h (100%) rename {vendor => subprojects}/iconv/libiconv/tis620.h (100%) rename {vendor => subprojects}/iconv/libiconv/translit.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs2.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs2be.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs2internal.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs2le.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs2swapped.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs4.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs4be.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs4internal.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs4le.h (100%) rename {vendor => subprojects}/iconv/libiconv/ucs4swapped.h (100%) rename {vendor => subprojects}/iconv/libiconv/uhc_1.h (100%) rename {vendor => subprojects}/iconv/libiconv/uhc_2.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf16.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf16be.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf16le.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf32.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf32be.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf32le.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf7.h (100%) rename {vendor => subprojects}/iconv/libiconv/utf8.h (100%) rename {vendor => subprojects}/iconv/libiconv/vietcomb.h (100%) rename {vendor => subprojects}/iconv/libiconv/viscii.h (100%) diff --git a/vendor/iconv/AUTHORS b/subprojects/iconv/AUTHORS similarity index 100% rename from vendor/iconv/AUTHORS rename to subprojects/iconv/AUTHORS diff --git a/vendor/iconv/COPYING b/subprojects/iconv/COPYING similarity index 100% rename from vendor/iconv/COPYING rename to subprojects/iconv/COPYING diff --git a/vendor/iconv/ChangeLog b/subprojects/iconv/ChangeLog similarity index 100% rename from vendor/iconv/ChangeLog rename to subprojects/iconv/ChangeLog diff --git a/vendor/iconv/DEPENDENCIES b/subprojects/iconv/DEPENDENCIES similarity index 100% rename from vendor/iconv/DEPENDENCIES rename to subprojects/iconv/DEPENDENCIES diff --git a/vendor/iconv/DESIGN b/subprojects/iconv/DESIGN similarity index 100% rename from vendor/iconv/DESIGN rename to subprojects/iconv/DESIGN diff --git a/vendor/iconv/HACKING b/subprojects/iconv/HACKING similarity index 100% rename from vendor/iconv/HACKING rename to subprojects/iconv/HACKING diff --git a/vendor/iconv/NEWS b/subprojects/iconv/NEWS similarity index 100% rename from vendor/iconv/NEWS rename to subprojects/iconv/NEWS diff --git a/vendor/iconv/NOTES b/subprojects/iconv/NOTES similarity index 100% rename from vendor/iconv/NOTES rename to subprojects/iconv/NOTES diff --git a/vendor/iconv/PORTS b/subprojects/iconv/PORTS similarity index 100% rename from vendor/iconv/PORTS rename to subprojects/iconv/PORTS diff --git a/vendor/iconv/README b/subprojects/iconv/README similarity index 100% rename from vendor/iconv/README rename to subprojects/iconv/README diff --git a/vendor/iconv/THANKS b/subprojects/iconv/THANKS similarity index 100% rename from vendor/iconv/THANKS rename to subprojects/iconv/THANKS diff --git a/vendor/iconv/include/iconv.h b/subprojects/iconv/include/iconv.h similarity index 100% rename from vendor/iconv/include/iconv.h rename to subprojects/iconv/include/iconv.h diff --git a/vendor/iconv/include/libcharset.h b/subprojects/iconv/include/libcharset.h similarity index 100% rename from vendor/iconv/include/libcharset.h rename to subprojects/iconv/include/libcharset.h diff --git a/vendor/iconv/include/localcharset.h b/subprojects/iconv/include/localcharset.h similarity index 100% rename from vendor/iconv/include/localcharset.h rename to subprojects/iconv/include/localcharset.h diff --git a/vendor/iconv/include/stdbool.h b/subprojects/iconv/include/stdbool.h similarity index 100% rename from vendor/iconv/include/stdbool.h rename to subprojects/iconv/include/stdbool.h diff --git a/vendor/iconv/libcharset/config.h b/subprojects/iconv/libcharset/config.h similarity index 100% rename from vendor/iconv/libcharset/config.h rename to subprojects/iconv/libcharset/config.h diff --git a/vendor/iconv/libcharset/localcharset.c b/subprojects/iconv/libcharset/localcharset.c similarity index 100% rename from vendor/iconv/libcharset/localcharset.c rename to subprojects/iconv/libcharset/localcharset.c diff --git a/vendor/iconv/libcharset/relocatable.c b/subprojects/iconv/libcharset/relocatable.c similarity index 100% rename from vendor/iconv/libcharset/relocatable.c rename to subprojects/iconv/libcharset/relocatable.c diff --git a/vendor/iconv/libcharset/relocatable.h b/subprojects/iconv/libcharset/relocatable.h similarity index 100% rename from vendor/iconv/libcharset/relocatable.h rename to subprojects/iconv/libcharset/relocatable.h diff --git a/vendor/iconv/libiconv/aliases.h b/subprojects/iconv/libiconv/aliases.h similarity index 100% rename from vendor/iconv/libiconv/aliases.h rename to subprojects/iconv/libiconv/aliases.h diff --git a/vendor/iconv/libiconv/aliases2.h b/subprojects/iconv/libiconv/aliases2.h similarity index 100% rename from vendor/iconv/libiconv/aliases2.h rename to subprojects/iconv/libiconv/aliases2.h diff --git a/vendor/iconv/libiconv/aliases_aix.h b/subprojects/iconv/libiconv/aliases_aix.h similarity index 100% rename from vendor/iconv/libiconv/aliases_aix.h rename to subprojects/iconv/libiconv/aliases_aix.h diff --git a/vendor/iconv/libiconv/aliases_aix_sysaix.h b/subprojects/iconv/libiconv/aliases_aix_sysaix.h similarity index 100% rename from vendor/iconv/libiconv/aliases_aix_sysaix.h rename to subprojects/iconv/libiconv/aliases_aix_sysaix.h diff --git a/vendor/iconv/libiconv/aliases_dos.h b/subprojects/iconv/libiconv/aliases_dos.h similarity index 100% rename from vendor/iconv/libiconv/aliases_dos.h rename to subprojects/iconv/libiconv/aliases_dos.h diff --git a/vendor/iconv/libiconv/aliases_extra.h b/subprojects/iconv/libiconv/aliases_extra.h similarity index 100% rename from vendor/iconv/libiconv/aliases_extra.h rename to subprojects/iconv/libiconv/aliases_extra.h diff --git a/vendor/iconv/libiconv/aliases_osf1.h b/subprojects/iconv/libiconv/aliases_osf1.h similarity index 100% rename from vendor/iconv/libiconv/aliases_osf1.h rename to subprojects/iconv/libiconv/aliases_osf1.h diff --git a/vendor/iconv/libiconv/aliases_osf1_sysosf1.h b/subprojects/iconv/libiconv/aliases_osf1_sysosf1.h similarity index 100% rename from vendor/iconv/libiconv/aliases_osf1_sysosf1.h rename to subprojects/iconv/libiconv/aliases_osf1_sysosf1.h diff --git a/vendor/iconv/libiconv/aliases_sysaix.h b/subprojects/iconv/libiconv/aliases_sysaix.h similarity index 100% rename from vendor/iconv/libiconv/aliases_sysaix.h rename to subprojects/iconv/libiconv/aliases_sysaix.h diff --git a/vendor/iconv/libiconv/aliases_syshpux.h b/subprojects/iconv/libiconv/aliases_syshpux.h similarity index 100% rename from vendor/iconv/libiconv/aliases_syshpux.h rename to subprojects/iconv/libiconv/aliases_syshpux.h diff --git a/vendor/iconv/libiconv/aliases_sysosf1.h b/subprojects/iconv/libiconv/aliases_sysosf1.h similarity index 100% rename from vendor/iconv/libiconv/aliases_sysosf1.h rename to subprojects/iconv/libiconv/aliases_sysosf1.h diff --git a/vendor/iconv/libiconv/aliases_syssolaris.h b/subprojects/iconv/libiconv/aliases_syssolaris.h similarity index 100% rename from vendor/iconv/libiconv/aliases_syssolaris.h rename to subprojects/iconv/libiconv/aliases_syssolaris.h diff --git a/vendor/iconv/libiconv/armscii_8.h b/subprojects/iconv/libiconv/armscii_8.h similarity index 100% rename from vendor/iconv/libiconv/armscii_8.h rename to subprojects/iconv/libiconv/armscii_8.h diff --git a/vendor/iconv/libiconv/ascii.h b/subprojects/iconv/libiconv/ascii.h similarity index 100% rename from vendor/iconv/libiconv/ascii.h rename to subprojects/iconv/libiconv/ascii.h diff --git a/vendor/iconv/libiconv/atarist.h b/subprojects/iconv/libiconv/atarist.h similarity index 100% rename from vendor/iconv/libiconv/atarist.h rename to subprojects/iconv/libiconv/atarist.h diff --git a/vendor/iconv/libiconv/big5.h b/subprojects/iconv/libiconv/big5.h similarity index 100% rename from vendor/iconv/libiconv/big5.h rename to subprojects/iconv/libiconv/big5.h diff --git a/vendor/iconv/libiconv/big5_2003.h b/subprojects/iconv/libiconv/big5_2003.h similarity index 100% rename from vendor/iconv/libiconv/big5_2003.h rename to subprojects/iconv/libiconv/big5_2003.h diff --git a/vendor/iconv/libiconv/big5hkscs1999.h b/subprojects/iconv/libiconv/big5hkscs1999.h similarity index 100% rename from vendor/iconv/libiconv/big5hkscs1999.h rename to subprojects/iconv/libiconv/big5hkscs1999.h diff --git a/vendor/iconv/libiconv/big5hkscs2001.h b/subprojects/iconv/libiconv/big5hkscs2001.h similarity index 100% rename from vendor/iconv/libiconv/big5hkscs2001.h rename to subprojects/iconv/libiconv/big5hkscs2001.h diff --git a/vendor/iconv/libiconv/big5hkscs2004.h b/subprojects/iconv/libiconv/big5hkscs2004.h similarity index 100% rename from vendor/iconv/libiconv/big5hkscs2004.h rename to subprojects/iconv/libiconv/big5hkscs2004.h diff --git a/vendor/iconv/libiconv/c99.h b/subprojects/iconv/libiconv/c99.h similarity index 100% rename from vendor/iconv/libiconv/c99.h rename to subprojects/iconv/libiconv/c99.h diff --git a/vendor/iconv/libiconv/canonical.h b/subprojects/iconv/libiconv/canonical.h similarity index 100% rename from vendor/iconv/libiconv/canonical.h rename to subprojects/iconv/libiconv/canonical.h diff --git a/vendor/iconv/libiconv/canonical_aix.h b/subprojects/iconv/libiconv/canonical_aix.h similarity index 100% rename from vendor/iconv/libiconv/canonical_aix.h rename to subprojects/iconv/libiconv/canonical_aix.h diff --git a/vendor/iconv/libiconv/canonical_aix_sysaix.h b/subprojects/iconv/libiconv/canonical_aix_sysaix.h similarity index 100% rename from vendor/iconv/libiconv/canonical_aix_sysaix.h rename to subprojects/iconv/libiconv/canonical_aix_sysaix.h diff --git a/vendor/iconv/libiconv/canonical_dos.h b/subprojects/iconv/libiconv/canonical_dos.h similarity index 100% rename from vendor/iconv/libiconv/canonical_dos.h rename to subprojects/iconv/libiconv/canonical_dos.h diff --git a/vendor/iconv/libiconv/canonical_extra.h b/subprojects/iconv/libiconv/canonical_extra.h similarity index 100% rename from vendor/iconv/libiconv/canonical_extra.h rename to subprojects/iconv/libiconv/canonical_extra.h diff --git a/vendor/iconv/libiconv/canonical_local.h b/subprojects/iconv/libiconv/canonical_local.h similarity index 100% rename from vendor/iconv/libiconv/canonical_local.h rename to subprojects/iconv/libiconv/canonical_local.h diff --git a/vendor/iconv/libiconv/canonical_local_sysaix.h b/subprojects/iconv/libiconv/canonical_local_sysaix.h similarity index 100% rename from vendor/iconv/libiconv/canonical_local_sysaix.h rename to subprojects/iconv/libiconv/canonical_local_sysaix.h diff --git a/vendor/iconv/libiconv/canonical_local_syshpux.h b/subprojects/iconv/libiconv/canonical_local_syshpux.h similarity index 100% rename from vendor/iconv/libiconv/canonical_local_syshpux.h rename to subprojects/iconv/libiconv/canonical_local_syshpux.h diff --git a/vendor/iconv/libiconv/canonical_local_sysosf1.h b/subprojects/iconv/libiconv/canonical_local_sysosf1.h similarity index 100% rename from vendor/iconv/libiconv/canonical_local_sysosf1.h rename to subprojects/iconv/libiconv/canonical_local_sysosf1.h diff --git a/vendor/iconv/libiconv/canonical_local_syssolaris.h b/subprojects/iconv/libiconv/canonical_local_syssolaris.h similarity index 100% rename from vendor/iconv/libiconv/canonical_local_syssolaris.h rename to subprojects/iconv/libiconv/canonical_local_syssolaris.h diff --git a/vendor/iconv/libiconv/canonical_osf1.h b/subprojects/iconv/libiconv/canonical_osf1.h similarity index 100% rename from vendor/iconv/libiconv/canonical_osf1.h rename to subprojects/iconv/libiconv/canonical_osf1.h diff --git a/vendor/iconv/libiconv/canonical_osf1_sysosf1.h b/subprojects/iconv/libiconv/canonical_osf1_sysosf1.h similarity index 100% rename from vendor/iconv/libiconv/canonical_osf1_sysosf1.h rename to subprojects/iconv/libiconv/canonical_osf1_sysosf1.h diff --git a/vendor/iconv/libiconv/canonical_sysaix.h b/subprojects/iconv/libiconv/canonical_sysaix.h similarity index 100% rename from vendor/iconv/libiconv/canonical_sysaix.h rename to subprojects/iconv/libiconv/canonical_sysaix.h diff --git a/vendor/iconv/libiconv/canonical_syshpux.h b/subprojects/iconv/libiconv/canonical_syshpux.h similarity index 100% rename from vendor/iconv/libiconv/canonical_syshpux.h rename to subprojects/iconv/libiconv/canonical_syshpux.h diff --git a/vendor/iconv/libiconv/canonical_sysosf1.h b/subprojects/iconv/libiconv/canonical_sysosf1.h similarity index 100% rename from vendor/iconv/libiconv/canonical_sysosf1.h rename to subprojects/iconv/libiconv/canonical_sysosf1.h diff --git a/vendor/iconv/libiconv/canonical_syssolaris.h b/subprojects/iconv/libiconv/canonical_syssolaris.h similarity index 100% rename from vendor/iconv/libiconv/canonical_syssolaris.h rename to subprojects/iconv/libiconv/canonical_syssolaris.h diff --git a/vendor/iconv/libiconv/ces_big5.h b/subprojects/iconv/libiconv/ces_big5.h similarity index 100% rename from vendor/iconv/libiconv/ces_big5.h rename to subprojects/iconv/libiconv/ces_big5.h diff --git a/vendor/iconv/libiconv/ces_gbk.h b/subprojects/iconv/libiconv/ces_gbk.h similarity index 100% rename from vendor/iconv/libiconv/ces_gbk.h rename to subprojects/iconv/libiconv/ces_gbk.h diff --git a/vendor/iconv/libiconv/charset.alias b/subprojects/iconv/libiconv/charset.alias similarity index 100% rename from vendor/iconv/libiconv/charset.alias rename to subprojects/iconv/libiconv/charset.alias diff --git a/vendor/iconv/libiconv/cjk_variants.h b/subprojects/iconv/libiconv/cjk_variants.h similarity index 100% rename from vendor/iconv/libiconv/cjk_variants.h rename to subprojects/iconv/libiconv/cjk_variants.h diff --git a/vendor/iconv/libiconv/cns11643.h b/subprojects/iconv/libiconv/cns11643.h similarity index 100% rename from vendor/iconv/libiconv/cns11643.h rename to subprojects/iconv/libiconv/cns11643.h diff --git a/vendor/iconv/libiconv/cns11643_1.h b/subprojects/iconv/libiconv/cns11643_1.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_1.h rename to subprojects/iconv/libiconv/cns11643_1.h diff --git a/vendor/iconv/libiconv/cns11643_15.h b/subprojects/iconv/libiconv/cns11643_15.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_15.h rename to subprojects/iconv/libiconv/cns11643_15.h diff --git a/vendor/iconv/libiconv/cns11643_2.h b/subprojects/iconv/libiconv/cns11643_2.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_2.h rename to subprojects/iconv/libiconv/cns11643_2.h diff --git a/vendor/iconv/libiconv/cns11643_3.h b/subprojects/iconv/libiconv/cns11643_3.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_3.h rename to subprojects/iconv/libiconv/cns11643_3.h diff --git a/vendor/iconv/libiconv/cns11643_4.h b/subprojects/iconv/libiconv/cns11643_4.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_4.h rename to subprojects/iconv/libiconv/cns11643_4.h diff --git a/vendor/iconv/libiconv/cns11643_4a.h b/subprojects/iconv/libiconv/cns11643_4a.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_4a.h rename to subprojects/iconv/libiconv/cns11643_4a.h diff --git a/vendor/iconv/libiconv/cns11643_4b.h b/subprojects/iconv/libiconv/cns11643_4b.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_4b.h rename to subprojects/iconv/libiconv/cns11643_4b.h diff --git a/vendor/iconv/libiconv/cns11643_5.h b/subprojects/iconv/libiconv/cns11643_5.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_5.h rename to subprojects/iconv/libiconv/cns11643_5.h diff --git a/vendor/iconv/libiconv/cns11643_6.h b/subprojects/iconv/libiconv/cns11643_6.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_6.h rename to subprojects/iconv/libiconv/cns11643_6.h diff --git a/vendor/iconv/libiconv/cns11643_7.h b/subprojects/iconv/libiconv/cns11643_7.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_7.h rename to subprojects/iconv/libiconv/cns11643_7.h diff --git a/vendor/iconv/libiconv/cns11643_inv.h b/subprojects/iconv/libiconv/cns11643_inv.h similarity index 100% rename from vendor/iconv/libiconv/cns11643_inv.h rename to subprojects/iconv/libiconv/cns11643_inv.h diff --git a/vendor/iconv/libiconv/config.h b/subprojects/iconv/libiconv/config.h similarity index 100% rename from vendor/iconv/libiconv/config.h rename to subprojects/iconv/libiconv/config.h diff --git a/vendor/iconv/libiconv/converters.h b/subprojects/iconv/libiconv/converters.h similarity index 100% rename from vendor/iconv/libiconv/converters.h rename to subprojects/iconv/libiconv/converters.h diff --git a/vendor/iconv/libiconv/cp1046.h b/subprojects/iconv/libiconv/cp1046.h similarity index 100% rename from vendor/iconv/libiconv/cp1046.h rename to subprojects/iconv/libiconv/cp1046.h diff --git a/vendor/iconv/libiconv/cp1124.h b/subprojects/iconv/libiconv/cp1124.h similarity index 100% rename from vendor/iconv/libiconv/cp1124.h rename to subprojects/iconv/libiconv/cp1124.h diff --git a/vendor/iconv/libiconv/cp1125.h b/subprojects/iconv/libiconv/cp1125.h similarity index 100% rename from vendor/iconv/libiconv/cp1125.h rename to subprojects/iconv/libiconv/cp1125.h diff --git a/vendor/iconv/libiconv/cp1129.h b/subprojects/iconv/libiconv/cp1129.h similarity index 100% rename from vendor/iconv/libiconv/cp1129.h rename to subprojects/iconv/libiconv/cp1129.h diff --git a/vendor/iconv/libiconv/cp1131.h b/subprojects/iconv/libiconv/cp1131.h similarity index 100% rename from vendor/iconv/libiconv/cp1131.h rename to subprojects/iconv/libiconv/cp1131.h diff --git a/vendor/iconv/libiconv/cp1133.h b/subprojects/iconv/libiconv/cp1133.h similarity index 100% rename from vendor/iconv/libiconv/cp1133.h rename to subprojects/iconv/libiconv/cp1133.h diff --git a/vendor/iconv/libiconv/cp1161.h b/subprojects/iconv/libiconv/cp1161.h similarity index 100% rename from vendor/iconv/libiconv/cp1161.h rename to subprojects/iconv/libiconv/cp1161.h diff --git a/vendor/iconv/libiconv/cp1162.h b/subprojects/iconv/libiconv/cp1162.h similarity index 100% rename from vendor/iconv/libiconv/cp1162.h rename to subprojects/iconv/libiconv/cp1162.h diff --git a/vendor/iconv/libiconv/cp1163.h b/subprojects/iconv/libiconv/cp1163.h similarity index 100% rename from vendor/iconv/libiconv/cp1163.h rename to subprojects/iconv/libiconv/cp1163.h diff --git a/vendor/iconv/libiconv/cp1250.h b/subprojects/iconv/libiconv/cp1250.h similarity index 100% rename from vendor/iconv/libiconv/cp1250.h rename to subprojects/iconv/libiconv/cp1250.h diff --git a/vendor/iconv/libiconv/cp1251.h b/subprojects/iconv/libiconv/cp1251.h similarity index 100% rename from vendor/iconv/libiconv/cp1251.h rename to subprojects/iconv/libiconv/cp1251.h diff --git a/vendor/iconv/libiconv/cp1252.h b/subprojects/iconv/libiconv/cp1252.h similarity index 100% rename from vendor/iconv/libiconv/cp1252.h rename to subprojects/iconv/libiconv/cp1252.h diff --git a/vendor/iconv/libiconv/cp1253.h b/subprojects/iconv/libiconv/cp1253.h similarity index 100% rename from vendor/iconv/libiconv/cp1253.h rename to subprojects/iconv/libiconv/cp1253.h diff --git a/vendor/iconv/libiconv/cp1254.h b/subprojects/iconv/libiconv/cp1254.h similarity index 100% rename from vendor/iconv/libiconv/cp1254.h rename to subprojects/iconv/libiconv/cp1254.h diff --git a/vendor/iconv/libiconv/cp1255.h b/subprojects/iconv/libiconv/cp1255.h similarity index 100% rename from vendor/iconv/libiconv/cp1255.h rename to subprojects/iconv/libiconv/cp1255.h diff --git a/vendor/iconv/libiconv/cp1256.h b/subprojects/iconv/libiconv/cp1256.h similarity index 100% rename from vendor/iconv/libiconv/cp1256.h rename to subprojects/iconv/libiconv/cp1256.h diff --git a/vendor/iconv/libiconv/cp1257.h b/subprojects/iconv/libiconv/cp1257.h similarity index 100% rename from vendor/iconv/libiconv/cp1257.h rename to subprojects/iconv/libiconv/cp1257.h diff --git a/vendor/iconv/libiconv/cp1258.h b/subprojects/iconv/libiconv/cp1258.h similarity index 100% rename from vendor/iconv/libiconv/cp1258.h rename to subprojects/iconv/libiconv/cp1258.h diff --git a/vendor/iconv/libiconv/cp437.h b/subprojects/iconv/libiconv/cp437.h similarity index 100% rename from vendor/iconv/libiconv/cp437.h rename to subprojects/iconv/libiconv/cp437.h diff --git a/vendor/iconv/libiconv/cp737.h b/subprojects/iconv/libiconv/cp737.h similarity index 100% rename from vendor/iconv/libiconv/cp737.h rename to subprojects/iconv/libiconv/cp737.h diff --git a/vendor/iconv/libiconv/cp775.h b/subprojects/iconv/libiconv/cp775.h similarity index 100% rename from vendor/iconv/libiconv/cp775.h rename to subprojects/iconv/libiconv/cp775.h diff --git a/vendor/iconv/libiconv/cp850.h b/subprojects/iconv/libiconv/cp850.h similarity index 100% rename from vendor/iconv/libiconv/cp850.h rename to subprojects/iconv/libiconv/cp850.h diff --git a/vendor/iconv/libiconv/cp852.h b/subprojects/iconv/libiconv/cp852.h similarity index 100% rename from vendor/iconv/libiconv/cp852.h rename to subprojects/iconv/libiconv/cp852.h diff --git a/vendor/iconv/libiconv/cp853.h b/subprojects/iconv/libiconv/cp853.h similarity index 100% rename from vendor/iconv/libiconv/cp853.h rename to subprojects/iconv/libiconv/cp853.h diff --git a/vendor/iconv/libiconv/cp855.h b/subprojects/iconv/libiconv/cp855.h similarity index 100% rename from vendor/iconv/libiconv/cp855.h rename to subprojects/iconv/libiconv/cp855.h diff --git a/vendor/iconv/libiconv/cp856.h b/subprojects/iconv/libiconv/cp856.h similarity index 100% rename from vendor/iconv/libiconv/cp856.h rename to subprojects/iconv/libiconv/cp856.h diff --git a/vendor/iconv/libiconv/cp857.h b/subprojects/iconv/libiconv/cp857.h similarity index 100% rename from vendor/iconv/libiconv/cp857.h rename to subprojects/iconv/libiconv/cp857.h diff --git a/vendor/iconv/libiconv/cp858.h b/subprojects/iconv/libiconv/cp858.h similarity index 100% rename from vendor/iconv/libiconv/cp858.h rename to subprojects/iconv/libiconv/cp858.h diff --git a/vendor/iconv/libiconv/cp860.h b/subprojects/iconv/libiconv/cp860.h similarity index 100% rename from vendor/iconv/libiconv/cp860.h rename to subprojects/iconv/libiconv/cp860.h diff --git a/vendor/iconv/libiconv/cp861.h b/subprojects/iconv/libiconv/cp861.h similarity index 100% rename from vendor/iconv/libiconv/cp861.h rename to subprojects/iconv/libiconv/cp861.h diff --git a/vendor/iconv/libiconv/cp862.h b/subprojects/iconv/libiconv/cp862.h similarity index 100% rename from vendor/iconv/libiconv/cp862.h rename to subprojects/iconv/libiconv/cp862.h diff --git a/vendor/iconv/libiconv/cp863.h b/subprojects/iconv/libiconv/cp863.h similarity index 100% rename from vendor/iconv/libiconv/cp863.h rename to subprojects/iconv/libiconv/cp863.h diff --git a/vendor/iconv/libiconv/cp864.h b/subprojects/iconv/libiconv/cp864.h similarity index 100% rename from vendor/iconv/libiconv/cp864.h rename to subprojects/iconv/libiconv/cp864.h diff --git a/vendor/iconv/libiconv/cp865.h b/subprojects/iconv/libiconv/cp865.h similarity index 100% rename from vendor/iconv/libiconv/cp865.h rename to subprojects/iconv/libiconv/cp865.h diff --git a/vendor/iconv/libiconv/cp866.h b/subprojects/iconv/libiconv/cp866.h similarity index 100% rename from vendor/iconv/libiconv/cp866.h rename to subprojects/iconv/libiconv/cp866.h diff --git a/vendor/iconv/libiconv/cp869.h b/subprojects/iconv/libiconv/cp869.h similarity index 100% rename from vendor/iconv/libiconv/cp869.h rename to subprojects/iconv/libiconv/cp869.h diff --git a/vendor/iconv/libiconv/cp874.h b/subprojects/iconv/libiconv/cp874.h similarity index 100% rename from vendor/iconv/libiconv/cp874.h rename to subprojects/iconv/libiconv/cp874.h diff --git a/vendor/iconv/libiconv/cp922.h b/subprojects/iconv/libiconv/cp922.h similarity index 100% rename from vendor/iconv/libiconv/cp922.h rename to subprojects/iconv/libiconv/cp922.h diff --git a/vendor/iconv/libiconv/cp932.h b/subprojects/iconv/libiconv/cp932.h similarity index 100% rename from vendor/iconv/libiconv/cp932.h rename to subprojects/iconv/libiconv/cp932.h diff --git a/vendor/iconv/libiconv/cp932ext.h b/subprojects/iconv/libiconv/cp932ext.h similarity index 100% rename from vendor/iconv/libiconv/cp932ext.h rename to subprojects/iconv/libiconv/cp932ext.h diff --git a/vendor/iconv/libiconv/cp936.h b/subprojects/iconv/libiconv/cp936.h similarity index 100% rename from vendor/iconv/libiconv/cp936.h rename to subprojects/iconv/libiconv/cp936.h diff --git a/vendor/iconv/libiconv/cp936ext.h b/subprojects/iconv/libiconv/cp936ext.h similarity index 100% rename from vendor/iconv/libiconv/cp936ext.h rename to subprojects/iconv/libiconv/cp936ext.h diff --git a/vendor/iconv/libiconv/cp943.h b/subprojects/iconv/libiconv/cp943.h similarity index 100% rename from vendor/iconv/libiconv/cp943.h rename to subprojects/iconv/libiconv/cp943.h diff --git a/vendor/iconv/libiconv/cp949.h b/subprojects/iconv/libiconv/cp949.h similarity index 100% rename from vendor/iconv/libiconv/cp949.h rename to subprojects/iconv/libiconv/cp949.h diff --git a/vendor/iconv/libiconv/cp950.h b/subprojects/iconv/libiconv/cp950.h similarity index 100% rename from vendor/iconv/libiconv/cp950.h rename to subprojects/iconv/libiconv/cp950.h diff --git a/vendor/iconv/libiconv/cp950ext.h b/subprojects/iconv/libiconv/cp950ext.h similarity index 100% rename from vendor/iconv/libiconv/cp950ext.h rename to subprojects/iconv/libiconv/cp950ext.h diff --git a/vendor/iconv/libiconv/dec_hanyu.h b/subprojects/iconv/libiconv/dec_hanyu.h similarity index 100% rename from vendor/iconv/libiconv/dec_hanyu.h rename to subprojects/iconv/libiconv/dec_hanyu.h diff --git a/vendor/iconv/libiconv/dec_kanji.h b/subprojects/iconv/libiconv/dec_kanji.h similarity index 100% rename from vendor/iconv/libiconv/dec_kanji.h rename to subprojects/iconv/libiconv/dec_kanji.h diff --git a/vendor/iconv/libiconv/encodings.def b/subprojects/iconv/libiconv/encodings.def similarity index 100% rename from vendor/iconv/libiconv/encodings.def rename to subprojects/iconv/libiconv/encodings.def diff --git a/vendor/iconv/libiconv/encodings_aix.def b/subprojects/iconv/libiconv/encodings_aix.def similarity index 100% rename from vendor/iconv/libiconv/encodings_aix.def rename to subprojects/iconv/libiconv/encodings_aix.def diff --git a/vendor/iconv/libiconv/encodings_dos.def b/subprojects/iconv/libiconv/encodings_dos.def similarity index 100% rename from vendor/iconv/libiconv/encodings_dos.def rename to subprojects/iconv/libiconv/encodings_dos.def diff --git a/vendor/iconv/libiconv/encodings_extra.def b/subprojects/iconv/libiconv/encodings_extra.def similarity index 100% rename from vendor/iconv/libiconv/encodings_extra.def rename to subprojects/iconv/libiconv/encodings_extra.def diff --git a/vendor/iconv/libiconv/encodings_local.def b/subprojects/iconv/libiconv/encodings_local.def similarity index 100% rename from vendor/iconv/libiconv/encodings_local.def rename to subprojects/iconv/libiconv/encodings_local.def diff --git a/vendor/iconv/libiconv/encodings_osf1.def b/subprojects/iconv/libiconv/encodings_osf1.def similarity index 100% rename from vendor/iconv/libiconv/encodings_osf1.def rename to subprojects/iconv/libiconv/encodings_osf1.def diff --git a/vendor/iconv/libiconv/euc_cn.h b/subprojects/iconv/libiconv/euc_cn.h similarity index 100% rename from vendor/iconv/libiconv/euc_cn.h rename to subprojects/iconv/libiconv/euc_cn.h diff --git a/vendor/iconv/libiconv/euc_jisx0213.h b/subprojects/iconv/libiconv/euc_jisx0213.h similarity index 100% rename from vendor/iconv/libiconv/euc_jisx0213.h rename to subprojects/iconv/libiconv/euc_jisx0213.h diff --git a/vendor/iconv/libiconv/euc_jp.h b/subprojects/iconv/libiconv/euc_jp.h similarity index 100% rename from vendor/iconv/libiconv/euc_jp.h rename to subprojects/iconv/libiconv/euc_jp.h diff --git a/vendor/iconv/libiconv/euc_kr.h b/subprojects/iconv/libiconv/euc_kr.h similarity index 100% rename from vendor/iconv/libiconv/euc_kr.h rename to subprojects/iconv/libiconv/euc_kr.h diff --git a/vendor/iconv/libiconv/euc_tw.h b/subprojects/iconv/libiconv/euc_tw.h similarity index 100% rename from vendor/iconv/libiconv/euc_tw.h rename to subprojects/iconv/libiconv/euc_tw.h diff --git a/vendor/iconv/libiconv/flags.h b/subprojects/iconv/libiconv/flags.h similarity index 100% rename from vendor/iconv/libiconv/flags.h rename to subprojects/iconv/libiconv/flags.h diff --git a/vendor/iconv/libiconv/flushwc.h b/subprojects/iconv/libiconv/flushwc.h similarity index 100% rename from vendor/iconv/libiconv/flushwc.h rename to subprojects/iconv/libiconv/flushwc.h diff --git a/vendor/iconv/libiconv/gb12345.h b/subprojects/iconv/libiconv/gb12345.h similarity index 100% rename from vendor/iconv/libiconv/gb12345.h rename to subprojects/iconv/libiconv/gb12345.h diff --git a/vendor/iconv/libiconv/gb12345ext.h b/subprojects/iconv/libiconv/gb12345ext.h similarity index 100% rename from vendor/iconv/libiconv/gb12345ext.h rename to subprojects/iconv/libiconv/gb12345ext.h diff --git a/vendor/iconv/libiconv/gb18030.h b/subprojects/iconv/libiconv/gb18030.h similarity index 100% rename from vendor/iconv/libiconv/gb18030.h rename to subprojects/iconv/libiconv/gb18030.h diff --git a/vendor/iconv/libiconv/gb18030ext.h b/subprojects/iconv/libiconv/gb18030ext.h similarity index 100% rename from vendor/iconv/libiconv/gb18030ext.h rename to subprojects/iconv/libiconv/gb18030ext.h diff --git a/vendor/iconv/libiconv/gb18030uni.h b/subprojects/iconv/libiconv/gb18030uni.h similarity index 100% rename from vendor/iconv/libiconv/gb18030uni.h rename to subprojects/iconv/libiconv/gb18030uni.h diff --git a/vendor/iconv/libiconv/gb2312.h b/subprojects/iconv/libiconv/gb2312.h similarity index 100% rename from vendor/iconv/libiconv/gb2312.h rename to subprojects/iconv/libiconv/gb2312.h diff --git a/vendor/iconv/libiconv/gbk.h b/subprojects/iconv/libiconv/gbk.h similarity index 100% rename from vendor/iconv/libiconv/gbk.h rename to subprojects/iconv/libiconv/gbk.h diff --git a/vendor/iconv/libiconv/gbkext1.h b/subprojects/iconv/libiconv/gbkext1.h similarity index 100% rename from vendor/iconv/libiconv/gbkext1.h rename to subprojects/iconv/libiconv/gbkext1.h diff --git a/vendor/iconv/libiconv/gbkext2.h b/subprojects/iconv/libiconv/gbkext2.h similarity index 100% rename from vendor/iconv/libiconv/gbkext2.h rename to subprojects/iconv/libiconv/gbkext2.h diff --git a/vendor/iconv/libiconv/gbkext_inv.h b/subprojects/iconv/libiconv/gbkext_inv.h similarity index 100% rename from vendor/iconv/libiconv/gbkext_inv.h rename to subprojects/iconv/libiconv/gbkext_inv.h diff --git a/vendor/iconv/libiconv/genaliases.c b/subprojects/iconv/libiconv/genaliases.c similarity index 100% rename from vendor/iconv/libiconv/genaliases.c rename to subprojects/iconv/libiconv/genaliases.c diff --git a/vendor/iconv/libiconv/genaliases2.c b/subprojects/iconv/libiconv/genaliases2.c similarity index 100% rename from vendor/iconv/libiconv/genaliases2.c rename to subprojects/iconv/libiconv/genaliases2.c diff --git a/vendor/iconv/libiconv/genflags.c b/subprojects/iconv/libiconv/genflags.c similarity index 100% rename from vendor/iconv/libiconv/genflags.c rename to subprojects/iconv/libiconv/genflags.c diff --git a/vendor/iconv/libiconv/gentranslit.c b/subprojects/iconv/libiconv/gentranslit.c similarity index 100% rename from vendor/iconv/libiconv/gentranslit.c rename to subprojects/iconv/libiconv/gentranslit.c diff --git a/vendor/iconv/libiconv/georgian_academy.h b/subprojects/iconv/libiconv/georgian_academy.h similarity index 100% rename from vendor/iconv/libiconv/georgian_academy.h rename to subprojects/iconv/libiconv/georgian_academy.h diff --git a/vendor/iconv/libiconv/georgian_ps.h b/subprojects/iconv/libiconv/georgian_ps.h similarity index 100% rename from vendor/iconv/libiconv/georgian_ps.h rename to subprojects/iconv/libiconv/georgian_ps.h diff --git a/vendor/iconv/libiconv/hkscs1999.h b/subprojects/iconv/libiconv/hkscs1999.h similarity index 100% rename from vendor/iconv/libiconv/hkscs1999.h rename to subprojects/iconv/libiconv/hkscs1999.h diff --git a/vendor/iconv/libiconv/hkscs2001.h b/subprojects/iconv/libiconv/hkscs2001.h similarity index 100% rename from vendor/iconv/libiconv/hkscs2001.h rename to subprojects/iconv/libiconv/hkscs2001.h diff --git a/vendor/iconv/libiconv/hkscs2004.h b/subprojects/iconv/libiconv/hkscs2004.h similarity index 100% rename from vendor/iconv/libiconv/hkscs2004.h rename to subprojects/iconv/libiconv/hkscs2004.h diff --git a/vendor/iconv/libiconv/hp_roman8.h b/subprojects/iconv/libiconv/hp_roman8.h similarity index 100% rename from vendor/iconv/libiconv/hp_roman8.h rename to subprojects/iconv/libiconv/hp_roman8.h diff --git a/vendor/iconv/libiconv/hz.h b/subprojects/iconv/libiconv/hz.h similarity index 100% rename from vendor/iconv/libiconv/hz.h rename to subprojects/iconv/libiconv/hz.h diff --git a/vendor/iconv/libiconv/iconv.c b/subprojects/iconv/libiconv/iconv.c similarity index 100% rename from vendor/iconv/libiconv/iconv.c rename to subprojects/iconv/libiconv/iconv.c diff --git a/vendor/iconv/libiconv/iconv_open1.h b/subprojects/iconv/libiconv/iconv_open1.h similarity index 100% rename from vendor/iconv/libiconv/iconv_open1.h rename to subprojects/iconv/libiconv/iconv_open1.h diff --git a/vendor/iconv/libiconv/iconv_open2.h b/subprojects/iconv/libiconv/iconv_open2.h similarity index 100% rename from vendor/iconv/libiconv/iconv_open2.h rename to subprojects/iconv/libiconv/iconv_open2.h diff --git a/vendor/iconv/libiconv/iso2022_cn.h b/subprojects/iconv/libiconv/iso2022_cn.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_cn.h rename to subprojects/iconv/libiconv/iso2022_cn.h diff --git a/vendor/iconv/libiconv/iso2022_cnext.h b/subprojects/iconv/libiconv/iso2022_cnext.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_cnext.h rename to subprojects/iconv/libiconv/iso2022_cnext.h diff --git a/vendor/iconv/libiconv/iso2022_jp.h b/subprojects/iconv/libiconv/iso2022_jp.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_jp.h rename to subprojects/iconv/libiconv/iso2022_jp.h diff --git a/vendor/iconv/libiconv/iso2022_jp1.h b/subprojects/iconv/libiconv/iso2022_jp1.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_jp1.h rename to subprojects/iconv/libiconv/iso2022_jp1.h diff --git a/vendor/iconv/libiconv/iso2022_jp2.h b/subprojects/iconv/libiconv/iso2022_jp2.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_jp2.h rename to subprojects/iconv/libiconv/iso2022_jp2.h diff --git a/vendor/iconv/libiconv/iso2022_jp3.h b/subprojects/iconv/libiconv/iso2022_jp3.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_jp3.h rename to subprojects/iconv/libiconv/iso2022_jp3.h diff --git a/vendor/iconv/libiconv/iso2022_kr.h b/subprojects/iconv/libiconv/iso2022_kr.h similarity index 100% rename from vendor/iconv/libiconv/iso2022_kr.h rename to subprojects/iconv/libiconv/iso2022_kr.h diff --git a/vendor/iconv/libiconv/iso646_cn.h b/subprojects/iconv/libiconv/iso646_cn.h similarity index 100% rename from vendor/iconv/libiconv/iso646_cn.h rename to subprojects/iconv/libiconv/iso646_cn.h diff --git a/vendor/iconv/libiconv/iso646_jp.h b/subprojects/iconv/libiconv/iso646_jp.h similarity index 100% rename from vendor/iconv/libiconv/iso646_jp.h rename to subprojects/iconv/libiconv/iso646_jp.h diff --git a/vendor/iconv/libiconv/iso8859_1.h b/subprojects/iconv/libiconv/iso8859_1.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_1.h rename to subprojects/iconv/libiconv/iso8859_1.h diff --git a/vendor/iconv/libiconv/iso8859_10.h b/subprojects/iconv/libiconv/iso8859_10.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_10.h rename to subprojects/iconv/libiconv/iso8859_10.h diff --git a/vendor/iconv/libiconv/iso8859_11.h b/subprojects/iconv/libiconv/iso8859_11.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_11.h rename to subprojects/iconv/libiconv/iso8859_11.h diff --git a/vendor/iconv/libiconv/iso8859_13.h b/subprojects/iconv/libiconv/iso8859_13.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_13.h rename to subprojects/iconv/libiconv/iso8859_13.h diff --git a/vendor/iconv/libiconv/iso8859_14.h b/subprojects/iconv/libiconv/iso8859_14.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_14.h rename to subprojects/iconv/libiconv/iso8859_14.h diff --git a/vendor/iconv/libiconv/iso8859_15.h b/subprojects/iconv/libiconv/iso8859_15.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_15.h rename to subprojects/iconv/libiconv/iso8859_15.h diff --git a/vendor/iconv/libiconv/iso8859_16.h b/subprojects/iconv/libiconv/iso8859_16.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_16.h rename to subprojects/iconv/libiconv/iso8859_16.h diff --git a/vendor/iconv/libiconv/iso8859_2.h b/subprojects/iconv/libiconv/iso8859_2.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_2.h rename to subprojects/iconv/libiconv/iso8859_2.h diff --git a/vendor/iconv/libiconv/iso8859_3.h b/subprojects/iconv/libiconv/iso8859_3.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_3.h rename to subprojects/iconv/libiconv/iso8859_3.h diff --git a/vendor/iconv/libiconv/iso8859_4.h b/subprojects/iconv/libiconv/iso8859_4.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_4.h rename to subprojects/iconv/libiconv/iso8859_4.h diff --git a/vendor/iconv/libiconv/iso8859_5.h b/subprojects/iconv/libiconv/iso8859_5.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_5.h rename to subprojects/iconv/libiconv/iso8859_5.h diff --git a/vendor/iconv/libiconv/iso8859_6.h b/subprojects/iconv/libiconv/iso8859_6.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_6.h rename to subprojects/iconv/libiconv/iso8859_6.h diff --git a/vendor/iconv/libiconv/iso8859_7.h b/subprojects/iconv/libiconv/iso8859_7.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_7.h rename to subprojects/iconv/libiconv/iso8859_7.h diff --git a/vendor/iconv/libiconv/iso8859_8.h b/subprojects/iconv/libiconv/iso8859_8.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_8.h rename to subprojects/iconv/libiconv/iso8859_8.h diff --git a/vendor/iconv/libiconv/iso8859_9.h b/subprojects/iconv/libiconv/iso8859_9.h similarity index 100% rename from vendor/iconv/libiconv/iso8859_9.h rename to subprojects/iconv/libiconv/iso8859_9.h diff --git a/vendor/iconv/libiconv/isoir165.h b/subprojects/iconv/libiconv/isoir165.h similarity index 100% rename from vendor/iconv/libiconv/isoir165.h rename to subprojects/iconv/libiconv/isoir165.h diff --git a/vendor/iconv/libiconv/isoir165ext.h b/subprojects/iconv/libiconv/isoir165ext.h similarity index 100% rename from vendor/iconv/libiconv/isoir165ext.h rename to subprojects/iconv/libiconv/isoir165ext.h diff --git a/vendor/iconv/libiconv/java.h b/subprojects/iconv/libiconv/java.h similarity index 100% rename from vendor/iconv/libiconv/java.h rename to subprojects/iconv/libiconv/java.h diff --git a/vendor/iconv/libiconv/jisx0201.h b/subprojects/iconv/libiconv/jisx0201.h similarity index 100% rename from vendor/iconv/libiconv/jisx0201.h rename to subprojects/iconv/libiconv/jisx0201.h diff --git a/vendor/iconv/libiconv/jisx0208.h b/subprojects/iconv/libiconv/jisx0208.h similarity index 100% rename from vendor/iconv/libiconv/jisx0208.h rename to subprojects/iconv/libiconv/jisx0208.h diff --git a/vendor/iconv/libiconv/jisx0212.h b/subprojects/iconv/libiconv/jisx0212.h similarity index 100% rename from vendor/iconv/libiconv/jisx0212.h rename to subprojects/iconv/libiconv/jisx0212.h diff --git a/vendor/iconv/libiconv/jisx0213.h b/subprojects/iconv/libiconv/jisx0213.h similarity index 100% rename from vendor/iconv/libiconv/jisx0213.h rename to subprojects/iconv/libiconv/jisx0213.h diff --git a/vendor/iconv/libiconv/johab.h b/subprojects/iconv/libiconv/johab.h similarity index 100% rename from vendor/iconv/libiconv/johab.h rename to subprojects/iconv/libiconv/johab.h diff --git a/vendor/iconv/libiconv/johab_hangul.h b/subprojects/iconv/libiconv/johab_hangul.h similarity index 100% rename from vendor/iconv/libiconv/johab_hangul.h rename to subprojects/iconv/libiconv/johab_hangul.h diff --git a/vendor/iconv/libiconv/koi8_r.h b/subprojects/iconv/libiconv/koi8_r.h similarity index 100% rename from vendor/iconv/libiconv/koi8_r.h rename to subprojects/iconv/libiconv/koi8_r.h diff --git a/vendor/iconv/libiconv/koi8_ru.h b/subprojects/iconv/libiconv/koi8_ru.h similarity index 100% rename from vendor/iconv/libiconv/koi8_ru.h rename to subprojects/iconv/libiconv/koi8_ru.h diff --git a/vendor/iconv/libiconv/koi8_t.h b/subprojects/iconv/libiconv/koi8_t.h similarity index 100% rename from vendor/iconv/libiconv/koi8_t.h rename to subprojects/iconv/libiconv/koi8_t.h diff --git a/vendor/iconv/libiconv/koi8_u.h b/subprojects/iconv/libiconv/koi8_u.h similarity index 100% rename from vendor/iconv/libiconv/koi8_u.h rename to subprojects/iconv/libiconv/koi8_u.h diff --git a/vendor/iconv/libiconv/ksc5601.h b/subprojects/iconv/libiconv/ksc5601.h similarity index 100% rename from vendor/iconv/libiconv/ksc5601.h rename to subprojects/iconv/libiconv/ksc5601.h diff --git a/vendor/iconv/libiconv/libcharset.h b/subprojects/iconv/libiconv/libcharset.h similarity index 100% rename from vendor/iconv/libiconv/libcharset.h rename to subprojects/iconv/libiconv/libcharset.h diff --git a/vendor/iconv/libiconv/localcharset.h b/subprojects/iconv/libiconv/localcharset.h similarity index 100% rename from vendor/iconv/libiconv/localcharset.h rename to subprojects/iconv/libiconv/localcharset.h diff --git a/vendor/iconv/libiconv/loop_unicode.h b/subprojects/iconv/libiconv/loop_unicode.h similarity index 100% rename from vendor/iconv/libiconv/loop_unicode.h rename to subprojects/iconv/libiconv/loop_unicode.h diff --git a/vendor/iconv/libiconv/loop_wchar.h b/subprojects/iconv/libiconv/loop_wchar.h similarity index 100% rename from vendor/iconv/libiconv/loop_wchar.h rename to subprojects/iconv/libiconv/loop_wchar.h diff --git a/vendor/iconv/libiconv/loops.h b/subprojects/iconv/libiconv/loops.h similarity index 100% rename from vendor/iconv/libiconv/loops.h rename to subprojects/iconv/libiconv/loops.h diff --git a/vendor/iconv/libiconv/mac_arabic.h b/subprojects/iconv/libiconv/mac_arabic.h similarity index 100% rename from vendor/iconv/libiconv/mac_arabic.h rename to subprojects/iconv/libiconv/mac_arabic.h diff --git a/vendor/iconv/libiconv/mac_centraleurope.h b/subprojects/iconv/libiconv/mac_centraleurope.h similarity index 100% rename from vendor/iconv/libiconv/mac_centraleurope.h rename to subprojects/iconv/libiconv/mac_centraleurope.h diff --git a/vendor/iconv/libiconv/mac_croatian.h b/subprojects/iconv/libiconv/mac_croatian.h similarity index 100% rename from vendor/iconv/libiconv/mac_croatian.h rename to subprojects/iconv/libiconv/mac_croatian.h diff --git a/vendor/iconv/libiconv/mac_cyrillic.h b/subprojects/iconv/libiconv/mac_cyrillic.h similarity index 100% rename from vendor/iconv/libiconv/mac_cyrillic.h rename to subprojects/iconv/libiconv/mac_cyrillic.h diff --git a/vendor/iconv/libiconv/mac_greek.h b/subprojects/iconv/libiconv/mac_greek.h similarity index 100% rename from vendor/iconv/libiconv/mac_greek.h rename to subprojects/iconv/libiconv/mac_greek.h diff --git a/vendor/iconv/libiconv/mac_hebrew.h b/subprojects/iconv/libiconv/mac_hebrew.h similarity index 100% rename from vendor/iconv/libiconv/mac_hebrew.h rename to subprojects/iconv/libiconv/mac_hebrew.h diff --git a/vendor/iconv/libiconv/mac_iceland.h b/subprojects/iconv/libiconv/mac_iceland.h similarity index 100% rename from vendor/iconv/libiconv/mac_iceland.h rename to subprojects/iconv/libiconv/mac_iceland.h diff --git a/vendor/iconv/libiconv/mac_roman.h b/subprojects/iconv/libiconv/mac_roman.h similarity index 100% rename from vendor/iconv/libiconv/mac_roman.h rename to subprojects/iconv/libiconv/mac_roman.h diff --git a/vendor/iconv/libiconv/mac_romania.h b/subprojects/iconv/libiconv/mac_romania.h similarity index 100% rename from vendor/iconv/libiconv/mac_romania.h rename to subprojects/iconv/libiconv/mac_romania.h diff --git a/vendor/iconv/libiconv/mac_thai.h b/subprojects/iconv/libiconv/mac_thai.h similarity index 100% rename from vendor/iconv/libiconv/mac_thai.h rename to subprojects/iconv/libiconv/mac_thai.h diff --git a/vendor/iconv/libiconv/mac_turkish.h b/subprojects/iconv/libiconv/mac_turkish.h similarity index 100% rename from vendor/iconv/libiconv/mac_turkish.h rename to subprojects/iconv/libiconv/mac_turkish.h diff --git a/vendor/iconv/libiconv/mac_ukraine.h b/subprojects/iconv/libiconv/mac_ukraine.h similarity index 100% rename from vendor/iconv/libiconv/mac_ukraine.h rename to subprojects/iconv/libiconv/mac_ukraine.h diff --git a/vendor/iconv/libiconv/mulelao.h b/subprojects/iconv/libiconv/mulelao.h similarity index 100% rename from vendor/iconv/libiconv/mulelao.h rename to subprojects/iconv/libiconv/mulelao.h diff --git a/vendor/iconv/libiconv/nextstep.h b/subprojects/iconv/libiconv/nextstep.h similarity index 100% rename from vendor/iconv/libiconv/nextstep.h rename to subprojects/iconv/libiconv/nextstep.h diff --git a/vendor/iconv/libiconv/pt154.h b/subprojects/iconv/libiconv/pt154.h similarity index 100% rename from vendor/iconv/libiconv/pt154.h rename to subprojects/iconv/libiconv/pt154.h diff --git a/vendor/iconv/libiconv/relocatable.c b/subprojects/iconv/libiconv/relocatable.c similarity index 100% rename from vendor/iconv/libiconv/relocatable.c rename to subprojects/iconv/libiconv/relocatable.c diff --git a/vendor/iconv/libiconv/relocatable.h b/subprojects/iconv/libiconv/relocatable.h similarity index 100% rename from vendor/iconv/libiconv/relocatable.h rename to subprojects/iconv/libiconv/relocatable.h diff --git a/vendor/iconv/libiconv/riscos1.h b/subprojects/iconv/libiconv/riscos1.h similarity index 100% rename from vendor/iconv/libiconv/riscos1.h rename to subprojects/iconv/libiconv/riscos1.h diff --git a/vendor/iconv/libiconv/rk1048.h b/subprojects/iconv/libiconv/rk1048.h similarity index 100% rename from vendor/iconv/libiconv/rk1048.h rename to subprojects/iconv/libiconv/rk1048.h diff --git a/vendor/iconv/libiconv/shift_jisx0213.h b/subprojects/iconv/libiconv/shift_jisx0213.h similarity index 100% rename from vendor/iconv/libiconv/shift_jisx0213.h rename to subprojects/iconv/libiconv/shift_jisx0213.h diff --git a/vendor/iconv/libiconv/sjis.h b/subprojects/iconv/libiconv/sjis.h similarity index 100% rename from vendor/iconv/libiconv/sjis.h rename to subprojects/iconv/libiconv/sjis.h diff --git a/vendor/iconv/libiconv/tcvn.h b/subprojects/iconv/libiconv/tcvn.h similarity index 100% rename from vendor/iconv/libiconv/tcvn.h rename to subprojects/iconv/libiconv/tcvn.h diff --git a/vendor/iconv/libiconv/tds565.h b/subprojects/iconv/libiconv/tds565.h similarity index 100% rename from vendor/iconv/libiconv/tds565.h rename to subprojects/iconv/libiconv/tds565.h diff --git a/vendor/iconv/libiconv/tis620.h b/subprojects/iconv/libiconv/tis620.h similarity index 100% rename from vendor/iconv/libiconv/tis620.h rename to subprojects/iconv/libiconv/tis620.h diff --git a/vendor/iconv/libiconv/translit.h b/subprojects/iconv/libiconv/translit.h similarity index 100% rename from vendor/iconv/libiconv/translit.h rename to subprojects/iconv/libiconv/translit.h diff --git a/vendor/iconv/libiconv/ucs2.h b/subprojects/iconv/libiconv/ucs2.h similarity index 100% rename from vendor/iconv/libiconv/ucs2.h rename to subprojects/iconv/libiconv/ucs2.h diff --git a/vendor/iconv/libiconv/ucs2be.h b/subprojects/iconv/libiconv/ucs2be.h similarity index 100% rename from vendor/iconv/libiconv/ucs2be.h rename to subprojects/iconv/libiconv/ucs2be.h diff --git a/vendor/iconv/libiconv/ucs2internal.h b/subprojects/iconv/libiconv/ucs2internal.h similarity index 100% rename from vendor/iconv/libiconv/ucs2internal.h rename to subprojects/iconv/libiconv/ucs2internal.h diff --git a/vendor/iconv/libiconv/ucs2le.h b/subprojects/iconv/libiconv/ucs2le.h similarity index 100% rename from vendor/iconv/libiconv/ucs2le.h rename to subprojects/iconv/libiconv/ucs2le.h diff --git a/vendor/iconv/libiconv/ucs2swapped.h b/subprojects/iconv/libiconv/ucs2swapped.h similarity index 100% rename from vendor/iconv/libiconv/ucs2swapped.h rename to subprojects/iconv/libiconv/ucs2swapped.h diff --git a/vendor/iconv/libiconv/ucs4.h b/subprojects/iconv/libiconv/ucs4.h similarity index 100% rename from vendor/iconv/libiconv/ucs4.h rename to subprojects/iconv/libiconv/ucs4.h diff --git a/vendor/iconv/libiconv/ucs4be.h b/subprojects/iconv/libiconv/ucs4be.h similarity index 100% rename from vendor/iconv/libiconv/ucs4be.h rename to subprojects/iconv/libiconv/ucs4be.h diff --git a/vendor/iconv/libiconv/ucs4internal.h b/subprojects/iconv/libiconv/ucs4internal.h similarity index 100% rename from vendor/iconv/libiconv/ucs4internal.h rename to subprojects/iconv/libiconv/ucs4internal.h diff --git a/vendor/iconv/libiconv/ucs4le.h b/subprojects/iconv/libiconv/ucs4le.h similarity index 100% rename from vendor/iconv/libiconv/ucs4le.h rename to subprojects/iconv/libiconv/ucs4le.h diff --git a/vendor/iconv/libiconv/ucs4swapped.h b/subprojects/iconv/libiconv/ucs4swapped.h similarity index 100% rename from vendor/iconv/libiconv/ucs4swapped.h rename to subprojects/iconv/libiconv/ucs4swapped.h diff --git a/vendor/iconv/libiconv/uhc_1.h b/subprojects/iconv/libiconv/uhc_1.h similarity index 100% rename from vendor/iconv/libiconv/uhc_1.h rename to subprojects/iconv/libiconv/uhc_1.h diff --git a/vendor/iconv/libiconv/uhc_2.h b/subprojects/iconv/libiconv/uhc_2.h similarity index 100% rename from vendor/iconv/libiconv/uhc_2.h rename to subprojects/iconv/libiconv/uhc_2.h diff --git a/vendor/iconv/libiconv/utf16.h b/subprojects/iconv/libiconv/utf16.h similarity index 100% rename from vendor/iconv/libiconv/utf16.h rename to subprojects/iconv/libiconv/utf16.h diff --git a/vendor/iconv/libiconv/utf16be.h b/subprojects/iconv/libiconv/utf16be.h similarity index 100% rename from vendor/iconv/libiconv/utf16be.h rename to subprojects/iconv/libiconv/utf16be.h diff --git a/vendor/iconv/libiconv/utf16le.h b/subprojects/iconv/libiconv/utf16le.h similarity index 100% rename from vendor/iconv/libiconv/utf16le.h rename to subprojects/iconv/libiconv/utf16le.h diff --git a/vendor/iconv/libiconv/utf32.h b/subprojects/iconv/libiconv/utf32.h similarity index 100% rename from vendor/iconv/libiconv/utf32.h rename to subprojects/iconv/libiconv/utf32.h diff --git a/vendor/iconv/libiconv/utf32be.h b/subprojects/iconv/libiconv/utf32be.h similarity index 100% rename from vendor/iconv/libiconv/utf32be.h rename to subprojects/iconv/libiconv/utf32be.h diff --git a/vendor/iconv/libiconv/utf32le.h b/subprojects/iconv/libiconv/utf32le.h similarity index 100% rename from vendor/iconv/libiconv/utf32le.h rename to subprojects/iconv/libiconv/utf32le.h diff --git a/vendor/iconv/libiconv/utf7.h b/subprojects/iconv/libiconv/utf7.h similarity index 100% rename from vendor/iconv/libiconv/utf7.h rename to subprojects/iconv/libiconv/utf7.h diff --git a/vendor/iconv/libiconv/utf8.h b/subprojects/iconv/libiconv/utf8.h similarity index 100% rename from vendor/iconv/libiconv/utf8.h rename to subprojects/iconv/libiconv/utf8.h diff --git a/vendor/iconv/libiconv/vietcomb.h b/subprojects/iconv/libiconv/vietcomb.h similarity index 100% rename from vendor/iconv/libiconv/vietcomb.h rename to subprojects/iconv/libiconv/vietcomb.h diff --git a/vendor/iconv/libiconv/viscii.h b/subprojects/iconv/libiconv/viscii.h similarity index 100% rename from vendor/iconv/libiconv/viscii.h rename to subprojects/iconv/libiconv/viscii.h From 631dad170fc10ef965108fa33cd88c637b143ed8 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:22:30 -0500 Subject: [PATCH 081/185] meson: fix luajit compiler args --- subprojects/luajit/meson.build | 15 ++++++--------- subprojects/luajit/src/host/meson.build | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/subprojects/luajit/meson.build b/subprojects/luajit/meson.build index 38b2f9743..2a838bd18 100644 --- a/subprojects/luajit/meson.build +++ b/subprojects/luajit/meson.build @@ -7,25 +7,22 @@ system_deps = [ cc.find_library('m', required: false) ] -system_deps_native = [ - cc.find_library('dl', required: false, native: true), - cc.find_library('m', required: false, native: true) -] - add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language: 'c') if host_machine.system() == 'linux' - add_project_arguments('-DLUAJIT_USE_LINUX', language: 'c') + add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_LINUX', language: 'c') readline_dep = cc.find_library('readline') ljvm_mode = 'elfasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'darwin' - add_project_arguments(['-DLUAJIT_USE_MACOSX'], language: 'c') + add_project_arguments(['-DLUAJIT_OS=LUAJIT_OS_OSX'], language: 'c') readline_dep = cc.find_library('readline') ljvm_mode = 'machasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'windows' - add_project_arguments('-DLUAJIT_USE_WINDOWS', '-DWIN', - '-malign-double', language: 'c') + add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_WINDOWS', language: 'c') + if cc.get_id() != 'msvc' + add_project_arguments('-malign-double', language: 'c') + endif readline_dep = [] ljvm_mode = 'peobj' ljvm_bout = 'lj_vm.o' diff --git a/subprojects/luajit/src/host/meson.build b/subprojects/luajit/src/host/meson.build index eca091c46..d6ae5c943 100644 --- a/subprojects/luajit/src/host/meson.build +++ b/subprojects/luajit/src/host/meson.build @@ -1,5 +1,5 @@ minilua = executable('minilua', 'minilua.c', - dependencies: system_deps_native, + dependencies: system_deps, native: true) if host_machine.cpu_family() == 'x86_64' @@ -45,6 +45,6 @@ buildvm_arch = custom_target('buildvm_arch.h', output: 'buildvm_arch.h') buildvm = executable('buildvm', buildvm_src, buildvm_arch, - dependencies: system_deps_native, + dependencies: system_deps, include_directories: src_inc, native: true) From 9aeaceb6e71443e6ca2cae2833f52fabaa7703b0 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:24:35 -0500 Subject: [PATCH 082/185] meson: add basic libiconv subproject functionality --- meson.build | 8 +++++++- subprojects/iconv/meson.build | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 subprojects/iconv/meson.build diff --git a/meson.build b/meson.build index ee49e2b2f..ab4242d20 100644 --- a/meson.build +++ b/meson.build @@ -36,7 +36,13 @@ cxx = meson.get_compiler('cpp') cc = meson.get_compiler('c') deps += cc.find_library('m', required: false) deps += cc.find_library('dl', required: false) -deps += cc.find_library('iconv', required: false) +iconv_dep = cc.find_library('iconv', required: false) +if not iconv_dep.found() and host_machine.system() == 'windows' + iconv_sp = subproject('iconv') # this really needs to be replaced with a proper port + deps_inc += iconv_sp.get_variable('iconv_incs') + iconv_dep = iconv_sp.get_variable('libiconv_dep') +endif +deps += iconv_dep deps += dependency('libass', version: '>=0.9.7') deps += dependency('boost', version: '>=1.50.0', diff --git a/subprojects/iconv/meson.build b/subprojects/iconv/meson.build new file mode 100644 index 000000000..75261a585 --- /dev/null +++ b/subprojects/iconv/meson.build @@ -0,0 +1,19 @@ +project('iconv', 'c', license: 'LGPL', + meson_version: '>=0.49.0') + +iconv_src = [ + 'libcharset/localcharset.c', + 'libiconv/iconv.c' +] + +iconv_headers = ['include/iconv.h'] + +iconv_incs = include_directories( + 'include', + 'libcharset', + 'libiconv' +) + +libiconv = library('iconv', iconv_src, include_directories: iconv_incs) +libiconv_dep = declare_dependency(link_with: libiconv, + include_directories: iconv_incs) From 9e284660b1735d7878069f4d489ac6bb773836f4 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:25:57 -0500 Subject: [PATCH 083/185] meson: add DirectSound detection --- meson.build | 15 +++++++++++++++ meson_options.txt | 3 ++- src/meson.build | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ab4242d20..9c9b7ace7 100644 --- a/meson.build +++ b/meson.build @@ -82,6 +82,21 @@ foreach dep: [ endif endforeach +if host_machine.system() == 'windows' and not get_option('directsound').disabled() + dsound_dep = cc.find_library('dsound', required: get_option('directsound')) + winmm_dep = cc.find_library('winmm', required: get_option('directsound')) + ole32_dep = cc.find_library('ole32', required: get_option('directsound')) + have_dsound_h = cc.has_header('dsound.h') + if not have_dsound_h and get_option('directsound').enabled() + error('DirectSound enabled but dsound.h not found') + endif + if dsound_dep.found() and winmm_dep.found() and ole32_dep.found() and have_dsound_h + deps += [dsound_dep, winmm_dep, ole32_dep] + conf.set('WITH_DIRECTSOUND', '1') + dep_avail += 'DirectSound' + endif +endif + # TODO: OSS def_audio = get_option('default_audio_output') diff --git a/meson_options.txt b/meson_options.txt index 80e0ddf73..e99e25cc8 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,7 +2,8 @@ option('alsa', type: 'feature', description: 'ALSA audio output') option('openal', type: 'feature', description: 'OpenAL audio output') option('libpulse', type: 'feature', description: 'PulseAudio audio output') option('portaudio', type: 'feature', description: 'PortAudio audio output') -option('default_audio_output', type: 'combo', choices: ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio'], description: 'Default audio output') +option('directsound', type: 'feature', description: 'DirectSound audio output') +option('default_audio_output', type: 'combo', choices: ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio', 'DirectSound'], description: 'Default audio output') option('ffms2', type: 'feature', description: 'FFMS2 video source') diff --git a/src/meson.build b/src/meson.build index df94b4b6f..183cfb075 100644 --- a/src/meson.build +++ b/src/meson.build @@ -181,6 +181,8 @@ opt_src = [ ['PulseAudio', 'audio_player_pulse.cpp'], ['OpenAL', 'audio_player_openal.cpp'], ['OSS', 'audio_player_oss.cpp'], + ['DirectSound', ['audio_player_dsound.cpp', + 'audio_player_dsound2.cpp']], ['FFMS2', ['audio_provider_ffmpegsource.cpp', 'video_provider_ffmpegsource.cpp', From 2eaf9b0062488379b35dade67216114c7c7faeef Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:27:06 -0500 Subject: [PATCH 084/185] meson: fix option name lookup in build file --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 9c9b7ace7..7f7995b88 100644 --- a/meson.build +++ b/meson.build @@ -72,7 +72,7 @@ foreach dep: [ d = dependency(dep[0], version: dep[1] != '' ? dep[1]: '>=0', required: false) - optname = 'enable_@0@'.format(dep[0].split('-')[0]) + optname = dep[0].split('-')[0] if d.found() and not get_option(optname).disabled() deps += d conf.set('WITH_@0@'.format(dep[0].split('-')[0].to_upper()), '1') From df396b67b23073effb6a71e7fdc075c0c80a327b Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:27:37 -0500 Subject: [PATCH 085/185] meson: add Windows-specific project args --- meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meson.build b/meson.build index 7f7995b88..df2ca6eb2 100644 --- a/meson.build +++ b/meson.build @@ -17,6 +17,10 @@ version_h = custom_target('git_version.h', dataroot = get_option('prefix') / get_option('datadir') / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') +if host_machine.system() == 'windows' + add_project_arguments('-DNOMINMAX', '-D_WIN32_WINNT=0x0602', language: 'cpp') +endif + conf = configuration_data() conf.set_quoted('P_DATA', dataroot) if get_option('build_credit') != '' From d2d3168904906edba79edc42f8c0e6b102767b48 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 17 Feb 2019 12:29:23 -0500 Subject: [PATCH 086/185] meson: allow additional include directories for manually located deps --- meson.build | 1 + src/libresrc/meson.build | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index df2ca6eb2..71110c16f 100644 --- a/meson.build +++ b/meson.build @@ -29,6 +29,7 @@ endif conf.set('WITH_UPDATE_CHECKER', get_option('enable_update_checker')) deps = [] +deps_inc = [] if host_machine.system() == 'darwin' add_languages('objc') diff --git a/src/libresrc/meson.build b/src/libresrc/meson.build index 9c4ab499e..e6189a3ca 100644 --- a/src/libresrc/meson.build +++ b/src/libresrc/meson.build @@ -25,4 +25,4 @@ endif libresrc_inc = include_directories('.') -libresrc = static_library('resrc', 'libresrc.cpp', resrc, dependencies: deps) +libresrc = static_library('resrc', 'libresrc.cpp', resrc, include_directories: deps_inc, dependencies: deps) From 3b2d770d74262f51a8bd7dd23cd3078dc089980c Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 14:40:21 -0400 Subject: [PATCH 087/185] Fix PCH usage Hopefully this time in a way that doesn't ruin life for Unix folks! --- libaegisub/include/lagi_pre.h | 44 ++++++- libaegisub/lagi_pre.h | 43 ------- libaegisub/meson.build | 11 +- libaegisub/windows/lagi_pre.cpp | 0 src/agi_pre.cpp | 1 - src/agi_pre.h | 217 ------------------------------- src/include/agi_pre.cpp | 6 + src/include/agi_pre.h | 218 +++++++++++++++++++++++++++++++- src/meson.build | 9 +- 9 files changed, 280 insertions(+), 269 deletions(-) mode change 120000 => 100644 libaegisub/include/lagi_pre.h delete mode 100644 libaegisub/lagi_pre.h delete mode 100644 libaegisub/windows/lagi_pre.cpp delete mode 100644 src/agi_pre.cpp delete mode 100644 src/agi_pre.h create mode 100644 src/include/agi_pre.cpp mode change 120000 => 100644 src/include/agi_pre.h diff --git a/libaegisub/include/lagi_pre.h b/libaegisub/include/lagi_pre.h deleted file mode 120000 index 13ed6ac57..000000000 --- a/libaegisub/include/lagi_pre.h +++ /dev/null @@ -1 +0,0 @@ -../lagi_pre.h \ No newline at end of file diff --git a/libaegisub/include/lagi_pre.h b/libaegisub/include/lagi_pre.h new file mode 100644 index 000000000..50ce877e2 --- /dev/null +++ b/libaegisub/include/lagi_pre.h @@ -0,0 +1,43 @@ +#ifdef __cplusplus +#ifndef _WIN32 +#include "../acconf.h" +#endif + +#define WIN32_LEAN_AND_MEAN + +// Common C +#include +#include +#include +#include +#include +#include + +// Common C++ +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4996) +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +// Boost +#include +#include +#include +#define BOOST_NO_SCOPED_ENUMS +#include +#undef BOOST_NO_SCOPED_ENUMS +#include +#endif diff --git a/libaegisub/lagi_pre.h b/libaegisub/lagi_pre.h deleted file mode 100644 index 50ce877e2..000000000 --- a/libaegisub/lagi_pre.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifdef __cplusplus -#ifndef _WIN32 -#include "../acconf.h" -#endif - -#define WIN32_LEAN_AND_MEAN - -// Common C -#include -#include -#include -#include -#include -#include - -// Common C++ -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4996) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -// Boost -#include -#include -#include -#define BOOST_NO_SCOPED_ENUMS -#include -#undef BOOST_NO_SCOPED_ENUMS -#include -#endif diff --git a/libaegisub/meson.build b/libaegisub/meson.build index a02cc8750..be19b4860 100644 --- a/libaegisub/meson.build +++ b/libaegisub/meson.build @@ -63,7 +63,6 @@ else 'windows/access.cpp', 'windows/charset_conv_win.cpp', 'windows/fs.cpp', - 'windows/lagi_pre.cpp', 'windows/log_win.cpp', 'windows/path_win.cpp', 'windows/util_win.cpp', @@ -79,10 +78,14 @@ else endif endif -libaegisub_cpp_pch = ['lagi_pre.h'] +libaegisub_cpp_pch = ['include/lagi_pre.h'] +if cxx.get_id() == 'msvc' + libaegisub_cpp_pch += 'include/lagi_pre.cpp' +endif + libaegisub_inc = include_directories('include') libaegisub = static_library('aegisub', libaegisub_src, acconf, - include_directories: libaegisub_inc, - cpp_pch: 'include/lagi_pre.h', + include_directories: [libaegisub_inc, deps_inc], + cpp_pch: libaegisub_cpp_pch, dependencies: deps) diff --git a/libaegisub/windows/lagi_pre.cpp b/libaegisub/windows/lagi_pre.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/agi_pre.cpp b/src/agi_pre.cpp deleted file mode 100644 index a9486c83e..000000000 --- a/src/agi_pre.cpp +++ /dev/null @@ -1 +0,0 @@ -// A dummy file for compiling the precompiled header with VC++ diff --git a/src/agi_pre.h b/src/agi_pre.h deleted file mode 100644 index 63e045dca..000000000 --- a/src/agi_pre.h +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright (c) 2006, Rodrigo Braz Monteiro -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// * Neither the name of the Aegisub Group nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// Aegisub Project http://www.aegisub.org/ - -/// @file agi_pre.h -/// @brief Precompiled headers include file, including all headers that should be precompiled -/// @ingroup main -/// -/// In order to use it, set the project to use this header as precompiled and -/// insert it in every source file (under C/C++ -> Advanced -> Force Includes), -/// then set stdwx.cpp to generate the precompiled header -/// -/// @note Make sure that you disable use of precompiled headers on md5.c and -/// MatroskaParser.c, as well as any possible future .c files. - -#ifdef __cplusplus - -// Block msvc from complaining about not using msvc-specific versions for -// insecure C functions. -#ifdef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS_DEFINED -#else -#define _CRT_SECURE_NO_WARNINGS -#endif - -#ifndef _WIN32 -#include "../acconf.h" -#endif - -#define WIN32_LEAN_AND_MEAN - -// Common C -#include -#include -#include -#include -#include -#include -#include - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4996) -#endif - -// Common C++ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -#ifdef _WIN32 -#include -#include -#else -#include -#endif - -// Boost -#include -#include -#include -#include -#include -#include -#include -#include -#define BOOST_NO_SCOPED_ENUMS -#include -#undef BOOST_NO_SCOPED_ENUMS -#include -#include - -// wxWidgets headers -#include // Leave this first. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_OPENGL_GL_H -#include -#else -#include -#endif - -#ifndef _CRT_SECURE_NO_WARNINGS_DEFINED -#undef _CRT_SECURE_NO_WARNINGS -#endif - -#endif diff --git a/src/include/agi_pre.cpp b/src/include/agi_pre.cpp new file mode 100644 index 000000000..d4d26d28c --- /dev/null +++ b/src/include/agi_pre.cpp @@ -0,0 +1,6 @@ +// A dummy file for compiling the precompiled header with VC++ +#if !defined(_MSC_VER) +#error "This file is only for use with MSVC." +#endif + +#include "agi_pre.h" diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h deleted file mode 120000 index 7b2f4b2e2..000000000 --- a/src/include/agi_pre.h +++ /dev/null @@ -1 +0,0 @@ -../agi_pre.h \ No newline at end of file diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h new file mode 100644 index 000000000..63e045dca --- /dev/null +++ b/src/include/agi_pre.h @@ -0,0 +1,217 @@ +// Copyright (c) 2006, Rodrigo Braz Monteiro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Aegisub Project http://www.aegisub.org/ + +/// @file agi_pre.h +/// @brief Precompiled headers include file, including all headers that should be precompiled +/// @ingroup main +/// +/// In order to use it, set the project to use this header as precompiled and +/// insert it in every source file (under C/C++ -> Advanced -> Force Includes), +/// then set stdwx.cpp to generate the precompiled header +/// +/// @note Make sure that you disable use of precompiled headers on md5.c and +/// MatroskaParser.c, as well as any possible future .c files. + +#ifdef __cplusplus + +// Block msvc from complaining about not using msvc-specific versions for +// insecure C functions. +#ifdef _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS_DEFINED +#else +#define _CRT_SECURE_NO_WARNINGS +#endif + +#ifndef _WIN32 +#include "../acconf.h" +#endif + +#define WIN32_LEAN_AND_MEAN + +// Common C +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4996) +#endif + +// Common C++ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +#ifdef _WIN32 +#include +#include +#else +#include +#endif + +// Boost +#include +#include +#include +#include +#include +#include +#include +#include +#define BOOST_NO_SCOPED_ENUMS +#include +#undef BOOST_NO_SCOPED_ENUMS +#include +#include + +// wxWidgets headers +#include // Leave this first. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_OPENGL_GL_H +#include +#else +#include +#endif + +#ifndef _CRT_SECURE_NO_WARNINGS_DEFINED +#undef _CRT_SECURE_NO_WARNINGS +#endif + +#endif diff --git a/src/meson.build b/src/meson.build index 183cfb075..bf6a564f1 100644 --- a/src/meson.build +++ b/src/meson.build @@ -197,9 +197,14 @@ foreach opt: opt_src endif endforeach +aegisub_cpp_pch = ['include/agi_pre.h'] +if cxx.get_id() == 'msvc' + aegisub_cpp_pch += 'include/agi_pre.cpp' +endif + aegisub = executable('aegisub', aegisub_src, version_h, acconf, link_with: [libresrc, libluabins, libaegisub], - include_directories: [libaegisub_inc, libresrc_inc, version_inc], - cpp_pch: 'include/agi_pre.h', + include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc], + cpp_pch: aegisub_cpp_pch, install: true, dependencies: deps) From 1599858c923652df87da7ef15c9b4888aa28f209 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 14:41:09 -0400 Subject: [PATCH 088/185] Make version.sh executable --- tools/version.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tools/version.sh diff --git a/tools/version.sh b/tools/version.sh old mode 100644 new mode 100755 From 13711128fa6645b3d96a08cf99783231540b75b5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 15:08:41 -0400 Subject: [PATCH 089/185] meson: remove 'build_' prefix from option --- meson.build | 4 ++-- meson_options.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 71110c16f..1765e6c47 100644 --- a/meson.build +++ b/meson.build @@ -23,8 +23,8 @@ endif conf = configuration_data() conf.set_quoted('P_DATA', dataroot) -if get_option('build_credit') != '' - conf.set_quoted('BUILD_CREDIT', get_option('build_credit')) +if get_option('credit') != '' + conf.set_quoted('BUILD_CREDIT', get_option('credit')) endif conf.set('WITH_UPDATE_CHECKER', get_option('enable_update_checker')) diff --git a/meson_options.txt b/meson_options.txt index e99e25cc8..ea1fe5e30 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,7 +13,7 @@ option('uchardet', type: 'feature', description: 'uchardet character encoding de option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') -option('build_credit', type: 'string', value: '', description: 'Build credit shown in program title') +option('credit', type: 'string', value: '', description: 'Build credit shown in program title') option('enable_update_checker', type: 'boolean', value: false, description: 'Enable the update checker') option('update_server', type: 'string', value: 'updates.aegisub.org', description: 'Server to use for the update checker') From 57e4f788d0eb39f4148c61664fa8ff0dccd75932 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 15:06:42 -0400 Subject: [PATCH 090/185] meson: update subprojects --- subprojects/gtest.wrap | 14 +++++++------- subprojects/libass.wrap | 2 +- subprojects/zlib.wrap | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/subprojects/gtest.wrap b/subprojects/gtest.wrap index 773a713c9..ba9c9b95f 100644 --- a/subprojects/gtest.wrap +++ b/subprojects/gtest.wrap @@ -1,10 +1,10 @@ [wrap-file] -directory = googletest-release-1.8.0 +directory = googletest-release-1.8.1 -source_url = https://github.com/google/googletest/archive/release-1.8.0.zip -source_filename = gtest-1.8.0.zip -source_hash = f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf +source_url = https://github.com/google/googletest/archive/release-1.8.1.zip +source_filename = gtest-1.8.1.zip +source_hash = 927827c183d01734cc5cfef85e0ff3f5a92ffe6188e0d18e909c5efebf28a0c7 -patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.8.0/5/get_zip -patch_filename = gtest-1.8.0-5-wrap.zip -patch_hash = 7eeaede4aa2610a403313b74e04baf91ccfbaef03203d8f56312e22df1834ec5 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.8.1/1/get_zip +patch_filename = gtest-1.8.1-1-wrap.zip +patch_hash = f79f5fd46e09507b3f2e09a51ea6eb20020effe543335f5aee59f30cc8d15805 diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 2e0629c10..3e64a4ab2 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -1,4 +1,4 @@ [wrap-git] directory = libass url = https://github.com/TypesettingTools/libass.git -revision = meson +revision = meson-pr diff --git a/subprojects/zlib.wrap b/subprojects/zlib.wrap index 97de00ef7..91c1d4d99 100644 --- a/subprojects/zlib.wrap +++ b/subprojects/zlib.wrap @@ -5,6 +5,6 @@ source_url = http://zlib.net/fossils/zlib-1.2.11.tar.gz source_filename = zlib-1.2.11.tar.gz source_hash = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 -patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/3/get_zip -patch_filename = zlib-1.2.11-3-wrap.zip -patch_hash = f07dc491ab3d05daf00632a0591e2ae61b470615b5b73bcf9b3f061fff65cff0 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/4/get_zip +patch_filename = zlib-1.2.11-4-wrap.zip +patch_hash = f733976fbfc59e0bcde01aa9469a24eeb16faf0a4280b17e9eaa60a301d75657 From a853f7c4b0f79a27c6c14379cb4e039074c33e05 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 15:12:28 -0400 Subject: [PATCH 091/185] Windows installer: always include vc+ runtime --- packages/win_installer/aegisub3.iss | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/win_installer/aegisub3.iss b/packages/win_installer/aegisub3.iss index 2683e02c1..4ca458efc 100644 --- a/packages/win_installer/aegisub3.iss +++ b/packages/win_installer/aegisub3.iss @@ -50,9 +50,7 @@ ArchitecturesAllowed=x64 #include "fragment_automation.iss" #include "fragment_translations.iss" #include "fragment_spelling.iss" -#ifdef DEPCTRL #include "fragment_runtimes.iss" -#endif [Code] #include "fragment_shell_code.iss" From 7befd5e7597d320783f06a26e4fd9e41f47ec10e Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 15:13:01 -0400 Subject: [PATCH 092/185] gitignore: mass cleaning --- .gitignore | 47 ++++------------------------------------------- 1 file changed, 4 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index 4a19137ba..7a967423c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,48 +1,11 @@ -*.App -*.[oadi] -*.ass -*.avi -*.bz2 -*.cache -*.dep -*.db -*.dll -*.dmg -*.exe -*.gch -*.gz +*.vcxproj.user *.idb -*.ilk -*.log -*.manifest -*.mkv -*.mo -*.ncb -*.obj -*.opensdf -*.orig -*.patch -*.pch *.pdb -*.profdata -*.profraw -*.sdf -*.so -*.srt -*.suo -*.swp -*.ts -*.user -*.vsp -*.y4m -*.zip -*~ +*.mo +*.exe -/bin +/output /include -/ipch -/lib -/obj /tests/data .lvimrc @@ -65,7 +28,6 @@ git_version.xml packages/desktop/aegisub.desktop packages/desktop/aegisub.desktop.template packages/win_installer/vendor -src/aegisub src/libresrc/bitmap.cpp src/libresrc/bitmap.h src/libresrc/default_config.cpp @@ -79,7 +41,6 @@ tools/osx-bundle-restart-helper tools/osx-bundle.sed tools/repack-thes-dict tools/repack-thes-dict.dSYM -vendor/fribidi vendor/luajit/src/host/buildvm vendor/luajit/src/host/minilua vendor/luajit/src/host/buildvm_arch.h From 5e14a9265b28219f151db4499f0cb3ad47aa8e5b Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 21 Jul 2019 15:14:26 -0400 Subject: [PATCH 093/185] meson: attempt to wrangle dependencies --- meson.build | 39 +++++++++++++++++++++++++++++---------- meson_options.txt | 3 +++ src/include/agi_pre.h | 2 +- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/meson.build b/meson.build index 1765e6c47..acdba7448 100644 --- a/meson.build +++ b/meson.build @@ -49,15 +49,35 @@ if not iconv_dep.found() and host_machine.system() == 'windows' endif deps += iconv_dep -deps += dependency('libass', version: '>=0.9.7') +deps += dependency('libass', version: '>=0.9.7', + fallback: ['libass', 'libass_dep']) deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', 'system', 'thread']) -deps += dependency('zlib') +deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) -icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1') +# TODO: overhaul all this to properly handle windows vs non-windows +wx_dep = dependency('wxWidgets', version: '>=3.0.0', required: false, + modules: ['std', 'stc', 'gl']) +if not wx_dep.found() + deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') + add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') + add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') +endif +deps += wx_dep + +icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: false) +icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: false) +if not (icu_uc_dep.found() and icu_i18n_dep.found()) + deps_inc += include_directories(get_option('icu_path') / 'include') +endif +if not icu_uc_dep.found() # check for non-empty, only work with windows, etc + icu_uc_dep = cxx.find_library('icuuc', dirs: get_option('icu_path') / 'lib64') +endif deps += icu_uc_dep -icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1') +if not icu_i18n_dep.found() + icu_i18n_dep = cxx.find_library('icuin', dirs: get_option('icu_path') / 'lib64') +endif deps += icu_i18n_dep dep_avail = [] @@ -68,11 +88,11 @@ foreach dep: [ ['portaudio-2.0', '', 'PortAudio'], ['openal', '>=0.0.8', 'OpenAL'], # video - ['ffms2', '', 'FFMS2'], + ['ffms2', '', 'FFMS2'], # needs a proper port # other ['fftw3', '', 'FFTW3'], - ['hunspell', '', 'Hunspell'], - ['uchardet', '', 'uchardet'], + ['hunspell', '', 'Hunspell'], # needs a proper port + ['uchardet', '', 'uchardet'], # needs a proper port ] d = dependency(dep[0], version: dep[1] != '' ? dep[1]: '>=0', required: false) @@ -152,9 +172,6 @@ else endif subdir('vendor/luabins/src') -deps += dependency('wxWidgets', version: '>=3.0.0', - modules: ['std', 'stc', 'gl']) - dep_gl = dependency('gl', required: false) if not dep_gl.found() if host_machine.system() == 'windows' @@ -174,6 +191,8 @@ endif deps += dep_gl +# sort out csri + acconf = configure_file(output: 'acconf.h', configuration: conf) subdir('automation') diff --git a/meson_options.txt b/meson_options.txt index ea1fe5e30..917aa32db 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,6 +13,9 @@ option('uchardet', type: 'feature', description: 'uchardet character encoding de option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') +option('icu_path', type: 'string', value: '', description: 'Path to ICU libraries on Windows') +option('wx_path', type: 'string', value: '', description: 'Path to wxWidgets libraries on Windows') + option('credit', type: 'string', value: '', description: 'Build credit shown in program title') option('enable_update_checker', type: 'boolean', value: false, description: 'Enable the update checker') diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h index 63e045dca..c40b0b862 100644 --- a/src/include/agi_pre.h +++ b/src/include/agi_pre.h @@ -49,7 +49,7 @@ #endif #ifndef _WIN32 -#include "../acconf.h" +#include "../../acconf.h" #endif #define WIN32_LEAN_AND_MEAN From 8704f837431ec83dd6e0258a36c63588c5f96d11 Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Wed, 28 Aug 2019 22:04:38 +0200 Subject: [PATCH 094/185] Fix git_version.h generation --- tools/version.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tools/version.sh b/tools/version.sh index 8cea0a3f3..114c38752 100755 --- a/tools/version.sh +++ b/tools/version.sh @@ -1,8 +1,8 @@ srcdir="$1" # If no git repo try to read from the existing git_version.h, for building from tarballs +version_h_path="${srcdir}/git_version.h" if ! test -d "${srcdir}/.git"; then - version_h_path="${srcdir}/build/git_version.h" if test -f "${version_h_path}"; then while read line; do set -- $line @@ -52,9 +52,6 @@ new_version_h="\ #define INSTALLER_VERSION \"${installer_version}\" #define RESOURCE_BASE_VERSION ${resource_version}" -# may not exist yet for out of tree builds -mkdir -p build -version_h_path="build/git_version.h" # Write it only if it's changed to avoid spurious rebuilds # This bizzare comparison method is due to that newlines in shell variables are very exciting @@ -68,7 +65,7 @@ export BUILD_GIT_VERSION_NUMBER="${git_revision}" export BUILD_GIT_VERSION_STRING="${git_version_str}" export VERSION_SOURCE="from git" -cat << EOF > build/git_version.xml +cat << EOF > "${srcdir}/git_version.xml" From 9fdf490cffaa7f8da09d277e846f05386580b5bd Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Mon, 30 Jan 2017 02:37:01 +0100 Subject: [PATCH 095/185] Use git rev-list to determine revision number --- tools/version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/version.sh b/tools/version.sh index 114c38752..a950bae2f 100755 --- a/tools/version.sh +++ b/tools/version.sh @@ -24,7 +24,7 @@ fi last_svn_revision=6962 last_svn_hash="16cd907fe7482cb54a7374cd28b8501f138116be" -git_revision=$(expr $last_svn_revision + $(git log --pretty=oneline $last_svn_hash..HEAD 2>/dev/null | wc -l)) +git_revision=$(expr $last_svn_revision + $(git rev-list --count $last_svn_hash..HEAD)) git_version_str=$(git describe --exact-match 2> /dev/null) installer_version='0.0.0' resource_version='0, 0, 0' From 2cb6d5b81490e24475d7b732edb2bcff40f629bf Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Sep 2019 17:38:59 -0400 Subject: [PATCH 096/185] meson: fix up OSX and non-MSVC detection --- meson.build | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/meson.build b/meson.build index acdba7448..5025f6e3d 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,8 @@ -project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', +project('Aegisub', ['c', 'cpp'], + license: 'BSD-3-Clause', meson_version: '>=0.49.0', - default_options: ['cpp_std=c++14', 'b_lto=true']) + default_options: ['c_std=c11', 'cpp_std=c++11', 'b_lto=true'], + version: '3.2.2') if host_machine.system() == 'windows' version_sh = find_program('tools/version.ps1') @@ -32,7 +34,10 @@ deps = [] deps_inc = [] if host_machine.system() == 'darwin' - add_languages('objc') + add_languages('objc', 'objcpp') + add_project_arguments('-DGL_SILENCE_DEPRECATION', language: 'cpp') + # meson does not currently support objcpp_std + add_project_arguments('-std=c++11', language: 'objcpp') elif host_machine.system() != 'windows' deps += dependency('fontconfig') endif @@ -56,22 +61,30 @@ deps += dependency('boost', version: '>=1.50.0', 'system', 'thread']) deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) -# TODO: overhaul all this to properly handle windows vs non-windows -wx_dep = dependency('wxWidgets', version: '>=3.0.0', required: false, +wx_dep = dependency('wxWidgets', version: '>=3.0.0', + required: cxx.get_id() != 'msvc', modules: ['std', 'stc', 'gl']) -if not wx_dep.found() - deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') - add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') - add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') +if not wx_dep.found() # this will only be hit with msvc + if get_option('wx_path') != '' + deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') + add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') + add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') + else + error('wxWidgets not found and no wx_path defined.') + endif endif deps += wx_dep -icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: false) -icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: false) +icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') +icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') if not (icu_uc_dep.found() and icu_i18n_dep.found()) - deps_inc += include_directories(get_option('icu_path') / 'include') + if get_option('icu_path') != '' + deps_inc += include_directories(get_option('icu_path') / 'include') + else + error('ICU not found and no icu_path defined.') + endif endif -if not icu_uc_dep.found() # check for non-empty, only work with windows, etc +if not icu_uc_dep.found() icu_uc_dep = cxx.find_library('icuuc', dirs: get_option('icu_path') / 'lib64') endif deps += icu_uc_dep @@ -122,6 +135,11 @@ if host_machine.system() == 'windows' and not get_option('directsound').disabled endif endif +if host_machine.system() == 'darwin' + frameworks_dep = dependency('appleframeworks', modules : ['CoreText', 'CoreFoundation']) + deps += frameworks_dep +endif + # TODO: OSS def_audio = get_option('default_audio_output') @@ -191,7 +209,7 @@ endif deps += dep_gl -# sort out csri +# TODO: csri acconf = configure_file(output: 'acconf.h', configuration: conf) From 9708ca8e5efb731e0c177a3665ed978564828379 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Sep 2019 17:42:37 -0400 Subject: [PATCH 097/185] Add virtual destructor to SignalBase Quashes a frequent warning --- libaegisub/include/libaegisub/signal.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libaegisub/include/libaegisub/signal.h b/libaegisub/include/libaegisub/signal.h index ca520e49f..091cc7873 100644 --- a/libaegisub/include/libaegisub/signal.h +++ b/libaegisub/include/libaegisub/signal.h @@ -100,6 +100,7 @@ namespace detail { SignalBase& operator=(SignalBase const&) = delete; protected: SignalBase() = default; + virtual ~SignalBase() {}; /// @brief Notify a slot that it has been disconnected /// @param tok Token to disconnect /// From 443dd5146d4ec7e580360d1835e925d8ac494fcc Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Tue, 23 Jul 2019 02:07:55 +0200 Subject: [PATCH 098/185] Properly build aegisub.desktop --- packages/meson.build | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/meson.build b/packages/meson.build index c114848f6..963505d10 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -4,10 +4,17 @@ c_pkg.set('AEGISUB_COMMAND', 'aegisub') if host_machine.system() == 'windows' elif host_machine.system() == 'darwin' else - configure_file(input: 'desktop/aegisub.desktop.template.in', - output: 'aegisub.desktop', - configuration: c_pkg, - install_dir: get_option('datadir') / 'applications') + desktop_template = configure_file(input: 'desktop/aegisub.desktop.template.in', + output: 'aegisub.desktop.template', + configuration: c_pkg) + + intltool_merge = find_program('intltool-merge') + desktop = custom_target('aegisub.desktop', + input: desktop_template, + output: 'aegisub.desktop', + command: [intltool_merge, '--desktop-style', '--quiet', '../po', '@INPUT@', '@OUTPUT@'], + install: true, + install_dir: get_option('datadir') / 'applications') endif aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] From 650954f28e0a56ff122612fb1e88208026872021 Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Mon, 19 Mar 2018 17:45:32 +0100 Subject: [PATCH 099/185] Move language specifications to LINGUAS file This is required when using i18n.merge_file. --- po/LINGUAS | 29 +++++++++++++++++++++++++++++ po/meson.build | 34 +--------------------------------- 2 files changed, 30 insertions(+), 33 deletions(-) create mode 100644 po/LINGUAS diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 000000000..7f49d7af9 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,29 @@ +ar +bg +ca +cs +da +de +el +es +eu +fa +fi +fr_FR +gl +hu +id +it +ja +ko +nl +pl +pt_BR +pt_PT +ru +sr_RS@latin +sr_RS +uk_UA +vi +zh_CN +zh_TW diff --git a/po/meson.build b/po/meson.build index 48bded975..5d61f0efc 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,34 +1,2 @@ i18n = import('i18n') -langs = [ - 'ar', - 'bg', - 'ca', - 'cs', - 'da', - 'de', - 'el', - 'es', - 'eu', - 'fa', - 'fi', - 'fr_FR', - 'gl', - 'hu', - 'id', - 'it', - 'ja', - 'ko', - 'nl', - 'pl', - 'pt_BR', - 'pt_PT', - 'ru', - 'sr_RS@latin', - 'sr_RS', - 'uk_UA', - 'vi', - 'zh_CN', - 'zh_TW', -] - -i18n.gettext('aegisub', languages: langs) +i18n.gettext('aegisub') From 6343d36169f02f29605f13318c5a8e7c901aa635 Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Tue, 23 Jul 2019 02:10:18 +0200 Subject: [PATCH 100/185] Add commented i18n.merge_file version Using that makes use of gettext (and msgfmt) rather than intltool, which is the proper way but requires a more recent gettext version and I'm not comfortable adding that dependency for now. Specifically, it would require updating the autotools chain as well as the template files are incompatible. See https://wiki.gnome.org/MigratingFromIntltoolToGettext for more info. --- packages/meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/meson.build b/packages/meson.build index 963505d10..2ce40828b 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -8,6 +8,17 @@ else output: 'aegisub.desktop.template', configuration: c_pkg) + # TODO: switch this to gettext from intltool + # requires modifying the autotools chain and a recent-ish gettext + # https://wiki.gnome.org/MigratingFromIntltoolToGettext + # + # i18n = import('i18n') + # i18n.merge_file(input: desktop_template, + # output: 'aegisub.desktop', + # type: 'desktop', + # po_dir: '../po', + # install: true, + # install_dir: join_paths(get_option('datadir'), 'applications')) intltool_merge = find_program('intltool-merge') desktop = custom_target('aegisub.desktop', input: desktop_template, From a91c4f70c335bd8cbeab23c7ebd3227bec65907c Mon Sep 17 00:00:00 2001 From: FichteFoll Date: Mon, 4 Feb 2019 15:31:32 +0100 Subject: [PATCH 101/185] Use i18n.merge_file for real Requires gettext 0.19, which is available on all major linux dists. Not compatible with autotools chain! (For now, anyway.) --- packages/desktop/aegisub.desktop.template.in | 6 ++--- packages/meson.build | 25 ++++++-------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/packages/desktop/aegisub.desktop.template.in b/packages/desktop/aegisub.desktop.template.in index b11a3e359..e36595c93 100644 --- a/packages/desktop/aegisub.desktop.template.in +++ b/packages/desktop/aegisub.desktop.template.in @@ -1,9 +1,9 @@ [Desktop Entry] Version=1.0 Type=Application -_Name=Aegisub -_GenericName=Subtitle Editor -_Comment=Create and edit subtitles for film and videos. +Name=Aegisub +GenericName=Subtitle Editor +Comment=Create and edit subtitles for film and videos. Exec=@AEGISUB_COMMAND@ %f TryExec=@AEGISUB_COMMAND@ Icon=aegisub diff --git a/packages/meson.build b/packages/meson.build index 2ce40828b..b4db1e0e0 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -8,24 +8,13 @@ else output: 'aegisub.desktop.template', configuration: c_pkg) - # TODO: switch this to gettext from intltool - # requires modifying the autotools chain and a recent-ish gettext - # https://wiki.gnome.org/MigratingFromIntltoolToGettext - # - # i18n = import('i18n') - # i18n.merge_file(input: desktop_template, - # output: 'aegisub.desktop', - # type: 'desktop', - # po_dir: '../po', - # install: true, - # install_dir: join_paths(get_option('datadir'), 'applications')) - intltool_merge = find_program('intltool-merge') - desktop = custom_target('aegisub.desktop', - input: desktop_template, - output: 'aegisub.desktop', - command: [intltool_merge, '--desktop-style', '--quiet', '../po', '@INPUT@', '@OUTPUT@'], - install: true, - install_dir: get_option('datadir') / 'applications') + i18n = import('i18n') + i18n.merge_file(input: desktop_template, + output: 'aegisub.desktop', + type: 'desktop', + po_dir: '../po', + install: true, + install_dir: join_paths(get_option('datadir'), 'applications')) endif aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] From b8e2cf83fdcaef7951592ec44e86004ce65827f3 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:18:06 +0100 Subject: [PATCH 102/185] fix PCHs on VS2019 * separate PCH for C and C++ * acconf.h now included in PCHs on windows, too * meson now auto-generates companion source files for PCH headers --- libaegisub/include/lagi_pre.h | 2 -- libaegisub/include/lagi_pre_c.h | 3 +++ libaegisub/meson.build | 5 ++-- src/include/agi_pre.cpp | 6 ----- src/include/agi_pre.h | 2 -- src/include/agi_pre_c.h | 46 +++++++++++++++++++++++++++++++++ src/meson.build | 5 ++-- 7 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 libaegisub/include/lagi_pre_c.h delete mode 100644 src/include/agi_pre.cpp create mode 100644 src/include/agi_pre_c.h diff --git a/libaegisub/include/lagi_pre.h b/libaegisub/include/lagi_pre.h index 50ce877e2..7dcf1cb2e 100644 --- a/libaegisub/include/lagi_pre.h +++ b/libaegisub/include/lagi_pre.h @@ -1,7 +1,5 @@ #ifdef __cplusplus -#ifndef _WIN32 #include "../acconf.h" -#endif #define WIN32_LEAN_AND_MEAN diff --git a/libaegisub/include/lagi_pre_c.h b/libaegisub/include/lagi_pre_c.h new file mode 100644 index 000000000..622cf2215 --- /dev/null +++ b/libaegisub/include/lagi_pre_c.h @@ -0,0 +1,3 @@ +#include "../acconf.h" + +#define WIN32_LEAN_AND_MEAN \ No newline at end of file diff --git a/libaegisub/meson.build b/libaegisub/meson.build index be19b4860..bb9842bfa 100644 --- a/libaegisub/meson.build +++ b/libaegisub/meson.build @@ -79,13 +79,12 @@ else endif libaegisub_cpp_pch = ['include/lagi_pre.h'] -if cxx.get_id() == 'msvc' - libaegisub_cpp_pch += 'include/lagi_pre.cpp' -endif +libaegisub_c_pch = ['include/lagi_pre_c.h'] libaegisub_inc = include_directories('include') libaegisub = static_library('aegisub', libaegisub_src, acconf, include_directories: [libaegisub_inc, deps_inc], cpp_pch: libaegisub_cpp_pch, + c_pch: libaegisub_c_pch, dependencies: deps) diff --git a/src/include/agi_pre.cpp b/src/include/agi_pre.cpp deleted file mode 100644 index d4d26d28c..000000000 --- a/src/include/agi_pre.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// A dummy file for compiling the precompiled header with VC++ -#if !defined(_MSC_VER) -#error "This file is only for use with MSVC." -#endif - -#include "agi_pre.h" diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h index c40b0b862..e82216b88 100644 --- a/src/include/agi_pre.h +++ b/src/include/agi_pre.h @@ -48,9 +48,7 @@ #define _CRT_SECURE_NO_WARNINGS #endif -#ifndef _WIN32 #include "../../acconf.h" -#endif #define WIN32_LEAN_AND_MEAN diff --git a/src/include/agi_pre_c.h b/src/include/agi_pre_c.h new file mode 100644 index 000000000..c4d6924f4 --- /dev/null +++ b/src/include/agi_pre_c.h @@ -0,0 +1,46 @@ +// Copyright (c) 2006, Rodrigo Braz Monteiro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Aegisub Project http://www.aegisub.org/ + +#include "../../acconf.h" + +#define WIN32_LEAN_AND_MEAN + +#ifdef _WIN32 +#include +#include +#else +#include +#endif + +#ifdef HAVE_OPENGL_GL_H +#include +#else +#include +#endif + diff --git a/src/meson.build b/src/meson.build index bf6a564f1..34d5da291 100644 --- a/src/meson.build +++ b/src/meson.build @@ -198,13 +198,12 @@ foreach opt: opt_src endforeach aegisub_cpp_pch = ['include/agi_pre.h'] -if cxx.get_id() == 'msvc' - aegisub_cpp_pch += 'include/agi_pre.cpp' -endif +aegisub_c_pch = ['include/agi_pre_c.h'] aegisub = executable('aegisub', aegisub_src, version_h, acconf, link_with: [libresrc, libluabins, libaegisub], include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc], cpp_pch: aegisub_cpp_pch, + c_pch: aegisub_c_pch, install: true, dependencies: deps) From b6c0f2d5448b7063baedb326d8179aa3b003da34 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:23:40 +0100 Subject: [PATCH 103/185] meson: don't build fontconfig file lister on windows --- meson.build | 2 ++ src/meson.build | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 5025f6e3d..5175005be 100644 --- a/meson.build +++ b/meson.build @@ -33,12 +33,14 @@ conf.set('WITH_UPDATE_CHECKER', get_option('enable_update_checker')) deps = [] deps_inc = [] +conf.set('WITH_FONTCONFIG', '0') if host_machine.system() == 'darwin' add_languages('objc', 'objcpp') add_project_arguments('-DGL_SILENCE_DEPRECATION', language: 'cpp') # meson does not currently support objcpp_std add_project_arguments('-std=c++11', language: 'objcpp') elif host_machine.system() != 'windows' + conf.set('WITH_FONTCONFIG', '1') deps += dependency('fontconfig') endif diff --git a/src/meson.build b/src/meson.build index 34d5da291..e01353ae4 100644 --- a/src/meson.build +++ b/src/meson.build @@ -171,7 +171,7 @@ if host_machine.system() == 'darwin' 'osx/retina_helper.mm', 'osx/scintilla_ime.mm', ] -else +elif conf.get('WITH_FONTCONFIG') == '1' aegisub_src += 'font_file_lister_fontconfig.cpp' endif From 609d38e605ba099081942372d8c85b6a76a6f2a0 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:28:12 +0100 Subject: [PATCH 104/185] meson: update dependencies switch back to official harfbuzz upstream now that meson has landed --- subprojects/harfbuzz.wrap | 5 ++--- subprojects/libass.wrap | 2 +- subprojects/libpng.wrap | 14 +++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index 20cafdae6..3d320e894 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -1,5 +1,4 @@ [wrap-git] directory = harfbuzz -# Change this URL once upstreamed! -url = https://github.com/tp-m/harfbuzz.git -revision = meson-rebased +url = https://github.com/harfbuzz/harfbuzz +revision = master diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 3e64a4ab2..3e8e691d0 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -1,4 +1,4 @@ [wrap-git] directory = libass url = https://github.com/TypesettingTools/libass.git -revision = meson-pr +revision = meson-no-rasterizer-approximation diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap index 30774eb72..b7af9091c 100644 --- a/subprojects/libpng.wrap +++ b/subprojects/libpng.wrap @@ -1,10 +1,10 @@ [wrap-file] -directory = libpng-1.6.35 +directory = libpng-1.6.37 -source_url = https://github.com/glennrp/libpng/archive/v1.6.35.tar.gz -source_filename = libpng-1.6.35.tar.gz -source_hash = 6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210 +source_url = https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz +source_filename = libpng-1.6.37.tar.gz +source_hash = ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307 -patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.35/5/get_zip -patch_filename = libpng-1.6.35-5-wrap.zip -patch_hash = da42b18e8d75a88615bdbc1c7bbf1f739ae19f63a8e70d96c90bc448326ae6b7 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.37/1/get_zip +patch_filename = libpng-1.6.37-1-wrap.zip +patch_hash = 9a863ae8a5657315a484c94c51f9f636b1fb9f49a15196cc896b72e5f21d78f0 From e56ab6c78498a3ab63ecce88f36df6eaae8b6824 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:29:31 +0100 Subject: [PATCH 105/185] meson: define BOOST_USE_WINDOWS_H on Windows fixes symbol redefinition errors in VS 2019 --- meson.build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meson.build b/meson.build index 5175005be..db004ef2a 100644 --- a/meson.build +++ b/meson.build @@ -58,9 +58,14 @@ deps += iconv_dep deps += dependency('libass', version: '>=0.9.7', fallback: ['libass', 'libass_dep']) + deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', 'system', 'thread']) +if host_machine.system() == 'windows' + conf.set('BOOST_USE_WINDOWS_H', '1') +endif + deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) wx_dep = dependency('wxWidgets', version: '>=3.0.0', From 23e86bf074193ea338677082ed70c8ea3a46bade Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:30:01 +0100 Subject: [PATCH 106/185] meson: build libiconv as static library --- subprojects/iconv/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/iconv/meson.build b/subprojects/iconv/meson.build index 75261a585..eee208a42 100644 --- a/subprojects/iconv/meson.build +++ b/subprojects/iconv/meson.build @@ -14,6 +14,6 @@ iconv_incs = include_directories( 'libiconv' ) -libiconv = library('iconv', iconv_src, include_directories: iconv_incs) +libiconv = static_library('iconv', iconv_src, include_directories: iconv_incs) libiconv_dep = declare_dependency(link_with: libiconv, include_directories: iconv_incs) From 18fe7918f3cb36a2411454cc8789b981d7abf4c8 Mon Sep 17 00:00:00 2001 From: line0 Date: Tue, 31 Mar 2020 21:19:15 +0200 Subject: [PATCH 107/185] meson: make boost honor the global default_library option --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index db004ef2a..5307f06a1 100644 --- a/meson.build +++ b/meson.build @@ -61,7 +61,8 @@ deps += dependency('libass', version: '>=0.9.7', deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', - 'system', 'thread']) + 'system', 'thread'], + static: get_option('default_library') == 'static') if host_machine.system() == 'windows' conf.set('BOOST_USE_WINDOWS_H', '1') endif From f0393950035b5968f074f26b3ad58b25a92fdb02 Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 00:56:21 +0200 Subject: [PATCH 108/185] meson: generate git_version header in build root rather than within the source tree fixes an issue where the windows version of the git version update script generated the header in a place where it couldn't be found by the include in version.cpp --- meson.build | 2 +- tools/version.ps1 | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 5307f06a1..20fc56fe0 100644 --- a/meson.build +++ b/meson.build @@ -11,7 +11,7 @@ else endif version_inc = include_directories('.') version_h = custom_target('git_version.h', - command: [version_sh, meson.source_root()], + command: [version_sh, meson.current_build_dir()], build_by_default: true, build_always_stale: true, # has internal check whether target file will be refreshed output: ['git_version.h', 'git_version.xml']) diff --git a/tools/version.ps1 b/tools/version.ps1 index 03d02dbef..0d61c7176 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -1,20 +1,32 @@ #!/usr/bin/env powershell + +param ( + [Parameter(Position = 0, Mandatory = $false)] + [string]$BuildRoot = $null +) + $lastSvnRevision = 6962 $lastSvnHash = '16cd907fe7482cb54a7374cd28b8501f138116be' $defineNumberMatch = [regex] '^#define\s+(\w+)\s+(\d+)$' $defineStringMatch = [regex] "^#define\s+(\w+)\s+[`"']?(.+?)[`"']?$" $semVerMatch = [regex] 'v?(\d+)\.(\d+).(\d+)(?:-(\w+))?' - $repositoryRootPath = Join-Path $PSScriptRoot .. | Resolve-Path if (!(git -C $repositoryRootPath rev-parse --is-inside-work-tree 2>$null)) { throw "$repositoryRootPath is not a git repository" } -$gitVersionHeaderPath = Join-Path $repositoryRootPath 'src' | Join-Path -ChildPath 'include' | Join-Path -ChildPath 'aegisub' ` - | Join-Path -ChildPath 'git_version.h' -$gitVersionXmlPath = Join-Path $repositoryRootPath 'packages' | Join-Path -ChildPath 'win_installer' ` - | Join-Path -ChildPath 'git_version.xml' +if ($BuildRoot -eq $null -or $BuildRoot.Trim() -eq "") { + $BuildRoot = $repositoryRootPath +} + +# support legacy in-tree builds +if ([System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $BuildRoot)) -eq + [System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $repositoryRootPath))) { + $BuildRoot = Join-Path $repositoryRootPath 'build' + } +$gitVersionHeaderPath = Join-Path $BuildRoot 'git_version.h' +$gitVersionXmlPath = Join-Path $repositoryRootPath 'build' | Join-Path -ChildPath 'git_version.xml' $version = @{} if (Test-Path $gitVersionHeaderPath) { From 37230683fba78959286db79926f8f65a7ddad829 Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 01:14:53 +0200 Subject: [PATCH 109/185] utils: work around missing C++11 char16_t overload in wx string conversion --- src/utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.cpp b/src/utils.cpp index 2416aa7a2..69c53bd1c 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -275,7 +275,7 @@ wxString LocalizedLanguageName(wxString const& lang) { icu::UnicodeString ustr; iculoc.getDisplayName(iculoc, ustr); #ifdef _MSC_VER - return wxString(ustr.getBuffer()); + return wxString((const wchar_t*)ustr.getBuffer()); #else std::string utf8; ustr.toUTF8String(utf8); From 88e24db7339e0fe65698c22dd2aec776eec733ff Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 01:27:16 +0200 Subject: [PATCH 110/185] meson: add support for building wxWidgets as a subproject (WIP) monolithic build only and disabled precompiled headers due to limited cmake support in meson still missing linker dependencies refs to Windows SDK libs --- meson.build | 27 +++++++++++++++++++++++---- subprojects/wxWidgets.wrap | 5 +++++ 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 subprojects/wxWidgets.wrap diff --git a/meson.build b/meson.build index 20fc56fe0..c85f076bc 100644 --- a/meson.build +++ b/meson.build @@ -1,9 +1,11 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', - meson_version: '>=0.49.0', + meson_version: '>=0.51.0', default_options: ['c_std=c11', 'cpp_std=c++11', 'b_lto=true'], version: '3.2.2') +cmake = import('cmake') + if host_machine.system() == 'windows' version_sh = find_program('tools/version.ps1') else @@ -72,16 +74,33 @@ deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) wx_dep = dependency('wxWidgets', version: '>=3.0.0', required: cxx.get_id() != 'msvc', modules: ['std', 'stc', 'gl']) -if not wx_dep.found() # this will only be hit with msvc + +if wx_dep.found() + deps += wx_dep +else # this will only be hit with msvc if get_option('wx_path') != '' deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') else - error('wxWidgets not found and no wx_path defined.') + buildShared = 'ON' + if get_option('default_library') == 'static' + buildShared = 'OFF' + endif + + wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', + '-DwxBUILD_PRECOMP=OFF', # breaks project generation w/ meson + '-DwxBUILD_SHARED=@0@'.format(buildShared), + '-DwxBUILD_MONOLITHIC=ON']) + deps += [ + wx.dependency('mono'), + wx.dependency('wxzlib'), + wx.dependency('wxpng'), + wx.dependency('wxexpat'), + wx.dependency('wxscintilla') + ] endif endif -deps += wx_dep icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') diff --git a/subprojects/wxWidgets.wrap b/subprojects/wxWidgets.wrap new file mode 100644 index 000000000..a77194055 --- /dev/null +++ b/subprojects/wxWidgets.wrap @@ -0,0 +1,5 @@ +[wrap-git] +directory = wxWidgets +url = https://github.com/wxWidgets/wxWidgets.git +revision = master +clone-recursive = true \ No newline at end of file From bfdcbdefad0f177317748d85cbf93532c4063c45 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 12 Apr 2020 21:51:28 +0200 Subject: [PATCH 111/185] meson: add missing link dependencies on windows --- meson.build | 23 +++++++++++++++++++---- src/meson.build | 14 ++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index c85f076bc..5ba12f0f0 100644 --- a/meson.build +++ b/meson.build @@ -89,9 +89,9 @@ else # this will only be hit with msvc endif wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', - '-DwxBUILD_PRECOMP=OFF', # breaks project generation w/ meson + '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson '-DwxBUILD_SHARED=@0@'.format(buildShared), - '-DwxBUILD_MONOLITHIC=ON']) + '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson deps += [ wx.dependency('mono'), wx.dependency('wxzlib'), @@ -99,6 +99,19 @@ else # this will only be hit with msvc wx.dependency('wxexpat'), wx.dependency('wxscintilla') ] + + if host_machine.system() == 'windows' + if cc.has_header('rpc.h') + deps += cc.find_library('rpcrt4', required: true) + else + error('Missing Windows SDK RPC Library (rpc.h / rpcrt4.lib)') + endif + if cc.has_header('commctrl.h') + deps += cc.find_library('comctl32', required: true) + else + error('Missing Windows SDK Common Controls Library (commctrl.h / comctl32.lib)') + endif + endif endif endif @@ -155,8 +168,10 @@ if host_machine.system() == 'windows' and not get_option('directsound').disabled if not have_dsound_h and get_option('directsound').enabled() error('DirectSound enabled but dsound.h not found') endif - if dsound_dep.found() and winmm_dep.found() and ole32_dep.found() and have_dsound_h - deps += [dsound_dep, winmm_dep, ole32_dep] + + dxguid_dep = cc.find_library('dxguid', required: true) + if dsound_dep.found() and winmm_dep.found() and ole32_dep.found() and dxguid_dep.found() and have_dsound_h + deps += [dsound_dep, winmm_dep, ole32_dep, dxguid_dep] conf.set('WITH_DIRECTSOUND', '1') dep_avail += 'DirectSound' endif diff --git a/src/meson.build b/src/meson.build index e01353ae4..bf932654e 100644 --- a/src/meson.build +++ b/src/meson.build @@ -171,6 +171,20 @@ if host_machine.system() == 'darwin' 'osx/retina_helper.mm', 'osx/scintilla_ime.mm', ] +elif host_machine.system() == 'windows' + aegisub_src += [ + 'font_file_lister_gdi.cpp' + ] + if cc.has_header('wingdi.h') + deps += cc.find_library('gdi32', required: true) + else + error('Missing Windows SDK GDI Library (wingdi.h / gdi32.lib)') + endif + if cc.has_header('usp10.h') + deps += cc.find_library('usp10', required: true) + else + error('Missing Windows SDK Uniscribe Library (usp10.h / usp10.lib)') + endif elif conf.get('WITH_FONTCONFIG') == '1' aegisub_src += 'font_file_lister_fontconfig.cpp' endif From 2e613f547695d5ecc829afb3743f09c7d2ac249f Mon Sep 17 00:00:00 2001 From: line0 Date: Thu, 21 May 2020 09:07:58 +0200 Subject: [PATCH 112/185] meson: flag aegisub as a GUI app --- src/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index bf932654e..7e5dc7788 100644 --- a/src/meson.build +++ b/src/meson.build @@ -220,4 +220,5 @@ aegisub = executable('aegisub', aegisub_src, version_h, acconf, cpp_pch: aegisub_cpp_pch, c_pch: aegisub_c_pch, install: true, - dependencies: deps) + dependencies: deps, + gui_app: true) From f6b74331dae472ad855a6eaa9fb238f609ac04de Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:02:31 +0000 Subject: [PATCH 113/185] meson: update zlib wrapper --- meson.build | 4 ++-- subprojects/zlib.wrap | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 5ba12f0f0..afcf8e247 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', - meson_version: '>=0.51.0', + meson_version: '>=0.55.0', default_options: ['c_std=c11', 'cpp_std=c++11', 'b_lto=true'], version: '3.2.2') @@ -69,7 +69,7 @@ if host_machine.system() == 'windows' conf.set('BOOST_USE_WINDOWS_H', '1') endif -deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) +deps += dependency('zlib') wx_dep = dependency('wxWidgets', version: '>=3.0.0', required: cxx.get_id() != 'msvc', diff --git a/subprojects/zlib.wrap b/subprojects/zlib.wrap index 91c1d4d99..ce20fb053 100644 --- a/subprojects/zlib.wrap +++ b/subprojects/zlib.wrap @@ -1,10 +1,12 @@ [wrap-file] directory = zlib-1.2.11 - source_url = http://zlib.net/fossils/zlib-1.2.11.tar.gz source_filename = zlib-1.2.11.tar.gz source_hash = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/5/get_zip +patch_filename = zlib-1.2.11-5-wrap.zip +patch_hash = 728c8e24acbc2e6682fbd950fec39e2fc77528af361adb87259f8a8511434004 + +[provide] +zlib = zlib_dep -patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/4/get_zip -patch_filename = zlib-1.2.11-4-wrap.zip -patch_hash = f733976fbfc59e0bcde01aa9469a24eeb16faf0a4280b17e9eaa60a301d75657 From 1fc019447ae3cd696a0b80ec9b44e013d5229017 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:06:35 +0000 Subject: [PATCH 114/185] meson: enable Lua 5.2 compat for both native and host builds --- subprojects/luajit/meson.build | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/subprojects/luajit/meson.build b/subprojects/luajit/meson.build index 2a838bd18..bc74a2935 100644 --- a/subprojects/luajit/meson.build +++ b/subprojects/luajit/meson.build @@ -7,21 +7,23 @@ system_deps = [ cc.find_library('m', required: false) ] -add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language: 'c') +# compat flag is needed for both the buildvm code generator (compiled natively) and luajit itself +add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language: 'c', native: true) +add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', language: 'c', native: false) if host_machine.system() == 'linux' - add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_LINUX', language: 'c') + add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_LINUX', language: 'c', native: true) readline_dep = cc.find_library('readline') ljvm_mode = 'elfasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'darwin' - add_project_arguments(['-DLUAJIT_OS=LUAJIT_OS_OSX'], language: 'c') + add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_OSX', language: 'c', native: true) readline_dep = cc.find_library('readline') ljvm_mode = 'machasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'windows' - add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_WINDOWS', language: 'c') + add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_WINDOWS', language: 'c', native: true) if cc.get_id() != 'msvc' - add_project_arguments('-malign-double', language: 'c') + add_project_arguments('-malign-double', language: 'c', native: true) endif readline_dep = [] ljvm_mode = 'peobj' From 130339a3d6c4349eb7875b6d27d0b615941c317e Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:07:14 +0000 Subject: [PATCH 115/185] meson: set correct flags when compiling LuaJIT on Windows --- subprojects/luajit/src/host/meson.build | 44 +++++++++++++++---------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/subprojects/luajit/src/host/meson.build b/subprojects/luajit/src/host/meson.build index d6ae5c943..5354f153f 100644 --- a/subprojects/luajit/src/host/meson.build +++ b/subprojects/luajit/src/host/meson.build @@ -11,25 +11,33 @@ endif dynasm_dasc = files('../vm_@0@.dasc'.format(dynasm_arch)) dasm = [minilua, files('../../dynasm/dynasm.lua')] -# BUG: meson does not resolve paths correctly for subprojects -hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir()) - -checkdefs = [ - ['LJ_ARCH_BITS', '64', ['-D', 'P64']], - ['LJ_HASJIT', '1', ['-D', 'JIT']], - ['LJ_HASFFI', '1', ['-D', 'FFI']], - ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], -] - -if host_machine.cpu_family() == 'x86' - checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] -endif - -foreach def: checkdefs - if cc.get_define(def[0], prefix: hpre) == def[1] - dasm += def[2] +if cc.get_id() == 'msvc' + # the cl.exe preprocessor seemingly removes/expands macros, so hardcode flags + dasm += ['-D', 'WIN', '-D', 'JIT', '-D', 'FFI'] + if host_machine.cpu_family() == 'x86_64' + dasm += ['-D', 'P64'] endif -endforeach +else + # BUG: meson does not resolve paths correctly for subprojects + hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir()) + + checkdefs = [ + ['LJ_ARCH_BITS', '64', ['-D', 'P64']], + ['LJ_HASJIT', '1', ['-D', 'JIT']], + ['LJ_HASFFI', '1', ['-D', 'FFI']], + ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], + ] + + if host_machine.cpu_family() == 'x86' + checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] + endif + + foreach def: checkdefs + if cc.get_define(def[0], prefix: hpre) == def[1] + dasm += def[2] + endif + endforeach +endif buildvm_src = files( 'buildvm.c', From 64df2d61c79836193b8c0e9b8023b389db87beda Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:07:46 +0000 Subject: [PATCH 116/185] meson: have iconv subproject override iconv dependency --- subprojects/iconv/meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/subprojects/iconv/meson.build b/subprojects/iconv/meson.build index eee208a42..66cdc9806 100644 --- a/subprojects/iconv/meson.build +++ b/subprojects/iconv/meson.build @@ -17,3 +17,5 @@ iconv_incs = include_directories( libiconv = static_library('iconv', iconv_src, include_directories: iconv_incs) libiconv_dep = declare_dependency(link_with: libiconv, include_directories: iconv_incs) + +meson.override_dependency('iconv', libiconv_dep) From d6ee06eb544629968dc80f9619d4a1631d0ce2a9 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:09:32 +0000 Subject: [PATCH 117/185] meson: add ICU wrap --- meson.build | 19 +- subprojects/icu.wrap | 11 + subprojects/packagefiles/icu/meson.build | 32 +++ .../icu/source/common/meson.build | 202 +++++++++++++++ .../icu/source/data/generate_icupkg_inc.py | 53 ++++ .../packagefiles/icu/source/data/meson.build | 44 ++++ .../packagefiles/icu/source/i18n/meson.build | 239 ++++++++++++++++++ .../packagefiles/icu/source/io/meson.build | 18 ++ .../packagefiles/icu/source/meson.build | 80 ++++++ .../icu/source/stubdata/meson.build | 1 + .../icu/source/tools/ctestfw/meson.build | 18 ++ .../icu/source/tools/icupkg/meson.build | 3 + .../icu/source/tools/pkgdata/meson.build | 3 + .../icu/source/tools/toolutil/meson.build | 30 +++ 14 files changed, 736 insertions(+), 17 deletions(-) create mode 100644 subprojects/icu.wrap create mode 100644 subprojects/packagefiles/icu/meson.build create mode 100644 subprojects/packagefiles/icu/source/common/meson.build create mode 100755 subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py create mode 100644 subprojects/packagefiles/icu/source/data/meson.build create mode 100644 subprojects/packagefiles/icu/source/i18n/meson.build create mode 100644 subprojects/packagefiles/icu/source/io/meson.build create mode 100644 subprojects/packagefiles/icu/source/meson.build create mode 100644 subprojects/packagefiles/icu/source/stubdata/meson.build create mode 100644 subprojects/packagefiles/icu/source/tools/ctestfw/meson.build create mode 100644 subprojects/packagefiles/icu/source/tools/icupkg/meson.build create mode 100644 subprojects/packagefiles/icu/source/tools/pkgdata/meson.build create mode 100644 subprojects/packagefiles/icu/source/tools/toolutil/meson.build diff --git a/meson.build b/meson.build index afcf8e247..3e5301c82 100644 --- a/meson.build +++ b/meson.build @@ -115,23 +115,8 @@ else # this will only be hit with msvc endif endif -icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') -icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') -if not (icu_uc_dep.found() and icu_i18n_dep.found()) - if get_option('icu_path') != '' - deps_inc += include_directories(get_option('icu_path') / 'include') - else - error('ICU not found and no icu_path defined.') - endif -endif -if not icu_uc_dep.found() - icu_uc_dep = cxx.find_library('icuuc', dirs: get_option('icu_path') / 'lib64') -endif -deps += icu_uc_dep -if not icu_i18n_dep.found() - icu_i18n_dep = cxx.find_library('icuin', dirs: get_option('icu_path') / 'lib64') -endif -deps += icu_i18n_dep +deps += dependency('icu-uc', version: '>=4.8.1.1') +deps += dependency('icu-i18n', version: '>=4.8.1.1') dep_avail = [] foreach dep: [ diff --git a/subprojects/icu.wrap b/subprojects/icu.wrap new file mode 100644 index 000000000..3aaf822c6 --- /dev/null +++ b/subprojects/icu.wrap @@ -0,0 +1,11 @@ +[wrap-file] +directory = icu +source_url = https://github.com/unicode-org/icu/releases/download/release-67-1/icu4c-67_1-src.tgz +source_filename = icu4c-67_1-src.tgz +source_hash = 94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc +patch_directory = icu + +[provide] +icu-uc = icuuc_dep +icu-io = icuio_dep +icu-i18n = icui18n_dep diff --git a/subprojects/packagefiles/icu/meson.build b/subprojects/packagefiles/icu/meson.build new file mode 100644 index 000000000..11e1cc25b --- /dev/null +++ b/subprojects/packagefiles/icu/meson.build @@ -0,0 +1,32 @@ +project('icu', 'c', 'cpp', + version: '67.1', + meson_version: '>=0.55.0', + default_options: 'cpp_std=c++17') + +cpp = meson.get_compiler('cpp') + +if host_machine.system() == 'windows' + add_project_arguments('-DWIN32', '-DWIN64', '-D_MBCS', '/utf-8', language : 'cpp') + add_project_arguments('-DWIN32', '-DWIN64', '-D_MBCS', '/utf-8', language : 'c') +endif + +if cpp.has_header('elf.h') + add_project_arguments('-DU_HAVE_ELF_H=1', language: 'c') + add_project_arguments('-DU_HAVE_ELF_H=1', language: 'cpp') +endif + +dl_dep = cpp.find_library('dl', required: false) +thread_dep = dependency('threads') + +# Compiler flags the users of this library must use. +usage_args = [] + +if get_option('default_library') == 'static' + add_project_arguments('-DU_STATIC_IMPLEMENTATION', language : 'c') + add_project_arguments('-DU_STATIC_IMPLEMENTATION', language : 'cpp') + usage_args = ['-DU_STATIC_IMPLEMENTATION'] +elif host_machine.system() == 'windows' + error('Shared library build not supported on Windows. Set default_library to static.') +endif + +subdir('source') diff --git a/subprojects/packagefiles/icu/source/common/meson.build b/subprojects/packagefiles/icu/source/common/meson.build new file mode 100644 index 000000000..6dad1a77a --- /dev/null +++ b/subprojects/packagefiles/icu/source/common/meson.build @@ -0,0 +1,202 @@ +uc_sources = files( + 'errorcode.cpp', + 'putil.cpp', + 'umath.cpp', + 'utypes.cpp', + 'uinvchar.cpp', + 'umutex.cpp', + 'ucln_cmn.cpp', + 'uinit.cpp', + 'uobject.cpp', + 'cmemory.cpp', + 'charstr.cpp', + 'cstr.cpp', + 'udata.cpp', + 'ucmndata.cpp', + 'udatamem.cpp', + 'umapfile.cpp', + 'udataswp.cpp', + 'utrie_swap.cpp', + 'ucol_swp.cpp', + 'utrace.cpp', + 'uhash.cpp', + 'uhash_us.cpp', + 'uenum.cpp', + 'ustrenum.cpp', + 'uvector.cpp', + 'ustack.cpp', + 'uvectr32.cpp', + 'uvectr64.cpp', + 'ucnv.cpp', + 'ucnv_bld.cpp', + 'ucnv_cnv.cpp', + 'ucnv_io.cpp', + 'ucnv_cb.cpp', + 'ucnv_err.cpp', + 'ucnvlat1.cpp', + 'ucnv_u7.cpp', + 'ucnv_u8.cpp', + 'ucnv_u16.cpp', + 'ucnv_u32.cpp', + 'ucnvscsu.cpp', + 'ucnvbocu.cpp', + 'ucnv_ext.cpp', + 'ucnvmbcs.cpp', + 'ucnv2022.cpp', + 'ucnvhz.cpp', + 'ucnv_lmb.cpp', + 'ucnvisci.cpp', + 'ucnvdisp.cpp', + 'ucnv_set.cpp', + 'ucnv_ct.cpp', + 'resource.cpp', + 'uresbund.cpp', + 'ures_cnv.cpp', + 'uresdata.cpp', + 'resbund.cpp', + 'resbund_cnv.cpp', + 'ucurr.cpp', + 'localebuilder.cpp', + 'localeprioritylist.cpp', + 'messagepattern.cpp', + 'ucat.cpp', + 'locmap.cpp', + 'uloc.cpp', + 'locid.cpp', + 'locutil.cpp', + 'locavailable.cpp', + 'locdispnames.cpp', + 'locdspnm.cpp', + 'loclikely.cpp', + 'locresdata.cpp', + 'lsr.cpp', + 'loclikelysubtags.cpp', + 'locdistance.cpp', + 'localematcher.cpp', + 'bytestream.cpp', + 'stringpiece.cpp', + 'bytesinkutil.cpp', + 'stringtriebuilder.cpp', + 'bytestriebuilder.cpp', + 'bytestrie.cpp', + 'bytestrieiterator.cpp', + 'ucharstrie.cpp', + 'ucharstriebuilder.cpp', + 'ucharstrieiterator.cpp', + 'dictionarydata.cpp', + 'edits.cpp', + 'appendable.cpp', + 'ustr_cnv.cpp', + 'unistr_cnv.cpp', + 'unistr.cpp', + 'unistr_case.cpp', + 'unistr_props.cpp', + 'utf_impl.cpp', + 'ustring.cpp', + 'ustrcase.cpp', + 'ucasemap.cpp', + 'ucasemap_titlecase_brkiter.cpp', + 'cstring.cpp', + 'ustrfmt.cpp', + 'ustrtrns.cpp', + 'ustr_wcs.cpp', + 'utext.cpp', + 'unistr_case_locale.cpp', + 'ustrcase_locale.cpp', + 'unistr_titlecase_brkiter.cpp', + 'ustr_titlecase_brkiter.cpp', + 'normalizer2impl.cpp', + 'normalizer2.cpp', + 'filterednormalizer2.cpp', + 'normlzr.cpp', + 'unorm.cpp', + 'unormcmp.cpp', + 'loadednormalizer2impl.cpp', + 'chariter.cpp', + 'schriter.cpp', + 'uchriter.cpp', + 'uiter.cpp', + 'patternprops.cpp', + 'uchar.cpp', + 'uprops.cpp', + 'ucase.cpp', + 'propname.cpp', + 'ubidi_props.cpp', + 'characterproperties.cpp', + 'ubidi.cpp', + 'ubidiwrt.cpp', + 'ubidiln.cpp', + 'ushape.cpp', + 'uscript.cpp', + 'uscript_props.cpp', + 'usc_impl.cpp', + 'unames.cpp', + 'utrie.cpp', + 'utrie2.cpp', + 'utrie2_builder.cpp', + 'ucptrie.cpp', + 'umutablecptrie.cpp', + 'bmpset.cpp', + 'unisetspan.cpp', + 'uset_props.cpp', + 'uniset_props.cpp', + 'uniset_closure.cpp', + 'uset.cpp', + 'uniset.cpp', + 'usetiter.cpp', + 'ruleiter.cpp', + 'caniter.cpp', + 'unifilt.cpp', + 'unifunct.cpp', + 'uarrsort.cpp', + 'brkiter.cpp', + 'ubrk.cpp', + 'brkeng.cpp', + 'dictbe.cpp', + 'filteredbrk.cpp', + 'rbbi.cpp', + 'rbbidata.cpp', + 'rbbinode.cpp', + 'rbbirb.cpp', + 'rbbiscan.cpp', + 'rbbisetb.cpp', + 'rbbistbl.cpp', + 'rbbitblb.cpp', + 'rbbi_cache.cpp', + 'serv.cpp', + 'servnotf.cpp', + 'servls.cpp', + 'servlk.cpp', + 'servlkf.cpp', + 'servrbf.cpp', + 'servslkf.cpp', + 'uidna.cpp', + 'usprep.cpp', + 'uts46.cpp', + 'punycode.cpp', + 'util.cpp', + 'util_props.cpp', + 'parsepos.cpp', + 'locbased.cpp', + 'cwchar.cpp', + 'wintz.cpp', + 'dtintrv.cpp', + 'ucnvsel.cpp', + 'propsvec.cpp', + 'ulist.cpp', + 'uloc_tag.cpp', + 'icudataver.cpp', + 'icuplug.cpp', + 'sharedobject.cpp', + 'simpleformatter.cpp', + 'unifiedcache.cpp', + 'uloc_keytype.cpp', + 'ubiditransform.cpp', + 'pluralmap.cpp', + 'static_unicode_sets.cpp', + 'restrace.cpp', +) + +uc_args = ['-DU_COMMON_IMPLEMENTATION'] +uc_link = [] +uc_deps = dl_dep diff --git a/subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py b/subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py new file mode 100755 index 000000000..c4265c686 --- /dev/null +++ b/subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py @@ -0,0 +1,53 @@ +import json +import sys + +host = sys.argv[1] +cpu_family = sys.argv[2] +outfile = sys.argv[3] + +with open('meson-info/intro-targets.json', 'r') as f: + targets = json.load(f) + +def get_arguments(name): + target = next(target for target in targets + if target['name'] == name) + sources = next(sources for sources in target['target_sources'] + if sources['language'] == 'c') + return sources['compiler'] + sources['parameters'] + +def quote(arguments): + return " ".join(json.dumps(arg) for arg in arguments) + +obj_arguments = get_arguments("pkgdata") + ['-c'] +lib_arguments = get_arguments("icutest") + ['-Wl,-Bsymbolic'] + +config = { + 'A': 'a', + 'LIBPREFIX': 'lib', + 'LIB_EXT_ORDER': '.', + 'COMPILE': quote(obj_arguments), + 'LIBFLAGS': '', # already included in COMPILE + 'LDICUDTFLAGS': '-nodefaultlibs -nostdlib', + 'RPATH_FLAGS': '', + 'BIR_LDFLAGS': '-Wl,-Bsymbolic', + 'AR': 'ar', + 'ARFLAGS': 'r', + 'RANLIB': 'ranlib', + 'LD_SONAME': '', + 'INSTALL_CMD': '' +} + +if host == 'darwin': + config['GENCCODE_ASSEMBLY_TYPE'] = '-a gcc-darwin' + config['SO'] = 'dylib' + config['SOBJ'] = 'dylib' + config['GENLIB'] = quote(lib_arguments + ['-dynamiclib', '-dynamic']) +else: + config['GENCCODE_ASSEMBLY_TYPE'] = '-a gcc' + config['SO'] = 'so' + config['SOBJ'] = 'so' + config['GENLIB'] = quote(lib_arguments + ['-shared']) + +with open(outfile, 'w') as f: + for k, v in config.items(): + f.write("{}={}\n".format(k, v)) diff --git a/subprojects/packagefiles/icu/source/data/meson.build b/subprojects/packagefiles/icu/source/data/meson.build new file mode 100644 index 000000000..ebac3b413 --- /dev/null +++ b/subprojects/packagefiles/icu/source/data/meson.build @@ -0,0 +1,44 @@ +icudata_lst = custom_target('icudata.lst', + # not sure how to ensure that @PRIVATE_DIR@ exists + #command: [icupkg, '-d', '@PRIVATE_DIR@', '--list', '-x', '*', '@INPUT@', '-o', '@OUTPUT@'], + command: [icupkg, '-d', '@OUTDIR@', '--list', '-x', '*', '@INPUT@', '-o', '@OUTPUT@'], + input: files('in/icudt67l.dat'), + output: 'icudata.lst') + +is_static = get_option('default_library') == 'static' + +if host_machine.system() == 'windows' # only msvc supported + data_lib_static = custom_target( + 'icudata_static', command: [pkgdata, '-q', '-c', '-e', 'icudt67', '-L', 'icudata_static', + '-d', '@OUTDIR@', '-s', '@OUTDIR@', '-p', 'icudt67l', + '-m', 'static', '@INPUT@'], + input: icudata_lst, output: 'icudata_static.lib') +else + if host_machine.system() == 'darwin' + suffix = is_static ? '.a' : '.dylib' + else + suffix = is_static ? '.a' : '.so' + endif + suffix = '.a' + + icupkg_inc = custom_target('icupkg.inc', + command: [python3, '@INPUT@', host_machine.system(), + host_machine.cpu_family(), '@OUTPUT@'], + input: 'generate_icupkg_inc.py', + output: 'icupkg.inc') + data_lib_static = custom_target( + 'icudata_static', command: [pkgdata, '-q', '-c', '-e', 'icudt67', '-L', 'icudata_static', + '-d', '@OUTDIR@', '-s', '@OUTDIR@', + '-p', 'icudt67l', '-O', icupkg_inc, + '-m', 'static', '@INPUT@'], + input: icudata_lst, output: 'libicudata_static' + suffix) +endif + +if is_static + data_lib = data_lib_static +else + # convert to proper library object to make sure rpath gets set properly + data_lib = library('icudata', link_whole: data_lib_static) +endif + +# -nodefaultlibs -nostdlib for stubdata diff --git a/subprojects/packagefiles/icu/source/i18n/meson.build b/subprojects/packagefiles/icu/source/i18n/meson.build new file mode 100644 index 000000000..916e39622 --- /dev/null +++ b/subprojects/packagefiles/icu/source/i18n/meson.build @@ -0,0 +1,239 @@ +i18n_sources = files( + 'ucln_in.cpp', + 'fmtable.cpp', + 'format.cpp', + 'msgfmt.cpp', + 'umsg.cpp', + 'numfmt.cpp', + 'unum.cpp', + 'decimfmt.cpp', + 'dcfmtsym.cpp', + 'fmtable_cnv.cpp', + 'choicfmt.cpp', + 'datefmt.cpp', + 'smpdtfmt.cpp', + 'reldtfmt.cpp', + 'dtfmtsym.cpp', + 'udat.cpp', + 'dtptngen.cpp', + 'udatpg.cpp', + 'nfrs.cpp', + 'nfrule.cpp', + 'nfsubs.cpp', + 'rbnf.cpp', + 'numsys.cpp', + 'unumsys.cpp', + 'ucsdet.cpp', + 'ucal.cpp', + 'calendar.cpp', + 'gregocal.cpp', + 'timezone.cpp', + 'simpletz.cpp', + 'olsontz.cpp', + 'astro.cpp', + 'taiwncal.cpp', + 'buddhcal.cpp', + 'persncal.cpp', + 'islamcal.cpp', + 'japancal.cpp', + 'gregoimp.cpp', + 'hebrwcal.cpp', + 'indiancal.cpp', + 'chnsecal.cpp', + 'cecal.cpp', + 'coptccal.cpp', + 'dangical.cpp', + 'ethpccal.cpp', + 'coleitr.cpp', + 'coll.cpp', + 'sortkey.cpp', + 'bocsu.cpp', + 'ucoleitr.cpp', + 'ucol.cpp', + 'ucol_res.cpp', + 'ucol_sit.cpp', + 'collation.cpp', + 'collationsettings.cpp', + 'collationdata.cpp', + 'collationtailoring.cpp', + 'collationdatareader.cpp', + 'collationdatawriter.cpp', + 'collationfcd.cpp', + 'collationiterator.cpp', + 'utf16collationiterator.cpp', + 'utf8collationiterator.cpp', + 'uitercollationiterator.cpp', + 'collationsets.cpp', + 'collationcompare.cpp', + 'collationfastlatin.cpp', + 'collationkeys.cpp', + 'rulebasedcollator.cpp', + 'collationroot.cpp', + 'collationrootelements.cpp', + 'collationdatabuilder.cpp', + 'collationweights.cpp', + 'collationruleparser.cpp', + 'collationbuilder.cpp', + 'collationfastlatinbuilder.cpp', + 'listformatter.cpp', + 'ulistformatter.cpp', + 'strmatch.cpp', + 'usearch.cpp', + 'search.cpp', + 'stsearch.cpp', + 'translit.cpp', + 'utrans.cpp', + 'esctrn.cpp', + 'unesctrn.cpp', + 'funcrepl.cpp', + 'strrepl.cpp', + 'tridpars.cpp', + 'cpdtrans.cpp', + 'rbt.cpp', + 'rbt_data.cpp', + 'rbt_pars.cpp', + 'rbt_rule.cpp', + 'rbt_set.cpp', + 'nultrans.cpp', + 'remtrans.cpp', + 'casetrn.cpp', + 'titletrn.cpp', + 'tolowtrn.cpp', + 'toupptrn.cpp', + 'anytrans.cpp', + 'name2uni.cpp', + 'uni2name.cpp', + 'nortrans.cpp', + 'quant.cpp', + 'transreg.cpp', + 'brktrans.cpp', + 'regexcmp.cpp', + 'rematch.cpp', + 'repattrn.cpp', + 'regexst.cpp', + 'regextxt.cpp', + 'regeximp.cpp', + 'uregex.cpp', + 'uregexc.cpp', + 'ulocdata.cpp', + 'measfmt.cpp', + 'currfmt.cpp', + 'curramt.cpp', + 'currunit.cpp', + 'measure.cpp', + 'utmscale.cpp', + 'csdetect.cpp', + 'csmatch.cpp', + 'csr2022.cpp', + 'csrecog.cpp', + 'csrmbcs.cpp', + 'csrsbcs.cpp', + 'csrucode.cpp', + 'csrutf8.cpp', + 'inputext.cpp', + 'wintzimpl.cpp', + 'windtfmt.cpp', + 'winnmfmt.cpp', + 'basictz.cpp', + 'dtrule.cpp', + 'rbtz.cpp', + 'tzrule.cpp', + 'tztrans.cpp', + 'vtzone.cpp', + 'zonemeta.cpp', + 'standardplural.cpp', + 'upluralrules.cpp', + 'plurrule.cpp', + 'plurfmt.cpp', + 'selfmt.cpp', + 'dtitvfmt.cpp', + 'dtitvinf.cpp', + 'udateintervalformat.cpp', + 'tmunit.cpp', + 'tmutamt.cpp', + 'tmutfmt.cpp', + 'currpinf.cpp', + 'uspoof.cpp', + 'uspoof_impl.cpp', + 'uspoof_build.cpp', + 'uspoof_conf.cpp', + 'smpdtfst.cpp', + 'ztrans.cpp', + 'zrule.cpp', + 'vzone.cpp', + 'fphdlimp.cpp', + 'fpositer.cpp', + 'ufieldpositer.cpp', + 'decNumber.cpp', + 'decContext.cpp', + 'alphaindex.cpp', + 'tznames.cpp', + 'tznames_impl.cpp', + 'tzgnames.cpp', + 'tzfmt.cpp', + 'compactdecimalformat.cpp', + 'gender.cpp', + 'region.cpp', + 'scriptset.cpp', + 'uregion.cpp', + 'reldatefmt.cpp', + 'quantityformatter.cpp', + 'measunit.cpp', + 'measunit_extra.cpp', + 'sharedbreakiterator.cpp', + 'scientificnumberformatter.cpp', + 'dayperiodrules.cpp', + 'nounit.cpp', + 'number_affixutils.cpp', + 'number_compact.cpp', + 'number_decimalquantity.cpp', + 'number_decimfmtprops.cpp', + 'number_fluent.cpp', + 'number_formatimpl.cpp', + 'number_grouping.cpp', + 'number_integerwidth.cpp', + 'number_longnames.cpp', + 'number_modifiers.cpp', + 'number_notation.cpp', + 'number_output.cpp', + 'number_padding.cpp', + 'number_patternmodifier.cpp', + 'number_patternstring.cpp', + 'number_rounding.cpp', + 'number_scientific.cpp', + 'number_utils.cpp', + 'number_asformat.cpp', + 'number_mapper.cpp', + 'number_multiplier.cpp', + 'number_currencysymbols.cpp', + 'number_skeletons.cpp', + 'number_capi.cpp', + 'double-conversion-string-to-double.cpp', + 'double-conversion-double-to-string.cpp', + 'double-conversion-bignum-dtoa.cpp', + 'double-conversion-bignum.cpp', + 'double-conversion-cached-powers.cpp', + 'double-conversion-fast-dtoa.cpp', + 'double-conversion-strtod.cpp', + 'string_segment.cpp', + 'numparse_parsednumber.cpp', + 'numparse_impl.cpp', + 'numparse_symbols.cpp', + 'numparse_decimal.cpp', + 'numparse_scientific.cpp', + 'numparse_currency.cpp', + 'numparse_affixes.cpp', + 'numparse_compositions.cpp', + 'numparse_validators.cpp', + 'numrange_fluent.cpp', + 'numrange_impl.cpp', + 'erarules.cpp', + 'formattedvalue.cpp', + 'formattedval_iterimpl.cpp', + 'formattedval_sbimpl.cpp', + 'formatted_string_builder.cpp', +) + +i18n_args = '-DU_I18N_IMPLEMENTATION' +i18n_link = ['uc'] +i18n_deps = [] diff --git a/subprojects/packagefiles/icu/source/io/meson.build b/subprojects/packagefiles/icu/source/io/meson.build new file mode 100644 index 000000000..514c0924d --- /dev/null +++ b/subprojects/packagefiles/icu/source/io/meson.build @@ -0,0 +1,18 @@ +io_sources = files( + 'locbund.cpp', + 'ufile.cpp', + 'ufmt_cmn.cpp', + 'uprintf.cpp', + 'uprntf_p.cpp', + 'uscanf.cpp', + 'uscanf_p.cpp', + 'ustdio.cpp', + 'sprintf.cpp', + 'sscanf.cpp', + 'ustream.cpp', + 'ucln_io.cpp', +) + +io_args = '-DU_IO_IMPLEMENTATION' +io_link = ['i18n', 'uc'] +io_deps = [] diff --git a/subprojects/packagefiles/icu/source/meson.build b/subprojects/packagefiles/icu/source/meson.build new file mode 100644 index 000000000..a144c9db3 --- /dev/null +++ b/subprojects/packagefiles/icu/source/meson.build @@ -0,0 +1,80 @@ +python3 = import('python').find_installation('python3') + +incdir = include_directories('common', 'i18n') +toolinc = include_directories('tools/toolutil') +ctestinc = include_directories('tools/ctestfw') + +subdir('stubdata') + +# get sources and dependencies for required libraries +subdir('common') +subdir('i18n') +subdir('io') +subdir('tools/toolutil') + +# create [library name]_lib_stub artifacts linking against stub data +icu_libs = ['uc', 'i18n', 'io', 'tu'] +foreach lib: icu_libs + liblinks = [] + foreach link: get_variable(lib + '_link') + liblinks += get_variable(link + '_lib_stub') + endforeach + set_variable(lib + '_lib_stub', library( + 'icu' + lib + '_stub', + get_variable(lib + '_sources'), + include_directories: incdir, + c_args: get_variable(lib + '_args'), + cpp_args: get_variable(lib + '_args'), + link_with: liblinks + [stubdata_lib], + dependencies: get_variable(lib + '_deps') + )) +endforeach + +# build tools and full data library using the libraries linked with the stub library +subdir('tools/icupkg') +subdir('tools/pkgdata') +subdir('data') + +# rebuild libraries linking with the full data library +foreach lib: icu_libs + liblinks = [] + foreach link: get_variable(lib + '_link') + liblinks += get_variable(link + '_lib') + endforeach + set_variable(lib + '_lib', library( + 'icu' + lib, + get_variable(lib + '_sources'), + include_directories: incdir, + c_args: get_variable(lib + '_args'), + cpp_args: get_variable(lib + '_args'), + link_with: liblinks + [data_lib], + dependencies: get_variable(lib + '_deps') + )) +endforeach + +# icutest not needed for bootstrapping, link with non-boostrap libs +subdir('tools/ctestfw') + +icudata_dep = declare_dependency(link_with: [data_lib], + compile_args: usage_args, + include_directories: incdir) + +icuuc_dep = declare_dependency(link_with: [uc_lib], + compile_args: usage_args, + include_directories: incdir) + +icuio_dep = declare_dependency(link_with: [io_lib], + compile_args: usage_args, + include_directories: incdir) + +icui18n_dep = declare_dependency(link_with: [i18n_lib], + compile_args: usage_args, + include_directories: incdir) + +icutu_dep = declare_dependency(link_with: [tu_lib], + compile_args: usage_args, + include_directories: incdir) + +icutest_dep = declare_dependency(link_with: [test_lib], + compile_args: usage_args, + include_directories: [incdir, ctestinc]) diff --git a/subprojects/packagefiles/icu/source/stubdata/meson.build b/subprojects/packagefiles/icu/source/stubdata/meson.build new file mode 100644 index 000000000..599aac88c --- /dev/null +++ b/subprojects/packagefiles/icu/source/stubdata/meson.build @@ -0,0 +1 @@ +stubdata_lib = library('icudata', 'stubdata.cpp', include_directories: incdir) diff --git a/subprojects/packagefiles/icu/source/tools/ctestfw/meson.build b/subprojects/packagefiles/icu/source/tools/ctestfw/meson.build new file mode 100644 index 000000000..0deee6d85 --- /dev/null +++ b/subprojects/packagefiles/icu/source/tools/ctestfw/meson.build @@ -0,0 +1,18 @@ +test_sources = files( + 'ctest.c', + 'tstdtmod.cpp', + 'testdata.cpp', + 'datamap.cpp', + 'uperf.cpp', + 'ucln_ct.c', +) + +test_args = '-DT_CTEST_IMPLEMENTATION' + +test_lib = library('icutest', + test_sources, + include_directories: [incdir, toolinc], + c_args: test_args, + cpp_args: test_args, + link_with: [data_lib, tu_lib, uc_lib], +) diff --git a/subprojects/packagefiles/icu/source/tools/icupkg/meson.build b/subprojects/packagefiles/icu/source/tools/icupkg/meson.build new file mode 100644 index 000000000..ef96ae33a --- /dev/null +++ b/subprojects/packagefiles/icu/source/tools/icupkg/meson.build @@ -0,0 +1,3 @@ +icupkg = executable('icupkg', 'icupkg.cpp', + include_directories: [incdir, toolinc], + link_with: [tu_lib_stub, i18n_lib_stub, uc_lib_stub, stubdata_lib]) diff --git a/subprojects/packagefiles/icu/source/tools/pkgdata/meson.build b/subprojects/packagefiles/icu/source/tools/pkgdata/meson.build new file mode 100644 index 000000000..2bacac6ac --- /dev/null +++ b/subprojects/packagefiles/icu/source/tools/pkgdata/meson.build @@ -0,0 +1,3 @@ +pkgdata = executable('pkgdata', 'pkgdata.cpp', 'pkgtypes.c', + include_directories: [incdir, toolinc], + link_with: [tu_lib_stub, i18n_lib_stub, uc_lib_stub, stubdata_lib]) diff --git a/subprojects/packagefiles/icu/source/tools/toolutil/meson.build b/subprojects/packagefiles/icu/source/tools/toolutil/meson.build new file mode 100644 index 000000000..cdbecb231 --- /dev/null +++ b/subprojects/packagefiles/icu/source/tools/toolutil/meson.build @@ -0,0 +1,30 @@ +tu_sources = files( + 'filestrm.cpp', + 'package.cpp', + 'pkgitems.cpp', + 'swapimpl.cpp', + 'toolutil.cpp', + 'unewdata.cpp', + 'collationinfo.cpp', + 'denseranges.cpp', + 'ucm.cpp', + 'ucmstate.cpp', + 'uoptions.cpp', + 'uparse.cpp', + 'ucbuf.cpp', + 'xmlparser.cpp', + 'writesrc.cpp', + 'pkg_icu.cpp', + 'pkg_genc.cpp', + 'pkg_gencmn.cpp', + 'ppucd.cpp', + 'flagparser.cpp', + 'filetools.cpp', + 'udbgutil.cpp', + 'dbgutil.cpp', + 'ucln_tu.cpp', +) + +tu_args = ['-DU_TOOLUTIL_IMPLEMENTATION'] +tu_link = ['uc', 'i18n'] +tu_deps = [] From ce791773f698037476b315a4edf45a0366fab1cb Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:13:11 +0000 Subject: [PATCH 118/185] meson: add Boost wrap --- meson.build | 21 ++++- meson_options.txt | 1 + subprojects/boost.wrap | 6 ++ .../boost/libs/chrono/meson.build | 15 ++++ .../boost/libs/filesystem/meson.build | 37 +++++++++ .../boost/libs/locale/meson.build | 78 +++++++++++++++++++ .../boost/libs/program_options/meson.build | 28 +++++++ .../packagefiles/boost/libs/regex/meson.build | 33 ++++++++ .../boost/libs/thread/meson.build | 30 +++++++ subprojects/packagefiles/boost/meson.build | 26 +++++++ 10 files changed, 271 insertions(+), 4 deletions(-) create mode 100644 subprojects/boost.wrap create mode 100644 subprojects/packagefiles/boost/libs/chrono/meson.build create mode 100644 subprojects/packagefiles/boost/libs/filesystem/meson.build create mode 100644 subprojects/packagefiles/boost/libs/locale/meson.build create mode 100644 subprojects/packagefiles/boost/libs/program_options/meson.build create mode 100644 subprojects/packagefiles/boost/libs/regex/meson.build create mode 100644 subprojects/packagefiles/boost/libs/thread/meson.build create mode 100644 subprojects/packagefiles/boost/meson.build diff --git a/meson.build b/meson.build index 3e5301c82..56752902a 100644 --- a/meson.build +++ b/meson.build @@ -61,10 +61,23 @@ deps += iconv_dep deps += dependency('libass', version: '>=0.9.7', fallback: ['libass', 'libass_dep']) -deps += dependency('boost', version: '>=1.50.0', - modules: ['chrono', 'filesystem', 'locale', 'regex', - 'system', 'thread'], - static: get_option('default_library') == 'static') +boost_modules = ['chrono', 'filesystem', 'thread', 'locale', 'regex'] +if not get_option('local_boost') + boost_dep = dependency('boost', version: '>=1.50.0', + modules: boost_modules, + required: cxx.get_id() != 'msvc', + static: get_option('default_library') == 'static') +endif + +if get_option('local_boost') or not boost_dep.found() + boost_dep = [] + boost = subproject('boost') + foreach module: boost_modules + boost_dep += boost.get_variable('boost_' + module + '_dep') + endforeach +endif + +deps += boost_dep if host_machine.system() == 'windows' conf.set('BOOST_USE_WINDOWS_H', '1') endif diff --git a/meson_options.txt b/meson_options.txt index 917aa32db..fa24825cc 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -12,6 +12,7 @@ option('hunspell', type: 'feature', description: 'Hunspell spell checker') option('uchardet', type: 'feature', description: 'uchardet character encoding detection') option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') +option('local_boost', type: 'boolean', value: false, description: 'Force using locally compiled Boost') option('icu_path', type: 'string', value: '', description: 'Path to ICU libraries on Windows') option('wx_path', type: 'string', value: '', description: 'Path to wxWidgets libraries on Windows') diff --git a/subprojects/boost.wrap b/subprojects/boost.wrap new file mode 100644 index 000000000..e66c7ff5b --- /dev/null +++ b/subprojects/boost.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory = boost_1_74_0 +source_url = https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.gz +source_filename = boost_1_74_0.tar.gz +source_hash = afff36d392885120bcac079148c177d1f6f7730ec3d47233aa51b0afa4db94a5 +patch_directory = boost diff --git a/subprojects/packagefiles/boost/libs/chrono/meson.build b/subprojects/packagefiles/boost/libs/chrono/meson.build new file mode 100644 index 000000000..b2dfc4d22 --- /dev/null +++ b/subprojects/packagefiles/boost/libs/chrono/meson.build @@ -0,0 +1,15 @@ +chrono_sources = files([ + 'src/chrono.cpp', + 'src/thread_clock.cpp', + 'src/process_cpu_clocks.cpp', +]) + +boost_chrono = library('boost_chrono', chrono_sources, + include_directories: inc, + cpp_args: is_static ? '-DBOOST_All_STATIC_LINK=1' : '-DBOOST_All_DYN_LINK=1', + dependencies: thread_dep) + +boost_chrono_dep = declare_dependency(link_with: boost_chrono, include_directories: inc, + compile_args: [is_static ? '-DBOOST_CHRONO_STATIC_LINK=1' + : '-DBOOST_CHRONO_DYN_LINK=1', + '-DBOOST_ALL_NO_LIB=1']) diff --git a/subprojects/packagefiles/boost/libs/filesystem/meson.build b/subprojects/packagefiles/boost/libs/filesystem/meson.build new file mode 100644 index 000000000..b255d4c97 --- /dev/null +++ b/subprojects/packagefiles/boost/libs/filesystem/meson.build @@ -0,0 +1,37 @@ +filesystem_sources = files([ + 'src/codecvt_error_category.cpp', + 'src/exception.cpp', + 'src/directory.cpp', + 'src/operations.cpp', + 'src/path.cpp', + 'src/path_traits.cpp', + 'src/portability.cpp', + 'src/unique_path.cpp', + 'src/utf8_codecvt_facet.cpp', + 'src/windows_file_codecvt.cpp', +]) + +filesystem_args = ['-DBOOST_FILESYSTEM_SOURCE', + is_static ? '-DBOOST_FILESYSTEM_STATIC_LINK=1' : '-DBOOST_FILESYSTEM_DYN_LINK=1'] + +filesystem_deps = [] +if host_machine.system() == 'windows' + bcrypt_dep = dependency('bcrypt', required: false) + if bcrypt_dep.found() + filesystem_deps += bcrypt_dep + filesystem_args += '-DBOOST_FILESYSTEM_HAS_BCRYPT' + else + filesystem_deps += cpp.find_library('advapi32') + filesystem_args += '-DBOOST_FILESYSTEM_HAS_WINCRYPT' + endif +endif + +boost_filesystem = library('boost_filesystem', filesystem_sources, + include_directories: inc, + cpp_args: filesystem_args, + dependencies: [thread_dep, filesystem_deps]) + +boost_filesystem_dep = declare_dependency(link_with: boost_filesystem, include_directories: inc, + compile_args: [is_static ? '-DBOOST_FILESYSTEM_STATIC_LINK=1' + : '-DBOOST_FILESYSTEM_DYN_LINK=1', + '-DBOOST_ALL_NO_LIB=1']) diff --git a/subprojects/packagefiles/boost/libs/locale/meson.build b/subprojects/packagefiles/boost/libs/locale/meson.build new file mode 100644 index 000000000..6abd3cd1b --- /dev/null +++ b/subprojects/packagefiles/boost/libs/locale/meson.build @@ -0,0 +1,78 @@ +locale_sources = files([ + 'src/encoding/codepage.cpp', + 'src/shared/date_time.cpp', + 'src/shared/format.cpp', + 'src/shared/formatting.cpp', + 'src/shared/generator.cpp', + 'src/shared/ids.cpp', + 'src/shared/localization_backend.cpp', + 'src/shared/message.cpp', + 'src/shared/mo_lambda.cpp', + 'src/util/codecvt_converter.cpp', + 'src/util/default_locale.cpp', + 'src/util/info.cpp', + 'src/util/locale_data.cpp', + # icu + 'src/icu/boundary.cpp', + 'src/icu/codecvt.cpp', + 'src/icu/collator.cpp', + 'src/icu/conversion.cpp', + 'src/icu/date_time.cpp', + 'src/icu/formatter.cpp', + 'src/icu/icu_backend.cpp', + 'src/icu/numeric.cpp', + 'src/icu/time_zone.cpp', + # std - docs say disabled by default on windows and solaris, + # but jamfile seemingly only disables on solaris + 'src/std/codecvt.cpp', + 'src/std/collate.cpp', + 'src/std/converter.cpp', + 'src/std/numeric.cpp', + 'src/std/std_backend.cpp', + # included if using posix, win32 or std backend (ie always) + 'src/util/gregorian.cpp', +]) + +locale_args = ['-DBOOST_THREAD_NO_LIB=1'] +locale_deps = [] + +if not is_static + locale_args += '-DBOOST_LOCALE_DYN_LINK=1' +endif + +if host_machine.system() == 'windows' + locale_sources += files([ + 'src/win32/collate.cpp', + 'src/win32/converter.cpp', + 'src/win32/numeric.cpp', + 'src/win32/win_backend.cpp', + # included on windows/cygwin if std *or* win32 included + 'src/win32/lcid.cpp', + ]) + locale_args += '-DBOOST_LOCALE_NO_POSIX_BACKEND=1' +else + locale_sources += files([ + 'src/posix/collate.cpp', + 'src/posix/converter.cpp', + 'src/posix/numeric.cpp', + 'src/posix/codecvt.cpp', + 'src/posix/posix_backend.cpp', + ]) + locale_args += '-DBOOST_LOCALE_NO_WINAPI_BACKEND=1' +endif + +if not cpp.check_header('iconv.h') + locale_deps += dependency('iconv') +endif +locale_args += '-DBOOST_LOCALE_WITH_ICONV=1' + +locale_deps += icu_deps +locale_args += '-DBOOST_LOCALE_WITH_ICU=1' + +boost_locale = library('boost_locale', locale_sources, + include_directories: inc, + cpp_args: locale_args, + dependencies: [thread_dep, locale_deps, boost_thread_dep]) + +boost_locale_dep = declare_dependency(link_with: boost_locale, include_directories: inc, + compile_args: '-DBOOST_ALL_NO_LIB=1') diff --git a/subprojects/packagefiles/boost/libs/program_options/meson.build b/subprojects/packagefiles/boost/libs/program_options/meson.build new file mode 100644 index 000000000..9ee11eb29 --- /dev/null +++ b/subprojects/packagefiles/boost/libs/program_options/meson.build @@ -0,0 +1,28 @@ +program_options_sources = files([ + 'src/cmdline.cpp', + 'src/config_file.cpp', + 'src/options_description.cpp', + 'src/parsers.cpp', + 'src/variables_map.cpp', + 'src/value_semantic.cpp', + 'src/positional_options.cpp', + 'src/utf8_codecvt_facet.cpp', + 'src/convert.cpp', + 'src/winmain.cpp', + 'src/split.cpp', +]) + +program_options_args = [] +if not is_static + program_options_args += '-DBOOST_PROGRAM_OPTIONS_DYN_LINK=1' +endif + +boost_program_options = library('boost_program_options', program_options_sources, + cpp_args: program_options_args, + include_directories: inc, + dependencies: thread_dep) + +boost_program_options_dep = declare_dependency(link_with: boost_program_options, + include_directories: inc, + compile_args: program_options_args + + ['-DBOOST_ALL_NO_LIB=1']) diff --git a/subprojects/packagefiles/boost/libs/regex/meson.build b/subprojects/packagefiles/boost/libs/regex/meson.build new file mode 100644 index 000000000..f073f33d8 --- /dev/null +++ b/subprojects/packagefiles/boost/libs/regex/meson.build @@ -0,0 +1,33 @@ +regex_sources = files([ + 'src/c_regex_traits.cpp', + 'src/cpp_regex_traits.cpp', + 'src/cregex.cpp', + 'src/fileiter.cpp', + 'src/icu.cpp', + 'src/instances.cpp', + 'src/posix_api.cpp', + 'src/regex.cpp', + 'src/regex_debug.cpp', + 'src/regex_raw_buffer.cpp', + 'src/regex_traits_defaults.cpp', + 'src/static_mutex.cpp', + 'src/w32_regex_traits.cpp', + 'src/wc_regex_traits.cpp', + 'src/wide_posix_api.cpp', + 'src/winstances.cpp', + 'src/usinstances.cpp', +]) + +regex_args = ['-DBOOST_HAS_ICU=1'] + +if not is_static + regex_args += '-DBOOST_REGEX_DYN_LINK=1' +endif + +boost_regex = library('boost_regex', regex_sources, + include_directories: inc, + cpp_args: regex_args, + dependencies: [thread_dep, icu_deps]) + +boost_regex_dep = declare_dependency(link_with: boost_regex, include_directories: inc, + compile_args: '-DBOOST_ALL_NO_LIB=1') diff --git a/subprojects/packagefiles/boost/libs/thread/meson.build b/subprojects/packagefiles/boost/libs/thread/meson.build new file mode 100644 index 000000000..e14d344dd --- /dev/null +++ b/subprojects/packagefiles/boost/libs/thread/meson.build @@ -0,0 +1,30 @@ +thread_args = [is_static ? '-DBOOST_THREAD_BUILD_LIB=1' : '-DBOOST_THREAD_BUILD_DLL=1'] + +if host_machine.system() == 'windows' + thread_sources = files([ + 'src/win32/thread.cpp', + 'src/win32/tss_dll.cpp', + 'src/win32/tss_pe.cpp', + 'src/win32/thread_primitives.cpp', + 'src/future.cpp', + ]) + thread_args += ['-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DBOOST_THREAD_WIN32', + '-DBOOST_THREAD_USES_CHRONO'] +else + thread_sources = files([ + 'src/pthread/thread.cpp', + 'src/pthread/once.cpp', + 'src/future.cpp', + ]) + thread_args += ['-DBOOST_THREAD_POSIX', '-DBOOST_THREAD_DONT_USE_CHRONO'] +endif + +boost_thread = library('boost_thread', thread_sources, + include_directories: inc, + cpp_args: thread_args, + dependencies: [thread_dep, boost_chrono_dep]) + +boost_thread_dep = declare_dependency(link_with: boost_thread, include_directories: inc, + compile_args: [is_static ? '-DBOOST_THREAD_BUILD_LIB=1' + : '-DBOOST_THREAD_BUILD_DLL=1', + '-DBOOST_ALL_NO_LIB=1']) diff --git a/subprojects/packagefiles/boost/meson.build b/subprojects/packagefiles/boost/meson.build new file mode 100644 index 000000000..a0a9881d8 --- /dev/null +++ b/subprojects/packagefiles/boost/meson.build @@ -0,0 +1,26 @@ +project('boost', 'cpp', + version: '1.74.0', + meson_version: '>=0.55.0') + +cpp = meson.get_compiler('cpp') +thread_dep = dependency('threads') +inc = include_directories('.') +is_static = get_option('default_library') == 'static' + +add_project_arguments('-DBOOST_ALL_NO_LIB=1', language: 'cpp') + +if get_option('buildtype').startswith('release') + add_project_arguments('-DNDEBUG', language: 'cpp') +endif + +if host_machine.system() == 'windows' + add_project_arguments('-DWIN32', language: 'cpp') +endif + +icu_deps = [dependency('icu-uc'), + dependency('icu-i18n')] + +modules = ['chrono', 'thread', 'filesystem', 'locale', 'regex', 'program_options'] +foreach module: modules + subdir('libs/' + module) +endforeach From f9f8b6c4d39f3bdd7adc63733caa8ecaaa874f6e Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:16:01 +0000 Subject: [PATCH 119/185] meson: add FFMS2 wrap --- meson.build | 2 +- subprojects/ffmpeg.wrap | 11 ++++++ subprojects/ffms2.wrap | 9 +++++ subprojects/packagefiles/ffms2/meson.build | 45 ++++++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 subprojects/ffmpeg.wrap create mode 100644 subprojects/ffms2.wrap create mode 100644 subprojects/packagefiles/ffms2/meson.build diff --git a/meson.build b/meson.build index 56752902a..a5e872afc 100644 --- a/meson.build +++ b/meson.build @@ -139,7 +139,7 @@ foreach dep: [ ['portaudio-2.0', '', 'PortAudio'], ['openal', '>=0.0.8', 'OpenAL'], # video - ['ffms2', '', 'FFMS2'], # needs a proper port + ['ffms2', '', 'FFMS2'], # other ['fftw3', '', 'FFTW3'], ['hunspell', '', 'Hunspell'], # needs a proper port diff --git a/subprojects/ffmpeg.wrap b/subprojects/ffmpeg.wrap new file mode 100644 index 000000000..0a59585ad --- /dev/null +++ b/subprojects/ffmpeg.wrap @@ -0,0 +1,11 @@ +[wrap-git] +directory = ffmpeg +url = https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg.git +revision = meson-4.3 + +[provide] +libavformat = libavformat_dep +libavcodec = libavcodec_dep +libswscale = libswscale_dep +libavutil = libavutil_dep +libswresample = libswresample_dep diff --git a/subprojects/ffms2.wrap b/subprojects/ffms2.wrap new file mode 100644 index 000000000..9cb18212f --- /dev/null +++ b/subprojects/ffms2.wrap @@ -0,0 +1,9 @@ +[wrap-file] +directory = ffms2-2.40 +source_url = https://github.com/FFMS/ffms2/archive/2.40.tar.gz +source_filename = 2.40.tar.gz +source_hash = 82e95662946f3d6e1b529eadbd72bed196adfbc41368b2d50493efce6e716320 +patch_directory = ffms2 + +[provide] +ffms2 = ffms2_dep diff --git a/subprojects/packagefiles/ffms2/meson.build b/subprojects/packagefiles/ffms2/meson.build new file mode 100644 index 000000000..a7328ea8d --- /dev/null +++ b/subprojects/packagefiles/ffms2/meson.build @@ -0,0 +1,45 @@ +project('ffms2', 'cpp', version: '2.40.0') + +deps = [] + +deps += dependency('zlib') +deps += dependency('libavformat') +deps += dependency('libavcodec') +deps += dependency('libswscale') +deps += dependency('libavutil') +deps += dependency('libswresample') + +args = ['-D_FILE_OFFSET_BITNS=64', '-DFFMS_EXPORTS', '-D__STDC_CONSTANT_MACROS'] +usage_args = [] + +if get_option('default_library') == 'static' + usage_args += '-DFFMS_STATIC' +endif + +ffms2_sources = [ + 'src/core/audiosource.cpp', + #'src/core/audiosource.h', + 'src/core/ffms.cpp', + 'src/core/filehandle.cpp', + #'src/core/filehandle.h', + 'src/core/indexing.cpp', + #'src/core/indexing.h', + 'src/core/track.cpp', + #'src/core/track.h', + 'src/core/utils.cpp', + #'src/core/utils.h', + 'src/core/videosource.cpp', + #'src/core/videosource.h', + 'src/core/videoutils.cpp', + #'src/core/videoutils.h', + 'src/core/zipfile.cpp', + #'src/core/zipfile.h', +] + +deps_inc = include_directories('include') + +ffms2 = library('ffms2', ffms2_sources, include_directories: deps_inc, dependencies: deps, + cpp_args: args + usage_args) +ffms2_dep = declare_dependency(link_with: ffms2, + include_directories: deps_inc, + compile_args: usage_args) From bb02d3bc5ef500fb867aa3f99e2574b1406cc184 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 19:30:51 +0000 Subject: [PATCH 120/185] meson: don't build with C11 C11 breaks the LuaJIT build --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index a5e872afc..bbdc86a72 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', meson_version: '>=0.55.0', - default_options: ['c_std=c11', 'cpp_std=c++11', 'b_lto=true'], + default_options: ['cpp_std=c++11', 'b_lto=true'], version: '3.2.2') cmake = import('cmake') From 51b8248ac8043f920ecb54529e9066371c73f518 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 19:31:58 +0000 Subject: [PATCH 121/185] meson: create git_version.h in build directory in version.sh --- meson.build | 2 +- tools/version.sh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index bbdc86a72..b1fdc0ae9 100644 --- a/meson.build +++ b/meson.build @@ -13,7 +13,7 @@ else endif version_inc = include_directories('.') version_h = custom_target('git_version.h', - command: [version_sh, meson.current_build_dir()], + command: [version_sh, meson.current_build_dir(), meson.current_source_dir()], build_by_default: true, build_always_stale: true, # has internal check whether target file will be refreshed output: ['git_version.h', 'git_version.xml']) diff --git a/tools/version.sh b/tools/version.sh index a950bae2f..a2d3c7b39 100755 --- a/tools/version.sh +++ b/tools/version.sh @@ -1,7 +1,8 @@ -srcdir="$1" +builddir="$1" +srcdir="$2" # If no git repo try to read from the existing git_version.h, for building from tarballs -version_h_path="${srcdir}/git_version.h" +version_h_path="${builddir}/git_version.h" if ! test -d "${srcdir}/.git"; then if test -f "${version_h_path}"; then while read line; do @@ -65,7 +66,7 @@ export BUILD_GIT_VERSION_NUMBER="${git_revision}" export BUILD_GIT_VERSION_STRING="${git_version_str}" export VERSION_SOURCE="from git" -cat << EOF > "${srcdir}/git_version.xml" +cat << EOF > "${builddir}/git_version.xml" From 0b7e244232440f37f81e167b5cffa2878bb3857c Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 19:32:23 +0000 Subject: [PATCH 122/185] meson: define fallbacks for optional dependencies --- meson.build | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index b1fdc0ae9..df03749f8 100644 --- a/meson.build +++ b/meson.build @@ -134,19 +134,28 @@ deps += dependency('icu-i18n', version: '>=4.8.1.1') dep_avail = [] foreach dep: [ # audio, in order of precedence - ['libpulse', '', 'PulseAudio'], - ['alsa', '', 'ALSA'], - ['portaudio-2.0', '', 'PortAudio'], - ['openal', '>=0.0.8', 'OpenAL'], + ['libpulse', '', 'PulseAudio', []], + ['alsa', '', 'ALSA', []], + ['portaudio-2.0', '', 'PortAudio', []], + ['openal', '>=0.0.8', 'OpenAL', []], # video - ['ffms2', '', 'FFMS2'], + ['ffms2', '', 'FFMS2', ['ffms2', 'ffms2_dep']], # other - ['fftw3', '', 'FFTW3'], - ['hunspell', '', 'Hunspell'], # needs a proper port - ['uchardet', '', 'uchardet'], # needs a proper port + ['fftw3', '', 'FFTW3', []], + ['hunspell', '', 'Hunspell', []], # needs a proper port + ['uchardet', '', 'uchardet', []], # needs a proper port ] - d = dependency(dep[0], version: dep[1] != '' ? dep[1]: '>=0', - required: false) + dep_version = dep[1] != '' ? dep[1] : '>=0' + # [provide] section is ignored if required is false; + # must provided define fallback explicitly + # (with meson 0.56 you can do allow_fallback: true): + #d = dependency(dep[0], version: dep_version, + # required: false, allow_fallback: true) + if dep[3].length() > 0 + d = dependency(dep[0], version: dep_version, fallback: dep[3]) + else + d = dependency(dep[0], version: dep_version, required: false) + endif optname = dep[0].split('-')[0] if d.found() and not get_option(optname).disabled() From 441daf5aeba00250c9b062749272c6ee78e51e02 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 21:50:15 +0000 Subject: [PATCH 123/185] meson: use check_header to check for iconv iconv is not a standalone library on Linux, so find_library is pointless --- meson.build | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index df03749f8..7abdfa449 100644 --- a/meson.build +++ b/meson.build @@ -50,13 +50,10 @@ cxx = meson.get_compiler('cpp') cc = meson.get_compiler('c') deps += cc.find_library('m', required: false) deps += cc.find_library('dl', required: false) -iconv_dep = cc.find_library('iconv', required: false) -if not iconv_dep.found() and host_machine.system() == 'windows' +if not cxx.check_header('iconv.h') iconv_sp = subproject('iconv') # this really needs to be replaced with a proper port - deps_inc += iconv_sp.get_variable('iconv_incs') - iconv_dep = iconv_sp.get_variable('libiconv_dep') + deps += iconv_sp.get_variable('libiconv_dep') endif -deps += iconv_dep deps += dependency('libass', version: '>=0.9.7', fallback: ['libass', 'libass_dep']) From 03de8929d4546f06ac4f3d606954e6286c431054 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 04:13:08 +0000 Subject: [PATCH 124/185] meson: pin wx version and fix dependencies --- meson.build | 3 ++- subprojects/wxWidgets.wrap | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 7abdfa449..695cbfd81 100644 --- a/meson.build +++ b/meson.build @@ -103,10 +103,11 @@ else # this will only be hit with msvc '-DwxBUILD_SHARED=@0@'.format(buildShared), '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson deps += [ - wx.dependency('mono'), + wx.dependency('wxmono'), wx.dependency('wxzlib'), wx.dependency('wxpng'), wx.dependency('wxexpat'), + wx.dependency('wxregex'), wx.dependency('wxscintilla') ] diff --git a/subprojects/wxWidgets.wrap b/subprojects/wxWidgets.wrap index a77194055..949a03927 100644 --- a/subprojects/wxWidgets.wrap +++ b/subprojects/wxWidgets.wrap @@ -1,5 +1,5 @@ [wrap-git] directory = wxWidgets url = https://github.com/wxWidgets/wxWidgets.git -revision = master -clone-recursive = true \ No newline at end of file +revision = v3.1.4 +clone-recursive = true From 2510ef25c283a3b1e096b51d44fdb6f33e7f3be1 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 04:14:00 +0000 Subject: [PATCH 125/185] meson: patch libass with stub dirent.h this should probably be handled by the libass meson port at some point --- subprojects/libass.wrap | 1 + subprojects/packagefiles/libass/dirent.h | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 subprojects/packagefiles/libass/dirent.h diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 3e8e691d0..90101e922 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -2,3 +2,4 @@ directory = libass url = https://github.com/TypesettingTools/libass.git revision = meson-no-rasterizer-approximation +patch_directory = libass diff --git a/subprojects/packagefiles/libass/dirent.h b/subprojects/packagefiles/libass/dirent.h new file mode 100644 index 000000000..fcbd0289b --- /dev/null +++ b/subprojects/packagefiles/libass/dirent.h @@ -0,0 +1,6 @@ +// libass uses dirent in a function we don't use, so just provide a dummy version +typedef struct DIR { int dummy; } DIR; +typedef struct dirent { char *d_name; } dirent; +static inline DIR *opendir(const char *x) { return 0; } +static inline struct dirent *readdir(DIR *x) { return 0; } +static inline void closedir(DIR *x) { } From b1c2fbdb198f64f27a9712798b185f90fd9b8c1f Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 04:15:02 +0000 Subject: [PATCH 126/185] meson: add nasm wrap for Windows --- meson.build | 8 ++++++++ subprojects/nasm.wrap | 6 ++++++ subprojects/packagefiles/nasm/meson.build | 3 +++ 3 files changed, 17 insertions(+) create mode 100644 subprojects/nasm.wrap create mode 100644 subprojects/packagefiles/nasm/meson.build diff --git a/meson.build b/meson.build index 695cbfd81..ce0a24e35 100644 --- a/meson.build +++ b/meson.build @@ -6,6 +6,14 @@ project('Aegisub', ['c', 'cpp'], cmake = import('cmake') +if host_machine.system() == 'windows' + sys_nasm = find_program('nasm', required: false) + if not sys_nasm.found() + nasm = subproject('nasm').get_variable('nasm') + meson.override_find_program('nasm', nasm) + endif +endif + if host_machine.system() == 'windows' version_sh = find_program('tools/version.ps1') else diff --git a/subprojects/nasm.wrap b/subprojects/nasm.wrap new file mode 100644 index 000000000..6f1ad8dab --- /dev/null +++ b/subprojects/nasm.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory = nasm-2.15.05 +source_url = https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-win64.zip +source_filename = nasm-2.15.05-win64.zip +source_hash = f5c93c146f52b4f1664fa3ce6579f961a910e869ab0dae431bd871bdd2584ef2 +patch_directory = nasm diff --git a/subprojects/packagefiles/nasm/meson.build b/subprojects/packagefiles/nasm/meson.build new file mode 100644 index 000000000..0f2b11986 --- /dev/null +++ b/subprojects/packagefiles/nasm/meson.build @@ -0,0 +1,3 @@ +project('nasm', version: '2.15.05') + +nasm = find_program('nasm.exe', dirs: meson.current_source_dir()) From 65fc7c0f308b94c1a3b2e408093c674b20d89010 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 04:15:33 +0000 Subject: [PATCH 127/185] meson: ignore second argument in version.ps1 for compatibility with bf2dca2e4c0 --- tools/version.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/version.ps1 b/tools/version.ps1 index 0d61c7176..8ce776474 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -2,7 +2,9 @@ param ( [Parameter(Position = 0, Mandatory = $false)] - [string]$BuildRoot = $null + [string]$BuildRoot = $null, + [Parameter(Position = 1, Mandatory = $false)] + [string]$SourceRoot = $null ) $lastSvnRevision = 6962 From 5dff6c92348953d2cee98c756f928300b6074a65 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 04:17:56 +0000 Subject: [PATCH 128/185] update .gitignore --- .gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitignore b/.gitignore index 7a967423c..59e1893bb 100644 --- a/.gitignore +++ b/.gitignore @@ -54,10 +54,14 @@ vendor/luajit/src/lj_libdef.h vendor/luajit/src/lj_recdef.h vendor/luajit/src/luajit +# IDE-specific .nuget .vs +.kdev4/ +*.kdev4 # Meson +builddir/ subprojects/freetype* subprojects/fribidi subprojects/harfbuzz @@ -65,3 +69,8 @@ subprojects/libass subprojects/libpng* subprojects/packagecache subprojects/zlib* +subprojects/libass +subprojects/icu +subprojects/ffmpeg +subprojects/ffms2* +subprojects/boost* From 0e51dba59bfc6218c559a5b4446e634f1bda9b1c Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 19:26:10 +0000 Subject: [PATCH 129/185] meson: remove DUALNUM check from LuaJIT --- subprojects/luajit/src/host/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/subprojects/luajit/src/host/meson.build b/subprojects/luajit/src/host/meson.build index 5354f153f..ce0a6e244 100644 --- a/subprojects/luajit/src/host/meson.build +++ b/subprojects/luajit/src/host/meson.build @@ -25,7 +25,6 @@ else ['LJ_ARCH_BITS', '64', ['-D', 'P64']], ['LJ_HASJIT', '1', ['-D', 'JIT']], ['LJ_HASFFI', '1', ['-D', 'FFI']], - ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], ] if host_machine.cpu_family() == 'x86' From fa2c35a058f783bd901453c3af939c634d807bee Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 19:58:33 +0000 Subject: [PATCH 130/185] remove build, .nuget, Aegisub.sln --- .gitignore | 2 +- .nuget/NuGet.Config | 9 - .nuget/NuGet.targets | 150 - Aegisub.sln | 572 ---- build/Aegisub/Aegisub.targets | 163 - build/Aegisub/Aegisub.vcxproj | 440 --- build/Aegisub/Aegisub.vcxproj.filters | 1096 ------- build/Aegisub/Aegisub.xml | 254 -- build/Aegisub/standard-libraries.props | 32 - build/BuildTasks/BuildTasks.csproj | 81 - build/BuildTasks/DownloadTgzFile.cs | 54 - build/BuildTasks/GitVersion.cs | 117 - build/BuildTasks/Properties/AssemblyInfo.cs | 36 - build/BuildTasks/TarballProject.cs | 96 - build/BuildTasks/packages.config | 5 - build/DefaultConfiguration.props | 65 - .../PortableInstaller.vcxproj | 147 - .../PortableInstaller.vcxproj.filters | 127 - build/aegisub.props | 66 - build/boost/boost.vcxproj | 139 - build/boost/boost.vcxproj.filters | 222 -- build/boost/locale_stubs.cpp | 69 - build/csrihelper/csrihelper.vcxproj | 51 - build/csrihelper/csrihelper.vcxproj.filters | 63 - build/expat/expat.vcxproj | 55 - build/expat/expat.vcxproj.filters | 17 - build/ffmpeg/config-x64.asm | 2460 --------------- build/ffmpeg/config-x64.h | 2476 --------------- build/ffmpeg/config-x86.asm | 2460 --------------- build/ffmpeg/config-x86.h | 2476 --------------- build/ffmpeg/config.h | 5 - build/ffmpeg/configure.sh | 54 - build/ffmpeg/ffmpeg.vcxproj | 1413 --------- build/ffmpeg/ffmpeg.vcxproj.filters | 2659 ----------------- build/ffmpeg/get-file-list.sh | 13 - build/ffmpeg/libavcodec/bsf_list.c | 33 - build/ffmpeg/libavcodec/codec_list.c | 426 --- build/ffmpeg/libavcodec/parser_list.c | 45 - build/ffmpeg/libavdevice/indev_list.c | 2 - build/ffmpeg/libavdevice/outdev_list.c | 2 - build/ffmpeg/libavformat/demuxer_list.c | 287 -- build/ffmpeg/libavformat/muxer_list.c | 2 - build/ffmpeg/libavformat/protocol_list.c | 14 - build/ffmpeg/libavutil/avconfig.h | 6 - build/ffmpeg/libavutil/ffversion.h | 4 - build/ffms2/ffms2.vcxproj | 96 - build/ffms2/ffms2.vcxproj.filters | 126 - build/fftw/config.h | 393 --- build/fftw/fftw.vcxproj | 677 ----- build/fftw/fftw.vcxproj.filters | 1937 ------------ build/freetype2/freetype.vcxproj | 86 - build/freetype2/freetype.vcxproj.filters | 152 - build/freetype2/ftsystem.cpp | 75 - build/fribidi/fribidi-config.h | 22 - build/fribidi/fribidi.vcxproj | 64 - build/fribidi/fribidi.vcxproj.filters | 2 - build/googletest/googletest.vcxproj | 62 - build/googletest/googletest.vcxproj.filters | 97 - build/hunspell/hunspell.vcxproj | 56 - build/hunspell/hunspell.vcxproj.filters | 92 - build/icu/icu.vcxproj | 703 ----- build/icu/icu.vcxproj.filters | 1744 ----------- build/icu/pack-dt.lua | 47 - build/install.targets | 42 - build/libaegisub/libaegisub.vcxproj | 188 -- build/libaegisub/libaegisub.vcxproj.filters | 388 --- build/libass/config.h | 6 - build/libass/dirent.h | 6 - build/libass/libass.vcxproj | 120 - build/libass/libass.vcxproj.filters | 176 -- build/libass/strings.h | 3 - build/libass/unistd.h | 0 build/libiconv/libiconv.vcxproj | 44 - build/libiconv/libiconv.vcxproj.filters | 42 - build/libpng/libpng.vcxproj | 64 - build/libpng/libpng.vcxproj.filters | 17 - build/libresrc/libresrc.vcxproj | 75 - build/libresrc/libresrc.vcxproj.filters | 50 - build/luabins/luabins.vcxproj | 51 - build/luabins/luabins.vcxproj.filters | 57 - build/luajit-buildvm/luajit-buildvm.vcxproj | 79 - .../luajit-buildvm.vcxproj.filters | 14 - build/luajit-minilua/luajit-minilua.vcxproj | 35 - .../luajit-minilua.vcxproj.filters | 6 - build/luajit/luajit.vcxproj | 234 -- build/luajit/luajit.vcxproj.filters | 447 --- build/paths.props | 25 - build/respack.targets | 27 - build/scintilla/catalogue.cpp | 13 - build/scintilla/scintilla.vcxproj | 95 - build/scintilla/scintilla.vcxproj.filters | 17 - build/standard-outdirs.props | 68 - build/standard-settings.props | 71 - build/tasks.props | 35 - build/tests/tests.vcxproj | 101 - build/tests/tests.vcxproj.filters | 106 - .../universalchardet/universalchardet.vcxproj | 117 - .../universalchardet.vcxproj.filters | 249 -- build/userconfig/ft2.props.sample | 24 - build/userconfig/paths.props.sample | 20 - build/userconfig/readme.txt | 12 - build/userconfig/wx.props.sample | 22 - build/wx/setup-build.h | 262 -- build/wx/setup-installed.h | 3 - build/wx/stc-fi.h | 7 - build/wx/wxWidgets.vcxproj | 425 --- build/yasm.targets | 101 - build/zlib/zconf.h | 513 ---- build/zlib/zlib.vcxproj | 60 - 109 files changed, 1 insertion(+), 29912 deletions(-) delete mode 100644 .nuget/NuGet.Config delete mode 100644 .nuget/NuGet.targets delete mode 100644 Aegisub.sln delete mode 100644 build/Aegisub/Aegisub.targets delete mode 100644 build/Aegisub/Aegisub.vcxproj delete mode 100644 build/Aegisub/Aegisub.vcxproj.filters delete mode 100644 build/Aegisub/Aegisub.xml delete mode 100644 build/Aegisub/standard-libraries.props delete mode 100644 build/BuildTasks/BuildTasks.csproj delete mode 100644 build/BuildTasks/DownloadTgzFile.cs delete mode 100644 build/BuildTasks/GitVersion.cs delete mode 100644 build/BuildTasks/Properties/AssemblyInfo.cs delete mode 100644 build/BuildTasks/TarballProject.cs delete mode 100644 build/BuildTasks/packages.config delete mode 100644 build/DefaultConfiguration.props delete mode 100644 build/PortableInstaller/PortableInstaller.vcxproj delete mode 100644 build/PortableInstaller/PortableInstaller.vcxproj.filters delete mode 100644 build/aegisub.props delete mode 100644 build/boost/boost.vcxproj delete mode 100644 build/boost/boost.vcxproj.filters delete mode 100644 build/boost/locale_stubs.cpp delete mode 100644 build/csrihelper/csrihelper.vcxproj delete mode 100644 build/csrihelper/csrihelper.vcxproj.filters delete mode 100644 build/expat/expat.vcxproj delete mode 100644 build/expat/expat.vcxproj.filters delete mode 100755 build/ffmpeg/config-x64.asm delete mode 100755 build/ffmpeg/config-x64.h delete mode 100755 build/ffmpeg/config-x86.asm delete mode 100755 build/ffmpeg/config-x86.h delete mode 100644 build/ffmpeg/config.h delete mode 100755 build/ffmpeg/configure.sh delete mode 100644 build/ffmpeg/ffmpeg.vcxproj delete mode 100644 build/ffmpeg/ffmpeg.vcxproj.filters delete mode 100755 build/ffmpeg/get-file-list.sh delete mode 100644 build/ffmpeg/libavcodec/bsf_list.c delete mode 100644 build/ffmpeg/libavcodec/codec_list.c delete mode 100644 build/ffmpeg/libavcodec/parser_list.c delete mode 100644 build/ffmpeg/libavdevice/indev_list.c delete mode 100644 build/ffmpeg/libavdevice/outdev_list.c delete mode 100644 build/ffmpeg/libavformat/demuxer_list.c delete mode 100644 build/ffmpeg/libavformat/muxer_list.c delete mode 100644 build/ffmpeg/libavformat/protocol_list.c delete mode 100644 build/ffmpeg/libavutil/avconfig.h delete mode 100644 build/ffmpeg/libavutil/ffversion.h delete mode 100644 build/ffms2/ffms2.vcxproj delete mode 100644 build/ffms2/ffms2.vcxproj.filters delete mode 100755 build/fftw/config.h delete mode 100644 build/fftw/fftw.vcxproj delete mode 100644 build/fftw/fftw.vcxproj.filters delete mode 100644 build/freetype2/freetype.vcxproj delete mode 100644 build/freetype2/freetype.vcxproj.filters delete mode 100644 build/freetype2/ftsystem.cpp delete mode 100644 build/fribidi/fribidi-config.h delete mode 100644 build/fribidi/fribidi.vcxproj delete mode 100644 build/fribidi/fribidi.vcxproj.filters delete mode 100644 build/googletest/googletest.vcxproj delete mode 100644 build/googletest/googletest.vcxproj.filters delete mode 100644 build/hunspell/hunspell.vcxproj delete mode 100644 build/hunspell/hunspell.vcxproj.filters delete mode 100644 build/icu/icu.vcxproj delete mode 100644 build/icu/icu.vcxproj.filters delete mode 100644 build/icu/pack-dt.lua delete mode 100644 build/install.targets delete mode 100644 build/libaegisub/libaegisub.vcxproj delete mode 100644 build/libaegisub/libaegisub.vcxproj.filters delete mode 100644 build/libass/config.h delete mode 100644 build/libass/dirent.h delete mode 100644 build/libass/libass.vcxproj delete mode 100644 build/libass/libass.vcxproj.filters delete mode 100644 build/libass/strings.h delete mode 100644 build/libass/unistd.h delete mode 100644 build/libiconv/libiconv.vcxproj delete mode 100644 build/libiconv/libiconv.vcxproj.filters delete mode 100644 build/libpng/libpng.vcxproj delete mode 100644 build/libpng/libpng.vcxproj.filters delete mode 100644 build/libresrc/libresrc.vcxproj delete mode 100644 build/libresrc/libresrc.vcxproj.filters delete mode 100644 build/luabins/luabins.vcxproj delete mode 100644 build/luabins/luabins.vcxproj.filters delete mode 100644 build/luajit-buildvm/luajit-buildvm.vcxproj delete mode 100644 build/luajit-buildvm/luajit-buildvm.vcxproj.filters delete mode 100644 build/luajit-minilua/luajit-minilua.vcxproj delete mode 100644 build/luajit-minilua/luajit-minilua.vcxproj.filters delete mode 100644 build/luajit/luajit.vcxproj delete mode 100644 build/luajit/luajit.vcxproj.filters delete mode 100644 build/paths.props delete mode 100644 build/respack.targets delete mode 100644 build/scintilla/catalogue.cpp delete mode 100644 build/scintilla/scintilla.vcxproj delete mode 100644 build/scintilla/scintilla.vcxproj.filters delete mode 100644 build/standard-outdirs.props delete mode 100644 build/standard-settings.props delete mode 100644 build/tasks.props delete mode 100644 build/tests/tests.vcxproj delete mode 100644 build/tests/tests.vcxproj.filters delete mode 100644 build/universalchardet/universalchardet.vcxproj delete mode 100644 build/universalchardet/universalchardet.vcxproj.filters delete mode 100644 build/userconfig/ft2.props.sample delete mode 100644 build/userconfig/paths.props.sample delete mode 100644 build/userconfig/readme.txt delete mode 100644 build/userconfig/wx.props.sample delete mode 100644 build/wx/setup-build.h delete mode 100644 build/wx/setup-installed.h delete mode 100644 build/wx/stc-fi.h delete mode 100644 build/wx/wxWidgets.vcxproj delete mode 100644 build/yasm.targets delete mode 100644 build/zlib/zconf.h delete mode 100644 build/zlib/zlib.vcxproj diff --git a/.gitignore b/.gitignore index 59e1893bb..67fb79e98 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,7 @@ vendor/luajit/src/luajit *.kdev4 # Meson -builddir/ +build*/ subprojects/freetype* subprojects/fribidi subprojects/harfbuzz diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config deleted file mode 100644 index 25dfbe7ab..000000000 --- a/.nuget/NuGet.Config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets deleted file mode 100644 index 2cada41fb..000000000 --- a/.nuget/NuGet.targets +++ /dev/null @@ -1,150 +0,0 @@ - - - - $(MSBuildProjectDirectory)\..\ - - - true - - - false - - - false - - - true - - - - - - - - - - $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) - - - - - $(SolutionDir).nuget - packages.config - - - - - $(NuGetToolsPath)\nuget.exe - @(PackageSource) - - "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) - - $(TargetDir.Trim('\\')) - - -RequireConsent - - $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -solutionDir "$(SolutionDir) " - $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols - - - - RestorePackages; - $(ResolveReferencesDependsOn); - - - - - $(BuildDependsOn); - BuildPackage; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Aegisub.sln b/Aegisub.sln deleted file mode 100644 index c8bdcada0..000000000 --- a/Aegisub.sln +++ /dev/null @@ -1,572 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30324.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aegisub", "build\Aegisub\Aegisub.vcxproj", "{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csrihelper", "build\csrihelper\csrihelper.vcxproj", "{C832EAF3-860D-4373-A02C-933626B47A5E}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hunspell", "build\hunspell\hunspell.vcxproj", "{CC791693-6B28-40AC-879D-64A6C16468E3}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaegisub", "build\libaegisub\libaegisub.vcxproj", "{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}" - ProjectSection(ProjectDependencies) = postProject - {A649D828-A399-4D81-ADEF-94CFDBA7847F} = {A649D828-A399-4D81-ADEF-94CFDBA7847F} - {F934AB7B-186B-4E96-B20C-A58C38C1B818} = {F934AB7B-186B-4E96-B20C-A58C38C1B818} - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} = {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} - {965054D2-44F2-4EB2-9879-051CC3D7EF08} = {965054D2-44F2-4EB2-9879-051CC3D7EF08} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "build\libiconv\libiconv.vcxproj", "{965054D2-44F2-4EB2-9879-051CC3D7EF08}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libresrc", "build\libresrc\libresrc.vcxproj", "{BD00D65F-24DA-4784-8860-3B972EA125FC}" - ProjectSection(ProjectDependencies) = postProject - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC} = {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luabins", "build\luabins\luabins.vcxproj", "{A7A30702-8162-4E1A-A010-EF51B590C121}" - ProjectSection(ProjectDependencies) = postProject - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} = {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "universalchardet", "build\universalchardet\universalchardet.vcxproj", "{7B56955D-5162-4698-AA5B-47484EDC8783}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fftw", "build\fftw\fftw.vcxproj", "{EA3DCC95-2423-4EA0-A508-7A427B4C0594}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "build\freetype2\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fribidi", "build\fribidi\fribidi.vcxproj", "{FB8E8D19-A4D6-4181-943C-282075F49B41}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffms2", "build\ffms2\ffms2.vcxproj", "{AA137613-96A1-4388-8905-71345B4F8F87}" - ProjectSection(ProjectDependencies) = postProject - {F934AB7B-186B-4E96-B20C-A58C38C1B819} = {F934AB7B-186B-4E96-B20C-A58C38C1B819} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffmpeg", "build\ffmpeg\ffmpeg.vcxproj", "{F934AB7B-186B-4E96-B20C-A58C38C1B819}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE} = {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "build\zlib\zlib.vcxproj", "{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{CEAEFCB9-3759-4D03-8D51-7287D7B7E7DF}" - ProjectSection(SolutionItems) = preProject - .nuget\NuGet.Config = .nuget\NuGet.Config - .nuget\NuGet.exe = .nuget\NuGet.exe - .nuget\NuGet.targets = .nuget\NuGet.targets - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxWidgets", "build\wx\wxWidgets.vcxproj", "{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass", "build\libass\libass.vcxproj", "{8804F253-DA67-4CC4-926B-0CD2AEE5778D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortableInstaller", "build\PortableInstaller\PortableInstaller.vcxproj", "{5B0E9978-E76F-4BBC-8194-228323F59B53}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost", "build\boost\boost.vcxproj", "{A649D828-A399-4D81-ADEF-94CFDBA7847F}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - {F934AB7B-186B-4E96-B20C-A58C38C1B818} = {F934AB7B-186B-4E96-B20C-A58C38C1B818} - {965054D2-44F2-4EB2-9879-051CC3D7EF08} = {965054D2-44F2-4EB2-9879-051CC3D7EF08} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icu", "build\icu\icu.vcxproj", "{F934AB7B-186B-4E96-B20C-A58C38C1B818}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "googletest", "build\googletest\googletest.vcxproj", "{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tests", "build\tests\tests.vcxproj", "{49766286-2B5D-4177-A860-BD7CE1846EEF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildTasks", "build\BuildTasks\BuildTasks.csproj", "{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit-minilua", "build\luajit-minilua\luajit-minilua.vcxproj", "{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}" - ProjectSection(ProjectDependencies) = postProject - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit-buildvm", "build\luajit-buildvm\luajit-buildvm.vcxproj", "{7CA6A4EB-A11B-4975-8F3A-F633111C6213}" - ProjectSection(ProjectDependencies) = postProject - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF} = {FCAED410-90EF-4EF9-916C-4B86DC13A3CF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit", "build\luajit\luajit.vcxproj", "{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}" - ProjectSection(ProjectDependencies) = postProject - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF} = {FCAED410-90EF-4EF9-916C-4B86DC13A3CF} - {7CA6A4EB-A11B-4975-8F3A-F633111C6213} = {7CA6A4EB-A11B-4975-8F3A-F633111C6213} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "expat", "build\expat\expat.vcxproj", "{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "build\libpng\libpng.vcxproj", "{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scintilla", "build\scintilla\scintilla.vcxproj", "{D6EA54FD-F15C-42F6-929B-A83F299A4582}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug-MinDep|Win32 = Debug-MinDep|Win32 - Debug-MinDep|x64 = Debug-MinDep|x64 - Debug-Tests|Win32 = Debug-Tests|Win32 - Debug-Tests|x64 = Debug-Tests|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release-MinDep|Win32 = Release-MinDep|Win32 - Release-MinDep|x64 = Release-MinDep|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|Win32.ActiveCfg = Debug|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|Win32.Build.0 = Debug|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|x64.ActiveCfg = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|x64.Build.0 = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|Win32.Build.0 = Debug|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|x64.Build.0 = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|x64.Build.0 = Debug|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|Win32.ActiveCfg = Release|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|Win32.Build.0 = Release|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|x64.ActiveCfg = Release|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|x64.Build.0 = Release|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|Win32.Build.0 = Release|Win32 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|x64.ActiveCfg = Release|x64 - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|x64.Build.0 = Release|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|Win32.Build.0 = Debug|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|x64.ActiveCfg = Debug|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|x64.Build.0 = Debug|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release|Win32.ActiveCfg = Release|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release|Win32.Build.0 = Release|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release|x64.ActiveCfg = Release|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release|x64.Build.0 = Release|x64 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {C832EAF3-860D-4373-A02C-933626B47A5E}.Release-MinDep|x64.ActiveCfg = Release|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|Win32.Build.0 = Debug|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|x64.ActiveCfg = Debug|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|x64.Build.0 = Debug|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release|Win32.ActiveCfg = Release|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release|Win32.Build.0 = Release|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release|x64.ActiveCfg = Release|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release|x64.Build.0 = Release|x64 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {CC791693-6B28-40AC-879D-64A6C16468E3}.Release-MinDep|x64.ActiveCfg = Release|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|Win32.ActiveCfg = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|Win32.Build.0 = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|x64.ActiveCfg = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|x64.Build.0 = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|Win32.Build.0 = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|x64.Build.0 = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|Win32.Build.0 = Debug|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|x64.Build.0 = Debug|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|Win32.ActiveCfg = Release|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|Win32.Build.0 = Release|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|x64.ActiveCfg = Release|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|x64.Build.0 = Release|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|Win32.Build.0 = Release|Win32 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|x64.ActiveCfg = Release|x64 - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|x64.Build.0 = Release|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|Win32.ActiveCfg = Debug|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|Win32.Build.0 = Debug|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|x64.ActiveCfg = Debug|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|x64.Build.0 = Debug|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|Win32.ActiveCfg = Release|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|Win32.Build.0 = Release|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|x64.ActiveCfg = Release|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|x64.Build.0 = Release|x64 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release-MinDep|x64.ActiveCfg = Release|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|Win32.ActiveCfg = Debug|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|Win32.Build.0 = Debug|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|x64.ActiveCfg = Debug|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|x64.Build.0 = Debug|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|Win32.Build.0 = Debug|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|x64.Build.0 = Debug|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|Win32.ActiveCfg = Release|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|Win32.Build.0 = Release|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|x64.ActiveCfg = Release|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|x64.Build.0 = Release|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|Win32.Build.0 = Release|Win32 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|x64.ActiveCfg = Release|x64 - {BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|x64.Build.0 = Release|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|Win32.ActiveCfg = Debug|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|Win32.Build.0 = Debug|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|x64.ActiveCfg = Debug|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|x64.Build.0 = Debug|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|x64.Build.0 = Debug|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release|Win32.ActiveCfg = Release|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release|Win32.Build.0 = Release|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release|x64.ActiveCfg = Release|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release|x64.Build.0 = Release|x64 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {A7A30702-8162-4E1A-A010-EF51B590C121}.Release-MinDep|x64.ActiveCfg = Release|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|Win32.ActiveCfg = Debug|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|Win32.Build.0 = Debug|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|x64.ActiveCfg = Debug|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|x64.Build.0 = Debug|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release|Win32.ActiveCfg = Release|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release|Win32.Build.0 = Release|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release|x64.ActiveCfg = Release|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release|x64.Build.0 = Release|x64 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {7B56955D-5162-4698-AA5B-47484EDC8783}.Release-MinDep|x64.ActiveCfg = Release|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|Win32.ActiveCfg = Debug|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|Win32.Build.0 = Debug|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|x64.ActiveCfg = Debug|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|x64.Build.0 = Debug|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|Win32.ActiveCfg = Release|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|Win32.Build.0 = Release|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|x64.ActiveCfg = Release|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|x64.Build.0 = Release|x64 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release-MinDep|x64.ActiveCfg = Release|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release-MinDep|x64.ActiveCfg = Release|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|Win32.ActiveCfg = Debug|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|Win32.Build.0 = Debug|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|x64.ActiveCfg = Debug|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|x64.Build.0 = Debug|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|Win32.ActiveCfg = Release|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|Win32.Build.0 = Release|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|x64.ActiveCfg = Release|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|x64.Build.0 = Release|x64 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release-MinDep|x64.ActiveCfg = Release|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|Win32.ActiveCfg = Debug|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|Win32.Build.0 = Debug|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|x64.ActiveCfg = Debug|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|x64.Build.0 = Debug|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|Win32.ActiveCfg = Release|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|Win32.Build.0 = Release|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|x64.ActiveCfg = Release|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|x64.Build.0 = Release|x64 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {FB8E8D19-A4D6-4181-943C-282075F49B41}.Release-MinDep|x64.ActiveCfg = Release|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug|Win32.ActiveCfg = Debug|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug|Win32.Build.0 = Debug|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug|x64.ActiveCfg = Debug|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug|x64.Build.0 = Debug|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release|Win32.ActiveCfg = Release|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release|Win32.Build.0 = Release|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release|x64.ActiveCfg = Release|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release|x64.Build.0 = Release|x64 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {AA137613-96A1-4388-8905-71345B4F8F87}.Release-MinDep|x64.ActiveCfg = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|Win32.Build.0 = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|x64.Build.0 = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|Win32.ActiveCfg = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|Win32.Build.0 = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|x64.ActiveCfg = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|x64.Build.0 = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release-MinDep|x64.ActiveCfg = Release|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|Win32.ActiveCfg = Debug|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|Win32.Build.0 = Debug|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|x64.ActiveCfg = Debug|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|x64.Build.0 = Debug|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|Win32.ActiveCfg = Release|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|Win32.Build.0 = Release|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|x64.ActiveCfg = Release|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|x64.Build.0 = Release|x64 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release-MinDep|x64.ActiveCfg = Release|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|Win32.ActiveCfg = Debug|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|Win32.Build.0 = Debug|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|x64.ActiveCfg = Debug|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|x64.Build.0 = Debug|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|Win32.ActiveCfg = Release|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|Win32.Build.0 = Release|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|x64.ActiveCfg = Release|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|x64.Build.0 = Release|x64 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release-MinDep|x64.ActiveCfg = Release|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|Win32.ActiveCfg = Debug|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|Win32.Build.0 = Debug|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|x64.ActiveCfg = Debug|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|x64.Build.0 = Debug|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.ActiveCfg = Release|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.Build.0 = Release|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.ActiveCfg = Release|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.Build.0 = Release|x64 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release-MinDep|x64.ActiveCfg = Release|x64 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|Win32.ActiveCfg = Debug|Win32 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|x64.ActiveCfg = Debug|x64 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|Win32.ActiveCfg = Release|Win32 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|x64.ActiveCfg = Release|x64 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {5B0E9978-E76F-4BBC-8194-228323F59B53}.Release-MinDep|x64.ActiveCfg = Release|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|Win32.ActiveCfg = Debug|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|Win32.Build.0 = Debug|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|x64.ActiveCfg = Debug|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|x64.Build.0 = Debug|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|Win32.ActiveCfg = Release|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|Win32.Build.0 = Release|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|x64.ActiveCfg = Release|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|x64.Build.0 = Release|x64 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release-MinDep|x64.ActiveCfg = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|Win32.Build.0 = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|x64.Build.0 = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|x64.Build.0 = Debug|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|Win32.ActiveCfg = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|Win32.Build.0 = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|x64.ActiveCfg = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|x64.Build.0 = Release|x64 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release-MinDep|x64.ActiveCfg = Release|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|Win32.ActiveCfg = Debug|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|Win32.Build.0 = Debug|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|x64.ActiveCfg = Debug|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|x64.Build.0 = Debug|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-MinDep|x64.ActiveCfg = Debug|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|Win32.ActiveCfg = Release|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|Win32.Build.0 = Release|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|x64.ActiveCfg = Release|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|x64.Build.0 = Release|x64 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release-MinDep|x64.ActiveCfg = Release|x64 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|Win32.ActiveCfg = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|Win32.Build.0 = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|x64.ActiveCfg = Debug|x64 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|x64.Build.0 = Debug|x64 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-MinDep|x64.ActiveCfg = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|Win32.Build.0 = Debug|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Release|Win32.ActiveCfg = Release|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Release|x64.ActiveCfg = Release|x64 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {49766286-2B5D-4177-A860-BD7CE1846EEF}.Release-MinDep|x64.ActiveCfg = Release|x64 - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|Win32.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|Win32.Build.0 = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|x64.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-MinDep|Win32.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-MinDep|x64.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-Tests|Win32.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-Tests|x64.ActiveCfg = Debug|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release|Win32.ActiveCfg = Release|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release|x64.ActiveCfg = Release|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release-MinDep|Win32.ActiveCfg = Release|Any CPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release-MinDep|x64.ActiveCfg = Release|Any CPU - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|Win32.ActiveCfg = Debug|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|Win32.Build.0 = Debug|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|x64.ActiveCfg = Debug|x64 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|x64.Build.0 = Debug|x64 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-Tests|x64.ActiveCfg = Debug|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|Win32.ActiveCfg = Release|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|Win32.Build.0 = Release|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|x64.ActiveCfg = Release|x64 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|x64.Build.0 = Release|x64 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release-MinDep|x64.ActiveCfg = Release|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|Win32.ActiveCfg = Debug|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|Win32.Build.0 = Debug|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|x64.ActiveCfg = Debug|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|x64.Build.0 = Debug|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-Tests|x64.ActiveCfg = Debug|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|Win32.ActiveCfg = Release|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|Win32.Build.0 = Release|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|x64.ActiveCfg = Release|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|x64.Build.0 = Release|x64 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release-MinDep|x64.ActiveCfg = Release|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|Win32.ActiveCfg = Debug|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|Win32.Build.0 = Debug|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|x64.ActiveCfg = Debug|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|x64.Build.0 = Debug|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|x64.Build.0 = Debug|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|Win32.ActiveCfg = Release|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|Win32.Build.0 = Release|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|x64.ActiveCfg = Release|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|x64.Build.0 = Release|x64 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release-MinDep|x64.ActiveCfg = Release|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|Win32.Build.0 = Debug|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|x64.ActiveCfg = Debug|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|x64.Build.0 = Debug|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|Win32.Build.0 = Debug|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|x64.Build.0 = Debug|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|Win32.ActiveCfg = Release|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|Win32.Build.0 = Release|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|x64.ActiveCfg = Release|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|x64.Build.0 = Release|x64 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release-MinDep|x64.ActiveCfg = Release|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|Win32.ActiveCfg = Debug|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|Win32.Build.0 = Debug|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|x64.ActiveCfg = Debug|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|x64.Build.0 = Debug|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|Win32.Build.0 = Debug|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|x64.Build.0 = Debug|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|Win32.ActiveCfg = Release|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|Win32.Build.0 = Release|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|x64.ActiveCfg = Release|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|x64.Build.0 = Release|x64 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release-MinDep|x64.ActiveCfg = Release|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|Win32.Build.0 = Debug|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|x64.ActiveCfg = Debug|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|x64.Build.0 = Debug|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-MinDep|x64.ActiveCfg = Debug|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|Win32.ActiveCfg = Debug|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|Win32.Build.0 = Debug|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|x64.ActiveCfg = Debug|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|x64.Build.0 = Debug|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|Win32.ActiveCfg = Release|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|Win32.Build.0 = Release|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|x64.ActiveCfg = Release|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|x64.Build.0 = Release|x64 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release-MinDep|Win32.ActiveCfg = Release|Win32 - {D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release-MinDep|x64.ActiveCfg = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/build/Aegisub/Aegisub.targets b/build/Aegisub/Aegisub.targets deleted file mode 100644 index 78d939088..000000000 --- a/build/Aegisub/Aegisub.targets +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - BUILD_CREDIT="$(AegisubBuildCredit)";%(PreprocessorDefinitions) - - - - - - - - WITH_UPDATE_CHECKER; - UPDATE_CHECKER_SERVER="$(UpdateCheckerServer)"; - UPDATE_CHECKER_BASE_URL="$(UpdateCheckerURL)"; - %(PreprocessorDefinitions) - - - - - - - - WITH_HUNSPELL;%(PreprocessorDefinitions) - $(AegisubContribBase)hunspell\src;%(AdditionalIncludeDirectories) - - - - - - - WITH_CSRI;%(PreprocessorDefinitions) - - - - - - - WITH_CSRI;%(PreprocessorDefinitions) - - - $(CsriLibraryPath);%(AdditionalLibraryDirectories) - $(CsriLibraryName);%(AdditionalDependencies) - - - - - - - WITH_FFMS2;FFMS_STATIC;%(PreprocessorDefinitions) - - - - - - - WITH_AVISYNTH;%(PreprocessorDefinitions) - - - - - - - WITH_FFTW3;%(PreprocessorDefinitions) - - - - - - - WITH_OPENAL;%(PreprocessorDefinitions) - - - - - - - WITH_DIRECTSOUND;%(PreprocessorDefinitions) - - - dsound.lib;dxguid.lib;%(AdditionalDependencies) - - - - - - - WITH_STARTUPLOG;%(PreprocessorDefinitions) - - - - - - - - NOMINMAX; - _WIN32_WINNT=0x0602; - %(PreprocessorDefinitions) - - - $(SrcDir)include\; - $(AegisubSourceBase)libaegisub\include; - $(AegisubSourceBase)build; - $(AegisubSourceBase)include; - $(AegisubSourceBase)src; - %(AdditionalIncludeDirectories) - - - - $(AegisubLibraryDir);%(AdditionalLibraryDirectories) - - - - - - - - - - - - - - - - diff --git a/build/Aegisub/Aegisub.vcxproj b/build/Aegisub/Aegisub.vcxproj deleted file mode 100644 index 9d5ae17af..000000000 --- a/build/Aegisub/Aegisub.vcxproj +++ /dev/null @@ -1,440 +0,0 @@ - - - - - {9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A} - Aegisub - - - - - exe - ..\..\src\ - - - - - - - - aegisub$(AegisubPlatformSuffix) - - - - Use - agi_pre.h - agi_pre.h - /Zm150 %(AdditionalOptions) - - - $(DXSDK_DIR)\Lib\x86 - $(DXSDK_DIR)\Lib\x64 - - - - - - - - - - - - {a649d828-a399-4d81-adef-94cfdba7847f} - - - {c832eaf3-860d-4373-a02c-933626b47a5e} - - - {aa137613-96a1-4388-8905-71345b4f8f87} - - - {ea3dcc95-2423-4ea0-a508-7a427b4c0594} - - - {78b079bd-9fc7-4b9e-b4a6-96da0f00248b} - - - {fb8e8d19-a4d6-4181-943c-282075f49b41} - - - {cc791693-6b28-40ac-879d-64a6c16468e3} - - - {f934ab7b-186b-4e96-b20c-a58c38c1b818} - - - {bb3fed86-db7a-4dc7-964a-260fb86cde61} - - - {8804f253-da67-4cc4-926b-0cd2aee5778d} - - - {965054d2-44f2-4eb2-9879-051cc3d7ef08} - - - {bd00d65f-24da-4784-8860-3b972ea125fc} - - - {A7A30702-8162-4E1A-A010-EF51B590C121} - - - {5391a8b1-9c70-4dc4-92ad-d3e34c6b803f} - - - {7b56955d-5162-4698-aa5b-47484edc8783} - - - {0518d6c0-7bf6-4fd1-91fb-191bd10db2ac} - - - {10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee} - - - {d6ba6815-0aac-48fa-8372-d32cde8bf07a} - - - {5cabcbef-e79a-4d27-94a5-cf4eaaf1dd96} - - - {d6ea54fd-f15c-42f6-929b-a83f299a4582} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create - - - NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4345;4307;4800 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/Aegisub/Aegisub.vcxproj.filters b/build/Aegisub/Aegisub.vcxproj.filters deleted file mode 100644 index d8c2da283..000000000 --- a/build/Aegisub/Aegisub.vcxproj.filters +++ /dev/null @@ -1,1096 +0,0 @@ - - - - - {b5d22cd4-b7ec-48ad-b78b-948b41e5dc15} - - - {9aad5f25-72b4-4438-9899-b0c405ab5995} - - - {4125e713-d173-48b3-ae2f-e19b889cc926} - - - {2617cdfa-8833-495b-9f75-4950210c628d} - - - {90b18753-1a32-47a0-869d-64ae16e8732d} - - - {4f326b57-8caa-4f6f-90c4-185cf3efc317} - - - {5977a633-1e03-4503-83c6-d3c8994c8002} - - - {97c0a35b-30d3-48ca-9b6a-ab7b97351f9e} - - - {93bfdee7-d33e-466e-ae04-93157adcfa46} - - - {3df67931-35ea-4b94-97eb-adb652294046} - - - {3a5174c9-548b-47a0-a25d-2d03111fb5a7} - - - {113403b0-d0ed-4cc0-a806-9c2802cf9042} - - - {479b034b-3b4d-4225-9fb0-061f469ff90f} - - - {d20479a0-e0cf-47af-a57f-7be8989fb489} - - - {4079897b-063b-432c-9554-f9302fef4d50} - - - {d8a621a5-3f03-409b-94be-ad2295e1ee36} - - - {aaf66839-8213-4eba-9b2a-13576b5529d0} - - - {0f4d31a3-388e-4927-af19-7da06b86f279} - - - {c69ec6d0-05f4-45d1-878e-5130e6fd3a53} - - - {048d6559-42b4-4dca-af9a-b9b15b6013f7} - - - {01522e6d-8711-4a71-b9b8-a94a24ef0de0} - - - {1f3f1f35-6805-4367-871d-b7e876fe88ab} - - - {ac0a16bb-3474-4468-8a75-e094f32759e6} - - - {822cb96c-6c7c-4602-93cb-5fdd8fd81559} - - - {a7868613-b0f5-4460-ab27-6be2f75b0b4b} - - - {e0404060-b33b-4a55-8181-b5dbb36bfa95} - - - {98daa273-a000-4c7c-b40a-887e96441885} - - - {e58def38-4472-43c0-ad27-e5c461aaf8f7} - - - {b480102a-5ea0-4397-96c5-8ddb6f0368b9} - - - {db74dafc-a06f-4750-9af7-d9a9ed69b21e} - - - {5093b49a-3cb0-4b01-b301-51994f2020dd} - - - {c22e763b-46cf-415f-8bc7-0ca7f7a8c480} - - - {2a4cb9b1-8651-4b71-bdca-e14fe33d8f47} - - - {a789b2c9-c65c-4a60-a25d-caa32f5aa1d0} - - - {ba371dc7-556e-4e45-a5bd-3d9013bf0e29} - - - {7b32f9be-de39-4892-9afc-0656d4dfff91} - - - {e555b022-7aaf-483e-9b88-9a407f29e9c8} - - - {cea88d45-ff52-425f-b552-69d126142a34} - - - {8c5b1ccb-1afc-4d50-ada9-884e4cca2f1b} - - - {423c43df-bad0-443b-9252-17c4b3e196f7} - - - {7ece8180-ee96-41f3-8fe6-d1dd38eae79c} - - - {76ce8128-70e2-4d8f-8e8e-5336bacd2aec} - - - {18a9fba6-a508-4818-be63-244453b7a253} - - - {9d6859f4-b01a-43d7-be84-2694076fc064} - - - {9f657627-e879-4f7b-bb40-b65d9ba2cd12} - - - {d6c66065-8df9-4897-a37f-1f3c31d0e7ce} - - - {258406b7-fae3-494a-80ff-80410051be27} - - - {39646be7-5dce-471c-ab93-1e3f7f6f9fe1} - - - {fde3be82-3653-4519-88f5-8c16ddfb1531} - - - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Automation - - - Commands - - - Audio\Players - - - Utilities - - - Audio - - - Features\Style editor - - - Features\Font collector - - - Video\UI - - - Features\Export - - - Features\Export - - - Features\Export - - - Automation\Lua - - - Automation\Lua - - - Features\Translation Assistant - - - Features\Colour picker - - - Video\UI - - - Video\UI - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Features\Spell checker - - - Features\Thesaurus - - - Features\Styling assistant - - - Video - - - Video - - - Video\UI - - - Video\UI - - - Video\UI - - - Video\Providers - - - Video\Providers - - - Video\UI - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Audio - - - AV support - - - AV support - - - AV support - - - AV support - - - AV support - - - Video\Subtitle renderers - - - Video\Subtitle renderers - - - Features\Style editor - - - Utilities - - - Config - - - Main UI - - - Main UI - - - Main UI\Grid - - - Main UI\Grid - - - Main UI\Edit box - - - Main UI\Edit box - - - Features\Import - - - Features\Help - - - Features\Colour picker - - - Utilities - - - Utilities - - - Utilities - - - Preferences - - - Audio\Players - - - Audio\Providers - - - Main UI - - - Main UI - - - Main UI - - - Features\Spell checker - - - Video\Subtitle renderers - - - Main UI - - - Video\Providers - - - Video\Visual tools - - - Video\Visual tools - - - Features\About box - - - Features\Search-replace - - - Utilities\UI utilities - - - Utilities\UI utilities - - - Utilities\Logging - - - Utilities - - - ASS - - - ASS - - - Utilities - - - Features\Help - - - Controls - - - Utilities - - - Utilities - - - Controls - - - Video\Visual tools - - - Preferences - - - Preferences - - - Utilities\UI utilities - - - Main UI\Edit box - - - ASS - - - Utilities\UI utilities - - - Audio - - - Controls - - - ASS - - - Preferences - - - Features\Search-replace - - - Utilities - - - ASS - - - Features\Resolution resampler - - - Main UI\Grid - - - Subtitle formats - - - Video\Providers - - - Main UI - - - Features - - - Utilities - - - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - ASS - - - Audio\Providers - - - Audio\Providers - - - Audio\Providers - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Audio\UI - - - Commands - - - Automation - - - Commands - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Visual tools - - - Video\Providers - - - Video\Providers - - - Video\Providers - - - Video\Providers - - - Video\Providers - - - Video\Providers - - - Video\UI - - - Video\UI - - - Video\UI - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Subtitle formats - - - Video\Subtitle renderers - - - Video\Subtitle renderers - - - Video\Subtitle renderers - - - Commands - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Audio\Players - - - Video - - - Audio - - - Features\Attachments - - - Video\UI - - - Video\UI - - - Features\Style editor - - - Features\Style editor - - - Features\Font collector - - - Features\Font collector - - - Video\UI - - - Video\UI - - - Features\Export - - - Features\Export - - - Features\Export - - - Features\Export - - - Automation\Lua - - - Automation\Lua - - - Automation\Lua - - - Automation\Lua - - - Automation\UI - - - Features\Paste Over - - - Features\Shift Times - - - Features\Translation Assistant - - - Features\Colour picker - - - Features\Colour picker - - - Features\Karaoke copier - - - Features\Font collector - - - Video\UI - - - Video\UI - - - Features\Spell checker - - - Features\Spell checker - - - Features\Spell checker - - - Features\Thesaurus - - - Features\Resolution resampler - - - Features\Import - - - Features\Timing post-processor - - - Features\Styling assistant - - - Features\Update checker - - - Video - - - Video\UI - - - Audio - - - AV support - - - AV support - - - AV support - - - AV support - - - Features\Style editor - - - Utilities - - - Main UI - - - Config - - - Main UI - - - Main UI\Grid - - - Main UI\Grid - - - Main UI\Edit box - - - Main UI\Edit box - - - Features\Import - - - Features\Help - - - Features\Colour picker - - - Utilities - - - Utilities - - - Preferences - - - Main UI - - - Main UI - - - Video\Visual tools - - - Video\Visual tools - - - Commands - - - Features\About box - - - Features\About box - - - Features\Conditional select lines - - - Features\Search-replace - - - Utilities\UI utilities - - - Utilities\UI utilities - - - Utilities\UI utilities - - - Utilities\Logging - - - Commands - - - Commands - - - Utilities - - - Features\File properties - - - ASS - - - ASS - - - Commands - - - Main UI - - - Commands - - - Commands - - - Utilities - - - Features\Help - - - Controls - - - Utilities - - - Utilities - - - Controls - - - Video\Visual tools - - - Preferences - - - Preferences - - - Commands - - - Commands - - - Commands - - - Commands - - - Commands - - - Utilities\UI utilities - - - ASS - - - Commands - - - Features\Autosave - - - Features\Search-replace - - - Utilities - - - ASS - - - Features\Resolution resampler - - - Utilities\Logging - - - Utilities\Logging - - - Main UI - - - Main UI\Edit box - - - Main UI\Grid - - - Subtitle formats - - - Features\Resolution resampler - - - Video\Providers - - - Main UI - - - - - - - diff --git a/build/Aegisub/Aegisub.xml b/build/Aegisub/Aegisub.xml deleted file mode 100644 index 9012b3dfb..000000000 --- a/build/Aegisub/Aegisub.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/Aegisub/standard-libraries.props b/build/Aegisub/standard-libraries.props deleted file mode 100644 index b4f5074e1..000000000 --- a/build/Aegisub/standard-libraries.props +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - <_PropertySheetDisplayName>Standard Libraries - - - - - Usp10.lib; - Vfw32.lib; - advapi32.lib; - bcrypt.lib; - comctl32.lib; - comdlg32.lib; - gdi32.lib; - kernel32.lib; - ole32.lib; - oleaut32.lib; - opengl32.lib; - rpcrt4.lib; - shell32.lib; - user32.lib; - uuid.lib; - wsock32.lib; - %(AdditionalDependencies) - - - - - diff --git a/build/BuildTasks/BuildTasks.csproj b/build/BuildTasks/BuildTasks.csproj deleted file mode 100644 index 4bbea1f2b..000000000 --- a/build/BuildTasks/BuildTasks.csproj +++ /dev/null @@ -1,81 +0,0 @@ - - - - - Debug - AnyCPU - {914A5B35-66B2-4293-BB6C-D93DA9BC68C6} - Library - Properties - BuildTasks - BuildTasks - v4.5 - 512 - ..\..\..\ - - - - $(AegisubBinaryDir) - $(AegisubObjectDir) - - - true - full - false - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - TRACE - prompt - 4 - - - - ..\..\.nuget\lib\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll - - - ..\..\.nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\LibGit2Sharp.dll - - - - - - - - - - - - - - - - - - - - - - - - - - -if not exist "$(TargetDir)NativeBinaries" md "$(TargetDir)NativeBinaries" -if not exist "$(TargetDir)NativeBinaries\x86" md "$(TargetDir)NativeBinaries\x86" -xcopy /s /y /d "$(SolutionDir).nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\NativeBinaries\x86\*.*" "$(TargetDir)NativeBinaries\x86" -if not exist "$(TargetDir)NativeBinaries\amd64" md "$(TargetDir)NativeBinaries\amd64" -xcopy /s /y /d "$(SolutionDir).nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\NativeBinaries\amd64\*.*" "$(TargetDir)NativeBinaries\amd64" - - - diff --git a/build/BuildTasks/DownloadTgzFile.cs b/build/BuildTasks/DownloadTgzFile.cs deleted file mode 100644 index aee359034..000000000 --- a/build/BuildTasks/DownloadTgzFile.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -namespace BuildTasks { - public class DownloadTgzFile : Microsoft.Build.Utilities.Task { - public string Url { get; set; } - public string OutputFile { get; set; } - public string Hash { get; set; } - - private void DownloadArchive(string url, string unpackDest) { - var downloadStream = new System.Net.WebClient().OpenRead(url); - var gzStream = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(downloadStream); - using (var file = System.IO.File.Create(unpackDest)) { - gzStream.CopyTo(file); - } - } - - public override bool Execute() { - try { - using (var fs = System.IO.File.OpenRead(this.OutputFile)) { - var hash = new System.Security.Cryptography.SHA1Managed().ComputeHash(fs); - if (System.BitConverter.ToString(hash).Replace("-", "").ToLower() == this.Hash) - return true; - } - } - catch (System.IO.IOException) { - // Need to download if file not present or not readable - } - - try { - DownloadArchive(this.Url, this.OutputFile); - } - catch (System.Exception e) { - this.Log.LogErrorFromException(e); - return false; - } - - return true; - } - } -} diff --git a/build/BuildTasks/GitVersion.cs b/build/BuildTasks/GitVersion.cs deleted file mode 100644 index ee29227b0..000000000 --- a/build/BuildTasks/GitVersion.cs +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -using LibGit2Sharp; -using System; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; - -namespace BuildTasks { - public class GitVersion : Microsoft.Build.Utilities.Task { - public string Root { get; set; } - - private static ObjectId LastSVNCommit = new ObjectId("16cd907fe7482cb54a7374cd28b8501f138116be"); - private const string versionHTemplate = -@"#define BUILD_GIT_VERSION_NUMBER {0} -#define BUILD_GIT_VERSION_STRING ""{1}"" -#define TAGGED_RELEASE {2} -#define INSTALLER_VERSION ""{3}"" -#define RESOURCE_BASE_VERSION {4} -"; - private const string versionXmlTemplate = -@" - - - {0} - {1} - - -"; - - private string UniqueAbbreviation(Repository repo, string full) { - for (int len = 7; len < 40; ++len) { - try { - repo.Lookup(full.Substring(0, len)); - return full.Substring(0, len); - } - catch (AmbiguousSpecificationException) { - continue; - } - } - return full; - } - - private void WriteIfChanged(string path, string template, params object[] args) { - var body = string.Format(template, args).Replace("\r\n", "\n"); - try { - var oldBody = File.ReadAllText(path); - if (body != oldBody) - File.WriteAllText(path, body); - } - catch (IOException) { - File.WriteAllText(path, body); - } - } - - public override bool Execute() { - string versionHPath = Root + "build/git_version.h"; - string versionXmlPath = Root + "build/git_version.xml"; - - if (!Directory.Exists(Root + ".git")) { - if (File.Exists(versionHPath)) { - Log.LogMessage("Using cached version.h"); - return true; - } - Log.LogError("git repo not found and no cached git_version.h"); - return false; - } - - int commits = 6962; // Rev ID when we switched away from SVN - string installerVersion = "0.0.0"; - string resourceVersion = "0, 0, 0"; - string versionStr = null; - bool taggedRelease = false; - using (var repo = new Repository(Root + ".git")) { - commits += repo.Commits.TakeWhile(c => !c.Id.Equals(LastSVNCommit)).Count(); - - foreach (var tag in repo.Tags) { - if (!tag.Target.Id.Equals(repo.Head.Tip.Id)) continue; - - taggedRelease = true; - versionStr = tag.Name; - if (versionStr.StartsWith("v")) versionStr = versionStr.Substring(1); - if (Regex.Match(versionStr, @"(\d)\.(\d)\.(\d)").Success) { - installerVersion = versionStr; - resourceVersion = versionStr.Replace(".", ", "); - } - break; - } - - if (versionStr == null) { - string branch = repo.Head.Name ?? "(unnamed branch)"; - versionStr = string.Format("{0}-{1}-{2}", commits, branch, - UniqueAbbreviation(repo, repo.Head.Tip.Sha.ToString())); - } - } - - WriteIfChanged(versionHPath, versionHTemplate, commits, versionStr, taggedRelease ? "1" : "0", installerVersion, resourceVersion); - WriteIfChanged(versionXmlPath, versionXmlTemplate, commits, versionStr); - - return true; - } - } -} diff --git a/build/BuildTasks/Properties/AssemblyInfo.cs b/build/BuildTasks/Properties/AssemblyInfo.cs deleted file mode 100644 index 5de350117..000000000 --- a/build/BuildTasks/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BuildTasks")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("BuildTasks")] -[assembly: AssemblyCopyright("Copyright © Thomas Goyne 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("157803fb-ca11-4802-8394-1ee152112561")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/build/BuildTasks/TarballProject.cs b/build/BuildTasks/TarballProject.cs deleted file mode 100644 index f1b60d1d6..000000000 --- a/build/BuildTasks/TarballProject.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -using ICSharpCode.SharpZipLib.Tar; -using System; -using System.IO; -using System.Security.Cryptography; - -namespace BuildTasks { - public class TarballProject : Microsoft.Build.Utilities.Task { - public string Url { get; set; } - public string Root { get; set; } - public string Hash { get; set; } - - private bool NeedsUpdate() { - try { - return Hash != File.ReadAllText(Path.Combine(Root, "aegisub.hash")); - } - catch (IOException) { - return true; - } - } - - private void ExtractEntry(string destDir, TarEntry entry, ICSharpCode.SharpZipLib.Tar.TarInputStream stream) { - string name = entry.Name; - if (Path.IsPathRooted(name)) - name = name.Substring(Path.GetPathRoot(name).Length); - name = name.Replace('/', Path.DirectorySeparatorChar); - name = name.Substring(name.IndexOf(Path.DirectorySeparatorChar) + 1); - - string dest = Path.Combine(destDir, name); - if (entry.IsDirectory) - Directory.CreateDirectory(dest); - else { - Directory.CreateDirectory(Path.GetDirectoryName(dest)); - using (Stream outputStream = File.Create(dest)) { - stream.CopyEntryContents(outputStream); - } - } - } - - public override bool Execute() { - if (!NeedsUpdate()) return true; - - try { - var ms = new MemoryStream(); - var downloadStream = new System.Net.WebClient().OpenRead(Url); - downloadStream.CopyTo(ms); - ms.Seek(0, SeekOrigin.Begin); - - var hash = new SHA256Managed().ComputeHash(ms); - if (BitConverter.ToString(hash).Replace("-", "").ToLower() != this.Hash) { - Log.LogError("Got wrong hash for {0}", Url); - return false; - } - - try { - Directory.Delete(Root, true); - } - catch (DirectoryNotFoundException) { - // Obviously not an issue - } - - ms.Seek(0, SeekOrigin.Begin); - var bzStream = new ICSharpCode.SharpZipLib.BZip2.BZip2InputStream(ms); - var tarStream = new ICSharpCode.SharpZipLib.Tar.TarInputStream(bzStream); - while (true) { - TarEntry entry = tarStream.GetNextEntry(); - if (entry == null) break; - ExtractEntry(Root, entry, tarStream); - } - - File.WriteAllText(Path.Combine(Root, "aegisub.hash"), Hash); - - return true; - } - catch (Exception e) { - Log.LogErrorFromException(e); - return false; - } - } - } -} diff --git a/build/BuildTasks/packages.config b/build/BuildTasks/packages.config deleted file mode 100644 index 3d28d4b1a..000000000 --- a/build/BuildTasks/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/build/DefaultConfiguration.props b/build/DefaultConfiguration.props deleted file mode 100644 index 504b2637e..000000000 --- a/build/DefaultConfiguration.props +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - Anonymous - true - false - HelperLibrary - true - true - true - false - true - vsfilter.lib - false - updates.aegisub.org - /trunk - - $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\vendor)) - $(VendorRoot)\boost - $(VendorRoot)\ffms2 - $(VendorRoot)\ffmpeg - $(VendorRoot)\fftw - $(VendorRoot)\freetype2 - $(VendorRoot)\fribidi - $(VendorRoot)\googletest - $(VendorRoot)\icu\source - $(VendorRoot)\libass - $(VendorRoot)\wxWidgets - $(VendorRoot)\wxWidgets\src\zlib - - diff --git a/build/PortableInstaller/PortableInstaller.vcxproj b/build/PortableInstaller/PortableInstaller.vcxproj deleted file mode 100644 index 23e6b5efb..000000000 --- a/build/PortableInstaller/PortableInstaller.vcxproj +++ /dev/null @@ -1,147 +0,0 @@ - - - - {5B0E9978-E76F-4BBC-8194-228323F59B53} - PortableInstaller - - - - - - - - - x86 - x64 - aegisub-$(GitVersionString)-portable-$(AegisubPlatformSuffix) - $(AegisubSourceBase)packages\win_installer\output\$(FileName).exe - - - - - - - - - - - - - - - - - - - - automation\autoload\ - - - automation\autoload\ - - - automation\autoload\ - - - automation\autoload\ - - - automation\autoload\ - - - automation\autoload\ - - - automation\autoload\ - - - automation\demos\ - - - automation\demos\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\aegisub\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - automation\include\ - - - - - - - - csri\ - - - - - dictionaries\ - - - dictionaries\ - - - - - - - - diff --git a/build/PortableInstaller/PortableInstaller.vcxproj.filters b/build/PortableInstaller/PortableInstaller.vcxproj.filters deleted file mode 100644 index cf2d140a8..000000000 --- a/build/PortableInstaller/PortableInstaller.vcxproj.filters +++ /dev/null @@ -1,127 +0,0 @@ - - - - - {2c1914de-647f-44ab-a698-a289b10ec29c} - - - {862d477a-6db6-4ef0-b547-fa347b8d3aff} - - - {d15cec98-3f6e-4713-a192-8cfdf1bac1d0} - - - {61b13b0c-d018-48c6-8629-b44b83aa0dc8} - - - {8880eb0c-4bf7-424d-9a79-73c20c2dd169} - - - {743db065-17d0-4595-b241-9baa143dd68c} - - - {8e48f676-fdad-4b6e-a146-58a300ee528d} - - - {63aff439-dbde-4092-8dad-905a01c4be6c} - - - {baf7aa4e-709d-4a03-aee1-b54749006b82} - - - - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Autoload - - - Automation\Demos - - - Automation\Demos - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - Automation\Include - - - - - CSRI - - - AssDraw - - - AssDraw - - - Avisynth - - - Avisynth - - - Avisynth - - - Dictionaries - - - Dictionaries - - - diff --git a/build/aegisub.props b/build/aegisub.props deleted file mode 100644 index aa07badea..000000000 --- a/build/aegisub.props +++ /dev/null @@ -1,66 +0,0 @@ - - - - <_PropertySheetDisplayName>Aegisub project - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - StaticLibrary - DynamicLibrary - Application - true - false - true - Unicode - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/boost/boost.vcxproj b/build/boost/boost.vcxproj deleted file mode 100644 index fff93799e..000000000 --- a/build/boost/boost.vcxproj +++ /dev/null @@ -1,139 +0,0 @@ - - - - {A649D828-A399-4D81-ADEF-94CFDBA7847F} - boost - - - - - lib - - - - - - - - - - BOOST_LOCALE_WITH_ICONV=1; - BOOST_LOCALE_WITH_ICU=1; - BOOST_LOCALE_NO_STD_BACKEND=1; - BOOST_LOCALE_NO_WINAPI_BACKEND=1; - BOOST_LOCALE_NO_POSIX_BACKEND=1; - BOOST_THREAD_BUILD_LIB; - %(PreprocessorDefinitions) - - - - - - - $(BuildGenerateSourcesTargets); - CopyBoostHeaders - - - - - - - - - - - - - - - - - - {f934ab7b-186b-4e96-b20c-a58c38c1b818} - - - {965054d2-44f2-4eb2-9879-051cc3d7ef08} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/boost/boost.vcxproj.filters b/build/boost/boost.vcxproj.filters deleted file mode 100644 index 07cced6a6..000000000 --- a/build/boost/boost.vcxproj.filters +++ /dev/null @@ -1,222 +0,0 @@ - - - - - {e091980d-4374-41b8-aa61-1b07695e1b17} - - - {be9f03e9-74a3-4705-97ee-105a404d8a10} - - - {98abe5b9-aca6-4145-ab6d-e472e24eb522} - - - {0dae6521-8684-471f-8d62-9fe3b9295b0c} - - - {8c30568b-1ab1-4815-82e0-127ad31732d7} - - - {47e5ad22-f37e-4512-a8e1-bcb5f04ad24b} - - - {52190269-979d-429b-a825-8e68eacc2274} - - - {829ed5fb-dcba-4d3e-910c-33341e0e6379} - - - {c76e09db-3a8e-4eaf-bb9a-6bac6945fd6f} - - - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - regex - - - system - - - filesystem - - - filesystem - - - filesystem - - - filesystem - - - filesystem - - - filesystem - - - filesystem - - - filesystem - - - regex - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\util - - - locale\util - - - locale\util - - - locale\util - - - locale\shared - - - locale\shared - - - locale\shared - - - locale\encoding - - - thread - - - thread - - - - - - regex - - - filesystem - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\icu - - - locale\util - - - locale\util - - - locale\util - - - locale\util - - - locale\util - - - locale\shared - - - locale\shared - - - locale\shared - - - locale\encoding - - - - - locale\encoding - - - locale\encoding - - - locale\encoding - - - \ No newline at end of file diff --git a/build/boost/locale_stubs.cpp b/build/boost/locale_stubs.cpp deleted file mode 100644 index 57c3e921c..000000000 --- a/build/boost/locale_stubs.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -#include -#include -#include - -// Boost.locale doesn't support partial builds of ICU, so provide stub versions -// of some of the things we don't use -namespace boost { namespace locale { -namespace impl_icu { -struct cdata { - icu::Locale locale; - std::string encoding; - bool utf8; -}; - -std::locale create_formatting(std::locale const& in, cdata const& cd, character_facet_type type) { - return in; -} - -std::locale create_parsing(std::locale const& in, cdata const& cd, character_facet_type type) { - return in; -} - -std::locale create_calendar(std::locale const& in, cdata const& cd) { - return in; -} - -} -namespace gnu_gettext { -template<> -message_format *create_messages_facet(messages_info const &info) { - return nullptr; -} - -template<> -message_format *create_messages_facet(messages_info const &info) { - return nullptr; -} - -#ifdef BOOST_HAS_CHAR16_T -template<> -message_format *create_messages_facet(messages_info const &info) { - return nullptr; -} -#endif - -#ifdef BOOST_HAS_CHAR32_T -template<> -message_format *create_messages_facet(messages_info const &info) { - return nullptr; -} -#endif -} -} } diff --git a/build/csrihelper/csrihelper.vcxproj b/build/csrihelper/csrihelper.vcxproj deleted file mode 100644 index c4115f23b..000000000 --- a/build/csrihelper/csrihelper.vcxproj +++ /dev/null @@ -1,51 +0,0 @@ - - - - - {C832EAF3-860D-4373-A02C-933626B47A5E} - csrihelper - - - - - lib - ..\..\vendor\csri\ - - - - - - - - - CSRI_NO_EXPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(SrcDir)include\;$(SrcDir)lib\;$(SrcDir)lib\win32\;%(AdditionalIncludeDirectories) - - - $(SrcDir)include - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/csrihelper/csrihelper.vcxproj.filters b/build/csrihelper/csrihelper.vcxproj.filters deleted file mode 100644 index 0dd2ca51c..000000000 --- a/build/csrihelper/csrihelper.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - diff --git a/build/expat/expat.vcxproj b/build/expat/expat.vcxproj deleted file mode 100644 index 399d6ec12..000000000 --- a/build/expat/expat.vcxproj +++ /dev/null @@ -1,55 +0,0 @@ - - - - {D6BA6815-0AAC-48FA-8372-D32CDE8BF07A} - expat - - - - - lib - ..\..\vendor\wxWidgets\src\expat\lib - - - - - - - - - COMPILED_FROM_DSP;%(PreprocessorDefinitions) - - - $(SrcDir) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/expat/expat.vcxproj.filters b/build/expat/expat.vcxproj.filters deleted file mode 100644 index 355924ee7..000000000 --- a/build/expat/expat.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - \ No newline at end of file diff --git a/build/ffmpeg/config-x64.asm b/build/ffmpeg/config-x64.asm deleted file mode 100755 index 3cc5a6c31..000000000 --- a/build/ffmpeg/config-x64.asm +++ /dev/null @@ -1,2460 +0,0 @@ -; Automatically generated by configure - do not modify! -%define ARCH_AARCH64 0 -%define ARCH_ALPHA 0 -%define ARCH_ARM 0 -%define ARCH_AVR32 0 -%define ARCH_AVR32_AP 0 -%define ARCH_AVR32_UC 0 -%define ARCH_BFIN 0 -%define ARCH_IA64 0 -%define ARCH_M68K 0 -%define ARCH_MIPS 0 -%define ARCH_MIPS64 0 -%define ARCH_PARISC 0 -%define ARCH_PPC 0 -%define ARCH_PPC64 0 -%define ARCH_S390 0 -%define ARCH_SH4 0 -%define ARCH_SPARC 0 -%define ARCH_SPARC64 0 -%define ARCH_TILEGX 0 -%define ARCH_TILEPRO 0 -%define ARCH_TOMI 0 -%define ARCH_X86 1 -%define ARCH_X86_32 0 -%define ARCH_X86_64 1 -%define HAVE_ARMV5TE 0 -%define HAVE_ARMV6 0 -%define HAVE_ARMV6T2 0 -%define HAVE_ARMV8 0 -%define HAVE_NEON 0 -%define HAVE_VFP 0 -%define HAVE_VFPV3 0 -%define HAVE_SETEND 0 -%define HAVE_ALTIVEC 0 -%define HAVE_DCBZL 0 -%define HAVE_LDBRX 0 -%define HAVE_POWER8 0 -%define HAVE_PPC4XX 0 -%define HAVE_VSX 0 -%define HAVE_AESNI 1 -%define HAVE_AMD3DNOW 1 -%define HAVE_AMD3DNOWEXT 1 -%define HAVE_AVX 1 -%define HAVE_AVX2 1 -%define HAVE_AVX512 1 -%define HAVE_FMA3 1 -%define HAVE_FMA4 1 -%define HAVE_MMX 1 -%define HAVE_MMXEXT 1 -%define HAVE_SSE 1 -%define HAVE_SSE2 1 -%define HAVE_SSE3 1 -%define HAVE_SSE4 1 -%define HAVE_SSE42 1 -%define HAVE_SSSE3 1 -%define HAVE_XOP 1 -%define HAVE_CPUNOP 1 -%define HAVE_I686 1 -%define HAVE_MIPSFPU 0 -%define HAVE_MIPS32R2 0 -%define HAVE_MIPS32R5 0 -%define HAVE_MIPS64R2 0 -%define HAVE_MIPS32R6 0 -%define HAVE_MIPS64R6 0 -%define HAVE_MIPSDSP 0 -%define HAVE_MIPSDSPR2 0 -%define HAVE_MSA 0 -%define HAVE_LOONGSON2 0 -%define HAVE_LOONGSON3 0 -%define HAVE_MMI 0 -%define HAVE_ARMV5TE_EXTERNAL 0 -%define HAVE_ARMV6_EXTERNAL 0 -%define HAVE_ARMV6T2_EXTERNAL 0 -%define HAVE_ARMV8_EXTERNAL 0 -%define HAVE_NEON_EXTERNAL 0 -%define HAVE_VFP_EXTERNAL 0 -%define HAVE_VFPV3_EXTERNAL 0 -%define HAVE_SETEND_EXTERNAL 0 -%define HAVE_ALTIVEC_EXTERNAL 0 -%define HAVE_DCBZL_EXTERNAL 0 -%define HAVE_LDBRX_EXTERNAL 0 -%define HAVE_POWER8_EXTERNAL 0 -%define HAVE_PPC4XX_EXTERNAL 0 -%define HAVE_VSX_EXTERNAL 0 -%define HAVE_AESNI_EXTERNAL 1 -%define HAVE_AMD3DNOW_EXTERNAL 1 -%define HAVE_AMD3DNOWEXT_EXTERNAL 1 -%define HAVE_AVX_EXTERNAL 1 -%define HAVE_AVX2_EXTERNAL 0 -%define HAVE_AVX512_EXTERNAL 0 -%define HAVE_FMA3_EXTERNAL 1 -%define HAVE_FMA4_EXTERNAL 1 -%define HAVE_MMX_EXTERNAL 1 -%define HAVE_MMXEXT_EXTERNAL 1 -%define HAVE_SSE_EXTERNAL 1 -%define HAVE_SSE2_EXTERNAL 1 -%define HAVE_SSE3_EXTERNAL 1 -%define HAVE_SSE4_EXTERNAL 1 -%define HAVE_SSE42_EXTERNAL 1 -%define HAVE_SSSE3_EXTERNAL 1 -%define HAVE_XOP_EXTERNAL 1 -%define HAVE_CPUNOP_EXTERNAL 0 -%define HAVE_I686_EXTERNAL 0 -%define HAVE_MIPSFPU_EXTERNAL 0 -%define HAVE_MIPS32R2_EXTERNAL 0 -%define HAVE_MIPS32R5_EXTERNAL 0 -%define HAVE_MIPS64R2_EXTERNAL 0 -%define HAVE_MIPS32R6_EXTERNAL 0 -%define HAVE_MIPS64R6_EXTERNAL 0 -%define HAVE_MIPSDSP_EXTERNAL 0 -%define HAVE_MIPSDSPR2_EXTERNAL 0 -%define HAVE_MSA_EXTERNAL 0 -%define HAVE_LOONGSON2_EXTERNAL 0 -%define HAVE_LOONGSON3_EXTERNAL 0 -%define HAVE_MMI_EXTERNAL 0 -%define HAVE_ARMV5TE_INLINE 0 -%define HAVE_ARMV6_INLINE 0 -%define HAVE_ARMV6T2_INLINE 0 -%define HAVE_ARMV8_INLINE 0 -%define HAVE_NEON_INLINE 0 -%define HAVE_VFP_INLINE 0 -%define HAVE_VFPV3_INLINE 0 -%define HAVE_SETEND_INLINE 0 -%define HAVE_ALTIVEC_INLINE 0 -%define HAVE_DCBZL_INLINE 0 -%define HAVE_LDBRX_INLINE 0 -%define HAVE_POWER8_INLINE 0 -%define HAVE_PPC4XX_INLINE 0 -%define HAVE_VSX_INLINE 0 -%define HAVE_AESNI_INLINE 0 -%define HAVE_AMD3DNOW_INLINE 0 -%define HAVE_AMD3DNOWEXT_INLINE 0 -%define HAVE_AVX_INLINE 0 -%define HAVE_AVX2_INLINE 0 -%define HAVE_AVX512_INLINE 0 -%define HAVE_FMA3_INLINE 0 -%define HAVE_FMA4_INLINE 0 -%define HAVE_MMX_INLINE 0 -%define HAVE_MMXEXT_INLINE 0 -%define HAVE_SSE_INLINE 0 -%define HAVE_SSE2_INLINE 0 -%define HAVE_SSE3_INLINE 0 -%define HAVE_SSE4_INLINE 0 -%define HAVE_SSE42_INLINE 0 -%define HAVE_SSSE3_INLINE 0 -%define HAVE_XOP_INLINE 0 -%define HAVE_CPUNOP_INLINE 0 -%define HAVE_I686_INLINE 0 -%define HAVE_MIPSFPU_INLINE 0 -%define HAVE_MIPS32R2_INLINE 0 -%define HAVE_MIPS32R5_INLINE 0 -%define HAVE_MIPS64R2_INLINE 0 -%define HAVE_MIPS32R6_INLINE 0 -%define HAVE_MIPS64R6_INLINE 0 -%define HAVE_MIPSDSP_INLINE 0 -%define HAVE_MIPSDSPR2_INLINE 0 -%define HAVE_MSA_INLINE 0 -%define HAVE_LOONGSON2_INLINE 0 -%define HAVE_LOONGSON3_INLINE 0 -%define HAVE_MMI_INLINE 0 -%define HAVE_ALIGNED_STACK 1 -%define HAVE_FAST_64BIT 1 -%define HAVE_FAST_CLZ 1 -%define HAVE_FAST_CMOV 1 -%define HAVE_LOCAL_ALIGNED 1 -%define HAVE_SIMD_ALIGN_16 1 -%define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 -%define HAVE_ATOMIC_CAS_PTR 0 -%define HAVE_MACHINE_RW_BARRIER 0 -%define HAVE_MEMORYBARRIER 1 -%define HAVE_MM_EMPTY 0 -%define HAVE_RDTSC 1 -%define HAVE_SEM_TIMEDWAIT 0 -%define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 -%define HAVE_CABS 0 -%define HAVE_CEXP 0 -%define HAVE_INLINE_ASM 0 -%define HAVE_SYMVER 0 -%define HAVE_X86ASM 1 -%define HAVE_BIGENDIAN 0 -%define HAVE_FAST_UNALIGNED 1 -%define HAVE_ARPA_INET_H 0 -%define HAVE_ASM_TYPES_H 0 -%define HAVE_CDIO_PARANOIA_H 0 -%define HAVE_CDIO_PARANOIA_PARANOIA_H 0 -%define HAVE_CUDA_H 0 -%define HAVE_DISPATCH_DISPATCH_H 0 -%define HAVE_DEV_BKTR_IOCTL_BT848_H 0 -%define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 -%define HAVE_DEV_IC_BT8XX_H 0 -%define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 -%define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 -%define HAVE_DIRECT_H 1 -%define HAVE_DIRENT_H 0 -%define HAVE_DXGIDEBUG_H 1 -%define HAVE_DXVA_H 1 -%define HAVE_ES2_GL_H 0 -%define HAVE_GSM_H 0 -%define HAVE_IO_H 1 -%define HAVE_LINUX_PERF_EVENT_H 0 -%define HAVE_MACHINE_IOCTL_BT848_H 0 -%define HAVE_MACHINE_IOCTL_METEOR_H 0 -%define HAVE_MALLOC_H 1 -%define HAVE_OPENCV2_CORE_CORE_C_H 0 -%define HAVE_OPENGL_GL3_H 0 -%define HAVE_POLL_H 0 -%define HAVE_SYS_PARAM_H 0 -%define HAVE_SYS_RESOURCE_H 0 -%define HAVE_SYS_SELECT_H 0 -%define HAVE_SYS_SOUNDCARD_H 0 -%define HAVE_SYS_TIME_H 0 -%define HAVE_SYS_UN_H 0 -%define HAVE_SYS_VIDEOIO_H 0 -%define HAVE_TERMIOS_H 0 -%define HAVE_UDPLITE_H 0 -%define HAVE_UNISTD_H 0 -%define HAVE_VALGRIND_VALGRIND_H 0 -%define HAVE_WINDOWS_H 1 -%define HAVE_WINSOCK2_H 0 -%define HAVE_INTRINSICS_NEON 0 -%define HAVE_ATANF 1 -%define HAVE_ATAN2F 1 -%define HAVE_CBRT 1 -%define HAVE_CBRTF 1 -%define HAVE_COPYSIGN 1 -%define HAVE_COSF 1 -%define HAVE_ERF 1 -%define HAVE_EXP2 1 -%define HAVE_EXP2F 1 -%define HAVE_EXPF 1 -%define HAVE_HYPOT 1 -%define HAVE_ISFINITE 1 -%define HAVE_ISINF 1 -%define HAVE_ISNAN 1 -%define HAVE_LDEXPF 1 -%define HAVE_LLRINT 1 -%define HAVE_LLRINTF 1 -%define HAVE_LOG2 1 -%define HAVE_LOG2F 1 -%define HAVE_LOG10F 1 -%define HAVE_LRINT 1 -%define HAVE_LRINTF 1 -%define HAVE_POWF 1 -%define HAVE_RINT 1 -%define HAVE_ROUND 1 -%define HAVE_ROUNDF 1 -%define HAVE_SINF 1 -%define HAVE_TRUNC 1 -%define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 -%define HAVE_ACCESS 1 -%define HAVE_ALIGNED_MALLOC 1 -%define HAVE_ARC4RANDOM 0 -%define HAVE_CLOCK_GETTIME 0 -%define HAVE_CLOSESOCKET 0 -%define HAVE_COMMANDLINETOARGVW 1 -%define HAVE_FCNTL 0 -%define HAVE_GETADDRINFO 0 -%define HAVE_GETHRTIME 0 -%define HAVE_GETOPT 0 -%define HAVE_GETPROCESSAFFINITYMASK 1 -%define HAVE_GETPROCESSMEMORYINFO 1 -%define HAVE_GETPROCESSTIMES 1 -%define HAVE_GETRUSAGE 0 -%define HAVE_GETSYSTEMTIMEASFILETIME 1 -%define HAVE_GETTIMEOFDAY 0 -%define HAVE_GLOB 0 -%define HAVE_GLXGETPROCADDRESS 0 -%define HAVE_GMTIME_R 0 -%define HAVE_INET_ATON 0 -%define HAVE_ISATTY 1 -%define HAVE_KBHIT 1 -%define HAVE_LOCALTIME_R 0 -%define HAVE_LSTAT 0 -%define HAVE_LZO1X_999_COMPRESS 0 -%define HAVE_MACH_ABSOLUTE_TIME 0 -%define HAVE_MAPVIEWOFFILE 1 -%define HAVE_MEMALIGN 0 -%define HAVE_MKSTEMP 0 -%define HAVE_MMAP 0 -%define HAVE_MPROTECT 0 -%define HAVE_NANOSLEEP 0 -%define HAVE_PEEKNAMEDPIPE 1 -%define HAVE_POSIX_MEMALIGN 0 -%define HAVE_PTHREAD_CANCEL 0 -%define HAVE_SCHED_GETAFFINITY 0 -%define HAVE_SECITEMIMPORT 0 -%define HAVE_SETCONSOLETEXTATTRIBUTE 1 -%define HAVE_SETCONSOLECTRLHANDLER 1 -%define HAVE_SETMODE 1 -%define HAVE_SETRLIMIT 0 -%define HAVE_SLEEP 1 -%define HAVE_STRERROR_R 0 -%define HAVE_SYSCONF 0 -%define HAVE_SYSCTL 0 -%define HAVE_USLEEP 0 -%define HAVE_UTGETOSTYPEFROMSTRING 0 -%define HAVE_VIRTUALALLOC 1 -%define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 1 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 -%define HAVE_PTHREADS 0 -%define HAVE_OS2THREADS 0 -%define HAVE_W32THREADS 1 -%define HAVE_AS_ARCH_DIRECTIVE 0 -%define HAVE_AS_DN_DIRECTIVE 0 -%define HAVE_AS_FPU_DIRECTIVE 0 -%define HAVE_AS_FUNC 0 -%define HAVE_AS_OBJECT_ARCH 0 -%define HAVE_ASM_MOD_Q 0 -%define HAVE_BLOCKS_EXTENSION 0 -%define HAVE_EBP_AVAILABLE 0 -%define HAVE_EBX_AVAILABLE 0 -%define HAVE_GNU_AS 0 -%define HAVE_GNU_WINDRES 0 -%define HAVE_IBM_ASM 0 -%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 -%define HAVE_INLINE_ASM_LABELS 0 -%define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -%define HAVE_PRAGMA_DEPRECATED 1 -%define HAVE_RSYNC_CONTIMEOUT 0 -%define HAVE_SYMVER_ASM_LABEL 0 -%define HAVE_SYMVER_GNU_ASM 0 -%define HAVE_VFP_ARGS 0 -%define HAVE_XFORM_ASM 0 -%define HAVE_XMM_CLOBBERS 0 -%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 -%define HAVE_SOCKLEN_T 0 -%define HAVE_STRUCT_ADDRINFO 0 -%define HAVE_STRUCT_GROUP_SOURCE_REQ 0 -%define HAVE_STRUCT_IP_MREQ_SOURCE 0 -%define HAVE_STRUCT_IPV6_MREQ 0 -%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -%define HAVE_STRUCT_POLLFD 0 -%define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 -%define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 -%define HAVE_STRUCT_SOCKADDR_IN6 0 -%define HAVE_STRUCT_SOCKADDR_SA_LEN 0 -%define HAVE_STRUCT_SOCKADDR_STORAGE 0 -%define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 -%define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -%define HAVE_MAKEINFO 0 -%define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 -%define HAVE_PERL 1 -%define HAVE_POD2MAN 0 -%define HAVE_TEXI2HTML 0 -%define CONFIG_DOC 0 -%define CONFIG_HTMLPAGES 0 -%define CONFIG_MANPAGES 0 -%define CONFIG_PODPAGES 1 -%define CONFIG_TXTPAGES 0 -%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 -%define CONFIG_AVIO_READING_EXAMPLE 1 -%define CONFIG_DECODE_AUDIO_EXAMPLE 1 -%define CONFIG_DECODE_VIDEO_EXAMPLE 1 -%define CONFIG_DEMUXING_DECODING_EXAMPLE 1 -%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 -%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 -%define CONFIG_EXTRACT_MVS_EXAMPLE 1 -%define CONFIG_FILTER_AUDIO_EXAMPLE 0 -%define CONFIG_FILTERING_AUDIO_EXAMPLE 0 -%define CONFIG_FILTERING_VIDEO_EXAMPLE 0 -%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 -%define CONFIG_HW_DECODE_EXAMPLE 1 -%define CONFIG_METADATA_EXAMPLE 1 -%define CONFIG_MUXING_EXAMPLE 1 -%define CONFIG_QSVDEC_EXAMPLE 0 -%define CONFIG_REMUXING_EXAMPLE 1 -%define CONFIG_RESAMPLING_AUDIO_EXAMPLE 1 -%define CONFIG_SCALING_VIDEO_EXAMPLE 1 -%define CONFIG_TRANSCODE_AAC_EXAMPLE 1 -%define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 -%define CONFIG_AVISYNTH 0 -%define CONFIG_FREI0R 0 -%define CONFIG_LIBCDIO 0 -%define CONFIG_LIBDAVS2 0 -%define CONFIG_LIBRUBBERBAND 0 -%define CONFIG_LIBVIDSTAB 0 -%define CONFIG_LIBX264 0 -%define CONFIG_LIBX265 0 -%define CONFIG_LIBXAVS 0 -%define CONFIG_LIBXAVS2 0 -%define CONFIG_LIBXVID 0 -%define CONFIG_DECKLINK 0 -%define CONFIG_LIBNDI_NEWTEK 0 -%define CONFIG_LIBFDK_AAC 0 -%define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 -%define CONFIG_GMP 0 -%define CONFIG_LIBLENSFUN 0 -%define CONFIG_LIBOPENCORE_AMRNB 0 -%define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 -%define CONFIG_LIBVO_AMRWBENC 0 -%define CONFIG_MBEDTLS 0 -%define CONFIG_RKMPP 0 -%define CONFIG_LIBSMBCLIENT 0 -%define CONFIG_CHROMAPRINT 0 -%define CONFIG_GCRYPT 0 -%define CONFIG_GNUTLS 0 -%define CONFIG_JNI 0 -%define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 -%define CONFIG_LIBASS 0 -%define CONFIG_LIBBLURAY 0 -%define CONFIG_LIBBS2B 0 -%define CONFIG_LIBCACA 0 -%define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 -%define CONFIG_LIBDAV1D 0 -%define CONFIG_LIBDC1394 0 -%define CONFIG_LIBDRM 0 -%define CONFIG_LIBFLITE 0 -%define CONFIG_LIBFONTCONFIG 0 -%define CONFIG_LIBFREETYPE 0 -%define CONFIG_LIBFRIBIDI 0 -%define CONFIG_LIBGME 0 -%define CONFIG_LIBGSM 0 -%define CONFIG_LIBIEC61883 0 -%define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 -%define CONFIG_LIBKLVANC 0 -%define CONFIG_LIBKVAZAAR 0 -%define CONFIG_LIBMODPLUG 0 -%define CONFIG_LIBMP3LAME 0 -%define CONFIG_LIBMYSOFA 0 -%define CONFIG_LIBOPENCV 0 -%define CONFIG_LIBOPENH264 0 -%define CONFIG_LIBOPENJPEG 0 -%define CONFIG_LIBOPENMPT 0 -%define CONFIG_LIBOPUS 0 -%define CONFIG_LIBPULSE 0 -%define CONFIG_LIBRSVG 0 -%define CONFIG_LIBRTMP 0 -%define CONFIG_LIBSHINE 0 -%define CONFIG_LIBSMBCLIENT 0 -%define CONFIG_LIBSNAPPY 0 -%define CONFIG_LIBSOXR 0 -%define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 -%define CONFIG_LIBSSH 0 -%define CONFIG_LIBTENSORFLOW 0 -%define CONFIG_LIBTESSERACT 0 -%define CONFIG_LIBTHEORA 0 -%define CONFIG_LIBTWOLAME 0 -%define CONFIG_LIBV4L2 0 -%define CONFIG_LIBVORBIS 0 -%define CONFIG_LIBVPX 0 -%define CONFIG_LIBWAVPACK 0 -%define CONFIG_LIBWEBP 0 -%define CONFIG_LIBXML2 0 -%define CONFIG_LIBZIMG 0 -%define CONFIG_LIBZMQ 0 -%define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 -%define CONFIG_MEDIACODEC 0 -%define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_VAPOURSYNTH 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 0 -%define CONFIG_AVFOUNDATION 0 -%define CONFIG_BZLIB 0 -%define CONFIG_COREIMAGE 0 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 0 -%define CONFIG_SCHANNEL 1 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 0 -%define CONFIG_ZLIB 1 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 -%define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 -%define CONFIG_AUDIOTOOLBOX 0 -%define CONFIG_CRYSTALHD 0 -%define CONFIG_CUDA 0 -%define CONFIG_CUVID 0 -%define CONFIG_D3D11VA 0 -%define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 -%define CONFIG_NVENC 0 -%define CONFIG_VAAPI 0 -%define CONFIG_VDPAU 0 -%define CONFIG_VIDEOTOOLBOX 0 -%define CONFIG_V4L2_M2M 0 -%define CONFIG_XVMC 0 -%define CONFIG_FTRAPV 0 -%define CONFIG_GRAY 0 -%define CONFIG_HARDCODED_TABLES 0 -%define CONFIG_OMX_RPI 0 -%define CONFIG_RUNTIME_CPUDETECT 1 -%define CONFIG_SAFE_BITSTREAM_READER 1 -%define CONFIG_SHARED 0 -%define CONFIG_SMALL 1 -%define CONFIG_STATIC 1 -%define CONFIG_SWSCALE_ALPHA 1 -%define CONFIG_GPL 1 -%define CONFIG_NONFREE 0 -%define CONFIG_VERSION3 0 -%define CONFIG_AVDEVICE 1 -%define CONFIG_AVFILTER 0 -%define CONFIG_SWSCALE 1 -%define CONFIG_POSTPROC 0 -%define CONFIG_AVFORMAT 1 -%define CONFIG_AVCODEC 1 -%define CONFIG_SWRESAMPLE 1 -%define CONFIG_AVRESAMPLE 0 -%define CONFIG_AVUTIL 1 -%define CONFIG_FFPLAY 0 -%define CONFIG_FFPROBE 0 -%define CONFIG_FFMPEG 0 -%define CONFIG_DCT 1 -%define CONFIG_DWT 1 -%define CONFIG_ERROR_RESILIENCE 1 -%define CONFIG_FAAN 1 -%define CONFIG_FAST_UNALIGNED 1 -%define CONFIG_FFT 1 -%define CONFIG_LSP 1 -%define CONFIG_LZO 1 -%define CONFIG_MDCT 1 -%define CONFIG_PIXELUTILS 0 -%define CONFIG_NETWORK 0 -%define CONFIG_RDFT 1 -%define CONFIG_AUTODETECT 0 -%define CONFIG_FONTCONFIG 0 -%define CONFIG_LINUX_PERF 0 -%define CONFIG_MEMORY_POISONING 0 -%define CONFIG_NEON_CLOBBER_TEST 0 -%define CONFIG_OSSFUZZ 0 -%define CONFIG_PIC 0 -%define CONFIG_THUMB 0 -%define CONFIG_VALGRIND_BACKTRACE 0 -%define CONFIG_XMM_CLOBBER_TEST 0 -%define CONFIG_BSFS 1 -%define CONFIG_DECODERS 1 -%define CONFIG_ENCODERS 0 -%define CONFIG_HWACCELS 0 -%define CONFIG_PARSERS 1 -%define CONFIG_INDEVS 0 -%define CONFIG_OUTDEVS 0 -%define CONFIG_FILTERS 0 -%define CONFIG_DEMUXERS 1 -%define CONFIG_MUXERS 0 -%define CONFIG_PROTOCOLS 1 -%define CONFIG_AANDCTTABLES 1 -%define CONFIG_AC3DSP 1 -%define CONFIG_ADTS_HEADER 1 -%define CONFIG_AUDIO_FRAME_QUEUE 1 -%define CONFIG_AUDIODSP 1 -%define CONFIG_BLOCKDSP 1 -%define CONFIG_BSWAPDSP 1 -%define CONFIG_CABAC 1 -%define CONFIG_CBS 1 -%define CONFIG_CBS_AV1 1 -%define CONFIG_CBS_H264 1 -%define CONFIG_CBS_H265 1 -%define CONFIG_CBS_JPEG 0 -%define CONFIG_CBS_MPEG2 1 -%define CONFIG_CBS_VP9 1 -%define CONFIG_DIRAC_PARSE 1 -%define CONFIG_DNN 0 -%define CONFIG_DVPROFILE 1 -%define CONFIG_EXIF 1 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 -%define CONFIG_FLACDSP 1 -%define CONFIG_FMTCONVERT 1 -%define CONFIG_FRAME_THREAD_ENCODER 0 -%define CONFIG_G722DSP 1 -%define CONFIG_GOLOMB 1 -%define CONFIG_GPLV3 0 -%define CONFIG_H263DSP 1 -%define CONFIG_H264CHROMA 1 -%define CONFIG_H264DSP 1 -%define CONFIG_H264PARSE 1 -%define CONFIG_H264PRED 1 -%define CONFIG_H264QPEL 1 -%define CONFIG_HEVCPARSE 1 -%define CONFIG_HPELDSP 1 -%define CONFIG_HUFFMAN 1 -%define CONFIG_HUFFYUVDSP 1 -%define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 -%define CONFIG_IIRFILTER 0 -%define CONFIG_MDCT15 1 -%define CONFIG_INTRAX8 1 -%define CONFIG_ISO_MEDIA 1 -%define CONFIG_IVIDSP 0 -%define CONFIG_JPEGTABLES 1 -%define CONFIG_LGPLV3 0 -%define CONFIG_LIBX262 0 -%define CONFIG_LLAUDDSP 1 -%define CONFIG_LLVIDDSP 1 -%define CONFIG_LLVIDENCDSP 0 -%define CONFIG_LPC 0 -%define CONFIG_LZF 1 -%define CONFIG_ME_CMP 1 -%define CONFIG_MPEG_ER 1 -%define CONFIG_MPEGAUDIO 1 -%define CONFIG_MPEGAUDIODSP 1 -%define CONFIG_MPEGAUDIOHEADER 1 -%define CONFIG_MPEGVIDEO 1 -%define CONFIG_MPEGVIDEOENC 1 -%define CONFIG_MSS34DSP 1 -%define CONFIG_PIXBLOCKDSP 1 -%define CONFIG_QPELDSP 1 -%define CONFIG_QSV 0 -%define CONFIG_QSVDEC 0 -%define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 -%define CONFIG_RANGECODER 1 -%define CONFIG_RIFFDEC 1 -%define CONFIG_RIFFENC 0 -%define CONFIG_RTPDEC 0 -%define CONFIG_RTPENC_CHAIN 0 -%define CONFIG_RV34DSP 1 -%define CONFIG_SCENE_SAD 0 -%define CONFIG_SINEWIN 1 -%define CONFIG_SNAPPY 1 -%define CONFIG_SRTP 0 -%define CONFIG_STARTCODE 1 -%define CONFIG_TEXTUREDSP 1 -%define CONFIG_TEXTUREDSPENC 0 -%define CONFIG_TPELDSP 1 -%define CONFIG_VAAPI_1 0 -%define CONFIG_VAAPI_ENCODE 0 -%define CONFIG_VC1DSP 1 -%define CONFIG_VIDEODSP 1 -%define CONFIG_VP3DSP 1 -%define CONFIG_VP56DSP 1 -%define CONFIG_VP8DSP 1 -%define CONFIG_WMA_FREQS 1 -%define CONFIG_WMV2DSP 1 -%define CONFIG_AAC_ADTSTOASC_BSF 1 -%define CONFIG_AV1_METADATA_BSF 1 -%define CONFIG_CHOMP_BSF 1 -%define CONFIG_DUMP_EXTRADATA_BSF 1 -%define CONFIG_DCA_CORE_BSF 1 -%define CONFIG_EAC3_CORE_BSF 1 -%define CONFIG_EXTRACT_EXTRADATA_BSF 1 -%define CONFIG_FILTER_UNITS_BSF 1 -%define CONFIG_H264_METADATA_BSF 1 -%define CONFIG_H264_MP4TOANNEXB_BSF 1 -%define CONFIG_H264_REDUNDANT_PPS_BSF 1 -%define CONFIG_HAPQA_EXTRACT_BSF 1 -%define CONFIG_HEVC_METADATA_BSF 1 -%define CONFIG_HEVC_MP4TOANNEXB_BSF 1 -%define CONFIG_IMX_DUMP_HEADER_BSF 1 -%define CONFIG_MJPEG2JPEG_BSF 1 -%define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 -%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 -%define CONFIG_MPEG2_METADATA_BSF 1 -%define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 -%define CONFIG_MOV2TEXTSUB_BSF 1 -%define CONFIG_NOISE_BSF 1 -%define CONFIG_NULL_BSF 1 -%define CONFIG_PRORES_METADATA_BSF 1 -%define CONFIG_REMOVE_EXTRADATA_BSF 1 -%define CONFIG_TEXT2MOVSUB_BSF 1 -%define CONFIG_TRACE_HEADERS_BSF 1 -%define CONFIG_VP9_METADATA_BSF 1 -%define CONFIG_VP9_RAW_REORDER_BSF 1 -%define CONFIG_VP9_SUPERFRAME_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 -%define CONFIG_AASC_DECODER 1 -%define CONFIG_AIC_DECODER 1 -%define CONFIG_ALIAS_PIX_DECODER 1 -%define CONFIG_AMV_DECODER 1 -%define CONFIG_ANM_DECODER 1 -%define CONFIG_ANSI_DECODER 1 -%define CONFIG_APNG_DECODER 1 -%define CONFIG_ASV1_DECODER 1 -%define CONFIG_ASV2_DECODER 1 -%define CONFIG_AURA_DECODER 1 -%define CONFIG_AURA2_DECODER 1 -%define CONFIG_AVRP_DECODER 1 -%define CONFIG_AVRN_DECODER 1 -%define CONFIG_AVS_DECODER 1 -%define CONFIG_AVUI_DECODER 1 -%define CONFIG_AYUV_DECODER 1 -%define CONFIG_BETHSOFTVID_DECODER 1 -%define CONFIG_BFI_DECODER 1 -%define CONFIG_BINK_DECODER 1 -%define CONFIG_BITPACKED_DECODER 1 -%define CONFIG_BMP_DECODER 1 -%define CONFIG_BMV_VIDEO_DECODER 1 -%define CONFIG_BRENDER_PIX_DECODER 1 -%define CONFIG_C93_DECODER 1 -%define CONFIG_CAVS_DECODER 1 -%define CONFIG_CDGRAPHICS_DECODER 1 -%define CONFIG_CDXL_DECODER 1 -%define CONFIG_CFHD_DECODER 1 -%define CONFIG_CINEPAK_DECODER 1 -%define CONFIG_CLEARVIDEO_DECODER 1 -%define CONFIG_CLJR_DECODER 1 -%define CONFIG_CLLC_DECODER 1 -%define CONFIG_COMFORTNOISE_DECODER 1 -%define CONFIG_CPIA_DECODER 1 -%define CONFIG_CSCD_DECODER 1 -%define CONFIG_CYUV_DECODER 1 -%define CONFIG_DDS_DECODER 1 -%define CONFIG_DFA_DECODER 1 -%define CONFIG_DIRAC_DECODER 1 -%define CONFIG_DNXHD_DECODER 1 -%define CONFIG_DPX_DECODER 1 -%define CONFIG_DSICINVIDEO_DECODER 1 -%define CONFIG_DVAUDIO_DECODER 1 -%define CONFIG_DVVIDEO_DECODER 1 -%define CONFIG_DXA_DECODER 1 -%define CONFIG_DXTORY_DECODER 1 -%define CONFIG_DXV_DECODER 1 -%define CONFIG_EACMV_DECODER 1 -%define CONFIG_EAMAD_DECODER 1 -%define CONFIG_EATGQ_DECODER 1 -%define CONFIG_EATGV_DECODER 1 -%define CONFIG_EATQI_DECODER 1 -%define CONFIG_EIGHTBPS_DECODER 1 -%define CONFIG_EIGHTSVX_EXP_DECODER 1 -%define CONFIG_EIGHTSVX_FIB_DECODER 1 -%define CONFIG_ESCAPE124_DECODER 1 -%define CONFIG_ESCAPE130_DECODER 1 -%define CONFIG_EXR_DECODER 1 -%define CONFIG_FFV1_DECODER 1 -%define CONFIG_FFVHUFF_DECODER 1 -%define CONFIG_FIC_DECODER 1 -%define CONFIG_FITS_DECODER 1 -%define CONFIG_FLASHSV_DECODER 1 -%define CONFIG_FLASHSV2_DECODER 1 -%define CONFIG_FLIC_DECODER 1 -%define CONFIG_FLV_DECODER 1 -%define CONFIG_FMVC_DECODER 1 -%define CONFIG_FOURXM_DECODER 1 -%define CONFIG_FRAPS_DECODER 1 -%define CONFIG_FRWU_DECODER 1 -%define CONFIG_G2M_DECODER 1 -%define CONFIG_GDV_DECODER 1 -%define CONFIG_GIF_DECODER 1 -%define CONFIG_H261_DECODER 1 -%define CONFIG_H263_DECODER 1 -%define CONFIG_H263I_DECODER 1 -%define CONFIG_H263P_DECODER 1 -%define CONFIG_H263_V4L2M2M_DECODER 0 -%define CONFIG_H264_DECODER 1 -%define CONFIG_H264_CRYSTALHD_DECODER 0 -%define CONFIG_H264_V4L2M2M_DECODER 0 -%define CONFIG_H264_MEDIACODEC_DECODER 0 -%define CONFIG_H264_MMAL_DECODER 0 -%define CONFIG_H264_QSV_DECODER 0 -%define CONFIG_H264_RKMPP_DECODER 0 -%define CONFIG_HAP_DECODER 1 -%define CONFIG_HEVC_DECODER 1 -%define CONFIG_HEVC_QSV_DECODER 0 -%define CONFIG_HEVC_RKMPP_DECODER 0 -%define CONFIG_HEVC_V4L2M2M_DECODER 0 -%define CONFIG_HNM4_VIDEO_DECODER 1 -%define CONFIG_HQ_HQA_DECODER 1 -%define CONFIG_HQX_DECODER 1 -%define CONFIG_HUFFYUV_DECODER 1 -%define CONFIG_IDCIN_DECODER 1 -%define CONFIG_IFF_ILBM_DECODER 1 -%define CONFIG_IMM4_DECODER 1 -%define CONFIG_INDEO2_DECODER 0 -%define CONFIG_INDEO3_DECODER 0 -%define CONFIG_INDEO4_DECODER 0 -%define CONFIG_INDEO5_DECODER 0 -%define CONFIG_INTERPLAY_VIDEO_DECODER 1 -%define CONFIG_JPEG2000_DECODER 1 -%define CONFIG_JPEGLS_DECODER 1 -%define CONFIG_JV_DECODER 1 -%define CONFIG_KGV1_DECODER 1 -%define CONFIG_KMVC_DECODER 1 -%define CONFIG_LAGARITH_DECODER 1 -%define CONFIG_LOCO_DECODER 1 -%define CONFIG_M101_DECODER 1 -%define CONFIG_MAGICYUV_DECODER 1 -%define CONFIG_MDEC_DECODER 1 -%define CONFIG_MIMIC_DECODER 1 -%define CONFIG_MJPEG_DECODER 1 -%define CONFIG_MJPEGB_DECODER 1 -%define CONFIG_MMVIDEO_DECODER 1 -%define CONFIG_MOTIONPIXELS_DECODER 1 -%define CONFIG_MPEG1VIDEO_DECODER 1 -%define CONFIG_MPEG2VIDEO_DECODER 1 -%define CONFIG_MPEG4_DECODER 1 -%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG4_V4L2M2M_DECODER 0 -%define CONFIG_MPEG4_MMAL_DECODER 0 -%define CONFIG_MPEGVIDEO_DECODER 1 -%define CONFIG_MPEG1_V4L2M2M_DECODER 0 -%define CONFIG_MPEG2_MMAL_DECODER 0 -%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG2_V4L2M2M_DECODER 0 -%define CONFIG_MPEG2_QSV_DECODER 0 -%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -%define CONFIG_MSA1_DECODER 1 -%define CONFIG_MSCC_DECODER 1 -%define CONFIG_MSMPEG4V1_DECODER 1 -%define CONFIG_MSMPEG4V2_DECODER 1 -%define CONFIG_MSMPEG4V3_DECODER 1 -%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MSRLE_DECODER 1 -%define CONFIG_MSS1_DECODER 1 -%define CONFIG_MSS2_DECODER 1 -%define CONFIG_MSVIDEO1_DECODER 1 -%define CONFIG_MSZH_DECODER 1 -%define CONFIG_MTS2_DECODER 1 -%define CONFIG_MVC1_DECODER 1 -%define CONFIG_MVC2_DECODER 1 -%define CONFIG_MWSC_DECODER 1 -%define CONFIG_MXPEG_DECODER 1 -%define CONFIG_NUV_DECODER 1 -%define CONFIG_PAF_VIDEO_DECODER 1 -%define CONFIG_PAM_DECODER 1 -%define CONFIG_PBM_DECODER 1 -%define CONFIG_PCX_DECODER 1 -%define CONFIG_PGM_DECODER 1 -%define CONFIG_PGMYUV_DECODER 1 -%define CONFIG_PICTOR_DECODER 1 -%define CONFIG_PIXLET_DECODER 1 -%define CONFIG_PNG_DECODER 1 -%define CONFIG_PPM_DECODER 1 -%define CONFIG_PRORES_DECODER 1 -%define CONFIG_PROSUMER_DECODER 1 -%define CONFIG_PSD_DECODER 1 -%define CONFIG_PTX_DECODER 1 -%define CONFIG_QDRAW_DECODER 1 -%define CONFIG_QPEG_DECODER 1 -%define CONFIG_QTRLE_DECODER 1 -%define CONFIG_R10K_DECODER 1 -%define CONFIG_R210_DECODER 1 -%define CONFIG_RASC_DECODER 1 -%define CONFIG_RAWVIDEO_DECODER 1 -%define CONFIG_RL2_DECODER 1 -%define CONFIG_ROQ_DECODER 1 -%define CONFIG_RPZA_DECODER 1 -%define CONFIG_RSCC_DECODER 1 -%define CONFIG_RV10_DECODER 1 -%define CONFIG_RV20_DECODER 1 -%define CONFIG_RV30_DECODER 1 -%define CONFIG_RV40_DECODER 1 -%define CONFIG_S302M_DECODER 1 -%define CONFIG_SANM_DECODER 1 -%define CONFIG_SCPR_DECODER 1 -%define CONFIG_SCREENPRESSO_DECODER 1 -%define CONFIG_SDX2_DPCM_DECODER 1 -%define CONFIG_SGI_DECODER 1 -%define CONFIG_SGIRLE_DECODER 1 -%define CONFIG_SHEERVIDEO_DECODER 1 -%define CONFIG_SMACKER_DECODER 1 -%define CONFIG_SMC_DECODER 1 -%define CONFIG_SMVJPEG_DECODER 1 -%define CONFIG_SNOW_DECODER 1 -%define CONFIG_SP5X_DECODER 1 -%define CONFIG_SPEEDHQ_DECODER 1 -%define CONFIG_SRGC_DECODER 1 -%define CONFIG_SUNRAST_DECODER 1 -%define CONFIG_SVQ1_DECODER 1 -%define CONFIG_SVQ3_DECODER 1 -%define CONFIG_TARGA_DECODER 1 -%define CONFIG_TARGA_Y216_DECODER 1 -%define CONFIG_TDSC_DECODER 1 -%define CONFIG_THEORA_DECODER 1 -%define CONFIG_THP_DECODER 1 -%define CONFIG_TIERTEXSEQVIDEO_DECODER 1 -%define CONFIG_TIFF_DECODER 1 -%define CONFIG_TMV_DECODER 1 -%define CONFIG_TRUEMOTION1_DECODER 1 -%define CONFIG_TRUEMOTION2_DECODER 1 -%define CONFIG_TRUEMOTION2RT_DECODER 1 -%define CONFIG_TSCC_DECODER 1 -%define CONFIG_TSCC2_DECODER 1 -%define CONFIG_TXD_DECODER 1 -%define CONFIG_ULTI_DECODER 1 -%define CONFIG_UTVIDEO_DECODER 1 -%define CONFIG_V210_DECODER 1 -%define CONFIG_V210X_DECODER 1 -%define CONFIG_V308_DECODER 1 -%define CONFIG_V408_DECODER 1 -%define CONFIG_V410_DECODER 1 -%define CONFIG_VB_DECODER 1 -%define CONFIG_VBLE_DECODER 1 -%define CONFIG_VC1_DECODER 1 -%define CONFIG_VC1_CRYSTALHD_DECODER 0 -%define CONFIG_VC1IMAGE_DECODER 1 -%define CONFIG_VC1_MMAL_DECODER 0 -%define CONFIG_VC1_QSV_DECODER 0 -%define CONFIG_VC1_V4L2M2M_DECODER 0 -%define CONFIG_VCR1_DECODER 1 -%define CONFIG_VMDVIDEO_DECODER 1 -%define CONFIG_VMNC_DECODER 1 -%define CONFIG_VP3_DECODER 1 -%define CONFIG_VP5_DECODER 1 -%define CONFIG_VP6_DECODER 1 -%define CONFIG_VP6A_DECODER 1 -%define CONFIG_VP6F_DECODER 1 -%define CONFIG_VP7_DECODER 1 -%define CONFIG_VP8_DECODER 1 -%define CONFIG_VP8_RKMPP_DECODER 0 -%define CONFIG_VP8_V4L2M2M_DECODER 0 -%define CONFIG_VP9_DECODER 1 -%define CONFIG_VP9_RKMPP_DECODER 0 -%define CONFIG_VP9_V4L2M2M_DECODER 0 -%define CONFIG_VQA_DECODER 1 -%define CONFIG_WEBP_DECODER 1 -%define CONFIG_WCMV_DECODER 1 -%define CONFIG_WRAPPED_AVFRAME_DECODER 1 -%define CONFIG_WMV1_DECODER 1 -%define CONFIG_WMV2_DECODER 1 -%define CONFIG_WMV3_DECODER 1 -%define CONFIG_WMV3_CRYSTALHD_DECODER 0 -%define CONFIG_WMV3IMAGE_DECODER 1 -%define CONFIG_WNV1_DECODER 1 -%define CONFIG_XAN_WC3_DECODER 1 -%define CONFIG_XAN_WC4_DECODER 1 -%define CONFIG_XBM_DECODER 1 -%define CONFIG_XFACE_DECODER 1 -%define CONFIG_XL_DECODER 1 -%define CONFIG_XPM_DECODER 1 -%define CONFIG_XWD_DECODER 1 -%define CONFIG_Y41P_DECODER 1 -%define CONFIG_YLC_DECODER 1 -%define CONFIG_YOP_DECODER 1 -%define CONFIG_YUV4_DECODER 1 -%define CONFIG_ZERO12V_DECODER 1 -%define CONFIG_ZEROCODEC_DECODER 1 -%define CONFIG_ZLIB_DECODER 1 -%define CONFIG_ZMBV_DECODER 1 -%define CONFIG_AAC_DECODER 1 -%define CONFIG_AAC_FIXED_DECODER 1 -%define CONFIG_AAC_LATM_DECODER 1 -%define CONFIG_AC3_DECODER 1 -%define CONFIG_AC3_FIXED_DECODER 1 -%define CONFIG_ALAC_DECODER 1 -%define CONFIG_ALS_DECODER 1 -%define CONFIG_AMRNB_DECODER 1 -%define CONFIG_AMRWB_DECODER 1 -%define CONFIG_APE_DECODER 1 -%define CONFIG_APTX_DECODER 1 -%define CONFIG_APTX_HD_DECODER 1 -%define CONFIG_ATRAC1_DECODER 1 -%define CONFIG_ATRAC3_DECODER 1 -%define CONFIG_ATRAC3AL_DECODER 1 -%define CONFIG_ATRAC3P_DECODER 0 -%define CONFIG_ATRAC3PAL_DECODER 1 -%define CONFIG_ATRAC9_DECODER 1 -%define CONFIG_BINKAUDIO_DCT_DECODER 1 -%define CONFIG_BINKAUDIO_RDFT_DECODER 1 -%define CONFIG_BMV_AUDIO_DECODER 1 -%define CONFIG_COOK_DECODER 1 -%define CONFIG_DCA_DECODER 1 -%define CONFIG_DOLBY_E_DECODER 1 -%define CONFIG_DSD_LSBF_DECODER 1 -%define CONFIG_DSD_MSBF_DECODER 1 -%define CONFIG_DSD_LSBF_PLANAR_DECODER 1 -%define CONFIG_DSD_MSBF_PLANAR_DECODER 1 -%define CONFIG_DSICINAUDIO_DECODER 1 -%define CONFIG_DSS_SP_DECODER 1 -%define CONFIG_DST_DECODER 1 -%define CONFIG_EAC3_DECODER 1 -%define CONFIG_EVRC_DECODER 1 -%define CONFIG_FFWAVESYNTH_DECODER 1 -%define CONFIG_FLAC_DECODER 1 -%define CONFIG_G723_1_DECODER 1 -%define CONFIG_G729_DECODER 1 -%define CONFIG_GSM_DECODER 1 -%define CONFIG_GSM_MS_DECODER 1 -%define CONFIG_IAC_DECODER 1 -%define CONFIG_ILBC_DECODER 1 -%define CONFIG_IMC_DECODER 1 -%define CONFIG_INTERPLAY_ACM_DECODER 1 -%define CONFIG_MACE3_DECODER 1 -%define CONFIG_MACE6_DECODER 1 -%define CONFIG_METASOUND_DECODER 1 -%define CONFIG_MLP_DECODER 1 -%define CONFIG_MP1_DECODER 1 -%define CONFIG_MP1FLOAT_DECODER 1 -%define CONFIG_MP2_DECODER 1 -%define CONFIG_MP2FLOAT_DECODER 1 -%define CONFIG_MP3FLOAT_DECODER 1 -%define CONFIG_MP3_DECODER 1 -%define CONFIG_MP3ADUFLOAT_DECODER 1 -%define CONFIG_MP3ADU_DECODER 1 -%define CONFIG_MP3ON4FLOAT_DECODER 1 -%define CONFIG_MP3ON4_DECODER 1 -%define CONFIG_MPC7_DECODER 1 -%define CONFIG_MPC8_DECODER 1 -%define CONFIG_NELLYMOSER_DECODER 1 -%define CONFIG_ON2AVC_DECODER 1 -%define CONFIG_OPUS_DECODER 1 -%define CONFIG_PAF_AUDIO_DECODER 1 -%define CONFIG_QCELP_DECODER 1 -%define CONFIG_QDM2_DECODER 1 -%define CONFIG_QDMC_DECODER 1 -%define CONFIG_RA_144_DECODER 1 -%define CONFIG_RA_288_DECODER 1 -%define CONFIG_RALF_DECODER 1 -%define CONFIG_SBC_DECODER 1 -%define CONFIG_SHORTEN_DECODER 1 -%define CONFIG_SIPR_DECODER 1 -%define CONFIG_SMACKAUD_DECODER 1 -%define CONFIG_SONIC_DECODER 1 -%define CONFIG_TAK_DECODER 1 -%define CONFIG_TRUEHD_DECODER 1 -%define CONFIG_TRUESPEECH_DECODER 1 -%define CONFIG_TTA_DECODER 1 -%define CONFIG_TWINVQ_DECODER 0 -%define CONFIG_VMDAUDIO_DECODER 1 -%define CONFIG_VORBIS_DECODER 1 -%define CONFIG_WAVPACK_DECODER 1 -%define CONFIG_WMALOSSLESS_DECODER 1 -%define CONFIG_WMAPRO_DECODER 1 -%define CONFIG_WMAV1_DECODER 1 -%define CONFIG_WMAV2_DECODER 1 -%define CONFIG_WMAVOICE_DECODER 1 -%define CONFIG_WS_SND1_DECODER 1 -%define CONFIG_XMA1_DECODER 1 -%define CONFIG_XMA2_DECODER 1 -%define CONFIG_PCM_ALAW_DECODER 1 -%define CONFIG_PCM_BLURAY_DECODER 1 -%define CONFIG_PCM_DVD_DECODER 1 -%define CONFIG_PCM_F16LE_DECODER 1 -%define CONFIG_PCM_F24LE_DECODER 1 -%define CONFIG_PCM_F32BE_DECODER 1 -%define CONFIG_PCM_F32LE_DECODER 1 -%define CONFIG_PCM_F64BE_DECODER 1 -%define CONFIG_PCM_F64LE_DECODER 1 -%define CONFIG_PCM_LXF_DECODER 1 -%define CONFIG_PCM_MULAW_DECODER 1 -%define CONFIG_PCM_S8_DECODER 1 -%define CONFIG_PCM_S8_PLANAR_DECODER 1 -%define CONFIG_PCM_S16BE_DECODER 1 -%define CONFIG_PCM_S16BE_PLANAR_DECODER 1 -%define CONFIG_PCM_S16LE_DECODER 1 -%define CONFIG_PCM_S16LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S24BE_DECODER 1 -%define CONFIG_PCM_S24DAUD_DECODER 1 -%define CONFIG_PCM_S24LE_DECODER 1 -%define CONFIG_PCM_S24LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S32BE_DECODER 1 -%define CONFIG_PCM_S32LE_DECODER 1 -%define CONFIG_PCM_S32LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S64BE_DECODER 1 -%define CONFIG_PCM_S64LE_DECODER 1 -%define CONFIG_PCM_U8_DECODER 1 -%define CONFIG_PCM_U16BE_DECODER 1 -%define CONFIG_PCM_U16LE_DECODER 1 -%define CONFIG_PCM_U24BE_DECODER 1 -%define CONFIG_PCM_U24LE_DECODER 1 -%define CONFIG_PCM_U32BE_DECODER 1 -%define CONFIG_PCM_U32LE_DECODER 1 -%define CONFIG_PCM_VIDC_DECODER 1 -%define CONFIG_PCM_ZORK_DECODER 1 -%define CONFIG_GREMLIN_DPCM_DECODER 1 -%define CONFIG_INTERPLAY_DPCM_DECODER 1 -%define CONFIG_ROQ_DPCM_DECODER 1 -%define CONFIG_SOL_DPCM_DECODER 1 -%define CONFIG_XAN_DPCM_DECODER 1 -%define CONFIG_ADPCM_4XM_DECODER 1 -%define CONFIG_ADPCM_ADX_DECODER 1 -%define CONFIG_ADPCM_AFC_DECODER 1 -%define CONFIG_ADPCM_AICA_DECODER 1 -%define CONFIG_ADPCM_CT_DECODER 1 -%define CONFIG_ADPCM_DTK_DECODER 1 -%define CONFIG_ADPCM_EA_DECODER 1 -%define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 -%define CONFIG_ADPCM_EA_R1_DECODER 1 -%define CONFIG_ADPCM_EA_R2_DECODER 1 -%define CONFIG_ADPCM_EA_R3_DECODER 1 -%define CONFIG_ADPCM_EA_XAS_DECODER 1 -%define CONFIG_ADPCM_G722_DECODER 1 -%define CONFIG_ADPCM_G726_DECODER 1 -%define CONFIG_ADPCM_G726LE_DECODER 1 -%define CONFIG_ADPCM_IMA_AMV_DECODER 1 -%define CONFIG_ADPCM_IMA_APC_DECODER 1 -%define CONFIG_ADPCM_IMA_DAT4_DECODER 1 -%define CONFIG_ADPCM_IMA_DK3_DECODER 1 -%define CONFIG_ADPCM_IMA_DK4_DECODER 1 -%define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 -%define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 -%define CONFIG_ADPCM_IMA_ISS_DECODER 1 -%define CONFIG_ADPCM_IMA_OKI_DECODER 1 -%define CONFIG_ADPCM_IMA_QT_DECODER 1 -%define CONFIG_ADPCM_IMA_RAD_DECODER 1 -%define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 -%define CONFIG_ADPCM_IMA_WAV_DECODER 1 -%define CONFIG_ADPCM_IMA_WS_DECODER 1 -%define CONFIG_ADPCM_MS_DECODER 1 -%define CONFIG_ADPCM_MTAF_DECODER 1 -%define CONFIG_ADPCM_PSX_DECODER 1 -%define CONFIG_ADPCM_SBPRO_2_DECODER 1 -%define CONFIG_ADPCM_SBPRO_3_DECODER 1 -%define CONFIG_ADPCM_SBPRO_4_DECODER 1 -%define CONFIG_ADPCM_SWF_DECODER 1 -%define CONFIG_ADPCM_THP_DECODER 1 -%define CONFIG_ADPCM_THP_LE_DECODER 1 -%define CONFIG_ADPCM_VIMA_DECODER 1 -%define CONFIG_ADPCM_XA_DECODER 1 -%define CONFIG_ADPCM_YAMAHA_DECODER 1 -%define CONFIG_SSA_DECODER 1 -%define CONFIG_ASS_DECODER 1 -%define CONFIG_CCAPTION_DECODER 1 -%define CONFIG_DVBSUB_DECODER 1 -%define CONFIG_DVDSUB_DECODER 1 -%define CONFIG_JACOSUB_DECODER 1 -%define CONFIG_MICRODVD_DECODER 1 -%define CONFIG_MOVTEXT_DECODER 1 -%define CONFIG_MPL2_DECODER 1 -%define CONFIG_PGSSUB_DECODER 1 -%define CONFIG_PJS_DECODER 1 -%define CONFIG_REALTEXT_DECODER 1 -%define CONFIG_SAMI_DECODER 1 -%define CONFIG_SRT_DECODER 1 -%define CONFIG_STL_DECODER 1 -%define CONFIG_SUBRIP_DECODER 1 -%define CONFIG_SUBVIEWER_DECODER 1 -%define CONFIG_SUBVIEWER1_DECODER 1 -%define CONFIG_TEXT_DECODER 1 -%define CONFIG_VPLAYER_DECODER 1 -%define CONFIG_WEBVTT_DECODER 1 -%define CONFIG_XSUB_DECODER 1 -%define CONFIG_AAC_AT_DECODER 0 -%define CONFIG_AC3_AT_DECODER 0 -%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 -%define CONFIG_ALAC_AT_DECODER 0 -%define CONFIG_AMR_NB_AT_DECODER 0 -%define CONFIG_EAC3_AT_DECODER 0 -%define CONFIG_GSM_MS_AT_DECODER 0 -%define CONFIG_ILBC_AT_DECODER 0 -%define CONFIG_MP1_AT_DECODER 0 -%define CONFIG_MP2_AT_DECODER 0 -%define CONFIG_MP3_AT_DECODER 0 -%define CONFIG_PCM_ALAW_AT_DECODER 0 -%define CONFIG_PCM_MULAW_AT_DECODER 0 -%define CONFIG_QDMC_AT_DECODER 0 -%define CONFIG_QDM2_AT_DECODER 0 -%define CONFIG_LIBAOM_AV1_DECODER 0 -%define CONFIG_LIBCELT_DECODER 0 -%define CONFIG_LIBCODEC2_DECODER 0 -%define CONFIG_LIBDAV1D_DECODER 0 -%define CONFIG_LIBDAVS2_DECODER 0 -%define CONFIG_LIBFDK_AAC_DECODER 0 -%define CONFIG_LIBGSM_DECODER 0 -%define CONFIG_LIBGSM_MS_DECODER 0 -%define CONFIG_LIBILBC_DECODER 0 -%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -%define CONFIG_LIBOPENJPEG_DECODER 0 -%define CONFIG_LIBOPUS_DECODER 0 -%define CONFIG_LIBRSVG_DECODER 0 -%define CONFIG_LIBSPEEX_DECODER 0 -%define CONFIG_LIBVORBIS_DECODER 0 -%define CONFIG_LIBVPX_VP8_DECODER 0 -%define CONFIG_LIBVPX_VP9_DECODER 0 -%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -%define CONFIG_BINTEXT_DECODER 1 -%define CONFIG_XBIN_DECODER 1 -%define CONFIG_IDF_DECODER 1 -%define CONFIG_LIBOPENH264_DECODER 0 -%define CONFIG_H264_CUVID_DECODER 0 -%define CONFIG_HEVC_CUVID_DECODER 0 -%define CONFIG_HEVC_MEDIACODEC_DECODER 0 -%define CONFIG_MJPEG_CUVID_DECODER 0 -%define CONFIG_MPEG1_CUVID_DECODER 0 -%define CONFIG_MPEG2_CUVID_DECODER 0 -%define CONFIG_MPEG4_CUVID_DECODER 0 -%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -%define CONFIG_VC1_CUVID_DECODER 0 -%define CONFIG_VP8_CUVID_DECODER 0 -%define CONFIG_VP8_MEDIACODEC_DECODER 0 -%define CONFIG_VP8_QSV_DECODER 0 -%define CONFIG_VP9_CUVID_DECODER 0 -%define CONFIG_VP9_MEDIACODEC_DECODER 0 -%define CONFIG_A64MULTI_ENCODER 0 -%define CONFIG_A64MULTI5_ENCODER 0 -%define CONFIG_ALIAS_PIX_ENCODER 0 -%define CONFIG_AMV_ENCODER 0 -%define CONFIG_APNG_ENCODER 0 -%define CONFIG_ASV1_ENCODER 0 -%define CONFIG_ASV2_ENCODER 0 -%define CONFIG_AVRP_ENCODER 0 -%define CONFIG_AVUI_ENCODER 0 -%define CONFIG_AYUV_ENCODER 0 -%define CONFIG_BMP_ENCODER 0 -%define CONFIG_CINEPAK_ENCODER 0 -%define CONFIG_CLJR_ENCODER 0 -%define CONFIG_COMFORTNOISE_ENCODER 0 -%define CONFIG_DNXHD_ENCODER 0 -%define CONFIG_DPX_ENCODER 0 -%define CONFIG_DVVIDEO_ENCODER 0 -%define CONFIG_FFV1_ENCODER 0 -%define CONFIG_FFVHUFF_ENCODER 0 -%define CONFIG_FITS_ENCODER 0 -%define CONFIG_FLASHSV_ENCODER 0 -%define CONFIG_FLASHSV2_ENCODER 0 -%define CONFIG_FLV_ENCODER 0 -%define CONFIG_GIF_ENCODER 0 -%define CONFIG_H261_ENCODER 0 -%define CONFIG_H263_ENCODER 0 -%define CONFIG_H263P_ENCODER 0 -%define CONFIG_HAP_ENCODER 0 -%define CONFIG_HUFFYUV_ENCODER 0 -%define CONFIG_JPEG2000_ENCODER 0 -%define CONFIG_JPEGLS_ENCODER 0 -%define CONFIG_LJPEG_ENCODER 0 -%define CONFIG_MAGICYUV_ENCODER 0 -%define CONFIG_MJPEG_ENCODER 0 -%define CONFIG_MPEG1VIDEO_ENCODER 0 -%define CONFIG_MPEG2VIDEO_ENCODER 0 -%define CONFIG_MPEG4_ENCODER 0 -%define CONFIG_MSMPEG4V2_ENCODER 0 -%define CONFIG_MSMPEG4V3_ENCODER 0 -%define CONFIG_MSVIDEO1_ENCODER 0 -%define CONFIG_PAM_ENCODER 0 -%define CONFIG_PBM_ENCODER 0 -%define CONFIG_PCX_ENCODER 0 -%define CONFIG_PGM_ENCODER 0 -%define CONFIG_PGMYUV_ENCODER 0 -%define CONFIG_PNG_ENCODER 0 -%define CONFIG_PPM_ENCODER 0 -%define CONFIG_PRORES_ENCODER 0 -%define CONFIG_PRORES_AW_ENCODER 0 -%define CONFIG_PRORES_KS_ENCODER 0 -%define CONFIG_QTRLE_ENCODER 0 -%define CONFIG_R10K_ENCODER 0 -%define CONFIG_R210_ENCODER 0 -%define CONFIG_RAWVIDEO_ENCODER 0 -%define CONFIG_ROQ_ENCODER 0 -%define CONFIG_RV10_ENCODER 0 -%define CONFIG_RV20_ENCODER 0 -%define CONFIG_S302M_ENCODER 0 -%define CONFIG_SGI_ENCODER 0 -%define CONFIG_SNOW_ENCODER 0 -%define CONFIG_SUNRAST_ENCODER 0 -%define CONFIG_SVQ1_ENCODER 0 -%define CONFIG_TARGA_ENCODER 0 -%define CONFIG_TIFF_ENCODER 0 -%define CONFIG_UTVIDEO_ENCODER 0 -%define CONFIG_V210_ENCODER 0 -%define CONFIG_V308_ENCODER 0 -%define CONFIG_V408_ENCODER 0 -%define CONFIG_V410_ENCODER 0 -%define CONFIG_VC2_ENCODER 0 -%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -%define CONFIG_WMV1_ENCODER 0 -%define CONFIG_WMV2_ENCODER 0 -%define CONFIG_XBM_ENCODER 0 -%define CONFIG_XFACE_ENCODER 0 -%define CONFIG_XWD_ENCODER 0 -%define CONFIG_Y41P_ENCODER 0 -%define CONFIG_YUV4_ENCODER 0 -%define CONFIG_ZLIB_ENCODER 0 -%define CONFIG_ZMBV_ENCODER 0 -%define CONFIG_AAC_ENCODER 0 -%define CONFIG_AC3_ENCODER 0 -%define CONFIG_AC3_FIXED_ENCODER 0 -%define CONFIG_ALAC_ENCODER 0 -%define CONFIG_APTX_ENCODER 0 -%define CONFIG_APTX_HD_ENCODER 0 -%define CONFIG_DCA_ENCODER 0 -%define CONFIG_EAC3_ENCODER 0 -%define CONFIG_FLAC_ENCODER 0 -%define CONFIG_G723_1_ENCODER 0 -%define CONFIG_MLP_ENCODER 0 -%define CONFIG_MP2_ENCODER 0 -%define CONFIG_MP2FIXED_ENCODER 0 -%define CONFIG_NELLYMOSER_ENCODER 0 -%define CONFIG_OPUS_ENCODER 0 -%define CONFIG_RA_144_ENCODER 0 -%define CONFIG_SBC_ENCODER 0 -%define CONFIG_SONIC_ENCODER 0 -%define CONFIG_SONIC_LS_ENCODER 0 -%define CONFIG_TRUEHD_ENCODER 0 -%define CONFIG_TTA_ENCODER 0 -%define CONFIG_VORBIS_ENCODER 0 -%define CONFIG_WAVPACK_ENCODER 0 -%define CONFIG_WMAV1_ENCODER 0 -%define CONFIG_WMAV2_ENCODER 0 -%define CONFIG_PCM_ALAW_ENCODER 0 -%define CONFIG_PCM_F32BE_ENCODER 0 -%define CONFIG_PCM_F32LE_ENCODER 0 -%define CONFIG_PCM_F64BE_ENCODER 0 -%define CONFIG_PCM_F64LE_ENCODER 0 -%define CONFIG_PCM_MULAW_ENCODER 0 -%define CONFIG_PCM_S8_ENCODER 0 -%define CONFIG_PCM_S8_PLANAR_ENCODER 0 -%define CONFIG_PCM_S16BE_ENCODER 0 -%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S16LE_ENCODER 0 -%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S24BE_ENCODER 0 -%define CONFIG_PCM_S24DAUD_ENCODER 0 -%define CONFIG_PCM_S24LE_ENCODER 0 -%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S32BE_ENCODER 0 -%define CONFIG_PCM_S32LE_ENCODER 0 -%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S64BE_ENCODER 0 -%define CONFIG_PCM_S64LE_ENCODER 0 -%define CONFIG_PCM_U8_ENCODER 0 -%define CONFIG_PCM_U16BE_ENCODER 0 -%define CONFIG_PCM_U16LE_ENCODER 0 -%define CONFIG_PCM_U24BE_ENCODER 0 -%define CONFIG_PCM_U24LE_ENCODER 0 -%define CONFIG_PCM_U32BE_ENCODER 0 -%define CONFIG_PCM_U32LE_ENCODER 0 -%define CONFIG_PCM_VIDC_ENCODER 0 -%define CONFIG_ROQ_DPCM_ENCODER 0 -%define CONFIG_ADPCM_ADX_ENCODER 0 -%define CONFIG_ADPCM_G722_ENCODER 0 -%define CONFIG_ADPCM_G726_ENCODER 0 -%define CONFIG_ADPCM_G726LE_ENCODER 0 -%define CONFIG_ADPCM_IMA_QT_ENCODER 0 -%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 -%define CONFIG_ADPCM_MS_ENCODER 0 -%define CONFIG_ADPCM_SWF_ENCODER 0 -%define CONFIG_ADPCM_YAMAHA_ENCODER 0 -%define CONFIG_SSA_ENCODER 0 -%define CONFIG_ASS_ENCODER 0 -%define CONFIG_DVBSUB_ENCODER 0 -%define CONFIG_DVDSUB_ENCODER 0 -%define CONFIG_MOVTEXT_ENCODER 0 -%define CONFIG_SRT_ENCODER 0 -%define CONFIG_SUBRIP_ENCODER 0 -%define CONFIG_TEXT_ENCODER 0 -%define CONFIG_WEBVTT_ENCODER 0 -%define CONFIG_XSUB_ENCODER 0 -%define CONFIG_AAC_AT_ENCODER 0 -%define CONFIG_ALAC_AT_ENCODER 0 -%define CONFIG_ILBC_AT_ENCODER 0 -%define CONFIG_PCM_ALAW_AT_ENCODER 0 -%define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBAOM_AV1_ENCODER 0 -%define CONFIG_LIBCODEC2_ENCODER 0 -%define CONFIG_LIBFDK_AAC_ENCODER 0 -%define CONFIG_LIBGSM_ENCODER 0 -%define CONFIG_LIBGSM_MS_ENCODER 0 -%define CONFIG_LIBILBC_ENCODER 0 -%define CONFIG_LIBMP3LAME_ENCODER 0 -%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -%define CONFIG_LIBOPENJPEG_ENCODER 0 -%define CONFIG_LIBOPUS_ENCODER 0 -%define CONFIG_LIBSHINE_ENCODER 0 -%define CONFIG_LIBSPEEX_ENCODER 0 -%define CONFIG_LIBTHEORA_ENCODER 0 -%define CONFIG_LIBTWOLAME_ENCODER 0 -%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -%define CONFIG_LIBVORBIS_ENCODER 0 -%define CONFIG_LIBVPX_VP8_ENCODER 0 -%define CONFIG_LIBVPX_VP9_ENCODER 0 -%define CONFIG_LIBWAVPACK_ENCODER 0 -%define CONFIG_LIBWEBP_ANIM_ENCODER 0 -%define CONFIG_LIBWEBP_ENCODER 0 -%define CONFIG_LIBX262_ENCODER 0 -%define CONFIG_LIBX264_ENCODER 0 -%define CONFIG_LIBX264RGB_ENCODER 0 -%define CONFIG_LIBX265_ENCODER 0 -%define CONFIG_LIBXAVS_ENCODER 0 -%define CONFIG_LIBXAVS2_ENCODER 0 -%define CONFIG_LIBXVID_ENCODER 0 -%define CONFIG_H263_V4L2M2M_ENCODER 0 -%define CONFIG_LIBOPENH264_ENCODER 0 -%define CONFIG_H264_AMF_ENCODER 0 -%define CONFIG_H264_NVENC_ENCODER 0 -%define CONFIG_H264_OMX_ENCODER 0 -%define CONFIG_H264_QSV_ENCODER 0 -%define CONFIG_H264_V4L2M2M_ENCODER 0 -%define CONFIG_H264_VAAPI_ENCODER 0 -%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_NVENC_ENCODER 0 -%define CONFIG_NVENC_H264_ENCODER 0 -%define CONFIG_NVENC_HEVC_ENCODER 0 -%define CONFIG_HEVC_AMF_ENCODER 0 -%define CONFIG_HEVC_NVENC_ENCODER 0 -%define CONFIG_HEVC_QSV_ENCODER 0 -%define CONFIG_HEVC_V4L2M2M_ENCODER 0 -%define CONFIG_HEVC_VAAPI_ENCODER 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_LIBKVAZAAR_ENCODER 0 -%define CONFIG_MJPEG_QSV_ENCODER 0 -%define CONFIG_MJPEG_VAAPI_ENCODER 0 -%define CONFIG_MPEG2_QSV_ENCODER 0 -%define CONFIG_MPEG2_VAAPI_ENCODER 0 -%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -%define CONFIG_VP8_V4L2M2M_ENCODER 0 -%define CONFIG_VP8_VAAPI_ENCODER 0 -%define CONFIG_VP9_VAAPI_ENCODER 0 -%define CONFIG_H263_VAAPI_HWACCEL 0 -%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_H264_D3D11VA_HWACCEL 0 -%define CONFIG_H264_D3D11VA2_HWACCEL 0 -%define CONFIG_H264_DXVA2_HWACCEL 0 -%define CONFIG_H264_NVDEC_HWACCEL 0 -%define CONFIG_H264_VAAPI_HWACCEL 0 -%define CONFIG_H264_VDPAU_HWACCEL 0 -%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -%define CONFIG_HEVC_DXVA2_HWACCEL 0 -%define CONFIG_HEVC_NVDEC_HWACCEL 0 -%define CONFIG_HEVC_VAAPI_HWACCEL 0 -%define CONFIG_HEVC_VDPAU_HWACCEL 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MJPEG_NVDEC_HWACCEL 0 -%define CONFIG_MJPEG_VAAPI_HWACCEL 0 -%define CONFIG_MPEG1_NVDEC_HWACCEL 0 -%define CONFIG_MPEG1_VDPAU_HWACCEL 0 -%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG1_XVMC_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -%define CONFIG_MPEG2_NVDEC_HWACCEL 0 -%define CONFIG_MPEG2_DXVA2_HWACCEL 0 -%define CONFIG_MPEG2_VAAPI_HWACCEL 0 -%define CONFIG_MPEG2_VDPAU_HWACCEL 0 -%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG2_XVMC_HWACCEL 0 -%define CONFIG_MPEG4_NVDEC_HWACCEL 0 -%define CONFIG_MPEG4_VAAPI_HWACCEL 0 -%define CONFIG_MPEG4_VDPAU_HWACCEL 0 -%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_VC1_D3D11VA_HWACCEL 0 -%define CONFIG_VC1_D3D11VA2_HWACCEL 0 -%define CONFIG_VC1_DXVA2_HWACCEL 0 -%define CONFIG_VC1_NVDEC_HWACCEL 0 -%define CONFIG_VC1_VAAPI_HWACCEL 0 -%define CONFIG_VC1_VDPAU_HWACCEL 0 -%define CONFIG_VP8_NVDEC_HWACCEL 0 -%define CONFIG_VP8_VAAPI_HWACCEL 0 -%define CONFIG_VP9_D3D11VA_HWACCEL 0 -%define CONFIG_VP9_D3D11VA2_HWACCEL 0 -%define CONFIG_VP9_DXVA2_HWACCEL 0 -%define CONFIG_VP9_NVDEC_HWACCEL 0 -%define CONFIG_VP9_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 -%define CONFIG_WMV3_DXVA2_HWACCEL 0 -%define CONFIG_WMV3_NVDEC_HWACCEL 0 -%define CONFIG_WMV3_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_VDPAU_HWACCEL 0 -%define CONFIG_AAC_PARSER 1 -%define CONFIG_AAC_LATM_PARSER 1 -%define CONFIG_AC3_PARSER 1 -%define CONFIG_ADX_PARSER 1 -%define CONFIG_AV1_PARSER 1 -%define CONFIG_AVS2_PARSER 1 -%define CONFIG_BMP_PARSER 1 -%define CONFIG_CAVSVIDEO_PARSER 1 -%define CONFIG_COOK_PARSER 1 -%define CONFIG_DCA_PARSER 1 -%define CONFIG_DIRAC_PARSER 1 -%define CONFIG_DNXHD_PARSER 1 -%define CONFIG_DPX_PARSER 1 -%define CONFIG_DVAUDIO_PARSER 1 -%define CONFIG_DVBSUB_PARSER 1 -%define CONFIG_DVDSUB_PARSER 1 -%define CONFIG_DVD_NAV_PARSER 1 -%define CONFIG_FLAC_PARSER 1 -%define CONFIG_G729_PARSER 1 -%define CONFIG_GSM_PARSER 1 -%define CONFIG_H261_PARSER 1 -%define CONFIG_H263_PARSER 1 -%define CONFIG_H264_PARSER 1 -%define CONFIG_HEVC_PARSER 1 -%define CONFIG_MJPEG_PARSER 1 -%define CONFIG_MLP_PARSER 1 -%define CONFIG_MPEG4VIDEO_PARSER 1 -%define CONFIG_MPEGAUDIO_PARSER 1 -%define CONFIG_MPEGVIDEO_PARSER 1 -%define CONFIG_OPUS_PARSER 1 -%define CONFIG_PNG_PARSER 1 -%define CONFIG_PNM_PARSER 1 -%define CONFIG_RV30_PARSER 1 -%define CONFIG_RV40_PARSER 1 -%define CONFIG_SBC_PARSER 1 -%define CONFIG_SIPR_PARSER 1 -%define CONFIG_TAK_PARSER 1 -%define CONFIG_VC1_PARSER 1 -%define CONFIG_VORBIS_PARSER 1 -%define CONFIG_VP3_PARSER 1 -%define CONFIG_VP8_PARSER 1 -%define CONFIG_VP9_PARSER 1 -%define CONFIG_XMA_PARSER 1 -%define CONFIG_ALSA_INDEV 0 -%define CONFIG_ANDROID_CAMERA_INDEV 0 -%define CONFIG_AVFOUNDATION_INDEV 0 -%define CONFIG_BKTR_INDEV 0 -%define CONFIG_DECKLINK_INDEV 0 -%define CONFIG_LIBNDI_NEWTEK_INDEV 0 -%define CONFIG_DSHOW_INDEV 0 -%define CONFIG_FBDEV_INDEV 0 -%define CONFIG_GDIGRAB_INDEV 0 -%define CONFIG_IEC61883_INDEV 0 -%define CONFIG_JACK_INDEV 0 -%define CONFIG_KMSGRAB_INDEV 0 -%define CONFIG_LAVFI_INDEV 0 -%define CONFIG_OPENAL_INDEV 0 -%define CONFIG_OSS_INDEV 0 -%define CONFIG_PULSE_INDEV 0 -%define CONFIG_SNDIO_INDEV 0 -%define CONFIG_V4L2_INDEV 0 -%define CONFIG_VFWCAP_INDEV 0 -%define CONFIG_XCBGRAB_INDEV 0 -%define CONFIG_LIBCDIO_INDEV 0 -%define CONFIG_LIBDC1394_INDEV 0 -%define CONFIG_ALSA_OUTDEV 0 -%define CONFIG_CACA_OUTDEV 0 -%define CONFIG_DECKLINK_OUTDEV 0 -%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -%define CONFIG_FBDEV_OUTDEV 0 -%define CONFIG_OPENGL_OUTDEV 0 -%define CONFIG_OSS_OUTDEV 0 -%define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL2_OUTDEV 0 -%define CONFIG_SNDIO_OUTDEV 0 -%define CONFIG_V4L2_OUTDEV 0 -%define CONFIG_XV_OUTDEV 0 -%define CONFIG_ABENCH_FILTER 0 -%define CONFIG_ACOMPRESSOR_FILTER 0 -%define CONFIG_ACONTRAST_FILTER 0 -%define CONFIG_ACOPY_FILTER 0 -%define CONFIG_ACUE_FILTER 0 -%define CONFIG_ACROSSFADE_FILTER 0 -%define CONFIG_ACROSSOVER_FILTER 0 -%define CONFIG_ACRUSHER_FILTER 0 -%define CONFIG_ADECLICK_FILTER 0 -%define CONFIG_ADECLIP_FILTER 0 -%define CONFIG_ADELAY_FILTER 0 -%define CONFIG_ADERIVATIVE_FILTER 0 -%define CONFIG_AECHO_FILTER 0 -%define CONFIG_AEMPHASIS_FILTER 0 -%define CONFIG_AEVAL_FILTER 0 -%define CONFIG_AFADE_FILTER 0 -%define CONFIG_AFFTDN_FILTER 0 -%define CONFIG_AFFTFILT_FILTER 0 -%define CONFIG_AFIR_FILTER 0 -%define CONFIG_AFORMAT_FILTER 0 -%define CONFIG_AGATE_FILTER 0 -%define CONFIG_AIIR_FILTER 0 -%define CONFIG_AINTEGRAL_FILTER 0 -%define CONFIG_AINTERLEAVE_FILTER 0 -%define CONFIG_ALIMITER_FILTER 0 -%define CONFIG_ALLPASS_FILTER 0 -%define CONFIG_ALOOP_FILTER 0 -%define CONFIG_AMERGE_FILTER 0 -%define CONFIG_AMETADATA_FILTER 0 -%define CONFIG_AMIX_FILTER 0 -%define CONFIG_AMULTIPLY_FILTER 0 -%define CONFIG_ANEQUALIZER_FILTER 0 -%define CONFIG_ANULL_FILTER 0 -%define CONFIG_APAD_FILTER 0 -%define CONFIG_APERMS_FILTER 0 -%define CONFIG_APHASER_FILTER 0 -%define CONFIG_APULSATOR_FILTER 0 -%define CONFIG_AREALTIME_FILTER 0 -%define CONFIG_ARESAMPLE_FILTER 0 -%define CONFIG_AREVERSE_FILTER 0 -%define CONFIG_ASELECT_FILTER 0 -%define CONFIG_ASENDCMD_FILTER 0 -%define CONFIG_ASETNSAMPLES_FILTER 0 -%define CONFIG_ASETPTS_FILTER 0 -%define CONFIG_ASETRATE_FILTER 0 -%define CONFIG_ASETTB_FILTER 0 -%define CONFIG_ASHOWINFO_FILTER 0 -%define CONFIG_ASIDEDATA_FILTER 0 -%define CONFIG_ASPLIT_FILTER 0 -%define CONFIG_ASTATS_FILTER 0 -%define CONFIG_ASTREAMSELECT_FILTER 0 -%define CONFIG_ATEMPO_FILTER 0 -%define CONFIG_ATRIM_FILTER 0 -%define CONFIG_AZMQ_FILTER 0 -%define CONFIG_BANDPASS_FILTER 0 -%define CONFIG_BANDREJECT_FILTER 0 -%define CONFIG_BASS_FILTER 0 -%define CONFIG_BIQUAD_FILTER 0 -%define CONFIG_BS2B_FILTER 0 -%define CONFIG_CHANNELMAP_FILTER 0 -%define CONFIG_CHANNELSPLIT_FILTER 0 -%define CONFIG_CHORUS_FILTER 0 -%define CONFIG_COMPAND_FILTER 0 -%define CONFIG_COMPENSATIONDELAY_FILTER 0 -%define CONFIG_CROSSFEED_FILTER 0 -%define CONFIG_CRYSTALIZER_FILTER 0 -%define CONFIG_DCSHIFT_FILTER 0 -%define CONFIG_DRMETER_FILTER 0 -%define CONFIG_DYNAUDNORM_FILTER 0 -%define CONFIG_EARWAX_FILTER 0 -%define CONFIG_EBUR128_FILTER 0 -%define CONFIG_EQUALIZER_FILTER 0 -%define CONFIG_EXTRASTEREO_FILTER 0 -%define CONFIG_FIREQUALIZER_FILTER 0 -%define CONFIG_FLANGER_FILTER 0 -%define CONFIG_HAAS_FILTER 0 -%define CONFIG_HDCD_FILTER 0 -%define CONFIG_HEADPHONE_FILTER 0 -%define CONFIG_HIGHPASS_FILTER 0 -%define CONFIG_HIGHSHELF_FILTER 0 -%define CONFIG_JOIN_FILTER 0 -%define CONFIG_LADSPA_FILTER 0 -%define CONFIG_LOUDNORM_FILTER 0 -%define CONFIG_LOWPASS_FILTER 0 -%define CONFIG_LOWSHELF_FILTER 0 -%define CONFIG_LV2_FILTER 0 -%define CONFIG_MCOMPAND_FILTER 0 -%define CONFIG_PAN_FILTER 0 -%define CONFIG_REPLAYGAIN_FILTER 0 -%define CONFIG_RESAMPLE_FILTER 0 -%define CONFIG_RUBBERBAND_FILTER 0 -%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -%define CONFIG_SIDECHAINGATE_FILTER 0 -%define CONFIG_SILENCEDETECT_FILTER 0 -%define CONFIG_SILENCEREMOVE_FILTER 0 -%define CONFIG_SOFALIZER_FILTER 0 -%define CONFIG_STEREOTOOLS_FILTER 0 -%define CONFIG_STEREOWIDEN_FILTER 0 -%define CONFIG_SUPEREQUALIZER_FILTER 0 -%define CONFIG_SURROUND_FILTER 0 -%define CONFIG_TREBLE_FILTER 0 -%define CONFIG_TREMOLO_FILTER 0 -%define CONFIG_VIBRATO_FILTER 0 -%define CONFIG_VOLUME_FILTER 0 -%define CONFIG_VOLUMEDETECT_FILTER 0 -%define CONFIG_AEVALSRC_FILTER 0 -%define CONFIG_ANOISESRC_FILTER 0 -%define CONFIG_ANULLSRC_FILTER 0 -%define CONFIG_FLITE_FILTER 0 -%define CONFIG_HILBERT_FILTER 0 -%define CONFIG_SINC_FILTER 0 -%define CONFIG_SINE_FILTER 0 -%define CONFIG_ANULLSINK_FILTER 0 -%define CONFIG_ALPHAEXTRACT_FILTER 0 -%define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_AMPLIFY_FILTER 0 -%define CONFIG_ASS_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 -%define CONFIG_AVGBLUR_FILTER 0 -%define CONFIG_AVGBLUR_OPENCL_FILTER 0 -%define CONFIG_BBOX_FILTER 0 -%define CONFIG_BENCH_FILTER 0 -%define CONFIG_BITPLANENOISE_FILTER 0 -%define CONFIG_BLACKDETECT_FILTER 0 -%define CONFIG_BLACKFRAME_FILTER 0 -%define CONFIG_BLEND_FILTER 0 -%define CONFIG_BM3D_FILTER 0 -%define CONFIG_BOXBLUR_FILTER 0 -%define CONFIG_BOXBLUR_OPENCL_FILTER 0 -%define CONFIG_BWDIF_FILTER 0 -%define CONFIG_CHROMAHOLD_FILTER 0 -%define CONFIG_CHROMAKEY_FILTER 0 -%define CONFIG_CHROMASHIFT_FILTER 0 -%define CONFIG_CIESCOPE_FILTER 0 -%define CONFIG_CODECVIEW_FILTER 0 -%define CONFIG_COLORBALANCE_FILTER 0 -%define CONFIG_COLORCHANNELMIXER_FILTER 0 -%define CONFIG_COLORKEY_FILTER 0 -%define CONFIG_COLORLEVELS_FILTER 0 -%define CONFIG_COLORMATRIX_FILTER 0 -%define CONFIG_COLORSPACE_FILTER 0 -%define CONFIG_CONVOLUTION_FILTER 0 -%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 -%define CONFIG_CONVOLVE_FILTER 0 -%define CONFIG_COPY_FILTER 0 -%define CONFIG_COREIMAGE_FILTER 0 -%define CONFIG_COVER_RECT_FILTER 0 -%define CONFIG_CROP_FILTER 0 -%define CONFIG_CROPDETECT_FILTER 0 -%define CONFIG_CUE_FILTER 0 -%define CONFIG_CURVES_FILTER 0 -%define CONFIG_DATASCOPE_FILTER 0 -%define CONFIG_DCTDNOIZ_FILTER 0 -%define CONFIG_DEBAND_FILTER 0 -%define CONFIG_DEBLOCK_FILTER 0 -%define CONFIG_DECIMATE_FILTER 0 -%define CONFIG_DECONVOLVE_FILTER 0 -%define CONFIG_DEDOT_FILTER 0 -%define CONFIG_DEFLATE_FILTER 0 -%define CONFIG_DEFLICKER_FILTER 0 -%define CONFIG_DEINTERLACE_QSV_FILTER 0 -%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 -%define CONFIG_DEJUDDER_FILTER 0 -%define CONFIG_DELOGO_FILTER 0 -%define CONFIG_DENOISE_VAAPI_FILTER 0 -%define CONFIG_DESHAKE_FILTER 0 -%define CONFIG_DESPILL_FILTER 0 -%define CONFIG_DETELECINE_FILTER 0 -%define CONFIG_DILATION_FILTER 0 -%define CONFIG_DILATION_OPENCL_FILTER 0 -%define CONFIG_DISPLACE_FILTER 0 -%define CONFIG_DOUBLEWEAVE_FILTER 0 -%define CONFIG_DRAWBOX_FILTER 0 -%define CONFIG_DRAWGRAPH_FILTER 0 -%define CONFIG_DRAWGRID_FILTER 0 -%define CONFIG_DRAWTEXT_FILTER 0 -%define CONFIG_EDGEDETECT_FILTER 0 -%define CONFIG_ELBG_FILTER 0 -%define CONFIG_ENTROPY_FILTER 0 -%define CONFIG_EQ_FILTER 0 -%define CONFIG_EROSION_FILTER 0 -%define CONFIG_EROSION_OPENCL_FILTER 0 -%define CONFIG_EXTRACTPLANES_FILTER 0 -%define CONFIG_FADE_FILTER 0 -%define CONFIG_FFTDNOIZ_FILTER 0 -%define CONFIG_FFTFILT_FILTER 0 -%define CONFIG_FIELD_FILTER 0 -%define CONFIG_FIELDHINT_FILTER 0 -%define CONFIG_FIELDMATCH_FILTER 0 -%define CONFIG_FIELDORDER_FILTER 0 -%define CONFIG_FILLBORDERS_FILTER 0 -%define CONFIG_FIND_RECT_FILTER 0 -%define CONFIG_FLOODFILL_FILTER 0 -%define CONFIG_FORMAT_FILTER 0 -%define CONFIG_FPS_FILTER 0 -%define CONFIG_FRAMEPACK_FILTER 0 -%define CONFIG_FRAMERATE_FILTER 0 -%define CONFIG_FRAMESTEP_FILTER 0 -%define CONFIG_FREEZEDETECT_FILTER 0 -%define CONFIG_FREI0R_FILTER 0 -%define CONFIG_FSPP_FILTER 0 -%define CONFIG_GBLUR_FILTER 0 -%define CONFIG_GEQ_FILTER 0 -%define CONFIG_GRADFUN_FILTER 0 -%define CONFIG_GRAPHMONITOR_FILTER 0 -%define CONFIG_GREYEDGE_FILTER 0 -%define CONFIG_HALDCLUT_FILTER 0 -%define CONFIG_HFLIP_FILTER 0 -%define CONFIG_HISTEQ_FILTER 0 -%define CONFIG_HISTOGRAM_FILTER 0 -%define CONFIG_HQDN3D_FILTER 0 -%define CONFIG_HQX_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 -%define CONFIG_HWDOWNLOAD_FILTER 0 -%define CONFIG_HWMAP_FILTER 0 -%define CONFIG_HWUPLOAD_FILTER 0 -%define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HYSTERESIS_FILTER 0 -%define CONFIG_IDET_FILTER 0 -%define CONFIG_IL_FILTER 0 -%define CONFIG_INFLATE_FILTER 0 -%define CONFIG_INTERLACE_FILTER 0 -%define CONFIG_INTERLEAVE_FILTER 0 -%define CONFIG_KERNDEINT_FILTER 0 -%define CONFIG_LENSCORRECTION_FILTER 0 -%define CONFIG_LENSFUN_FILTER 0 -%define CONFIG_LIBVMAF_FILTER 0 -%define CONFIG_LIMITER_FILTER 0 -%define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUMAKEY_FILTER 0 -%define CONFIG_LUT_FILTER 0 -%define CONFIG_LUT1D_FILTER 0 -%define CONFIG_LUT2_FILTER 0 -%define CONFIG_LUT3D_FILTER 0 -%define CONFIG_LUTRGB_FILTER 0 -%define CONFIG_LUTYUV_FILTER 0 -%define CONFIG_MASKEDCLAMP_FILTER 0 -%define CONFIG_MASKEDMERGE_FILTER 0 -%define CONFIG_MCDEINT_FILTER 0 -%define CONFIG_MERGEPLANES_FILTER 0 -%define CONFIG_MESTIMATE_FILTER 0 -%define CONFIG_METADATA_FILTER 0 -%define CONFIG_MIDEQUALIZER_FILTER 0 -%define CONFIG_MINTERPOLATE_FILTER 0 -%define CONFIG_MIX_FILTER 0 -%define CONFIG_MPDECIMATE_FILTER 0 -%define CONFIG_NEGATE_FILTER 0 -%define CONFIG_NLMEANS_FILTER 0 -%define CONFIG_NNEDI_FILTER 0 -%define CONFIG_NOFORMAT_FILTER 0 -%define CONFIG_NOISE_FILTER 0 -%define CONFIG_NORMALIZE_FILTER 0 -%define CONFIG_NULL_FILTER 0 -%define CONFIG_OCR_FILTER 0 -%define CONFIG_OCV_FILTER 0 -%define CONFIG_OSCILLOSCOPE_FILTER 0 -%define CONFIG_OVERLAY_FILTER 0 -%define CONFIG_OVERLAY_OPENCL_FILTER 0 -%define CONFIG_OVERLAY_QSV_FILTER 0 -%define CONFIG_OWDENOISE_FILTER 0 -%define CONFIG_PAD_FILTER 0 -%define CONFIG_PALETTEGEN_FILTER 0 -%define CONFIG_PALETTEUSE_FILTER 0 -%define CONFIG_PERMS_FILTER 0 -%define CONFIG_PERSPECTIVE_FILTER 0 -%define CONFIG_PHASE_FILTER 0 -%define CONFIG_PIXDESCTEST_FILTER 0 -%define CONFIG_PIXSCOPE_FILTER 0 -%define CONFIG_PP_FILTER 0 -%define CONFIG_PP7_FILTER 0 -%define CONFIG_PREMULTIPLY_FILTER 0 -%define CONFIG_PREWITT_FILTER 0 -%define CONFIG_PREWITT_OPENCL_FILTER 0 -%define CONFIG_PROCAMP_VAAPI_FILTER 0 -%define CONFIG_PROGRAM_OPENCL_FILTER 0 -%define CONFIG_PSEUDOCOLOR_FILTER 0 -%define CONFIG_PSNR_FILTER 0 -%define CONFIG_PULLUP_FILTER 0 -%define CONFIG_QP_FILTER 0 -%define CONFIG_RANDOM_FILTER 0 -%define CONFIG_READEIA608_FILTER 0 -%define CONFIG_READVITC_FILTER 0 -%define CONFIG_REALTIME_FILTER 0 -%define CONFIG_REMAP_FILTER 0 -%define CONFIG_REMOVEGRAIN_FILTER 0 -%define CONFIG_REMOVELOGO_FILTER 0 -%define CONFIG_REPEATFIELDS_FILTER 0 -%define CONFIG_REVERSE_FILTER 0 -%define CONFIG_RGBASHIFT_FILTER 0 -%define CONFIG_ROBERTS_FILTER 0 -%define CONFIG_ROBERTS_OPENCL_FILTER 0 -%define CONFIG_ROTATE_FILTER 0 -%define CONFIG_SAB_FILTER 0 -%define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE_CUDA_FILTER 0 -%define CONFIG_SCALE_NPP_FILTER 0 -%define CONFIG_SCALE_QSV_FILTER 0 -%define CONFIG_SCALE_VAAPI_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 -%define CONFIG_SELECT_FILTER 0 -%define CONFIG_SELECTIVECOLOR_FILTER 0 -%define CONFIG_SENDCMD_FILTER 0 -%define CONFIG_SEPARATEFIELDS_FILTER 0 -%define CONFIG_SETDAR_FILTER 0 -%define CONFIG_SETFIELD_FILTER 0 -%define CONFIG_SETPARAMS_FILTER 0 -%define CONFIG_SETPTS_FILTER 0 -%define CONFIG_SETRANGE_FILTER 0 -%define CONFIG_SETSAR_FILTER 0 -%define CONFIG_SETTB_FILTER 0 -%define CONFIG_SHARPNESS_VAAPI_FILTER 0 -%define CONFIG_SHOWINFO_FILTER 0 -%define CONFIG_SHOWPALETTE_FILTER 0 -%define CONFIG_SHUFFLEFRAMES_FILTER 0 -%define CONFIG_SHUFFLEPLANES_FILTER 0 -%define CONFIG_SIDEDATA_FILTER 0 -%define CONFIG_SIGNALSTATS_FILTER 0 -%define CONFIG_SIGNATURE_FILTER 0 -%define CONFIG_SMARTBLUR_FILTER 0 -%define CONFIG_SOBEL_FILTER 0 -%define CONFIG_SOBEL_OPENCL_FILTER 0 -%define CONFIG_SPLIT_FILTER 0 -%define CONFIG_SPP_FILTER 0 -%define CONFIG_SR_FILTER 0 -%define CONFIG_SSIM_FILTER 0 -%define CONFIG_STEREO3D_FILTER 0 -%define CONFIG_STREAMSELECT_FILTER 0 -%define CONFIG_SUBTITLES_FILTER 0 -%define CONFIG_SUPER2XSAI_FILTER 0 -%define CONFIG_SWAPRECT_FILTER 0 -%define CONFIG_SWAPUV_FILTER 0 -%define CONFIG_TBLEND_FILTER 0 -%define CONFIG_TELECINE_FILTER 0 -%define CONFIG_THRESHOLD_FILTER 0 -%define CONFIG_THUMBNAIL_FILTER 0 -%define CONFIG_THUMBNAIL_CUDA_FILTER 0 -%define CONFIG_TILE_FILTER 0 -%define CONFIG_TINTERLACE_FILTER 0 -%define CONFIG_TLUT2_FILTER 0 -%define CONFIG_TMIX_FILTER 0 -%define CONFIG_TONEMAP_FILTER 0 -%define CONFIG_TONEMAP_OPENCL_FILTER 0 -%define CONFIG_TPAD_FILTER 0 -%define CONFIG_TRANSPOSE_FILTER 0 -%define CONFIG_TRANSPOSE_NPP_FILTER 0 -%define CONFIG_TRIM_FILTER 0 -%define CONFIG_UNPREMULTIPLY_FILTER 0 -%define CONFIG_UNSHARP_FILTER 0 -%define CONFIG_UNSHARP_OPENCL_FILTER 0 -%define CONFIG_USPP_FILTER 0 -%define CONFIG_VAGUEDENOISER_FILTER 0 -%define CONFIG_VECTORSCOPE_FILTER 0 -%define CONFIG_VFLIP_FILTER 0 -%define CONFIG_VFRDET_FILTER 0 -%define CONFIG_VIBRANCE_FILTER 0 -%define CONFIG_VIDSTABDETECT_FILTER 0 -%define CONFIG_VIDSTABTRANSFORM_FILTER 0 -%define CONFIG_VIGNETTE_FILTER 0 -%define CONFIG_VMAFMOTION_FILTER 0 -%define CONFIG_VPP_QSV_FILTER 0 -%define CONFIG_VSTACK_FILTER 0 -%define CONFIG_W3FDIF_FILTER 0 -%define CONFIG_WAVEFORM_FILTER 0 -%define CONFIG_WEAVE_FILTER 0 -%define CONFIG_XBR_FILTER 0 -%define CONFIG_XSTACK_FILTER 0 -%define CONFIG_YADIF_FILTER 0 -%define CONFIG_YADIF_CUDA_FILTER 0 -%define CONFIG_ZMQ_FILTER 0 -%define CONFIG_ZOOMPAN_FILTER 0 -%define CONFIG_ZSCALE_FILTER 0 -%define CONFIG_ALLRGB_FILTER 0 -%define CONFIG_ALLYUV_FILTER 0 -%define CONFIG_CELLAUTO_FILTER 0 -%define CONFIG_COLOR_FILTER 0 -%define CONFIG_COREIMAGESRC_FILTER 0 -%define CONFIG_FREI0R_SRC_FILTER 0 -%define CONFIG_HALDCLUTSRC_FILTER 0 -%define CONFIG_LIFE_FILTER 0 -%define CONFIG_MANDELBROT_FILTER 0 -%define CONFIG_MPTESTSRC_FILTER 0 -%define CONFIG_NULLSRC_FILTER 0 -%define CONFIG_OPENCLSRC_FILTER 0 -%define CONFIG_PAL75BARS_FILTER 0 -%define CONFIG_PAL100BARS_FILTER 0 -%define CONFIG_RGBTESTSRC_FILTER 0 -%define CONFIG_SMPTEBARS_FILTER 0 -%define CONFIG_SMPTEHDBARS_FILTER 0 -%define CONFIG_TESTSRC_FILTER 0 -%define CONFIG_TESTSRC2_FILTER 0 -%define CONFIG_YUVTESTSRC_FILTER 0 -%define CONFIG_NULLSINK_FILTER 0 -%define CONFIG_ABITSCOPE_FILTER 0 -%define CONFIG_ADRAWGRAPH_FILTER 0 -%define CONFIG_AGRAPHMONITOR_FILTER 0 -%define CONFIG_AHISTOGRAM_FILTER 0 -%define CONFIG_APHASEMETER_FILTER 0 -%define CONFIG_AVECTORSCOPE_FILTER 0 -%define CONFIG_CONCAT_FILTER 0 -%define CONFIG_SHOWCQT_FILTER 0 -%define CONFIG_SHOWFREQS_FILTER 0 -%define CONFIG_SHOWSPECTRUM_FILTER 0 -%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -%define CONFIG_SHOWVOLUME_FILTER 0 -%define CONFIG_SHOWWAVES_FILTER 0 -%define CONFIG_SHOWWAVESPIC_FILTER 0 -%define CONFIG_SPECTRUMSYNTH_FILTER 0 -%define CONFIG_AMOVIE_FILTER 0 -%define CONFIG_MOVIE_FILTER 0 -%define CONFIG_AFIFO_FILTER 0 -%define CONFIG_FIFO_FILTER 0 -%define CONFIG_AA_DEMUXER 1 -%define CONFIG_AAC_DEMUXER 1 -%define CONFIG_AC3_DEMUXER 1 -%define CONFIG_ACM_DEMUXER 1 -%define CONFIG_ACT_DEMUXER 1 -%define CONFIG_ADF_DEMUXER 1 -%define CONFIG_ADP_DEMUXER 1 -%define CONFIG_ADS_DEMUXER 1 -%define CONFIG_ADX_DEMUXER 1 -%define CONFIG_AEA_DEMUXER 1 -%define CONFIG_AFC_DEMUXER 1 -%define CONFIG_AIFF_DEMUXER 1 -%define CONFIG_AIX_DEMUXER 1 -%define CONFIG_AMR_DEMUXER 1 -%define CONFIG_AMRNB_DEMUXER 1 -%define CONFIG_AMRWB_DEMUXER 1 -%define CONFIG_ANM_DEMUXER 1 -%define CONFIG_APC_DEMUXER 1 -%define CONFIG_APE_DEMUXER 1 -%define CONFIG_APNG_DEMUXER 1 -%define CONFIG_APTX_DEMUXER 1 -%define CONFIG_APTX_HD_DEMUXER 1 -%define CONFIG_AQTITLE_DEMUXER 1 -%define CONFIG_ASF_DEMUXER 1 -%define CONFIG_ASF_O_DEMUXER 1 -%define CONFIG_ASS_DEMUXER 1 -%define CONFIG_AST_DEMUXER 1 -%define CONFIG_AU_DEMUXER 1 -%define CONFIG_AVI_DEMUXER 1 -%define CONFIG_AVISYNTH_DEMUXER 0 -%define CONFIG_AVR_DEMUXER 1 -%define CONFIG_AVS_DEMUXER 1 -%define CONFIG_AVS2_DEMUXER 1 -%define CONFIG_BETHSOFTVID_DEMUXER 1 -%define CONFIG_BFI_DEMUXER 1 -%define CONFIG_BINTEXT_DEMUXER 1 -%define CONFIG_BINK_DEMUXER 1 -%define CONFIG_BIT_DEMUXER 1 -%define CONFIG_BMV_DEMUXER 1 -%define CONFIG_BFSTM_DEMUXER 1 -%define CONFIG_BRSTM_DEMUXER 1 -%define CONFIG_BOA_DEMUXER 1 -%define CONFIG_C93_DEMUXER 1 -%define CONFIG_CAF_DEMUXER 1 -%define CONFIG_CAVSVIDEO_DEMUXER 1 -%define CONFIG_CDG_DEMUXER 1 -%define CONFIG_CDXL_DEMUXER 1 -%define CONFIG_CINE_DEMUXER 1 -%define CONFIG_CODEC2_DEMUXER 1 -%define CONFIG_CODEC2RAW_DEMUXER 1 -%define CONFIG_CONCAT_DEMUXER 1 -%define CONFIG_DASH_DEMUXER 0 -%define CONFIG_DATA_DEMUXER 1 -%define CONFIG_DAUD_DEMUXER 1 -%define CONFIG_DCSTR_DEMUXER 1 -%define CONFIG_DFA_DEMUXER 1 -%define CONFIG_DIRAC_DEMUXER 1 -%define CONFIG_DNXHD_DEMUXER 1 -%define CONFIG_DSF_DEMUXER 1 -%define CONFIG_DSICIN_DEMUXER 1 -%define CONFIG_DSS_DEMUXER 1 -%define CONFIG_DTS_DEMUXER 1 -%define CONFIG_DTSHD_DEMUXER 1 -%define CONFIG_DV_DEMUXER 1 -%define CONFIG_DVBSUB_DEMUXER 1 -%define CONFIG_DVBTXT_DEMUXER 1 -%define CONFIG_DXA_DEMUXER 1 -%define CONFIG_EA_DEMUXER 1 -%define CONFIG_EA_CDATA_DEMUXER 1 -%define CONFIG_EAC3_DEMUXER 1 -%define CONFIG_EPAF_DEMUXER 1 -%define CONFIG_FFMETADATA_DEMUXER 1 -%define CONFIG_FILMSTRIP_DEMUXER 1 -%define CONFIG_FITS_DEMUXER 1 -%define CONFIG_FLAC_DEMUXER 1 -%define CONFIG_FLIC_DEMUXER 1 -%define CONFIG_FLV_DEMUXER 1 -%define CONFIG_LIVE_FLV_DEMUXER 1 -%define CONFIG_FOURXM_DEMUXER 1 -%define CONFIG_FRM_DEMUXER 1 -%define CONFIG_FSB_DEMUXER 1 -%define CONFIG_G722_DEMUXER 1 -%define CONFIG_G723_1_DEMUXER 1 -%define CONFIG_G726_DEMUXER 1 -%define CONFIG_G726LE_DEMUXER 1 -%define CONFIG_G729_DEMUXER 1 -%define CONFIG_GDV_DEMUXER 1 -%define CONFIG_GENH_DEMUXER 1 -%define CONFIG_GIF_DEMUXER 1 -%define CONFIG_GSM_DEMUXER 1 -%define CONFIG_GXF_DEMUXER 1 -%define CONFIG_H261_DEMUXER 1 -%define CONFIG_H263_DEMUXER 1 -%define CONFIG_H264_DEMUXER 1 -%define CONFIG_HEVC_DEMUXER 1 -%define CONFIG_HLS_DEMUXER 1 -%define CONFIG_HNM_DEMUXER 1 -%define CONFIG_ICO_DEMUXER 1 -%define CONFIG_IDCIN_DEMUXER 1 -%define CONFIG_IDF_DEMUXER 1 -%define CONFIG_IFF_DEMUXER 1 -%define CONFIG_ILBC_DEMUXER 1 -%define CONFIG_IMAGE2_DEMUXER 1 -%define CONFIG_IMAGE2PIPE_DEMUXER 1 -%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -%define CONFIG_INGENIENT_DEMUXER 1 -%define CONFIG_IPMOVIE_DEMUXER 1 -%define CONFIG_IRCAM_DEMUXER 1 -%define CONFIG_ISS_DEMUXER 1 -%define CONFIG_IV8_DEMUXER 1 -%define CONFIG_IVF_DEMUXER 1 -%define CONFIG_IVR_DEMUXER 1 -%define CONFIG_JACOSUB_DEMUXER 1 -%define CONFIG_JV_DEMUXER 1 -%define CONFIG_LMLM4_DEMUXER 1 -%define CONFIG_LOAS_DEMUXER 1 -%define CONFIG_LRC_DEMUXER 1 -%define CONFIG_LVF_DEMUXER 1 -%define CONFIG_LXF_DEMUXER 1 -%define CONFIG_M4V_DEMUXER 1 -%define CONFIG_MATROSKA_DEMUXER 1 -%define CONFIG_MGSTS_DEMUXER 1 -%define CONFIG_MICRODVD_DEMUXER 1 -%define CONFIG_MJPEG_DEMUXER 1 -%define CONFIG_MJPEG_2000_DEMUXER 1 -%define CONFIG_MLP_DEMUXER 1 -%define CONFIG_MLV_DEMUXER 1 -%define CONFIG_MM_DEMUXER 1 -%define CONFIG_MMF_DEMUXER 1 -%define CONFIG_MOV_DEMUXER 1 -%define CONFIG_MP3_DEMUXER 1 -%define CONFIG_MPC_DEMUXER 1 -%define CONFIG_MPC8_DEMUXER 1 -%define CONFIG_MPEGPS_DEMUXER 1 -%define CONFIG_MPEGTS_DEMUXER 1 -%define CONFIG_MPEGTSRAW_DEMUXER 1 -%define CONFIG_MPEGVIDEO_DEMUXER 1 -%define CONFIG_MPJPEG_DEMUXER 1 -%define CONFIG_MPL2_DEMUXER 1 -%define CONFIG_MPSUB_DEMUXER 1 -%define CONFIG_MSF_DEMUXER 1 -%define CONFIG_MSNWC_TCP_DEMUXER 1 -%define CONFIG_MTAF_DEMUXER 1 -%define CONFIG_MTV_DEMUXER 1 -%define CONFIG_MUSX_DEMUXER 1 -%define CONFIG_MV_DEMUXER 1 -%define CONFIG_MVI_DEMUXER 1 -%define CONFIG_MXF_DEMUXER 1 -%define CONFIG_MXG_DEMUXER 1 -%define CONFIG_NC_DEMUXER 1 -%define CONFIG_NISTSPHERE_DEMUXER 1 -%define CONFIG_NSP_DEMUXER 1 -%define CONFIG_NSV_DEMUXER 1 -%define CONFIG_NUT_DEMUXER 1 -%define CONFIG_NUV_DEMUXER 1 -%define CONFIG_OGG_DEMUXER 1 -%define CONFIG_OMA_DEMUXER 1 -%define CONFIG_PAF_DEMUXER 1 -%define CONFIG_PCM_ALAW_DEMUXER 1 -%define CONFIG_PCM_MULAW_DEMUXER 1 -%define CONFIG_PCM_VIDC_DEMUXER 1 -%define CONFIG_PCM_F64BE_DEMUXER 1 -%define CONFIG_PCM_F64LE_DEMUXER 1 -%define CONFIG_PCM_F32BE_DEMUXER 1 -%define CONFIG_PCM_F32LE_DEMUXER 1 -%define CONFIG_PCM_S32BE_DEMUXER 1 -%define CONFIG_PCM_S32LE_DEMUXER 1 -%define CONFIG_PCM_S24BE_DEMUXER 1 -%define CONFIG_PCM_S24LE_DEMUXER 1 -%define CONFIG_PCM_S16BE_DEMUXER 1 -%define CONFIG_PCM_S16LE_DEMUXER 1 -%define CONFIG_PCM_S8_DEMUXER 1 -%define CONFIG_PCM_U32BE_DEMUXER 1 -%define CONFIG_PCM_U32LE_DEMUXER 1 -%define CONFIG_PCM_U24BE_DEMUXER 1 -%define CONFIG_PCM_U24LE_DEMUXER 1 -%define CONFIG_PCM_U16BE_DEMUXER 1 -%define CONFIG_PCM_U16LE_DEMUXER 1 -%define CONFIG_PCM_U8_DEMUXER 1 -%define CONFIG_PJS_DEMUXER 1 -%define CONFIG_PMP_DEMUXER 1 -%define CONFIG_PVA_DEMUXER 1 -%define CONFIG_PVF_DEMUXER 1 -%define CONFIG_QCP_DEMUXER 1 -%define CONFIG_R3D_DEMUXER 1 -%define CONFIG_RAWVIDEO_DEMUXER 1 -%define CONFIG_REALTEXT_DEMUXER 1 -%define CONFIG_REDSPARK_DEMUXER 1 -%define CONFIG_RL2_DEMUXER 1 -%define CONFIG_RM_DEMUXER 1 -%define CONFIG_ROQ_DEMUXER 1 -%define CONFIG_RPL_DEMUXER 1 -%define CONFIG_RSD_DEMUXER 1 -%define CONFIG_RSO_DEMUXER 1 -%define CONFIG_RTP_DEMUXER 0 -%define CONFIG_RTSP_DEMUXER 0 -%define CONFIG_S337M_DEMUXER 1 -%define CONFIG_SAMI_DEMUXER 1 -%define CONFIG_SAP_DEMUXER 0 -%define CONFIG_SBC_DEMUXER 1 -%define CONFIG_SBG_DEMUXER 1 -%define CONFIG_SCC_DEMUXER 1 -%define CONFIG_SDP_DEMUXER 0 -%define CONFIG_SDR2_DEMUXER 1 -%define CONFIG_SDS_DEMUXER 1 -%define CONFIG_SDX_DEMUXER 1 -%define CONFIG_SEGAFILM_DEMUXER 1 -%define CONFIG_SER_DEMUXER 1 -%define CONFIG_SHORTEN_DEMUXER 1 -%define CONFIG_SIFF_DEMUXER 1 -%define CONFIG_SLN_DEMUXER 1 -%define CONFIG_SMACKER_DEMUXER 1 -%define CONFIG_SMJPEG_DEMUXER 1 -%define CONFIG_SMUSH_DEMUXER 1 -%define CONFIG_SOL_DEMUXER 1 -%define CONFIG_SOX_DEMUXER 1 -%define CONFIG_SPDIF_DEMUXER 1 -%define CONFIG_SRT_DEMUXER 1 -%define CONFIG_STR_DEMUXER 1 -%define CONFIG_STL_DEMUXER 1 -%define CONFIG_SUBVIEWER1_DEMUXER 1 -%define CONFIG_SUBVIEWER_DEMUXER 1 -%define CONFIG_SUP_DEMUXER 1 -%define CONFIG_SVAG_DEMUXER 1 -%define CONFIG_SWF_DEMUXER 1 -%define CONFIG_TAK_DEMUXER 1 -%define CONFIG_TEDCAPTIONS_DEMUXER 1 -%define CONFIG_THP_DEMUXER 1 -%define CONFIG_THREEDOSTR_DEMUXER 1 -%define CONFIG_TIERTEXSEQ_DEMUXER 1 -%define CONFIG_TMV_DEMUXER 1 -%define CONFIG_TRUEHD_DEMUXER 1 -%define CONFIG_TTA_DEMUXER 1 -%define CONFIG_TXD_DEMUXER 1 -%define CONFIG_TTY_DEMUXER 1 -%define CONFIG_TY_DEMUXER 1 -%define CONFIG_V210_DEMUXER 1 -%define CONFIG_V210X_DEMUXER 1 -%define CONFIG_VAG_DEMUXER 1 -%define CONFIG_VC1_DEMUXER 1 -%define CONFIG_VC1T_DEMUXER 1 -%define CONFIG_VIVO_DEMUXER 1 -%define CONFIG_VMD_DEMUXER 1 -%define CONFIG_VOBSUB_DEMUXER 1 -%define CONFIG_VOC_DEMUXER 1 -%define CONFIG_VPK_DEMUXER 1 -%define CONFIG_VPLAYER_DEMUXER 1 -%define CONFIG_VQF_DEMUXER 1 -%define CONFIG_W64_DEMUXER 1 -%define CONFIG_WAV_DEMUXER 1 -%define CONFIG_WC3_DEMUXER 1 -%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -%define CONFIG_WEBVTT_DEMUXER 1 -%define CONFIG_WSAUD_DEMUXER 1 -%define CONFIG_WSD_DEMUXER 1 -%define CONFIG_WSVQA_DEMUXER 1 -%define CONFIG_WTV_DEMUXER 1 -%define CONFIG_WVE_DEMUXER 1 -%define CONFIG_WV_DEMUXER 1 -%define CONFIG_XA_DEMUXER 1 -%define CONFIG_XBIN_DEMUXER 1 -%define CONFIG_XMV_DEMUXER 1 -%define CONFIG_XVAG_DEMUXER 1 -%define CONFIG_XWMA_DEMUXER 1 -%define CONFIG_YOP_DEMUXER 1 -%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 -%define CONFIG_LIBGME_DEMUXER 0 -%define CONFIG_LIBMODPLUG_DEMUXER 0 -%define CONFIG_LIBOPENMPT_DEMUXER 0 -%define CONFIG_VAPOURSYNTH_DEMUXER 0 -%define CONFIG_A64_MUXER 0 -%define CONFIG_AC3_MUXER 0 -%define CONFIG_ADTS_MUXER 0 -%define CONFIG_ADX_MUXER 0 -%define CONFIG_AIFF_MUXER 0 -%define CONFIG_AMR_MUXER 0 -%define CONFIG_APNG_MUXER 0 -%define CONFIG_APTX_MUXER 0 -%define CONFIG_APTX_HD_MUXER 0 -%define CONFIG_ASF_MUXER 0 -%define CONFIG_ASS_MUXER 0 -%define CONFIG_AST_MUXER 0 -%define CONFIG_ASF_STREAM_MUXER 0 -%define CONFIG_AU_MUXER 0 -%define CONFIG_AVI_MUXER 0 -%define CONFIG_AVM2_MUXER 0 -%define CONFIG_AVS2_MUXER 0 -%define CONFIG_BIT_MUXER 0 -%define CONFIG_CAF_MUXER 0 -%define CONFIG_CAVSVIDEO_MUXER 0 -%define CONFIG_CODEC2_MUXER 0 -%define CONFIG_CODEC2RAW_MUXER 0 -%define CONFIG_CRC_MUXER 0 -%define CONFIG_DASH_MUXER 0 -%define CONFIG_DATA_MUXER 0 -%define CONFIG_DAUD_MUXER 0 -%define CONFIG_DIRAC_MUXER 0 -%define CONFIG_DNXHD_MUXER 0 -%define CONFIG_DTS_MUXER 0 -%define CONFIG_DV_MUXER 0 -%define CONFIG_EAC3_MUXER 0 -%define CONFIG_F4V_MUXER 0 -%define CONFIG_FFMETADATA_MUXER 0 -%define CONFIG_FIFO_MUXER 0 -%define CONFIG_FIFO_TEST_MUXER 0 -%define CONFIG_FILMSTRIP_MUXER 0 -%define CONFIG_FITS_MUXER 0 -%define CONFIG_FLAC_MUXER 0 -%define CONFIG_FLV_MUXER 0 -%define CONFIG_FRAMECRC_MUXER 0 -%define CONFIG_FRAMEHASH_MUXER 0 -%define CONFIG_FRAMEMD5_MUXER 0 -%define CONFIG_G722_MUXER 0 -%define CONFIG_G723_1_MUXER 0 -%define CONFIG_G726_MUXER 0 -%define CONFIG_G726LE_MUXER 0 -%define CONFIG_GIF_MUXER 0 -%define CONFIG_GSM_MUXER 0 -%define CONFIG_GXF_MUXER 0 -%define CONFIG_H261_MUXER 0 -%define CONFIG_H263_MUXER 0 -%define CONFIG_H264_MUXER 0 -%define CONFIG_HASH_MUXER 0 -%define CONFIG_HDS_MUXER 0 -%define CONFIG_HEVC_MUXER 0 -%define CONFIG_HLS_MUXER 0 -%define CONFIG_ICO_MUXER 0 -%define CONFIG_ILBC_MUXER 0 -%define CONFIG_IMAGE2_MUXER 0 -%define CONFIG_IMAGE2PIPE_MUXER 0 -%define CONFIG_IPOD_MUXER 0 -%define CONFIG_IRCAM_MUXER 0 -%define CONFIG_ISMV_MUXER 0 -%define CONFIG_IVF_MUXER 0 -%define CONFIG_JACOSUB_MUXER 0 -%define CONFIG_LATM_MUXER 0 -%define CONFIG_LRC_MUXER 0 -%define CONFIG_M4V_MUXER 0 -%define CONFIG_MD5_MUXER 0 -%define CONFIG_MATROSKA_MUXER 0 -%define CONFIG_MATROSKA_AUDIO_MUXER 0 -%define CONFIG_MICRODVD_MUXER 0 -%define CONFIG_MJPEG_MUXER 0 -%define CONFIG_MLP_MUXER 0 -%define CONFIG_MMF_MUXER 0 -%define CONFIG_MOV_MUXER 0 -%define CONFIG_MP2_MUXER 0 -%define CONFIG_MP3_MUXER 0 -%define CONFIG_MP4_MUXER 0 -%define CONFIG_MPEG1SYSTEM_MUXER 0 -%define CONFIG_MPEG1VCD_MUXER 0 -%define CONFIG_MPEG1VIDEO_MUXER 0 -%define CONFIG_MPEG2DVD_MUXER 0 -%define CONFIG_MPEG2SVCD_MUXER 0 -%define CONFIG_MPEG2VIDEO_MUXER 0 -%define CONFIG_MPEG2VOB_MUXER 0 -%define CONFIG_MPEGTS_MUXER 0 -%define CONFIG_MPJPEG_MUXER 0 -%define CONFIG_MXF_MUXER 0 -%define CONFIG_MXF_D10_MUXER 0 -%define CONFIG_MXF_OPATOM_MUXER 0 -%define CONFIG_NULL_MUXER 0 -%define CONFIG_NUT_MUXER 0 -%define CONFIG_OGA_MUXER 0 -%define CONFIG_OGG_MUXER 0 -%define CONFIG_OGV_MUXER 0 -%define CONFIG_OMA_MUXER 0 -%define CONFIG_OPUS_MUXER 0 -%define CONFIG_PCM_ALAW_MUXER 0 -%define CONFIG_PCM_MULAW_MUXER 0 -%define CONFIG_PCM_VIDC_MUXER 0 -%define CONFIG_PCM_F64BE_MUXER 0 -%define CONFIG_PCM_F64LE_MUXER 0 -%define CONFIG_PCM_F32BE_MUXER 0 -%define CONFIG_PCM_F32LE_MUXER 0 -%define CONFIG_PCM_S32BE_MUXER 0 -%define CONFIG_PCM_S32LE_MUXER 0 -%define CONFIG_PCM_S24BE_MUXER 0 -%define CONFIG_PCM_S24LE_MUXER 0 -%define CONFIG_PCM_S16BE_MUXER 0 -%define CONFIG_PCM_S16LE_MUXER 0 -%define CONFIG_PCM_S8_MUXER 0 -%define CONFIG_PCM_U32BE_MUXER 0 -%define CONFIG_PCM_U32LE_MUXER 0 -%define CONFIG_PCM_U24BE_MUXER 0 -%define CONFIG_PCM_U24LE_MUXER 0 -%define CONFIG_PCM_U16BE_MUXER 0 -%define CONFIG_PCM_U16LE_MUXER 0 -%define CONFIG_PCM_U8_MUXER 0 -%define CONFIG_PSP_MUXER 0 -%define CONFIG_RAWVIDEO_MUXER 0 -%define CONFIG_RM_MUXER 0 -%define CONFIG_ROQ_MUXER 0 -%define CONFIG_RSO_MUXER 0 -%define CONFIG_RTP_MUXER 0 -%define CONFIG_RTP_MPEGTS_MUXER 0 -%define CONFIG_RTSP_MUXER 0 -%define CONFIG_SAP_MUXER 0 -%define CONFIG_SBC_MUXER 0 -%define CONFIG_SCC_MUXER 0 -%define CONFIG_SEGAFILM_MUXER 0 -%define CONFIG_SEGMENT_MUXER 0 -%define CONFIG_STREAM_SEGMENT_MUXER 0 -%define CONFIG_SINGLEJPEG_MUXER 0 -%define CONFIG_SMJPEG_MUXER 0 -%define CONFIG_SMOOTHSTREAMING_MUXER 0 -%define CONFIG_SOX_MUXER 0 -%define CONFIG_SPX_MUXER 0 -%define CONFIG_SPDIF_MUXER 0 -%define CONFIG_SRT_MUXER 0 -%define CONFIG_SUP_MUXER 0 -%define CONFIG_SWF_MUXER 0 -%define CONFIG_TEE_MUXER 0 -%define CONFIG_TG2_MUXER 0 -%define CONFIG_TGP_MUXER 0 -%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -%define CONFIG_TRUEHD_MUXER 0 -%define CONFIG_TTA_MUXER 0 -%define CONFIG_UNCODEDFRAMECRC_MUXER 0 -%define CONFIG_VC1_MUXER 0 -%define CONFIG_VC1T_MUXER 0 -%define CONFIG_VOC_MUXER 0 -%define CONFIG_W64_MUXER 0 -%define CONFIG_WAV_MUXER 0 -%define CONFIG_WEBM_MUXER 0 -%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -%define CONFIG_WEBM_CHUNK_MUXER 0 -%define CONFIG_WEBP_MUXER 0 -%define CONFIG_WEBVTT_MUXER 0 -%define CONFIG_WTV_MUXER 0 -%define CONFIG_WV_MUXER 0 -%define CONFIG_YUV4MPEGPIPE_MUXER 0 -%define CONFIG_CHROMAPRINT_MUXER 0 -%define CONFIG_ASYNC_PROTOCOL 1 -%define CONFIG_BLURAY_PROTOCOL 0 -%define CONFIG_CACHE_PROTOCOL 1 -%define CONFIG_CONCAT_PROTOCOL 1 -%define CONFIG_CRYPTO_PROTOCOL 1 -%define CONFIG_DATA_PROTOCOL 1 -%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -%define CONFIG_FFRTMPHTTP_PROTOCOL 0 -%define CONFIG_FILE_PROTOCOL 1 -%define CONFIG_FTP_PROTOCOL 0 -%define CONFIG_GOPHER_PROTOCOL 0 -%define CONFIG_HLS_PROTOCOL 1 -%define CONFIG_HTTP_PROTOCOL 0 -%define CONFIG_HTTPPROXY_PROTOCOL 0 -%define CONFIG_HTTPS_PROTOCOL 0 -%define CONFIG_ICECAST_PROTOCOL 0 -%define CONFIG_MMSH_PROTOCOL 0 -%define CONFIG_MMST_PROTOCOL 0 -%define CONFIG_MD5_PROTOCOL 1 -%define CONFIG_PIPE_PROTOCOL 1 -%define CONFIG_PROMPEG_PROTOCOL 1 -%define CONFIG_RTMP_PROTOCOL 0 -%define CONFIG_RTMPE_PROTOCOL 0 -%define CONFIG_RTMPS_PROTOCOL 0 -%define CONFIG_RTMPT_PROTOCOL 0 -%define CONFIG_RTMPTE_PROTOCOL 0 -%define CONFIG_RTMPTS_PROTOCOL 0 -%define CONFIG_RTP_PROTOCOL 0 -%define CONFIG_SCTP_PROTOCOL 0 -%define CONFIG_SRTP_PROTOCOL 0 -%define CONFIG_SUBFILE_PROTOCOL 1 -%define CONFIG_TEE_PROTOCOL 1 -%define CONFIG_TCP_PROTOCOL 0 -%define CONFIG_TLS_PROTOCOL 0 -%define CONFIG_UDP_PROTOCOL 0 -%define CONFIG_UDPLITE_PROTOCOL 0 -%define CONFIG_UNIX_PROTOCOL 0 -%define CONFIG_LIBRTMP_PROTOCOL 0 -%define CONFIG_LIBRTMPE_PROTOCOL 0 -%define CONFIG_LIBRTMPS_PROTOCOL 0 -%define CONFIG_LIBRTMPT_PROTOCOL 0 -%define CONFIG_LIBRTMPTE_PROTOCOL 0 -%define CONFIG_LIBSRT_PROTOCOL 0 -%define CONFIG_LIBSSH_PROTOCOL 0 -%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/build/ffmpeg/config-x64.h b/build/ffmpeg/config-x64.h deleted file mode 100755 index 52eed2f2f..000000000 --- a/build/ffmpeg/config-x64.h +++ /dev/null @@ -1,2476 +0,0 @@ -/* Automatically generated by configure - do not modify! */ -#ifndef FFMPEG_CONFIG_H -#define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-small --enable-x86asm --x86asmexe=yasm --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/x64/Release' --toolchain=msvc" -#define FFMPEG_LICENSE "GPL version 2 or later" -#define CONFIG_THIS_YEAR 2018 -#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" -#define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64" -#define av_restrict __restrict -#define EXTERN_PREFIX "" -#define EXTERN_ASM -#define BUILDSUF "" -#define SLIBSUF ".dll" -#define HAVE_MMX2 HAVE_MMXEXT -#define SWS_MAX_FILTER_SIZE 256 -#define ARCH_AARCH64 0 -#define ARCH_ALPHA 0 -#define ARCH_ARM 0 -#define ARCH_AVR32 0 -#define ARCH_AVR32_AP 0 -#define ARCH_AVR32_UC 0 -#define ARCH_BFIN 0 -#define ARCH_IA64 0 -#define ARCH_M68K 0 -#define ARCH_MIPS 0 -#define ARCH_MIPS64 0 -#define ARCH_PARISC 0 -#define ARCH_PPC 0 -#define ARCH_PPC64 0 -#define ARCH_S390 0 -#define ARCH_SH4 0 -#define ARCH_SPARC 0 -#define ARCH_SPARC64 0 -#define ARCH_TILEGX 0 -#define ARCH_TILEPRO 0 -#define ARCH_TOMI 0 -#define ARCH_X86 1 -#define ARCH_X86_32 0 -#define ARCH_X86_64 1 -#define HAVE_ARMV5TE 0 -#define HAVE_ARMV6 0 -#define HAVE_ARMV6T2 0 -#define HAVE_ARMV8 0 -#define HAVE_NEON 0 -#define HAVE_VFP 0 -#define HAVE_VFPV3 0 -#define HAVE_SETEND 0 -#define HAVE_ALTIVEC 0 -#define HAVE_DCBZL 0 -#define HAVE_LDBRX 0 -#define HAVE_POWER8 0 -#define HAVE_PPC4XX 0 -#define HAVE_VSX 0 -#define HAVE_AESNI 1 -#define HAVE_AMD3DNOW 1 -#define HAVE_AMD3DNOWEXT 1 -#define HAVE_AVX 1 -#define HAVE_AVX2 1 -#define HAVE_AVX512 1 -#define HAVE_FMA3 1 -#define HAVE_FMA4 1 -#define HAVE_MMX 1 -#define HAVE_MMXEXT 1 -#define HAVE_SSE 1 -#define HAVE_SSE2 1 -#define HAVE_SSE3 1 -#define HAVE_SSE4 1 -#define HAVE_SSE42 1 -#define HAVE_SSSE3 1 -#define HAVE_XOP 1 -#define HAVE_CPUNOP 1 -#define HAVE_I686 1 -#define HAVE_MIPSFPU 0 -#define HAVE_MIPS32R2 0 -#define HAVE_MIPS32R5 0 -#define HAVE_MIPS64R2 0 -#define HAVE_MIPS32R6 0 -#define HAVE_MIPS64R6 0 -#define HAVE_MIPSDSP 0 -#define HAVE_MIPSDSPR2 0 -#define HAVE_MSA 0 -#define HAVE_LOONGSON2 0 -#define HAVE_LOONGSON3 0 -#define HAVE_MMI 0 -#define HAVE_ARMV5TE_EXTERNAL 0 -#define HAVE_ARMV6_EXTERNAL 0 -#define HAVE_ARMV6T2_EXTERNAL 0 -#define HAVE_ARMV8_EXTERNAL 0 -#define HAVE_NEON_EXTERNAL 0 -#define HAVE_VFP_EXTERNAL 0 -#define HAVE_VFPV3_EXTERNAL 0 -#define HAVE_SETEND_EXTERNAL 0 -#define HAVE_ALTIVEC_EXTERNAL 0 -#define HAVE_DCBZL_EXTERNAL 0 -#define HAVE_LDBRX_EXTERNAL 0 -#define HAVE_POWER8_EXTERNAL 0 -#define HAVE_PPC4XX_EXTERNAL 0 -#define HAVE_VSX_EXTERNAL 0 -#define HAVE_AESNI_EXTERNAL 1 -#define HAVE_AMD3DNOW_EXTERNAL 1 -#define HAVE_AMD3DNOWEXT_EXTERNAL 1 -#define HAVE_AVX_EXTERNAL 1 -#define HAVE_AVX2_EXTERNAL 0 -#define HAVE_AVX512_EXTERNAL 0 -#define HAVE_FMA3_EXTERNAL 1 -#define HAVE_FMA4_EXTERNAL 1 -#define HAVE_MMX_EXTERNAL 1 -#define HAVE_MMXEXT_EXTERNAL 1 -#define HAVE_SSE_EXTERNAL 1 -#define HAVE_SSE2_EXTERNAL 1 -#define HAVE_SSE3_EXTERNAL 1 -#define HAVE_SSE4_EXTERNAL 1 -#define HAVE_SSE42_EXTERNAL 1 -#define HAVE_SSSE3_EXTERNAL 1 -#define HAVE_XOP_EXTERNAL 1 -#define HAVE_CPUNOP_EXTERNAL 0 -#define HAVE_I686_EXTERNAL 0 -#define HAVE_MIPSFPU_EXTERNAL 0 -#define HAVE_MIPS32R2_EXTERNAL 0 -#define HAVE_MIPS32R5_EXTERNAL 0 -#define HAVE_MIPS64R2_EXTERNAL 0 -#define HAVE_MIPS32R6_EXTERNAL 0 -#define HAVE_MIPS64R6_EXTERNAL 0 -#define HAVE_MIPSDSP_EXTERNAL 0 -#define HAVE_MIPSDSPR2_EXTERNAL 0 -#define HAVE_MSA_EXTERNAL 0 -#define HAVE_LOONGSON2_EXTERNAL 0 -#define HAVE_LOONGSON3_EXTERNAL 0 -#define HAVE_MMI_EXTERNAL 0 -#define HAVE_ARMV5TE_INLINE 0 -#define HAVE_ARMV6_INLINE 0 -#define HAVE_ARMV6T2_INLINE 0 -#define HAVE_ARMV8_INLINE 0 -#define HAVE_NEON_INLINE 0 -#define HAVE_VFP_INLINE 0 -#define HAVE_VFPV3_INLINE 0 -#define HAVE_SETEND_INLINE 0 -#define HAVE_ALTIVEC_INLINE 0 -#define HAVE_DCBZL_INLINE 0 -#define HAVE_LDBRX_INLINE 0 -#define HAVE_POWER8_INLINE 0 -#define HAVE_PPC4XX_INLINE 0 -#define HAVE_VSX_INLINE 0 -#define HAVE_AESNI_INLINE 0 -#define HAVE_AMD3DNOW_INLINE 0 -#define HAVE_AMD3DNOWEXT_INLINE 0 -#define HAVE_AVX_INLINE 0 -#define HAVE_AVX2_INLINE 0 -#define HAVE_AVX512_INLINE 0 -#define HAVE_FMA3_INLINE 0 -#define HAVE_FMA4_INLINE 0 -#define HAVE_MMX_INLINE 0 -#define HAVE_MMXEXT_INLINE 0 -#define HAVE_SSE_INLINE 0 -#define HAVE_SSE2_INLINE 0 -#define HAVE_SSE3_INLINE 0 -#define HAVE_SSE4_INLINE 0 -#define HAVE_SSE42_INLINE 0 -#define HAVE_SSSE3_INLINE 0 -#define HAVE_XOP_INLINE 0 -#define HAVE_CPUNOP_INLINE 0 -#define HAVE_I686_INLINE 0 -#define HAVE_MIPSFPU_INLINE 0 -#define HAVE_MIPS32R2_INLINE 0 -#define HAVE_MIPS32R5_INLINE 0 -#define HAVE_MIPS64R2_INLINE 0 -#define HAVE_MIPS32R6_INLINE 0 -#define HAVE_MIPS64R6_INLINE 0 -#define HAVE_MIPSDSP_INLINE 0 -#define HAVE_MIPSDSPR2_INLINE 0 -#define HAVE_MSA_INLINE 0 -#define HAVE_LOONGSON2_INLINE 0 -#define HAVE_LOONGSON3_INLINE 0 -#define HAVE_MMI_INLINE 0 -#define HAVE_ALIGNED_STACK 1 -#define HAVE_FAST_64BIT 1 -#define HAVE_FAST_CLZ 1 -#define HAVE_FAST_CMOV 1 -#define HAVE_LOCAL_ALIGNED 1 -#define HAVE_SIMD_ALIGN_16 1 -#define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 -#define HAVE_ATOMIC_CAS_PTR 0 -#define HAVE_MACHINE_RW_BARRIER 0 -#define HAVE_MEMORYBARRIER 1 -#define HAVE_MM_EMPTY 0 -#define HAVE_RDTSC 1 -#define HAVE_SEM_TIMEDWAIT 0 -#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 -#define HAVE_CABS 0 -#define HAVE_CEXP 0 -#define HAVE_INLINE_ASM 0 -#define HAVE_SYMVER 0 -#define HAVE_X86ASM 1 -#define HAVE_BIGENDIAN 0 -#define HAVE_FAST_UNALIGNED 1 -#define HAVE_ARPA_INET_H 0 -#define HAVE_ASM_TYPES_H 0 -#define HAVE_CDIO_PARANOIA_H 0 -#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 -#define HAVE_CUDA_H 0 -#define HAVE_DISPATCH_DISPATCH_H 0 -#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 -#define HAVE_DEV_IC_BT8XX_H 0 -#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 -#define HAVE_DIRECT_H 1 -#define HAVE_DIRENT_H 0 -#define HAVE_DXGIDEBUG_H 1 -#define HAVE_DXVA_H 1 -#define HAVE_ES2_GL_H 0 -#define HAVE_GSM_H 0 -#define HAVE_IO_H 1 -#define HAVE_LINUX_PERF_EVENT_H 0 -#define HAVE_MACHINE_IOCTL_BT848_H 0 -#define HAVE_MACHINE_IOCTL_METEOR_H 0 -#define HAVE_MALLOC_H 1 -#define HAVE_OPENCV2_CORE_CORE_C_H 0 -#define HAVE_OPENGL_GL3_H 0 -#define HAVE_POLL_H 0 -#define HAVE_SYS_PARAM_H 0 -#define HAVE_SYS_RESOURCE_H 0 -#define HAVE_SYS_SELECT_H 0 -#define HAVE_SYS_SOUNDCARD_H 0 -#define HAVE_SYS_TIME_H 0 -#define HAVE_SYS_UN_H 0 -#define HAVE_SYS_VIDEOIO_H 0 -#define HAVE_TERMIOS_H 0 -#define HAVE_UDPLITE_H 0 -#define HAVE_UNISTD_H 0 -#define HAVE_VALGRIND_VALGRIND_H 0 -#define HAVE_WINDOWS_H 1 -#define HAVE_WINSOCK2_H 0 -#define HAVE_INTRINSICS_NEON 0 -#define HAVE_ATANF 1 -#define HAVE_ATAN2F 1 -#define HAVE_CBRT 1 -#define HAVE_CBRTF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COSF 1 -#define HAVE_ERF 1 -#define HAVE_EXP2 1 -#define HAVE_EXP2F 1 -#define HAVE_EXPF 1 -#define HAVE_HYPOT 1 -#define HAVE_ISFINITE 1 -#define HAVE_ISINF 1 -#define HAVE_ISNAN 1 -#define HAVE_LDEXPF 1 -#define HAVE_LLRINT 1 -#define HAVE_LLRINTF 1 -#define HAVE_LOG2 1 -#define HAVE_LOG2F 1 -#define HAVE_LOG10F 1 -#define HAVE_LRINT 1 -#define HAVE_LRINTF 1 -#define HAVE_POWF 1 -#define HAVE_RINT 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SINF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 -#define HAVE_ACCESS 1 -#define HAVE_ALIGNED_MALLOC 1 -#define HAVE_ARC4RANDOM 0 -#define HAVE_CLOCK_GETTIME 0 -#define HAVE_CLOSESOCKET 0 -#define HAVE_COMMANDLINETOARGVW 1 -#define HAVE_FCNTL 0 -#define HAVE_GETADDRINFO 0 -#define HAVE_GETHRTIME 0 -#define HAVE_GETOPT 0 -#define HAVE_GETPROCESSAFFINITYMASK 1 -#define HAVE_GETPROCESSMEMORYINFO 1 -#define HAVE_GETPROCESSTIMES 1 -#define HAVE_GETRUSAGE 0 -#define HAVE_GETSYSTEMTIMEASFILETIME 1 -#define HAVE_GETTIMEOFDAY 0 -#define HAVE_GLOB 0 -#define HAVE_GLXGETPROCADDRESS 0 -#define HAVE_GMTIME_R 0 -#define HAVE_INET_ATON 0 -#define HAVE_ISATTY 1 -#define HAVE_KBHIT 1 -#define HAVE_LOCALTIME_R 0 -#define HAVE_LSTAT 0 -#define HAVE_LZO1X_999_COMPRESS 0 -#define HAVE_MACH_ABSOLUTE_TIME 0 -#define HAVE_MAPVIEWOFFILE 1 -#define HAVE_MEMALIGN 0 -#define HAVE_MKSTEMP 0 -#define HAVE_MMAP 0 -#define HAVE_MPROTECT 0 -#define HAVE_NANOSLEEP 0 -#define HAVE_PEEKNAMEDPIPE 1 -#define HAVE_POSIX_MEMALIGN 0 -#define HAVE_PTHREAD_CANCEL 0 -#define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 -#define HAVE_SETCONSOLETEXTATTRIBUTE 1 -#define HAVE_SETCONSOLECTRLHANDLER 1 -#define HAVE_SETMODE 1 -#define HAVE_SETRLIMIT 0 -#define HAVE_SLEEP 1 -#define HAVE_STRERROR_R 0 -#define HAVE_SYSCONF 0 -#define HAVE_SYSCTL 0 -#define HAVE_USLEEP 0 -#define HAVE_UTGETOSTYPEFROMSTRING 0 -#define HAVE_VIRTUALALLOC 1 -#define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 1 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 -#define HAVE_PTHREADS 0 -#define HAVE_OS2THREADS 0 -#define HAVE_W32THREADS 1 -#define HAVE_AS_ARCH_DIRECTIVE 0 -#define HAVE_AS_DN_DIRECTIVE 0 -#define HAVE_AS_FPU_DIRECTIVE 0 -#define HAVE_AS_FUNC 0 -#define HAVE_AS_OBJECT_ARCH 0 -#define HAVE_ASM_MOD_Q 0 -#define HAVE_BLOCKS_EXTENSION 0 -#define HAVE_EBP_AVAILABLE 0 -#define HAVE_EBX_AVAILABLE 0 -#define HAVE_GNU_AS 0 -#define HAVE_GNU_WINDRES 0 -#define HAVE_IBM_ASM 0 -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 -#define HAVE_INLINE_ASM_LABELS 0 -#define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -#define HAVE_PRAGMA_DEPRECATED 1 -#define HAVE_RSYNC_CONTIMEOUT 0 -#define HAVE_SYMVER_ASM_LABEL 0 -#define HAVE_SYMVER_GNU_ASM 0 -#define HAVE_VFP_ARGS 0 -#define HAVE_XFORM_ASM 0 -#define HAVE_XMM_CLOBBERS 0 -#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 -#define HAVE_SOCKLEN_T 0 -#define HAVE_STRUCT_ADDRINFO 0 -#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 -#define HAVE_STRUCT_IP_MREQ_SOURCE 0 -#define HAVE_STRUCT_IPV6_MREQ 0 -#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -#define HAVE_STRUCT_POLLFD 0 -#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 -#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 -#define HAVE_STRUCT_SOCKADDR_IN6 0 -#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 -#define HAVE_STRUCT_SOCKADDR_STORAGE 0 -#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 -#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -#define HAVE_MAKEINFO 0 -#define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 -#define HAVE_PERL 1 -#define HAVE_POD2MAN 0 -#define HAVE_TEXI2HTML 0 -#define CONFIG_DOC 0 -#define CONFIG_HTMLPAGES 0 -#define CONFIG_MANPAGES 0 -#define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 0 -#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 -#define CONFIG_DECODE_AUDIO_EXAMPLE 1 -#define CONFIG_DECODE_VIDEO_EXAMPLE 1 -#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 -#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 -#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 -#define CONFIG_EXTRACT_MVS_EXAMPLE 1 -#define CONFIG_FILTER_AUDIO_EXAMPLE 0 -#define CONFIG_FILTERING_AUDIO_EXAMPLE 0 -#define CONFIG_FILTERING_VIDEO_EXAMPLE 0 -#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 -#define CONFIG_HW_DECODE_EXAMPLE 1 -#define CONFIG_METADATA_EXAMPLE 1 -#define CONFIG_MUXING_EXAMPLE 1 -#define CONFIG_QSVDEC_EXAMPLE 0 -#define CONFIG_REMUXING_EXAMPLE 1 -#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 1 -#define CONFIG_SCALING_VIDEO_EXAMPLE 1 -#define CONFIG_TRANSCODE_AAC_EXAMPLE 1 -#define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 -#define CONFIG_AVISYNTH 0 -#define CONFIG_FREI0R 0 -#define CONFIG_LIBCDIO 0 -#define CONFIG_LIBDAVS2 0 -#define CONFIG_LIBRUBBERBAND 0 -#define CONFIG_LIBVIDSTAB 0 -#define CONFIG_LIBX264 0 -#define CONFIG_LIBX265 0 -#define CONFIG_LIBXAVS 0 -#define CONFIG_LIBXAVS2 0 -#define CONFIG_LIBXVID 0 -#define CONFIG_DECKLINK 0 -#define CONFIG_LIBNDI_NEWTEK 0 -#define CONFIG_LIBFDK_AAC 0 -#define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 -#define CONFIG_GMP 0 -#define CONFIG_LIBLENSFUN 0 -#define CONFIG_LIBOPENCORE_AMRNB 0 -#define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 -#define CONFIG_LIBVO_AMRWBENC 0 -#define CONFIG_MBEDTLS 0 -#define CONFIG_RKMPP 0 -#define CONFIG_LIBSMBCLIENT 0 -#define CONFIG_CHROMAPRINT 0 -#define CONFIG_GCRYPT 0 -#define CONFIG_GNUTLS 0 -#define CONFIG_JNI 0 -#define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 -#define CONFIG_LIBASS 0 -#define CONFIG_LIBBLURAY 0 -#define CONFIG_LIBBS2B 0 -#define CONFIG_LIBCACA 0 -#define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 -#define CONFIG_LIBDAV1D 0 -#define CONFIG_LIBDC1394 0 -#define CONFIG_LIBDRM 0 -#define CONFIG_LIBFLITE 0 -#define CONFIG_LIBFONTCONFIG 0 -#define CONFIG_LIBFREETYPE 0 -#define CONFIG_LIBFRIBIDI 0 -#define CONFIG_LIBGME 0 -#define CONFIG_LIBGSM 0 -#define CONFIG_LIBIEC61883 0 -#define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 -#define CONFIG_LIBKLVANC 0 -#define CONFIG_LIBKVAZAAR 0 -#define CONFIG_LIBMODPLUG 0 -#define CONFIG_LIBMP3LAME 0 -#define CONFIG_LIBMYSOFA 0 -#define CONFIG_LIBOPENCV 0 -#define CONFIG_LIBOPENH264 0 -#define CONFIG_LIBOPENJPEG 0 -#define CONFIG_LIBOPENMPT 0 -#define CONFIG_LIBOPUS 0 -#define CONFIG_LIBPULSE 0 -#define CONFIG_LIBRSVG 0 -#define CONFIG_LIBRTMP 0 -#define CONFIG_LIBSHINE 0 -#define CONFIG_LIBSMBCLIENT 0 -#define CONFIG_LIBSNAPPY 0 -#define CONFIG_LIBSOXR 0 -#define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 -#define CONFIG_LIBSSH 0 -#define CONFIG_LIBTENSORFLOW 0 -#define CONFIG_LIBTESSERACT 0 -#define CONFIG_LIBTHEORA 0 -#define CONFIG_LIBTWOLAME 0 -#define CONFIG_LIBV4L2 0 -#define CONFIG_LIBVORBIS 0 -#define CONFIG_LIBVPX 0 -#define CONFIG_LIBWAVPACK 0 -#define CONFIG_LIBWEBP 0 -#define CONFIG_LIBXML2 0 -#define CONFIG_LIBZIMG 0 -#define CONFIG_LIBZMQ 0 -#define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 -#define CONFIG_MEDIACODEC 0 -#define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_VAPOURSYNTH 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 0 -#define CONFIG_AVFOUNDATION 0 -#define CONFIG_BZLIB 0 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 0 -#define CONFIG_SCHANNEL 1 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 0 -#define CONFIG_ZLIB 1 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 -#define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 -#define CONFIG_AUDIOTOOLBOX 0 -#define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 -#define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 -#define CONFIG_VAAPI 0 -#define CONFIG_VDPAU 0 -#define CONFIG_VIDEOTOOLBOX 0 -#define CONFIG_V4L2_M2M 0 -#define CONFIG_XVMC 0 -#define CONFIG_FTRAPV 0 -#define CONFIG_GRAY 0 -#define CONFIG_HARDCODED_TABLES 0 -#define CONFIG_OMX_RPI 0 -#define CONFIG_RUNTIME_CPUDETECT 1 -#define CONFIG_SAFE_BITSTREAM_READER 1 -#define CONFIG_SHARED 0 -#define CONFIG_SMALL 1 -#define CONFIG_STATIC 1 -#define CONFIG_SWSCALE_ALPHA 1 -#define CONFIG_GPL 1 -#define CONFIG_NONFREE 0 -#define CONFIG_VERSION3 0 -#define CONFIG_AVDEVICE 1 -#define CONFIG_AVFILTER 0 -#define CONFIG_SWSCALE 1 -#define CONFIG_POSTPROC 0 -#define CONFIG_AVFORMAT 1 -#define CONFIG_AVCODEC 1 -#define CONFIG_SWRESAMPLE 1 -#define CONFIG_AVRESAMPLE 0 -#define CONFIG_AVUTIL 1 -#define CONFIG_FFPLAY 0 -#define CONFIG_FFPROBE 0 -#define CONFIG_FFMPEG 0 -#define CONFIG_DCT 1 -#define CONFIG_DWT 1 -#define CONFIG_ERROR_RESILIENCE 1 -#define CONFIG_FAAN 1 -#define CONFIG_FAST_UNALIGNED 1 -#define CONFIG_FFT 1 -#define CONFIG_LSP 1 -#define CONFIG_LZO 1 -#define CONFIG_MDCT 1 -#define CONFIG_PIXELUTILS 0 -#define CONFIG_NETWORK 0 -#define CONFIG_RDFT 1 -#define CONFIG_AUTODETECT 0 -#define CONFIG_FONTCONFIG 0 -#define CONFIG_LINUX_PERF 0 -#define CONFIG_MEMORY_POISONING 0 -#define CONFIG_NEON_CLOBBER_TEST 0 -#define CONFIG_OSSFUZZ 0 -#define CONFIG_PIC 0 -#define CONFIG_THUMB 0 -#define CONFIG_VALGRIND_BACKTRACE 0 -#define CONFIG_XMM_CLOBBER_TEST 0 -#define CONFIG_BSFS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_ENCODERS 0 -#define CONFIG_HWACCELS 0 -#define CONFIG_PARSERS 1 -#define CONFIG_INDEVS 0 -#define CONFIG_OUTDEVS 0 -#define CONFIG_FILTERS 0 -#define CONFIG_DEMUXERS 1 -#define CONFIG_MUXERS 0 -#define CONFIG_PROTOCOLS 1 -#define CONFIG_AANDCTTABLES 1 -#define CONFIG_AC3DSP 1 -#define CONFIG_ADTS_HEADER 1 -#define CONFIG_AUDIO_FRAME_QUEUE 1 -#define CONFIG_AUDIODSP 1 -#define CONFIG_BLOCKDSP 1 -#define CONFIG_BSWAPDSP 1 -#define CONFIG_CABAC 1 -#define CONFIG_CBS 1 -#define CONFIG_CBS_AV1 1 -#define CONFIG_CBS_H264 1 -#define CONFIG_CBS_H265 1 -#define CONFIG_CBS_JPEG 0 -#define CONFIG_CBS_MPEG2 1 -#define CONFIG_CBS_VP9 1 -#define CONFIG_DIRAC_PARSE 1 -#define CONFIG_DNN 0 -#define CONFIG_DVPROFILE 1 -#define CONFIG_EXIF 1 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 -#define CONFIG_FLACDSP 1 -#define CONFIG_FMTCONVERT 1 -#define CONFIG_FRAME_THREAD_ENCODER 0 -#define CONFIG_G722DSP 1 -#define CONFIG_GOLOMB 1 -#define CONFIG_GPLV3 0 -#define CONFIG_H263DSP 1 -#define CONFIG_H264CHROMA 1 -#define CONFIG_H264DSP 1 -#define CONFIG_H264PARSE 1 -#define CONFIG_H264PRED 1 -#define CONFIG_H264QPEL 1 -#define CONFIG_HEVCPARSE 1 -#define CONFIG_HPELDSP 1 -#define CONFIG_HUFFMAN 1 -#define CONFIG_HUFFYUVDSP 1 -#define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 -#define CONFIG_IIRFILTER 0 -#define CONFIG_MDCT15 1 -#define CONFIG_INTRAX8 1 -#define CONFIG_ISO_MEDIA 1 -#define CONFIG_IVIDSP 0 -#define CONFIG_JPEGTABLES 1 -#define CONFIG_LGPLV3 0 -#define CONFIG_LIBX262 0 -#define CONFIG_LLAUDDSP 1 -#define CONFIG_LLVIDDSP 1 -#define CONFIG_LLVIDENCDSP 0 -#define CONFIG_LPC 0 -#define CONFIG_LZF 1 -#define CONFIG_ME_CMP 1 -#define CONFIG_MPEG_ER 1 -#define CONFIG_MPEGAUDIO 1 -#define CONFIG_MPEGAUDIODSP 1 -#define CONFIG_MPEGAUDIOHEADER 1 -#define CONFIG_MPEGVIDEO 1 -#define CONFIG_MPEGVIDEOENC 1 -#define CONFIG_MSS34DSP 1 -#define CONFIG_PIXBLOCKDSP 1 -#define CONFIG_QPELDSP 1 -#define CONFIG_QSV 0 -#define CONFIG_QSVDEC 0 -#define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 -#define CONFIG_RANGECODER 1 -#define CONFIG_RIFFDEC 1 -#define CONFIG_RIFFENC 0 -#define CONFIG_RTPDEC 0 -#define CONFIG_RTPENC_CHAIN 0 -#define CONFIG_RV34DSP 1 -#define CONFIG_SCENE_SAD 0 -#define CONFIG_SINEWIN 1 -#define CONFIG_SNAPPY 1 -#define CONFIG_SRTP 0 -#define CONFIG_STARTCODE 1 -#define CONFIG_TEXTUREDSP 1 -#define CONFIG_TEXTUREDSPENC 0 -#define CONFIG_TPELDSP 1 -#define CONFIG_VAAPI_1 0 -#define CONFIG_VAAPI_ENCODE 0 -#define CONFIG_VC1DSP 1 -#define CONFIG_VIDEODSP 1 -#define CONFIG_VP3DSP 1 -#define CONFIG_VP56DSP 1 -#define CONFIG_VP8DSP 1 -#define CONFIG_WMA_FREQS 1 -#define CONFIG_WMV2DSP 1 -#define CONFIG_AAC_ADTSTOASC_BSF 1 -#define CONFIG_AV1_METADATA_BSF 1 -#define CONFIG_CHOMP_BSF 1 -#define CONFIG_DUMP_EXTRADATA_BSF 1 -#define CONFIG_DCA_CORE_BSF 1 -#define CONFIG_EAC3_CORE_BSF 1 -#define CONFIG_EXTRACT_EXTRADATA_BSF 1 -#define CONFIG_FILTER_UNITS_BSF 1 -#define CONFIG_H264_METADATA_BSF 1 -#define CONFIG_H264_MP4TOANNEXB_BSF 1 -#define CONFIG_H264_REDUNDANT_PPS_BSF 1 -#define CONFIG_HAPQA_EXTRACT_BSF 1 -#define CONFIG_HEVC_METADATA_BSF 1 -#define CONFIG_HEVC_MP4TOANNEXB_BSF 1 -#define CONFIG_IMX_DUMP_HEADER_BSF 1 -#define CONFIG_MJPEG2JPEG_BSF 1 -#define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 -#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 -#define CONFIG_MPEG2_METADATA_BSF 1 -#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 -#define CONFIG_MOV2TEXTSUB_BSF 1 -#define CONFIG_NOISE_BSF 1 -#define CONFIG_NULL_BSF 1 -#define CONFIG_PRORES_METADATA_BSF 1 -#define CONFIG_REMOVE_EXTRADATA_BSF 1 -#define CONFIG_TEXT2MOVSUB_BSF 1 -#define CONFIG_TRACE_HEADERS_BSF 1 -#define CONFIG_VP9_METADATA_BSF 1 -#define CONFIG_VP9_RAW_REORDER_BSF 1 -#define CONFIG_VP9_SUPERFRAME_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 -#define CONFIG_AASC_DECODER 1 -#define CONFIG_AIC_DECODER 1 -#define CONFIG_ALIAS_PIX_DECODER 1 -#define CONFIG_AMV_DECODER 1 -#define CONFIG_ANM_DECODER 1 -#define CONFIG_ANSI_DECODER 1 -#define CONFIG_APNG_DECODER 1 -#define CONFIG_ASV1_DECODER 1 -#define CONFIG_ASV2_DECODER 1 -#define CONFIG_AURA_DECODER 1 -#define CONFIG_AURA2_DECODER 1 -#define CONFIG_AVRP_DECODER 1 -#define CONFIG_AVRN_DECODER 1 -#define CONFIG_AVS_DECODER 1 -#define CONFIG_AVUI_DECODER 1 -#define CONFIG_AYUV_DECODER 1 -#define CONFIG_BETHSOFTVID_DECODER 1 -#define CONFIG_BFI_DECODER 1 -#define CONFIG_BINK_DECODER 1 -#define CONFIG_BITPACKED_DECODER 1 -#define CONFIG_BMP_DECODER 1 -#define CONFIG_BMV_VIDEO_DECODER 1 -#define CONFIG_BRENDER_PIX_DECODER 1 -#define CONFIG_C93_DECODER 1 -#define CONFIG_CAVS_DECODER 1 -#define CONFIG_CDGRAPHICS_DECODER 1 -#define CONFIG_CDXL_DECODER 1 -#define CONFIG_CFHD_DECODER 1 -#define CONFIG_CINEPAK_DECODER 1 -#define CONFIG_CLEARVIDEO_DECODER 1 -#define CONFIG_CLJR_DECODER 1 -#define CONFIG_CLLC_DECODER 1 -#define CONFIG_COMFORTNOISE_DECODER 1 -#define CONFIG_CPIA_DECODER 1 -#define CONFIG_CSCD_DECODER 1 -#define CONFIG_CYUV_DECODER 1 -#define CONFIG_DDS_DECODER 1 -#define CONFIG_DFA_DECODER 1 -#define CONFIG_DIRAC_DECODER 1 -#define CONFIG_DNXHD_DECODER 1 -#define CONFIG_DPX_DECODER 1 -#define CONFIG_DSICINVIDEO_DECODER 1 -#define CONFIG_DVAUDIO_DECODER 1 -#define CONFIG_DVVIDEO_DECODER 1 -#define CONFIG_DXA_DECODER 1 -#define CONFIG_DXTORY_DECODER 1 -#define CONFIG_DXV_DECODER 1 -#define CONFIG_EACMV_DECODER 1 -#define CONFIG_EAMAD_DECODER 1 -#define CONFIG_EATGQ_DECODER 1 -#define CONFIG_EATGV_DECODER 1 -#define CONFIG_EATQI_DECODER 1 -#define CONFIG_EIGHTBPS_DECODER 1 -#define CONFIG_EIGHTSVX_EXP_DECODER 1 -#define CONFIG_EIGHTSVX_FIB_DECODER 1 -#define CONFIG_ESCAPE124_DECODER 1 -#define CONFIG_ESCAPE130_DECODER 1 -#define CONFIG_EXR_DECODER 1 -#define CONFIG_FFV1_DECODER 1 -#define CONFIG_FFVHUFF_DECODER 1 -#define CONFIG_FIC_DECODER 1 -#define CONFIG_FITS_DECODER 1 -#define CONFIG_FLASHSV_DECODER 1 -#define CONFIG_FLASHSV2_DECODER 1 -#define CONFIG_FLIC_DECODER 1 -#define CONFIG_FLV_DECODER 1 -#define CONFIG_FMVC_DECODER 1 -#define CONFIG_FOURXM_DECODER 1 -#define CONFIG_FRAPS_DECODER 1 -#define CONFIG_FRWU_DECODER 1 -#define CONFIG_G2M_DECODER 1 -#define CONFIG_GDV_DECODER 1 -#define CONFIG_GIF_DECODER 1 -#define CONFIG_H261_DECODER 1 -#define CONFIG_H263_DECODER 1 -#define CONFIG_H263I_DECODER 1 -#define CONFIG_H263P_DECODER 1 -#define CONFIG_H263_V4L2M2M_DECODER 0 -#define CONFIG_H264_DECODER 1 -#define CONFIG_H264_CRYSTALHD_DECODER 0 -#define CONFIG_H264_V4L2M2M_DECODER 0 -#define CONFIG_H264_MEDIACODEC_DECODER 0 -#define CONFIG_H264_MMAL_DECODER 0 -#define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_RKMPP_DECODER 0 -#define CONFIG_HAP_DECODER 1 -#define CONFIG_HEVC_DECODER 1 -#define CONFIG_HEVC_QSV_DECODER 0 -#define CONFIG_HEVC_RKMPP_DECODER 0 -#define CONFIG_HEVC_V4L2M2M_DECODER 0 -#define CONFIG_HNM4_VIDEO_DECODER 1 -#define CONFIG_HQ_HQA_DECODER 1 -#define CONFIG_HQX_DECODER 1 -#define CONFIG_HUFFYUV_DECODER 1 -#define CONFIG_IDCIN_DECODER 1 -#define CONFIG_IFF_ILBM_DECODER 1 -#define CONFIG_IMM4_DECODER 1 -#define CONFIG_INDEO2_DECODER 0 -#define CONFIG_INDEO3_DECODER 0 -#define CONFIG_INDEO4_DECODER 0 -#define CONFIG_INDEO5_DECODER 0 -#define CONFIG_INTERPLAY_VIDEO_DECODER 1 -#define CONFIG_JPEG2000_DECODER 1 -#define CONFIG_JPEGLS_DECODER 1 -#define CONFIG_JV_DECODER 1 -#define CONFIG_KGV1_DECODER 1 -#define CONFIG_KMVC_DECODER 1 -#define CONFIG_LAGARITH_DECODER 1 -#define CONFIG_LOCO_DECODER 1 -#define CONFIG_M101_DECODER 1 -#define CONFIG_MAGICYUV_DECODER 1 -#define CONFIG_MDEC_DECODER 1 -#define CONFIG_MIMIC_DECODER 1 -#define CONFIG_MJPEG_DECODER 1 -#define CONFIG_MJPEGB_DECODER 1 -#define CONFIG_MMVIDEO_DECODER 1 -#define CONFIG_MOTIONPIXELS_DECODER 1 -#define CONFIG_MPEG1VIDEO_DECODER 1 -#define CONFIG_MPEG2VIDEO_DECODER 1 -#define CONFIG_MPEG4_DECODER 1 -#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_V4L2M2M_DECODER 0 -#define CONFIG_MPEG4_MMAL_DECODER 0 -#define CONFIG_MPEGVIDEO_DECODER 1 -#define CONFIG_MPEG1_V4L2M2M_DECODER 0 -#define CONFIG_MPEG2_MMAL_DECODER 0 -#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG2_V4L2M2M_DECODER 0 -#define CONFIG_MPEG2_QSV_DECODER 0 -#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -#define CONFIG_MSA1_DECODER 1 -#define CONFIG_MSCC_DECODER 1 -#define CONFIG_MSMPEG4V1_DECODER 1 -#define CONFIG_MSMPEG4V2_DECODER 1 -#define CONFIG_MSMPEG4V3_DECODER 1 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MSRLE_DECODER 1 -#define CONFIG_MSS1_DECODER 1 -#define CONFIG_MSS2_DECODER 1 -#define CONFIG_MSVIDEO1_DECODER 1 -#define CONFIG_MSZH_DECODER 1 -#define CONFIG_MTS2_DECODER 1 -#define CONFIG_MVC1_DECODER 1 -#define CONFIG_MVC2_DECODER 1 -#define CONFIG_MWSC_DECODER 1 -#define CONFIG_MXPEG_DECODER 1 -#define CONFIG_NUV_DECODER 1 -#define CONFIG_PAF_VIDEO_DECODER 1 -#define CONFIG_PAM_DECODER 1 -#define CONFIG_PBM_DECODER 1 -#define CONFIG_PCX_DECODER 1 -#define CONFIG_PGM_DECODER 1 -#define CONFIG_PGMYUV_DECODER 1 -#define CONFIG_PICTOR_DECODER 1 -#define CONFIG_PIXLET_DECODER 1 -#define CONFIG_PNG_DECODER 1 -#define CONFIG_PPM_DECODER 1 -#define CONFIG_PRORES_DECODER 1 -#define CONFIG_PROSUMER_DECODER 1 -#define CONFIG_PSD_DECODER 1 -#define CONFIG_PTX_DECODER 1 -#define CONFIG_QDRAW_DECODER 1 -#define CONFIG_QPEG_DECODER 1 -#define CONFIG_QTRLE_DECODER 1 -#define CONFIG_R10K_DECODER 1 -#define CONFIG_R210_DECODER 1 -#define CONFIG_RASC_DECODER 1 -#define CONFIG_RAWVIDEO_DECODER 1 -#define CONFIG_RL2_DECODER 1 -#define CONFIG_ROQ_DECODER 1 -#define CONFIG_RPZA_DECODER 1 -#define CONFIG_RSCC_DECODER 1 -#define CONFIG_RV10_DECODER 1 -#define CONFIG_RV20_DECODER 1 -#define CONFIG_RV30_DECODER 1 -#define CONFIG_RV40_DECODER 1 -#define CONFIG_S302M_DECODER 1 -#define CONFIG_SANM_DECODER 1 -#define CONFIG_SCPR_DECODER 1 -#define CONFIG_SCREENPRESSO_DECODER 1 -#define CONFIG_SDX2_DPCM_DECODER 1 -#define CONFIG_SGI_DECODER 1 -#define CONFIG_SGIRLE_DECODER 1 -#define CONFIG_SHEERVIDEO_DECODER 1 -#define CONFIG_SMACKER_DECODER 1 -#define CONFIG_SMC_DECODER 1 -#define CONFIG_SMVJPEG_DECODER 1 -#define CONFIG_SNOW_DECODER 1 -#define CONFIG_SP5X_DECODER 1 -#define CONFIG_SPEEDHQ_DECODER 1 -#define CONFIG_SRGC_DECODER 1 -#define CONFIG_SUNRAST_DECODER 1 -#define CONFIG_SVQ1_DECODER 1 -#define CONFIG_SVQ3_DECODER 1 -#define CONFIG_TARGA_DECODER 1 -#define CONFIG_TARGA_Y216_DECODER 1 -#define CONFIG_TDSC_DECODER 1 -#define CONFIG_THEORA_DECODER 1 -#define CONFIG_THP_DECODER 1 -#define CONFIG_TIERTEXSEQVIDEO_DECODER 1 -#define CONFIG_TIFF_DECODER 1 -#define CONFIG_TMV_DECODER 1 -#define CONFIG_TRUEMOTION1_DECODER 1 -#define CONFIG_TRUEMOTION2_DECODER 1 -#define CONFIG_TRUEMOTION2RT_DECODER 1 -#define CONFIG_TSCC_DECODER 1 -#define CONFIG_TSCC2_DECODER 1 -#define CONFIG_TXD_DECODER 1 -#define CONFIG_ULTI_DECODER 1 -#define CONFIG_UTVIDEO_DECODER 1 -#define CONFIG_V210_DECODER 1 -#define CONFIG_V210X_DECODER 1 -#define CONFIG_V308_DECODER 1 -#define CONFIG_V408_DECODER 1 -#define CONFIG_V410_DECODER 1 -#define CONFIG_VB_DECODER 1 -#define CONFIG_VBLE_DECODER 1 -#define CONFIG_VC1_DECODER 1 -#define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1IMAGE_DECODER 1 -#define CONFIG_VC1_MMAL_DECODER 0 -#define CONFIG_VC1_QSV_DECODER 0 -#define CONFIG_VC1_V4L2M2M_DECODER 0 -#define CONFIG_VCR1_DECODER 1 -#define CONFIG_VMDVIDEO_DECODER 1 -#define CONFIG_VMNC_DECODER 1 -#define CONFIG_VP3_DECODER 1 -#define CONFIG_VP5_DECODER 1 -#define CONFIG_VP6_DECODER 1 -#define CONFIG_VP6A_DECODER 1 -#define CONFIG_VP6F_DECODER 1 -#define CONFIG_VP7_DECODER 1 -#define CONFIG_VP8_DECODER 1 -#define CONFIG_VP8_RKMPP_DECODER 0 -#define CONFIG_VP8_V4L2M2M_DECODER 0 -#define CONFIG_VP9_DECODER 1 -#define CONFIG_VP9_RKMPP_DECODER 0 -#define CONFIG_VP9_V4L2M2M_DECODER 0 -#define CONFIG_VQA_DECODER 1 -#define CONFIG_WEBP_DECODER 1 -#define CONFIG_WCMV_DECODER 1 -#define CONFIG_WRAPPED_AVFRAME_DECODER 1 -#define CONFIG_WMV1_DECODER 1 -#define CONFIG_WMV2_DECODER 1 -#define CONFIG_WMV3_DECODER 1 -#define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3IMAGE_DECODER 1 -#define CONFIG_WNV1_DECODER 1 -#define CONFIG_XAN_WC3_DECODER 1 -#define CONFIG_XAN_WC4_DECODER 1 -#define CONFIG_XBM_DECODER 1 -#define CONFIG_XFACE_DECODER 1 -#define CONFIG_XL_DECODER 1 -#define CONFIG_XPM_DECODER 1 -#define CONFIG_XWD_DECODER 1 -#define CONFIG_Y41P_DECODER 1 -#define CONFIG_YLC_DECODER 1 -#define CONFIG_YOP_DECODER 1 -#define CONFIG_YUV4_DECODER 1 -#define CONFIG_ZERO12V_DECODER 1 -#define CONFIG_ZEROCODEC_DECODER 1 -#define CONFIG_ZLIB_DECODER 1 -#define CONFIG_ZMBV_DECODER 1 -#define CONFIG_AAC_DECODER 1 -#define CONFIG_AAC_FIXED_DECODER 1 -#define CONFIG_AAC_LATM_DECODER 1 -#define CONFIG_AC3_DECODER 1 -#define CONFIG_AC3_FIXED_DECODER 1 -#define CONFIG_ALAC_DECODER 1 -#define CONFIG_ALS_DECODER 1 -#define CONFIG_AMRNB_DECODER 1 -#define CONFIG_AMRWB_DECODER 1 -#define CONFIG_APE_DECODER 1 -#define CONFIG_APTX_DECODER 1 -#define CONFIG_APTX_HD_DECODER 1 -#define CONFIG_ATRAC1_DECODER 1 -#define CONFIG_ATRAC3_DECODER 1 -#define CONFIG_ATRAC3AL_DECODER 1 -#define CONFIG_ATRAC3P_DECODER 0 -#define CONFIG_ATRAC3PAL_DECODER 1 -#define CONFIG_ATRAC9_DECODER 1 -#define CONFIG_BINKAUDIO_DCT_DECODER 1 -#define CONFIG_BINKAUDIO_RDFT_DECODER 1 -#define CONFIG_BMV_AUDIO_DECODER 1 -#define CONFIG_COOK_DECODER 1 -#define CONFIG_DCA_DECODER 1 -#define CONFIG_DOLBY_E_DECODER 1 -#define CONFIG_DSD_LSBF_DECODER 1 -#define CONFIG_DSD_MSBF_DECODER 1 -#define CONFIG_DSD_LSBF_PLANAR_DECODER 1 -#define CONFIG_DSD_MSBF_PLANAR_DECODER 1 -#define CONFIG_DSICINAUDIO_DECODER 1 -#define CONFIG_DSS_SP_DECODER 1 -#define CONFIG_DST_DECODER 1 -#define CONFIG_EAC3_DECODER 1 -#define CONFIG_EVRC_DECODER 1 -#define CONFIG_FFWAVESYNTH_DECODER 1 -#define CONFIG_FLAC_DECODER 1 -#define CONFIG_G723_1_DECODER 1 -#define CONFIG_G729_DECODER 1 -#define CONFIG_GSM_DECODER 1 -#define CONFIG_GSM_MS_DECODER 1 -#define CONFIG_IAC_DECODER 1 -#define CONFIG_ILBC_DECODER 1 -#define CONFIG_IMC_DECODER 1 -#define CONFIG_INTERPLAY_ACM_DECODER 1 -#define CONFIG_MACE3_DECODER 1 -#define CONFIG_MACE6_DECODER 1 -#define CONFIG_METASOUND_DECODER 1 -#define CONFIG_MLP_DECODER 1 -#define CONFIG_MP1_DECODER 1 -#define CONFIG_MP1FLOAT_DECODER 1 -#define CONFIG_MP2_DECODER 1 -#define CONFIG_MP2FLOAT_DECODER 1 -#define CONFIG_MP3FLOAT_DECODER 1 -#define CONFIG_MP3_DECODER 1 -#define CONFIG_MP3ADUFLOAT_DECODER 1 -#define CONFIG_MP3ADU_DECODER 1 -#define CONFIG_MP3ON4FLOAT_DECODER 1 -#define CONFIG_MP3ON4_DECODER 1 -#define CONFIG_MPC7_DECODER 1 -#define CONFIG_MPC8_DECODER 1 -#define CONFIG_NELLYMOSER_DECODER 1 -#define CONFIG_ON2AVC_DECODER 1 -#define CONFIG_OPUS_DECODER 1 -#define CONFIG_PAF_AUDIO_DECODER 1 -#define CONFIG_QCELP_DECODER 1 -#define CONFIG_QDM2_DECODER 1 -#define CONFIG_QDMC_DECODER 1 -#define CONFIG_RA_144_DECODER 1 -#define CONFIG_RA_288_DECODER 1 -#define CONFIG_RALF_DECODER 1 -#define CONFIG_SBC_DECODER 1 -#define CONFIG_SHORTEN_DECODER 1 -#define CONFIG_SIPR_DECODER 1 -#define CONFIG_SMACKAUD_DECODER 1 -#define CONFIG_SONIC_DECODER 1 -#define CONFIG_TAK_DECODER 1 -#define CONFIG_TRUEHD_DECODER 1 -#define CONFIG_TRUESPEECH_DECODER 1 -#define CONFIG_TTA_DECODER 1 -#define CONFIG_TWINVQ_DECODER 0 -#define CONFIG_VMDAUDIO_DECODER 1 -#define CONFIG_VORBIS_DECODER 1 -#define CONFIG_WAVPACK_DECODER 1 -#define CONFIG_WMALOSSLESS_DECODER 1 -#define CONFIG_WMAPRO_DECODER 1 -#define CONFIG_WMAV1_DECODER 1 -#define CONFIG_WMAV2_DECODER 1 -#define CONFIG_WMAVOICE_DECODER 1 -#define CONFIG_WS_SND1_DECODER 1 -#define CONFIG_XMA1_DECODER 1 -#define CONFIG_XMA2_DECODER 1 -#define CONFIG_PCM_ALAW_DECODER 1 -#define CONFIG_PCM_BLURAY_DECODER 1 -#define CONFIG_PCM_DVD_DECODER 1 -#define CONFIG_PCM_F16LE_DECODER 1 -#define CONFIG_PCM_F24LE_DECODER 1 -#define CONFIG_PCM_F32BE_DECODER 1 -#define CONFIG_PCM_F32LE_DECODER 1 -#define CONFIG_PCM_F64BE_DECODER 1 -#define CONFIG_PCM_F64LE_DECODER 1 -#define CONFIG_PCM_LXF_DECODER 1 -#define CONFIG_PCM_MULAW_DECODER 1 -#define CONFIG_PCM_S8_DECODER 1 -#define CONFIG_PCM_S8_PLANAR_DECODER 1 -#define CONFIG_PCM_S16BE_DECODER 1 -#define CONFIG_PCM_S16BE_PLANAR_DECODER 1 -#define CONFIG_PCM_S16LE_DECODER 1 -#define CONFIG_PCM_S16LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S24BE_DECODER 1 -#define CONFIG_PCM_S24DAUD_DECODER 1 -#define CONFIG_PCM_S24LE_DECODER 1 -#define CONFIG_PCM_S24LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S32BE_DECODER 1 -#define CONFIG_PCM_S32LE_DECODER 1 -#define CONFIG_PCM_S32LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S64BE_DECODER 1 -#define CONFIG_PCM_S64LE_DECODER 1 -#define CONFIG_PCM_U8_DECODER 1 -#define CONFIG_PCM_U16BE_DECODER 1 -#define CONFIG_PCM_U16LE_DECODER 1 -#define CONFIG_PCM_U24BE_DECODER 1 -#define CONFIG_PCM_U24LE_DECODER 1 -#define CONFIG_PCM_U32BE_DECODER 1 -#define CONFIG_PCM_U32LE_DECODER 1 -#define CONFIG_PCM_VIDC_DECODER 1 -#define CONFIG_PCM_ZORK_DECODER 1 -#define CONFIG_GREMLIN_DPCM_DECODER 1 -#define CONFIG_INTERPLAY_DPCM_DECODER 1 -#define CONFIG_ROQ_DPCM_DECODER 1 -#define CONFIG_SOL_DPCM_DECODER 1 -#define CONFIG_XAN_DPCM_DECODER 1 -#define CONFIG_ADPCM_4XM_DECODER 1 -#define CONFIG_ADPCM_ADX_DECODER 1 -#define CONFIG_ADPCM_AFC_DECODER 1 -#define CONFIG_ADPCM_AICA_DECODER 1 -#define CONFIG_ADPCM_CT_DECODER 1 -#define CONFIG_ADPCM_DTK_DECODER 1 -#define CONFIG_ADPCM_EA_DECODER 1 -#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 -#define CONFIG_ADPCM_EA_R1_DECODER 1 -#define CONFIG_ADPCM_EA_R2_DECODER 1 -#define CONFIG_ADPCM_EA_R3_DECODER 1 -#define CONFIG_ADPCM_EA_XAS_DECODER 1 -#define CONFIG_ADPCM_G722_DECODER 1 -#define CONFIG_ADPCM_G726_DECODER 1 -#define CONFIG_ADPCM_G726LE_DECODER 1 -#define CONFIG_ADPCM_IMA_AMV_DECODER 1 -#define CONFIG_ADPCM_IMA_APC_DECODER 1 -#define CONFIG_ADPCM_IMA_DAT4_DECODER 1 -#define CONFIG_ADPCM_IMA_DK3_DECODER 1 -#define CONFIG_ADPCM_IMA_DK4_DECODER 1 -#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 -#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 -#define CONFIG_ADPCM_IMA_ISS_DECODER 1 -#define CONFIG_ADPCM_IMA_OKI_DECODER 1 -#define CONFIG_ADPCM_IMA_QT_DECODER 1 -#define CONFIG_ADPCM_IMA_RAD_DECODER 1 -#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 -#define CONFIG_ADPCM_IMA_WAV_DECODER 1 -#define CONFIG_ADPCM_IMA_WS_DECODER 1 -#define CONFIG_ADPCM_MS_DECODER 1 -#define CONFIG_ADPCM_MTAF_DECODER 1 -#define CONFIG_ADPCM_PSX_DECODER 1 -#define CONFIG_ADPCM_SBPRO_2_DECODER 1 -#define CONFIG_ADPCM_SBPRO_3_DECODER 1 -#define CONFIG_ADPCM_SBPRO_4_DECODER 1 -#define CONFIG_ADPCM_SWF_DECODER 1 -#define CONFIG_ADPCM_THP_DECODER 1 -#define CONFIG_ADPCM_THP_LE_DECODER 1 -#define CONFIG_ADPCM_VIMA_DECODER 1 -#define CONFIG_ADPCM_XA_DECODER 1 -#define CONFIG_ADPCM_YAMAHA_DECODER 1 -#define CONFIG_SSA_DECODER 1 -#define CONFIG_ASS_DECODER 1 -#define CONFIG_CCAPTION_DECODER 1 -#define CONFIG_DVBSUB_DECODER 1 -#define CONFIG_DVDSUB_DECODER 1 -#define CONFIG_JACOSUB_DECODER 1 -#define CONFIG_MICRODVD_DECODER 1 -#define CONFIG_MOVTEXT_DECODER 1 -#define CONFIG_MPL2_DECODER 1 -#define CONFIG_PGSSUB_DECODER 1 -#define CONFIG_PJS_DECODER 1 -#define CONFIG_REALTEXT_DECODER 1 -#define CONFIG_SAMI_DECODER 1 -#define CONFIG_SRT_DECODER 1 -#define CONFIG_STL_DECODER 1 -#define CONFIG_SUBRIP_DECODER 1 -#define CONFIG_SUBVIEWER_DECODER 1 -#define CONFIG_SUBVIEWER1_DECODER 1 -#define CONFIG_TEXT_DECODER 1 -#define CONFIG_VPLAYER_DECODER 1 -#define CONFIG_WEBVTT_DECODER 1 -#define CONFIG_XSUB_DECODER 1 -#define CONFIG_AAC_AT_DECODER 0 -#define CONFIG_AC3_AT_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 -#define CONFIG_ALAC_AT_DECODER 0 -#define CONFIG_AMR_NB_AT_DECODER 0 -#define CONFIG_EAC3_AT_DECODER 0 -#define CONFIG_GSM_MS_AT_DECODER 0 -#define CONFIG_ILBC_AT_DECODER 0 -#define CONFIG_MP1_AT_DECODER 0 -#define CONFIG_MP2_AT_DECODER 0 -#define CONFIG_MP3_AT_DECODER 0 -#define CONFIG_PCM_ALAW_AT_DECODER 0 -#define CONFIG_PCM_MULAW_AT_DECODER 0 -#define CONFIG_QDMC_AT_DECODER 0 -#define CONFIG_QDM2_AT_DECODER 0 -#define CONFIG_LIBAOM_AV1_DECODER 0 -#define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBCODEC2_DECODER 0 -#define CONFIG_LIBDAV1D_DECODER 0 -#define CONFIG_LIBDAVS2_DECODER 0 -#define CONFIG_LIBFDK_AAC_DECODER 0 -#define CONFIG_LIBGSM_DECODER 0 -#define CONFIG_LIBGSM_MS_DECODER 0 -#define CONFIG_LIBILBC_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -#define CONFIG_LIBOPENJPEG_DECODER 0 -#define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBRSVG_DECODER 0 -#define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBVORBIS_DECODER 0 -#define CONFIG_LIBVPX_VP8_DECODER 0 -#define CONFIG_LIBVPX_VP9_DECODER 0 -#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -#define CONFIG_BINTEXT_DECODER 1 -#define CONFIG_XBIN_DECODER 1 -#define CONFIG_IDF_DECODER 1 -#define CONFIG_LIBOPENH264_DECODER 0 -#define CONFIG_H264_CUVID_DECODER 0 -#define CONFIG_HEVC_CUVID_DECODER 0 -#define CONFIG_HEVC_MEDIACODEC_DECODER 0 -#define CONFIG_MJPEG_CUVID_DECODER 0 -#define CONFIG_MPEG1_CUVID_DECODER 0 -#define CONFIG_MPEG2_CUVID_DECODER 0 -#define CONFIG_MPEG4_CUVID_DECODER 0 -#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -#define CONFIG_VC1_CUVID_DECODER 0 -#define CONFIG_VP8_CUVID_DECODER 0 -#define CONFIG_VP8_MEDIACODEC_DECODER 0 -#define CONFIG_VP8_QSV_DECODER 0 -#define CONFIG_VP9_CUVID_DECODER 0 -#define CONFIG_VP9_MEDIACODEC_DECODER 0 -#define CONFIG_A64MULTI_ENCODER 0 -#define CONFIG_A64MULTI5_ENCODER 0 -#define CONFIG_ALIAS_PIX_ENCODER 0 -#define CONFIG_AMV_ENCODER 0 -#define CONFIG_APNG_ENCODER 0 -#define CONFIG_ASV1_ENCODER 0 -#define CONFIG_ASV2_ENCODER 0 -#define CONFIG_AVRP_ENCODER 0 -#define CONFIG_AVUI_ENCODER 0 -#define CONFIG_AYUV_ENCODER 0 -#define CONFIG_BMP_ENCODER 0 -#define CONFIG_CINEPAK_ENCODER 0 -#define CONFIG_CLJR_ENCODER 0 -#define CONFIG_COMFORTNOISE_ENCODER 0 -#define CONFIG_DNXHD_ENCODER 0 -#define CONFIG_DPX_ENCODER 0 -#define CONFIG_DVVIDEO_ENCODER 0 -#define CONFIG_FFV1_ENCODER 0 -#define CONFIG_FFVHUFF_ENCODER 0 -#define CONFIG_FITS_ENCODER 0 -#define CONFIG_FLASHSV_ENCODER 0 -#define CONFIG_FLASHSV2_ENCODER 0 -#define CONFIG_FLV_ENCODER 0 -#define CONFIG_GIF_ENCODER 0 -#define CONFIG_H261_ENCODER 0 -#define CONFIG_H263_ENCODER 0 -#define CONFIG_H263P_ENCODER 0 -#define CONFIG_HAP_ENCODER 0 -#define CONFIG_HUFFYUV_ENCODER 0 -#define CONFIG_JPEG2000_ENCODER 0 -#define CONFIG_JPEGLS_ENCODER 0 -#define CONFIG_LJPEG_ENCODER 0 -#define CONFIG_MAGICYUV_ENCODER 0 -#define CONFIG_MJPEG_ENCODER 0 -#define CONFIG_MPEG1VIDEO_ENCODER 0 -#define CONFIG_MPEG2VIDEO_ENCODER 0 -#define CONFIG_MPEG4_ENCODER 0 -#define CONFIG_MSMPEG4V2_ENCODER 0 -#define CONFIG_MSMPEG4V3_ENCODER 0 -#define CONFIG_MSVIDEO1_ENCODER 0 -#define CONFIG_PAM_ENCODER 0 -#define CONFIG_PBM_ENCODER 0 -#define CONFIG_PCX_ENCODER 0 -#define CONFIG_PGM_ENCODER 0 -#define CONFIG_PGMYUV_ENCODER 0 -#define CONFIG_PNG_ENCODER 0 -#define CONFIG_PPM_ENCODER 0 -#define CONFIG_PRORES_ENCODER 0 -#define CONFIG_PRORES_AW_ENCODER 0 -#define CONFIG_PRORES_KS_ENCODER 0 -#define CONFIG_QTRLE_ENCODER 0 -#define CONFIG_R10K_ENCODER 0 -#define CONFIG_R210_ENCODER 0 -#define CONFIG_RAWVIDEO_ENCODER 0 -#define CONFIG_ROQ_ENCODER 0 -#define CONFIG_RV10_ENCODER 0 -#define CONFIG_RV20_ENCODER 0 -#define CONFIG_S302M_ENCODER 0 -#define CONFIG_SGI_ENCODER 0 -#define CONFIG_SNOW_ENCODER 0 -#define CONFIG_SUNRAST_ENCODER 0 -#define CONFIG_SVQ1_ENCODER 0 -#define CONFIG_TARGA_ENCODER 0 -#define CONFIG_TIFF_ENCODER 0 -#define CONFIG_UTVIDEO_ENCODER 0 -#define CONFIG_V210_ENCODER 0 -#define CONFIG_V308_ENCODER 0 -#define CONFIG_V408_ENCODER 0 -#define CONFIG_V410_ENCODER 0 -#define CONFIG_VC2_ENCODER 0 -#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -#define CONFIG_WMV1_ENCODER 0 -#define CONFIG_WMV2_ENCODER 0 -#define CONFIG_XBM_ENCODER 0 -#define CONFIG_XFACE_ENCODER 0 -#define CONFIG_XWD_ENCODER 0 -#define CONFIG_Y41P_ENCODER 0 -#define CONFIG_YUV4_ENCODER 0 -#define CONFIG_ZLIB_ENCODER 0 -#define CONFIG_ZMBV_ENCODER 0 -#define CONFIG_AAC_ENCODER 0 -#define CONFIG_AC3_ENCODER 0 -#define CONFIG_AC3_FIXED_ENCODER 0 -#define CONFIG_ALAC_ENCODER 0 -#define CONFIG_APTX_ENCODER 0 -#define CONFIG_APTX_HD_ENCODER 0 -#define CONFIG_DCA_ENCODER 0 -#define CONFIG_EAC3_ENCODER 0 -#define CONFIG_FLAC_ENCODER 0 -#define CONFIG_G723_1_ENCODER 0 -#define CONFIG_MLP_ENCODER 0 -#define CONFIG_MP2_ENCODER 0 -#define CONFIG_MP2FIXED_ENCODER 0 -#define CONFIG_NELLYMOSER_ENCODER 0 -#define CONFIG_OPUS_ENCODER 0 -#define CONFIG_RA_144_ENCODER 0 -#define CONFIG_SBC_ENCODER 0 -#define CONFIG_SONIC_ENCODER 0 -#define CONFIG_SONIC_LS_ENCODER 0 -#define CONFIG_TRUEHD_ENCODER 0 -#define CONFIG_TTA_ENCODER 0 -#define CONFIG_VORBIS_ENCODER 0 -#define CONFIG_WAVPACK_ENCODER 0 -#define CONFIG_WMAV1_ENCODER 0 -#define CONFIG_WMAV2_ENCODER 0 -#define CONFIG_PCM_ALAW_ENCODER 0 -#define CONFIG_PCM_F32BE_ENCODER 0 -#define CONFIG_PCM_F32LE_ENCODER 0 -#define CONFIG_PCM_F64BE_ENCODER 0 -#define CONFIG_PCM_F64LE_ENCODER 0 -#define CONFIG_PCM_MULAW_ENCODER 0 -#define CONFIG_PCM_S8_ENCODER 0 -#define CONFIG_PCM_S8_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16BE_ENCODER 0 -#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16LE_ENCODER 0 -#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S24BE_ENCODER 0 -#define CONFIG_PCM_S24DAUD_ENCODER 0 -#define CONFIG_PCM_S24LE_ENCODER 0 -#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S32BE_ENCODER 0 -#define CONFIG_PCM_S32LE_ENCODER 0 -#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S64BE_ENCODER 0 -#define CONFIG_PCM_S64LE_ENCODER 0 -#define CONFIG_PCM_U8_ENCODER 0 -#define CONFIG_PCM_U16BE_ENCODER 0 -#define CONFIG_PCM_U16LE_ENCODER 0 -#define CONFIG_PCM_U24BE_ENCODER 0 -#define CONFIG_PCM_U24LE_ENCODER 0 -#define CONFIG_PCM_U32BE_ENCODER 0 -#define CONFIG_PCM_U32LE_ENCODER 0 -#define CONFIG_PCM_VIDC_ENCODER 0 -#define CONFIG_ROQ_DPCM_ENCODER 0 -#define CONFIG_ADPCM_ADX_ENCODER 0 -#define CONFIG_ADPCM_G722_ENCODER 0 -#define CONFIG_ADPCM_G726_ENCODER 0 -#define CONFIG_ADPCM_G726LE_ENCODER 0 -#define CONFIG_ADPCM_IMA_QT_ENCODER 0 -#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 -#define CONFIG_ADPCM_MS_ENCODER 0 -#define CONFIG_ADPCM_SWF_ENCODER 0 -#define CONFIG_ADPCM_YAMAHA_ENCODER 0 -#define CONFIG_SSA_ENCODER 0 -#define CONFIG_ASS_ENCODER 0 -#define CONFIG_DVBSUB_ENCODER 0 -#define CONFIG_DVDSUB_ENCODER 0 -#define CONFIG_MOVTEXT_ENCODER 0 -#define CONFIG_SRT_ENCODER 0 -#define CONFIG_SUBRIP_ENCODER 0 -#define CONFIG_TEXT_ENCODER 0 -#define CONFIG_WEBVTT_ENCODER 0 -#define CONFIG_XSUB_ENCODER 0 -#define CONFIG_AAC_AT_ENCODER 0 -#define CONFIG_ALAC_AT_ENCODER 0 -#define CONFIG_ILBC_AT_ENCODER 0 -#define CONFIG_PCM_ALAW_AT_ENCODER 0 -#define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBAOM_AV1_ENCODER 0 -#define CONFIG_LIBCODEC2_ENCODER 0 -#define CONFIG_LIBFDK_AAC_ENCODER 0 -#define CONFIG_LIBGSM_ENCODER 0 -#define CONFIG_LIBGSM_MS_ENCODER 0 -#define CONFIG_LIBILBC_ENCODER 0 -#define CONFIG_LIBMP3LAME_ENCODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -#define CONFIG_LIBOPENJPEG_ENCODER 0 -#define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBSHINE_ENCODER 0 -#define CONFIG_LIBSPEEX_ENCODER 0 -#define CONFIG_LIBTHEORA_ENCODER 0 -#define CONFIG_LIBTWOLAME_ENCODER 0 -#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -#define CONFIG_LIBVORBIS_ENCODER 0 -#define CONFIG_LIBVPX_VP8_ENCODER 0 -#define CONFIG_LIBVPX_VP9_ENCODER 0 -#define CONFIG_LIBWAVPACK_ENCODER 0 -#define CONFIG_LIBWEBP_ANIM_ENCODER 0 -#define CONFIG_LIBWEBP_ENCODER 0 -#define CONFIG_LIBX262_ENCODER 0 -#define CONFIG_LIBX264_ENCODER 0 -#define CONFIG_LIBX264RGB_ENCODER 0 -#define CONFIG_LIBX265_ENCODER 0 -#define CONFIG_LIBXAVS_ENCODER 0 -#define CONFIG_LIBXAVS2_ENCODER 0 -#define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_H263_V4L2M2M_ENCODER 0 -#define CONFIG_LIBOPENH264_ENCODER 0 -#define CONFIG_H264_AMF_ENCODER 0 -#define CONFIG_H264_NVENC_ENCODER 0 -#define CONFIG_H264_OMX_ENCODER 0 -#define CONFIG_H264_QSV_ENCODER 0 -#define CONFIG_H264_V4L2M2M_ENCODER 0 -#define CONFIG_H264_VAAPI_ENCODER 0 -#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_NVENC_ENCODER 0 -#define CONFIG_NVENC_H264_ENCODER 0 -#define CONFIG_NVENC_HEVC_ENCODER 0 -#define CONFIG_HEVC_AMF_ENCODER 0 -#define CONFIG_HEVC_NVENC_ENCODER 0 -#define CONFIG_HEVC_QSV_ENCODER 0 -#define CONFIG_HEVC_V4L2M2M_ENCODER 0 -#define CONFIG_HEVC_VAAPI_ENCODER 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_LIBKVAZAAR_ENCODER 0 -#define CONFIG_MJPEG_QSV_ENCODER 0 -#define CONFIG_MJPEG_VAAPI_ENCODER 0 -#define CONFIG_MPEG2_QSV_ENCODER 0 -#define CONFIG_MPEG2_VAAPI_ENCODER 0 -#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -#define CONFIG_VP8_V4L2M2M_ENCODER 0 -#define CONFIG_VP8_VAAPI_ENCODER 0 -#define CONFIG_VP9_VAAPI_ENCODER 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_D3D11VA2_HWACCEL 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_NVDEC_HWACCEL 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_NVDEC_HWACCEL 0 -#define CONFIG_HEVC_VAAPI_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MJPEG_NVDEC_HWACCEL 0 -#define CONFIG_MJPEG_VAAPI_HWACCEL 0 -#define CONFIG_MPEG1_NVDEC_HWACCEL 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -#define CONFIG_MPEG2_NVDEC_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG4_NVDEC_HWACCEL 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_D3D11VA2_HWACCEL 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_NVDEC_HWACCEL 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VP8_NVDEC_HWACCEL 0 -#define CONFIG_VP8_VAAPI_HWACCEL 0 -#define CONFIG_VP9_D3D11VA_HWACCEL 0 -#define CONFIG_VP9_D3D11VA2_HWACCEL 0 -#define CONFIG_VP9_DXVA2_HWACCEL 0 -#define CONFIG_VP9_NVDEC_HWACCEL 0 -#define CONFIG_VP9_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 -#define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_NVDEC_HWACCEL 0 -#define CONFIG_WMV3_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_AAC_PARSER 1 -#define CONFIG_AAC_LATM_PARSER 1 -#define CONFIG_AC3_PARSER 1 -#define CONFIG_ADX_PARSER 1 -#define CONFIG_AV1_PARSER 1 -#define CONFIG_AVS2_PARSER 1 -#define CONFIG_BMP_PARSER 1 -#define CONFIG_CAVSVIDEO_PARSER 1 -#define CONFIG_COOK_PARSER 1 -#define CONFIG_DCA_PARSER 1 -#define CONFIG_DIRAC_PARSER 1 -#define CONFIG_DNXHD_PARSER 1 -#define CONFIG_DPX_PARSER 1 -#define CONFIG_DVAUDIO_PARSER 1 -#define CONFIG_DVBSUB_PARSER 1 -#define CONFIG_DVDSUB_PARSER 1 -#define CONFIG_DVD_NAV_PARSER 1 -#define CONFIG_FLAC_PARSER 1 -#define CONFIG_G729_PARSER 1 -#define CONFIG_GSM_PARSER 1 -#define CONFIG_H261_PARSER 1 -#define CONFIG_H263_PARSER 1 -#define CONFIG_H264_PARSER 1 -#define CONFIG_HEVC_PARSER 1 -#define CONFIG_MJPEG_PARSER 1 -#define CONFIG_MLP_PARSER 1 -#define CONFIG_MPEG4VIDEO_PARSER 1 -#define CONFIG_MPEGAUDIO_PARSER 1 -#define CONFIG_MPEGVIDEO_PARSER 1 -#define CONFIG_OPUS_PARSER 1 -#define CONFIG_PNG_PARSER 1 -#define CONFIG_PNM_PARSER 1 -#define CONFIG_RV30_PARSER 1 -#define CONFIG_RV40_PARSER 1 -#define CONFIG_SBC_PARSER 1 -#define CONFIG_SIPR_PARSER 1 -#define CONFIG_TAK_PARSER 1 -#define CONFIG_VC1_PARSER 1 -#define CONFIG_VORBIS_PARSER 1 -#define CONFIG_VP3_PARSER 1 -#define CONFIG_VP8_PARSER 1 -#define CONFIG_VP9_PARSER 1 -#define CONFIG_XMA_PARSER 1 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_ANDROID_CAMERA_INDEV 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_BKTR_INDEV 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_LIBNDI_NEWTEK_INDEV 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_KMSGRAB_INDEV 0 -#define CONFIG_LAVFI_INDEV 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_XCBGRAB_INDEV 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBDC1394_INDEV 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL2_OUTDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_V4L2_OUTDEV 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_ABENCH_FILTER 0 -#define CONFIG_ACOMPRESSOR_FILTER 0 -#define CONFIG_ACONTRAST_FILTER 0 -#define CONFIG_ACOPY_FILTER 0 -#define CONFIG_ACUE_FILTER 0 -#define CONFIG_ACROSSFADE_FILTER 0 -#define CONFIG_ACROSSOVER_FILTER 0 -#define CONFIG_ACRUSHER_FILTER 0 -#define CONFIG_ADECLICK_FILTER 0 -#define CONFIG_ADECLIP_FILTER 0 -#define CONFIG_ADELAY_FILTER 0 -#define CONFIG_ADERIVATIVE_FILTER 0 -#define CONFIG_AECHO_FILTER 0 -#define CONFIG_AEMPHASIS_FILTER 0 -#define CONFIG_AEVAL_FILTER 0 -#define CONFIG_AFADE_FILTER 0 -#define CONFIG_AFFTDN_FILTER 0 -#define CONFIG_AFFTFILT_FILTER 0 -#define CONFIG_AFIR_FILTER 0 -#define CONFIG_AFORMAT_FILTER 0 -#define CONFIG_AGATE_FILTER 0 -#define CONFIG_AIIR_FILTER 0 -#define CONFIG_AINTEGRAL_FILTER 0 -#define CONFIG_AINTERLEAVE_FILTER 0 -#define CONFIG_ALIMITER_FILTER 0 -#define CONFIG_ALLPASS_FILTER 0 -#define CONFIG_ALOOP_FILTER 0 -#define CONFIG_AMERGE_FILTER 0 -#define CONFIG_AMETADATA_FILTER 0 -#define CONFIG_AMIX_FILTER 0 -#define CONFIG_AMULTIPLY_FILTER 0 -#define CONFIG_ANEQUALIZER_FILTER 0 -#define CONFIG_ANULL_FILTER 0 -#define CONFIG_APAD_FILTER 0 -#define CONFIG_APERMS_FILTER 0 -#define CONFIG_APHASER_FILTER 0 -#define CONFIG_APULSATOR_FILTER 0 -#define CONFIG_AREALTIME_FILTER 0 -#define CONFIG_ARESAMPLE_FILTER 0 -#define CONFIG_AREVERSE_FILTER 0 -#define CONFIG_ASELECT_FILTER 0 -#define CONFIG_ASENDCMD_FILTER 0 -#define CONFIG_ASETNSAMPLES_FILTER 0 -#define CONFIG_ASETPTS_FILTER 0 -#define CONFIG_ASETRATE_FILTER 0 -#define CONFIG_ASETTB_FILTER 0 -#define CONFIG_ASHOWINFO_FILTER 0 -#define CONFIG_ASIDEDATA_FILTER 0 -#define CONFIG_ASPLIT_FILTER 0 -#define CONFIG_ASTATS_FILTER 0 -#define CONFIG_ASTREAMSELECT_FILTER 0 -#define CONFIG_ATEMPO_FILTER 0 -#define CONFIG_ATRIM_FILTER 0 -#define CONFIG_AZMQ_FILTER 0 -#define CONFIG_BANDPASS_FILTER 0 -#define CONFIG_BANDREJECT_FILTER 0 -#define CONFIG_BASS_FILTER 0 -#define CONFIG_BIQUAD_FILTER 0 -#define CONFIG_BS2B_FILTER 0 -#define CONFIG_CHANNELMAP_FILTER 0 -#define CONFIG_CHANNELSPLIT_FILTER 0 -#define CONFIG_CHORUS_FILTER 0 -#define CONFIG_COMPAND_FILTER 0 -#define CONFIG_COMPENSATIONDELAY_FILTER 0 -#define CONFIG_CROSSFEED_FILTER 0 -#define CONFIG_CRYSTALIZER_FILTER 0 -#define CONFIG_DCSHIFT_FILTER 0 -#define CONFIG_DRMETER_FILTER 0 -#define CONFIG_DYNAUDNORM_FILTER 0 -#define CONFIG_EARWAX_FILTER 0 -#define CONFIG_EBUR128_FILTER 0 -#define CONFIG_EQUALIZER_FILTER 0 -#define CONFIG_EXTRASTEREO_FILTER 0 -#define CONFIG_FIREQUALIZER_FILTER 0 -#define CONFIG_FLANGER_FILTER 0 -#define CONFIG_HAAS_FILTER 0 -#define CONFIG_HDCD_FILTER 0 -#define CONFIG_HEADPHONE_FILTER 0 -#define CONFIG_HIGHPASS_FILTER 0 -#define CONFIG_HIGHSHELF_FILTER 0 -#define CONFIG_JOIN_FILTER 0 -#define CONFIG_LADSPA_FILTER 0 -#define CONFIG_LOUDNORM_FILTER 0 -#define CONFIG_LOWPASS_FILTER 0 -#define CONFIG_LOWSHELF_FILTER 0 -#define CONFIG_LV2_FILTER 0 -#define CONFIG_MCOMPAND_FILTER 0 -#define CONFIG_PAN_FILTER 0 -#define CONFIG_REPLAYGAIN_FILTER 0 -#define CONFIG_RESAMPLE_FILTER 0 -#define CONFIG_RUBBERBAND_FILTER 0 -#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -#define CONFIG_SIDECHAINGATE_FILTER 0 -#define CONFIG_SILENCEDETECT_FILTER 0 -#define CONFIG_SILENCEREMOVE_FILTER 0 -#define CONFIG_SOFALIZER_FILTER 0 -#define CONFIG_STEREOTOOLS_FILTER 0 -#define CONFIG_STEREOWIDEN_FILTER 0 -#define CONFIG_SUPEREQUALIZER_FILTER 0 -#define CONFIG_SURROUND_FILTER 0 -#define CONFIG_TREBLE_FILTER 0 -#define CONFIG_TREMOLO_FILTER 0 -#define CONFIG_VIBRATO_FILTER 0 -#define CONFIG_VOLUME_FILTER 0 -#define CONFIG_VOLUMEDETECT_FILTER 0 -#define CONFIG_AEVALSRC_FILTER 0 -#define CONFIG_ANOISESRC_FILTER 0 -#define CONFIG_ANULLSRC_FILTER 0 -#define CONFIG_FLITE_FILTER 0 -#define CONFIG_HILBERT_FILTER 0 -#define CONFIG_SINC_FILTER 0 -#define CONFIG_SINE_FILTER 0 -#define CONFIG_ANULLSINK_FILTER 0 -#define CONFIG_ALPHAEXTRACT_FILTER 0 -#define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_AMPLIFY_FILTER 0 -#define CONFIG_ASS_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 -#define CONFIG_AVGBLUR_FILTER 0 -#define CONFIG_AVGBLUR_OPENCL_FILTER 0 -#define CONFIG_BBOX_FILTER 0 -#define CONFIG_BENCH_FILTER 0 -#define CONFIG_BITPLANENOISE_FILTER 0 -#define CONFIG_BLACKDETECT_FILTER 0 -#define CONFIG_BLACKFRAME_FILTER 0 -#define CONFIG_BLEND_FILTER 0 -#define CONFIG_BM3D_FILTER 0 -#define CONFIG_BOXBLUR_FILTER 0 -#define CONFIG_BOXBLUR_OPENCL_FILTER 0 -#define CONFIG_BWDIF_FILTER 0 -#define CONFIG_CHROMAHOLD_FILTER 0 -#define CONFIG_CHROMAKEY_FILTER 0 -#define CONFIG_CHROMASHIFT_FILTER 0 -#define CONFIG_CIESCOPE_FILTER 0 -#define CONFIG_CODECVIEW_FILTER 0 -#define CONFIG_COLORBALANCE_FILTER 0 -#define CONFIG_COLORCHANNELMIXER_FILTER 0 -#define CONFIG_COLORKEY_FILTER 0 -#define CONFIG_COLORLEVELS_FILTER 0 -#define CONFIG_COLORMATRIX_FILTER 0 -#define CONFIG_COLORSPACE_FILTER 0 -#define CONFIG_CONVOLUTION_FILTER 0 -#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 -#define CONFIG_CONVOLVE_FILTER 0 -#define CONFIG_COPY_FILTER 0 -#define CONFIG_COREIMAGE_FILTER 0 -#define CONFIG_COVER_RECT_FILTER 0 -#define CONFIG_CROP_FILTER 0 -#define CONFIG_CROPDETECT_FILTER 0 -#define CONFIG_CUE_FILTER 0 -#define CONFIG_CURVES_FILTER 0 -#define CONFIG_DATASCOPE_FILTER 0 -#define CONFIG_DCTDNOIZ_FILTER 0 -#define CONFIG_DEBAND_FILTER 0 -#define CONFIG_DEBLOCK_FILTER 0 -#define CONFIG_DECIMATE_FILTER 0 -#define CONFIG_DECONVOLVE_FILTER 0 -#define CONFIG_DEDOT_FILTER 0 -#define CONFIG_DEFLATE_FILTER 0 -#define CONFIG_DEFLICKER_FILTER 0 -#define CONFIG_DEINTERLACE_QSV_FILTER 0 -#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 -#define CONFIG_DEJUDDER_FILTER 0 -#define CONFIG_DELOGO_FILTER 0 -#define CONFIG_DENOISE_VAAPI_FILTER 0 -#define CONFIG_DESHAKE_FILTER 0 -#define CONFIG_DESPILL_FILTER 0 -#define CONFIG_DETELECINE_FILTER 0 -#define CONFIG_DILATION_FILTER 0 -#define CONFIG_DILATION_OPENCL_FILTER 0 -#define CONFIG_DISPLACE_FILTER 0 -#define CONFIG_DOUBLEWEAVE_FILTER 0 -#define CONFIG_DRAWBOX_FILTER 0 -#define CONFIG_DRAWGRAPH_FILTER 0 -#define CONFIG_DRAWGRID_FILTER 0 -#define CONFIG_DRAWTEXT_FILTER 0 -#define CONFIG_EDGEDETECT_FILTER 0 -#define CONFIG_ELBG_FILTER 0 -#define CONFIG_ENTROPY_FILTER 0 -#define CONFIG_EQ_FILTER 0 -#define CONFIG_EROSION_FILTER 0 -#define CONFIG_EROSION_OPENCL_FILTER 0 -#define CONFIG_EXTRACTPLANES_FILTER 0 -#define CONFIG_FADE_FILTER 0 -#define CONFIG_FFTDNOIZ_FILTER 0 -#define CONFIG_FFTFILT_FILTER 0 -#define CONFIG_FIELD_FILTER 0 -#define CONFIG_FIELDHINT_FILTER 0 -#define CONFIG_FIELDMATCH_FILTER 0 -#define CONFIG_FIELDORDER_FILTER 0 -#define CONFIG_FILLBORDERS_FILTER 0 -#define CONFIG_FIND_RECT_FILTER 0 -#define CONFIG_FLOODFILL_FILTER 0 -#define CONFIG_FORMAT_FILTER 0 -#define CONFIG_FPS_FILTER 0 -#define CONFIG_FRAMEPACK_FILTER 0 -#define CONFIG_FRAMERATE_FILTER 0 -#define CONFIG_FRAMESTEP_FILTER 0 -#define CONFIG_FREEZEDETECT_FILTER 0 -#define CONFIG_FREI0R_FILTER 0 -#define CONFIG_FSPP_FILTER 0 -#define CONFIG_GBLUR_FILTER 0 -#define CONFIG_GEQ_FILTER 0 -#define CONFIG_GRADFUN_FILTER 0 -#define CONFIG_GRAPHMONITOR_FILTER 0 -#define CONFIG_GREYEDGE_FILTER 0 -#define CONFIG_HALDCLUT_FILTER 0 -#define CONFIG_HFLIP_FILTER 0 -#define CONFIG_HISTEQ_FILTER 0 -#define CONFIG_HISTOGRAM_FILTER 0 -#define CONFIG_HQDN3D_FILTER 0 -#define CONFIG_HQX_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 -#define CONFIG_HWDOWNLOAD_FILTER 0 -#define CONFIG_HWMAP_FILTER 0 -#define CONFIG_HWUPLOAD_FILTER 0 -#define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HYSTERESIS_FILTER 0 -#define CONFIG_IDET_FILTER 0 -#define CONFIG_IL_FILTER 0 -#define CONFIG_INFLATE_FILTER 0 -#define CONFIG_INTERLACE_FILTER 0 -#define CONFIG_INTERLEAVE_FILTER 0 -#define CONFIG_KERNDEINT_FILTER 0 -#define CONFIG_LENSCORRECTION_FILTER 0 -#define CONFIG_LENSFUN_FILTER 0 -#define CONFIG_LIBVMAF_FILTER 0 -#define CONFIG_LIMITER_FILTER 0 -#define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUMAKEY_FILTER 0 -#define CONFIG_LUT_FILTER 0 -#define CONFIG_LUT1D_FILTER 0 -#define CONFIG_LUT2_FILTER 0 -#define CONFIG_LUT3D_FILTER 0 -#define CONFIG_LUTRGB_FILTER 0 -#define CONFIG_LUTYUV_FILTER 0 -#define CONFIG_MASKEDCLAMP_FILTER 0 -#define CONFIG_MASKEDMERGE_FILTER 0 -#define CONFIG_MCDEINT_FILTER 0 -#define CONFIG_MERGEPLANES_FILTER 0 -#define CONFIG_MESTIMATE_FILTER 0 -#define CONFIG_METADATA_FILTER 0 -#define CONFIG_MIDEQUALIZER_FILTER 0 -#define CONFIG_MINTERPOLATE_FILTER 0 -#define CONFIG_MIX_FILTER 0 -#define CONFIG_MPDECIMATE_FILTER 0 -#define CONFIG_NEGATE_FILTER 0 -#define CONFIG_NLMEANS_FILTER 0 -#define CONFIG_NNEDI_FILTER 0 -#define CONFIG_NOFORMAT_FILTER 0 -#define CONFIG_NOISE_FILTER 0 -#define CONFIG_NORMALIZE_FILTER 0 -#define CONFIG_NULL_FILTER 0 -#define CONFIG_OCR_FILTER 0 -#define CONFIG_OCV_FILTER 0 -#define CONFIG_OSCILLOSCOPE_FILTER 0 -#define CONFIG_OVERLAY_FILTER 0 -#define CONFIG_OVERLAY_OPENCL_FILTER 0 -#define CONFIG_OVERLAY_QSV_FILTER 0 -#define CONFIG_OWDENOISE_FILTER 0 -#define CONFIG_PAD_FILTER 0 -#define CONFIG_PALETTEGEN_FILTER 0 -#define CONFIG_PALETTEUSE_FILTER 0 -#define CONFIG_PERMS_FILTER 0 -#define CONFIG_PERSPECTIVE_FILTER 0 -#define CONFIG_PHASE_FILTER 0 -#define CONFIG_PIXDESCTEST_FILTER 0 -#define CONFIG_PIXSCOPE_FILTER 0 -#define CONFIG_PP_FILTER 0 -#define CONFIG_PP7_FILTER 0 -#define CONFIG_PREMULTIPLY_FILTER 0 -#define CONFIG_PREWITT_FILTER 0 -#define CONFIG_PREWITT_OPENCL_FILTER 0 -#define CONFIG_PROCAMP_VAAPI_FILTER 0 -#define CONFIG_PROGRAM_OPENCL_FILTER 0 -#define CONFIG_PSEUDOCOLOR_FILTER 0 -#define CONFIG_PSNR_FILTER 0 -#define CONFIG_PULLUP_FILTER 0 -#define CONFIG_QP_FILTER 0 -#define CONFIG_RANDOM_FILTER 0 -#define CONFIG_READEIA608_FILTER 0 -#define CONFIG_READVITC_FILTER 0 -#define CONFIG_REALTIME_FILTER 0 -#define CONFIG_REMAP_FILTER 0 -#define CONFIG_REMOVEGRAIN_FILTER 0 -#define CONFIG_REMOVELOGO_FILTER 0 -#define CONFIG_REPEATFIELDS_FILTER 0 -#define CONFIG_REVERSE_FILTER 0 -#define CONFIG_RGBASHIFT_FILTER 0 -#define CONFIG_ROBERTS_FILTER 0 -#define CONFIG_ROBERTS_OPENCL_FILTER 0 -#define CONFIG_ROTATE_FILTER 0 -#define CONFIG_SAB_FILTER 0 -#define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE_CUDA_FILTER 0 -#define CONFIG_SCALE_NPP_FILTER 0 -#define CONFIG_SCALE_QSV_FILTER 0 -#define CONFIG_SCALE_VAAPI_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 -#define CONFIG_SELECT_FILTER 0 -#define CONFIG_SELECTIVECOLOR_FILTER 0 -#define CONFIG_SENDCMD_FILTER 0 -#define CONFIG_SEPARATEFIELDS_FILTER 0 -#define CONFIG_SETDAR_FILTER 0 -#define CONFIG_SETFIELD_FILTER 0 -#define CONFIG_SETPARAMS_FILTER 0 -#define CONFIG_SETPTS_FILTER 0 -#define CONFIG_SETRANGE_FILTER 0 -#define CONFIG_SETSAR_FILTER 0 -#define CONFIG_SETTB_FILTER 0 -#define CONFIG_SHARPNESS_VAAPI_FILTER 0 -#define CONFIG_SHOWINFO_FILTER 0 -#define CONFIG_SHOWPALETTE_FILTER 0 -#define CONFIG_SHUFFLEFRAMES_FILTER 0 -#define CONFIG_SHUFFLEPLANES_FILTER 0 -#define CONFIG_SIDEDATA_FILTER 0 -#define CONFIG_SIGNALSTATS_FILTER 0 -#define CONFIG_SIGNATURE_FILTER 0 -#define CONFIG_SMARTBLUR_FILTER 0 -#define CONFIG_SOBEL_FILTER 0 -#define CONFIG_SOBEL_OPENCL_FILTER 0 -#define CONFIG_SPLIT_FILTER 0 -#define CONFIG_SPP_FILTER 0 -#define CONFIG_SR_FILTER 0 -#define CONFIG_SSIM_FILTER 0 -#define CONFIG_STEREO3D_FILTER 0 -#define CONFIG_STREAMSELECT_FILTER 0 -#define CONFIG_SUBTITLES_FILTER 0 -#define CONFIG_SUPER2XSAI_FILTER 0 -#define CONFIG_SWAPRECT_FILTER 0 -#define CONFIG_SWAPUV_FILTER 0 -#define CONFIG_TBLEND_FILTER 0 -#define CONFIG_TELECINE_FILTER 0 -#define CONFIG_THRESHOLD_FILTER 0 -#define CONFIG_THUMBNAIL_FILTER 0 -#define CONFIG_THUMBNAIL_CUDA_FILTER 0 -#define CONFIG_TILE_FILTER 0 -#define CONFIG_TINTERLACE_FILTER 0 -#define CONFIG_TLUT2_FILTER 0 -#define CONFIG_TMIX_FILTER 0 -#define CONFIG_TONEMAP_FILTER 0 -#define CONFIG_TONEMAP_OPENCL_FILTER 0 -#define CONFIG_TPAD_FILTER 0 -#define CONFIG_TRANSPOSE_FILTER 0 -#define CONFIG_TRANSPOSE_NPP_FILTER 0 -#define CONFIG_TRIM_FILTER 0 -#define CONFIG_UNPREMULTIPLY_FILTER 0 -#define CONFIG_UNSHARP_FILTER 0 -#define CONFIG_UNSHARP_OPENCL_FILTER 0 -#define CONFIG_USPP_FILTER 0 -#define CONFIG_VAGUEDENOISER_FILTER 0 -#define CONFIG_VECTORSCOPE_FILTER 0 -#define CONFIG_VFLIP_FILTER 0 -#define CONFIG_VFRDET_FILTER 0 -#define CONFIG_VIBRANCE_FILTER 0 -#define CONFIG_VIDSTABDETECT_FILTER 0 -#define CONFIG_VIDSTABTRANSFORM_FILTER 0 -#define CONFIG_VIGNETTE_FILTER 0 -#define CONFIG_VMAFMOTION_FILTER 0 -#define CONFIG_VPP_QSV_FILTER 0 -#define CONFIG_VSTACK_FILTER 0 -#define CONFIG_W3FDIF_FILTER 0 -#define CONFIG_WAVEFORM_FILTER 0 -#define CONFIG_WEAVE_FILTER 0 -#define CONFIG_XBR_FILTER 0 -#define CONFIG_XSTACK_FILTER 0 -#define CONFIG_YADIF_FILTER 0 -#define CONFIG_YADIF_CUDA_FILTER 0 -#define CONFIG_ZMQ_FILTER 0 -#define CONFIG_ZOOMPAN_FILTER 0 -#define CONFIG_ZSCALE_FILTER 0 -#define CONFIG_ALLRGB_FILTER 0 -#define CONFIG_ALLYUV_FILTER 0 -#define CONFIG_CELLAUTO_FILTER 0 -#define CONFIG_COLOR_FILTER 0 -#define CONFIG_COREIMAGESRC_FILTER 0 -#define CONFIG_FREI0R_SRC_FILTER 0 -#define CONFIG_HALDCLUTSRC_FILTER 0 -#define CONFIG_LIFE_FILTER 0 -#define CONFIG_MANDELBROT_FILTER 0 -#define CONFIG_MPTESTSRC_FILTER 0 -#define CONFIG_NULLSRC_FILTER 0 -#define CONFIG_OPENCLSRC_FILTER 0 -#define CONFIG_PAL75BARS_FILTER 0 -#define CONFIG_PAL100BARS_FILTER 0 -#define CONFIG_RGBTESTSRC_FILTER 0 -#define CONFIG_SMPTEBARS_FILTER 0 -#define CONFIG_SMPTEHDBARS_FILTER 0 -#define CONFIG_TESTSRC_FILTER 0 -#define CONFIG_TESTSRC2_FILTER 0 -#define CONFIG_YUVTESTSRC_FILTER 0 -#define CONFIG_NULLSINK_FILTER 0 -#define CONFIG_ABITSCOPE_FILTER 0 -#define CONFIG_ADRAWGRAPH_FILTER 0 -#define CONFIG_AGRAPHMONITOR_FILTER 0 -#define CONFIG_AHISTOGRAM_FILTER 0 -#define CONFIG_APHASEMETER_FILTER 0 -#define CONFIG_AVECTORSCOPE_FILTER 0 -#define CONFIG_CONCAT_FILTER 0 -#define CONFIG_SHOWCQT_FILTER 0 -#define CONFIG_SHOWFREQS_FILTER 0 -#define CONFIG_SHOWSPECTRUM_FILTER 0 -#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -#define CONFIG_SHOWVOLUME_FILTER 0 -#define CONFIG_SHOWWAVES_FILTER 0 -#define CONFIG_SHOWWAVESPIC_FILTER 0 -#define CONFIG_SPECTRUMSYNTH_FILTER 0 -#define CONFIG_AMOVIE_FILTER 0 -#define CONFIG_MOVIE_FILTER 0 -#define CONFIG_AFIFO_FILTER 0 -#define CONFIG_FIFO_FILTER 0 -#define CONFIG_AA_DEMUXER 1 -#define CONFIG_AAC_DEMUXER 1 -#define CONFIG_AC3_DEMUXER 1 -#define CONFIG_ACM_DEMUXER 1 -#define CONFIG_ACT_DEMUXER 1 -#define CONFIG_ADF_DEMUXER 1 -#define CONFIG_ADP_DEMUXER 1 -#define CONFIG_ADS_DEMUXER 1 -#define CONFIG_ADX_DEMUXER 1 -#define CONFIG_AEA_DEMUXER 1 -#define CONFIG_AFC_DEMUXER 1 -#define CONFIG_AIFF_DEMUXER 1 -#define CONFIG_AIX_DEMUXER 1 -#define CONFIG_AMR_DEMUXER 1 -#define CONFIG_AMRNB_DEMUXER 1 -#define CONFIG_AMRWB_DEMUXER 1 -#define CONFIG_ANM_DEMUXER 1 -#define CONFIG_APC_DEMUXER 1 -#define CONFIG_APE_DEMUXER 1 -#define CONFIG_APNG_DEMUXER 1 -#define CONFIG_APTX_DEMUXER 1 -#define CONFIG_APTX_HD_DEMUXER 1 -#define CONFIG_AQTITLE_DEMUXER 1 -#define CONFIG_ASF_DEMUXER 1 -#define CONFIG_ASF_O_DEMUXER 1 -#define CONFIG_ASS_DEMUXER 1 -#define CONFIG_AST_DEMUXER 1 -#define CONFIG_AU_DEMUXER 1 -#define CONFIG_AVI_DEMUXER 1 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVR_DEMUXER 1 -#define CONFIG_AVS_DEMUXER 1 -#define CONFIG_AVS2_DEMUXER 1 -#define CONFIG_BETHSOFTVID_DEMUXER 1 -#define CONFIG_BFI_DEMUXER 1 -#define CONFIG_BINTEXT_DEMUXER 1 -#define CONFIG_BINK_DEMUXER 1 -#define CONFIG_BIT_DEMUXER 1 -#define CONFIG_BMV_DEMUXER 1 -#define CONFIG_BFSTM_DEMUXER 1 -#define CONFIG_BRSTM_DEMUXER 1 -#define CONFIG_BOA_DEMUXER 1 -#define CONFIG_C93_DEMUXER 1 -#define CONFIG_CAF_DEMUXER 1 -#define CONFIG_CAVSVIDEO_DEMUXER 1 -#define CONFIG_CDG_DEMUXER 1 -#define CONFIG_CDXL_DEMUXER 1 -#define CONFIG_CINE_DEMUXER 1 -#define CONFIG_CODEC2_DEMUXER 1 -#define CONFIG_CODEC2RAW_DEMUXER 1 -#define CONFIG_CONCAT_DEMUXER 1 -#define CONFIG_DASH_DEMUXER 0 -#define CONFIG_DATA_DEMUXER 1 -#define CONFIG_DAUD_DEMUXER 1 -#define CONFIG_DCSTR_DEMUXER 1 -#define CONFIG_DFA_DEMUXER 1 -#define CONFIG_DIRAC_DEMUXER 1 -#define CONFIG_DNXHD_DEMUXER 1 -#define CONFIG_DSF_DEMUXER 1 -#define CONFIG_DSICIN_DEMUXER 1 -#define CONFIG_DSS_DEMUXER 1 -#define CONFIG_DTS_DEMUXER 1 -#define CONFIG_DTSHD_DEMUXER 1 -#define CONFIG_DV_DEMUXER 1 -#define CONFIG_DVBSUB_DEMUXER 1 -#define CONFIG_DVBTXT_DEMUXER 1 -#define CONFIG_DXA_DEMUXER 1 -#define CONFIG_EA_DEMUXER 1 -#define CONFIG_EA_CDATA_DEMUXER 1 -#define CONFIG_EAC3_DEMUXER 1 -#define CONFIG_EPAF_DEMUXER 1 -#define CONFIG_FFMETADATA_DEMUXER 1 -#define CONFIG_FILMSTRIP_DEMUXER 1 -#define CONFIG_FITS_DEMUXER 1 -#define CONFIG_FLAC_DEMUXER 1 -#define CONFIG_FLIC_DEMUXER 1 -#define CONFIG_FLV_DEMUXER 1 -#define CONFIG_LIVE_FLV_DEMUXER 1 -#define CONFIG_FOURXM_DEMUXER 1 -#define CONFIG_FRM_DEMUXER 1 -#define CONFIG_FSB_DEMUXER 1 -#define CONFIG_G722_DEMUXER 1 -#define CONFIG_G723_1_DEMUXER 1 -#define CONFIG_G726_DEMUXER 1 -#define CONFIG_G726LE_DEMUXER 1 -#define CONFIG_G729_DEMUXER 1 -#define CONFIG_GDV_DEMUXER 1 -#define CONFIG_GENH_DEMUXER 1 -#define CONFIG_GIF_DEMUXER 1 -#define CONFIG_GSM_DEMUXER 1 -#define CONFIG_GXF_DEMUXER 1 -#define CONFIG_H261_DEMUXER 1 -#define CONFIG_H263_DEMUXER 1 -#define CONFIG_H264_DEMUXER 1 -#define CONFIG_HEVC_DEMUXER 1 -#define CONFIG_HLS_DEMUXER 1 -#define CONFIG_HNM_DEMUXER 1 -#define CONFIG_ICO_DEMUXER 1 -#define CONFIG_IDCIN_DEMUXER 1 -#define CONFIG_IDF_DEMUXER 1 -#define CONFIG_IFF_DEMUXER 1 -#define CONFIG_ILBC_DEMUXER 1 -#define CONFIG_IMAGE2_DEMUXER 1 -#define CONFIG_IMAGE2PIPE_DEMUXER 1 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -#define CONFIG_INGENIENT_DEMUXER 1 -#define CONFIG_IPMOVIE_DEMUXER 1 -#define CONFIG_IRCAM_DEMUXER 1 -#define CONFIG_ISS_DEMUXER 1 -#define CONFIG_IV8_DEMUXER 1 -#define CONFIG_IVF_DEMUXER 1 -#define CONFIG_IVR_DEMUXER 1 -#define CONFIG_JACOSUB_DEMUXER 1 -#define CONFIG_JV_DEMUXER 1 -#define CONFIG_LMLM4_DEMUXER 1 -#define CONFIG_LOAS_DEMUXER 1 -#define CONFIG_LRC_DEMUXER 1 -#define CONFIG_LVF_DEMUXER 1 -#define CONFIG_LXF_DEMUXER 1 -#define CONFIG_M4V_DEMUXER 1 -#define CONFIG_MATROSKA_DEMUXER 1 -#define CONFIG_MGSTS_DEMUXER 1 -#define CONFIG_MICRODVD_DEMUXER 1 -#define CONFIG_MJPEG_DEMUXER 1 -#define CONFIG_MJPEG_2000_DEMUXER 1 -#define CONFIG_MLP_DEMUXER 1 -#define CONFIG_MLV_DEMUXER 1 -#define CONFIG_MM_DEMUXER 1 -#define CONFIG_MMF_DEMUXER 1 -#define CONFIG_MOV_DEMUXER 1 -#define CONFIG_MP3_DEMUXER 1 -#define CONFIG_MPC_DEMUXER 1 -#define CONFIG_MPC8_DEMUXER 1 -#define CONFIG_MPEGPS_DEMUXER 1 -#define CONFIG_MPEGTS_DEMUXER 1 -#define CONFIG_MPEGTSRAW_DEMUXER 1 -#define CONFIG_MPEGVIDEO_DEMUXER 1 -#define CONFIG_MPJPEG_DEMUXER 1 -#define CONFIG_MPL2_DEMUXER 1 -#define CONFIG_MPSUB_DEMUXER 1 -#define CONFIG_MSF_DEMUXER 1 -#define CONFIG_MSNWC_TCP_DEMUXER 1 -#define CONFIG_MTAF_DEMUXER 1 -#define CONFIG_MTV_DEMUXER 1 -#define CONFIG_MUSX_DEMUXER 1 -#define CONFIG_MV_DEMUXER 1 -#define CONFIG_MVI_DEMUXER 1 -#define CONFIG_MXF_DEMUXER 1 -#define CONFIG_MXG_DEMUXER 1 -#define CONFIG_NC_DEMUXER 1 -#define CONFIG_NISTSPHERE_DEMUXER 1 -#define CONFIG_NSP_DEMUXER 1 -#define CONFIG_NSV_DEMUXER 1 -#define CONFIG_NUT_DEMUXER 1 -#define CONFIG_NUV_DEMUXER 1 -#define CONFIG_OGG_DEMUXER 1 -#define CONFIG_OMA_DEMUXER 1 -#define CONFIG_PAF_DEMUXER 1 -#define CONFIG_PCM_ALAW_DEMUXER 1 -#define CONFIG_PCM_MULAW_DEMUXER 1 -#define CONFIG_PCM_VIDC_DEMUXER 1 -#define CONFIG_PCM_F64BE_DEMUXER 1 -#define CONFIG_PCM_F64LE_DEMUXER 1 -#define CONFIG_PCM_F32BE_DEMUXER 1 -#define CONFIG_PCM_F32LE_DEMUXER 1 -#define CONFIG_PCM_S32BE_DEMUXER 1 -#define CONFIG_PCM_S32LE_DEMUXER 1 -#define CONFIG_PCM_S24BE_DEMUXER 1 -#define CONFIG_PCM_S24LE_DEMUXER 1 -#define CONFIG_PCM_S16BE_DEMUXER 1 -#define CONFIG_PCM_S16LE_DEMUXER 1 -#define CONFIG_PCM_S8_DEMUXER 1 -#define CONFIG_PCM_U32BE_DEMUXER 1 -#define CONFIG_PCM_U32LE_DEMUXER 1 -#define CONFIG_PCM_U24BE_DEMUXER 1 -#define CONFIG_PCM_U24LE_DEMUXER 1 -#define CONFIG_PCM_U16BE_DEMUXER 1 -#define CONFIG_PCM_U16LE_DEMUXER 1 -#define CONFIG_PCM_U8_DEMUXER 1 -#define CONFIG_PJS_DEMUXER 1 -#define CONFIG_PMP_DEMUXER 1 -#define CONFIG_PVA_DEMUXER 1 -#define CONFIG_PVF_DEMUXER 1 -#define CONFIG_QCP_DEMUXER 1 -#define CONFIG_R3D_DEMUXER 1 -#define CONFIG_RAWVIDEO_DEMUXER 1 -#define CONFIG_REALTEXT_DEMUXER 1 -#define CONFIG_REDSPARK_DEMUXER 1 -#define CONFIG_RL2_DEMUXER 1 -#define CONFIG_RM_DEMUXER 1 -#define CONFIG_ROQ_DEMUXER 1 -#define CONFIG_RPL_DEMUXER 1 -#define CONFIG_RSD_DEMUXER 1 -#define CONFIG_RSO_DEMUXER 1 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_S337M_DEMUXER 1 -#define CONFIG_SAMI_DEMUXER 1 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SBC_DEMUXER 1 -#define CONFIG_SBG_DEMUXER 1 -#define CONFIG_SCC_DEMUXER 1 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 1 -#define CONFIG_SDS_DEMUXER 1 -#define CONFIG_SDX_DEMUXER 1 -#define CONFIG_SEGAFILM_DEMUXER 1 -#define CONFIG_SER_DEMUXER 1 -#define CONFIG_SHORTEN_DEMUXER 1 -#define CONFIG_SIFF_DEMUXER 1 -#define CONFIG_SLN_DEMUXER 1 -#define CONFIG_SMACKER_DEMUXER 1 -#define CONFIG_SMJPEG_DEMUXER 1 -#define CONFIG_SMUSH_DEMUXER 1 -#define CONFIG_SOL_DEMUXER 1 -#define CONFIG_SOX_DEMUXER 1 -#define CONFIG_SPDIF_DEMUXER 1 -#define CONFIG_SRT_DEMUXER 1 -#define CONFIG_STR_DEMUXER 1 -#define CONFIG_STL_DEMUXER 1 -#define CONFIG_SUBVIEWER1_DEMUXER 1 -#define CONFIG_SUBVIEWER_DEMUXER 1 -#define CONFIG_SUP_DEMUXER 1 -#define CONFIG_SVAG_DEMUXER 1 -#define CONFIG_SWF_DEMUXER 1 -#define CONFIG_TAK_DEMUXER 1 -#define CONFIG_TEDCAPTIONS_DEMUXER 1 -#define CONFIG_THP_DEMUXER 1 -#define CONFIG_THREEDOSTR_DEMUXER 1 -#define CONFIG_TIERTEXSEQ_DEMUXER 1 -#define CONFIG_TMV_DEMUXER 1 -#define CONFIG_TRUEHD_DEMUXER 1 -#define CONFIG_TTA_DEMUXER 1 -#define CONFIG_TXD_DEMUXER 1 -#define CONFIG_TTY_DEMUXER 1 -#define CONFIG_TY_DEMUXER 1 -#define CONFIG_V210_DEMUXER 1 -#define CONFIG_V210X_DEMUXER 1 -#define CONFIG_VAG_DEMUXER 1 -#define CONFIG_VC1_DEMUXER 1 -#define CONFIG_VC1T_DEMUXER 1 -#define CONFIG_VIVO_DEMUXER 1 -#define CONFIG_VMD_DEMUXER 1 -#define CONFIG_VOBSUB_DEMUXER 1 -#define CONFIG_VOC_DEMUXER 1 -#define CONFIG_VPK_DEMUXER 1 -#define CONFIG_VPLAYER_DEMUXER 1 -#define CONFIG_VQF_DEMUXER 1 -#define CONFIG_W64_DEMUXER 1 -#define CONFIG_WAV_DEMUXER 1 -#define CONFIG_WC3_DEMUXER 1 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -#define CONFIG_WEBVTT_DEMUXER 1 -#define CONFIG_WSAUD_DEMUXER 1 -#define CONFIG_WSD_DEMUXER 1 -#define CONFIG_WSVQA_DEMUXER 1 -#define CONFIG_WTV_DEMUXER 1 -#define CONFIG_WVE_DEMUXER 1 -#define CONFIG_WV_DEMUXER 1 -#define CONFIG_XA_DEMUXER 1 -#define CONFIG_XBIN_DEMUXER 1 -#define CONFIG_XMV_DEMUXER 1 -#define CONFIG_XVAG_DEMUXER 1 -#define CONFIG_XWMA_DEMUXER 1 -#define CONFIG_YOP_DEMUXER 1 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBOPENMPT_DEMUXER 0 -#define CONFIG_VAPOURSYNTH_DEMUXER 0 -#define CONFIG_A64_MUXER 0 -#define CONFIG_AC3_MUXER 0 -#define CONFIG_ADTS_MUXER 0 -#define CONFIG_ADX_MUXER 0 -#define CONFIG_AIFF_MUXER 0 -#define CONFIG_AMR_MUXER 0 -#define CONFIG_APNG_MUXER 0 -#define CONFIG_APTX_MUXER 0 -#define CONFIG_APTX_HD_MUXER 0 -#define CONFIG_ASF_MUXER 0 -#define CONFIG_ASS_MUXER 0 -#define CONFIG_AST_MUXER 0 -#define CONFIG_ASF_STREAM_MUXER 0 -#define CONFIG_AU_MUXER 0 -#define CONFIG_AVI_MUXER 0 -#define CONFIG_AVM2_MUXER 0 -#define CONFIG_AVS2_MUXER 0 -#define CONFIG_BIT_MUXER 0 -#define CONFIG_CAF_MUXER 0 -#define CONFIG_CAVSVIDEO_MUXER 0 -#define CONFIG_CODEC2_MUXER 0 -#define CONFIG_CODEC2RAW_MUXER 0 -#define CONFIG_CRC_MUXER 0 -#define CONFIG_DASH_MUXER 0 -#define CONFIG_DATA_MUXER 0 -#define CONFIG_DAUD_MUXER 0 -#define CONFIG_DIRAC_MUXER 0 -#define CONFIG_DNXHD_MUXER 0 -#define CONFIG_DTS_MUXER 0 -#define CONFIG_DV_MUXER 0 -#define CONFIG_EAC3_MUXER 0 -#define CONFIG_F4V_MUXER 0 -#define CONFIG_FFMETADATA_MUXER 0 -#define CONFIG_FIFO_MUXER 0 -#define CONFIG_FIFO_TEST_MUXER 0 -#define CONFIG_FILMSTRIP_MUXER 0 -#define CONFIG_FITS_MUXER 0 -#define CONFIG_FLAC_MUXER 0 -#define CONFIG_FLV_MUXER 0 -#define CONFIG_FRAMECRC_MUXER 0 -#define CONFIG_FRAMEHASH_MUXER 0 -#define CONFIG_FRAMEMD5_MUXER 0 -#define CONFIG_G722_MUXER 0 -#define CONFIG_G723_1_MUXER 0 -#define CONFIG_G726_MUXER 0 -#define CONFIG_G726LE_MUXER 0 -#define CONFIG_GIF_MUXER 0 -#define CONFIG_GSM_MUXER 0 -#define CONFIG_GXF_MUXER 0 -#define CONFIG_H261_MUXER 0 -#define CONFIG_H263_MUXER 0 -#define CONFIG_H264_MUXER 0 -#define CONFIG_HASH_MUXER 0 -#define CONFIG_HDS_MUXER 0 -#define CONFIG_HEVC_MUXER 0 -#define CONFIG_HLS_MUXER 0 -#define CONFIG_ICO_MUXER 0 -#define CONFIG_ILBC_MUXER 0 -#define CONFIG_IMAGE2_MUXER 0 -#define CONFIG_IMAGE2PIPE_MUXER 0 -#define CONFIG_IPOD_MUXER 0 -#define CONFIG_IRCAM_MUXER 0 -#define CONFIG_ISMV_MUXER 0 -#define CONFIG_IVF_MUXER 0 -#define CONFIG_JACOSUB_MUXER 0 -#define CONFIG_LATM_MUXER 0 -#define CONFIG_LRC_MUXER 0 -#define CONFIG_M4V_MUXER 0 -#define CONFIG_MD5_MUXER 0 -#define CONFIG_MATROSKA_MUXER 0 -#define CONFIG_MATROSKA_AUDIO_MUXER 0 -#define CONFIG_MICRODVD_MUXER 0 -#define CONFIG_MJPEG_MUXER 0 -#define CONFIG_MLP_MUXER 0 -#define CONFIG_MMF_MUXER 0 -#define CONFIG_MOV_MUXER 0 -#define CONFIG_MP2_MUXER 0 -#define CONFIG_MP3_MUXER 0 -#define CONFIG_MP4_MUXER 0 -#define CONFIG_MPEG1SYSTEM_MUXER 0 -#define CONFIG_MPEG1VCD_MUXER 0 -#define CONFIG_MPEG1VIDEO_MUXER 0 -#define CONFIG_MPEG2DVD_MUXER 0 -#define CONFIG_MPEG2SVCD_MUXER 0 -#define CONFIG_MPEG2VIDEO_MUXER 0 -#define CONFIG_MPEG2VOB_MUXER 0 -#define CONFIG_MPEGTS_MUXER 0 -#define CONFIG_MPJPEG_MUXER 0 -#define CONFIG_MXF_MUXER 0 -#define CONFIG_MXF_D10_MUXER 0 -#define CONFIG_MXF_OPATOM_MUXER 0 -#define CONFIG_NULL_MUXER 0 -#define CONFIG_NUT_MUXER 0 -#define CONFIG_OGA_MUXER 0 -#define CONFIG_OGG_MUXER 0 -#define CONFIG_OGV_MUXER 0 -#define CONFIG_OMA_MUXER 0 -#define CONFIG_OPUS_MUXER 0 -#define CONFIG_PCM_ALAW_MUXER 0 -#define CONFIG_PCM_MULAW_MUXER 0 -#define CONFIG_PCM_VIDC_MUXER 0 -#define CONFIG_PCM_F64BE_MUXER 0 -#define CONFIG_PCM_F64LE_MUXER 0 -#define CONFIG_PCM_F32BE_MUXER 0 -#define CONFIG_PCM_F32LE_MUXER 0 -#define CONFIG_PCM_S32BE_MUXER 0 -#define CONFIG_PCM_S32LE_MUXER 0 -#define CONFIG_PCM_S24BE_MUXER 0 -#define CONFIG_PCM_S24LE_MUXER 0 -#define CONFIG_PCM_S16BE_MUXER 0 -#define CONFIG_PCM_S16LE_MUXER 0 -#define CONFIG_PCM_S8_MUXER 0 -#define CONFIG_PCM_U32BE_MUXER 0 -#define CONFIG_PCM_U32LE_MUXER 0 -#define CONFIG_PCM_U24BE_MUXER 0 -#define CONFIG_PCM_U24LE_MUXER 0 -#define CONFIG_PCM_U16BE_MUXER 0 -#define CONFIG_PCM_U16LE_MUXER 0 -#define CONFIG_PCM_U8_MUXER 0 -#define CONFIG_PSP_MUXER 0 -#define CONFIG_RAWVIDEO_MUXER 0 -#define CONFIG_RM_MUXER 0 -#define CONFIG_ROQ_MUXER 0 -#define CONFIG_RSO_MUXER 0 -#define CONFIG_RTP_MUXER 0 -#define CONFIG_RTP_MPEGTS_MUXER 0 -#define CONFIG_RTSP_MUXER 0 -#define CONFIG_SAP_MUXER 0 -#define CONFIG_SBC_MUXER 0 -#define CONFIG_SCC_MUXER 0 -#define CONFIG_SEGAFILM_MUXER 0 -#define CONFIG_SEGMENT_MUXER 0 -#define CONFIG_STREAM_SEGMENT_MUXER 0 -#define CONFIG_SINGLEJPEG_MUXER 0 -#define CONFIG_SMJPEG_MUXER 0 -#define CONFIG_SMOOTHSTREAMING_MUXER 0 -#define CONFIG_SOX_MUXER 0 -#define CONFIG_SPX_MUXER 0 -#define CONFIG_SPDIF_MUXER 0 -#define CONFIG_SRT_MUXER 0 -#define CONFIG_SUP_MUXER 0 -#define CONFIG_SWF_MUXER 0 -#define CONFIG_TEE_MUXER 0 -#define CONFIG_TG2_MUXER 0 -#define CONFIG_TGP_MUXER 0 -#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -#define CONFIG_TRUEHD_MUXER 0 -#define CONFIG_TTA_MUXER 0 -#define CONFIG_UNCODEDFRAMECRC_MUXER 0 -#define CONFIG_VC1_MUXER 0 -#define CONFIG_VC1T_MUXER 0 -#define CONFIG_VOC_MUXER 0 -#define CONFIG_W64_MUXER 0 -#define CONFIG_WAV_MUXER 0 -#define CONFIG_WEBM_MUXER 0 -#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -#define CONFIG_WEBM_CHUNK_MUXER 0 -#define CONFIG_WEBP_MUXER 0 -#define CONFIG_WEBVTT_MUXER 0 -#define CONFIG_WTV_MUXER 0 -#define CONFIG_WV_MUXER 0 -#define CONFIG_YUV4MPEGPIPE_MUXER 0 -#define CONFIG_CHROMAPRINT_MUXER 0 -#define CONFIG_ASYNC_PROTOCOL 1 -#define CONFIG_BLURAY_PROTOCOL 0 -#define CONFIG_CACHE_PROTOCOL 1 -#define CONFIG_CONCAT_PROTOCOL 1 -#define CONFIG_CRYPTO_PROTOCOL 1 -#define CONFIG_DATA_PROTOCOL 1 -#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -#define CONFIG_FFRTMPHTTP_PROTOCOL 0 -#define CONFIG_FILE_PROTOCOL 1 -#define CONFIG_FTP_PROTOCOL 0 -#define CONFIG_GOPHER_PROTOCOL 0 -#define CONFIG_HLS_PROTOCOL 1 -#define CONFIG_HTTP_PROTOCOL 0 -#define CONFIG_HTTPPROXY_PROTOCOL 0 -#define CONFIG_HTTPS_PROTOCOL 0 -#define CONFIG_ICECAST_PROTOCOL 0 -#define CONFIG_MMSH_PROTOCOL 0 -#define CONFIG_MMST_PROTOCOL 0 -#define CONFIG_MD5_PROTOCOL 1 -#define CONFIG_PIPE_PROTOCOL 1 -#define CONFIG_PROMPEG_PROTOCOL 1 -#define CONFIG_RTMP_PROTOCOL 0 -#define CONFIG_RTMPE_PROTOCOL 0 -#define CONFIG_RTMPS_PROTOCOL 0 -#define CONFIG_RTMPT_PROTOCOL 0 -#define CONFIG_RTMPTE_PROTOCOL 0 -#define CONFIG_RTMPTS_PROTOCOL 0 -#define CONFIG_RTP_PROTOCOL 0 -#define CONFIG_SCTP_PROTOCOL 0 -#define CONFIG_SRTP_PROTOCOL 0 -#define CONFIG_SUBFILE_PROTOCOL 1 -#define CONFIG_TEE_PROTOCOL 1 -#define CONFIG_TCP_PROTOCOL 0 -#define CONFIG_TLS_PROTOCOL 0 -#define CONFIG_UDP_PROTOCOL 0 -#define CONFIG_UDPLITE_PROTOCOL 0 -#define CONFIG_UNIX_PROTOCOL 0 -#define CONFIG_LIBRTMP_PROTOCOL 0 -#define CONFIG_LIBRTMPE_PROTOCOL 0 -#define CONFIG_LIBRTMPS_PROTOCOL 0 -#define CONFIG_LIBRTMPT_PROTOCOL 0 -#define CONFIG_LIBRTMPTE_PROTOCOL 0 -#define CONFIG_LIBSRT_PROTOCOL 0 -#define CONFIG_LIBSSH_PROTOCOL 0 -#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 -#endif /* FFMPEG_CONFIG_H */ diff --git a/build/ffmpeg/config-x86.asm b/build/ffmpeg/config-x86.asm deleted file mode 100755 index 5475555d4..000000000 --- a/build/ffmpeg/config-x86.asm +++ /dev/null @@ -1,2460 +0,0 @@ -; Automatically generated by configure - do not modify! -%define ARCH_AARCH64 0 -%define ARCH_ALPHA 0 -%define ARCH_ARM 0 -%define ARCH_AVR32 0 -%define ARCH_AVR32_AP 0 -%define ARCH_AVR32_UC 0 -%define ARCH_BFIN 0 -%define ARCH_IA64 0 -%define ARCH_M68K 0 -%define ARCH_MIPS 0 -%define ARCH_MIPS64 0 -%define ARCH_PARISC 0 -%define ARCH_PPC 0 -%define ARCH_PPC64 0 -%define ARCH_S390 0 -%define ARCH_SH4 0 -%define ARCH_SPARC 0 -%define ARCH_SPARC64 0 -%define ARCH_TILEGX 0 -%define ARCH_TILEPRO 0 -%define ARCH_TOMI 0 -%define ARCH_X86 1 -%define ARCH_X86_32 1 -%define ARCH_X86_64 0 -%define HAVE_ARMV5TE 0 -%define HAVE_ARMV6 0 -%define HAVE_ARMV6T2 0 -%define HAVE_ARMV8 0 -%define HAVE_NEON 0 -%define HAVE_VFP 0 -%define HAVE_VFPV3 0 -%define HAVE_SETEND 0 -%define HAVE_ALTIVEC 0 -%define HAVE_DCBZL 0 -%define HAVE_LDBRX 0 -%define HAVE_POWER8 0 -%define HAVE_PPC4XX 0 -%define HAVE_VSX 0 -%define HAVE_AESNI 1 -%define HAVE_AMD3DNOW 1 -%define HAVE_AMD3DNOWEXT 1 -%define HAVE_AVX 1 -%define HAVE_AVX2 1 -%define HAVE_AVX512 1 -%define HAVE_FMA3 1 -%define HAVE_FMA4 1 -%define HAVE_MMX 1 -%define HAVE_MMXEXT 1 -%define HAVE_SSE 1 -%define HAVE_SSE2 1 -%define HAVE_SSE3 1 -%define HAVE_SSE4 1 -%define HAVE_SSE42 1 -%define HAVE_SSSE3 1 -%define HAVE_XOP 1 -%define HAVE_CPUNOP 1 -%define HAVE_I686 1 -%define HAVE_MIPSFPU 0 -%define HAVE_MIPS32R2 0 -%define HAVE_MIPS32R5 0 -%define HAVE_MIPS64R2 0 -%define HAVE_MIPS32R6 0 -%define HAVE_MIPS64R6 0 -%define HAVE_MIPSDSP 0 -%define HAVE_MIPSDSPR2 0 -%define HAVE_MSA 0 -%define HAVE_LOONGSON2 0 -%define HAVE_LOONGSON3 0 -%define HAVE_MMI 0 -%define HAVE_ARMV5TE_EXTERNAL 0 -%define HAVE_ARMV6_EXTERNAL 0 -%define HAVE_ARMV6T2_EXTERNAL 0 -%define HAVE_ARMV8_EXTERNAL 0 -%define HAVE_NEON_EXTERNAL 0 -%define HAVE_VFP_EXTERNAL 0 -%define HAVE_VFPV3_EXTERNAL 0 -%define HAVE_SETEND_EXTERNAL 0 -%define HAVE_ALTIVEC_EXTERNAL 0 -%define HAVE_DCBZL_EXTERNAL 0 -%define HAVE_LDBRX_EXTERNAL 0 -%define HAVE_POWER8_EXTERNAL 0 -%define HAVE_PPC4XX_EXTERNAL 0 -%define HAVE_VSX_EXTERNAL 0 -%define HAVE_AESNI_EXTERNAL 1 -%define HAVE_AMD3DNOW_EXTERNAL 1 -%define HAVE_AMD3DNOWEXT_EXTERNAL 1 -%define HAVE_AVX_EXTERNAL 1 -%define HAVE_AVX2_EXTERNAL 0 -%define HAVE_AVX512_EXTERNAL 0 -%define HAVE_FMA3_EXTERNAL 1 -%define HAVE_FMA4_EXTERNAL 1 -%define HAVE_MMX_EXTERNAL 1 -%define HAVE_MMXEXT_EXTERNAL 1 -%define HAVE_SSE_EXTERNAL 1 -%define HAVE_SSE2_EXTERNAL 1 -%define HAVE_SSE3_EXTERNAL 1 -%define HAVE_SSE4_EXTERNAL 1 -%define HAVE_SSE42_EXTERNAL 1 -%define HAVE_SSSE3_EXTERNAL 1 -%define HAVE_XOP_EXTERNAL 1 -%define HAVE_CPUNOP_EXTERNAL 0 -%define HAVE_I686_EXTERNAL 0 -%define HAVE_MIPSFPU_EXTERNAL 0 -%define HAVE_MIPS32R2_EXTERNAL 0 -%define HAVE_MIPS32R5_EXTERNAL 0 -%define HAVE_MIPS64R2_EXTERNAL 0 -%define HAVE_MIPS32R6_EXTERNAL 0 -%define HAVE_MIPS64R6_EXTERNAL 0 -%define HAVE_MIPSDSP_EXTERNAL 0 -%define HAVE_MIPSDSPR2_EXTERNAL 0 -%define HAVE_MSA_EXTERNAL 0 -%define HAVE_LOONGSON2_EXTERNAL 0 -%define HAVE_LOONGSON3_EXTERNAL 0 -%define HAVE_MMI_EXTERNAL 0 -%define HAVE_ARMV5TE_INLINE 0 -%define HAVE_ARMV6_INLINE 0 -%define HAVE_ARMV6T2_INLINE 0 -%define HAVE_ARMV8_INLINE 0 -%define HAVE_NEON_INLINE 0 -%define HAVE_VFP_INLINE 0 -%define HAVE_VFPV3_INLINE 0 -%define HAVE_SETEND_INLINE 0 -%define HAVE_ALTIVEC_INLINE 0 -%define HAVE_DCBZL_INLINE 0 -%define HAVE_LDBRX_INLINE 0 -%define HAVE_POWER8_INLINE 0 -%define HAVE_PPC4XX_INLINE 0 -%define HAVE_VSX_INLINE 0 -%define HAVE_AESNI_INLINE 0 -%define HAVE_AMD3DNOW_INLINE 0 -%define HAVE_AMD3DNOWEXT_INLINE 0 -%define HAVE_AVX_INLINE 0 -%define HAVE_AVX2_INLINE 0 -%define HAVE_AVX512_INLINE 0 -%define HAVE_FMA3_INLINE 0 -%define HAVE_FMA4_INLINE 0 -%define HAVE_MMX_INLINE 0 -%define HAVE_MMXEXT_INLINE 0 -%define HAVE_SSE_INLINE 0 -%define HAVE_SSE2_INLINE 0 -%define HAVE_SSE3_INLINE 0 -%define HAVE_SSE4_INLINE 0 -%define HAVE_SSE42_INLINE 0 -%define HAVE_SSSE3_INLINE 0 -%define HAVE_XOP_INLINE 0 -%define HAVE_CPUNOP_INLINE 0 -%define HAVE_I686_INLINE 0 -%define HAVE_MIPSFPU_INLINE 0 -%define HAVE_MIPS32R2_INLINE 0 -%define HAVE_MIPS32R5_INLINE 0 -%define HAVE_MIPS64R2_INLINE 0 -%define HAVE_MIPS32R6_INLINE 0 -%define HAVE_MIPS64R6_INLINE 0 -%define HAVE_MIPSDSP_INLINE 0 -%define HAVE_MIPSDSPR2_INLINE 0 -%define HAVE_MSA_INLINE 0 -%define HAVE_LOONGSON2_INLINE 0 -%define HAVE_LOONGSON3_INLINE 0 -%define HAVE_MMI_INLINE 0 -%define HAVE_ALIGNED_STACK 0 -%define HAVE_FAST_64BIT 0 -%define HAVE_FAST_CLZ 1 -%define HAVE_FAST_CMOV 0 -%define HAVE_LOCAL_ALIGNED 1 -%define HAVE_SIMD_ALIGN_16 1 -%define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 -%define HAVE_ATOMIC_CAS_PTR 0 -%define HAVE_MACHINE_RW_BARRIER 0 -%define HAVE_MEMORYBARRIER 1 -%define HAVE_MM_EMPTY 1 -%define HAVE_RDTSC 1 -%define HAVE_SEM_TIMEDWAIT 0 -%define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 -%define HAVE_CABS 0 -%define HAVE_CEXP 0 -%define HAVE_INLINE_ASM 0 -%define HAVE_SYMVER 0 -%define HAVE_X86ASM 1 -%define HAVE_BIGENDIAN 0 -%define HAVE_FAST_UNALIGNED 1 -%define HAVE_ARPA_INET_H 0 -%define HAVE_ASM_TYPES_H 0 -%define HAVE_CDIO_PARANOIA_H 0 -%define HAVE_CDIO_PARANOIA_PARANOIA_H 0 -%define HAVE_CUDA_H 0 -%define HAVE_DISPATCH_DISPATCH_H 0 -%define HAVE_DEV_BKTR_IOCTL_BT848_H 0 -%define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 -%define HAVE_DEV_IC_BT8XX_H 0 -%define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 -%define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 -%define HAVE_DIRECT_H 1 -%define HAVE_DIRENT_H 0 -%define HAVE_DXGIDEBUG_H 1 -%define HAVE_DXVA_H 1 -%define HAVE_ES2_GL_H 0 -%define HAVE_GSM_H 0 -%define HAVE_IO_H 1 -%define HAVE_LINUX_PERF_EVENT_H 0 -%define HAVE_MACHINE_IOCTL_BT848_H 0 -%define HAVE_MACHINE_IOCTL_METEOR_H 0 -%define HAVE_MALLOC_H 1 -%define HAVE_OPENCV2_CORE_CORE_C_H 0 -%define HAVE_OPENGL_GL3_H 0 -%define HAVE_POLL_H 0 -%define HAVE_SYS_PARAM_H 0 -%define HAVE_SYS_RESOURCE_H 0 -%define HAVE_SYS_SELECT_H 0 -%define HAVE_SYS_SOUNDCARD_H 0 -%define HAVE_SYS_TIME_H 0 -%define HAVE_SYS_UN_H 0 -%define HAVE_SYS_VIDEOIO_H 0 -%define HAVE_TERMIOS_H 0 -%define HAVE_UDPLITE_H 0 -%define HAVE_UNISTD_H 0 -%define HAVE_VALGRIND_VALGRIND_H 0 -%define HAVE_WINDOWS_H 1 -%define HAVE_WINSOCK2_H 0 -%define HAVE_INTRINSICS_NEON 0 -%define HAVE_ATANF 1 -%define HAVE_ATAN2F 1 -%define HAVE_CBRT 1 -%define HAVE_CBRTF 1 -%define HAVE_COPYSIGN 1 -%define HAVE_COSF 1 -%define HAVE_ERF 1 -%define HAVE_EXP2 1 -%define HAVE_EXP2F 1 -%define HAVE_EXPF 1 -%define HAVE_HYPOT 1 -%define HAVE_ISFINITE 1 -%define HAVE_ISINF 1 -%define HAVE_ISNAN 1 -%define HAVE_LDEXPF 1 -%define HAVE_LLRINT 1 -%define HAVE_LLRINTF 1 -%define HAVE_LOG2 1 -%define HAVE_LOG2F 1 -%define HAVE_LOG10F 1 -%define HAVE_LRINT 1 -%define HAVE_LRINTF 1 -%define HAVE_POWF 1 -%define HAVE_RINT 1 -%define HAVE_ROUND 1 -%define HAVE_ROUNDF 1 -%define HAVE_SINF 1 -%define HAVE_TRUNC 1 -%define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 -%define HAVE_ACCESS 1 -%define HAVE_ALIGNED_MALLOC 1 -%define HAVE_ARC4RANDOM 0 -%define HAVE_CLOCK_GETTIME 0 -%define HAVE_CLOSESOCKET 0 -%define HAVE_COMMANDLINETOARGVW 1 -%define HAVE_FCNTL 0 -%define HAVE_GETADDRINFO 0 -%define HAVE_GETHRTIME 0 -%define HAVE_GETOPT 0 -%define HAVE_GETPROCESSAFFINITYMASK 1 -%define HAVE_GETPROCESSMEMORYINFO 1 -%define HAVE_GETPROCESSTIMES 1 -%define HAVE_GETRUSAGE 0 -%define HAVE_GETSYSTEMTIMEASFILETIME 1 -%define HAVE_GETTIMEOFDAY 0 -%define HAVE_GLOB 0 -%define HAVE_GLXGETPROCADDRESS 0 -%define HAVE_GMTIME_R 0 -%define HAVE_INET_ATON 0 -%define HAVE_ISATTY 1 -%define HAVE_KBHIT 1 -%define HAVE_LOCALTIME_R 0 -%define HAVE_LSTAT 0 -%define HAVE_LZO1X_999_COMPRESS 0 -%define HAVE_MACH_ABSOLUTE_TIME 0 -%define HAVE_MAPVIEWOFFILE 1 -%define HAVE_MEMALIGN 0 -%define HAVE_MKSTEMP 0 -%define HAVE_MMAP 0 -%define HAVE_MPROTECT 0 -%define HAVE_NANOSLEEP 0 -%define HAVE_PEEKNAMEDPIPE 1 -%define HAVE_POSIX_MEMALIGN 0 -%define HAVE_PTHREAD_CANCEL 0 -%define HAVE_SCHED_GETAFFINITY 0 -%define HAVE_SECITEMIMPORT 0 -%define HAVE_SETCONSOLETEXTATTRIBUTE 1 -%define HAVE_SETCONSOLECTRLHANDLER 1 -%define HAVE_SETMODE 1 -%define HAVE_SETRLIMIT 0 -%define HAVE_SLEEP 1 -%define HAVE_STRERROR_R 0 -%define HAVE_SYSCONF 0 -%define HAVE_SYSCTL 0 -%define HAVE_USLEEP 0 -%define HAVE_UTGETOSTYPEFROMSTRING 0 -%define HAVE_VIRTUALALLOC 1 -%define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 1 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 -%define HAVE_PTHREADS 0 -%define HAVE_OS2THREADS 0 -%define HAVE_W32THREADS 1 -%define HAVE_AS_ARCH_DIRECTIVE 0 -%define HAVE_AS_DN_DIRECTIVE 0 -%define HAVE_AS_FPU_DIRECTIVE 0 -%define HAVE_AS_FUNC 0 -%define HAVE_AS_OBJECT_ARCH 0 -%define HAVE_ASM_MOD_Q 0 -%define HAVE_BLOCKS_EXTENSION 0 -%define HAVE_EBP_AVAILABLE 0 -%define HAVE_EBX_AVAILABLE 0 -%define HAVE_GNU_AS 0 -%define HAVE_GNU_WINDRES 0 -%define HAVE_IBM_ASM 0 -%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 -%define HAVE_INLINE_ASM_LABELS 0 -%define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -%define HAVE_PRAGMA_DEPRECATED 1 -%define HAVE_RSYNC_CONTIMEOUT 0 -%define HAVE_SYMVER_ASM_LABEL 0 -%define HAVE_SYMVER_GNU_ASM 0 -%define HAVE_VFP_ARGS 0 -%define HAVE_XFORM_ASM 0 -%define HAVE_XMM_CLOBBERS 0 -%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 -%define HAVE_SOCKLEN_T 0 -%define HAVE_STRUCT_ADDRINFO 0 -%define HAVE_STRUCT_GROUP_SOURCE_REQ 0 -%define HAVE_STRUCT_IP_MREQ_SOURCE 0 -%define HAVE_STRUCT_IPV6_MREQ 0 -%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -%define HAVE_STRUCT_POLLFD 0 -%define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 -%define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 -%define HAVE_STRUCT_SOCKADDR_IN6 0 -%define HAVE_STRUCT_SOCKADDR_SA_LEN 0 -%define HAVE_STRUCT_SOCKADDR_STORAGE 0 -%define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 -%define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -%define HAVE_MAKEINFO 1 -%define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 -%define HAVE_PERL 1 -%define HAVE_POD2MAN 0 -%define HAVE_TEXI2HTML 0 -%define CONFIG_DOC 0 -%define CONFIG_HTMLPAGES 0 -%define CONFIG_MANPAGES 0 -%define CONFIG_PODPAGES 1 -%define CONFIG_TXTPAGES 1 -%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 -%define CONFIG_AVIO_READING_EXAMPLE 1 -%define CONFIG_DECODE_AUDIO_EXAMPLE 1 -%define CONFIG_DECODE_VIDEO_EXAMPLE 1 -%define CONFIG_DEMUXING_DECODING_EXAMPLE 1 -%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 -%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 -%define CONFIG_EXTRACT_MVS_EXAMPLE 1 -%define CONFIG_FILTER_AUDIO_EXAMPLE 0 -%define CONFIG_FILTERING_AUDIO_EXAMPLE 0 -%define CONFIG_FILTERING_VIDEO_EXAMPLE 0 -%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 -%define CONFIG_HW_DECODE_EXAMPLE 1 -%define CONFIG_METADATA_EXAMPLE 1 -%define CONFIG_MUXING_EXAMPLE 1 -%define CONFIG_QSVDEC_EXAMPLE 0 -%define CONFIG_REMUXING_EXAMPLE 1 -%define CONFIG_RESAMPLING_AUDIO_EXAMPLE 1 -%define CONFIG_SCALING_VIDEO_EXAMPLE 1 -%define CONFIG_TRANSCODE_AAC_EXAMPLE 1 -%define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 -%define CONFIG_AVISYNTH 0 -%define CONFIG_FREI0R 0 -%define CONFIG_LIBCDIO 0 -%define CONFIG_LIBDAVS2 0 -%define CONFIG_LIBRUBBERBAND 0 -%define CONFIG_LIBVIDSTAB 0 -%define CONFIG_LIBX264 0 -%define CONFIG_LIBX265 0 -%define CONFIG_LIBXAVS 0 -%define CONFIG_LIBXAVS2 0 -%define CONFIG_LIBXVID 0 -%define CONFIG_DECKLINK 0 -%define CONFIG_LIBNDI_NEWTEK 0 -%define CONFIG_LIBFDK_AAC 0 -%define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 -%define CONFIG_GMP 0 -%define CONFIG_LIBLENSFUN 0 -%define CONFIG_LIBOPENCORE_AMRNB 0 -%define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 -%define CONFIG_LIBVO_AMRWBENC 0 -%define CONFIG_MBEDTLS 0 -%define CONFIG_RKMPP 0 -%define CONFIG_LIBSMBCLIENT 0 -%define CONFIG_CHROMAPRINT 0 -%define CONFIG_GCRYPT 0 -%define CONFIG_GNUTLS 0 -%define CONFIG_JNI 0 -%define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 -%define CONFIG_LIBASS 0 -%define CONFIG_LIBBLURAY 0 -%define CONFIG_LIBBS2B 0 -%define CONFIG_LIBCACA 0 -%define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 -%define CONFIG_LIBDAV1D 0 -%define CONFIG_LIBDC1394 0 -%define CONFIG_LIBDRM 0 -%define CONFIG_LIBFLITE 0 -%define CONFIG_LIBFONTCONFIG 0 -%define CONFIG_LIBFREETYPE 0 -%define CONFIG_LIBFRIBIDI 0 -%define CONFIG_LIBGME 0 -%define CONFIG_LIBGSM 0 -%define CONFIG_LIBIEC61883 0 -%define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 -%define CONFIG_LIBKLVANC 0 -%define CONFIG_LIBKVAZAAR 0 -%define CONFIG_LIBMODPLUG 0 -%define CONFIG_LIBMP3LAME 0 -%define CONFIG_LIBMYSOFA 0 -%define CONFIG_LIBOPENCV 0 -%define CONFIG_LIBOPENH264 0 -%define CONFIG_LIBOPENJPEG 0 -%define CONFIG_LIBOPENMPT 0 -%define CONFIG_LIBOPUS 0 -%define CONFIG_LIBPULSE 0 -%define CONFIG_LIBRSVG 0 -%define CONFIG_LIBRTMP 0 -%define CONFIG_LIBSHINE 0 -%define CONFIG_LIBSMBCLIENT 0 -%define CONFIG_LIBSNAPPY 0 -%define CONFIG_LIBSOXR 0 -%define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 -%define CONFIG_LIBSSH 0 -%define CONFIG_LIBTENSORFLOW 0 -%define CONFIG_LIBTESSERACT 0 -%define CONFIG_LIBTHEORA 0 -%define CONFIG_LIBTWOLAME 0 -%define CONFIG_LIBV4L2 0 -%define CONFIG_LIBVORBIS 0 -%define CONFIG_LIBVPX 0 -%define CONFIG_LIBWAVPACK 0 -%define CONFIG_LIBWEBP 0 -%define CONFIG_LIBXML2 0 -%define CONFIG_LIBZIMG 0 -%define CONFIG_LIBZMQ 0 -%define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 -%define CONFIG_MEDIACODEC 0 -%define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_VAPOURSYNTH 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 0 -%define CONFIG_AVFOUNDATION 0 -%define CONFIG_BZLIB 0 -%define CONFIG_COREIMAGE 0 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 0 -%define CONFIG_SCHANNEL 1 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 0 -%define CONFIG_ZLIB 1 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 -%define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 -%define CONFIG_AUDIOTOOLBOX 0 -%define CONFIG_CRYSTALHD 0 -%define CONFIG_CUDA 0 -%define CONFIG_CUVID 0 -%define CONFIG_D3D11VA 0 -%define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 -%define CONFIG_NVENC 0 -%define CONFIG_VAAPI 0 -%define CONFIG_VDPAU 0 -%define CONFIG_VIDEOTOOLBOX 0 -%define CONFIG_V4L2_M2M 0 -%define CONFIG_XVMC 0 -%define CONFIG_FTRAPV 0 -%define CONFIG_GRAY 0 -%define CONFIG_HARDCODED_TABLES 0 -%define CONFIG_OMX_RPI 0 -%define CONFIG_RUNTIME_CPUDETECT 1 -%define CONFIG_SAFE_BITSTREAM_READER 1 -%define CONFIG_SHARED 0 -%define CONFIG_SMALL 1 -%define CONFIG_STATIC 1 -%define CONFIG_SWSCALE_ALPHA 1 -%define CONFIG_GPL 1 -%define CONFIG_NONFREE 0 -%define CONFIG_VERSION3 0 -%define CONFIG_AVDEVICE 1 -%define CONFIG_AVFILTER 0 -%define CONFIG_SWSCALE 1 -%define CONFIG_POSTPROC 0 -%define CONFIG_AVFORMAT 1 -%define CONFIG_AVCODEC 1 -%define CONFIG_SWRESAMPLE 1 -%define CONFIG_AVRESAMPLE 0 -%define CONFIG_AVUTIL 1 -%define CONFIG_FFPLAY 0 -%define CONFIG_FFPROBE 0 -%define CONFIG_FFMPEG 0 -%define CONFIG_DCT 1 -%define CONFIG_DWT 1 -%define CONFIG_ERROR_RESILIENCE 1 -%define CONFIG_FAAN 1 -%define CONFIG_FAST_UNALIGNED 1 -%define CONFIG_FFT 1 -%define CONFIG_LSP 1 -%define CONFIG_LZO 1 -%define CONFIG_MDCT 1 -%define CONFIG_PIXELUTILS 0 -%define CONFIG_NETWORK 0 -%define CONFIG_RDFT 1 -%define CONFIG_AUTODETECT 0 -%define CONFIG_FONTCONFIG 0 -%define CONFIG_LINUX_PERF 0 -%define CONFIG_MEMORY_POISONING 0 -%define CONFIG_NEON_CLOBBER_TEST 0 -%define CONFIG_OSSFUZZ 0 -%define CONFIG_PIC 0 -%define CONFIG_THUMB 0 -%define CONFIG_VALGRIND_BACKTRACE 0 -%define CONFIG_XMM_CLOBBER_TEST 0 -%define CONFIG_BSFS 1 -%define CONFIG_DECODERS 1 -%define CONFIG_ENCODERS 0 -%define CONFIG_HWACCELS 0 -%define CONFIG_PARSERS 1 -%define CONFIG_INDEVS 0 -%define CONFIG_OUTDEVS 0 -%define CONFIG_FILTERS 0 -%define CONFIG_DEMUXERS 1 -%define CONFIG_MUXERS 0 -%define CONFIG_PROTOCOLS 1 -%define CONFIG_AANDCTTABLES 1 -%define CONFIG_AC3DSP 1 -%define CONFIG_ADTS_HEADER 1 -%define CONFIG_AUDIO_FRAME_QUEUE 1 -%define CONFIG_AUDIODSP 1 -%define CONFIG_BLOCKDSP 1 -%define CONFIG_BSWAPDSP 1 -%define CONFIG_CABAC 1 -%define CONFIG_CBS 1 -%define CONFIG_CBS_AV1 1 -%define CONFIG_CBS_H264 1 -%define CONFIG_CBS_H265 1 -%define CONFIG_CBS_JPEG 0 -%define CONFIG_CBS_MPEG2 1 -%define CONFIG_CBS_VP9 1 -%define CONFIG_DIRAC_PARSE 1 -%define CONFIG_DNN 0 -%define CONFIG_DVPROFILE 1 -%define CONFIG_EXIF 1 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 -%define CONFIG_FLACDSP 1 -%define CONFIG_FMTCONVERT 1 -%define CONFIG_FRAME_THREAD_ENCODER 0 -%define CONFIG_G722DSP 1 -%define CONFIG_GOLOMB 1 -%define CONFIG_GPLV3 0 -%define CONFIG_H263DSP 1 -%define CONFIG_H264CHROMA 1 -%define CONFIG_H264DSP 1 -%define CONFIG_H264PARSE 1 -%define CONFIG_H264PRED 1 -%define CONFIG_H264QPEL 1 -%define CONFIG_HEVCPARSE 1 -%define CONFIG_HPELDSP 1 -%define CONFIG_HUFFMAN 1 -%define CONFIG_HUFFYUVDSP 1 -%define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 -%define CONFIG_IIRFILTER 0 -%define CONFIG_MDCT15 1 -%define CONFIG_INTRAX8 1 -%define CONFIG_ISO_MEDIA 1 -%define CONFIG_IVIDSP 0 -%define CONFIG_JPEGTABLES 1 -%define CONFIG_LGPLV3 0 -%define CONFIG_LIBX262 0 -%define CONFIG_LLAUDDSP 1 -%define CONFIG_LLVIDDSP 1 -%define CONFIG_LLVIDENCDSP 0 -%define CONFIG_LPC 0 -%define CONFIG_LZF 1 -%define CONFIG_ME_CMP 1 -%define CONFIG_MPEG_ER 1 -%define CONFIG_MPEGAUDIO 1 -%define CONFIG_MPEGAUDIODSP 1 -%define CONFIG_MPEGAUDIOHEADER 1 -%define CONFIG_MPEGVIDEO 1 -%define CONFIG_MPEGVIDEOENC 1 -%define CONFIG_MSS34DSP 1 -%define CONFIG_PIXBLOCKDSP 1 -%define CONFIG_QPELDSP 1 -%define CONFIG_QSV 0 -%define CONFIG_QSVDEC 0 -%define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 -%define CONFIG_RANGECODER 1 -%define CONFIG_RIFFDEC 1 -%define CONFIG_RIFFENC 0 -%define CONFIG_RTPDEC 0 -%define CONFIG_RTPENC_CHAIN 0 -%define CONFIG_RV34DSP 1 -%define CONFIG_SCENE_SAD 0 -%define CONFIG_SINEWIN 1 -%define CONFIG_SNAPPY 1 -%define CONFIG_SRTP 0 -%define CONFIG_STARTCODE 1 -%define CONFIG_TEXTUREDSP 1 -%define CONFIG_TEXTUREDSPENC 0 -%define CONFIG_TPELDSP 1 -%define CONFIG_VAAPI_1 0 -%define CONFIG_VAAPI_ENCODE 0 -%define CONFIG_VC1DSP 1 -%define CONFIG_VIDEODSP 1 -%define CONFIG_VP3DSP 1 -%define CONFIG_VP56DSP 1 -%define CONFIG_VP8DSP 1 -%define CONFIG_WMA_FREQS 1 -%define CONFIG_WMV2DSP 1 -%define CONFIG_AAC_ADTSTOASC_BSF 1 -%define CONFIG_AV1_METADATA_BSF 1 -%define CONFIG_CHOMP_BSF 1 -%define CONFIG_DUMP_EXTRADATA_BSF 1 -%define CONFIG_DCA_CORE_BSF 1 -%define CONFIG_EAC3_CORE_BSF 1 -%define CONFIG_EXTRACT_EXTRADATA_BSF 1 -%define CONFIG_FILTER_UNITS_BSF 1 -%define CONFIG_H264_METADATA_BSF 1 -%define CONFIG_H264_MP4TOANNEXB_BSF 1 -%define CONFIG_H264_REDUNDANT_PPS_BSF 1 -%define CONFIG_HAPQA_EXTRACT_BSF 1 -%define CONFIG_HEVC_METADATA_BSF 1 -%define CONFIG_HEVC_MP4TOANNEXB_BSF 1 -%define CONFIG_IMX_DUMP_HEADER_BSF 1 -%define CONFIG_MJPEG2JPEG_BSF 1 -%define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 -%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 -%define CONFIG_MPEG2_METADATA_BSF 1 -%define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 -%define CONFIG_MOV2TEXTSUB_BSF 1 -%define CONFIG_NOISE_BSF 1 -%define CONFIG_NULL_BSF 1 -%define CONFIG_PRORES_METADATA_BSF 1 -%define CONFIG_REMOVE_EXTRADATA_BSF 1 -%define CONFIG_TEXT2MOVSUB_BSF 1 -%define CONFIG_TRACE_HEADERS_BSF 1 -%define CONFIG_VP9_METADATA_BSF 1 -%define CONFIG_VP9_RAW_REORDER_BSF 1 -%define CONFIG_VP9_SUPERFRAME_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 -%define CONFIG_AASC_DECODER 1 -%define CONFIG_AIC_DECODER 1 -%define CONFIG_ALIAS_PIX_DECODER 1 -%define CONFIG_AMV_DECODER 1 -%define CONFIG_ANM_DECODER 1 -%define CONFIG_ANSI_DECODER 1 -%define CONFIG_APNG_DECODER 1 -%define CONFIG_ASV1_DECODER 1 -%define CONFIG_ASV2_DECODER 1 -%define CONFIG_AURA_DECODER 1 -%define CONFIG_AURA2_DECODER 1 -%define CONFIG_AVRP_DECODER 1 -%define CONFIG_AVRN_DECODER 1 -%define CONFIG_AVS_DECODER 1 -%define CONFIG_AVUI_DECODER 1 -%define CONFIG_AYUV_DECODER 1 -%define CONFIG_BETHSOFTVID_DECODER 1 -%define CONFIG_BFI_DECODER 1 -%define CONFIG_BINK_DECODER 1 -%define CONFIG_BITPACKED_DECODER 1 -%define CONFIG_BMP_DECODER 1 -%define CONFIG_BMV_VIDEO_DECODER 1 -%define CONFIG_BRENDER_PIX_DECODER 1 -%define CONFIG_C93_DECODER 1 -%define CONFIG_CAVS_DECODER 1 -%define CONFIG_CDGRAPHICS_DECODER 1 -%define CONFIG_CDXL_DECODER 1 -%define CONFIG_CFHD_DECODER 1 -%define CONFIG_CINEPAK_DECODER 1 -%define CONFIG_CLEARVIDEO_DECODER 1 -%define CONFIG_CLJR_DECODER 1 -%define CONFIG_CLLC_DECODER 1 -%define CONFIG_COMFORTNOISE_DECODER 1 -%define CONFIG_CPIA_DECODER 1 -%define CONFIG_CSCD_DECODER 1 -%define CONFIG_CYUV_DECODER 1 -%define CONFIG_DDS_DECODER 1 -%define CONFIG_DFA_DECODER 1 -%define CONFIG_DIRAC_DECODER 1 -%define CONFIG_DNXHD_DECODER 1 -%define CONFIG_DPX_DECODER 1 -%define CONFIG_DSICINVIDEO_DECODER 1 -%define CONFIG_DVAUDIO_DECODER 1 -%define CONFIG_DVVIDEO_DECODER 1 -%define CONFIG_DXA_DECODER 1 -%define CONFIG_DXTORY_DECODER 1 -%define CONFIG_DXV_DECODER 1 -%define CONFIG_EACMV_DECODER 1 -%define CONFIG_EAMAD_DECODER 1 -%define CONFIG_EATGQ_DECODER 1 -%define CONFIG_EATGV_DECODER 1 -%define CONFIG_EATQI_DECODER 1 -%define CONFIG_EIGHTBPS_DECODER 1 -%define CONFIG_EIGHTSVX_EXP_DECODER 1 -%define CONFIG_EIGHTSVX_FIB_DECODER 1 -%define CONFIG_ESCAPE124_DECODER 1 -%define CONFIG_ESCAPE130_DECODER 1 -%define CONFIG_EXR_DECODER 1 -%define CONFIG_FFV1_DECODER 1 -%define CONFIG_FFVHUFF_DECODER 1 -%define CONFIG_FIC_DECODER 1 -%define CONFIG_FITS_DECODER 1 -%define CONFIG_FLASHSV_DECODER 1 -%define CONFIG_FLASHSV2_DECODER 1 -%define CONFIG_FLIC_DECODER 1 -%define CONFIG_FLV_DECODER 1 -%define CONFIG_FMVC_DECODER 1 -%define CONFIG_FOURXM_DECODER 1 -%define CONFIG_FRAPS_DECODER 1 -%define CONFIG_FRWU_DECODER 1 -%define CONFIG_G2M_DECODER 1 -%define CONFIG_GDV_DECODER 1 -%define CONFIG_GIF_DECODER 1 -%define CONFIG_H261_DECODER 1 -%define CONFIG_H263_DECODER 1 -%define CONFIG_H263I_DECODER 1 -%define CONFIG_H263P_DECODER 1 -%define CONFIG_H263_V4L2M2M_DECODER 0 -%define CONFIG_H264_DECODER 1 -%define CONFIG_H264_CRYSTALHD_DECODER 0 -%define CONFIG_H264_V4L2M2M_DECODER 0 -%define CONFIG_H264_MEDIACODEC_DECODER 0 -%define CONFIG_H264_MMAL_DECODER 0 -%define CONFIG_H264_QSV_DECODER 0 -%define CONFIG_H264_RKMPP_DECODER 0 -%define CONFIG_HAP_DECODER 1 -%define CONFIG_HEVC_DECODER 1 -%define CONFIG_HEVC_QSV_DECODER 0 -%define CONFIG_HEVC_RKMPP_DECODER 0 -%define CONFIG_HEVC_V4L2M2M_DECODER 0 -%define CONFIG_HNM4_VIDEO_DECODER 1 -%define CONFIG_HQ_HQA_DECODER 1 -%define CONFIG_HQX_DECODER 1 -%define CONFIG_HUFFYUV_DECODER 1 -%define CONFIG_IDCIN_DECODER 1 -%define CONFIG_IFF_ILBM_DECODER 1 -%define CONFIG_IMM4_DECODER 1 -%define CONFIG_INDEO2_DECODER 0 -%define CONFIG_INDEO3_DECODER 0 -%define CONFIG_INDEO4_DECODER 0 -%define CONFIG_INDEO5_DECODER 0 -%define CONFIG_INTERPLAY_VIDEO_DECODER 1 -%define CONFIG_JPEG2000_DECODER 1 -%define CONFIG_JPEGLS_DECODER 1 -%define CONFIG_JV_DECODER 1 -%define CONFIG_KGV1_DECODER 1 -%define CONFIG_KMVC_DECODER 1 -%define CONFIG_LAGARITH_DECODER 1 -%define CONFIG_LOCO_DECODER 1 -%define CONFIG_M101_DECODER 1 -%define CONFIG_MAGICYUV_DECODER 1 -%define CONFIG_MDEC_DECODER 1 -%define CONFIG_MIMIC_DECODER 1 -%define CONFIG_MJPEG_DECODER 1 -%define CONFIG_MJPEGB_DECODER 1 -%define CONFIG_MMVIDEO_DECODER 1 -%define CONFIG_MOTIONPIXELS_DECODER 1 -%define CONFIG_MPEG1VIDEO_DECODER 1 -%define CONFIG_MPEG2VIDEO_DECODER 1 -%define CONFIG_MPEG4_DECODER 1 -%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG4_V4L2M2M_DECODER 0 -%define CONFIG_MPEG4_MMAL_DECODER 0 -%define CONFIG_MPEGVIDEO_DECODER 1 -%define CONFIG_MPEG1_V4L2M2M_DECODER 0 -%define CONFIG_MPEG2_MMAL_DECODER 0 -%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG2_V4L2M2M_DECODER 0 -%define CONFIG_MPEG2_QSV_DECODER 0 -%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -%define CONFIG_MSA1_DECODER 1 -%define CONFIG_MSCC_DECODER 1 -%define CONFIG_MSMPEG4V1_DECODER 1 -%define CONFIG_MSMPEG4V2_DECODER 1 -%define CONFIG_MSMPEG4V3_DECODER 1 -%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MSRLE_DECODER 1 -%define CONFIG_MSS1_DECODER 1 -%define CONFIG_MSS2_DECODER 1 -%define CONFIG_MSVIDEO1_DECODER 1 -%define CONFIG_MSZH_DECODER 1 -%define CONFIG_MTS2_DECODER 1 -%define CONFIG_MVC1_DECODER 1 -%define CONFIG_MVC2_DECODER 1 -%define CONFIG_MWSC_DECODER 1 -%define CONFIG_MXPEG_DECODER 1 -%define CONFIG_NUV_DECODER 1 -%define CONFIG_PAF_VIDEO_DECODER 1 -%define CONFIG_PAM_DECODER 1 -%define CONFIG_PBM_DECODER 1 -%define CONFIG_PCX_DECODER 1 -%define CONFIG_PGM_DECODER 1 -%define CONFIG_PGMYUV_DECODER 1 -%define CONFIG_PICTOR_DECODER 1 -%define CONFIG_PIXLET_DECODER 1 -%define CONFIG_PNG_DECODER 1 -%define CONFIG_PPM_DECODER 1 -%define CONFIG_PRORES_DECODER 1 -%define CONFIG_PROSUMER_DECODER 1 -%define CONFIG_PSD_DECODER 1 -%define CONFIG_PTX_DECODER 1 -%define CONFIG_QDRAW_DECODER 1 -%define CONFIG_QPEG_DECODER 1 -%define CONFIG_QTRLE_DECODER 1 -%define CONFIG_R10K_DECODER 1 -%define CONFIG_R210_DECODER 1 -%define CONFIG_RASC_DECODER 1 -%define CONFIG_RAWVIDEO_DECODER 1 -%define CONFIG_RL2_DECODER 1 -%define CONFIG_ROQ_DECODER 1 -%define CONFIG_RPZA_DECODER 1 -%define CONFIG_RSCC_DECODER 1 -%define CONFIG_RV10_DECODER 1 -%define CONFIG_RV20_DECODER 1 -%define CONFIG_RV30_DECODER 1 -%define CONFIG_RV40_DECODER 1 -%define CONFIG_S302M_DECODER 1 -%define CONFIG_SANM_DECODER 1 -%define CONFIG_SCPR_DECODER 1 -%define CONFIG_SCREENPRESSO_DECODER 1 -%define CONFIG_SDX2_DPCM_DECODER 1 -%define CONFIG_SGI_DECODER 1 -%define CONFIG_SGIRLE_DECODER 1 -%define CONFIG_SHEERVIDEO_DECODER 1 -%define CONFIG_SMACKER_DECODER 1 -%define CONFIG_SMC_DECODER 1 -%define CONFIG_SMVJPEG_DECODER 1 -%define CONFIG_SNOW_DECODER 1 -%define CONFIG_SP5X_DECODER 1 -%define CONFIG_SPEEDHQ_DECODER 1 -%define CONFIG_SRGC_DECODER 1 -%define CONFIG_SUNRAST_DECODER 1 -%define CONFIG_SVQ1_DECODER 1 -%define CONFIG_SVQ3_DECODER 1 -%define CONFIG_TARGA_DECODER 1 -%define CONFIG_TARGA_Y216_DECODER 1 -%define CONFIG_TDSC_DECODER 1 -%define CONFIG_THEORA_DECODER 1 -%define CONFIG_THP_DECODER 1 -%define CONFIG_TIERTEXSEQVIDEO_DECODER 1 -%define CONFIG_TIFF_DECODER 1 -%define CONFIG_TMV_DECODER 1 -%define CONFIG_TRUEMOTION1_DECODER 1 -%define CONFIG_TRUEMOTION2_DECODER 1 -%define CONFIG_TRUEMOTION2RT_DECODER 1 -%define CONFIG_TSCC_DECODER 1 -%define CONFIG_TSCC2_DECODER 1 -%define CONFIG_TXD_DECODER 1 -%define CONFIG_ULTI_DECODER 1 -%define CONFIG_UTVIDEO_DECODER 1 -%define CONFIG_V210_DECODER 1 -%define CONFIG_V210X_DECODER 1 -%define CONFIG_V308_DECODER 1 -%define CONFIG_V408_DECODER 1 -%define CONFIG_V410_DECODER 1 -%define CONFIG_VB_DECODER 1 -%define CONFIG_VBLE_DECODER 1 -%define CONFIG_VC1_DECODER 1 -%define CONFIG_VC1_CRYSTALHD_DECODER 0 -%define CONFIG_VC1IMAGE_DECODER 1 -%define CONFIG_VC1_MMAL_DECODER 0 -%define CONFIG_VC1_QSV_DECODER 0 -%define CONFIG_VC1_V4L2M2M_DECODER 0 -%define CONFIG_VCR1_DECODER 1 -%define CONFIG_VMDVIDEO_DECODER 1 -%define CONFIG_VMNC_DECODER 1 -%define CONFIG_VP3_DECODER 1 -%define CONFIG_VP5_DECODER 1 -%define CONFIG_VP6_DECODER 1 -%define CONFIG_VP6A_DECODER 1 -%define CONFIG_VP6F_DECODER 1 -%define CONFIG_VP7_DECODER 1 -%define CONFIG_VP8_DECODER 1 -%define CONFIG_VP8_RKMPP_DECODER 0 -%define CONFIG_VP8_V4L2M2M_DECODER 0 -%define CONFIG_VP9_DECODER 1 -%define CONFIG_VP9_RKMPP_DECODER 0 -%define CONFIG_VP9_V4L2M2M_DECODER 0 -%define CONFIG_VQA_DECODER 1 -%define CONFIG_WEBP_DECODER 1 -%define CONFIG_WCMV_DECODER 1 -%define CONFIG_WRAPPED_AVFRAME_DECODER 1 -%define CONFIG_WMV1_DECODER 1 -%define CONFIG_WMV2_DECODER 1 -%define CONFIG_WMV3_DECODER 1 -%define CONFIG_WMV3_CRYSTALHD_DECODER 0 -%define CONFIG_WMV3IMAGE_DECODER 1 -%define CONFIG_WNV1_DECODER 1 -%define CONFIG_XAN_WC3_DECODER 1 -%define CONFIG_XAN_WC4_DECODER 1 -%define CONFIG_XBM_DECODER 1 -%define CONFIG_XFACE_DECODER 1 -%define CONFIG_XL_DECODER 1 -%define CONFIG_XPM_DECODER 1 -%define CONFIG_XWD_DECODER 1 -%define CONFIG_Y41P_DECODER 1 -%define CONFIG_YLC_DECODER 1 -%define CONFIG_YOP_DECODER 1 -%define CONFIG_YUV4_DECODER 1 -%define CONFIG_ZERO12V_DECODER 1 -%define CONFIG_ZEROCODEC_DECODER 1 -%define CONFIG_ZLIB_DECODER 1 -%define CONFIG_ZMBV_DECODER 1 -%define CONFIG_AAC_DECODER 1 -%define CONFIG_AAC_FIXED_DECODER 1 -%define CONFIG_AAC_LATM_DECODER 1 -%define CONFIG_AC3_DECODER 1 -%define CONFIG_AC3_FIXED_DECODER 1 -%define CONFIG_ALAC_DECODER 1 -%define CONFIG_ALS_DECODER 1 -%define CONFIG_AMRNB_DECODER 1 -%define CONFIG_AMRWB_DECODER 1 -%define CONFIG_APE_DECODER 1 -%define CONFIG_APTX_DECODER 1 -%define CONFIG_APTX_HD_DECODER 1 -%define CONFIG_ATRAC1_DECODER 1 -%define CONFIG_ATRAC3_DECODER 1 -%define CONFIG_ATRAC3AL_DECODER 1 -%define CONFIG_ATRAC3P_DECODER 0 -%define CONFIG_ATRAC3PAL_DECODER 1 -%define CONFIG_ATRAC9_DECODER 1 -%define CONFIG_BINKAUDIO_DCT_DECODER 1 -%define CONFIG_BINKAUDIO_RDFT_DECODER 1 -%define CONFIG_BMV_AUDIO_DECODER 1 -%define CONFIG_COOK_DECODER 1 -%define CONFIG_DCA_DECODER 1 -%define CONFIG_DOLBY_E_DECODER 1 -%define CONFIG_DSD_LSBF_DECODER 1 -%define CONFIG_DSD_MSBF_DECODER 1 -%define CONFIG_DSD_LSBF_PLANAR_DECODER 1 -%define CONFIG_DSD_MSBF_PLANAR_DECODER 1 -%define CONFIG_DSICINAUDIO_DECODER 1 -%define CONFIG_DSS_SP_DECODER 1 -%define CONFIG_DST_DECODER 1 -%define CONFIG_EAC3_DECODER 1 -%define CONFIG_EVRC_DECODER 1 -%define CONFIG_FFWAVESYNTH_DECODER 1 -%define CONFIG_FLAC_DECODER 1 -%define CONFIG_G723_1_DECODER 1 -%define CONFIG_G729_DECODER 1 -%define CONFIG_GSM_DECODER 1 -%define CONFIG_GSM_MS_DECODER 1 -%define CONFIG_IAC_DECODER 1 -%define CONFIG_ILBC_DECODER 1 -%define CONFIG_IMC_DECODER 1 -%define CONFIG_INTERPLAY_ACM_DECODER 1 -%define CONFIG_MACE3_DECODER 1 -%define CONFIG_MACE6_DECODER 1 -%define CONFIG_METASOUND_DECODER 1 -%define CONFIG_MLP_DECODER 1 -%define CONFIG_MP1_DECODER 1 -%define CONFIG_MP1FLOAT_DECODER 1 -%define CONFIG_MP2_DECODER 1 -%define CONFIG_MP2FLOAT_DECODER 1 -%define CONFIG_MP3FLOAT_DECODER 1 -%define CONFIG_MP3_DECODER 1 -%define CONFIG_MP3ADUFLOAT_DECODER 1 -%define CONFIG_MP3ADU_DECODER 1 -%define CONFIG_MP3ON4FLOAT_DECODER 1 -%define CONFIG_MP3ON4_DECODER 1 -%define CONFIG_MPC7_DECODER 1 -%define CONFIG_MPC8_DECODER 1 -%define CONFIG_NELLYMOSER_DECODER 1 -%define CONFIG_ON2AVC_DECODER 1 -%define CONFIG_OPUS_DECODER 1 -%define CONFIG_PAF_AUDIO_DECODER 1 -%define CONFIG_QCELP_DECODER 1 -%define CONFIG_QDM2_DECODER 1 -%define CONFIG_QDMC_DECODER 1 -%define CONFIG_RA_144_DECODER 1 -%define CONFIG_RA_288_DECODER 1 -%define CONFIG_RALF_DECODER 1 -%define CONFIG_SBC_DECODER 1 -%define CONFIG_SHORTEN_DECODER 1 -%define CONFIG_SIPR_DECODER 1 -%define CONFIG_SMACKAUD_DECODER 1 -%define CONFIG_SONIC_DECODER 1 -%define CONFIG_TAK_DECODER 1 -%define CONFIG_TRUEHD_DECODER 1 -%define CONFIG_TRUESPEECH_DECODER 1 -%define CONFIG_TTA_DECODER 1 -%define CONFIG_TWINVQ_DECODER 0 -%define CONFIG_VMDAUDIO_DECODER 1 -%define CONFIG_VORBIS_DECODER 1 -%define CONFIG_WAVPACK_DECODER 1 -%define CONFIG_WMALOSSLESS_DECODER 1 -%define CONFIG_WMAPRO_DECODER 1 -%define CONFIG_WMAV1_DECODER 1 -%define CONFIG_WMAV2_DECODER 1 -%define CONFIG_WMAVOICE_DECODER 1 -%define CONFIG_WS_SND1_DECODER 1 -%define CONFIG_XMA1_DECODER 1 -%define CONFIG_XMA2_DECODER 1 -%define CONFIG_PCM_ALAW_DECODER 1 -%define CONFIG_PCM_BLURAY_DECODER 1 -%define CONFIG_PCM_DVD_DECODER 1 -%define CONFIG_PCM_F16LE_DECODER 1 -%define CONFIG_PCM_F24LE_DECODER 1 -%define CONFIG_PCM_F32BE_DECODER 1 -%define CONFIG_PCM_F32LE_DECODER 1 -%define CONFIG_PCM_F64BE_DECODER 1 -%define CONFIG_PCM_F64LE_DECODER 1 -%define CONFIG_PCM_LXF_DECODER 1 -%define CONFIG_PCM_MULAW_DECODER 1 -%define CONFIG_PCM_S8_DECODER 1 -%define CONFIG_PCM_S8_PLANAR_DECODER 1 -%define CONFIG_PCM_S16BE_DECODER 1 -%define CONFIG_PCM_S16BE_PLANAR_DECODER 1 -%define CONFIG_PCM_S16LE_DECODER 1 -%define CONFIG_PCM_S16LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S24BE_DECODER 1 -%define CONFIG_PCM_S24DAUD_DECODER 1 -%define CONFIG_PCM_S24LE_DECODER 1 -%define CONFIG_PCM_S24LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S32BE_DECODER 1 -%define CONFIG_PCM_S32LE_DECODER 1 -%define CONFIG_PCM_S32LE_PLANAR_DECODER 1 -%define CONFIG_PCM_S64BE_DECODER 1 -%define CONFIG_PCM_S64LE_DECODER 1 -%define CONFIG_PCM_U8_DECODER 1 -%define CONFIG_PCM_U16BE_DECODER 1 -%define CONFIG_PCM_U16LE_DECODER 1 -%define CONFIG_PCM_U24BE_DECODER 1 -%define CONFIG_PCM_U24LE_DECODER 1 -%define CONFIG_PCM_U32BE_DECODER 1 -%define CONFIG_PCM_U32LE_DECODER 1 -%define CONFIG_PCM_VIDC_DECODER 1 -%define CONFIG_PCM_ZORK_DECODER 1 -%define CONFIG_GREMLIN_DPCM_DECODER 1 -%define CONFIG_INTERPLAY_DPCM_DECODER 1 -%define CONFIG_ROQ_DPCM_DECODER 1 -%define CONFIG_SOL_DPCM_DECODER 1 -%define CONFIG_XAN_DPCM_DECODER 1 -%define CONFIG_ADPCM_4XM_DECODER 1 -%define CONFIG_ADPCM_ADX_DECODER 1 -%define CONFIG_ADPCM_AFC_DECODER 1 -%define CONFIG_ADPCM_AICA_DECODER 1 -%define CONFIG_ADPCM_CT_DECODER 1 -%define CONFIG_ADPCM_DTK_DECODER 1 -%define CONFIG_ADPCM_EA_DECODER 1 -%define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 -%define CONFIG_ADPCM_EA_R1_DECODER 1 -%define CONFIG_ADPCM_EA_R2_DECODER 1 -%define CONFIG_ADPCM_EA_R3_DECODER 1 -%define CONFIG_ADPCM_EA_XAS_DECODER 1 -%define CONFIG_ADPCM_G722_DECODER 1 -%define CONFIG_ADPCM_G726_DECODER 1 -%define CONFIG_ADPCM_G726LE_DECODER 1 -%define CONFIG_ADPCM_IMA_AMV_DECODER 1 -%define CONFIG_ADPCM_IMA_APC_DECODER 1 -%define CONFIG_ADPCM_IMA_DAT4_DECODER 1 -%define CONFIG_ADPCM_IMA_DK3_DECODER 1 -%define CONFIG_ADPCM_IMA_DK4_DECODER 1 -%define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 -%define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 -%define CONFIG_ADPCM_IMA_ISS_DECODER 1 -%define CONFIG_ADPCM_IMA_OKI_DECODER 1 -%define CONFIG_ADPCM_IMA_QT_DECODER 1 -%define CONFIG_ADPCM_IMA_RAD_DECODER 1 -%define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 -%define CONFIG_ADPCM_IMA_WAV_DECODER 1 -%define CONFIG_ADPCM_IMA_WS_DECODER 1 -%define CONFIG_ADPCM_MS_DECODER 1 -%define CONFIG_ADPCM_MTAF_DECODER 1 -%define CONFIG_ADPCM_PSX_DECODER 1 -%define CONFIG_ADPCM_SBPRO_2_DECODER 1 -%define CONFIG_ADPCM_SBPRO_3_DECODER 1 -%define CONFIG_ADPCM_SBPRO_4_DECODER 1 -%define CONFIG_ADPCM_SWF_DECODER 1 -%define CONFIG_ADPCM_THP_DECODER 1 -%define CONFIG_ADPCM_THP_LE_DECODER 1 -%define CONFIG_ADPCM_VIMA_DECODER 1 -%define CONFIG_ADPCM_XA_DECODER 1 -%define CONFIG_ADPCM_YAMAHA_DECODER 1 -%define CONFIG_SSA_DECODER 1 -%define CONFIG_ASS_DECODER 1 -%define CONFIG_CCAPTION_DECODER 1 -%define CONFIG_DVBSUB_DECODER 1 -%define CONFIG_DVDSUB_DECODER 1 -%define CONFIG_JACOSUB_DECODER 1 -%define CONFIG_MICRODVD_DECODER 1 -%define CONFIG_MOVTEXT_DECODER 1 -%define CONFIG_MPL2_DECODER 1 -%define CONFIG_PGSSUB_DECODER 1 -%define CONFIG_PJS_DECODER 1 -%define CONFIG_REALTEXT_DECODER 1 -%define CONFIG_SAMI_DECODER 1 -%define CONFIG_SRT_DECODER 1 -%define CONFIG_STL_DECODER 1 -%define CONFIG_SUBRIP_DECODER 1 -%define CONFIG_SUBVIEWER_DECODER 1 -%define CONFIG_SUBVIEWER1_DECODER 1 -%define CONFIG_TEXT_DECODER 1 -%define CONFIG_VPLAYER_DECODER 1 -%define CONFIG_WEBVTT_DECODER 1 -%define CONFIG_XSUB_DECODER 1 -%define CONFIG_AAC_AT_DECODER 0 -%define CONFIG_AC3_AT_DECODER 0 -%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 -%define CONFIG_ALAC_AT_DECODER 0 -%define CONFIG_AMR_NB_AT_DECODER 0 -%define CONFIG_EAC3_AT_DECODER 0 -%define CONFIG_GSM_MS_AT_DECODER 0 -%define CONFIG_ILBC_AT_DECODER 0 -%define CONFIG_MP1_AT_DECODER 0 -%define CONFIG_MP2_AT_DECODER 0 -%define CONFIG_MP3_AT_DECODER 0 -%define CONFIG_PCM_ALAW_AT_DECODER 0 -%define CONFIG_PCM_MULAW_AT_DECODER 0 -%define CONFIG_QDMC_AT_DECODER 0 -%define CONFIG_QDM2_AT_DECODER 0 -%define CONFIG_LIBAOM_AV1_DECODER 0 -%define CONFIG_LIBCELT_DECODER 0 -%define CONFIG_LIBCODEC2_DECODER 0 -%define CONFIG_LIBDAV1D_DECODER 0 -%define CONFIG_LIBDAVS2_DECODER 0 -%define CONFIG_LIBFDK_AAC_DECODER 0 -%define CONFIG_LIBGSM_DECODER 0 -%define CONFIG_LIBGSM_MS_DECODER 0 -%define CONFIG_LIBILBC_DECODER 0 -%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -%define CONFIG_LIBOPENJPEG_DECODER 0 -%define CONFIG_LIBOPUS_DECODER 0 -%define CONFIG_LIBRSVG_DECODER 0 -%define CONFIG_LIBSPEEX_DECODER 0 -%define CONFIG_LIBVORBIS_DECODER 0 -%define CONFIG_LIBVPX_VP8_DECODER 0 -%define CONFIG_LIBVPX_VP9_DECODER 0 -%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -%define CONFIG_BINTEXT_DECODER 1 -%define CONFIG_XBIN_DECODER 1 -%define CONFIG_IDF_DECODER 1 -%define CONFIG_LIBOPENH264_DECODER 0 -%define CONFIG_H264_CUVID_DECODER 0 -%define CONFIG_HEVC_CUVID_DECODER 0 -%define CONFIG_HEVC_MEDIACODEC_DECODER 0 -%define CONFIG_MJPEG_CUVID_DECODER 0 -%define CONFIG_MPEG1_CUVID_DECODER 0 -%define CONFIG_MPEG2_CUVID_DECODER 0 -%define CONFIG_MPEG4_CUVID_DECODER 0 -%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -%define CONFIG_VC1_CUVID_DECODER 0 -%define CONFIG_VP8_CUVID_DECODER 0 -%define CONFIG_VP8_MEDIACODEC_DECODER 0 -%define CONFIG_VP8_QSV_DECODER 0 -%define CONFIG_VP9_CUVID_DECODER 0 -%define CONFIG_VP9_MEDIACODEC_DECODER 0 -%define CONFIG_A64MULTI_ENCODER 0 -%define CONFIG_A64MULTI5_ENCODER 0 -%define CONFIG_ALIAS_PIX_ENCODER 0 -%define CONFIG_AMV_ENCODER 0 -%define CONFIG_APNG_ENCODER 0 -%define CONFIG_ASV1_ENCODER 0 -%define CONFIG_ASV2_ENCODER 0 -%define CONFIG_AVRP_ENCODER 0 -%define CONFIG_AVUI_ENCODER 0 -%define CONFIG_AYUV_ENCODER 0 -%define CONFIG_BMP_ENCODER 0 -%define CONFIG_CINEPAK_ENCODER 0 -%define CONFIG_CLJR_ENCODER 0 -%define CONFIG_COMFORTNOISE_ENCODER 0 -%define CONFIG_DNXHD_ENCODER 0 -%define CONFIG_DPX_ENCODER 0 -%define CONFIG_DVVIDEO_ENCODER 0 -%define CONFIG_FFV1_ENCODER 0 -%define CONFIG_FFVHUFF_ENCODER 0 -%define CONFIG_FITS_ENCODER 0 -%define CONFIG_FLASHSV_ENCODER 0 -%define CONFIG_FLASHSV2_ENCODER 0 -%define CONFIG_FLV_ENCODER 0 -%define CONFIG_GIF_ENCODER 0 -%define CONFIG_H261_ENCODER 0 -%define CONFIG_H263_ENCODER 0 -%define CONFIG_H263P_ENCODER 0 -%define CONFIG_HAP_ENCODER 0 -%define CONFIG_HUFFYUV_ENCODER 0 -%define CONFIG_JPEG2000_ENCODER 0 -%define CONFIG_JPEGLS_ENCODER 0 -%define CONFIG_LJPEG_ENCODER 0 -%define CONFIG_MAGICYUV_ENCODER 0 -%define CONFIG_MJPEG_ENCODER 0 -%define CONFIG_MPEG1VIDEO_ENCODER 0 -%define CONFIG_MPEG2VIDEO_ENCODER 0 -%define CONFIG_MPEG4_ENCODER 0 -%define CONFIG_MSMPEG4V2_ENCODER 0 -%define CONFIG_MSMPEG4V3_ENCODER 0 -%define CONFIG_MSVIDEO1_ENCODER 0 -%define CONFIG_PAM_ENCODER 0 -%define CONFIG_PBM_ENCODER 0 -%define CONFIG_PCX_ENCODER 0 -%define CONFIG_PGM_ENCODER 0 -%define CONFIG_PGMYUV_ENCODER 0 -%define CONFIG_PNG_ENCODER 0 -%define CONFIG_PPM_ENCODER 0 -%define CONFIG_PRORES_ENCODER 0 -%define CONFIG_PRORES_AW_ENCODER 0 -%define CONFIG_PRORES_KS_ENCODER 0 -%define CONFIG_QTRLE_ENCODER 0 -%define CONFIG_R10K_ENCODER 0 -%define CONFIG_R210_ENCODER 0 -%define CONFIG_RAWVIDEO_ENCODER 0 -%define CONFIG_ROQ_ENCODER 0 -%define CONFIG_RV10_ENCODER 0 -%define CONFIG_RV20_ENCODER 0 -%define CONFIG_S302M_ENCODER 0 -%define CONFIG_SGI_ENCODER 0 -%define CONFIG_SNOW_ENCODER 0 -%define CONFIG_SUNRAST_ENCODER 0 -%define CONFIG_SVQ1_ENCODER 0 -%define CONFIG_TARGA_ENCODER 0 -%define CONFIG_TIFF_ENCODER 0 -%define CONFIG_UTVIDEO_ENCODER 0 -%define CONFIG_V210_ENCODER 0 -%define CONFIG_V308_ENCODER 0 -%define CONFIG_V408_ENCODER 0 -%define CONFIG_V410_ENCODER 0 -%define CONFIG_VC2_ENCODER 0 -%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -%define CONFIG_WMV1_ENCODER 0 -%define CONFIG_WMV2_ENCODER 0 -%define CONFIG_XBM_ENCODER 0 -%define CONFIG_XFACE_ENCODER 0 -%define CONFIG_XWD_ENCODER 0 -%define CONFIG_Y41P_ENCODER 0 -%define CONFIG_YUV4_ENCODER 0 -%define CONFIG_ZLIB_ENCODER 0 -%define CONFIG_ZMBV_ENCODER 0 -%define CONFIG_AAC_ENCODER 0 -%define CONFIG_AC3_ENCODER 0 -%define CONFIG_AC3_FIXED_ENCODER 0 -%define CONFIG_ALAC_ENCODER 0 -%define CONFIG_APTX_ENCODER 0 -%define CONFIG_APTX_HD_ENCODER 0 -%define CONFIG_DCA_ENCODER 0 -%define CONFIG_EAC3_ENCODER 0 -%define CONFIG_FLAC_ENCODER 0 -%define CONFIG_G723_1_ENCODER 0 -%define CONFIG_MLP_ENCODER 0 -%define CONFIG_MP2_ENCODER 0 -%define CONFIG_MP2FIXED_ENCODER 0 -%define CONFIG_NELLYMOSER_ENCODER 0 -%define CONFIG_OPUS_ENCODER 0 -%define CONFIG_RA_144_ENCODER 0 -%define CONFIG_SBC_ENCODER 0 -%define CONFIG_SONIC_ENCODER 0 -%define CONFIG_SONIC_LS_ENCODER 0 -%define CONFIG_TRUEHD_ENCODER 0 -%define CONFIG_TTA_ENCODER 0 -%define CONFIG_VORBIS_ENCODER 0 -%define CONFIG_WAVPACK_ENCODER 0 -%define CONFIG_WMAV1_ENCODER 0 -%define CONFIG_WMAV2_ENCODER 0 -%define CONFIG_PCM_ALAW_ENCODER 0 -%define CONFIG_PCM_F32BE_ENCODER 0 -%define CONFIG_PCM_F32LE_ENCODER 0 -%define CONFIG_PCM_F64BE_ENCODER 0 -%define CONFIG_PCM_F64LE_ENCODER 0 -%define CONFIG_PCM_MULAW_ENCODER 0 -%define CONFIG_PCM_S8_ENCODER 0 -%define CONFIG_PCM_S8_PLANAR_ENCODER 0 -%define CONFIG_PCM_S16BE_ENCODER 0 -%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S16LE_ENCODER 0 -%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S24BE_ENCODER 0 -%define CONFIG_PCM_S24DAUD_ENCODER 0 -%define CONFIG_PCM_S24LE_ENCODER 0 -%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S32BE_ENCODER 0 -%define CONFIG_PCM_S32LE_ENCODER 0 -%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S64BE_ENCODER 0 -%define CONFIG_PCM_S64LE_ENCODER 0 -%define CONFIG_PCM_U8_ENCODER 0 -%define CONFIG_PCM_U16BE_ENCODER 0 -%define CONFIG_PCM_U16LE_ENCODER 0 -%define CONFIG_PCM_U24BE_ENCODER 0 -%define CONFIG_PCM_U24LE_ENCODER 0 -%define CONFIG_PCM_U32BE_ENCODER 0 -%define CONFIG_PCM_U32LE_ENCODER 0 -%define CONFIG_PCM_VIDC_ENCODER 0 -%define CONFIG_ROQ_DPCM_ENCODER 0 -%define CONFIG_ADPCM_ADX_ENCODER 0 -%define CONFIG_ADPCM_G722_ENCODER 0 -%define CONFIG_ADPCM_G726_ENCODER 0 -%define CONFIG_ADPCM_G726LE_ENCODER 0 -%define CONFIG_ADPCM_IMA_QT_ENCODER 0 -%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 -%define CONFIG_ADPCM_MS_ENCODER 0 -%define CONFIG_ADPCM_SWF_ENCODER 0 -%define CONFIG_ADPCM_YAMAHA_ENCODER 0 -%define CONFIG_SSA_ENCODER 0 -%define CONFIG_ASS_ENCODER 0 -%define CONFIG_DVBSUB_ENCODER 0 -%define CONFIG_DVDSUB_ENCODER 0 -%define CONFIG_MOVTEXT_ENCODER 0 -%define CONFIG_SRT_ENCODER 0 -%define CONFIG_SUBRIP_ENCODER 0 -%define CONFIG_TEXT_ENCODER 0 -%define CONFIG_WEBVTT_ENCODER 0 -%define CONFIG_XSUB_ENCODER 0 -%define CONFIG_AAC_AT_ENCODER 0 -%define CONFIG_ALAC_AT_ENCODER 0 -%define CONFIG_ILBC_AT_ENCODER 0 -%define CONFIG_PCM_ALAW_AT_ENCODER 0 -%define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBAOM_AV1_ENCODER 0 -%define CONFIG_LIBCODEC2_ENCODER 0 -%define CONFIG_LIBFDK_AAC_ENCODER 0 -%define CONFIG_LIBGSM_ENCODER 0 -%define CONFIG_LIBGSM_MS_ENCODER 0 -%define CONFIG_LIBILBC_ENCODER 0 -%define CONFIG_LIBMP3LAME_ENCODER 0 -%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -%define CONFIG_LIBOPENJPEG_ENCODER 0 -%define CONFIG_LIBOPUS_ENCODER 0 -%define CONFIG_LIBSHINE_ENCODER 0 -%define CONFIG_LIBSPEEX_ENCODER 0 -%define CONFIG_LIBTHEORA_ENCODER 0 -%define CONFIG_LIBTWOLAME_ENCODER 0 -%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -%define CONFIG_LIBVORBIS_ENCODER 0 -%define CONFIG_LIBVPX_VP8_ENCODER 0 -%define CONFIG_LIBVPX_VP9_ENCODER 0 -%define CONFIG_LIBWAVPACK_ENCODER 0 -%define CONFIG_LIBWEBP_ANIM_ENCODER 0 -%define CONFIG_LIBWEBP_ENCODER 0 -%define CONFIG_LIBX262_ENCODER 0 -%define CONFIG_LIBX264_ENCODER 0 -%define CONFIG_LIBX264RGB_ENCODER 0 -%define CONFIG_LIBX265_ENCODER 0 -%define CONFIG_LIBXAVS_ENCODER 0 -%define CONFIG_LIBXAVS2_ENCODER 0 -%define CONFIG_LIBXVID_ENCODER 0 -%define CONFIG_H263_V4L2M2M_ENCODER 0 -%define CONFIG_LIBOPENH264_ENCODER 0 -%define CONFIG_H264_AMF_ENCODER 0 -%define CONFIG_H264_NVENC_ENCODER 0 -%define CONFIG_H264_OMX_ENCODER 0 -%define CONFIG_H264_QSV_ENCODER 0 -%define CONFIG_H264_V4L2M2M_ENCODER 0 -%define CONFIG_H264_VAAPI_ENCODER 0 -%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_NVENC_ENCODER 0 -%define CONFIG_NVENC_H264_ENCODER 0 -%define CONFIG_NVENC_HEVC_ENCODER 0 -%define CONFIG_HEVC_AMF_ENCODER 0 -%define CONFIG_HEVC_NVENC_ENCODER 0 -%define CONFIG_HEVC_QSV_ENCODER 0 -%define CONFIG_HEVC_V4L2M2M_ENCODER 0 -%define CONFIG_HEVC_VAAPI_ENCODER 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_LIBKVAZAAR_ENCODER 0 -%define CONFIG_MJPEG_QSV_ENCODER 0 -%define CONFIG_MJPEG_VAAPI_ENCODER 0 -%define CONFIG_MPEG2_QSV_ENCODER 0 -%define CONFIG_MPEG2_VAAPI_ENCODER 0 -%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -%define CONFIG_VP8_V4L2M2M_ENCODER 0 -%define CONFIG_VP8_VAAPI_ENCODER 0 -%define CONFIG_VP9_VAAPI_ENCODER 0 -%define CONFIG_H263_VAAPI_HWACCEL 0 -%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_H264_D3D11VA_HWACCEL 0 -%define CONFIG_H264_D3D11VA2_HWACCEL 0 -%define CONFIG_H264_DXVA2_HWACCEL 0 -%define CONFIG_H264_NVDEC_HWACCEL 0 -%define CONFIG_H264_VAAPI_HWACCEL 0 -%define CONFIG_H264_VDPAU_HWACCEL 0 -%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -%define CONFIG_HEVC_DXVA2_HWACCEL 0 -%define CONFIG_HEVC_NVDEC_HWACCEL 0 -%define CONFIG_HEVC_VAAPI_HWACCEL 0 -%define CONFIG_HEVC_VDPAU_HWACCEL 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MJPEG_NVDEC_HWACCEL 0 -%define CONFIG_MJPEG_VAAPI_HWACCEL 0 -%define CONFIG_MPEG1_NVDEC_HWACCEL 0 -%define CONFIG_MPEG1_VDPAU_HWACCEL 0 -%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG1_XVMC_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -%define CONFIG_MPEG2_NVDEC_HWACCEL 0 -%define CONFIG_MPEG2_DXVA2_HWACCEL 0 -%define CONFIG_MPEG2_VAAPI_HWACCEL 0 -%define CONFIG_MPEG2_VDPAU_HWACCEL 0 -%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG2_XVMC_HWACCEL 0 -%define CONFIG_MPEG4_NVDEC_HWACCEL 0 -%define CONFIG_MPEG4_VAAPI_HWACCEL 0 -%define CONFIG_MPEG4_VDPAU_HWACCEL 0 -%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_VC1_D3D11VA_HWACCEL 0 -%define CONFIG_VC1_D3D11VA2_HWACCEL 0 -%define CONFIG_VC1_DXVA2_HWACCEL 0 -%define CONFIG_VC1_NVDEC_HWACCEL 0 -%define CONFIG_VC1_VAAPI_HWACCEL 0 -%define CONFIG_VC1_VDPAU_HWACCEL 0 -%define CONFIG_VP8_NVDEC_HWACCEL 0 -%define CONFIG_VP8_VAAPI_HWACCEL 0 -%define CONFIG_VP9_D3D11VA_HWACCEL 0 -%define CONFIG_VP9_D3D11VA2_HWACCEL 0 -%define CONFIG_VP9_DXVA2_HWACCEL 0 -%define CONFIG_VP9_NVDEC_HWACCEL 0 -%define CONFIG_VP9_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 -%define CONFIG_WMV3_DXVA2_HWACCEL 0 -%define CONFIG_WMV3_NVDEC_HWACCEL 0 -%define CONFIG_WMV3_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_VDPAU_HWACCEL 0 -%define CONFIG_AAC_PARSER 1 -%define CONFIG_AAC_LATM_PARSER 1 -%define CONFIG_AC3_PARSER 1 -%define CONFIG_ADX_PARSER 1 -%define CONFIG_AV1_PARSER 1 -%define CONFIG_AVS2_PARSER 1 -%define CONFIG_BMP_PARSER 1 -%define CONFIG_CAVSVIDEO_PARSER 1 -%define CONFIG_COOK_PARSER 1 -%define CONFIG_DCA_PARSER 1 -%define CONFIG_DIRAC_PARSER 1 -%define CONFIG_DNXHD_PARSER 1 -%define CONFIG_DPX_PARSER 1 -%define CONFIG_DVAUDIO_PARSER 1 -%define CONFIG_DVBSUB_PARSER 1 -%define CONFIG_DVDSUB_PARSER 1 -%define CONFIG_DVD_NAV_PARSER 1 -%define CONFIG_FLAC_PARSER 1 -%define CONFIG_G729_PARSER 1 -%define CONFIG_GSM_PARSER 1 -%define CONFIG_H261_PARSER 1 -%define CONFIG_H263_PARSER 1 -%define CONFIG_H264_PARSER 1 -%define CONFIG_HEVC_PARSER 1 -%define CONFIG_MJPEG_PARSER 1 -%define CONFIG_MLP_PARSER 1 -%define CONFIG_MPEG4VIDEO_PARSER 1 -%define CONFIG_MPEGAUDIO_PARSER 1 -%define CONFIG_MPEGVIDEO_PARSER 1 -%define CONFIG_OPUS_PARSER 1 -%define CONFIG_PNG_PARSER 1 -%define CONFIG_PNM_PARSER 1 -%define CONFIG_RV30_PARSER 1 -%define CONFIG_RV40_PARSER 1 -%define CONFIG_SBC_PARSER 1 -%define CONFIG_SIPR_PARSER 1 -%define CONFIG_TAK_PARSER 1 -%define CONFIG_VC1_PARSER 1 -%define CONFIG_VORBIS_PARSER 1 -%define CONFIG_VP3_PARSER 1 -%define CONFIG_VP8_PARSER 1 -%define CONFIG_VP9_PARSER 1 -%define CONFIG_XMA_PARSER 1 -%define CONFIG_ALSA_INDEV 0 -%define CONFIG_ANDROID_CAMERA_INDEV 0 -%define CONFIG_AVFOUNDATION_INDEV 0 -%define CONFIG_BKTR_INDEV 0 -%define CONFIG_DECKLINK_INDEV 0 -%define CONFIG_LIBNDI_NEWTEK_INDEV 0 -%define CONFIG_DSHOW_INDEV 0 -%define CONFIG_FBDEV_INDEV 0 -%define CONFIG_GDIGRAB_INDEV 0 -%define CONFIG_IEC61883_INDEV 0 -%define CONFIG_JACK_INDEV 0 -%define CONFIG_KMSGRAB_INDEV 0 -%define CONFIG_LAVFI_INDEV 0 -%define CONFIG_OPENAL_INDEV 0 -%define CONFIG_OSS_INDEV 0 -%define CONFIG_PULSE_INDEV 0 -%define CONFIG_SNDIO_INDEV 0 -%define CONFIG_V4L2_INDEV 0 -%define CONFIG_VFWCAP_INDEV 0 -%define CONFIG_XCBGRAB_INDEV 0 -%define CONFIG_LIBCDIO_INDEV 0 -%define CONFIG_LIBDC1394_INDEV 0 -%define CONFIG_ALSA_OUTDEV 0 -%define CONFIG_CACA_OUTDEV 0 -%define CONFIG_DECKLINK_OUTDEV 0 -%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -%define CONFIG_FBDEV_OUTDEV 0 -%define CONFIG_OPENGL_OUTDEV 0 -%define CONFIG_OSS_OUTDEV 0 -%define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL2_OUTDEV 0 -%define CONFIG_SNDIO_OUTDEV 0 -%define CONFIG_V4L2_OUTDEV 0 -%define CONFIG_XV_OUTDEV 0 -%define CONFIG_ABENCH_FILTER 0 -%define CONFIG_ACOMPRESSOR_FILTER 0 -%define CONFIG_ACONTRAST_FILTER 0 -%define CONFIG_ACOPY_FILTER 0 -%define CONFIG_ACUE_FILTER 0 -%define CONFIG_ACROSSFADE_FILTER 0 -%define CONFIG_ACROSSOVER_FILTER 0 -%define CONFIG_ACRUSHER_FILTER 0 -%define CONFIG_ADECLICK_FILTER 0 -%define CONFIG_ADECLIP_FILTER 0 -%define CONFIG_ADELAY_FILTER 0 -%define CONFIG_ADERIVATIVE_FILTER 0 -%define CONFIG_AECHO_FILTER 0 -%define CONFIG_AEMPHASIS_FILTER 0 -%define CONFIG_AEVAL_FILTER 0 -%define CONFIG_AFADE_FILTER 0 -%define CONFIG_AFFTDN_FILTER 0 -%define CONFIG_AFFTFILT_FILTER 0 -%define CONFIG_AFIR_FILTER 0 -%define CONFIG_AFORMAT_FILTER 0 -%define CONFIG_AGATE_FILTER 0 -%define CONFIG_AIIR_FILTER 0 -%define CONFIG_AINTEGRAL_FILTER 0 -%define CONFIG_AINTERLEAVE_FILTER 0 -%define CONFIG_ALIMITER_FILTER 0 -%define CONFIG_ALLPASS_FILTER 0 -%define CONFIG_ALOOP_FILTER 0 -%define CONFIG_AMERGE_FILTER 0 -%define CONFIG_AMETADATA_FILTER 0 -%define CONFIG_AMIX_FILTER 0 -%define CONFIG_AMULTIPLY_FILTER 0 -%define CONFIG_ANEQUALIZER_FILTER 0 -%define CONFIG_ANULL_FILTER 0 -%define CONFIG_APAD_FILTER 0 -%define CONFIG_APERMS_FILTER 0 -%define CONFIG_APHASER_FILTER 0 -%define CONFIG_APULSATOR_FILTER 0 -%define CONFIG_AREALTIME_FILTER 0 -%define CONFIG_ARESAMPLE_FILTER 0 -%define CONFIG_AREVERSE_FILTER 0 -%define CONFIG_ASELECT_FILTER 0 -%define CONFIG_ASENDCMD_FILTER 0 -%define CONFIG_ASETNSAMPLES_FILTER 0 -%define CONFIG_ASETPTS_FILTER 0 -%define CONFIG_ASETRATE_FILTER 0 -%define CONFIG_ASETTB_FILTER 0 -%define CONFIG_ASHOWINFO_FILTER 0 -%define CONFIG_ASIDEDATA_FILTER 0 -%define CONFIG_ASPLIT_FILTER 0 -%define CONFIG_ASTATS_FILTER 0 -%define CONFIG_ASTREAMSELECT_FILTER 0 -%define CONFIG_ATEMPO_FILTER 0 -%define CONFIG_ATRIM_FILTER 0 -%define CONFIG_AZMQ_FILTER 0 -%define CONFIG_BANDPASS_FILTER 0 -%define CONFIG_BANDREJECT_FILTER 0 -%define CONFIG_BASS_FILTER 0 -%define CONFIG_BIQUAD_FILTER 0 -%define CONFIG_BS2B_FILTER 0 -%define CONFIG_CHANNELMAP_FILTER 0 -%define CONFIG_CHANNELSPLIT_FILTER 0 -%define CONFIG_CHORUS_FILTER 0 -%define CONFIG_COMPAND_FILTER 0 -%define CONFIG_COMPENSATIONDELAY_FILTER 0 -%define CONFIG_CROSSFEED_FILTER 0 -%define CONFIG_CRYSTALIZER_FILTER 0 -%define CONFIG_DCSHIFT_FILTER 0 -%define CONFIG_DRMETER_FILTER 0 -%define CONFIG_DYNAUDNORM_FILTER 0 -%define CONFIG_EARWAX_FILTER 0 -%define CONFIG_EBUR128_FILTER 0 -%define CONFIG_EQUALIZER_FILTER 0 -%define CONFIG_EXTRASTEREO_FILTER 0 -%define CONFIG_FIREQUALIZER_FILTER 0 -%define CONFIG_FLANGER_FILTER 0 -%define CONFIG_HAAS_FILTER 0 -%define CONFIG_HDCD_FILTER 0 -%define CONFIG_HEADPHONE_FILTER 0 -%define CONFIG_HIGHPASS_FILTER 0 -%define CONFIG_HIGHSHELF_FILTER 0 -%define CONFIG_JOIN_FILTER 0 -%define CONFIG_LADSPA_FILTER 0 -%define CONFIG_LOUDNORM_FILTER 0 -%define CONFIG_LOWPASS_FILTER 0 -%define CONFIG_LOWSHELF_FILTER 0 -%define CONFIG_LV2_FILTER 0 -%define CONFIG_MCOMPAND_FILTER 0 -%define CONFIG_PAN_FILTER 0 -%define CONFIG_REPLAYGAIN_FILTER 0 -%define CONFIG_RESAMPLE_FILTER 0 -%define CONFIG_RUBBERBAND_FILTER 0 -%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -%define CONFIG_SIDECHAINGATE_FILTER 0 -%define CONFIG_SILENCEDETECT_FILTER 0 -%define CONFIG_SILENCEREMOVE_FILTER 0 -%define CONFIG_SOFALIZER_FILTER 0 -%define CONFIG_STEREOTOOLS_FILTER 0 -%define CONFIG_STEREOWIDEN_FILTER 0 -%define CONFIG_SUPEREQUALIZER_FILTER 0 -%define CONFIG_SURROUND_FILTER 0 -%define CONFIG_TREBLE_FILTER 0 -%define CONFIG_TREMOLO_FILTER 0 -%define CONFIG_VIBRATO_FILTER 0 -%define CONFIG_VOLUME_FILTER 0 -%define CONFIG_VOLUMEDETECT_FILTER 0 -%define CONFIG_AEVALSRC_FILTER 0 -%define CONFIG_ANOISESRC_FILTER 0 -%define CONFIG_ANULLSRC_FILTER 0 -%define CONFIG_FLITE_FILTER 0 -%define CONFIG_HILBERT_FILTER 0 -%define CONFIG_SINC_FILTER 0 -%define CONFIG_SINE_FILTER 0 -%define CONFIG_ANULLSINK_FILTER 0 -%define CONFIG_ALPHAEXTRACT_FILTER 0 -%define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_AMPLIFY_FILTER 0 -%define CONFIG_ASS_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 -%define CONFIG_AVGBLUR_FILTER 0 -%define CONFIG_AVGBLUR_OPENCL_FILTER 0 -%define CONFIG_BBOX_FILTER 0 -%define CONFIG_BENCH_FILTER 0 -%define CONFIG_BITPLANENOISE_FILTER 0 -%define CONFIG_BLACKDETECT_FILTER 0 -%define CONFIG_BLACKFRAME_FILTER 0 -%define CONFIG_BLEND_FILTER 0 -%define CONFIG_BM3D_FILTER 0 -%define CONFIG_BOXBLUR_FILTER 0 -%define CONFIG_BOXBLUR_OPENCL_FILTER 0 -%define CONFIG_BWDIF_FILTER 0 -%define CONFIG_CHROMAHOLD_FILTER 0 -%define CONFIG_CHROMAKEY_FILTER 0 -%define CONFIG_CHROMASHIFT_FILTER 0 -%define CONFIG_CIESCOPE_FILTER 0 -%define CONFIG_CODECVIEW_FILTER 0 -%define CONFIG_COLORBALANCE_FILTER 0 -%define CONFIG_COLORCHANNELMIXER_FILTER 0 -%define CONFIG_COLORKEY_FILTER 0 -%define CONFIG_COLORLEVELS_FILTER 0 -%define CONFIG_COLORMATRIX_FILTER 0 -%define CONFIG_COLORSPACE_FILTER 0 -%define CONFIG_CONVOLUTION_FILTER 0 -%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 -%define CONFIG_CONVOLVE_FILTER 0 -%define CONFIG_COPY_FILTER 0 -%define CONFIG_COREIMAGE_FILTER 0 -%define CONFIG_COVER_RECT_FILTER 0 -%define CONFIG_CROP_FILTER 0 -%define CONFIG_CROPDETECT_FILTER 0 -%define CONFIG_CUE_FILTER 0 -%define CONFIG_CURVES_FILTER 0 -%define CONFIG_DATASCOPE_FILTER 0 -%define CONFIG_DCTDNOIZ_FILTER 0 -%define CONFIG_DEBAND_FILTER 0 -%define CONFIG_DEBLOCK_FILTER 0 -%define CONFIG_DECIMATE_FILTER 0 -%define CONFIG_DECONVOLVE_FILTER 0 -%define CONFIG_DEDOT_FILTER 0 -%define CONFIG_DEFLATE_FILTER 0 -%define CONFIG_DEFLICKER_FILTER 0 -%define CONFIG_DEINTERLACE_QSV_FILTER 0 -%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 -%define CONFIG_DEJUDDER_FILTER 0 -%define CONFIG_DELOGO_FILTER 0 -%define CONFIG_DENOISE_VAAPI_FILTER 0 -%define CONFIG_DESHAKE_FILTER 0 -%define CONFIG_DESPILL_FILTER 0 -%define CONFIG_DETELECINE_FILTER 0 -%define CONFIG_DILATION_FILTER 0 -%define CONFIG_DILATION_OPENCL_FILTER 0 -%define CONFIG_DISPLACE_FILTER 0 -%define CONFIG_DOUBLEWEAVE_FILTER 0 -%define CONFIG_DRAWBOX_FILTER 0 -%define CONFIG_DRAWGRAPH_FILTER 0 -%define CONFIG_DRAWGRID_FILTER 0 -%define CONFIG_DRAWTEXT_FILTER 0 -%define CONFIG_EDGEDETECT_FILTER 0 -%define CONFIG_ELBG_FILTER 0 -%define CONFIG_ENTROPY_FILTER 0 -%define CONFIG_EQ_FILTER 0 -%define CONFIG_EROSION_FILTER 0 -%define CONFIG_EROSION_OPENCL_FILTER 0 -%define CONFIG_EXTRACTPLANES_FILTER 0 -%define CONFIG_FADE_FILTER 0 -%define CONFIG_FFTDNOIZ_FILTER 0 -%define CONFIG_FFTFILT_FILTER 0 -%define CONFIG_FIELD_FILTER 0 -%define CONFIG_FIELDHINT_FILTER 0 -%define CONFIG_FIELDMATCH_FILTER 0 -%define CONFIG_FIELDORDER_FILTER 0 -%define CONFIG_FILLBORDERS_FILTER 0 -%define CONFIG_FIND_RECT_FILTER 0 -%define CONFIG_FLOODFILL_FILTER 0 -%define CONFIG_FORMAT_FILTER 0 -%define CONFIG_FPS_FILTER 0 -%define CONFIG_FRAMEPACK_FILTER 0 -%define CONFIG_FRAMERATE_FILTER 0 -%define CONFIG_FRAMESTEP_FILTER 0 -%define CONFIG_FREEZEDETECT_FILTER 0 -%define CONFIG_FREI0R_FILTER 0 -%define CONFIG_FSPP_FILTER 0 -%define CONFIG_GBLUR_FILTER 0 -%define CONFIG_GEQ_FILTER 0 -%define CONFIG_GRADFUN_FILTER 0 -%define CONFIG_GRAPHMONITOR_FILTER 0 -%define CONFIG_GREYEDGE_FILTER 0 -%define CONFIG_HALDCLUT_FILTER 0 -%define CONFIG_HFLIP_FILTER 0 -%define CONFIG_HISTEQ_FILTER 0 -%define CONFIG_HISTOGRAM_FILTER 0 -%define CONFIG_HQDN3D_FILTER 0 -%define CONFIG_HQX_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 -%define CONFIG_HWDOWNLOAD_FILTER 0 -%define CONFIG_HWMAP_FILTER 0 -%define CONFIG_HWUPLOAD_FILTER 0 -%define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HYSTERESIS_FILTER 0 -%define CONFIG_IDET_FILTER 0 -%define CONFIG_IL_FILTER 0 -%define CONFIG_INFLATE_FILTER 0 -%define CONFIG_INTERLACE_FILTER 0 -%define CONFIG_INTERLEAVE_FILTER 0 -%define CONFIG_KERNDEINT_FILTER 0 -%define CONFIG_LENSCORRECTION_FILTER 0 -%define CONFIG_LENSFUN_FILTER 0 -%define CONFIG_LIBVMAF_FILTER 0 -%define CONFIG_LIMITER_FILTER 0 -%define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUMAKEY_FILTER 0 -%define CONFIG_LUT_FILTER 0 -%define CONFIG_LUT1D_FILTER 0 -%define CONFIG_LUT2_FILTER 0 -%define CONFIG_LUT3D_FILTER 0 -%define CONFIG_LUTRGB_FILTER 0 -%define CONFIG_LUTYUV_FILTER 0 -%define CONFIG_MASKEDCLAMP_FILTER 0 -%define CONFIG_MASKEDMERGE_FILTER 0 -%define CONFIG_MCDEINT_FILTER 0 -%define CONFIG_MERGEPLANES_FILTER 0 -%define CONFIG_MESTIMATE_FILTER 0 -%define CONFIG_METADATA_FILTER 0 -%define CONFIG_MIDEQUALIZER_FILTER 0 -%define CONFIG_MINTERPOLATE_FILTER 0 -%define CONFIG_MIX_FILTER 0 -%define CONFIG_MPDECIMATE_FILTER 0 -%define CONFIG_NEGATE_FILTER 0 -%define CONFIG_NLMEANS_FILTER 0 -%define CONFIG_NNEDI_FILTER 0 -%define CONFIG_NOFORMAT_FILTER 0 -%define CONFIG_NOISE_FILTER 0 -%define CONFIG_NORMALIZE_FILTER 0 -%define CONFIG_NULL_FILTER 0 -%define CONFIG_OCR_FILTER 0 -%define CONFIG_OCV_FILTER 0 -%define CONFIG_OSCILLOSCOPE_FILTER 0 -%define CONFIG_OVERLAY_FILTER 0 -%define CONFIG_OVERLAY_OPENCL_FILTER 0 -%define CONFIG_OVERLAY_QSV_FILTER 0 -%define CONFIG_OWDENOISE_FILTER 0 -%define CONFIG_PAD_FILTER 0 -%define CONFIG_PALETTEGEN_FILTER 0 -%define CONFIG_PALETTEUSE_FILTER 0 -%define CONFIG_PERMS_FILTER 0 -%define CONFIG_PERSPECTIVE_FILTER 0 -%define CONFIG_PHASE_FILTER 0 -%define CONFIG_PIXDESCTEST_FILTER 0 -%define CONFIG_PIXSCOPE_FILTER 0 -%define CONFIG_PP_FILTER 0 -%define CONFIG_PP7_FILTER 0 -%define CONFIG_PREMULTIPLY_FILTER 0 -%define CONFIG_PREWITT_FILTER 0 -%define CONFIG_PREWITT_OPENCL_FILTER 0 -%define CONFIG_PROCAMP_VAAPI_FILTER 0 -%define CONFIG_PROGRAM_OPENCL_FILTER 0 -%define CONFIG_PSEUDOCOLOR_FILTER 0 -%define CONFIG_PSNR_FILTER 0 -%define CONFIG_PULLUP_FILTER 0 -%define CONFIG_QP_FILTER 0 -%define CONFIG_RANDOM_FILTER 0 -%define CONFIG_READEIA608_FILTER 0 -%define CONFIG_READVITC_FILTER 0 -%define CONFIG_REALTIME_FILTER 0 -%define CONFIG_REMAP_FILTER 0 -%define CONFIG_REMOVEGRAIN_FILTER 0 -%define CONFIG_REMOVELOGO_FILTER 0 -%define CONFIG_REPEATFIELDS_FILTER 0 -%define CONFIG_REVERSE_FILTER 0 -%define CONFIG_RGBASHIFT_FILTER 0 -%define CONFIG_ROBERTS_FILTER 0 -%define CONFIG_ROBERTS_OPENCL_FILTER 0 -%define CONFIG_ROTATE_FILTER 0 -%define CONFIG_SAB_FILTER 0 -%define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE_CUDA_FILTER 0 -%define CONFIG_SCALE_NPP_FILTER 0 -%define CONFIG_SCALE_QSV_FILTER 0 -%define CONFIG_SCALE_VAAPI_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 -%define CONFIG_SELECT_FILTER 0 -%define CONFIG_SELECTIVECOLOR_FILTER 0 -%define CONFIG_SENDCMD_FILTER 0 -%define CONFIG_SEPARATEFIELDS_FILTER 0 -%define CONFIG_SETDAR_FILTER 0 -%define CONFIG_SETFIELD_FILTER 0 -%define CONFIG_SETPARAMS_FILTER 0 -%define CONFIG_SETPTS_FILTER 0 -%define CONFIG_SETRANGE_FILTER 0 -%define CONFIG_SETSAR_FILTER 0 -%define CONFIG_SETTB_FILTER 0 -%define CONFIG_SHARPNESS_VAAPI_FILTER 0 -%define CONFIG_SHOWINFO_FILTER 0 -%define CONFIG_SHOWPALETTE_FILTER 0 -%define CONFIG_SHUFFLEFRAMES_FILTER 0 -%define CONFIG_SHUFFLEPLANES_FILTER 0 -%define CONFIG_SIDEDATA_FILTER 0 -%define CONFIG_SIGNALSTATS_FILTER 0 -%define CONFIG_SIGNATURE_FILTER 0 -%define CONFIG_SMARTBLUR_FILTER 0 -%define CONFIG_SOBEL_FILTER 0 -%define CONFIG_SOBEL_OPENCL_FILTER 0 -%define CONFIG_SPLIT_FILTER 0 -%define CONFIG_SPP_FILTER 0 -%define CONFIG_SR_FILTER 0 -%define CONFIG_SSIM_FILTER 0 -%define CONFIG_STEREO3D_FILTER 0 -%define CONFIG_STREAMSELECT_FILTER 0 -%define CONFIG_SUBTITLES_FILTER 0 -%define CONFIG_SUPER2XSAI_FILTER 0 -%define CONFIG_SWAPRECT_FILTER 0 -%define CONFIG_SWAPUV_FILTER 0 -%define CONFIG_TBLEND_FILTER 0 -%define CONFIG_TELECINE_FILTER 0 -%define CONFIG_THRESHOLD_FILTER 0 -%define CONFIG_THUMBNAIL_FILTER 0 -%define CONFIG_THUMBNAIL_CUDA_FILTER 0 -%define CONFIG_TILE_FILTER 0 -%define CONFIG_TINTERLACE_FILTER 0 -%define CONFIG_TLUT2_FILTER 0 -%define CONFIG_TMIX_FILTER 0 -%define CONFIG_TONEMAP_FILTER 0 -%define CONFIG_TONEMAP_OPENCL_FILTER 0 -%define CONFIG_TPAD_FILTER 0 -%define CONFIG_TRANSPOSE_FILTER 0 -%define CONFIG_TRANSPOSE_NPP_FILTER 0 -%define CONFIG_TRIM_FILTER 0 -%define CONFIG_UNPREMULTIPLY_FILTER 0 -%define CONFIG_UNSHARP_FILTER 0 -%define CONFIG_UNSHARP_OPENCL_FILTER 0 -%define CONFIG_USPP_FILTER 0 -%define CONFIG_VAGUEDENOISER_FILTER 0 -%define CONFIG_VECTORSCOPE_FILTER 0 -%define CONFIG_VFLIP_FILTER 0 -%define CONFIG_VFRDET_FILTER 0 -%define CONFIG_VIBRANCE_FILTER 0 -%define CONFIG_VIDSTABDETECT_FILTER 0 -%define CONFIG_VIDSTABTRANSFORM_FILTER 0 -%define CONFIG_VIGNETTE_FILTER 0 -%define CONFIG_VMAFMOTION_FILTER 0 -%define CONFIG_VPP_QSV_FILTER 0 -%define CONFIG_VSTACK_FILTER 0 -%define CONFIG_W3FDIF_FILTER 0 -%define CONFIG_WAVEFORM_FILTER 0 -%define CONFIG_WEAVE_FILTER 0 -%define CONFIG_XBR_FILTER 0 -%define CONFIG_XSTACK_FILTER 0 -%define CONFIG_YADIF_FILTER 0 -%define CONFIG_YADIF_CUDA_FILTER 0 -%define CONFIG_ZMQ_FILTER 0 -%define CONFIG_ZOOMPAN_FILTER 0 -%define CONFIG_ZSCALE_FILTER 0 -%define CONFIG_ALLRGB_FILTER 0 -%define CONFIG_ALLYUV_FILTER 0 -%define CONFIG_CELLAUTO_FILTER 0 -%define CONFIG_COLOR_FILTER 0 -%define CONFIG_COREIMAGESRC_FILTER 0 -%define CONFIG_FREI0R_SRC_FILTER 0 -%define CONFIG_HALDCLUTSRC_FILTER 0 -%define CONFIG_LIFE_FILTER 0 -%define CONFIG_MANDELBROT_FILTER 0 -%define CONFIG_MPTESTSRC_FILTER 0 -%define CONFIG_NULLSRC_FILTER 0 -%define CONFIG_OPENCLSRC_FILTER 0 -%define CONFIG_PAL75BARS_FILTER 0 -%define CONFIG_PAL100BARS_FILTER 0 -%define CONFIG_RGBTESTSRC_FILTER 0 -%define CONFIG_SMPTEBARS_FILTER 0 -%define CONFIG_SMPTEHDBARS_FILTER 0 -%define CONFIG_TESTSRC_FILTER 0 -%define CONFIG_TESTSRC2_FILTER 0 -%define CONFIG_YUVTESTSRC_FILTER 0 -%define CONFIG_NULLSINK_FILTER 0 -%define CONFIG_ABITSCOPE_FILTER 0 -%define CONFIG_ADRAWGRAPH_FILTER 0 -%define CONFIG_AGRAPHMONITOR_FILTER 0 -%define CONFIG_AHISTOGRAM_FILTER 0 -%define CONFIG_APHASEMETER_FILTER 0 -%define CONFIG_AVECTORSCOPE_FILTER 0 -%define CONFIG_CONCAT_FILTER 0 -%define CONFIG_SHOWCQT_FILTER 0 -%define CONFIG_SHOWFREQS_FILTER 0 -%define CONFIG_SHOWSPECTRUM_FILTER 0 -%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -%define CONFIG_SHOWVOLUME_FILTER 0 -%define CONFIG_SHOWWAVES_FILTER 0 -%define CONFIG_SHOWWAVESPIC_FILTER 0 -%define CONFIG_SPECTRUMSYNTH_FILTER 0 -%define CONFIG_AMOVIE_FILTER 0 -%define CONFIG_MOVIE_FILTER 0 -%define CONFIG_AFIFO_FILTER 0 -%define CONFIG_FIFO_FILTER 0 -%define CONFIG_AA_DEMUXER 1 -%define CONFIG_AAC_DEMUXER 1 -%define CONFIG_AC3_DEMUXER 1 -%define CONFIG_ACM_DEMUXER 1 -%define CONFIG_ACT_DEMUXER 1 -%define CONFIG_ADF_DEMUXER 1 -%define CONFIG_ADP_DEMUXER 1 -%define CONFIG_ADS_DEMUXER 1 -%define CONFIG_ADX_DEMUXER 1 -%define CONFIG_AEA_DEMUXER 1 -%define CONFIG_AFC_DEMUXER 1 -%define CONFIG_AIFF_DEMUXER 1 -%define CONFIG_AIX_DEMUXER 1 -%define CONFIG_AMR_DEMUXER 1 -%define CONFIG_AMRNB_DEMUXER 1 -%define CONFIG_AMRWB_DEMUXER 1 -%define CONFIG_ANM_DEMUXER 1 -%define CONFIG_APC_DEMUXER 1 -%define CONFIG_APE_DEMUXER 1 -%define CONFIG_APNG_DEMUXER 1 -%define CONFIG_APTX_DEMUXER 1 -%define CONFIG_APTX_HD_DEMUXER 1 -%define CONFIG_AQTITLE_DEMUXER 1 -%define CONFIG_ASF_DEMUXER 1 -%define CONFIG_ASF_O_DEMUXER 1 -%define CONFIG_ASS_DEMUXER 1 -%define CONFIG_AST_DEMUXER 1 -%define CONFIG_AU_DEMUXER 1 -%define CONFIG_AVI_DEMUXER 1 -%define CONFIG_AVISYNTH_DEMUXER 0 -%define CONFIG_AVR_DEMUXER 1 -%define CONFIG_AVS_DEMUXER 1 -%define CONFIG_AVS2_DEMUXER 1 -%define CONFIG_BETHSOFTVID_DEMUXER 1 -%define CONFIG_BFI_DEMUXER 1 -%define CONFIG_BINTEXT_DEMUXER 1 -%define CONFIG_BINK_DEMUXER 1 -%define CONFIG_BIT_DEMUXER 1 -%define CONFIG_BMV_DEMUXER 1 -%define CONFIG_BFSTM_DEMUXER 1 -%define CONFIG_BRSTM_DEMUXER 1 -%define CONFIG_BOA_DEMUXER 1 -%define CONFIG_C93_DEMUXER 1 -%define CONFIG_CAF_DEMUXER 1 -%define CONFIG_CAVSVIDEO_DEMUXER 1 -%define CONFIG_CDG_DEMUXER 1 -%define CONFIG_CDXL_DEMUXER 1 -%define CONFIG_CINE_DEMUXER 1 -%define CONFIG_CODEC2_DEMUXER 1 -%define CONFIG_CODEC2RAW_DEMUXER 1 -%define CONFIG_CONCAT_DEMUXER 1 -%define CONFIG_DASH_DEMUXER 0 -%define CONFIG_DATA_DEMUXER 1 -%define CONFIG_DAUD_DEMUXER 1 -%define CONFIG_DCSTR_DEMUXER 1 -%define CONFIG_DFA_DEMUXER 1 -%define CONFIG_DIRAC_DEMUXER 1 -%define CONFIG_DNXHD_DEMUXER 1 -%define CONFIG_DSF_DEMUXER 1 -%define CONFIG_DSICIN_DEMUXER 1 -%define CONFIG_DSS_DEMUXER 1 -%define CONFIG_DTS_DEMUXER 1 -%define CONFIG_DTSHD_DEMUXER 1 -%define CONFIG_DV_DEMUXER 1 -%define CONFIG_DVBSUB_DEMUXER 1 -%define CONFIG_DVBTXT_DEMUXER 1 -%define CONFIG_DXA_DEMUXER 1 -%define CONFIG_EA_DEMUXER 1 -%define CONFIG_EA_CDATA_DEMUXER 1 -%define CONFIG_EAC3_DEMUXER 1 -%define CONFIG_EPAF_DEMUXER 1 -%define CONFIG_FFMETADATA_DEMUXER 1 -%define CONFIG_FILMSTRIP_DEMUXER 1 -%define CONFIG_FITS_DEMUXER 1 -%define CONFIG_FLAC_DEMUXER 1 -%define CONFIG_FLIC_DEMUXER 1 -%define CONFIG_FLV_DEMUXER 1 -%define CONFIG_LIVE_FLV_DEMUXER 1 -%define CONFIG_FOURXM_DEMUXER 1 -%define CONFIG_FRM_DEMUXER 1 -%define CONFIG_FSB_DEMUXER 1 -%define CONFIG_G722_DEMUXER 1 -%define CONFIG_G723_1_DEMUXER 1 -%define CONFIG_G726_DEMUXER 1 -%define CONFIG_G726LE_DEMUXER 1 -%define CONFIG_G729_DEMUXER 1 -%define CONFIG_GDV_DEMUXER 1 -%define CONFIG_GENH_DEMUXER 1 -%define CONFIG_GIF_DEMUXER 1 -%define CONFIG_GSM_DEMUXER 1 -%define CONFIG_GXF_DEMUXER 1 -%define CONFIG_H261_DEMUXER 1 -%define CONFIG_H263_DEMUXER 1 -%define CONFIG_H264_DEMUXER 1 -%define CONFIG_HEVC_DEMUXER 1 -%define CONFIG_HLS_DEMUXER 1 -%define CONFIG_HNM_DEMUXER 1 -%define CONFIG_ICO_DEMUXER 1 -%define CONFIG_IDCIN_DEMUXER 1 -%define CONFIG_IDF_DEMUXER 1 -%define CONFIG_IFF_DEMUXER 1 -%define CONFIG_ILBC_DEMUXER 1 -%define CONFIG_IMAGE2_DEMUXER 1 -%define CONFIG_IMAGE2PIPE_DEMUXER 1 -%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -%define CONFIG_INGENIENT_DEMUXER 1 -%define CONFIG_IPMOVIE_DEMUXER 1 -%define CONFIG_IRCAM_DEMUXER 1 -%define CONFIG_ISS_DEMUXER 1 -%define CONFIG_IV8_DEMUXER 1 -%define CONFIG_IVF_DEMUXER 1 -%define CONFIG_IVR_DEMUXER 1 -%define CONFIG_JACOSUB_DEMUXER 1 -%define CONFIG_JV_DEMUXER 1 -%define CONFIG_LMLM4_DEMUXER 1 -%define CONFIG_LOAS_DEMUXER 1 -%define CONFIG_LRC_DEMUXER 1 -%define CONFIG_LVF_DEMUXER 1 -%define CONFIG_LXF_DEMUXER 1 -%define CONFIG_M4V_DEMUXER 1 -%define CONFIG_MATROSKA_DEMUXER 1 -%define CONFIG_MGSTS_DEMUXER 1 -%define CONFIG_MICRODVD_DEMUXER 1 -%define CONFIG_MJPEG_DEMUXER 1 -%define CONFIG_MJPEG_2000_DEMUXER 1 -%define CONFIG_MLP_DEMUXER 1 -%define CONFIG_MLV_DEMUXER 1 -%define CONFIG_MM_DEMUXER 1 -%define CONFIG_MMF_DEMUXER 1 -%define CONFIG_MOV_DEMUXER 1 -%define CONFIG_MP3_DEMUXER 1 -%define CONFIG_MPC_DEMUXER 1 -%define CONFIG_MPC8_DEMUXER 1 -%define CONFIG_MPEGPS_DEMUXER 1 -%define CONFIG_MPEGTS_DEMUXER 1 -%define CONFIG_MPEGTSRAW_DEMUXER 1 -%define CONFIG_MPEGVIDEO_DEMUXER 1 -%define CONFIG_MPJPEG_DEMUXER 1 -%define CONFIG_MPL2_DEMUXER 1 -%define CONFIG_MPSUB_DEMUXER 1 -%define CONFIG_MSF_DEMUXER 1 -%define CONFIG_MSNWC_TCP_DEMUXER 1 -%define CONFIG_MTAF_DEMUXER 1 -%define CONFIG_MTV_DEMUXER 1 -%define CONFIG_MUSX_DEMUXER 1 -%define CONFIG_MV_DEMUXER 1 -%define CONFIG_MVI_DEMUXER 1 -%define CONFIG_MXF_DEMUXER 1 -%define CONFIG_MXG_DEMUXER 1 -%define CONFIG_NC_DEMUXER 1 -%define CONFIG_NISTSPHERE_DEMUXER 1 -%define CONFIG_NSP_DEMUXER 1 -%define CONFIG_NSV_DEMUXER 1 -%define CONFIG_NUT_DEMUXER 1 -%define CONFIG_NUV_DEMUXER 1 -%define CONFIG_OGG_DEMUXER 1 -%define CONFIG_OMA_DEMUXER 1 -%define CONFIG_PAF_DEMUXER 1 -%define CONFIG_PCM_ALAW_DEMUXER 1 -%define CONFIG_PCM_MULAW_DEMUXER 1 -%define CONFIG_PCM_VIDC_DEMUXER 1 -%define CONFIG_PCM_F64BE_DEMUXER 1 -%define CONFIG_PCM_F64LE_DEMUXER 1 -%define CONFIG_PCM_F32BE_DEMUXER 1 -%define CONFIG_PCM_F32LE_DEMUXER 1 -%define CONFIG_PCM_S32BE_DEMUXER 1 -%define CONFIG_PCM_S32LE_DEMUXER 1 -%define CONFIG_PCM_S24BE_DEMUXER 1 -%define CONFIG_PCM_S24LE_DEMUXER 1 -%define CONFIG_PCM_S16BE_DEMUXER 1 -%define CONFIG_PCM_S16LE_DEMUXER 1 -%define CONFIG_PCM_S8_DEMUXER 1 -%define CONFIG_PCM_U32BE_DEMUXER 1 -%define CONFIG_PCM_U32LE_DEMUXER 1 -%define CONFIG_PCM_U24BE_DEMUXER 1 -%define CONFIG_PCM_U24LE_DEMUXER 1 -%define CONFIG_PCM_U16BE_DEMUXER 1 -%define CONFIG_PCM_U16LE_DEMUXER 1 -%define CONFIG_PCM_U8_DEMUXER 1 -%define CONFIG_PJS_DEMUXER 1 -%define CONFIG_PMP_DEMUXER 1 -%define CONFIG_PVA_DEMUXER 1 -%define CONFIG_PVF_DEMUXER 1 -%define CONFIG_QCP_DEMUXER 1 -%define CONFIG_R3D_DEMUXER 1 -%define CONFIG_RAWVIDEO_DEMUXER 1 -%define CONFIG_REALTEXT_DEMUXER 1 -%define CONFIG_REDSPARK_DEMUXER 1 -%define CONFIG_RL2_DEMUXER 1 -%define CONFIG_RM_DEMUXER 1 -%define CONFIG_ROQ_DEMUXER 1 -%define CONFIG_RPL_DEMUXER 1 -%define CONFIG_RSD_DEMUXER 1 -%define CONFIG_RSO_DEMUXER 1 -%define CONFIG_RTP_DEMUXER 0 -%define CONFIG_RTSP_DEMUXER 0 -%define CONFIG_S337M_DEMUXER 1 -%define CONFIG_SAMI_DEMUXER 1 -%define CONFIG_SAP_DEMUXER 0 -%define CONFIG_SBC_DEMUXER 1 -%define CONFIG_SBG_DEMUXER 1 -%define CONFIG_SCC_DEMUXER 1 -%define CONFIG_SDP_DEMUXER 0 -%define CONFIG_SDR2_DEMUXER 1 -%define CONFIG_SDS_DEMUXER 1 -%define CONFIG_SDX_DEMUXER 1 -%define CONFIG_SEGAFILM_DEMUXER 1 -%define CONFIG_SER_DEMUXER 1 -%define CONFIG_SHORTEN_DEMUXER 1 -%define CONFIG_SIFF_DEMUXER 1 -%define CONFIG_SLN_DEMUXER 1 -%define CONFIG_SMACKER_DEMUXER 1 -%define CONFIG_SMJPEG_DEMUXER 1 -%define CONFIG_SMUSH_DEMUXER 1 -%define CONFIG_SOL_DEMUXER 1 -%define CONFIG_SOX_DEMUXER 1 -%define CONFIG_SPDIF_DEMUXER 1 -%define CONFIG_SRT_DEMUXER 1 -%define CONFIG_STR_DEMUXER 1 -%define CONFIG_STL_DEMUXER 1 -%define CONFIG_SUBVIEWER1_DEMUXER 1 -%define CONFIG_SUBVIEWER_DEMUXER 1 -%define CONFIG_SUP_DEMUXER 1 -%define CONFIG_SVAG_DEMUXER 1 -%define CONFIG_SWF_DEMUXER 1 -%define CONFIG_TAK_DEMUXER 1 -%define CONFIG_TEDCAPTIONS_DEMUXER 1 -%define CONFIG_THP_DEMUXER 1 -%define CONFIG_THREEDOSTR_DEMUXER 1 -%define CONFIG_TIERTEXSEQ_DEMUXER 1 -%define CONFIG_TMV_DEMUXER 1 -%define CONFIG_TRUEHD_DEMUXER 1 -%define CONFIG_TTA_DEMUXER 1 -%define CONFIG_TXD_DEMUXER 1 -%define CONFIG_TTY_DEMUXER 1 -%define CONFIG_TY_DEMUXER 1 -%define CONFIG_V210_DEMUXER 1 -%define CONFIG_V210X_DEMUXER 1 -%define CONFIG_VAG_DEMUXER 1 -%define CONFIG_VC1_DEMUXER 1 -%define CONFIG_VC1T_DEMUXER 1 -%define CONFIG_VIVO_DEMUXER 1 -%define CONFIG_VMD_DEMUXER 1 -%define CONFIG_VOBSUB_DEMUXER 1 -%define CONFIG_VOC_DEMUXER 1 -%define CONFIG_VPK_DEMUXER 1 -%define CONFIG_VPLAYER_DEMUXER 1 -%define CONFIG_VQF_DEMUXER 1 -%define CONFIG_W64_DEMUXER 1 -%define CONFIG_WAV_DEMUXER 1 -%define CONFIG_WC3_DEMUXER 1 -%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -%define CONFIG_WEBVTT_DEMUXER 1 -%define CONFIG_WSAUD_DEMUXER 1 -%define CONFIG_WSD_DEMUXER 1 -%define CONFIG_WSVQA_DEMUXER 1 -%define CONFIG_WTV_DEMUXER 1 -%define CONFIG_WVE_DEMUXER 1 -%define CONFIG_WV_DEMUXER 1 -%define CONFIG_XA_DEMUXER 1 -%define CONFIG_XBIN_DEMUXER 1 -%define CONFIG_XMV_DEMUXER 1 -%define CONFIG_XVAG_DEMUXER 1 -%define CONFIG_XWMA_DEMUXER 1 -%define CONFIG_YOP_DEMUXER 1 -%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 -%define CONFIG_LIBGME_DEMUXER 0 -%define CONFIG_LIBMODPLUG_DEMUXER 0 -%define CONFIG_LIBOPENMPT_DEMUXER 0 -%define CONFIG_VAPOURSYNTH_DEMUXER 0 -%define CONFIG_A64_MUXER 0 -%define CONFIG_AC3_MUXER 0 -%define CONFIG_ADTS_MUXER 0 -%define CONFIG_ADX_MUXER 0 -%define CONFIG_AIFF_MUXER 0 -%define CONFIG_AMR_MUXER 0 -%define CONFIG_APNG_MUXER 0 -%define CONFIG_APTX_MUXER 0 -%define CONFIG_APTX_HD_MUXER 0 -%define CONFIG_ASF_MUXER 0 -%define CONFIG_ASS_MUXER 0 -%define CONFIG_AST_MUXER 0 -%define CONFIG_ASF_STREAM_MUXER 0 -%define CONFIG_AU_MUXER 0 -%define CONFIG_AVI_MUXER 0 -%define CONFIG_AVM2_MUXER 0 -%define CONFIG_AVS2_MUXER 0 -%define CONFIG_BIT_MUXER 0 -%define CONFIG_CAF_MUXER 0 -%define CONFIG_CAVSVIDEO_MUXER 0 -%define CONFIG_CODEC2_MUXER 0 -%define CONFIG_CODEC2RAW_MUXER 0 -%define CONFIG_CRC_MUXER 0 -%define CONFIG_DASH_MUXER 0 -%define CONFIG_DATA_MUXER 0 -%define CONFIG_DAUD_MUXER 0 -%define CONFIG_DIRAC_MUXER 0 -%define CONFIG_DNXHD_MUXER 0 -%define CONFIG_DTS_MUXER 0 -%define CONFIG_DV_MUXER 0 -%define CONFIG_EAC3_MUXER 0 -%define CONFIG_F4V_MUXER 0 -%define CONFIG_FFMETADATA_MUXER 0 -%define CONFIG_FIFO_MUXER 0 -%define CONFIG_FIFO_TEST_MUXER 0 -%define CONFIG_FILMSTRIP_MUXER 0 -%define CONFIG_FITS_MUXER 0 -%define CONFIG_FLAC_MUXER 0 -%define CONFIG_FLV_MUXER 0 -%define CONFIG_FRAMECRC_MUXER 0 -%define CONFIG_FRAMEHASH_MUXER 0 -%define CONFIG_FRAMEMD5_MUXER 0 -%define CONFIG_G722_MUXER 0 -%define CONFIG_G723_1_MUXER 0 -%define CONFIG_G726_MUXER 0 -%define CONFIG_G726LE_MUXER 0 -%define CONFIG_GIF_MUXER 0 -%define CONFIG_GSM_MUXER 0 -%define CONFIG_GXF_MUXER 0 -%define CONFIG_H261_MUXER 0 -%define CONFIG_H263_MUXER 0 -%define CONFIG_H264_MUXER 0 -%define CONFIG_HASH_MUXER 0 -%define CONFIG_HDS_MUXER 0 -%define CONFIG_HEVC_MUXER 0 -%define CONFIG_HLS_MUXER 0 -%define CONFIG_ICO_MUXER 0 -%define CONFIG_ILBC_MUXER 0 -%define CONFIG_IMAGE2_MUXER 0 -%define CONFIG_IMAGE2PIPE_MUXER 0 -%define CONFIG_IPOD_MUXER 0 -%define CONFIG_IRCAM_MUXER 0 -%define CONFIG_ISMV_MUXER 0 -%define CONFIG_IVF_MUXER 0 -%define CONFIG_JACOSUB_MUXER 0 -%define CONFIG_LATM_MUXER 0 -%define CONFIG_LRC_MUXER 0 -%define CONFIG_M4V_MUXER 0 -%define CONFIG_MD5_MUXER 0 -%define CONFIG_MATROSKA_MUXER 0 -%define CONFIG_MATROSKA_AUDIO_MUXER 0 -%define CONFIG_MICRODVD_MUXER 0 -%define CONFIG_MJPEG_MUXER 0 -%define CONFIG_MLP_MUXER 0 -%define CONFIG_MMF_MUXER 0 -%define CONFIG_MOV_MUXER 0 -%define CONFIG_MP2_MUXER 0 -%define CONFIG_MP3_MUXER 0 -%define CONFIG_MP4_MUXER 0 -%define CONFIG_MPEG1SYSTEM_MUXER 0 -%define CONFIG_MPEG1VCD_MUXER 0 -%define CONFIG_MPEG1VIDEO_MUXER 0 -%define CONFIG_MPEG2DVD_MUXER 0 -%define CONFIG_MPEG2SVCD_MUXER 0 -%define CONFIG_MPEG2VIDEO_MUXER 0 -%define CONFIG_MPEG2VOB_MUXER 0 -%define CONFIG_MPEGTS_MUXER 0 -%define CONFIG_MPJPEG_MUXER 0 -%define CONFIG_MXF_MUXER 0 -%define CONFIG_MXF_D10_MUXER 0 -%define CONFIG_MXF_OPATOM_MUXER 0 -%define CONFIG_NULL_MUXER 0 -%define CONFIG_NUT_MUXER 0 -%define CONFIG_OGA_MUXER 0 -%define CONFIG_OGG_MUXER 0 -%define CONFIG_OGV_MUXER 0 -%define CONFIG_OMA_MUXER 0 -%define CONFIG_OPUS_MUXER 0 -%define CONFIG_PCM_ALAW_MUXER 0 -%define CONFIG_PCM_MULAW_MUXER 0 -%define CONFIG_PCM_VIDC_MUXER 0 -%define CONFIG_PCM_F64BE_MUXER 0 -%define CONFIG_PCM_F64LE_MUXER 0 -%define CONFIG_PCM_F32BE_MUXER 0 -%define CONFIG_PCM_F32LE_MUXER 0 -%define CONFIG_PCM_S32BE_MUXER 0 -%define CONFIG_PCM_S32LE_MUXER 0 -%define CONFIG_PCM_S24BE_MUXER 0 -%define CONFIG_PCM_S24LE_MUXER 0 -%define CONFIG_PCM_S16BE_MUXER 0 -%define CONFIG_PCM_S16LE_MUXER 0 -%define CONFIG_PCM_S8_MUXER 0 -%define CONFIG_PCM_U32BE_MUXER 0 -%define CONFIG_PCM_U32LE_MUXER 0 -%define CONFIG_PCM_U24BE_MUXER 0 -%define CONFIG_PCM_U24LE_MUXER 0 -%define CONFIG_PCM_U16BE_MUXER 0 -%define CONFIG_PCM_U16LE_MUXER 0 -%define CONFIG_PCM_U8_MUXER 0 -%define CONFIG_PSP_MUXER 0 -%define CONFIG_RAWVIDEO_MUXER 0 -%define CONFIG_RM_MUXER 0 -%define CONFIG_ROQ_MUXER 0 -%define CONFIG_RSO_MUXER 0 -%define CONFIG_RTP_MUXER 0 -%define CONFIG_RTP_MPEGTS_MUXER 0 -%define CONFIG_RTSP_MUXER 0 -%define CONFIG_SAP_MUXER 0 -%define CONFIG_SBC_MUXER 0 -%define CONFIG_SCC_MUXER 0 -%define CONFIG_SEGAFILM_MUXER 0 -%define CONFIG_SEGMENT_MUXER 0 -%define CONFIG_STREAM_SEGMENT_MUXER 0 -%define CONFIG_SINGLEJPEG_MUXER 0 -%define CONFIG_SMJPEG_MUXER 0 -%define CONFIG_SMOOTHSTREAMING_MUXER 0 -%define CONFIG_SOX_MUXER 0 -%define CONFIG_SPX_MUXER 0 -%define CONFIG_SPDIF_MUXER 0 -%define CONFIG_SRT_MUXER 0 -%define CONFIG_SUP_MUXER 0 -%define CONFIG_SWF_MUXER 0 -%define CONFIG_TEE_MUXER 0 -%define CONFIG_TG2_MUXER 0 -%define CONFIG_TGP_MUXER 0 -%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -%define CONFIG_TRUEHD_MUXER 0 -%define CONFIG_TTA_MUXER 0 -%define CONFIG_UNCODEDFRAMECRC_MUXER 0 -%define CONFIG_VC1_MUXER 0 -%define CONFIG_VC1T_MUXER 0 -%define CONFIG_VOC_MUXER 0 -%define CONFIG_W64_MUXER 0 -%define CONFIG_WAV_MUXER 0 -%define CONFIG_WEBM_MUXER 0 -%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -%define CONFIG_WEBM_CHUNK_MUXER 0 -%define CONFIG_WEBP_MUXER 0 -%define CONFIG_WEBVTT_MUXER 0 -%define CONFIG_WTV_MUXER 0 -%define CONFIG_WV_MUXER 0 -%define CONFIG_YUV4MPEGPIPE_MUXER 0 -%define CONFIG_CHROMAPRINT_MUXER 0 -%define CONFIG_ASYNC_PROTOCOL 1 -%define CONFIG_BLURAY_PROTOCOL 0 -%define CONFIG_CACHE_PROTOCOL 1 -%define CONFIG_CONCAT_PROTOCOL 1 -%define CONFIG_CRYPTO_PROTOCOL 1 -%define CONFIG_DATA_PROTOCOL 1 -%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -%define CONFIG_FFRTMPHTTP_PROTOCOL 0 -%define CONFIG_FILE_PROTOCOL 1 -%define CONFIG_FTP_PROTOCOL 0 -%define CONFIG_GOPHER_PROTOCOL 0 -%define CONFIG_HLS_PROTOCOL 1 -%define CONFIG_HTTP_PROTOCOL 0 -%define CONFIG_HTTPPROXY_PROTOCOL 0 -%define CONFIG_HTTPS_PROTOCOL 0 -%define CONFIG_ICECAST_PROTOCOL 0 -%define CONFIG_MMSH_PROTOCOL 0 -%define CONFIG_MMST_PROTOCOL 0 -%define CONFIG_MD5_PROTOCOL 1 -%define CONFIG_PIPE_PROTOCOL 1 -%define CONFIG_PROMPEG_PROTOCOL 1 -%define CONFIG_RTMP_PROTOCOL 0 -%define CONFIG_RTMPE_PROTOCOL 0 -%define CONFIG_RTMPS_PROTOCOL 0 -%define CONFIG_RTMPT_PROTOCOL 0 -%define CONFIG_RTMPTE_PROTOCOL 0 -%define CONFIG_RTMPTS_PROTOCOL 0 -%define CONFIG_RTP_PROTOCOL 0 -%define CONFIG_SCTP_PROTOCOL 0 -%define CONFIG_SRTP_PROTOCOL 0 -%define CONFIG_SUBFILE_PROTOCOL 1 -%define CONFIG_TEE_PROTOCOL 1 -%define CONFIG_TCP_PROTOCOL 0 -%define CONFIG_TLS_PROTOCOL 0 -%define CONFIG_UDP_PROTOCOL 0 -%define CONFIG_UDPLITE_PROTOCOL 0 -%define CONFIG_UNIX_PROTOCOL 0 -%define CONFIG_LIBRTMP_PROTOCOL 0 -%define CONFIG_LIBRTMPE_PROTOCOL 0 -%define CONFIG_LIBRTMPS_PROTOCOL 0 -%define CONFIG_LIBRTMPT_PROTOCOL 0 -%define CONFIG_LIBRTMPTE_PROTOCOL 0 -%define CONFIG_LIBSRT_PROTOCOL 0 -%define CONFIG_LIBSSH_PROTOCOL 0 -%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/build/ffmpeg/config-x86.h b/build/ffmpeg/config-x86.h deleted file mode 100755 index 0a1483e3b..000000000 --- a/build/ffmpeg/config-x86.h +++ /dev/null @@ -1,2476 +0,0 @@ -/* Automatically generated by configure - do not modify! */ -#ifndef FFMPEG_CONFIG_H -#define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-small --enable-x86asm --x86asmexe=yasm --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/Win32/Release' --toolchain=msvc" -#define FFMPEG_LICENSE "GPL version 2 or later" -#define CONFIG_THIS_YEAR 2018 -#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" -#define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.13.26132 for x86" -#define av_restrict __restrict -#define EXTERN_PREFIX "_" -#define EXTERN_ASM _ -#define BUILDSUF "" -#define SLIBSUF ".dll" -#define HAVE_MMX2 HAVE_MMXEXT -#define SWS_MAX_FILTER_SIZE 256 -#define ARCH_AARCH64 0 -#define ARCH_ALPHA 0 -#define ARCH_ARM 0 -#define ARCH_AVR32 0 -#define ARCH_AVR32_AP 0 -#define ARCH_AVR32_UC 0 -#define ARCH_BFIN 0 -#define ARCH_IA64 0 -#define ARCH_M68K 0 -#define ARCH_MIPS 0 -#define ARCH_MIPS64 0 -#define ARCH_PARISC 0 -#define ARCH_PPC 0 -#define ARCH_PPC64 0 -#define ARCH_S390 0 -#define ARCH_SH4 0 -#define ARCH_SPARC 0 -#define ARCH_SPARC64 0 -#define ARCH_TILEGX 0 -#define ARCH_TILEPRO 0 -#define ARCH_TOMI 0 -#define ARCH_X86 1 -#define ARCH_X86_32 1 -#define ARCH_X86_64 0 -#define HAVE_ARMV5TE 0 -#define HAVE_ARMV6 0 -#define HAVE_ARMV6T2 0 -#define HAVE_ARMV8 0 -#define HAVE_NEON 0 -#define HAVE_VFP 0 -#define HAVE_VFPV3 0 -#define HAVE_SETEND 0 -#define HAVE_ALTIVEC 0 -#define HAVE_DCBZL 0 -#define HAVE_LDBRX 0 -#define HAVE_POWER8 0 -#define HAVE_PPC4XX 0 -#define HAVE_VSX 0 -#define HAVE_AESNI 1 -#define HAVE_AMD3DNOW 1 -#define HAVE_AMD3DNOWEXT 1 -#define HAVE_AVX 1 -#define HAVE_AVX2 1 -#define HAVE_AVX512 1 -#define HAVE_FMA3 1 -#define HAVE_FMA4 1 -#define HAVE_MMX 1 -#define HAVE_MMXEXT 1 -#define HAVE_SSE 1 -#define HAVE_SSE2 1 -#define HAVE_SSE3 1 -#define HAVE_SSE4 1 -#define HAVE_SSE42 1 -#define HAVE_SSSE3 1 -#define HAVE_XOP 1 -#define HAVE_CPUNOP 1 -#define HAVE_I686 1 -#define HAVE_MIPSFPU 0 -#define HAVE_MIPS32R2 0 -#define HAVE_MIPS32R5 0 -#define HAVE_MIPS64R2 0 -#define HAVE_MIPS32R6 0 -#define HAVE_MIPS64R6 0 -#define HAVE_MIPSDSP 0 -#define HAVE_MIPSDSPR2 0 -#define HAVE_MSA 0 -#define HAVE_LOONGSON2 0 -#define HAVE_LOONGSON3 0 -#define HAVE_MMI 0 -#define HAVE_ARMV5TE_EXTERNAL 0 -#define HAVE_ARMV6_EXTERNAL 0 -#define HAVE_ARMV6T2_EXTERNAL 0 -#define HAVE_ARMV8_EXTERNAL 0 -#define HAVE_NEON_EXTERNAL 0 -#define HAVE_VFP_EXTERNAL 0 -#define HAVE_VFPV3_EXTERNAL 0 -#define HAVE_SETEND_EXTERNAL 0 -#define HAVE_ALTIVEC_EXTERNAL 0 -#define HAVE_DCBZL_EXTERNAL 0 -#define HAVE_LDBRX_EXTERNAL 0 -#define HAVE_POWER8_EXTERNAL 0 -#define HAVE_PPC4XX_EXTERNAL 0 -#define HAVE_VSX_EXTERNAL 0 -#define HAVE_AESNI_EXTERNAL 1 -#define HAVE_AMD3DNOW_EXTERNAL 1 -#define HAVE_AMD3DNOWEXT_EXTERNAL 1 -#define HAVE_AVX_EXTERNAL 1 -#define HAVE_AVX2_EXTERNAL 0 -#define HAVE_AVX512_EXTERNAL 0 -#define HAVE_FMA3_EXTERNAL 1 -#define HAVE_FMA4_EXTERNAL 1 -#define HAVE_MMX_EXTERNAL 1 -#define HAVE_MMXEXT_EXTERNAL 1 -#define HAVE_SSE_EXTERNAL 1 -#define HAVE_SSE2_EXTERNAL 1 -#define HAVE_SSE3_EXTERNAL 1 -#define HAVE_SSE4_EXTERNAL 1 -#define HAVE_SSE42_EXTERNAL 1 -#define HAVE_SSSE3_EXTERNAL 1 -#define HAVE_XOP_EXTERNAL 1 -#define HAVE_CPUNOP_EXTERNAL 0 -#define HAVE_I686_EXTERNAL 0 -#define HAVE_MIPSFPU_EXTERNAL 0 -#define HAVE_MIPS32R2_EXTERNAL 0 -#define HAVE_MIPS32R5_EXTERNAL 0 -#define HAVE_MIPS64R2_EXTERNAL 0 -#define HAVE_MIPS32R6_EXTERNAL 0 -#define HAVE_MIPS64R6_EXTERNAL 0 -#define HAVE_MIPSDSP_EXTERNAL 0 -#define HAVE_MIPSDSPR2_EXTERNAL 0 -#define HAVE_MSA_EXTERNAL 0 -#define HAVE_LOONGSON2_EXTERNAL 0 -#define HAVE_LOONGSON3_EXTERNAL 0 -#define HAVE_MMI_EXTERNAL 0 -#define HAVE_ARMV5TE_INLINE 0 -#define HAVE_ARMV6_INLINE 0 -#define HAVE_ARMV6T2_INLINE 0 -#define HAVE_ARMV8_INLINE 0 -#define HAVE_NEON_INLINE 0 -#define HAVE_VFP_INLINE 0 -#define HAVE_VFPV3_INLINE 0 -#define HAVE_SETEND_INLINE 0 -#define HAVE_ALTIVEC_INLINE 0 -#define HAVE_DCBZL_INLINE 0 -#define HAVE_LDBRX_INLINE 0 -#define HAVE_POWER8_INLINE 0 -#define HAVE_PPC4XX_INLINE 0 -#define HAVE_VSX_INLINE 0 -#define HAVE_AESNI_INLINE 0 -#define HAVE_AMD3DNOW_INLINE 0 -#define HAVE_AMD3DNOWEXT_INLINE 0 -#define HAVE_AVX_INLINE 0 -#define HAVE_AVX2_INLINE 0 -#define HAVE_AVX512_INLINE 0 -#define HAVE_FMA3_INLINE 0 -#define HAVE_FMA4_INLINE 0 -#define HAVE_MMX_INLINE 0 -#define HAVE_MMXEXT_INLINE 0 -#define HAVE_SSE_INLINE 0 -#define HAVE_SSE2_INLINE 0 -#define HAVE_SSE3_INLINE 0 -#define HAVE_SSE4_INLINE 0 -#define HAVE_SSE42_INLINE 0 -#define HAVE_SSSE3_INLINE 0 -#define HAVE_XOP_INLINE 0 -#define HAVE_CPUNOP_INLINE 0 -#define HAVE_I686_INLINE 0 -#define HAVE_MIPSFPU_INLINE 0 -#define HAVE_MIPS32R2_INLINE 0 -#define HAVE_MIPS32R5_INLINE 0 -#define HAVE_MIPS64R2_INLINE 0 -#define HAVE_MIPS32R6_INLINE 0 -#define HAVE_MIPS64R6_INLINE 0 -#define HAVE_MIPSDSP_INLINE 0 -#define HAVE_MIPSDSPR2_INLINE 0 -#define HAVE_MSA_INLINE 0 -#define HAVE_LOONGSON2_INLINE 0 -#define HAVE_LOONGSON3_INLINE 0 -#define HAVE_MMI_INLINE 0 -#define HAVE_ALIGNED_STACK 0 -#define HAVE_FAST_64BIT 0 -#define HAVE_FAST_CLZ 1 -#define HAVE_FAST_CMOV 0 -#define HAVE_LOCAL_ALIGNED 1 -#define HAVE_SIMD_ALIGN_16 1 -#define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 -#define HAVE_ATOMIC_CAS_PTR 0 -#define HAVE_MACHINE_RW_BARRIER 0 -#define HAVE_MEMORYBARRIER 1 -#define HAVE_MM_EMPTY 1 -#define HAVE_RDTSC 1 -#define HAVE_SEM_TIMEDWAIT 0 -#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 -#define HAVE_CABS 0 -#define HAVE_CEXP 0 -#define HAVE_INLINE_ASM 0 -#define HAVE_SYMVER 0 -#define HAVE_X86ASM 1 -#define HAVE_BIGENDIAN 0 -#define HAVE_FAST_UNALIGNED 1 -#define HAVE_ARPA_INET_H 0 -#define HAVE_ASM_TYPES_H 0 -#define HAVE_CDIO_PARANOIA_H 0 -#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 -#define HAVE_CUDA_H 0 -#define HAVE_DISPATCH_DISPATCH_H 0 -#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 -#define HAVE_DEV_IC_BT8XX_H 0 -#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 -#define HAVE_DIRECT_H 1 -#define HAVE_DIRENT_H 0 -#define HAVE_DXGIDEBUG_H 1 -#define HAVE_DXVA_H 1 -#define HAVE_ES2_GL_H 0 -#define HAVE_GSM_H 0 -#define HAVE_IO_H 1 -#define HAVE_LINUX_PERF_EVENT_H 0 -#define HAVE_MACHINE_IOCTL_BT848_H 0 -#define HAVE_MACHINE_IOCTL_METEOR_H 0 -#define HAVE_MALLOC_H 1 -#define HAVE_OPENCV2_CORE_CORE_C_H 0 -#define HAVE_OPENGL_GL3_H 0 -#define HAVE_POLL_H 0 -#define HAVE_SYS_PARAM_H 0 -#define HAVE_SYS_RESOURCE_H 0 -#define HAVE_SYS_SELECT_H 0 -#define HAVE_SYS_SOUNDCARD_H 0 -#define HAVE_SYS_TIME_H 0 -#define HAVE_SYS_UN_H 0 -#define HAVE_SYS_VIDEOIO_H 0 -#define HAVE_TERMIOS_H 0 -#define HAVE_UDPLITE_H 0 -#define HAVE_UNISTD_H 0 -#define HAVE_VALGRIND_VALGRIND_H 0 -#define HAVE_WINDOWS_H 1 -#define HAVE_WINSOCK2_H 0 -#define HAVE_INTRINSICS_NEON 0 -#define HAVE_ATANF 1 -#define HAVE_ATAN2F 1 -#define HAVE_CBRT 1 -#define HAVE_CBRTF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COSF 1 -#define HAVE_ERF 1 -#define HAVE_EXP2 1 -#define HAVE_EXP2F 1 -#define HAVE_EXPF 1 -#define HAVE_HYPOT 1 -#define HAVE_ISFINITE 1 -#define HAVE_ISINF 1 -#define HAVE_ISNAN 1 -#define HAVE_LDEXPF 1 -#define HAVE_LLRINT 1 -#define HAVE_LLRINTF 1 -#define HAVE_LOG2 1 -#define HAVE_LOG2F 1 -#define HAVE_LOG10F 1 -#define HAVE_LRINT 1 -#define HAVE_LRINTF 1 -#define HAVE_POWF 1 -#define HAVE_RINT 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SINF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 -#define HAVE_ACCESS 1 -#define HAVE_ALIGNED_MALLOC 1 -#define HAVE_ARC4RANDOM 0 -#define HAVE_CLOCK_GETTIME 0 -#define HAVE_CLOSESOCKET 0 -#define HAVE_COMMANDLINETOARGVW 1 -#define HAVE_FCNTL 0 -#define HAVE_GETADDRINFO 0 -#define HAVE_GETHRTIME 0 -#define HAVE_GETOPT 0 -#define HAVE_GETPROCESSAFFINITYMASK 1 -#define HAVE_GETPROCESSMEMORYINFO 1 -#define HAVE_GETPROCESSTIMES 1 -#define HAVE_GETRUSAGE 0 -#define HAVE_GETSYSTEMTIMEASFILETIME 1 -#define HAVE_GETTIMEOFDAY 0 -#define HAVE_GLOB 0 -#define HAVE_GLXGETPROCADDRESS 0 -#define HAVE_GMTIME_R 0 -#define HAVE_INET_ATON 0 -#define HAVE_ISATTY 1 -#define HAVE_KBHIT 1 -#define HAVE_LOCALTIME_R 0 -#define HAVE_LSTAT 0 -#define HAVE_LZO1X_999_COMPRESS 0 -#define HAVE_MACH_ABSOLUTE_TIME 0 -#define HAVE_MAPVIEWOFFILE 1 -#define HAVE_MEMALIGN 0 -#define HAVE_MKSTEMP 0 -#define HAVE_MMAP 0 -#define HAVE_MPROTECT 0 -#define HAVE_NANOSLEEP 0 -#define HAVE_PEEKNAMEDPIPE 1 -#define HAVE_POSIX_MEMALIGN 0 -#define HAVE_PTHREAD_CANCEL 0 -#define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 -#define HAVE_SETCONSOLETEXTATTRIBUTE 1 -#define HAVE_SETCONSOLECTRLHANDLER 1 -#define HAVE_SETMODE 1 -#define HAVE_SETRLIMIT 0 -#define HAVE_SLEEP 1 -#define HAVE_STRERROR_R 0 -#define HAVE_SYSCONF 0 -#define HAVE_SYSCTL 0 -#define HAVE_USLEEP 0 -#define HAVE_UTGETOSTYPEFROMSTRING 0 -#define HAVE_VIRTUALALLOC 1 -#define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 1 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 -#define HAVE_PTHREADS 0 -#define HAVE_OS2THREADS 0 -#define HAVE_W32THREADS 1 -#define HAVE_AS_ARCH_DIRECTIVE 0 -#define HAVE_AS_DN_DIRECTIVE 0 -#define HAVE_AS_FPU_DIRECTIVE 0 -#define HAVE_AS_FUNC 0 -#define HAVE_AS_OBJECT_ARCH 0 -#define HAVE_ASM_MOD_Q 0 -#define HAVE_BLOCKS_EXTENSION 0 -#define HAVE_EBP_AVAILABLE 0 -#define HAVE_EBX_AVAILABLE 0 -#define HAVE_GNU_AS 0 -#define HAVE_GNU_WINDRES 0 -#define HAVE_IBM_ASM 0 -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 -#define HAVE_INLINE_ASM_LABELS 0 -#define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -#define HAVE_PRAGMA_DEPRECATED 1 -#define HAVE_RSYNC_CONTIMEOUT 0 -#define HAVE_SYMVER_ASM_LABEL 0 -#define HAVE_SYMVER_GNU_ASM 0 -#define HAVE_VFP_ARGS 0 -#define HAVE_XFORM_ASM 0 -#define HAVE_XMM_CLOBBERS 0 -#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 -#define HAVE_SOCKLEN_T 0 -#define HAVE_STRUCT_ADDRINFO 0 -#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 -#define HAVE_STRUCT_IP_MREQ_SOURCE 0 -#define HAVE_STRUCT_IPV6_MREQ 0 -#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -#define HAVE_STRUCT_POLLFD 0 -#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 -#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 -#define HAVE_STRUCT_SOCKADDR_IN6 0 -#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 -#define HAVE_STRUCT_SOCKADDR_STORAGE 0 -#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 -#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -#define HAVE_MAKEINFO 1 -#define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 -#define HAVE_PERL 1 -#define HAVE_POD2MAN 0 -#define HAVE_TEXI2HTML 0 -#define CONFIG_DOC 0 -#define CONFIG_HTMLPAGES 0 -#define CONFIG_MANPAGES 0 -#define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 -#define CONFIG_DECODE_AUDIO_EXAMPLE 1 -#define CONFIG_DECODE_VIDEO_EXAMPLE 1 -#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 -#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 -#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 -#define CONFIG_EXTRACT_MVS_EXAMPLE 1 -#define CONFIG_FILTER_AUDIO_EXAMPLE 0 -#define CONFIG_FILTERING_AUDIO_EXAMPLE 0 -#define CONFIG_FILTERING_VIDEO_EXAMPLE 0 -#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 -#define CONFIG_HW_DECODE_EXAMPLE 1 -#define CONFIG_METADATA_EXAMPLE 1 -#define CONFIG_MUXING_EXAMPLE 1 -#define CONFIG_QSVDEC_EXAMPLE 0 -#define CONFIG_REMUXING_EXAMPLE 1 -#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 1 -#define CONFIG_SCALING_VIDEO_EXAMPLE 1 -#define CONFIG_TRANSCODE_AAC_EXAMPLE 1 -#define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 -#define CONFIG_AVISYNTH 0 -#define CONFIG_FREI0R 0 -#define CONFIG_LIBCDIO 0 -#define CONFIG_LIBDAVS2 0 -#define CONFIG_LIBRUBBERBAND 0 -#define CONFIG_LIBVIDSTAB 0 -#define CONFIG_LIBX264 0 -#define CONFIG_LIBX265 0 -#define CONFIG_LIBXAVS 0 -#define CONFIG_LIBXAVS2 0 -#define CONFIG_LIBXVID 0 -#define CONFIG_DECKLINK 0 -#define CONFIG_LIBNDI_NEWTEK 0 -#define CONFIG_LIBFDK_AAC 0 -#define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 -#define CONFIG_GMP 0 -#define CONFIG_LIBLENSFUN 0 -#define CONFIG_LIBOPENCORE_AMRNB 0 -#define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 -#define CONFIG_LIBVO_AMRWBENC 0 -#define CONFIG_MBEDTLS 0 -#define CONFIG_RKMPP 0 -#define CONFIG_LIBSMBCLIENT 0 -#define CONFIG_CHROMAPRINT 0 -#define CONFIG_GCRYPT 0 -#define CONFIG_GNUTLS 0 -#define CONFIG_JNI 0 -#define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 -#define CONFIG_LIBASS 0 -#define CONFIG_LIBBLURAY 0 -#define CONFIG_LIBBS2B 0 -#define CONFIG_LIBCACA 0 -#define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 -#define CONFIG_LIBDAV1D 0 -#define CONFIG_LIBDC1394 0 -#define CONFIG_LIBDRM 0 -#define CONFIG_LIBFLITE 0 -#define CONFIG_LIBFONTCONFIG 0 -#define CONFIG_LIBFREETYPE 0 -#define CONFIG_LIBFRIBIDI 0 -#define CONFIG_LIBGME 0 -#define CONFIG_LIBGSM 0 -#define CONFIG_LIBIEC61883 0 -#define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 -#define CONFIG_LIBKLVANC 0 -#define CONFIG_LIBKVAZAAR 0 -#define CONFIG_LIBMODPLUG 0 -#define CONFIG_LIBMP3LAME 0 -#define CONFIG_LIBMYSOFA 0 -#define CONFIG_LIBOPENCV 0 -#define CONFIG_LIBOPENH264 0 -#define CONFIG_LIBOPENJPEG 0 -#define CONFIG_LIBOPENMPT 0 -#define CONFIG_LIBOPUS 0 -#define CONFIG_LIBPULSE 0 -#define CONFIG_LIBRSVG 0 -#define CONFIG_LIBRTMP 0 -#define CONFIG_LIBSHINE 0 -#define CONFIG_LIBSMBCLIENT 0 -#define CONFIG_LIBSNAPPY 0 -#define CONFIG_LIBSOXR 0 -#define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 -#define CONFIG_LIBSSH 0 -#define CONFIG_LIBTENSORFLOW 0 -#define CONFIG_LIBTESSERACT 0 -#define CONFIG_LIBTHEORA 0 -#define CONFIG_LIBTWOLAME 0 -#define CONFIG_LIBV4L2 0 -#define CONFIG_LIBVORBIS 0 -#define CONFIG_LIBVPX 0 -#define CONFIG_LIBWAVPACK 0 -#define CONFIG_LIBWEBP 0 -#define CONFIG_LIBXML2 0 -#define CONFIG_LIBZIMG 0 -#define CONFIG_LIBZMQ 0 -#define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 -#define CONFIG_MEDIACODEC 0 -#define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_VAPOURSYNTH 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 0 -#define CONFIG_AVFOUNDATION 0 -#define CONFIG_BZLIB 0 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 0 -#define CONFIG_SCHANNEL 1 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 0 -#define CONFIG_ZLIB 1 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 -#define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 -#define CONFIG_AUDIOTOOLBOX 0 -#define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 -#define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 -#define CONFIG_VAAPI 0 -#define CONFIG_VDPAU 0 -#define CONFIG_VIDEOTOOLBOX 0 -#define CONFIG_V4L2_M2M 0 -#define CONFIG_XVMC 0 -#define CONFIG_FTRAPV 0 -#define CONFIG_GRAY 0 -#define CONFIG_HARDCODED_TABLES 0 -#define CONFIG_OMX_RPI 0 -#define CONFIG_RUNTIME_CPUDETECT 1 -#define CONFIG_SAFE_BITSTREAM_READER 1 -#define CONFIG_SHARED 0 -#define CONFIG_SMALL 1 -#define CONFIG_STATIC 1 -#define CONFIG_SWSCALE_ALPHA 1 -#define CONFIG_GPL 1 -#define CONFIG_NONFREE 0 -#define CONFIG_VERSION3 0 -#define CONFIG_AVDEVICE 1 -#define CONFIG_AVFILTER 0 -#define CONFIG_SWSCALE 1 -#define CONFIG_POSTPROC 0 -#define CONFIG_AVFORMAT 1 -#define CONFIG_AVCODEC 1 -#define CONFIG_SWRESAMPLE 1 -#define CONFIG_AVRESAMPLE 0 -#define CONFIG_AVUTIL 1 -#define CONFIG_FFPLAY 0 -#define CONFIG_FFPROBE 0 -#define CONFIG_FFMPEG 0 -#define CONFIG_DCT 1 -#define CONFIG_DWT 1 -#define CONFIG_ERROR_RESILIENCE 1 -#define CONFIG_FAAN 1 -#define CONFIG_FAST_UNALIGNED 1 -#define CONFIG_FFT 1 -#define CONFIG_LSP 1 -#define CONFIG_LZO 1 -#define CONFIG_MDCT 1 -#define CONFIG_PIXELUTILS 0 -#define CONFIG_NETWORK 0 -#define CONFIG_RDFT 1 -#define CONFIG_AUTODETECT 0 -#define CONFIG_FONTCONFIG 0 -#define CONFIG_LINUX_PERF 0 -#define CONFIG_MEMORY_POISONING 0 -#define CONFIG_NEON_CLOBBER_TEST 0 -#define CONFIG_OSSFUZZ 0 -#define CONFIG_PIC 0 -#define CONFIG_THUMB 0 -#define CONFIG_VALGRIND_BACKTRACE 0 -#define CONFIG_XMM_CLOBBER_TEST 0 -#define CONFIG_BSFS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_ENCODERS 0 -#define CONFIG_HWACCELS 0 -#define CONFIG_PARSERS 1 -#define CONFIG_INDEVS 0 -#define CONFIG_OUTDEVS 0 -#define CONFIG_FILTERS 0 -#define CONFIG_DEMUXERS 1 -#define CONFIG_MUXERS 0 -#define CONFIG_PROTOCOLS 1 -#define CONFIG_AANDCTTABLES 1 -#define CONFIG_AC3DSP 1 -#define CONFIG_ADTS_HEADER 1 -#define CONFIG_AUDIO_FRAME_QUEUE 1 -#define CONFIG_AUDIODSP 1 -#define CONFIG_BLOCKDSP 1 -#define CONFIG_BSWAPDSP 1 -#define CONFIG_CABAC 1 -#define CONFIG_CBS 1 -#define CONFIG_CBS_AV1 1 -#define CONFIG_CBS_H264 1 -#define CONFIG_CBS_H265 1 -#define CONFIG_CBS_JPEG 0 -#define CONFIG_CBS_MPEG2 1 -#define CONFIG_CBS_VP9 1 -#define CONFIG_DIRAC_PARSE 1 -#define CONFIG_DNN 0 -#define CONFIG_DVPROFILE 1 -#define CONFIG_EXIF 1 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 -#define CONFIG_FLACDSP 1 -#define CONFIG_FMTCONVERT 1 -#define CONFIG_FRAME_THREAD_ENCODER 0 -#define CONFIG_G722DSP 1 -#define CONFIG_GOLOMB 1 -#define CONFIG_GPLV3 0 -#define CONFIG_H263DSP 1 -#define CONFIG_H264CHROMA 1 -#define CONFIG_H264DSP 1 -#define CONFIG_H264PARSE 1 -#define CONFIG_H264PRED 1 -#define CONFIG_H264QPEL 1 -#define CONFIG_HEVCPARSE 1 -#define CONFIG_HPELDSP 1 -#define CONFIG_HUFFMAN 1 -#define CONFIG_HUFFYUVDSP 1 -#define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 -#define CONFIG_IIRFILTER 0 -#define CONFIG_MDCT15 1 -#define CONFIG_INTRAX8 1 -#define CONFIG_ISO_MEDIA 1 -#define CONFIG_IVIDSP 0 -#define CONFIG_JPEGTABLES 1 -#define CONFIG_LGPLV3 0 -#define CONFIG_LIBX262 0 -#define CONFIG_LLAUDDSP 1 -#define CONFIG_LLVIDDSP 1 -#define CONFIG_LLVIDENCDSP 0 -#define CONFIG_LPC 0 -#define CONFIG_LZF 1 -#define CONFIG_ME_CMP 1 -#define CONFIG_MPEG_ER 1 -#define CONFIG_MPEGAUDIO 1 -#define CONFIG_MPEGAUDIODSP 1 -#define CONFIG_MPEGAUDIOHEADER 1 -#define CONFIG_MPEGVIDEO 1 -#define CONFIG_MPEGVIDEOENC 1 -#define CONFIG_MSS34DSP 1 -#define CONFIG_PIXBLOCKDSP 1 -#define CONFIG_QPELDSP 1 -#define CONFIG_QSV 0 -#define CONFIG_QSVDEC 0 -#define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 -#define CONFIG_RANGECODER 1 -#define CONFIG_RIFFDEC 1 -#define CONFIG_RIFFENC 0 -#define CONFIG_RTPDEC 0 -#define CONFIG_RTPENC_CHAIN 0 -#define CONFIG_RV34DSP 1 -#define CONFIG_SCENE_SAD 0 -#define CONFIG_SINEWIN 1 -#define CONFIG_SNAPPY 1 -#define CONFIG_SRTP 0 -#define CONFIG_STARTCODE 1 -#define CONFIG_TEXTUREDSP 1 -#define CONFIG_TEXTUREDSPENC 0 -#define CONFIG_TPELDSP 1 -#define CONFIG_VAAPI_1 0 -#define CONFIG_VAAPI_ENCODE 0 -#define CONFIG_VC1DSP 1 -#define CONFIG_VIDEODSP 1 -#define CONFIG_VP3DSP 1 -#define CONFIG_VP56DSP 1 -#define CONFIG_VP8DSP 1 -#define CONFIG_WMA_FREQS 1 -#define CONFIG_WMV2DSP 1 -#define CONFIG_AAC_ADTSTOASC_BSF 1 -#define CONFIG_AV1_METADATA_BSF 1 -#define CONFIG_CHOMP_BSF 1 -#define CONFIG_DUMP_EXTRADATA_BSF 1 -#define CONFIG_DCA_CORE_BSF 1 -#define CONFIG_EAC3_CORE_BSF 1 -#define CONFIG_EXTRACT_EXTRADATA_BSF 1 -#define CONFIG_FILTER_UNITS_BSF 1 -#define CONFIG_H264_METADATA_BSF 1 -#define CONFIG_H264_MP4TOANNEXB_BSF 1 -#define CONFIG_H264_REDUNDANT_PPS_BSF 1 -#define CONFIG_HAPQA_EXTRACT_BSF 1 -#define CONFIG_HEVC_METADATA_BSF 1 -#define CONFIG_HEVC_MP4TOANNEXB_BSF 1 -#define CONFIG_IMX_DUMP_HEADER_BSF 1 -#define CONFIG_MJPEG2JPEG_BSF 1 -#define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 -#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 -#define CONFIG_MPEG2_METADATA_BSF 1 -#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 -#define CONFIG_MOV2TEXTSUB_BSF 1 -#define CONFIG_NOISE_BSF 1 -#define CONFIG_NULL_BSF 1 -#define CONFIG_PRORES_METADATA_BSF 1 -#define CONFIG_REMOVE_EXTRADATA_BSF 1 -#define CONFIG_TEXT2MOVSUB_BSF 1 -#define CONFIG_TRACE_HEADERS_BSF 1 -#define CONFIG_VP9_METADATA_BSF 1 -#define CONFIG_VP9_RAW_REORDER_BSF 1 -#define CONFIG_VP9_SUPERFRAME_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 -#define CONFIG_AASC_DECODER 1 -#define CONFIG_AIC_DECODER 1 -#define CONFIG_ALIAS_PIX_DECODER 1 -#define CONFIG_AMV_DECODER 1 -#define CONFIG_ANM_DECODER 1 -#define CONFIG_ANSI_DECODER 1 -#define CONFIG_APNG_DECODER 1 -#define CONFIG_ASV1_DECODER 1 -#define CONFIG_ASV2_DECODER 1 -#define CONFIG_AURA_DECODER 1 -#define CONFIG_AURA2_DECODER 1 -#define CONFIG_AVRP_DECODER 1 -#define CONFIG_AVRN_DECODER 1 -#define CONFIG_AVS_DECODER 1 -#define CONFIG_AVUI_DECODER 1 -#define CONFIG_AYUV_DECODER 1 -#define CONFIG_BETHSOFTVID_DECODER 1 -#define CONFIG_BFI_DECODER 1 -#define CONFIG_BINK_DECODER 1 -#define CONFIG_BITPACKED_DECODER 1 -#define CONFIG_BMP_DECODER 1 -#define CONFIG_BMV_VIDEO_DECODER 1 -#define CONFIG_BRENDER_PIX_DECODER 1 -#define CONFIG_C93_DECODER 1 -#define CONFIG_CAVS_DECODER 1 -#define CONFIG_CDGRAPHICS_DECODER 1 -#define CONFIG_CDXL_DECODER 1 -#define CONFIG_CFHD_DECODER 1 -#define CONFIG_CINEPAK_DECODER 1 -#define CONFIG_CLEARVIDEO_DECODER 1 -#define CONFIG_CLJR_DECODER 1 -#define CONFIG_CLLC_DECODER 1 -#define CONFIG_COMFORTNOISE_DECODER 1 -#define CONFIG_CPIA_DECODER 1 -#define CONFIG_CSCD_DECODER 1 -#define CONFIG_CYUV_DECODER 1 -#define CONFIG_DDS_DECODER 1 -#define CONFIG_DFA_DECODER 1 -#define CONFIG_DIRAC_DECODER 1 -#define CONFIG_DNXHD_DECODER 1 -#define CONFIG_DPX_DECODER 1 -#define CONFIG_DSICINVIDEO_DECODER 1 -#define CONFIG_DVAUDIO_DECODER 1 -#define CONFIG_DVVIDEO_DECODER 1 -#define CONFIG_DXA_DECODER 1 -#define CONFIG_DXTORY_DECODER 1 -#define CONFIG_DXV_DECODER 1 -#define CONFIG_EACMV_DECODER 1 -#define CONFIG_EAMAD_DECODER 1 -#define CONFIG_EATGQ_DECODER 1 -#define CONFIG_EATGV_DECODER 1 -#define CONFIG_EATQI_DECODER 1 -#define CONFIG_EIGHTBPS_DECODER 1 -#define CONFIG_EIGHTSVX_EXP_DECODER 1 -#define CONFIG_EIGHTSVX_FIB_DECODER 1 -#define CONFIG_ESCAPE124_DECODER 1 -#define CONFIG_ESCAPE130_DECODER 1 -#define CONFIG_EXR_DECODER 1 -#define CONFIG_FFV1_DECODER 1 -#define CONFIG_FFVHUFF_DECODER 1 -#define CONFIG_FIC_DECODER 1 -#define CONFIG_FITS_DECODER 1 -#define CONFIG_FLASHSV_DECODER 1 -#define CONFIG_FLASHSV2_DECODER 1 -#define CONFIG_FLIC_DECODER 1 -#define CONFIG_FLV_DECODER 1 -#define CONFIG_FMVC_DECODER 1 -#define CONFIG_FOURXM_DECODER 1 -#define CONFIG_FRAPS_DECODER 1 -#define CONFIG_FRWU_DECODER 1 -#define CONFIG_G2M_DECODER 1 -#define CONFIG_GDV_DECODER 1 -#define CONFIG_GIF_DECODER 1 -#define CONFIG_H261_DECODER 1 -#define CONFIG_H263_DECODER 1 -#define CONFIG_H263I_DECODER 1 -#define CONFIG_H263P_DECODER 1 -#define CONFIG_H263_V4L2M2M_DECODER 0 -#define CONFIG_H264_DECODER 1 -#define CONFIG_H264_CRYSTALHD_DECODER 0 -#define CONFIG_H264_V4L2M2M_DECODER 0 -#define CONFIG_H264_MEDIACODEC_DECODER 0 -#define CONFIG_H264_MMAL_DECODER 0 -#define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_RKMPP_DECODER 0 -#define CONFIG_HAP_DECODER 1 -#define CONFIG_HEVC_DECODER 1 -#define CONFIG_HEVC_QSV_DECODER 0 -#define CONFIG_HEVC_RKMPP_DECODER 0 -#define CONFIG_HEVC_V4L2M2M_DECODER 0 -#define CONFIG_HNM4_VIDEO_DECODER 1 -#define CONFIG_HQ_HQA_DECODER 1 -#define CONFIG_HQX_DECODER 1 -#define CONFIG_HUFFYUV_DECODER 1 -#define CONFIG_IDCIN_DECODER 1 -#define CONFIG_IFF_ILBM_DECODER 1 -#define CONFIG_IMM4_DECODER 1 -#define CONFIG_INDEO2_DECODER 0 -#define CONFIG_INDEO3_DECODER 0 -#define CONFIG_INDEO4_DECODER 0 -#define CONFIG_INDEO5_DECODER 0 -#define CONFIG_INTERPLAY_VIDEO_DECODER 1 -#define CONFIG_JPEG2000_DECODER 1 -#define CONFIG_JPEGLS_DECODER 1 -#define CONFIG_JV_DECODER 1 -#define CONFIG_KGV1_DECODER 1 -#define CONFIG_KMVC_DECODER 1 -#define CONFIG_LAGARITH_DECODER 1 -#define CONFIG_LOCO_DECODER 1 -#define CONFIG_M101_DECODER 1 -#define CONFIG_MAGICYUV_DECODER 1 -#define CONFIG_MDEC_DECODER 1 -#define CONFIG_MIMIC_DECODER 1 -#define CONFIG_MJPEG_DECODER 1 -#define CONFIG_MJPEGB_DECODER 1 -#define CONFIG_MMVIDEO_DECODER 1 -#define CONFIG_MOTIONPIXELS_DECODER 1 -#define CONFIG_MPEG1VIDEO_DECODER 1 -#define CONFIG_MPEG2VIDEO_DECODER 1 -#define CONFIG_MPEG4_DECODER 1 -#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_V4L2M2M_DECODER 0 -#define CONFIG_MPEG4_MMAL_DECODER 0 -#define CONFIG_MPEGVIDEO_DECODER 1 -#define CONFIG_MPEG1_V4L2M2M_DECODER 0 -#define CONFIG_MPEG2_MMAL_DECODER 0 -#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG2_V4L2M2M_DECODER 0 -#define CONFIG_MPEG2_QSV_DECODER 0 -#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -#define CONFIG_MSA1_DECODER 1 -#define CONFIG_MSCC_DECODER 1 -#define CONFIG_MSMPEG4V1_DECODER 1 -#define CONFIG_MSMPEG4V2_DECODER 1 -#define CONFIG_MSMPEG4V3_DECODER 1 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MSRLE_DECODER 1 -#define CONFIG_MSS1_DECODER 1 -#define CONFIG_MSS2_DECODER 1 -#define CONFIG_MSVIDEO1_DECODER 1 -#define CONFIG_MSZH_DECODER 1 -#define CONFIG_MTS2_DECODER 1 -#define CONFIG_MVC1_DECODER 1 -#define CONFIG_MVC2_DECODER 1 -#define CONFIG_MWSC_DECODER 1 -#define CONFIG_MXPEG_DECODER 1 -#define CONFIG_NUV_DECODER 1 -#define CONFIG_PAF_VIDEO_DECODER 1 -#define CONFIG_PAM_DECODER 1 -#define CONFIG_PBM_DECODER 1 -#define CONFIG_PCX_DECODER 1 -#define CONFIG_PGM_DECODER 1 -#define CONFIG_PGMYUV_DECODER 1 -#define CONFIG_PICTOR_DECODER 1 -#define CONFIG_PIXLET_DECODER 1 -#define CONFIG_PNG_DECODER 1 -#define CONFIG_PPM_DECODER 1 -#define CONFIG_PRORES_DECODER 1 -#define CONFIG_PROSUMER_DECODER 1 -#define CONFIG_PSD_DECODER 1 -#define CONFIG_PTX_DECODER 1 -#define CONFIG_QDRAW_DECODER 1 -#define CONFIG_QPEG_DECODER 1 -#define CONFIG_QTRLE_DECODER 1 -#define CONFIG_R10K_DECODER 1 -#define CONFIG_R210_DECODER 1 -#define CONFIG_RASC_DECODER 1 -#define CONFIG_RAWVIDEO_DECODER 1 -#define CONFIG_RL2_DECODER 1 -#define CONFIG_ROQ_DECODER 1 -#define CONFIG_RPZA_DECODER 1 -#define CONFIG_RSCC_DECODER 1 -#define CONFIG_RV10_DECODER 1 -#define CONFIG_RV20_DECODER 1 -#define CONFIG_RV30_DECODER 1 -#define CONFIG_RV40_DECODER 1 -#define CONFIG_S302M_DECODER 1 -#define CONFIG_SANM_DECODER 1 -#define CONFIG_SCPR_DECODER 1 -#define CONFIG_SCREENPRESSO_DECODER 1 -#define CONFIG_SDX2_DPCM_DECODER 1 -#define CONFIG_SGI_DECODER 1 -#define CONFIG_SGIRLE_DECODER 1 -#define CONFIG_SHEERVIDEO_DECODER 1 -#define CONFIG_SMACKER_DECODER 1 -#define CONFIG_SMC_DECODER 1 -#define CONFIG_SMVJPEG_DECODER 1 -#define CONFIG_SNOW_DECODER 1 -#define CONFIG_SP5X_DECODER 1 -#define CONFIG_SPEEDHQ_DECODER 1 -#define CONFIG_SRGC_DECODER 1 -#define CONFIG_SUNRAST_DECODER 1 -#define CONFIG_SVQ1_DECODER 1 -#define CONFIG_SVQ3_DECODER 1 -#define CONFIG_TARGA_DECODER 1 -#define CONFIG_TARGA_Y216_DECODER 1 -#define CONFIG_TDSC_DECODER 1 -#define CONFIG_THEORA_DECODER 1 -#define CONFIG_THP_DECODER 1 -#define CONFIG_TIERTEXSEQVIDEO_DECODER 1 -#define CONFIG_TIFF_DECODER 1 -#define CONFIG_TMV_DECODER 1 -#define CONFIG_TRUEMOTION1_DECODER 1 -#define CONFIG_TRUEMOTION2_DECODER 1 -#define CONFIG_TRUEMOTION2RT_DECODER 1 -#define CONFIG_TSCC_DECODER 1 -#define CONFIG_TSCC2_DECODER 1 -#define CONFIG_TXD_DECODER 1 -#define CONFIG_ULTI_DECODER 1 -#define CONFIG_UTVIDEO_DECODER 1 -#define CONFIG_V210_DECODER 1 -#define CONFIG_V210X_DECODER 1 -#define CONFIG_V308_DECODER 1 -#define CONFIG_V408_DECODER 1 -#define CONFIG_V410_DECODER 1 -#define CONFIG_VB_DECODER 1 -#define CONFIG_VBLE_DECODER 1 -#define CONFIG_VC1_DECODER 1 -#define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1IMAGE_DECODER 1 -#define CONFIG_VC1_MMAL_DECODER 0 -#define CONFIG_VC1_QSV_DECODER 0 -#define CONFIG_VC1_V4L2M2M_DECODER 0 -#define CONFIG_VCR1_DECODER 1 -#define CONFIG_VMDVIDEO_DECODER 1 -#define CONFIG_VMNC_DECODER 1 -#define CONFIG_VP3_DECODER 1 -#define CONFIG_VP5_DECODER 1 -#define CONFIG_VP6_DECODER 1 -#define CONFIG_VP6A_DECODER 1 -#define CONFIG_VP6F_DECODER 1 -#define CONFIG_VP7_DECODER 1 -#define CONFIG_VP8_DECODER 1 -#define CONFIG_VP8_RKMPP_DECODER 0 -#define CONFIG_VP8_V4L2M2M_DECODER 0 -#define CONFIG_VP9_DECODER 1 -#define CONFIG_VP9_RKMPP_DECODER 0 -#define CONFIG_VP9_V4L2M2M_DECODER 0 -#define CONFIG_VQA_DECODER 1 -#define CONFIG_WEBP_DECODER 1 -#define CONFIG_WCMV_DECODER 1 -#define CONFIG_WRAPPED_AVFRAME_DECODER 1 -#define CONFIG_WMV1_DECODER 1 -#define CONFIG_WMV2_DECODER 1 -#define CONFIG_WMV3_DECODER 1 -#define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3IMAGE_DECODER 1 -#define CONFIG_WNV1_DECODER 1 -#define CONFIG_XAN_WC3_DECODER 1 -#define CONFIG_XAN_WC4_DECODER 1 -#define CONFIG_XBM_DECODER 1 -#define CONFIG_XFACE_DECODER 1 -#define CONFIG_XL_DECODER 1 -#define CONFIG_XPM_DECODER 1 -#define CONFIG_XWD_DECODER 1 -#define CONFIG_Y41P_DECODER 1 -#define CONFIG_YLC_DECODER 1 -#define CONFIG_YOP_DECODER 1 -#define CONFIG_YUV4_DECODER 1 -#define CONFIG_ZERO12V_DECODER 1 -#define CONFIG_ZEROCODEC_DECODER 1 -#define CONFIG_ZLIB_DECODER 1 -#define CONFIG_ZMBV_DECODER 1 -#define CONFIG_AAC_DECODER 1 -#define CONFIG_AAC_FIXED_DECODER 1 -#define CONFIG_AAC_LATM_DECODER 1 -#define CONFIG_AC3_DECODER 1 -#define CONFIG_AC3_FIXED_DECODER 1 -#define CONFIG_ALAC_DECODER 1 -#define CONFIG_ALS_DECODER 1 -#define CONFIG_AMRNB_DECODER 1 -#define CONFIG_AMRWB_DECODER 1 -#define CONFIG_APE_DECODER 1 -#define CONFIG_APTX_DECODER 1 -#define CONFIG_APTX_HD_DECODER 1 -#define CONFIG_ATRAC1_DECODER 1 -#define CONFIG_ATRAC3_DECODER 1 -#define CONFIG_ATRAC3AL_DECODER 1 -#define CONFIG_ATRAC3P_DECODER 0 -#define CONFIG_ATRAC3PAL_DECODER 1 -#define CONFIG_ATRAC9_DECODER 1 -#define CONFIG_BINKAUDIO_DCT_DECODER 1 -#define CONFIG_BINKAUDIO_RDFT_DECODER 1 -#define CONFIG_BMV_AUDIO_DECODER 1 -#define CONFIG_COOK_DECODER 1 -#define CONFIG_DCA_DECODER 1 -#define CONFIG_DOLBY_E_DECODER 1 -#define CONFIG_DSD_LSBF_DECODER 1 -#define CONFIG_DSD_MSBF_DECODER 1 -#define CONFIG_DSD_LSBF_PLANAR_DECODER 1 -#define CONFIG_DSD_MSBF_PLANAR_DECODER 1 -#define CONFIG_DSICINAUDIO_DECODER 1 -#define CONFIG_DSS_SP_DECODER 1 -#define CONFIG_DST_DECODER 1 -#define CONFIG_EAC3_DECODER 1 -#define CONFIG_EVRC_DECODER 1 -#define CONFIG_FFWAVESYNTH_DECODER 1 -#define CONFIG_FLAC_DECODER 1 -#define CONFIG_G723_1_DECODER 1 -#define CONFIG_G729_DECODER 1 -#define CONFIG_GSM_DECODER 1 -#define CONFIG_GSM_MS_DECODER 1 -#define CONFIG_IAC_DECODER 1 -#define CONFIG_ILBC_DECODER 1 -#define CONFIG_IMC_DECODER 1 -#define CONFIG_INTERPLAY_ACM_DECODER 1 -#define CONFIG_MACE3_DECODER 1 -#define CONFIG_MACE6_DECODER 1 -#define CONFIG_METASOUND_DECODER 1 -#define CONFIG_MLP_DECODER 1 -#define CONFIG_MP1_DECODER 1 -#define CONFIG_MP1FLOAT_DECODER 1 -#define CONFIG_MP2_DECODER 1 -#define CONFIG_MP2FLOAT_DECODER 1 -#define CONFIG_MP3FLOAT_DECODER 1 -#define CONFIG_MP3_DECODER 1 -#define CONFIG_MP3ADUFLOAT_DECODER 1 -#define CONFIG_MP3ADU_DECODER 1 -#define CONFIG_MP3ON4FLOAT_DECODER 1 -#define CONFIG_MP3ON4_DECODER 1 -#define CONFIG_MPC7_DECODER 1 -#define CONFIG_MPC8_DECODER 1 -#define CONFIG_NELLYMOSER_DECODER 1 -#define CONFIG_ON2AVC_DECODER 1 -#define CONFIG_OPUS_DECODER 1 -#define CONFIG_PAF_AUDIO_DECODER 1 -#define CONFIG_QCELP_DECODER 1 -#define CONFIG_QDM2_DECODER 1 -#define CONFIG_QDMC_DECODER 1 -#define CONFIG_RA_144_DECODER 1 -#define CONFIG_RA_288_DECODER 1 -#define CONFIG_RALF_DECODER 1 -#define CONFIG_SBC_DECODER 1 -#define CONFIG_SHORTEN_DECODER 1 -#define CONFIG_SIPR_DECODER 1 -#define CONFIG_SMACKAUD_DECODER 1 -#define CONFIG_SONIC_DECODER 1 -#define CONFIG_TAK_DECODER 1 -#define CONFIG_TRUEHD_DECODER 1 -#define CONFIG_TRUESPEECH_DECODER 1 -#define CONFIG_TTA_DECODER 1 -#define CONFIG_TWINVQ_DECODER 0 -#define CONFIG_VMDAUDIO_DECODER 1 -#define CONFIG_VORBIS_DECODER 1 -#define CONFIG_WAVPACK_DECODER 1 -#define CONFIG_WMALOSSLESS_DECODER 1 -#define CONFIG_WMAPRO_DECODER 1 -#define CONFIG_WMAV1_DECODER 1 -#define CONFIG_WMAV2_DECODER 1 -#define CONFIG_WMAVOICE_DECODER 1 -#define CONFIG_WS_SND1_DECODER 1 -#define CONFIG_XMA1_DECODER 1 -#define CONFIG_XMA2_DECODER 1 -#define CONFIG_PCM_ALAW_DECODER 1 -#define CONFIG_PCM_BLURAY_DECODER 1 -#define CONFIG_PCM_DVD_DECODER 1 -#define CONFIG_PCM_F16LE_DECODER 1 -#define CONFIG_PCM_F24LE_DECODER 1 -#define CONFIG_PCM_F32BE_DECODER 1 -#define CONFIG_PCM_F32LE_DECODER 1 -#define CONFIG_PCM_F64BE_DECODER 1 -#define CONFIG_PCM_F64LE_DECODER 1 -#define CONFIG_PCM_LXF_DECODER 1 -#define CONFIG_PCM_MULAW_DECODER 1 -#define CONFIG_PCM_S8_DECODER 1 -#define CONFIG_PCM_S8_PLANAR_DECODER 1 -#define CONFIG_PCM_S16BE_DECODER 1 -#define CONFIG_PCM_S16BE_PLANAR_DECODER 1 -#define CONFIG_PCM_S16LE_DECODER 1 -#define CONFIG_PCM_S16LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S24BE_DECODER 1 -#define CONFIG_PCM_S24DAUD_DECODER 1 -#define CONFIG_PCM_S24LE_DECODER 1 -#define CONFIG_PCM_S24LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S32BE_DECODER 1 -#define CONFIG_PCM_S32LE_DECODER 1 -#define CONFIG_PCM_S32LE_PLANAR_DECODER 1 -#define CONFIG_PCM_S64BE_DECODER 1 -#define CONFIG_PCM_S64LE_DECODER 1 -#define CONFIG_PCM_U8_DECODER 1 -#define CONFIG_PCM_U16BE_DECODER 1 -#define CONFIG_PCM_U16LE_DECODER 1 -#define CONFIG_PCM_U24BE_DECODER 1 -#define CONFIG_PCM_U24LE_DECODER 1 -#define CONFIG_PCM_U32BE_DECODER 1 -#define CONFIG_PCM_U32LE_DECODER 1 -#define CONFIG_PCM_VIDC_DECODER 1 -#define CONFIG_PCM_ZORK_DECODER 1 -#define CONFIG_GREMLIN_DPCM_DECODER 1 -#define CONFIG_INTERPLAY_DPCM_DECODER 1 -#define CONFIG_ROQ_DPCM_DECODER 1 -#define CONFIG_SOL_DPCM_DECODER 1 -#define CONFIG_XAN_DPCM_DECODER 1 -#define CONFIG_ADPCM_4XM_DECODER 1 -#define CONFIG_ADPCM_ADX_DECODER 1 -#define CONFIG_ADPCM_AFC_DECODER 1 -#define CONFIG_ADPCM_AICA_DECODER 1 -#define CONFIG_ADPCM_CT_DECODER 1 -#define CONFIG_ADPCM_DTK_DECODER 1 -#define CONFIG_ADPCM_EA_DECODER 1 -#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 -#define CONFIG_ADPCM_EA_R1_DECODER 1 -#define CONFIG_ADPCM_EA_R2_DECODER 1 -#define CONFIG_ADPCM_EA_R3_DECODER 1 -#define CONFIG_ADPCM_EA_XAS_DECODER 1 -#define CONFIG_ADPCM_G722_DECODER 1 -#define CONFIG_ADPCM_G726_DECODER 1 -#define CONFIG_ADPCM_G726LE_DECODER 1 -#define CONFIG_ADPCM_IMA_AMV_DECODER 1 -#define CONFIG_ADPCM_IMA_APC_DECODER 1 -#define CONFIG_ADPCM_IMA_DAT4_DECODER 1 -#define CONFIG_ADPCM_IMA_DK3_DECODER 1 -#define CONFIG_ADPCM_IMA_DK4_DECODER 1 -#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 -#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 -#define CONFIG_ADPCM_IMA_ISS_DECODER 1 -#define CONFIG_ADPCM_IMA_OKI_DECODER 1 -#define CONFIG_ADPCM_IMA_QT_DECODER 1 -#define CONFIG_ADPCM_IMA_RAD_DECODER 1 -#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 -#define CONFIG_ADPCM_IMA_WAV_DECODER 1 -#define CONFIG_ADPCM_IMA_WS_DECODER 1 -#define CONFIG_ADPCM_MS_DECODER 1 -#define CONFIG_ADPCM_MTAF_DECODER 1 -#define CONFIG_ADPCM_PSX_DECODER 1 -#define CONFIG_ADPCM_SBPRO_2_DECODER 1 -#define CONFIG_ADPCM_SBPRO_3_DECODER 1 -#define CONFIG_ADPCM_SBPRO_4_DECODER 1 -#define CONFIG_ADPCM_SWF_DECODER 1 -#define CONFIG_ADPCM_THP_DECODER 1 -#define CONFIG_ADPCM_THP_LE_DECODER 1 -#define CONFIG_ADPCM_VIMA_DECODER 1 -#define CONFIG_ADPCM_XA_DECODER 1 -#define CONFIG_ADPCM_YAMAHA_DECODER 1 -#define CONFIG_SSA_DECODER 1 -#define CONFIG_ASS_DECODER 1 -#define CONFIG_CCAPTION_DECODER 1 -#define CONFIG_DVBSUB_DECODER 1 -#define CONFIG_DVDSUB_DECODER 1 -#define CONFIG_JACOSUB_DECODER 1 -#define CONFIG_MICRODVD_DECODER 1 -#define CONFIG_MOVTEXT_DECODER 1 -#define CONFIG_MPL2_DECODER 1 -#define CONFIG_PGSSUB_DECODER 1 -#define CONFIG_PJS_DECODER 1 -#define CONFIG_REALTEXT_DECODER 1 -#define CONFIG_SAMI_DECODER 1 -#define CONFIG_SRT_DECODER 1 -#define CONFIG_STL_DECODER 1 -#define CONFIG_SUBRIP_DECODER 1 -#define CONFIG_SUBVIEWER_DECODER 1 -#define CONFIG_SUBVIEWER1_DECODER 1 -#define CONFIG_TEXT_DECODER 1 -#define CONFIG_VPLAYER_DECODER 1 -#define CONFIG_WEBVTT_DECODER 1 -#define CONFIG_XSUB_DECODER 1 -#define CONFIG_AAC_AT_DECODER 0 -#define CONFIG_AC3_AT_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 -#define CONFIG_ALAC_AT_DECODER 0 -#define CONFIG_AMR_NB_AT_DECODER 0 -#define CONFIG_EAC3_AT_DECODER 0 -#define CONFIG_GSM_MS_AT_DECODER 0 -#define CONFIG_ILBC_AT_DECODER 0 -#define CONFIG_MP1_AT_DECODER 0 -#define CONFIG_MP2_AT_DECODER 0 -#define CONFIG_MP3_AT_DECODER 0 -#define CONFIG_PCM_ALAW_AT_DECODER 0 -#define CONFIG_PCM_MULAW_AT_DECODER 0 -#define CONFIG_QDMC_AT_DECODER 0 -#define CONFIG_QDM2_AT_DECODER 0 -#define CONFIG_LIBAOM_AV1_DECODER 0 -#define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBCODEC2_DECODER 0 -#define CONFIG_LIBDAV1D_DECODER 0 -#define CONFIG_LIBDAVS2_DECODER 0 -#define CONFIG_LIBFDK_AAC_DECODER 0 -#define CONFIG_LIBGSM_DECODER 0 -#define CONFIG_LIBGSM_MS_DECODER 0 -#define CONFIG_LIBILBC_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -#define CONFIG_LIBOPENJPEG_DECODER 0 -#define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBRSVG_DECODER 0 -#define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBVORBIS_DECODER 0 -#define CONFIG_LIBVPX_VP8_DECODER 0 -#define CONFIG_LIBVPX_VP9_DECODER 0 -#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -#define CONFIG_BINTEXT_DECODER 1 -#define CONFIG_XBIN_DECODER 1 -#define CONFIG_IDF_DECODER 1 -#define CONFIG_LIBOPENH264_DECODER 0 -#define CONFIG_H264_CUVID_DECODER 0 -#define CONFIG_HEVC_CUVID_DECODER 0 -#define CONFIG_HEVC_MEDIACODEC_DECODER 0 -#define CONFIG_MJPEG_CUVID_DECODER 0 -#define CONFIG_MPEG1_CUVID_DECODER 0 -#define CONFIG_MPEG2_CUVID_DECODER 0 -#define CONFIG_MPEG4_CUVID_DECODER 0 -#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -#define CONFIG_VC1_CUVID_DECODER 0 -#define CONFIG_VP8_CUVID_DECODER 0 -#define CONFIG_VP8_MEDIACODEC_DECODER 0 -#define CONFIG_VP8_QSV_DECODER 0 -#define CONFIG_VP9_CUVID_DECODER 0 -#define CONFIG_VP9_MEDIACODEC_DECODER 0 -#define CONFIG_A64MULTI_ENCODER 0 -#define CONFIG_A64MULTI5_ENCODER 0 -#define CONFIG_ALIAS_PIX_ENCODER 0 -#define CONFIG_AMV_ENCODER 0 -#define CONFIG_APNG_ENCODER 0 -#define CONFIG_ASV1_ENCODER 0 -#define CONFIG_ASV2_ENCODER 0 -#define CONFIG_AVRP_ENCODER 0 -#define CONFIG_AVUI_ENCODER 0 -#define CONFIG_AYUV_ENCODER 0 -#define CONFIG_BMP_ENCODER 0 -#define CONFIG_CINEPAK_ENCODER 0 -#define CONFIG_CLJR_ENCODER 0 -#define CONFIG_COMFORTNOISE_ENCODER 0 -#define CONFIG_DNXHD_ENCODER 0 -#define CONFIG_DPX_ENCODER 0 -#define CONFIG_DVVIDEO_ENCODER 0 -#define CONFIG_FFV1_ENCODER 0 -#define CONFIG_FFVHUFF_ENCODER 0 -#define CONFIG_FITS_ENCODER 0 -#define CONFIG_FLASHSV_ENCODER 0 -#define CONFIG_FLASHSV2_ENCODER 0 -#define CONFIG_FLV_ENCODER 0 -#define CONFIG_GIF_ENCODER 0 -#define CONFIG_H261_ENCODER 0 -#define CONFIG_H263_ENCODER 0 -#define CONFIG_H263P_ENCODER 0 -#define CONFIG_HAP_ENCODER 0 -#define CONFIG_HUFFYUV_ENCODER 0 -#define CONFIG_JPEG2000_ENCODER 0 -#define CONFIG_JPEGLS_ENCODER 0 -#define CONFIG_LJPEG_ENCODER 0 -#define CONFIG_MAGICYUV_ENCODER 0 -#define CONFIG_MJPEG_ENCODER 0 -#define CONFIG_MPEG1VIDEO_ENCODER 0 -#define CONFIG_MPEG2VIDEO_ENCODER 0 -#define CONFIG_MPEG4_ENCODER 0 -#define CONFIG_MSMPEG4V2_ENCODER 0 -#define CONFIG_MSMPEG4V3_ENCODER 0 -#define CONFIG_MSVIDEO1_ENCODER 0 -#define CONFIG_PAM_ENCODER 0 -#define CONFIG_PBM_ENCODER 0 -#define CONFIG_PCX_ENCODER 0 -#define CONFIG_PGM_ENCODER 0 -#define CONFIG_PGMYUV_ENCODER 0 -#define CONFIG_PNG_ENCODER 0 -#define CONFIG_PPM_ENCODER 0 -#define CONFIG_PRORES_ENCODER 0 -#define CONFIG_PRORES_AW_ENCODER 0 -#define CONFIG_PRORES_KS_ENCODER 0 -#define CONFIG_QTRLE_ENCODER 0 -#define CONFIG_R10K_ENCODER 0 -#define CONFIG_R210_ENCODER 0 -#define CONFIG_RAWVIDEO_ENCODER 0 -#define CONFIG_ROQ_ENCODER 0 -#define CONFIG_RV10_ENCODER 0 -#define CONFIG_RV20_ENCODER 0 -#define CONFIG_S302M_ENCODER 0 -#define CONFIG_SGI_ENCODER 0 -#define CONFIG_SNOW_ENCODER 0 -#define CONFIG_SUNRAST_ENCODER 0 -#define CONFIG_SVQ1_ENCODER 0 -#define CONFIG_TARGA_ENCODER 0 -#define CONFIG_TIFF_ENCODER 0 -#define CONFIG_UTVIDEO_ENCODER 0 -#define CONFIG_V210_ENCODER 0 -#define CONFIG_V308_ENCODER 0 -#define CONFIG_V408_ENCODER 0 -#define CONFIG_V410_ENCODER 0 -#define CONFIG_VC2_ENCODER 0 -#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -#define CONFIG_WMV1_ENCODER 0 -#define CONFIG_WMV2_ENCODER 0 -#define CONFIG_XBM_ENCODER 0 -#define CONFIG_XFACE_ENCODER 0 -#define CONFIG_XWD_ENCODER 0 -#define CONFIG_Y41P_ENCODER 0 -#define CONFIG_YUV4_ENCODER 0 -#define CONFIG_ZLIB_ENCODER 0 -#define CONFIG_ZMBV_ENCODER 0 -#define CONFIG_AAC_ENCODER 0 -#define CONFIG_AC3_ENCODER 0 -#define CONFIG_AC3_FIXED_ENCODER 0 -#define CONFIG_ALAC_ENCODER 0 -#define CONFIG_APTX_ENCODER 0 -#define CONFIG_APTX_HD_ENCODER 0 -#define CONFIG_DCA_ENCODER 0 -#define CONFIG_EAC3_ENCODER 0 -#define CONFIG_FLAC_ENCODER 0 -#define CONFIG_G723_1_ENCODER 0 -#define CONFIG_MLP_ENCODER 0 -#define CONFIG_MP2_ENCODER 0 -#define CONFIG_MP2FIXED_ENCODER 0 -#define CONFIG_NELLYMOSER_ENCODER 0 -#define CONFIG_OPUS_ENCODER 0 -#define CONFIG_RA_144_ENCODER 0 -#define CONFIG_SBC_ENCODER 0 -#define CONFIG_SONIC_ENCODER 0 -#define CONFIG_SONIC_LS_ENCODER 0 -#define CONFIG_TRUEHD_ENCODER 0 -#define CONFIG_TTA_ENCODER 0 -#define CONFIG_VORBIS_ENCODER 0 -#define CONFIG_WAVPACK_ENCODER 0 -#define CONFIG_WMAV1_ENCODER 0 -#define CONFIG_WMAV2_ENCODER 0 -#define CONFIG_PCM_ALAW_ENCODER 0 -#define CONFIG_PCM_F32BE_ENCODER 0 -#define CONFIG_PCM_F32LE_ENCODER 0 -#define CONFIG_PCM_F64BE_ENCODER 0 -#define CONFIG_PCM_F64LE_ENCODER 0 -#define CONFIG_PCM_MULAW_ENCODER 0 -#define CONFIG_PCM_S8_ENCODER 0 -#define CONFIG_PCM_S8_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16BE_ENCODER 0 -#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16LE_ENCODER 0 -#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S24BE_ENCODER 0 -#define CONFIG_PCM_S24DAUD_ENCODER 0 -#define CONFIG_PCM_S24LE_ENCODER 0 -#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S32BE_ENCODER 0 -#define CONFIG_PCM_S32LE_ENCODER 0 -#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S64BE_ENCODER 0 -#define CONFIG_PCM_S64LE_ENCODER 0 -#define CONFIG_PCM_U8_ENCODER 0 -#define CONFIG_PCM_U16BE_ENCODER 0 -#define CONFIG_PCM_U16LE_ENCODER 0 -#define CONFIG_PCM_U24BE_ENCODER 0 -#define CONFIG_PCM_U24LE_ENCODER 0 -#define CONFIG_PCM_U32BE_ENCODER 0 -#define CONFIG_PCM_U32LE_ENCODER 0 -#define CONFIG_PCM_VIDC_ENCODER 0 -#define CONFIG_ROQ_DPCM_ENCODER 0 -#define CONFIG_ADPCM_ADX_ENCODER 0 -#define CONFIG_ADPCM_G722_ENCODER 0 -#define CONFIG_ADPCM_G726_ENCODER 0 -#define CONFIG_ADPCM_G726LE_ENCODER 0 -#define CONFIG_ADPCM_IMA_QT_ENCODER 0 -#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 -#define CONFIG_ADPCM_MS_ENCODER 0 -#define CONFIG_ADPCM_SWF_ENCODER 0 -#define CONFIG_ADPCM_YAMAHA_ENCODER 0 -#define CONFIG_SSA_ENCODER 0 -#define CONFIG_ASS_ENCODER 0 -#define CONFIG_DVBSUB_ENCODER 0 -#define CONFIG_DVDSUB_ENCODER 0 -#define CONFIG_MOVTEXT_ENCODER 0 -#define CONFIG_SRT_ENCODER 0 -#define CONFIG_SUBRIP_ENCODER 0 -#define CONFIG_TEXT_ENCODER 0 -#define CONFIG_WEBVTT_ENCODER 0 -#define CONFIG_XSUB_ENCODER 0 -#define CONFIG_AAC_AT_ENCODER 0 -#define CONFIG_ALAC_AT_ENCODER 0 -#define CONFIG_ILBC_AT_ENCODER 0 -#define CONFIG_PCM_ALAW_AT_ENCODER 0 -#define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBAOM_AV1_ENCODER 0 -#define CONFIG_LIBCODEC2_ENCODER 0 -#define CONFIG_LIBFDK_AAC_ENCODER 0 -#define CONFIG_LIBGSM_ENCODER 0 -#define CONFIG_LIBGSM_MS_ENCODER 0 -#define CONFIG_LIBILBC_ENCODER 0 -#define CONFIG_LIBMP3LAME_ENCODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -#define CONFIG_LIBOPENJPEG_ENCODER 0 -#define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBSHINE_ENCODER 0 -#define CONFIG_LIBSPEEX_ENCODER 0 -#define CONFIG_LIBTHEORA_ENCODER 0 -#define CONFIG_LIBTWOLAME_ENCODER 0 -#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -#define CONFIG_LIBVORBIS_ENCODER 0 -#define CONFIG_LIBVPX_VP8_ENCODER 0 -#define CONFIG_LIBVPX_VP9_ENCODER 0 -#define CONFIG_LIBWAVPACK_ENCODER 0 -#define CONFIG_LIBWEBP_ANIM_ENCODER 0 -#define CONFIG_LIBWEBP_ENCODER 0 -#define CONFIG_LIBX262_ENCODER 0 -#define CONFIG_LIBX264_ENCODER 0 -#define CONFIG_LIBX264RGB_ENCODER 0 -#define CONFIG_LIBX265_ENCODER 0 -#define CONFIG_LIBXAVS_ENCODER 0 -#define CONFIG_LIBXAVS2_ENCODER 0 -#define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_H263_V4L2M2M_ENCODER 0 -#define CONFIG_LIBOPENH264_ENCODER 0 -#define CONFIG_H264_AMF_ENCODER 0 -#define CONFIG_H264_NVENC_ENCODER 0 -#define CONFIG_H264_OMX_ENCODER 0 -#define CONFIG_H264_QSV_ENCODER 0 -#define CONFIG_H264_V4L2M2M_ENCODER 0 -#define CONFIG_H264_VAAPI_ENCODER 0 -#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_NVENC_ENCODER 0 -#define CONFIG_NVENC_H264_ENCODER 0 -#define CONFIG_NVENC_HEVC_ENCODER 0 -#define CONFIG_HEVC_AMF_ENCODER 0 -#define CONFIG_HEVC_NVENC_ENCODER 0 -#define CONFIG_HEVC_QSV_ENCODER 0 -#define CONFIG_HEVC_V4L2M2M_ENCODER 0 -#define CONFIG_HEVC_VAAPI_ENCODER 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_LIBKVAZAAR_ENCODER 0 -#define CONFIG_MJPEG_QSV_ENCODER 0 -#define CONFIG_MJPEG_VAAPI_ENCODER 0 -#define CONFIG_MPEG2_QSV_ENCODER 0 -#define CONFIG_MPEG2_VAAPI_ENCODER 0 -#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -#define CONFIG_VP8_V4L2M2M_ENCODER 0 -#define CONFIG_VP8_VAAPI_ENCODER 0 -#define CONFIG_VP9_VAAPI_ENCODER 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_D3D11VA2_HWACCEL 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_NVDEC_HWACCEL 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_NVDEC_HWACCEL 0 -#define CONFIG_HEVC_VAAPI_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MJPEG_NVDEC_HWACCEL 0 -#define CONFIG_MJPEG_VAAPI_HWACCEL 0 -#define CONFIG_MPEG1_NVDEC_HWACCEL 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -#define CONFIG_MPEG2_NVDEC_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG4_NVDEC_HWACCEL 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_D3D11VA2_HWACCEL 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_NVDEC_HWACCEL 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VP8_NVDEC_HWACCEL 0 -#define CONFIG_VP8_VAAPI_HWACCEL 0 -#define CONFIG_VP9_D3D11VA_HWACCEL 0 -#define CONFIG_VP9_D3D11VA2_HWACCEL 0 -#define CONFIG_VP9_DXVA2_HWACCEL 0 -#define CONFIG_VP9_NVDEC_HWACCEL 0 -#define CONFIG_VP9_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 -#define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_NVDEC_HWACCEL 0 -#define CONFIG_WMV3_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_AAC_PARSER 1 -#define CONFIG_AAC_LATM_PARSER 1 -#define CONFIG_AC3_PARSER 1 -#define CONFIG_ADX_PARSER 1 -#define CONFIG_AV1_PARSER 1 -#define CONFIG_AVS2_PARSER 1 -#define CONFIG_BMP_PARSER 1 -#define CONFIG_CAVSVIDEO_PARSER 1 -#define CONFIG_COOK_PARSER 1 -#define CONFIG_DCA_PARSER 1 -#define CONFIG_DIRAC_PARSER 1 -#define CONFIG_DNXHD_PARSER 1 -#define CONFIG_DPX_PARSER 1 -#define CONFIG_DVAUDIO_PARSER 1 -#define CONFIG_DVBSUB_PARSER 1 -#define CONFIG_DVDSUB_PARSER 1 -#define CONFIG_DVD_NAV_PARSER 1 -#define CONFIG_FLAC_PARSER 1 -#define CONFIG_G729_PARSER 1 -#define CONFIG_GSM_PARSER 1 -#define CONFIG_H261_PARSER 1 -#define CONFIG_H263_PARSER 1 -#define CONFIG_H264_PARSER 1 -#define CONFIG_HEVC_PARSER 1 -#define CONFIG_MJPEG_PARSER 1 -#define CONFIG_MLP_PARSER 1 -#define CONFIG_MPEG4VIDEO_PARSER 1 -#define CONFIG_MPEGAUDIO_PARSER 1 -#define CONFIG_MPEGVIDEO_PARSER 1 -#define CONFIG_OPUS_PARSER 1 -#define CONFIG_PNG_PARSER 1 -#define CONFIG_PNM_PARSER 1 -#define CONFIG_RV30_PARSER 1 -#define CONFIG_RV40_PARSER 1 -#define CONFIG_SBC_PARSER 1 -#define CONFIG_SIPR_PARSER 1 -#define CONFIG_TAK_PARSER 1 -#define CONFIG_VC1_PARSER 1 -#define CONFIG_VORBIS_PARSER 1 -#define CONFIG_VP3_PARSER 1 -#define CONFIG_VP8_PARSER 1 -#define CONFIG_VP9_PARSER 1 -#define CONFIG_XMA_PARSER 1 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_ANDROID_CAMERA_INDEV 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_BKTR_INDEV 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_LIBNDI_NEWTEK_INDEV 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_KMSGRAB_INDEV 0 -#define CONFIG_LAVFI_INDEV 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_XCBGRAB_INDEV 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBDC1394_INDEV 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL2_OUTDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_V4L2_OUTDEV 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_ABENCH_FILTER 0 -#define CONFIG_ACOMPRESSOR_FILTER 0 -#define CONFIG_ACONTRAST_FILTER 0 -#define CONFIG_ACOPY_FILTER 0 -#define CONFIG_ACUE_FILTER 0 -#define CONFIG_ACROSSFADE_FILTER 0 -#define CONFIG_ACROSSOVER_FILTER 0 -#define CONFIG_ACRUSHER_FILTER 0 -#define CONFIG_ADECLICK_FILTER 0 -#define CONFIG_ADECLIP_FILTER 0 -#define CONFIG_ADELAY_FILTER 0 -#define CONFIG_ADERIVATIVE_FILTER 0 -#define CONFIG_AECHO_FILTER 0 -#define CONFIG_AEMPHASIS_FILTER 0 -#define CONFIG_AEVAL_FILTER 0 -#define CONFIG_AFADE_FILTER 0 -#define CONFIG_AFFTDN_FILTER 0 -#define CONFIG_AFFTFILT_FILTER 0 -#define CONFIG_AFIR_FILTER 0 -#define CONFIG_AFORMAT_FILTER 0 -#define CONFIG_AGATE_FILTER 0 -#define CONFIG_AIIR_FILTER 0 -#define CONFIG_AINTEGRAL_FILTER 0 -#define CONFIG_AINTERLEAVE_FILTER 0 -#define CONFIG_ALIMITER_FILTER 0 -#define CONFIG_ALLPASS_FILTER 0 -#define CONFIG_ALOOP_FILTER 0 -#define CONFIG_AMERGE_FILTER 0 -#define CONFIG_AMETADATA_FILTER 0 -#define CONFIG_AMIX_FILTER 0 -#define CONFIG_AMULTIPLY_FILTER 0 -#define CONFIG_ANEQUALIZER_FILTER 0 -#define CONFIG_ANULL_FILTER 0 -#define CONFIG_APAD_FILTER 0 -#define CONFIG_APERMS_FILTER 0 -#define CONFIG_APHASER_FILTER 0 -#define CONFIG_APULSATOR_FILTER 0 -#define CONFIG_AREALTIME_FILTER 0 -#define CONFIG_ARESAMPLE_FILTER 0 -#define CONFIG_AREVERSE_FILTER 0 -#define CONFIG_ASELECT_FILTER 0 -#define CONFIG_ASENDCMD_FILTER 0 -#define CONFIG_ASETNSAMPLES_FILTER 0 -#define CONFIG_ASETPTS_FILTER 0 -#define CONFIG_ASETRATE_FILTER 0 -#define CONFIG_ASETTB_FILTER 0 -#define CONFIG_ASHOWINFO_FILTER 0 -#define CONFIG_ASIDEDATA_FILTER 0 -#define CONFIG_ASPLIT_FILTER 0 -#define CONFIG_ASTATS_FILTER 0 -#define CONFIG_ASTREAMSELECT_FILTER 0 -#define CONFIG_ATEMPO_FILTER 0 -#define CONFIG_ATRIM_FILTER 0 -#define CONFIG_AZMQ_FILTER 0 -#define CONFIG_BANDPASS_FILTER 0 -#define CONFIG_BANDREJECT_FILTER 0 -#define CONFIG_BASS_FILTER 0 -#define CONFIG_BIQUAD_FILTER 0 -#define CONFIG_BS2B_FILTER 0 -#define CONFIG_CHANNELMAP_FILTER 0 -#define CONFIG_CHANNELSPLIT_FILTER 0 -#define CONFIG_CHORUS_FILTER 0 -#define CONFIG_COMPAND_FILTER 0 -#define CONFIG_COMPENSATIONDELAY_FILTER 0 -#define CONFIG_CROSSFEED_FILTER 0 -#define CONFIG_CRYSTALIZER_FILTER 0 -#define CONFIG_DCSHIFT_FILTER 0 -#define CONFIG_DRMETER_FILTER 0 -#define CONFIG_DYNAUDNORM_FILTER 0 -#define CONFIG_EARWAX_FILTER 0 -#define CONFIG_EBUR128_FILTER 0 -#define CONFIG_EQUALIZER_FILTER 0 -#define CONFIG_EXTRASTEREO_FILTER 0 -#define CONFIG_FIREQUALIZER_FILTER 0 -#define CONFIG_FLANGER_FILTER 0 -#define CONFIG_HAAS_FILTER 0 -#define CONFIG_HDCD_FILTER 0 -#define CONFIG_HEADPHONE_FILTER 0 -#define CONFIG_HIGHPASS_FILTER 0 -#define CONFIG_HIGHSHELF_FILTER 0 -#define CONFIG_JOIN_FILTER 0 -#define CONFIG_LADSPA_FILTER 0 -#define CONFIG_LOUDNORM_FILTER 0 -#define CONFIG_LOWPASS_FILTER 0 -#define CONFIG_LOWSHELF_FILTER 0 -#define CONFIG_LV2_FILTER 0 -#define CONFIG_MCOMPAND_FILTER 0 -#define CONFIG_PAN_FILTER 0 -#define CONFIG_REPLAYGAIN_FILTER 0 -#define CONFIG_RESAMPLE_FILTER 0 -#define CONFIG_RUBBERBAND_FILTER 0 -#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -#define CONFIG_SIDECHAINGATE_FILTER 0 -#define CONFIG_SILENCEDETECT_FILTER 0 -#define CONFIG_SILENCEREMOVE_FILTER 0 -#define CONFIG_SOFALIZER_FILTER 0 -#define CONFIG_STEREOTOOLS_FILTER 0 -#define CONFIG_STEREOWIDEN_FILTER 0 -#define CONFIG_SUPEREQUALIZER_FILTER 0 -#define CONFIG_SURROUND_FILTER 0 -#define CONFIG_TREBLE_FILTER 0 -#define CONFIG_TREMOLO_FILTER 0 -#define CONFIG_VIBRATO_FILTER 0 -#define CONFIG_VOLUME_FILTER 0 -#define CONFIG_VOLUMEDETECT_FILTER 0 -#define CONFIG_AEVALSRC_FILTER 0 -#define CONFIG_ANOISESRC_FILTER 0 -#define CONFIG_ANULLSRC_FILTER 0 -#define CONFIG_FLITE_FILTER 0 -#define CONFIG_HILBERT_FILTER 0 -#define CONFIG_SINC_FILTER 0 -#define CONFIG_SINE_FILTER 0 -#define CONFIG_ANULLSINK_FILTER 0 -#define CONFIG_ALPHAEXTRACT_FILTER 0 -#define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_AMPLIFY_FILTER 0 -#define CONFIG_ASS_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 -#define CONFIG_AVGBLUR_FILTER 0 -#define CONFIG_AVGBLUR_OPENCL_FILTER 0 -#define CONFIG_BBOX_FILTER 0 -#define CONFIG_BENCH_FILTER 0 -#define CONFIG_BITPLANENOISE_FILTER 0 -#define CONFIG_BLACKDETECT_FILTER 0 -#define CONFIG_BLACKFRAME_FILTER 0 -#define CONFIG_BLEND_FILTER 0 -#define CONFIG_BM3D_FILTER 0 -#define CONFIG_BOXBLUR_FILTER 0 -#define CONFIG_BOXBLUR_OPENCL_FILTER 0 -#define CONFIG_BWDIF_FILTER 0 -#define CONFIG_CHROMAHOLD_FILTER 0 -#define CONFIG_CHROMAKEY_FILTER 0 -#define CONFIG_CHROMASHIFT_FILTER 0 -#define CONFIG_CIESCOPE_FILTER 0 -#define CONFIG_CODECVIEW_FILTER 0 -#define CONFIG_COLORBALANCE_FILTER 0 -#define CONFIG_COLORCHANNELMIXER_FILTER 0 -#define CONFIG_COLORKEY_FILTER 0 -#define CONFIG_COLORLEVELS_FILTER 0 -#define CONFIG_COLORMATRIX_FILTER 0 -#define CONFIG_COLORSPACE_FILTER 0 -#define CONFIG_CONVOLUTION_FILTER 0 -#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 -#define CONFIG_CONVOLVE_FILTER 0 -#define CONFIG_COPY_FILTER 0 -#define CONFIG_COREIMAGE_FILTER 0 -#define CONFIG_COVER_RECT_FILTER 0 -#define CONFIG_CROP_FILTER 0 -#define CONFIG_CROPDETECT_FILTER 0 -#define CONFIG_CUE_FILTER 0 -#define CONFIG_CURVES_FILTER 0 -#define CONFIG_DATASCOPE_FILTER 0 -#define CONFIG_DCTDNOIZ_FILTER 0 -#define CONFIG_DEBAND_FILTER 0 -#define CONFIG_DEBLOCK_FILTER 0 -#define CONFIG_DECIMATE_FILTER 0 -#define CONFIG_DECONVOLVE_FILTER 0 -#define CONFIG_DEDOT_FILTER 0 -#define CONFIG_DEFLATE_FILTER 0 -#define CONFIG_DEFLICKER_FILTER 0 -#define CONFIG_DEINTERLACE_QSV_FILTER 0 -#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 -#define CONFIG_DEJUDDER_FILTER 0 -#define CONFIG_DELOGO_FILTER 0 -#define CONFIG_DENOISE_VAAPI_FILTER 0 -#define CONFIG_DESHAKE_FILTER 0 -#define CONFIG_DESPILL_FILTER 0 -#define CONFIG_DETELECINE_FILTER 0 -#define CONFIG_DILATION_FILTER 0 -#define CONFIG_DILATION_OPENCL_FILTER 0 -#define CONFIG_DISPLACE_FILTER 0 -#define CONFIG_DOUBLEWEAVE_FILTER 0 -#define CONFIG_DRAWBOX_FILTER 0 -#define CONFIG_DRAWGRAPH_FILTER 0 -#define CONFIG_DRAWGRID_FILTER 0 -#define CONFIG_DRAWTEXT_FILTER 0 -#define CONFIG_EDGEDETECT_FILTER 0 -#define CONFIG_ELBG_FILTER 0 -#define CONFIG_ENTROPY_FILTER 0 -#define CONFIG_EQ_FILTER 0 -#define CONFIG_EROSION_FILTER 0 -#define CONFIG_EROSION_OPENCL_FILTER 0 -#define CONFIG_EXTRACTPLANES_FILTER 0 -#define CONFIG_FADE_FILTER 0 -#define CONFIG_FFTDNOIZ_FILTER 0 -#define CONFIG_FFTFILT_FILTER 0 -#define CONFIG_FIELD_FILTER 0 -#define CONFIG_FIELDHINT_FILTER 0 -#define CONFIG_FIELDMATCH_FILTER 0 -#define CONFIG_FIELDORDER_FILTER 0 -#define CONFIG_FILLBORDERS_FILTER 0 -#define CONFIG_FIND_RECT_FILTER 0 -#define CONFIG_FLOODFILL_FILTER 0 -#define CONFIG_FORMAT_FILTER 0 -#define CONFIG_FPS_FILTER 0 -#define CONFIG_FRAMEPACK_FILTER 0 -#define CONFIG_FRAMERATE_FILTER 0 -#define CONFIG_FRAMESTEP_FILTER 0 -#define CONFIG_FREEZEDETECT_FILTER 0 -#define CONFIG_FREI0R_FILTER 0 -#define CONFIG_FSPP_FILTER 0 -#define CONFIG_GBLUR_FILTER 0 -#define CONFIG_GEQ_FILTER 0 -#define CONFIG_GRADFUN_FILTER 0 -#define CONFIG_GRAPHMONITOR_FILTER 0 -#define CONFIG_GREYEDGE_FILTER 0 -#define CONFIG_HALDCLUT_FILTER 0 -#define CONFIG_HFLIP_FILTER 0 -#define CONFIG_HISTEQ_FILTER 0 -#define CONFIG_HISTOGRAM_FILTER 0 -#define CONFIG_HQDN3D_FILTER 0 -#define CONFIG_HQX_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 -#define CONFIG_HWDOWNLOAD_FILTER 0 -#define CONFIG_HWMAP_FILTER 0 -#define CONFIG_HWUPLOAD_FILTER 0 -#define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HYSTERESIS_FILTER 0 -#define CONFIG_IDET_FILTER 0 -#define CONFIG_IL_FILTER 0 -#define CONFIG_INFLATE_FILTER 0 -#define CONFIG_INTERLACE_FILTER 0 -#define CONFIG_INTERLEAVE_FILTER 0 -#define CONFIG_KERNDEINT_FILTER 0 -#define CONFIG_LENSCORRECTION_FILTER 0 -#define CONFIG_LENSFUN_FILTER 0 -#define CONFIG_LIBVMAF_FILTER 0 -#define CONFIG_LIMITER_FILTER 0 -#define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUMAKEY_FILTER 0 -#define CONFIG_LUT_FILTER 0 -#define CONFIG_LUT1D_FILTER 0 -#define CONFIG_LUT2_FILTER 0 -#define CONFIG_LUT3D_FILTER 0 -#define CONFIG_LUTRGB_FILTER 0 -#define CONFIG_LUTYUV_FILTER 0 -#define CONFIG_MASKEDCLAMP_FILTER 0 -#define CONFIG_MASKEDMERGE_FILTER 0 -#define CONFIG_MCDEINT_FILTER 0 -#define CONFIG_MERGEPLANES_FILTER 0 -#define CONFIG_MESTIMATE_FILTER 0 -#define CONFIG_METADATA_FILTER 0 -#define CONFIG_MIDEQUALIZER_FILTER 0 -#define CONFIG_MINTERPOLATE_FILTER 0 -#define CONFIG_MIX_FILTER 0 -#define CONFIG_MPDECIMATE_FILTER 0 -#define CONFIG_NEGATE_FILTER 0 -#define CONFIG_NLMEANS_FILTER 0 -#define CONFIG_NNEDI_FILTER 0 -#define CONFIG_NOFORMAT_FILTER 0 -#define CONFIG_NOISE_FILTER 0 -#define CONFIG_NORMALIZE_FILTER 0 -#define CONFIG_NULL_FILTER 0 -#define CONFIG_OCR_FILTER 0 -#define CONFIG_OCV_FILTER 0 -#define CONFIG_OSCILLOSCOPE_FILTER 0 -#define CONFIG_OVERLAY_FILTER 0 -#define CONFIG_OVERLAY_OPENCL_FILTER 0 -#define CONFIG_OVERLAY_QSV_FILTER 0 -#define CONFIG_OWDENOISE_FILTER 0 -#define CONFIG_PAD_FILTER 0 -#define CONFIG_PALETTEGEN_FILTER 0 -#define CONFIG_PALETTEUSE_FILTER 0 -#define CONFIG_PERMS_FILTER 0 -#define CONFIG_PERSPECTIVE_FILTER 0 -#define CONFIG_PHASE_FILTER 0 -#define CONFIG_PIXDESCTEST_FILTER 0 -#define CONFIG_PIXSCOPE_FILTER 0 -#define CONFIG_PP_FILTER 0 -#define CONFIG_PP7_FILTER 0 -#define CONFIG_PREMULTIPLY_FILTER 0 -#define CONFIG_PREWITT_FILTER 0 -#define CONFIG_PREWITT_OPENCL_FILTER 0 -#define CONFIG_PROCAMP_VAAPI_FILTER 0 -#define CONFIG_PROGRAM_OPENCL_FILTER 0 -#define CONFIG_PSEUDOCOLOR_FILTER 0 -#define CONFIG_PSNR_FILTER 0 -#define CONFIG_PULLUP_FILTER 0 -#define CONFIG_QP_FILTER 0 -#define CONFIG_RANDOM_FILTER 0 -#define CONFIG_READEIA608_FILTER 0 -#define CONFIG_READVITC_FILTER 0 -#define CONFIG_REALTIME_FILTER 0 -#define CONFIG_REMAP_FILTER 0 -#define CONFIG_REMOVEGRAIN_FILTER 0 -#define CONFIG_REMOVELOGO_FILTER 0 -#define CONFIG_REPEATFIELDS_FILTER 0 -#define CONFIG_REVERSE_FILTER 0 -#define CONFIG_RGBASHIFT_FILTER 0 -#define CONFIG_ROBERTS_FILTER 0 -#define CONFIG_ROBERTS_OPENCL_FILTER 0 -#define CONFIG_ROTATE_FILTER 0 -#define CONFIG_SAB_FILTER 0 -#define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE_CUDA_FILTER 0 -#define CONFIG_SCALE_NPP_FILTER 0 -#define CONFIG_SCALE_QSV_FILTER 0 -#define CONFIG_SCALE_VAAPI_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 -#define CONFIG_SELECT_FILTER 0 -#define CONFIG_SELECTIVECOLOR_FILTER 0 -#define CONFIG_SENDCMD_FILTER 0 -#define CONFIG_SEPARATEFIELDS_FILTER 0 -#define CONFIG_SETDAR_FILTER 0 -#define CONFIG_SETFIELD_FILTER 0 -#define CONFIG_SETPARAMS_FILTER 0 -#define CONFIG_SETPTS_FILTER 0 -#define CONFIG_SETRANGE_FILTER 0 -#define CONFIG_SETSAR_FILTER 0 -#define CONFIG_SETTB_FILTER 0 -#define CONFIG_SHARPNESS_VAAPI_FILTER 0 -#define CONFIG_SHOWINFO_FILTER 0 -#define CONFIG_SHOWPALETTE_FILTER 0 -#define CONFIG_SHUFFLEFRAMES_FILTER 0 -#define CONFIG_SHUFFLEPLANES_FILTER 0 -#define CONFIG_SIDEDATA_FILTER 0 -#define CONFIG_SIGNALSTATS_FILTER 0 -#define CONFIG_SIGNATURE_FILTER 0 -#define CONFIG_SMARTBLUR_FILTER 0 -#define CONFIG_SOBEL_FILTER 0 -#define CONFIG_SOBEL_OPENCL_FILTER 0 -#define CONFIG_SPLIT_FILTER 0 -#define CONFIG_SPP_FILTER 0 -#define CONFIG_SR_FILTER 0 -#define CONFIG_SSIM_FILTER 0 -#define CONFIG_STEREO3D_FILTER 0 -#define CONFIG_STREAMSELECT_FILTER 0 -#define CONFIG_SUBTITLES_FILTER 0 -#define CONFIG_SUPER2XSAI_FILTER 0 -#define CONFIG_SWAPRECT_FILTER 0 -#define CONFIG_SWAPUV_FILTER 0 -#define CONFIG_TBLEND_FILTER 0 -#define CONFIG_TELECINE_FILTER 0 -#define CONFIG_THRESHOLD_FILTER 0 -#define CONFIG_THUMBNAIL_FILTER 0 -#define CONFIG_THUMBNAIL_CUDA_FILTER 0 -#define CONFIG_TILE_FILTER 0 -#define CONFIG_TINTERLACE_FILTER 0 -#define CONFIG_TLUT2_FILTER 0 -#define CONFIG_TMIX_FILTER 0 -#define CONFIG_TONEMAP_FILTER 0 -#define CONFIG_TONEMAP_OPENCL_FILTER 0 -#define CONFIG_TPAD_FILTER 0 -#define CONFIG_TRANSPOSE_FILTER 0 -#define CONFIG_TRANSPOSE_NPP_FILTER 0 -#define CONFIG_TRIM_FILTER 0 -#define CONFIG_UNPREMULTIPLY_FILTER 0 -#define CONFIG_UNSHARP_FILTER 0 -#define CONFIG_UNSHARP_OPENCL_FILTER 0 -#define CONFIG_USPP_FILTER 0 -#define CONFIG_VAGUEDENOISER_FILTER 0 -#define CONFIG_VECTORSCOPE_FILTER 0 -#define CONFIG_VFLIP_FILTER 0 -#define CONFIG_VFRDET_FILTER 0 -#define CONFIG_VIBRANCE_FILTER 0 -#define CONFIG_VIDSTABDETECT_FILTER 0 -#define CONFIG_VIDSTABTRANSFORM_FILTER 0 -#define CONFIG_VIGNETTE_FILTER 0 -#define CONFIG_VMAFMOTION_FILTER 0 -#define CONFIG_VPP_QSV_FILTER 0 -#define CONFIG_VSTACK_FILTER 0 -#define CONFIG_W3FDIF_FILTER 0 -#define CONFIG_WAVEFORM_FILTER 0 -#define CONFIG_WEAVE_FILTER 0 -#define CONFIG_XBR_FILTER 0 -#define CONFIG_XSTACK_FILTER 0 -#define CONFIG_YADIF_FILTER 0 -#define CONFIG_YADIF_CUDA_FILTER 0 -#define CONFIG_ZMQ_FILTER 0 -#define CONFIG_ZOOMPAN_FILTER 0 -#define CONFIG_ZSCALE_FILTER 0 -#define CONFIG_ALLRGB_FILTER 0 -#define CONFIG_ALLYUV_FILTER 0 -#define CONFIG_CELLAUTO_FILTER 0 -#define CONFIG_COLOR_FILTER 0 -#define CONFIG_COREIMAGESRC_FILTER 0 -#define CONFIG_FREI0R_SRC_FILTER 0 -#define CONFIG_HALDCLUTSRC_FILTER 0 -#define CONFIG_LIFE_FILTER 0 -#define CONFIG_MANDELBROT_FILTER 0 -#define CONFIG_MPTESTSRC_FILTER 0 -#define CONFIG_NULLSRC_FILTER 0 -#define CONFIG_OPENCLSRC_FILTER 0 -#define CONFIG_PAL75BARS_FILTER 0 -#define CONFIG_PAL100BARS_FILTER 0 -#define CONFIG_RGBTESTSRC_FILTER 0 -#define CONFIG_SMPTEBARS_FILTER 0 -#define CONFIG_SMPTEHDBARS_FILTER 0 -#define CONFIG_TESTSRC_FILTER 0 -#define CONFIG_TESTSRC2_FILTER 0 -#define CONFIG_YUVTESTSRC_FILTER 0 -#define CONFIG_NULLSINK_FILTER 0 -#define CONFIG_ABITSCOPE_FILTER 0 -#define CONFIG_ADRAWGRAPH_FILTER 0 -#define CONFIG_AGRAPHMONITOR_FILTER 0 -#define CONFIG_AHISTOGRAM_FILTER 0 -#define CONFIG_APHASEMETER_FILTER 0 -#define CONFIG_AVECTORSCOPE_FILTER 0 -#define CONFIG_CONCAT_FILTER 0 -#define CONFIG_SHOWCQT_FILTER 0 -#define CONFIG_SHOWFREQS_FILTER 0 -#define CONFIG_SHOWSPECTRUM_FILTER 0 -#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -#define CONFIG_SHOWVOLUME_FILTER 0 -#define CONFIG_SHOWWAVES_FILTER 0 -#define CONFIG_SHOWWAVESPIC_FILTER 0 -#define CONFIG_SPECTRUMSYNTH_FILTER 0 -#define CONFIG_AMOVIE_FILTER 0 -#define CONFIG_MOVIE_FILTER 0 -#define CONFIG_AFIFO_FILTER 0 -#define CONFIG_FIFO_FILTER 0 -#define CONFIG_AA_DEMUXER 1 -#define CONFIG_AAC_DEMUXER 1 -#define CONFIG_AC3_DEMUXER 1 -#define CONFIG_ACM_DEMUXER 1 -#define CONFIG_ACT_DEMUXER 1 -#define CONFIG_ADF_DEMUXER 1 -#define CONFIG_ADP_DEMUXER 1 -#define CONFIG_ADS_DEMUXER 1 -#define CONFIG_ADX_DEMUXER 1 -#define CONFIG_AEA_DEMUXER 1 -#define CONFIG_AFC_DEMUXER 1 -#define CONFIG_AIFF_DEMUXER 1 -#define CONFIG_AIX_DEMUXER 1 -#define CONFIG_AMR_DEMUXER 1 -#define CONFIG_AMRNB_DEMUXER 1 -#define CONFIG_AMRWB_DEMUXER 1 -#define CONFIG_ANM_DEMUXER 1 -#define CONFIG_APC_DEMUXER 1 -#define CONFIG_APE_DEMUXER 1 -#define CONFIG_APNG_DEMUXER 1 -#define CONFIG_APTX_DEMUXER 1 -#define CONFIG_APTX_HD_DEMUXER 1 -#define CONFIG_AQTITLE_DEMUXER 1 -#define CONFIG_ASF_DEMUXER 1 -#define CONFIG_ASF_O_DEMUXER 1 -#define CONFIG_ASS_DEMUXER 1 -#define CONFIG_AST_DEMUXER 1 -#define CONFIG_AU_DEMUXER 1 -#define CONFIG_AVI_DEMUXER 1 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVR_DEMUXER 1 -#define CONFIG_AVS_DEMUXER 1 -#define CONFIG_AVS2_DEMUXER 1 -#define CONFIG_BETHSOFTVID_DEMUXER 1 -#define CONFIG_BFI_DEMUXER 1 -#define CONFIG_BINTEXT_DEMUXER 1 -#define CONFIG_BINK_DEMUXER 1 -#define CONFIG_BIT_DEMUXER 1 -#define CONFIG_BMV_DEMUXER 1 -#define CONFIG_BFSTM_DEMUXER 1 -#define CONFIG_BRSTM_DEMUXER 1 -#define CONFIG_BOA_DEMUXER 1 -#define CONFIG_C93_DEMUXER 1 -#define CONFIG_CAF_DEMUXER 1 -#define CONFIG_CAVSVIDEO_DEMUXER 1 -#define CONFIG_CDG_DEMUXER 1 -#define CONFIG_CDXL_DEMUXER 1 -#define CONFIG_CINE_DEMUXER 1 -#define CONFIG_CODEC2_DEMUXER 1 -#define CONFIG_CODEC2RAW_DEMUXER 1 -#define CONFIG_CONCAT_DEMUXER 1 -#define CONFIG_DASH_DEMUXER 0 -#define CONFIG_DATA_DEMUXER 1 -#define CONFIG_DAUD_DEMUXER 1 -#define CONFIG_DCSTR_DEMUXER 1 -#define CONFIG_DFA_DEMUXER 1 -#define CONFIG_DIRAC_DEMUXER 1 -#define CONFIG_DNXHD_DEMUXER 1 -#define CONFIG_DSF_DEMUXER 1 -#define CONFIG_DSICIN_DEMUXER 1 -#define CONFIG_DSS_DEMUXER 1 -#define CONFIG_DTS_DEMUXER 1 -#define CONFIG_DTSHD_DEMUXER 1 -#define CONFIG_DV_DEMUXER 1 -#define CONFIG_DVBSUB_DEMUXER 1 -#define CONFIG_DVBTXT_DEMUXER 1 -#define CONFIG_DXA_DEMUXER 1 -#define CONFIG_EA_DEMUXER 1 -#define CONFIG_EA_CDATA_DEMUXER 1 -#define CONFIG_EAC3_DEMUXER 1 -#define CONFIG_EPAF_DEMUXER 1 -#define CONFIG_FFMETADATA_DEMUXER 1 -#define CONFIG_FILMSTRIP_DEMUXER 1 -#define CONFIG_FITS_DEMUXER 1 -#define CONFIG_FLAC_DEMUXER 1 -#define CONFIG_FLIC_DEMUXER 1 -#define CONFIG_FLV_DEMUXER 1 -#define CONFIG_LIVE_FLV_DEMUXER 1 -#define CONFIG_FOURXM_DEMUXER 1 -#define CONFIG_FRM_DEMUXER 1 -#define CONFIG_FSB_DEMUXER 1 -#define CONFIG_G722_DEMUXER 1 -#define CONFIG_G723_1_DEMUXER 1 -#define CONFIG_G726_DEMUXER 1 -#define CONFIG_G726LE_DEMUXER 1 -#define CONFIG_G729_DEMUXER 1 -#define CONFIG_GDV_DEMUXER 1 -#define CONFIG_GENH_DEMUXER 1 -#define CONFIG_GIF_DEMUXER 1 -#define CONFIG_GSM_DEMUXER 1 -#define CONFIG_GXF_DEMUXER 1 -#define CONFIG_H261_DEMUXER 1 -#define CONFIG_H263_DEMUXER 1 -#define CONFIG_H264_DEMUXER 1 -#define CONFIG_HEVC_DEMUXER 1 -#define CONFIG_HLS_DEMUXER 1 -#define CONFIG_HNM_DEMUXER 1 -#define CONFIG_ICO_DEMUXER 1 -#define CONFIG_IDCIN_DEMUXER 1 -#define CONFIG_IDF_DEMUXER 1 -#define CONFIG_IFF_DEMUXER 1 -#define CONFIG_ILBC_DEMUXER 1 -#define CONFIG_IMAGE2_DEMUXER 1 -#define CONFIG_IMAGE2PIPE_DEMUXER 1 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -#define CONFIG_INGENIENT_DEMUXER 1 -#define CONFIG_IPMOVIE_DEMUXER 1 -#define CONFIG_IRCAM_DEMUXER 1 -#define CONFIG_ISS_DEMUXER 1 -#define CONFIG_IV8_DEMUXER 1 -#define CONFIG_IVF_DEMUXER 1 -#define CONFIG_IVR_DEMUXER 1 -#define CONFIG_JACOSUB_DEMUXER 1 -#define CONFIG_JV_DEMUXER 1 -#define CONFIG_LMLM4_DEMUXER 1 -#define CONFIG_LOAS_DEMUXER 1 -#define CONFIG_LRC_DEMUXER 1 -#define CONFIG_LVF_DEMUXER 1 -#define CONFIG_LXF_DEMUXER 1 -#define CONFIG_M4V_DEMUXER 1 -#define CONFIG_MATROSKA_DEMUXER 1 -#define CONFIG_MGSTS_DEMUXER 1 -#define CONFIG_MICRODVD_DEMUXER 1 -#define CONFIG_MJPEG_DEMUXER 1 -#define CONFIG_MJPEG_2000_DEMUXER 1 -#define CONFIG_MLP_DEMUXER 1 -#define CONFIG_MLV_DEMUXER 1 -#define CONFIG_MM_DEMUXER 1 -#define CONFIG_MMF_DEMUXER 1 -#define CONFIG_MOV_DEMUXER 1 -#define CONFIG_MP3_DEMUXER 1 -#define CONFIG_MPC_DEMUXER 1 -#define CONFIG_MPC8_DEMUXER 1 -#define CONFIG_MPEGPS_DEMUXER 1 -#define CONFIG_MPEGTS_DEMUXER 1 -#define CONFIG_MPEGTSRAW_DEMUXER 1 -#define CONFIG_MPEGVIDEO_DEMUXER 1 -#define CONFIG_MPJPEG_DEMUXER 1 -#define CONFIG_MPL2_DEMUXER 1 -#define CONFIG_MPSUB_DEMUXER 1 -#define CONFIG_MSF_DEMUXER 1 -#define CONFIG_MSNWC_TCP_DEMUXER 1 -#define CONFIG_MTAF_DEMUXER 1 -#define CONFIG_MTV_DEMUXER 1 -#define CONFIG_MUSX_DEMUXER 1 -#define CONFIG_MV_DEMUXER 1 -#define CONFIG_MVI_DEMUXER 1 -#define CONFIG_MXF_DEMUXER 1 -#define CONFIG_MXG_DEMUXER 1 -#define CONFIG_NC_DEMUXER 1 -#define CONFIG_NISTSPHERE_DEMUXER 1 -#define CONFIG_NSP_DEMUXER 1 -#define CONFIG_NSV_DEMUXER 1 -#define CONFIG_NUT_DEMUXER 1 -#define CONFIG_NUV_DEMUXER 1 -#define CONFIG_OGG_DEMUXER 1 -#define CONFIG_OMA_DEMUXER 1 -#define CONFIG_PAF_DEMUXER 1 -#define CONFIG_PCM_ALAW_DEMUXER 1 -#define CONFIG_PCM_MULAW_DEMUXER 1 -#define CONFIG_PCM_VIDC_DEMUXER 1 -#define CONFIG_PCM_F64BE_DEMUXER 1 -#define CONFIG_PCM_F64LE_DEMUXER 1 -#define CONFIG_PCM_F32BE_DEMUXER 1 -#define CONFIG_PCM_F32LE_DEMUXER 1 -#define CONFIG_PCM_S32BE_DEMUXER 1 -#define CONFIG_PCM_S32LE_DEMUXER 1 -#define CONFIG_PCM_S24BE_DEMUXER 1 -#define CONFIG_PCM_S24LE_DEMUXER 1 -#define CONFIG_PCM_S16BE_DEMUXER 1 -#define CONFIG_PCM_S16LE_DEMUXER 1 -#define CONFIG_PCM_S8_DEMUXER 1 -#define CONFIG_PCM_U32BE_DEMUXER 1 -#define CONFIG_PCM_U32LE_DEMUXER 1 -#define CONFIG_PCM_U24BE_DEMUXER 1 -#define CONFIG_PCM_U24LE_DEMUXER 1 -#define CONFIG_PCM_U16BE_DEMUXER 1 -#define CONFIG_PCM_U16LE_DEMUXER 1 -#define CONFIG_PCM_U8_DEMUXER 1 -#define CONFIG_PJS_DEMUXER 1 -#define CONFIG_PMP_DEMUXER 1 -#define CONFIG_PVA_DEMUXER 1 -#define CONFIG_PVF_DEMUXER 1 -#define CONFIG_QCP_DEMUXER 1 -#define CONFIG_R3D_DEMUXER 1 -#define CONFIG_RAWVIDEO_DEMUXER 1 -#define CONFIG_REALTEXT_DEMUXER 1 -#define CONFIG_REDSPARK_DEMUXER 1 -#define CONFIG_RL2_DEMUXER 1 -#define CONFIG_RM_DEMUXER 1 -#define CONFIG_ROQ_DEMUXER 1 -#define CONFIG_RPL_DEMUXER 1 -#define CONFIG_RSD_DEMUXER 1 -#define CONFIG_RSO_DEMUXER 1 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_S337M_DEMUXER 1 -#define CONFIG_SAMI_DEMUXER 1 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SBC_DEMUXER 1 -#define CONFIG_SBG_DEMUXER 1 -#define CONFIG_SCC_DEMUXER 1 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 1 -#define CONFIG_SDS_DEMUXER 1 -#define CONFIG_SDX_DEMUXER 1 -#define CONFIG_SEGAFILM_DEMUXER 1 -#define CONFIG_SER_DEMUXER 1 -#define CONFIG_SHORTEN_DEMUXER 1 -#define CONFIG_SIFF_DEMUXER 1 -#define CONFIG_SLN_DEMUXER 1 -#define CONFIG_SMACKER_DEMUXER 1 -#define CONFIG_SMJPEG_DEMUXER 1 -#define CONFIG_SMUSH_DEMUXER 1 -#define CONFIG_SOL_DEMUXER 1 -#define CONFIG_SOX_DEMUXER 1 -#define CONFIG_SPDIF_DEMUXER 1 -#define CONFIG_SRT_DEMUXER 1 -#define CONFIG_STR_DEMUXER 1 -#define CONFIG_STL_DEMUXER 1 -#define CONFIG_SUBVIEWER1_DEMUXER 1 -#define CONFIG_SUBVIEWER_DEMUXER 1 -#define CONFIG_SUP_DEMUXER 1 -#define CONFIG_SVAG_DEMUXER 1 -#define CONFIG_SWF_DEMUXER 1 -#define CONFIG_TAK_DEMUXER 1 -#define CONFIG_TEDCAPTIONS_DEMUXER 1 -#define CONFIG_THP_DEMUXER 1 -#define CONFIG_THREEDOSTR_DEMUXER 1 -#define CONFIG_TIERTEXSEQ_DEMUXER 1 -#define CONFIG_TMV_DEMUXER 1 -#define CONFIG_TRUEHD_DEMUXER 1 -#define CONFIG_TTA_DEMUXER 1 -#define CONFIG_TXD_DEMUXER 1 -#define CONFIG_TTY_DEMUXER 1 -#define CONFIG_TY_DEMUXER 1 -#define CONFIG_V210_DEMUXER 1 -#define CONFIG_V210X_DEMUXER 1 -#define CONFIG_VAG_DEMUXER 1 -#define CONFIG_VC1_DEMUXER 1 -#define CONFIG_VC1T_DEMUXER 1 -#define CONFIG_VIVO_DEMUXER 1 -#define CONFIG_VMD_DEMUXER 1 -#define CONFIG_VOBSUB_DEMUXER 1 -#define CONFIG_VOC_DEMUXER 1 -#define CONFIG_VPK_DEMUXER 1 -#define CONFIG_VPLAYER_DEMUXER 1 -#define CONFIG_VQF_DEMUXER 1 -#define CONFIG_W64_DEMUXER 1 -#define CONFIG_WAV_DEMUXER 1 -#define CONFIG_WC3_DEMUXER 1 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -#define CONFIG_WEBVTT_DEMUXER 1 -#define CONFIG_WSAUD_DEMUXER 1 -#define CONFIG_WSD_DEMUXER 1 -#define CONFIG_WSVQA_DEMUXER 1 -#define CONFIG_WTV_DEMUXER 1 -#define CONFIG_WVE_DEMUXER 1 -#define CONFIG_WV_DEMUXER 1 -#define CONFIG_XA_DEMUXER 1 -#define CONFIG_XBIN_DEMUXER 1 -#define CONFIG_XMV_DEMUXER 1 -#define CONFIG_XVAG_DEMUXER 1 -#define CONFIG_XWMA_DEMUXER 1 -#define CONFIG_YOP_DEMUXER 1 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBOPENMPT_DEMUXER 0 -#define CONFIG_VAPOURSYNTH_DEMUXER 0 -#define CONFIG_A64_MUXER 0 -#define CONFIG_AC3_MUXER 0 -#define CONFIG_ADTS_MUXER 0 -#define CONFIG_ADX_MUXER 0 -#define CONFIG_AIFF_MUXER 0 -#define CONFIG_AMR_MUXER 0 -#define CONFIG_APNG_MUXER 0 -#define CONFIG_APTX_MUXER 0 -#define CONFIG_APTX_HD_MUXER 0 -#define CONFIG_ASF_MUXER 0 -#define CONFIG_ASS_MUXER 0 -#define CONFIG_AST_MUXER 0 -#define CONFIG_ASF_STREAM_MUXER 0 -#define CONFIG_AU_MUXER 0 -#define CONFIG_AVI_MUXER 0 -#define CONFIG_AVM2_MUXER 0 -#define CONFIG_AVS2_MUXER 0 -#define CONFIG_BIT_MUXER 0 -#define CONFIG_CAF_MUXER 0 -#define CONFIG_CAVSVIDEO_MUXER 0 -#define CONFIG_CODEC2_MUXER 0 -#define CONFIG_CODEC2RAW_MUXER 0 -#define CONFIG_CRC_MUXER 0 -#define CONFIG_DASH_MUXER 0 -#define CONFIG_DATA_MUXER 0 -#define CONFIG_DAUD_MUXER 0 -#define CONFIG_DIRAC_MUXER 0 -#define CONFIG_DNXHD_MUXER 0 -#define CONFIG_DTS_MUXER 0 -#define CONFIG_DV_MUXER 0 -#define CONFIG_EAC3_MUXER 0 -#define CONFIG_F4V_MUXER 0 -#define CONFIG_FFMETADATA_MUXER 0 -#define CONFIG_FIFO_MUXER 0 -#define CONFIG_FIFO_TEST_MUXER 0 -#define CONFIG_FILMSTRIP_MUXER 0 -#define CONFIG_FITS_MUXER 0 -#define CONFIG_FLAC_MUXER 0 -#define CONFIG_FLV_MUXER 0 -#define CONFIG_FRAMECRC_MUXER 0 -#define CONFIG_FRAMEHASH_MUXER 0 -#define CONFIG_FRAMEMD5_MUXER 0 -#define CONFIG_G722_MUXER 0 -#define CONFIG_G723_1_MUXER 0 -#define CONFIG_G726_MUXER 0 -#define CONFIG_G726LE_MUXER 0 -#define CONFIG_GIF_MUXER 0 -#define CONFIG_GSM_MUXER 0 -#define CONFIG_GXF_MUXER 0 -#define CONFIG_H261_MUXER 0 -#define CONFIG_H263_MUXER 0 -#define CONFIG_H264_MUXER 0 -#define CONFIG_HASH_MUXER 0 -#define CONFIG_HDS_MUXER 0 -#define CONFIG_HEVC_MUXER 0 -#define CONFIG_HLS_MUXER 0 -#define CONFIG_ICO_MUXER 0 -#define CONFIG_ILBC_MUXER 0 -#define CONFIG_IMAGE2_MUXER 0 -#define CONFIG_IMAGE2PIPE_MUXER 0 -#define CONFIG_IPOD_MUXER 0 -#define CONFIG_IRCAM_MUXER 0 -#define CONFIG_ISMV_MUXER 0 -#define CONFIG_IVF_MUXER 0 -#define CONFIG_JACOSUB_MUXER 0 -#define CONFIG_LATM_MUXER 0 -#define CONFIG_LRC_MUXER 0 -#define CONFIG_M4V_MUXER 0 -#define CONFIG_MD5_MUXER 0 -#define CONFIG_MATROSKA_MUXER 0 -#define CONFIG_MATROSKA_AUDIO_MUXER 0 -#define CONFIG_MICRODVD_MUXER 0 -#define CONFIG_MJPEG_MUXER 0 -#define CONFIG_MLP_MUXER 0 -#define CONFIG_MMF_MUXER 0 -#define CONFIG_MOV_MUXER 0 -#define CONFIG_MP2_MUXER 0 -#define CONFIG_MP3_MUXER 0 -#define CONFIG_MP4_MUXER 0 -#define CONFIG_MPEG1SYSTEM_MUXER 0 -#define CONFIG_MPEG1VCD_MUXER 0 -#define CONFIG_MPEG1VIDEO_MUXER 0 -#define CONFIG_MPEG2DVD_MUXER 0 -#define CONFIG_MPEG2SVCD_MUXER 0 -#define CONFIG_MPEG2VIDEO_MUXER 0 -#define CONFIG_MPEG2VOB_MUXER 0 -#define CONFIG_MPEGTS_MUXER 0 -#define CONFIG_MPJPEG_MUXER 0 -#define CONFIG_MXF_MUXER 0 -#define CONFIG_MXF_D10_MUXER 0 -#define CONFIG_MXF_OPATOM_MUXER 0 -#define CONFIG_NULL_MUXER 0 -#define CONFIG_NUT_MUXER 0 -#define CONFIG_OGA_MUXER 0 -#define CONFIG_OGG_MUXER 0 -#define CONFIG_OGV_MUXER 0 -#define CONFIG_OMA_MUXER 0 -#define CONFIG_OPUS_MUXER 0 -#define CONFIG_PCM_ALAW_MUXER 0 -#define CONFIG_PCM_MULAW_MUXER 0 -#define CONFIG_PCM_VIDC_MUXER 0 -#define CONFIG_PCM_F64BE_MUXER 0 -#define CONFIG_PCM_F64LE_MUXER 0 -#define CONFIG_PCM_F32BE_MUXER 0 -#define CONFIG_PCM_F32LE_MUXER 0 -#define CONFIG_PCM_S32BE_MUXER 0 -#define CONFIG_PCM_S32LE_MUXER 0 -#define CONFIG_PCM_S24BE_MUXER 0 -#define CONFIG_PCM_S24LE_MUXER 0 -#define CONFIG_PCM_S16BE_MUXER 0 -#define CONFIG_PCM_S16LE_MUXER 0 -#define CONFIG_PCM_S8_MUXER 0 -#define CONFIG_PCM_U32BE_MUXER 0 -#define CONFIG_PCM_U32LE_MUXER 0 -#define CONFIG_PCM_U24BE_MUXER 0 -#define CONFIG_PCM_U24LE_MUXER 0 -#define CONFIG_PCM_U16BE_MUXER 0 -#define CONFIG_PCM_U16LE_MUXER 0 -#define CONFIG_PCM_U8_MUXER 0 -#define CONFIG_PSP_MUXER 0 -#define CONFIG_RAWVIDEO_MUXER 0 -#define CONFIG_RM_MUXER 0 -#define CONFIG_ROQ_MUXER 0 -#define CONFIG_RSO_MUXER 0 -#define CONFIG_RTP_MUXER 0 -#define CONFIG_RTP_MPEGTS_MUXER 0 -#define CONFIG_RTSP_MUXER 0 -#define CONFIG_SAP_MUXER 0 -#define CONFIG_SBC_MUXER 0 -#define CONFIG_SCC_MUXER 0 -#define CONFIG_SEGAFILM_MUXER 0 -#define CONFIG_SEGMENT_MUXER 0 -#define CONFIG_STREAM_SEGMENT_MUXER 0 -#define CONFIG_SINGLEJPEG_MUXER 0 -#define CONFIG_SMJPEG_MUXER 0 -#define CONFIG_SMOOTHSTREAMING_MUXER 0 -#define CONFIG_SOX_MUXER 0 -#define CONFIG_SPX_MUXER 0 -#define CONFIG_SPDIF_MUXER 0 -#define CONFIG_SRT_MUXER 0 -#define CONFIG_SUP_MUXER 0 -#define CONFIG_SWF_MUXER 0 -#define CONFIG_TEE_MUXER 0 -#define CONFIG_TG2_MUXER 0 -#define CONFIG_TGP_MUXER 0 -#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -#define CONFIG_TRUEHD_MUXER 0 -#define CONFIG_TTA_MUXER 0 -#define CONFIG_UNCODEDFRAMECRC_MUXER 0 -#define CONFIG_VC1_MUXER 0 -#define CONFIG_VC1T_MUXER 0 -#define CONFIG_VOC_MUXER 0 -#define CONFIG_W64_MUXER 0 -#define CONFIG_WAV_MUXER 0 -#define CONFIG_WEBM_MUXER 0 -#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -#define CONFIG_WEBM_CHUNK_MUXER 0 -#define CONFIG_WEBP_MUXER 0 -#define CONFIG_WEBVTT_MUXER 0 -#define CONFIG_WTV_MUXER 0 -#define CONFIG_WV_MUXER 0 -#define CONFIG_YUV4MPEGPIPE_MUXER 0 -#define CONFIG_CHROMAPRINT_MUXER 0 -#define CONFIG_ASYNC_PROTOCOL 1 -#define CONFIG_BLURAY_PROTOCOL 0 -#define CONFIG_CACHE_PROTOCOL 1 -#define CONFIG_CONCAT_PROTOCOL 1 -#define CONFIG_CRYPTO_PROTOCOL 1 -#define CONFIG_DATA_PROTOCOL 1 -#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -#define CONFIG_FFRTMPHTTP_PROTOCOL 0 -#define CONFIG_FILE_PROTOCOL 1 -#define CONFIG_FTP_PROTOCOL 0 -#define CONFIG_GOPHER_PROTOCOL 0 -#define CONFIG_HLS_PROTOCOL 1 -#define CONFIG_HTTP_PROTOCOL 0 -#define CONFIG_HTTPPROXY_PROTOCOL 0 -#define CONFIG_HTTPS_PROTOCOL 0 -#define CONFIG_ICECAST_PROTOCOL 0 -#define CONFIG_MMSH_PROTOCOL 0 -#define CONFIG_MMST_PROTOCOL 0 -#define CONFIG_MD5_PROTOCOL 1 -#define CONFIG_PIPE_PROTOCOL 1 -#define CONFIG_PROMPEG_PROTOCOL 1 -#define CONFIG_RTMP_PROTOCOL 0 -#define CONFIG_RTMPE_PROTOCOL 0 -#define CONFIG_RTMPS_PROTOCOL 0 -#define CONFIG_RTMPT_PROTOCOL 0 -#define CONFIG_RTMPTE_PROTOCOL 0 -#define CONFIG_RTMPTS_PROTOCOL 0 -#define CONFIG_RTP_PROTOCOL 0 -#define CONFIG_SCTP_PROTOCOL 0 -#define CONFIG_SRTP_PROTOCOL 0 -#define CONFIG_SUBFILE_PROTOCOL 1 -#define CONFIG_TEE_PROTOCOL 1 -#define CONFIG_TCP_PROTOCOL 0 -#define CONFIG_TLS_PROTOCOL 0 -#define CONFIG_UDP_PROTOCOL 0 -#define CONFIG_UDPLITE_PROTOCOL 0 -#define CONFIG_UNIX_PROTOCOL 0 -#define CONFIG_LIBRTMP_PROTOCOL 0 -#define CONFIG_LIBRTMPE_PROTOCOL 0 -#define CONFIG_LIBRTMPS_PROTOCOL 0 -#define CONFIG_LIBRTMPT_PROTOCOL 0 -#define CONFIG_LIBRTMPTE_PROTOCOL 0 -#define CONFIG_LIBSRT_PROTOCOL 0 -#define CONFIG_LIBSSH_PROTOCOL 0 -#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 -#endif /* FFMPEG_CONFIG_H */ diff --git a/build/ffmpeg/config.h b/build/ffmpeg/config.h deleted file mode 100644 index 40152db8c..000000000 --- a/build/ffmpeg/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifdef _WIN64 -#include "config-x64.h" -#else -#include "config-x86.h" -#endif diff --git a/build/ffmpeg/configure.sh b/build/ffmpeg/configure.sh deleted file mode 100755 index 624783893..000000000 --- a/build/ffmpeg/configure.sh +++ /dev/null @@ -1,54 +0,0 @@ -platform='Win32' -suffix='x86' -if [[ $LIB =~ x64 ]]; then - platform='x64' - suffix='x64' -fi - -./configure $@ \ - --disable-avfilter \ - --disable-avresample \ - --disable-bzlib \ - --disable-d3d11va \ - --disable-dxva2 \ - --disable-decoder=atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq \ - --disable-devices \ - --disable-doc \ - --disable-encoders \ - --disable-ffmpeg \ - --disable-ffplay \ - --disable-ffprobe \ - --disable-filters \ - --disable-hwaccels \ - --disable-muxers \ - --disable-network \ - --disable-postproc \ - --disable-pthreads \ - --disable-shared \ - --enable-gpl \ - --enable-runtime-cpudetect \ - --enable-static \ - --enable-small \ - --enable-x86asm \ - --x86asmexe=yasm \ - --enable-zlib \ - --extra-cflags=-D_SYSCRT \ - --extra-cflags=-I../../include \ - --extra-cflags=-MD \ - --extra-cflags=-wd4005 \ - --extra-cflags=-wd4189 \ - --extra-ldflags=-LIBPATH:../../lib/$platform/Release \ - --toolchain=msvc - -mv config.asm ../../build/ffmpeg/config-$suffix.asm -mv config.h ../../build/ffmpeg/config-$suffix.h -mv libavcodec/bsf_list.c ../../build/ffmpeg/libavcodec/bsf_list.c -mv libavcodec/codec_list.c ../../build/ffmpeg/libavcodec/codec_list.c -mv libavcodec/parser_list.c ../../build/ffmpeg/libavcodec/parser_list.c -mv libavdevice/indev_list.c ../../build/ffmpeg/libavdevice/indev_list.c -mv libavdevice/outdev_list.c ../../build/ffmpeg/libavdevice/outdev_list.c -mv libavformat/demuxer_list.c ../../build/ffmpeg/libavformat/demuxer_list.c -mv libavformat/muxer_list.c ../../build/ffmpeg/libavformat/muxer_list.c -mv libavformat/protocol_list.c ../../build/ffmpeg/libavformat/protocol_list.c -mv libavutil/avconfig.h ../../build/ffmpeg/libavutil/avconfig.h -mv libavutil/ffversion.h ../../build/ffmpeg/libavutil/ffversion.h diff --git a/build/ffmpeg/ffmpeg.vcxproj b/build/ffmpeg/ffmpeg.vcxproj deleted file mode 100644 index 6753294ee..000000000 --- a/build/ffmpeg/ffmpeg.vcxproj +++ /dev/null @@ -1,1413 +0,0 @@ - - - - {F934AB7B-186B-4E96-B20C-A58C38C1B819} - ffmpeg - lib - $(FfmpegSrcDir) - - - - - - - - - - - - - - - - $(MSBuildThisFileDirectory); - $(FfmpegSrcDir); - $(FfmpegSrcDir)\compat\atomics\win32; - $(AegisubSourceBase)\include; - - - HAVE_AV_CONFIG_H; - _CRT_SECURE_NO_WARNINGS; - _FILE_OFFSET_BITS=64; - _ISOC99_SOURCE; - _LARGEFILE_SOURCE; - _SYSCRT; - _USE_MATH_DEFINES; - _WIN32_WINNT=0x0602; - inline=__inline; - %(PreprocessorDefinitions) - - stdlib.h;%(ForcedIncludeFiles) - Level1 - - - MinSpace - ProgramDatabase - Default - true - false - $(FfmpegSrcDir) - - - $(FfmpegSrcDir) - - - $(FfmpegSrcDir)\ - %(Include) -I$(MSBuildThisFileDirectory) -I$(FfmpegSrcDir) - %(Config) -DPREFIX -Pconfig-x86.asm - %(Config) -Pconfig-x64.asm - - - - - - - {10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(MSBuildThisFileDirectory) - - - $(MSBuildThisFileDirectory) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/ffmpeg/ffmpeg.vcxproj.filters b/build/ffmpeg/ffmpeg.vcxproj.filters deleted file mode 100644 index 25c259cfc..000000000 --- a/build/ffmpeg/ffmpeg.vcxproj.filters +++ /dev/null @@ -1,2659 +0,0 @@ - - - - - libavdevice - - - libavdevice - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavformat - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavresample - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libavcodec - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - libswscale - - - compat - - - compat - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - libavutil - - - - - {37917d7c-3879-482a-bb0c-36ad05f4b6ff} - - - {6b42873d-3fb7-4135-a5a0-0c80b081519f} - - - {aa5c6ccd-b317-41a7-9fc5-e319d1154e97} - - - {a667d61f-5608-4726-9052-28df0130c602} - - - {2ca1cbec-46c2-41d7-b3e0-94bafb352413} - - - {b3cb6744-99da-450a-86f6-914bebe58ff2} - - - {ad571b1a-bdc8-4b66-bfee-9a2695bd50c3} - - - diff --git a/build/ffmpeg/get-file-list.sh b/build/ffmpeg/get-file-list.sh deleted file mode 100755 index d5b5b5213..000000000 --- a/build/ffmpeg/get-file-list.sh +++ /dev/null @@ -1,13 +0,0 @@ -rm -f make-dry -make -n > make-dry -grep '^cl' make-dry \ - | sed 's/.*\(lib[^ ]*.c\) .*/\1/' \ - | sed 's/\//\\/g' \ - | sed 's/\(.*\)//' \ - | sort -echo -grep '^yasm' make-dry \ - | sed 's/.*\(lib[^ ]*.asm\) .*/\1/' \ - | sed 's/\//\\/g' \ - | sed 's/\(.*\)//' \ - | sort diff --git a/build/ffmpeg/libavcodec/bsf_list.c b/build/ffmpeg/libavcodec/bsf_list.c deleted file mode 100644 index 9c0766c2a..000000000 --- a/build/ffmpeg/libavcodec/bsf_list.c +++ /dev/null @@ -1,33 +0,0 @@ -static const AVBitStreamFilter * const bitstream_filters[] = { - &ff_aac_adtstoasc_bsf, - &ff_av1_metadata_bsf, - &ff_chomp_bsf, - &ff_dump_extradata_bsf, - &ff_dca_core_bsf, - &ff_eac3_core_bsf, - &ff_extract_extradata_bsf, - &ff_filter_units_bsf, - &ff_h264_metadata_bsf, - &ff_h264_mp4toannexb_bsf, - &ff_h264_redundant_pps_bsf, - &ff_hapqa_extract_bsf, - &ff_hevc_metadata_bsf, - &ff_hevc_mp4toannexb_bsf, - &ff_imx_dump_header_bsf, - &ff_mjpeg2jpeg_bsf, - &ff_mjpega_dump_header_bsf, - &ff_mp3_header_decompress_bsf, - &ff_mpeg2_metadata_bsf, - &ff_mpeg4_unpack_bframes_bsf, - &ff_mov2textsub_bsf, - &ff_noise_bsf, - &ff_null_bsf, - &ff_prores_metadata_bsf, - &ff_remove_extradata_bsf, - &ff_text2movsub_bsf, - &ff_trace_headers_bsf, - &ff_vp9_metadata_bsf, - &ff_vp9_raw_reorder_bsf, - &ff_vp9_superframe_bsf, - &ff_vp9_superframe_split_bsf, - NULL }; diff --git a/build/ffmpeg/libavcodec/codec_list.c b/build/ffmpeg/libavcodec/codec_list.c deleted file mode 100644 index 17228aa9f..000000000 --- a/build/ffmpeg/libavcodec/codec_list.c +++ /dev/null @@ -1,426 +0,0 @@ -static const AVCodec * const codec_list[] = { - &ff_aasc_decoder, - &ff_aic_decoder, - &ff_alias_pix_decoder, - &ff_amv_decoder, - &ff_anm_decoder, - &ff_ansi_decoder, - &ff_apng_decoder, - &ff_asv1_decoder, - &ff_asv2_decoder, - &ff_aura_decoder, - &ff_aura2_decoder, - &ff_avrp_decoder, - &ff_avrn_decoder, - &ff_avs_decoder, - &ff_avui_decoder, - &ff_ayuv_decoder, - &ff_bethsoftvid_decoder, - &ff_bfi_decoder, - &ff_bink_decoder, - &ff_bitpacked_decoder, - &ff_bmp_decoder, - &ff_bmv_video_decoder, - &ff_brender_pix_decoder, - &ff_c93_decoder, - &ff_cavs_decoder, - &ff_cdgraphics_decoder, - &ff_cdxl_decoder, - &ff_cfhd_decoder, - &ff_cinepak_decoder, - &ff_clearvideo_decoder, - &ff_cljr_decoder, - &ff_cllc_decoder, - &ff_comfortnoise_decoder, - &ff_cpia_decoder, - &ff_cscd_decoder, - &ff_cyuv_decoder, - &ff_dds_decoder, - &ff_dfa_decoder, - &ff_dirac_decoder, - &ff_dnxhd_decoder, - &ff_dpx_decoder, - &ff_dsicinvideo_decoder, - &ff_dvaudio_decoder, - &ff_dvvideo_decoder, - &ff_dxa_decoder, - &ff_dxtory_decoder, - &ff_dxv_decoder, - &ff_eacmv_decoder, - &ff_eamad_decoder, - &ff_eatgq_decoder, - &ff_eatgv_decoder, - &ff_eatqi_decoder, - &ff_eightbps_decoder, - &ff_eightsvx_exp_decoder, - &ff_eightsvx_fib_decoder, - &ff_escape124_decoder, - &ff_escape130_decoder, - &ff_exr_decoder, - &ff_ffv1_decoder, - &ff_ffvhuff_decoder, - &ff_fic_decoder, - &ff_fits_decoder, - &ff_flashsv_decoder, - &ff_flashsv2_decoder, - &ff_flic_decoder, - &ff_flv_decoder, - &ff_fmvc_decoder, - &ff_fourxm_decoder, - &ff_fraps_decoder, - &ff_frwu_decoder, - &ff_g2m_decoder, - &ff_gdv_decoder, - &ff_gif_decoder, - &ff_h261_decoder, - &ff_h263_decoder, - &ff_h263i_decoder, - &ff_h263p_decoder, - &ff_h264_decoder, - &ff_hap_decoder, - &ff_hevc_decoder, - &ff_hnm4_video_decoder, - &ff_hq_hqa_decoder, - &ff_hqx_decoder, - &ff_huffyuv_decoder, - &ff_idcin_decoder, - &ff_iff_ilbm_decoder, - &ff_imm4_decoder, - &ff_interplay_video_decoder, - &ff_jpeg2000_decoder, - &ff_jpegls_decoder, - &ff_jv_decoder, - &ff_kgv1_decoder, - &ff_kmvc_decoder, - &ff_lagarith_decoder, - &ff_loco_decoder, - &ff_m101_decoder, - &ff_magicyuv_decoder, - &ff_mdec_decoder, - &ff_mimic_decoder, - &ff_mjpeg_decoder, - &ff_mjpegb_decoder, - &ff_mmvideo_decoder, - &ff_motionpixels_decoder, - &ff_mpeg1video_decoder, - &ff_mpeg2video_decoder, - &ff_mpeg4_decoder, - &ff_mpegvideo_decoder, - &ff_msa1_decoder, - &ff_mscc_decoder, - &ff_msmpeg4v1_decoder, - &ff_msmpeg4v2_decoder, - &ff_msmpeg4v3_decoder, - &ff_msrle_decoder, - &ff_mss1_decoder, - &ff_mss2_decoder, - &ff_msvideo1_decoder, - &ff_mszh_decoder, - &ff_mts2_decoder, - &ff_mvc1_decoder, - &ff_mvc2_decoder, - &ff_mwsc_decoder, - &ff_mxpeg_decoder, - &ff_nuv_decoder, - &ff_paf_video_decoder, - &ff_pam_decoder, - &ff_pbm_decoder, - &ff_pcx_decoder, - &ff_pgm_decoder, - &ff_pgmyuv_decoder, - &ff_pictor_decoder, - &ff_pixlet_decoder, - &ff_png_decoder, - &ff_ppm_decoder, - &ff_prores_decoder, - &ff_prosumer_decoder, - &ff_psd_decoder, - &ff_ptx_decoder, - &ff_qdraw_decoder, - &ff_qpeg_decoder, - &ff_qtrle_decoder, - &ff_r10k_decoder, - &ff_r210_decoder, - &ff_rasc_decoder, - &ff_rawvideo_decoder, - &ff_rl2_decoder, - &ff_roq_decoder, - &ff_rpza_decoder, - &ff_rscc_decoder, - &ff_rv10_decoder, - &ff_rv20_decoder, - &ff_rv30_decoder, - &ff_rv40_decoder, - &ff_s302m_decoder, - &ff_sanm_decoder, - &ff_scpr_decoder, - &ff_screenpresso_decoder, - &ff_sdx2_dpcm_decoder, - &ff_sgi_decoder, - &ff_sgirle_decoder, - &ff_sheervideo_decoder, - &ff_smacker_decoder, - &ff_smc_decoder, - &ff_smvjpeg_decoder, - &ff_snow_decoder, - &ff_sp5x_decoder, - &ff_speedhq_decoder, - &ff_srgc_decoder, - &ff_sunrast_decoder, - &ff_svq1_decoder, - &ff_svq3_decoder, - &ff_targa_decoder, - &ff_targa_y216_decoder, - &ff_tdsc_decoder, - &ff_theora_decoder, - &ff_thp_decoder, - &ff_tiertexseqvideo_decoder, - &ff_tiff_decoder, - &ff_tmv_decoder, - &ff_truemotion1_decoder, - &ff_truemotion2_decoder, - &ff_truemotion2rt_decoder, - &ff_tscc_decoder, - &ff_tscc2_decoder, - &ff_txd_decoder, - &ff_ulti_decoder, - &ff_utvideo_decoder, - &ff_v210_decoder, - &ff_v210x_decoder, - &ff_v308_decoder, - &ff_v408_decoder, - &ff_v410_decoder, - &ff_vb_decoder, - &ff_vble_decoder, - &ff_vc1_decoder, - &ff_vc1image_decoder, - &ff_vcr1_decoder, - &ff_vmdvideo_decoder, - &ff_vmnc_decoder, - &ff_vp3_decoder, - &ff_vp5_decoder, - &ff_vp6_decoder, - &ff_vp6a_decoder, - &ff_vp6f_decoder, - &ff_vp7_decoder, - &ff_vp8_decoder, - &ff_vp9_decoder, - &ff_vqa_decoder, - &ff_webp_decoder, - &ff_wcmv_decoder, - &ff_wrapped_avframe_decoder, - &ff_wmv1_decoder, - &ff_wmv2_decoder, - &ff_wmv3_decoder, - &ff_wmv3image_decoder, - &ff_wnv1_decoder, - &ff_xan_wc3_decoder, - &ff_xan_wc4_decoder, - &ff_xbm_decoder, - &ff_xface_decoder, - &ff_xl_decoder, - &ff_xpm_decoder, - &ff_xwd_decoder, - &ff_y41p_decoder, - &ff_ylc_decoder, - &ff_yop_decoder, - &ff_yuv4_decoder, - &ff_zero12v_decoder, - &ff_zerocodec_decoder, - &ff_zlib_decoder, - &ff_zmbv_decoder, - &ff_aac_decoder, - &ff_aac_fixed_decoder, - &ff_aac_latm_decoder, - &ff_ac3_decoder, - &ff_ac3_fixed_decoder, - &ff_alac_decoder, - &ff_als_decoder, - &ff_amrnb_decoder, - &ff_amrwb_decoder, - &ff_ape_decoder, - &ff_aptx_decoder, - &ff_aptx_hd_decoder, - &ff_atrac1_decoder, - &ff_atrac3_decoder, - &ff_atrac3al_decoder, - &ff_atrac3pal_decoder, - &ff_atrac9_decoder, - &ff_binkaudio_dct_decoder, - &ff_binkaudio_rdft_decoder, - &ff_bmv_audio_decoder, - &ff_cook_decoder, - &ff_dca_decoder, - &ff_dolby_e_decoder, - &ff_dsd_lsbf_decoder, - &ff_dsd_msbf_decoder, - &ff_dsd_lsbf_planar_decoder, - &ff_dsd_msbf_planar_decoder, - &ff_dsicinaudio_decoder, - &ff_dss_sp_decoder, - &ff_dst_decoder, - &ff_eac3_decoder, - &ff_evrc_decoder, - &ff_ffwavesynth_decoder, - &ff_flac_decoder, - &ff_g723_1_decoder, - &ff_g729_decoder, - &ff_gsm_decoder, - &ff_gsm_ms_decoder, - &ff_iac_decoder, - &ff_ilbc_decoder, - &ff_imc_decoder, - &ff_interplay_acm_decoder, - &ff_mace3_decoder, - &ff_mace6_decoder, - &ff_metasound_decoder, - &ff_mlp_decoder, - &ff_mp1_decoder, - &ff_mp1float_decoder, - &ff_mp2_decoder, - &ff_mp2float_decoder, - &ff_mp3float_decoder, - &ff_mp3_decoder, - &ff_mp3adufloat_decoder, - &ff_mp3adu_decoder, - &ff_mp3on4float_decoder, - &ff_mp3on4_decoder, - &ff_mpc7_decoder, - &ff_mpc8_decoder, - &ff_nellymoser_decoder, - &ff_on2avc_decoder, - &ff_opus_decoder, - &ff_paf_audio_decoder, - &ff_qcelp_decoder, - &ff_qdm2_decoder, - &ff_qdmc_decoder, - &ff_ra_144_decoder, - &ff_ra_288_decoder, - &ff_ralf_decoder, - &ff_sbc_decoder, - &ff_shorten_decoder, - &ff_sipr_decoder, - &ff_smackaud_decoder, - &ff_sonic_decoder, - &ff_tak_decoder, - &ff_truehd_decoder, - &ff_truespeech_decoder, - &ff_tta_decoder, - &ff_vmdaudio_decoder, - &ff_vorbis_decoder, - &ff_wavpack_decoder, - &ff_wmalossless_decoder, - &ff_wmapro_decoder, - &ff_wmav1_decoder, - &ff_wmav2_decoder, - &ff_wmavoice_decoder, - &ff_ws_snd1_decoder, - &ff_xma1_decoder, - &ff_xma2_decoder, - &ff_pcm_alaw_decoder, - &ff_pcm_bluray_decoder, - &ff_pcm_dvd_decoder, - &ff_pcm_f16le_decoder, - &ff_pcm_f24le_decoder, - &ff_pcm_f32be_decoder, - &ff_pcm_f32le_decoder, - &ff_pcm_f64be_decoder, - &ff_pcm_f64le_decoder, - &ff_pcm_lxf_decoder, - &ff_pcm_mulaw_decoder, - &ff_pcm_s8_decoder, - &ff_pcm_s8_planar_decoder, - &ff_pcm_s16be_decoder, - &ff_pcm_s16be_planar_decoder, - &ff_pcm_s16le_decoder, - &ff_pcm_s16le_planar_decoder, - &ff_pcm_s24be_decoder, - &ff_pcm_s24daud_decoder, - &ff_pcm_s24le_decoder, - &ff_pcm_s24le_planar_decoder, - &ff_pcm_s32be_decoder, - &ff_pcm_s32le_decoder, - &ff_pcm_s32le_planar_decoder, - &ff_pcm_s64be_decoder, - &ff_pcm_s64le_decoder, - &ff_pcm_u8_decoder, - &ff_pcm_u16be_decoder, - &ff_pcm_u16le_decoder, - &ff_pcm_u24be_decoder, - &ff_pcm_u24le_decoder, - &ff_pcm_u32be_decoder, - &ff_pcm_u32le_decoder, - &ff_pcm_vidc_decoder, - &ff_pcm_zork_decoder, - &ff_gremlin_dpcm_decoder, - &ff_interplay_dpcm_decoder, - &ff_roq_dpcm_decoder, - &ff_sol_dpcm_decoder, - &ff_xan_dpcm_decoder, - &ff_adpcm_4xm_decoder, - &ff_adpcm_adx_decoder, - &ff_adpcm_afc_decoder, - &ff_adpcm_aica_decoder, - &ff_adpcm_ct_decoder, - &ff_adpcm_dtk_decoder, - &ff_adpcm_ea_decoder, - &ff_adpcm_ea_maxis_xa_decoder, - &ff_adpcm_ea_r1_decoder, - &ff_adpcm_ea_r2_decoder, - &ff_adpcm_ea_r3_decoder, - &ff_adpcm_ea_xas_decoder, - &ff_adpcm_g722_decoder, - &ff_adpcm_g726_decoder, - &ff_adpcm_g726le_decoder, - &ff_adpcm_ima_amv_decoder, - &ff_adpcm_ima_apc_decoder, - &ff_adpcm_ima_dat4_decoder, - &ff_adpcm_ima_dk3_decoder, - &ff_adpcm_ima_dk4_decoder, - &ff_adpcm_ima_ea_eacs_decoder, - &ff_adpcm_ima_ea_sead_decoder, - &ff_adpcm_ima_iss_decoder, - &ff_adpcm_ima_oki_decoder, - &ff_adpcm_ima_qt_decoder, - &ff_adpcm_ima_rad_decoder, - &ff_adpcm_ima_smjpeg_decoder, - &ff_adpcm_ima_wav_decoder, - &ff_adpcm_ima_ws_decoder, - &ff_adpcm_ms_decoder, - &ff_adpcm_mtaf_decoder, - &ff_adpcm_psx_decoder, - &ff_adpcm_sbpro_2_decoder, - &ff_adpcm_sbpro_3_decoder, - &ff_adpcm_sbpro_4_decoder, - &ff_adpcm_swf_decoder, - &ff_adpcm_thp_decoder, - &ff_adpcm_thp_le_decoder, - &ff_adpcm_vima_decoder, - &ff_adpcm_xa_decoder, - &ff_adpcm_yamaha_decoder, - &ff_ssa_decoder, - &ff_ass_decoder, - &ff_ccaption_decoder, - &ff_dvbsub_decoder, - &ff_dvdsub_decoder, - &ff_jacosub_decoder, - &ff_microdvd_decoder, - &ff_movtext_decoder, - &ff_mpl2_decoder, - &ff_pgssub_decoder, - &ff_pjs_decoder, - &ff_realtext_decoder, - &ff_sami_decoder, - &ff_srt_decoder, - &ff_stl_decoder, - &ff_subrip_decoder, - &ff_subviewer_decoder, - &ff_subviewer1_decoder, - &ff_text_decoder, - &ff_vplayer_decoder, - &ff_webvtt_decoder, - &ff_xsub_decoder, - &ff_bintext_decoder, - &ff_xbin_decoder, - &ff_idf_decoder, - NULL }; diff --git a/build/ffmpeg/libavcodec/parser_list.c b/build/ffmpeg/libavcodec/parser_list.c deleted file mode 100644 index 020cd0969..000000000 --- a/build/ffmpeg/libavcodec/parser_list.c +++ /dev/null @@ -1,45 +0,0 @@ -static const AVCodecParser * const parser_list[] = { - &ff_aac_parser, - &ff_aac_latm_parser, - &ff_ac3_parser, - &ff_adx_parser, - &ff_av1_parser, - &ff_avs2_parser, - &ff_bmp_parser, - &ff_cavsvideo_parser, - &ff_cook_parser, - &ff_dca_parser, - &ff_dirac_parser, - &ff_dnxhd_parser, - &ff_dpx_parser, - &ff_dvaudio_parser, - &ff_dvbsub_parser, - &ff_dvdsub_parser, - &ff_dvd_nav_parser, - &ff_flac_parser, - &ff_g729_parser, - &ff_gsm_parser, - &ff_h261_parser, - &ff_h263_parser, - &ff_h264_parser, - &ff_hevc_parser, - &ff_mjpeg_parser, - &ff_mlp_parser, - &ff_mpeg4video_parser, - &ff_mpegaudio_parser, - &ff_mpegvideo_parser, - &ff_opus_parser, - &ff_png_parser, - &ff_pnm_parser, - &ff_rv30_parser, - &ff_rv40_parser, - &ff_sbc_parser, - &ff_sipr_parser, - &ff_tak_parser, - &ff_vc1_parser, - &ff_vorbis_parser, - &ff_vp3_parser, - &ff_vp8_parser, - &ff_vp9_parser, - &ff_xma_parser, - NULL }; diff --git a/build/ffmpeg/libavdevice/indev_list.c b/build/ffmpeg/libavdevice/indev_list.c deleted file mode 100644 index 03ffb4036..000000000 --- a/build/ffmpeg/libavdevice/indev_list.c +++ /dev/null @@ -1,2 +0,0 @@ -static const AVInputFormat * const indev_list[] = { - NULL }; diff --git a/build/ffmpeg/libavdevice/outdev_list.c b/build/ffmpeg/libavdevice/outdev_list.c deleted file mode 100644 index d1b87ed7b..000000000 --- a/build/ffmpeg/libavdevice/outdev_list.c +++ /dev/null @@ -1,2 +0,0 @@ -static const AVOutputFormat * const outdev_list[] = { - NULL }; diff --git a/build/ffmpeg/libavformat/demuxer_list.c b/build/ffmpeg/libavformat/demuxer_list.c deleted file mode 100644 index 5a2baedbb..000000000 --- a/build/ffmpeg/libavformat/demuxer_list.c +++ /dev/null @@ -1,287 +0,0 @@ -static const AVInputFormat * const demuxer_list[] = { - &ff_aa_demuxer, - &ff_aac_demuxer, - &ff_ac3_demuxer, - &ff_acm_demuxer, - &ff_act_demuxer, - &ff_adf_demuxer, - &ff_adp_demuxer, - &ff_ads_demuxer, - &ff_adx_demuxer, - &ff_aea_demuxer, - &ff_afc_demuxer, - &ff_aiff_demuxer, - &ff_aix_demuxer, - &ff_amr_demuxer, - &ff_amrnb_demuxer, - &ff_amrwb_demuxer, - &ff_anm_demuxer, - &ff_apc_demuxer, - &ff_ape_demuxer, - &ff_apng_demuxer, - &ff_aptx_demuxer, - &ff_aptx_hd_demuxer, - &ff_aqtitle_demuxer, - &ff_asf_demuxer, - &ff_asf_o_demuxer, - &ff_ass_demuxer, - &ff_ast_demuxer, - &ff_au_demuxer, - &ff_avi_demuxer, - &ff_avr_demuxer, - &ff_avs_demuxer, - &ff_avs2_demuxer, - &ff_bethsoftvid_demuxer, - &ff_bfi_demuxer, - &ff_bintext_demuxer, - &ff_bink_demuxer, - &ff_bit_demuxer, - &ff_bmv_demuxer, - &ff_bfstm_demuxer, - &ff_brstm_demuxer, - &ff_boa_demuxer, - &ff_c93_demuxer, - &ff_caf_demuxer, - &ff_cavsvideo_demuxer, - &ff_cdg_demuxer, - &ff_cdxl_demuxer, - &ff_cine_demuxer, - &ff_codec2_demuxer, - &ff_codec2raw_demuxer, - &ff_concat_demuxer, - &ff_data_demuxer, - &ff_daud_demuxer, - &ff_dcstr_demuxer, - &ff_dfa_demuxer, - &ff_dirac_demuxer, - &ff_dnxhd_demuxer, - &ff_dsf_demuxer, - &ff_dsicin_demuxer, - &ff_dss_demuxer, - &ff_dts_demuxer, - &ff_dtshd_demuxer, - &ff_dv_demuxer, - &ff_dvbsub_demuxer, - &ff_dvbtxt_demuxer, - &ff_dxa_demuxer, - &ff_ea_demuxer, - &ff_ea_cdata_demuxer, - &ff_eac3_demuxer, - &ff_epaf_demuxer, - &ff_ffmetadata_demuxer, - &ff_filmstrip_demuxer, - &ff_fits_demuxer, - &ff_flac_demuxer, - &ff_flic_demuxer, - &ff_flv_demuxer, - &ff_live_flv_demuxer, - &ff_fourxm_demuxer, - &ff_frm_demuxer, - &ff_fsb_demuxer, - &ff_g722_demuxer, - &ff_g723_1_demuxer, - &ff_g726_demuxer, - &ff_g726le_demuxer, - &ff_g729_demuxer, - &ff_gdv_demuxer, - &ff_genh_demuxer, - &ff_gif_demuxer, - &ff_gsm_demuxer, - &ff_gxf_demuxer, - &ff_h261_demuxer, - &ff_h263_demuxer, - &ff_h264_demuxer, - &ff_hevc_demuxer, - &ff_hls_demuxer, - &ff_hnm_demuxer, - &ff_ico_demuxer, - &ff_idcin_demuxer, - &ff_idf_demuxer, - &ff_iff_demuxer, - &ff_ilbc_demuxer, - &ff_image2_demuxer, - &ff_image2pipe_demuxer, - &ff_image2_alias_pix_demuxer, - &ff_image2_brender_pix_demuxer, - &ff_ingenient_demuxer, - &ff_ipmovie_demuxer, - &ff_ircam_demuxer, - &ff_iss_demuxer, - &ff_iv8_demuxer, - &ff_ivf_demuxer, - &ff_ivr_demuxer, - &ff_jacosub_demuxer, - &ff_jv_demuxer, - &ff_lmlm4_demuxer, - &ff_loas_demuxer, - &ff_lrc_demuxer, - &ff_lvf_demuxer, - &ff_lxf_demuxer, - &ff_m4v_demuxer, - &ff_matroska_demuxer, - &ff_mgsts_demuxer, - &ff_microdvd_demuxer, - &ff_mjpeg_demuxer, - &ff_mjpeg_2000_demuxer, - &ff_mlp_demuxer, - &ff_mlv_demuxer, - &ff_mm_demuxer, - &ff_mmf_demuxer, - &ff_mov_demuxer, - &ff_mp3_demuxer, - &ff_mpc_demuxer, - &ff_mpc8_demuxer, - &ff_mpegps_demuxer, - &ff_mpegts_demuxer, - &ff_mpegtsraw_demuxer, - &ff_mpegvideo_demuxer, - &ff_mpjpeg_demuxer, - &ff_mpl2_demuxer, - &ff_mpsub_demuxer, - &ff_msf_demuxer, - &ff_msnwc_tcp_demuxer, - &ff_mtaf_demuxer, - &ff_mtv_demuxer, - &ff_musx_demuxer, - &ff_mv_demuxer, - &ff_mvi_demuxer, - &ff_mxf_demuxer, - &ff_mxg_demuxer, - &ff_nc_demuxer, - &ff_nistsphere_demuxer, - &ff_nsp_demuxer, - &ff_nsv_demuxer, - &ff_nut_demuxer, - &ff_nuv_demuxer, - &ff_ogg_demuxer, - &ff_oma_demuxer, - &ff_paf_demuxer, - &ff_pcm_alaw_demuxer, - &ff_pcm_mulaw_demuxer, - &ff_pcm_vidc_demuxer, - &ff_pcm_f64be_demuxer, - &ff_pcm_f64le_demuxer, - &ff_pcm_f32be_demuxer, - &ff_pcm_f32le_demuxer, - &ff_pcm_s32be_demuxer, - &ff_pcm_s32le_demuxer, - &ff_pcm_s24be_demuxer, - &ff_pcm_s24le_demuxer, - &ff_pcm_s16be_demuxer, - &ff_pcm_s16le_demuxer, - &ff_pcm_s8_demuxer, - &ff_pcm_u32be_demuxer, - &ff_pcm_u32le_demuxer, - &ff_pcm_u24be_demuxer, - &ff_pcm_u24le_demuxer, - &ff_pcm_u16be_demuxer, - &ff_pcm_u16le_demuxer, - &ff_pcm_u8_demuxer, - &ff_pjs_demuxer, - &ff_pmp_demuxer, - &ff_pva_demuxer, - &ff_pvf_demuxer, - &ff_qcp_demuxer, - &ff_r3d_demuxer, - &ff_rawvideo_demuxer, - &ff_realtext_demuxer, - &ff_redspark_demuxer, - &ff_rl2_demuxer, - &ff_rm_demuxer, - &ff_roq_demuxer, - &ff_rpl_demuxer, - &ff_rsd_demuxer, - &ff_rso_demuxer, - &ff_s337m_demuxer, - &ff_sami_demuxer, - &ff_sbc_demuxer, - &ff_sbg_demuxer, - &ff_scc_demuxer, - &ff_sdr2_demuxer, - &ff_sds_demuxer, - &ff_sdx_demuxer, - &ff_segafilm_demuxer, - &ff_ser_demuxer, - &ff_shorten_demuxer, - &ff_siff_demuxer, - &ff_sln_demuxer, - &ff_smacker_demuxer, - &ff_smjpeg_demuxer, - &ff_smush_demuxer, - &ff_sol_demuxer, - &ff_sox_demuxer, - &ff_spdif_demuxer, - &ff_srt_demuxer, - &ff_str_demuxer, - &ff_stl_demuxer, - &ff_subviewer1_demuxer, - &ff_subviewer_demuxer, - &ff_sup_demuxer, - &ff_svag_demuxer, - &ff_swf_demuxer, - &ff_tak_demuxer, - &ff_tedcaptions_demuxer, - &ff_thp_demuxer, - &ff_threedostr_demuxer, - &ff_tiertexseq_demuxer, - &ff_tmv_demuxer, - &ff_truehd_demuxer, - &ff_tta_demuxer, - &ff_txd_demuxer, - &ff_tty_demuxer, - &ff_ty_demuxer, - &ff_v210_demuxer, - &ff_v210x_demuxer, - &ff_vag_demuxer, - &ff_vc1_demuxer, - &ff_vc1t_demuxer, - &ff_vivo_demuxer, - &ff_vmd_demuxer, - &ff_vobsub_demuxer, - &ff_voc_demuxer, - &ff_vpk_demuxer, - &ff_vplayer_demuxer, - &ff_vqf_demuxer, - &ff_w64_demuxer, - &ff_wav_demuxer, - &ff_wc3_demuxer, - &ff_webm_dash_manifest_demuxer, - &ff_webvtt_demuxer, - &ff_wsaud_demuxer, - &ff_wsd_demuxer, - &ff_wsvqa_demuxer, - &ff_wtv_demuxer, - &ff_wve_demuxer, - &ff_wv_demuxer, - &ff_xa_demuxer, - &ff_xbin_demuxer, - &ff_xmv_demuxer, - &ff_xvag_demuxer, - &ff_xwma_demuxer, - &ff_yop_demuxer, - &ff_yuv4mpegpipe_demuxer, - &ff_image_bmp_pipe_demuxer, - &ff_image_dds_pipe_demuxer, - &ff_image_dpx_pipe_demuxer, - &ff_image_exr_pipe_demuxer, - &ff_image_j2k_pipe_demuxer, - &ff_image_jpeg_pipe_demuxer, - &ff_image_jpegls_pipe_demuxer, - &ff_image_pam_pipe_demuxer, - &ff_image_pbm_pipe_demuxer, - &ff_image_pcx_pipe_demuxer, - &ff_image_pgmyuv_pipe_demuxer, - &ff_image_pgm_pipe_demuxer, - &ff_image_pictor_pipe_demuxer, - &ff_image_png_pipe_demuxer, - &ff_image_ppm_pipe_demuxer, - &ff_image_psd_pipe_demuxer, - &ff_image_qdraw_pipe_demuxer, - &ff_image_sgi_pipe_demuxer, - &ff_image_svg_pipe_demuxer, - &ff_image_sunrast_pipe_demuxer, - &ff_image_tiff_pipe_demuxer, - &ff_image_webp_pipe_demuxer, - &ff_image_xpm_pipe_demuxer, - &ff_image_xwd_pipe_demuxer, - NULL }; diff --git a/build/ffmpeg/libavformat/muxer_list.c b/build/ffmpeg/libavformat/muxer_list.c deleted file mode 100644 index f36d9499c..000000000 --- a/build/ffmpeg/libavformat/muxer_list.c +++ /dev/null @@ -1,2 +0,0 @@ -static const AVOutputFormat * const muxer_list[] = { - NULL }; diff --git a/build/ffmpeg/libavformat/protocol_list.c b/build/ffmpeg/libavformat/protocol_list.c deleted file mode 100644 index b9b925a4b..000000000 --- a/build/ffmpeg/libavformat/protocol_list.c +++ /dev/null @@ -1,14 +0,0 @@ -static const URLProtocol * const url_protocols[] = { - &ff_async_protocol, - &ff_cache_protocol, - &ff_concat_protocol, - &ff_crypto_protocol, - &ff_data_protocol, - &ff_file_protocol, - &ff_hls_protocol, - &ff_md5_protocol, - &ff_pipe_protocol, - &ff_prompeg_protocol, - &ff_subfile_protocol, - &ff_tee_protocol, - NULL }; diff --git a/build/ffmpeg/libavutil/avconfig.h b/build/ffmpeg/libavutil/avconfig.h deleted file mode 100644 index c289fbb55..000000000 --- a/build/ffmpeg/libavutil/avconfig.h +++ /dev/null @@ -1,6 +0,0 @@ -/* Generated by ffmpeg configure */ -#ifndef AVUTIL_AVCONFIG_H -#define AVUTIL_AVCONFIG_H -#define AV_HAVE_BIGENDIAN 0 -#define AV_HAVE_FAST_UNALIGNED 1 -#endif /* AVUTIL_AVCONFIG_H */ diff --git a/build/ffmpeg/libavutil/ffversion.h b/build/ffmpeg/libavutil/ffversion.h deleted file mode 100644 index 3322c7d0e..000000000 --- a/build/ffmpeg/libavutil/ffversion.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef AVUTIL_FFVERSION_H -#define AVUTIL_FFVERSION_H -#define FFMPEG_VERSION "N-74177-g802e512" -#endif /* AVUTIL_FFVERSION_H */ diff --git a/build/ffms2/ffms2.vcxproj b/build/ffms2/ffms2.vcxproj deleted file mode 100644 index a8dd49750..000000000 --- a/build/ffms2/ffms2.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - {AA137613-96A1-4388-8905-71345B4F8F87} - ffms2 - - - - - lib - - - - - - - - - - - $(FfmsSrcDir)\include; - %(AdditionalIncludeDirectories) - - - WITH_SWRESAMPLE; - FFMS_EXPORTS; - FFMS_STATIC; - _CRT_SECURE_NO_WARNINGS; - _CRT_NONSTDC_NO_DEPRECATE; - _SCL_SECURE_NO_WARNINGS; - __STDC_CONSTANT_MACROS; - %(PreprocessorDefinitions) - - 4250;%(DisableSpecificWarnings) - false - - - $(AegisubLibraryDir);%(AdditionalLibraryDirectories) - - - $(FfmsSrcDir)\include - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {f934ab7b-186b-4e96-b20c-a58c38c1b819} - - - {10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee} - - - diff --git a/build/ffms2/ffms2.vcxproj.filters b/build/ffms2/ffms2.vcxproj.filters deleted file mode 100644 index 6e948bff6..000000000 --- a/build/ffms2/ffms2.vcxproj.filters +++ /dev/null @@ -1,126 +0,0 @@ - - - - - {ed366ac0-ef41-4c15-b40e-4db3c76b17db} - - - {a5f150b5-ae8e-448c-a724-bbdca106ea10} - - - {14a03221-39fc-4803-b677-e90f2290666b} - - - {132a91ed-71ff-4574-aba8-09d496869832} - - - {7e197647-eb8c-44bc-b6d8-6368b242478c} - - - {fab6c2c7-eeae-4009-a932-fc079402db63} - - - {8a87437e-fe04-4b74-a917-f8c108247e3f} - - - - - Audio - - - Indexing - - - Video - - - API - - - Utils - - - Avisynth - - - Avisynth - - - Avisynth - - - Avisynth - - - Video - - - VapourSynth - - - VapourSynth - - - Utils - - - Utils - - - Utils - - - Indexing - - - - - Audio - - - Indexing - - - Video - - - API - - - Utils - - - Utils - - - Avisynth - - - Avisynth - - - Avisynth - - - Avisynth - - - Video - - - VapourSynth - - - VapourSynth - - - Utils - - - Utils - - - Indexing - - - diff --git a/build/fftw/config.h b/build/fftw/config.h deleted file mode 100755 index 9b69b7c1b..000000000 --- a/build/fftw/config.h +++ /dev/null @@ -1,393 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to compile in long-double precision. */ -#undef BENCHFFT_LDOUBLE - -/* Define to compile in quad precision. */ -#undef BENCHFFT_QUAD - -/* Define to compile in single precision. */ -#undef BENCHFFT_SINGLE - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Define to disable Fortran wrappers. */ -#define DISABLE_FORTRAN 1 - -/* Define to dummy `main' function (if any) required to link to the Fortran - libraries. */ -#undef F77_DUMMY_MAIN - -/* Define to a macro mangling the given C identifier (in lower and upper - case), which must not contain underscores, for linking with Fortran. */ -#undef F77_FUNC - -/* As F77_FUNC, but for C identifiers containing underscores. */ -#undef F77_FUNC_ - -/* Define if F77_FUNC and F77_FUNC_ are equivalent. */ -#undef F77_FUNC_EQUIV - -/* Define if F77 and FC dummy `main' functions are identical. */ -#undef FC_DUMMY_MAIN_EQ_F77 - -/* C compiler name and flags */ -#define FFTW_CC "cl" - -/* Define to enable extra FFTW debugging code. */ -#undef FFTW_DEBUG - -/* Define to enable alignment debugging hacks. */ -#undef FFTW_DEBUG_ALIGNMENT - -/* Define to enable debugging malloc. */ -#undef FFTW_DEBUG_MALLOC - -/* Define to enable the use of alloca(). */ -#undef FFTW_ENABLE_ALLOCA - -/* Define to compile in long-double precision. */ -#undef FFTW_LDOUBLE - -/* Define to compile in quad precision. */ -#undef FFTW_QUAD - -/* Define to enable pseudorandom estimate planning for debugging. */ -#undef FFTW_RANDOM_ESTIMATOR - -/* Define to compile in single precision. */ -#undef FFTW_SINGLE - -/* Define to 1 if you have the `abort' function. */ -#define HAVE_ABORT 1 - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to enable Altivec optimizations. */ -#undef HAVE_ALTIVEC - -/* Define to 1 if you have the header file. */ -#undef HAVE_ALTIVEC_H - -/* Define to enable AVX optimizations. */ -#undef HAVE_AVX - -/* Define to 1 if you have the `BSDgettimeofday' function. */ -#undef HAVE_BSDGETTIMEOFDAY - -/* Define to 1 if you have the `clock_gettime' function. */ -#undef HAVE_CLOCK_GETTIME - -/* Define to 1 if you have the `cosl' function. */ -#define HAVE_COSL 1 - -/* Define to 1 if you have the header file. */ -#undef HAVE_C_ASM_H - -/* Define to 1 if you have the declaration of `cosl', and to 0 if you don't. - */ -#define HAVE_DECL_COSL 1 - -/* Define to 1 if you have the declaration of `cosq', and to 0 if you don't. */ -#define HAVE_DECL_COSQ 0 - -/* Define to 1 if you have the declaration of `drand48', and to 0 if you don't. */ -#define HAVE_DECL_DRAND48 0 - -/* Define to 1 if you have the declaration of `memalign', and to 0 if you don't. */ -#define HAVE_DECL_MEMALIGN 0 - -/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if you don't. */ -#define HAVE_DECL_POSIX_MEMALIGN 0 - -/* Define to 1 if you have the declaration of `sinl', and to 0 if you don't. */ -#define HAVE_DECL_SINL 1 - -/* Define to 1 if you have the declaration of `sinq', and to 0 if you don't. - */ -#define HAVE_DECL_SINQ 0 - -/* Define to 1 if you have the declaration of `srand48', and to 0 if you - don't. */ -#define HAVE_DECL_SRAND48 0 - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `drand48' function. */ -#undef HAVE_DRAND48 - -/* Define if you have a machine with fused multiply-add */ -#undef HAVE_FMA - -/* Define to 1 if you have the `gethrtime' function. */ -#undef HAVE_GETHRTIME - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define to 1 if hrtime_t is defined in */ -#undef HAVE_HRTIME_T - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTRINSICS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define if the isnan() function/macro is available. */ -#undef HAVE_ISNAN - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIBINTL_H - -/* Define to 1 if you have the `m' library (-lm). */ -#undef HAVE_LIBM - -/* Define to 1 if you have the `quadmath' library (-lquadmath). */ -#undef HAVE_LIBQUADMATH - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define to 1 if the compiler supports `long double' */ -#define HAVE_LONG_DOUBLE 1 - -/* Define to 1 if you have the `mach_absolute_time' function. */ -#undef HAVE_MACH_ABSOLUTE_TIME - -/* Define to 1 if you have the header file. */ -#undef HAVE_MACH_MACH_TIME_H - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define to 1 if you have the `memalign' function. */ -#undef HAVE_MEMALIGN - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `memset' function. */ -#define HAVE_MEMSET 1 - -/* Define to enable MIPS paired-single optimizations. */ -#undef HAVE_MIPS_PS - -/* Define to enable use of MIPS ZBus cycle-counter. */ -#undef HAVE_MIPS_ZBUS_TIMER - -/* Define if you have the MPI library. */ -#undef HAVE_MPI - -/* Define if OpenMP is enabled */ -#define HAVE_OPENMP 1 - -/* Define to 1 if you have the `posix_memalign' function. */ -#undef HAVE_POSIX_MEMALIGN - -/* Define if you have POSIX threads libraries and header files. */ -#undef HAVE_PTHREAD - -/* Define to 1 if you have the `read_real_time' function. */ -#undef HAVE_READ_REAL_TIME - -/* Define to 1 if you have the `sinl' function. */ -#define HAVE_SINL 1 - -/* Define to 1 if you have the `snprintf' function. */ -#undef HAVE_SNPRINTF - -/* Define to 1 if you have the `sqrt' function. */ -#define HAVE_SQRT 1 - -/* Define to enable SSE/SSE2 optimizations. */ -#define HAVE_SSE2 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDDEF_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `sysctl' function. */ -#undef HAVE_SYSCTL - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SYSCTL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the `tanl' function. */ -#define HAVE_TANL 1 - -/* Define if we have a threads library. */ -#undef HAVE_THREADS - -/* Define to 1 if you have the `time_base_to_time' function. */ -#undef HAVE_TIME_BASE_TO_TIME - -/* Define to 1 if the system has the type `uintptr_t'. */ -#define HAVE_UINTPTR_T 1 - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the `vprintf' function. */ -#define HAVE_VPRINTF 1 - -/* Define to 1 if you have the `_mm_free' function. */ -#undef HAVE__MM_FREE - -/* Define to 1 if you have the `_mm_malloc' function. */ -#undef HAVE__MM_MALLOC - -/* Define if you have the UNICOS _rtc() intrinsic. */ -#undef HAVE__RTC - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - -/* Name of package */ -#define PACKAGE "fftw" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "fftw@fftw.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "fftw" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "fftw-3.3" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "fftw" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "http://www.fftw.org" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "3.3" - -/* Define to necessary symbol if this constant uses a non-standard name on - your system. */ -#undef PTHREAD_CREATE_JOINABLE - -/* The size of `double', as computed by sizeof. */ -#define SIZEOF_DOUBLE 8 - -/* The size of `fftw_r2r_kind', as computed by sizeof. */ -#undef SIZEOF_FFTW_R2R_KIND - -/* The size of `float', as computed by sizeof. */ -#define SIZEOF_FLOAT 4 - -/* The size of `int', as computed by sizeof. */ -#define SIZEOF_INT 4 - -/* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 - -/* The size of `long long', as computed by sizeof. */ -#define SIZEOF_LONG_LONG 8 - -/* The size of `MPI_Fint', as computed by sizeof. */ -#undef SIZEOF_MPI_FINT - -/* The size of `ptrdiff_t', as computed by sizeof. */ -#define SIZEOF_PTRDIFF_T 4 - -/* The size of `size_t', as computed by sizeof. */ -#define SIZEOF_SIZE_T 4 - -/* The size of `unsigned int', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_INT 4 - -/* The size of `unsigned long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG 4 - -/* The size of `unsigned long long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG_LONG 8 - -/* The size of `void *', as computed by sizeof. */ -#define SIZEOF_VOID_P 4 - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define if we have and are using POSIX threads. */ -#undef USING_POSIX_THREADS - -/* Version number of package */ -#define VERSION "3.3" - -/* Use common Windows Fortran mangling styles for the Fortran interfaces. */ -#undef WINDOWS_F77_MANGLING - -/* Include g77-compatible wrappers in addition to any other Fortran wrappers. - */ -#undef WITH_G77_WRAPPERS - -/* Use our own aligned malloc routine; mainly helpful for Windows systems - lacking aligned allocation system-library routines. */ -#define WITH_OUR_MALLOC 1 - -/* Use low-precision timers, making planner very slow */ -#undef WITH_SLOW_TIMER - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#define inline __inline -#endif - -/* Define to `unsigned int' if does not define. */ -#undef size_t diff --git a/build/fftw/fftw.vcxproj b/build/fftw/fftw.vcxproj deleted file mode 100644 index d33267b42..000000000 --- a/build/fftw/fftw.vcxproj +++ /dev/null @@ -1,677 +0,0 @@ - - - - {EA3DCC95-2423-4EA0-A508-7A427B4C0594} - fftw - - - - - lib - - - - - - - - - - - $(FftwSrcDir)\; - $(FftwSrcDir)\api; - $(FftwSrcDir)\kernel; - $(FftwSrcDir)\dft; - $(FftwSrcDir)\dft\simd; - $(FftwSrcDir)\dft\scalar; - $(FftwSrcDir)\rdft; - $(FftwSrcDir)\rdft\simd; - $(FftwSrcDir)\rdft\scalar; - $(FftwSrcDir)\reodft; - $(FftwSrcDir)\simd-support; - $(FftwSrcDir)\threads; - $(MSBuildThisFileDirectory); - %(AdditionalIncludeDirectories) - - StreamingSIMDExtensions2 - true - Default - $(FftwSrcDir) - - - $(FftwSrcDir)\api - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/fftw/fftw.vcxproj.filters b/build/fftw/fftw.vcxproj.filters deleted file mode 100644 index 94f248c47..000000000 --- a/build/fftw/fftw.vcxproj.filters +++ /dev/null @@ -1,1937 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {3dd1ffe6-144b-43e1-8a12-fb7f8aafb1e2} - - - {da4b7e4d-80be-454f-bfc7-1b2c1166c53e} - - - {f0807dd9-20c0-4fbd-8628-cee199b26f80} - - - {b2393625-a2c0-4936-a3fe-af75442e1b88} - - - {07faef18-6f66-4a44-af6c-7147c0f36a05} - - - {8ed8b906-1abd-4a9c-96a1-ade012dcffa9} - - - {d74e2c56-219c-4720-a426-3af6711fff69} - - - {6259dc8b-53b4-4a22-b39a-bf803ceb5678} - - - {e2e67124-a7eb-4f3e-af46-2b104ff6b27c} - - - {e1e8f092-fc93-41bc-b81d-6cb49c8e3d70} - - - {b14b7826-b537-4773-ab25-01b0b6d3b3f2} - - - {c39e48d8-19e1-4029-b066-9ea7de26dd9e} - - - {d36658fc-ec66-4810-8e07-4b62cc98fd67} - - - {1fb426ff-71da-4196-9b6a-4cd5b0996ac0} - - - {ea0ee65f-3857-436a-877e-65585dc398b7} - - - {49fa6be1-8f5c-4f77-a35b-337d7affb158} - - - {a004fba2-72cd-4762-b21e-7982b7801d79} - - - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - diff --git a/build/freetype2/freetype.vcxproj b/build/freetype2/freetype.vcxproj deleted file mode 100644 index fdb8fbdf4..000000000 --- a/build/freetype2/freetype.vcxproj +++ /dev/null @@ -1,86 +0,0 @@ - - - - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} - freetype - - - - - lib - - - - - - - - - - $(Freetype2SrcDir)\include;%(AdditionalIncludeDirectories) - _LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions) - true - true - 4001 - - - 0x0409 - - - $(Freetype2SrcDir)\include - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/freetype2/freetype.vcxproj.filters b/build/freetype2/freetype.vcxproj.filters deleted file mode 100644 index 9787c9d06..000000000 --- a/build/freetype2/freetype.vcxproj.filters +++ /dev/null @@ -1,152 +0,0 @@ - - - - - {b4c15893-ec11-491d-9507-0ac184f9cc78} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {4d3e4eff-3fbc-4b20-b413-2743b23b7109} - - - {e6cf6a0f-0404-4024-8bf8-ff5b29f35657} - h;hpp;hxx;hm;inl - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - diff --git a/build/freetype2/ftsystem.cpp b/build/freetype2/ftsystem.cpp deleted file mode 100644 index c380bb058..000000000 --- a/build/freetype2/ftsystem.cpp +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -// The non-unix version of ftsystem.c uses stdio functions, but freetype uses -// streams as if they had mmap's performance characteristics (as it uses mmap -// on unix), which results in mind-blowingly poor performance (35%+ of the -// fontconfig caching runtime is spent on fseek). - -#include -#include FT_INTERNAL_DEBUG_H -#include FT_INTERNAL_STREAM_H -#include FT_SYSTEM_H -#include FT_ERRORS_H - -#include -#include - -extern "C" FT_Error FT_Stream_Open(FT_Stream stream, const char *filepathname) { - if (!stream) - return FT_THROW(Invalid_Stream_Handle); - - stream->descriptor.pointer = nullptr; - stream->pathname.pointer = const_cast(filepathname); - stream->base = nullptr; - stream->pos = 0; - stream->read = nullptr; - stream->close = nullptr; - - std::wstring_convert, wchar_t> converter; - std::ifstream file(converter.from_bytes(filepathname), std::ios::binary); - if (!file.good()) - return FT_THROW(Cannot_Open_Resource); - - file.seekg(0, std::ios::end); - stream->size = (unsigned long)file.tellg(); - if (!stream->size) - return FT_THROW(Cannot_Open_Stream); - file.seekg(0, std::ios::beg); - - stream->base = (unsigned char *)malloc(stream->size); - file.read((char *)stream->base, stream->size); - - stream->close = [](FT_Stream stream) { - free(stream->base); - stream->size = 0; - stream->base = nullptr; - }; - - return FT_Err_Ok; -} - -extern "C" FT_Memory FT_New_Memory() { - return new FT_MemoryRec_{ - nullptr, - [](FT_Memory, long size) { return malloc(size); }, - [](FT_Memory, void *ptr) { free(ptr); }, - [](FT_Memory, long, long size, void *ptr) { return realloc(ptr, size); }}; -} - -extern "C" void FT_Done_Memory(FT_Memory memory) { - delete memory; -} diff --git a/build/fribidi/fribidi-config.h b/build/fribidi/fribidi-config.h deleted file mode 100644 index 43af643a9..000000000 --- a/build/fribidi/fribidi-config.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef FRIBIDI_CONFIG_H -#define FRIBIDI_CONFIG_H - -#define FRIBIDI "fribidi" -#define FRIBIDI_NAME "GNU FriBidi" -#define FRIBIDI_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?product=fribidi" - -#define FRIBIDI_VERSION "0.19.6" -#define FRIBIDI_MAJOR_VERSION 0 -#define FRIBIDI_MINOR_VERSION 19 -#define FRIBIDI_MICRO_VERSION 6 -#define FRIBIDI_INTERFACE_VERSION 3 -#define FRIBIDI_INTERFACE_VERSION_STRING "3" - -#define FRIBIDI_CHARSETS 0 -#define FRIBIDI_USE_GLIB 0 -#define FRIBIDI_SIZEOF_INT 4 -#define HAVE_STDLIB_H 1 -#define USE_SIMPLE_MALLOC 1 - -#define HAVE_STRINGIZE 1 -#endif diff --git a/build/fribidi/fribidi.vcxproj b/build/fribidi/fribidi.vcxproj deleted file mode 100644 index 860a6767d..000000000 --- a/build/fribidi/fribidi.vcxproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - {FB8E8D19-A4D6-4181-943C-282075F49B41} - fribidi - lib - - - - - - - - - - - - $(FribidiSrcDir)\lib; - $(MSBuildThisFileDirectory); - %(AdditionalIncludeDirectories) - - - FRIBIDI_ENTRY=; - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - $(FribidiSrcDir)\lib - - - $(MSBuildThisFileDirectory) - - - diff --git a/build/fribidi/fribidi.vcxproj.filters b/build/fribidi/fribidi.vcxproj.filters deleted file mode 100644 index c9768c8a5..000000000 --- a/build/fribidi/fribidi.vcxproj.filters +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/build/googletest/googletest.vcxproj b/build/googletest/googletest.vcxproj deleted file mode 100644 index ff7e14560..000000000 --- a/build/googletest/googletest.vcxproj +++ /dev/null @@ -1,62 +0,0 @@ - - - - {FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2} - googletest - - - - - lib - - - - - - - - - - GTEST_HAS_TR1_TUPLE=0; - %(PreprocessorDefinitions) - - - $(GtestSrcDir); - %(AdditionalIncludeDirectories) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/googletest/googletest.vcxproj.filters b/build/googletest/googletest.vcxproj.filters deleted file mode 100644 index 883838a26..000000000 --- a/build/googletest/googletest.vcxproj.filters +++ /dev/null @@ -1,97 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {ad1eaa10-1448-406d-924c-ec1a608cec0b} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - - - Header Files - - - Header Files\internal - - - Header Files\internal - - - Header Files\internal - - - - - Source Files - - - diff --git a/build/hunspell/hunspell.vcxproj b/build/hunspell/hunspell.vcxproj deleted file mode 100644 index 0de22503f..000000000 --- a/build/hunspell/hunspell.vcxproj +++ /dev/null @@ -1,56 +0,0 @@ - - - - {CC791693-6B28-40AC-879D-64A6C16468E3} - hunspell - - - - - lib - ..\..\vendor\hunspell\src\ - - - - - - - - - HUNSPELL_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(SrcDir)win_api;$(SrcDir)hunspell;%(AdditionalIncludeDirectories) - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/hunspell/hunspell.vcxproj.filters b/build/hunspell/hunspell.vcxproj.filters deleted file mode 100644 index fdb464513..000000000 --- a/build/hunspell/hunspell.vcxproj.filters +++ /dev/null @@ -1,92 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/build/icu/icu.vcxproj b/build/icu/icu.vcxproj deleted file mode 100644 index 602b7e3e9..000000000 --- a/build/icu/icu.vcxproj +++ /dev/null @@ -1,703 +0,0 @@ - - - - {F934AB7B-186B-4E96-B20C-A58C38C1B818} - icu - lib - true - - - - - - - - - - - - $(IcuSrcDir)\common; - $(IcuSrcDir)\common\unicode; - $(IcuSrcDir)\i18n; - $(IcuSrcDir)\i18n\unicode; - %(AdditionalIncludeDirectories) - - - U_ENABLE_DYLOAD=0; - U_CHECK_DYLOAD=0; - UCONFIG_NO_FILE_IO=1; - UCONFIG_NO_LEGACY_CONVERSION=1; - U_CHARSET_IS_UTF8=1; - UCONFIG_NO_IDNA=1; - UCONFIG_NO_FORMATTING=1; - UCONFIG_NO_TRANSLITERATION=1; - - U_ATTRIBUTE_DEPRECATED=; - _CRT_SECURE_NO_DEPRECATE; - U_COMMON_IMPLEMENTATION; - U_I18N_IMPLEMENTATION; - %(PreprocessorDefinitions) - - - - - - - $(AegisubBinaryDir)luajit-minilua$(AegisubPlatformSuffix) - $(MSBuildThisFileDirectory)pack-dt.lua - icudt53l - MultiByte - - - - - - - - - - - - - - - - $(IcuSrcDir)\i18n - - - $(IcuSrcDir)\common - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - - false - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - - - - - false - - - false - - - - - - - - - - - - - - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {fcaed410-90ef-4ef9-916c-4b86dc13a3cf} - - - diff --git a/build/icu/icu.vcxproj.filters b/build/icu/icu.vcxproj.filters deleted file mode 100644 index d638dafec..000000000 --- a/build/icu/icu.vcxproj.filters +++ /dev/null @@ -1,1744 +0,0 @@ - - - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - common - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - i18n - - - - - {12edb004-4c5b-4b0d-ae85-3dd475dbb4c3} - - - {7d3ae04e-88bb-462a-8923-eb7438de142e} - - - diff --git a/build/icu/pack-dt.lua b/build/icu/pack-dt.lua deleted file mode 100644 index 0e95ed1e7..000000000 --- a/build/icu/pack-dt.lua +++ /dev/null @@ -1,47 +0,0 @@ --- Copyright (c) 2014, Thomas Goyne --- --- Permission to use, copy, modify, and distribute this software for any --- purpose with or without fee is hereby granted, provided that the above --- copyright notice and this permission notice appear in all copies. --- --- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR --- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES --- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN --- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF --- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --- --- Aegisub Project http://www.aegisub.org/ - -local ICU_VERSION = 'icudt53' - -local function try_open(filename, mode) - local file, err = io.open(filename, mode) - if not file then - io.stdout:write(string.format('Failed to open "%s": %s\n', filename, err)) - os.exit(1) - end - return file -end - -local icu_root, out_path = ... - -local infile = try_open(string.format('%s/data/in/%sl.dat', icu_root, ICU_VERSION), 'rb') -local outfile = try_open(out_path, 'w') - -outfile:write("const unsigned char " .. ICU_VERSION .. "_dat[] = {") - -local len = 0 -while true do - local bytes = infile:read(65536) - if not bytes then break end - - for i = 1, #bytes do - if len > 0 then outfile:write(',') end - outfile:write(string.format('%d', bytes:byte(i))) - len = len + 1 - end -end -outfile:write('};\n') - diff --git a/build/install.targets b/build/install.targets deleted file mode 100644 index 818536fbb..000000000 --- a/build/install.targets +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/build/libaegisub/libaegisub.vcxproj b/build/libaegisub/libaegisub.vcxproj deleted file mode 100644 index a431eb5eb..000000000 --- a/build/libaegisub/libaegisub.vcxproj +++ /dev/null @@ -1,188 +0,0 @@ - - - - {BB3FED86-DB7A-4DC7-964A-260FB86CDE61} - libaegisub - - - - lib - ..\..\libaegisub\ - - - - - - - - - $(WindowsSDK_IncludePath); - $(SrcDir); - $(SrcDir)include; - %(AdditionalIncludeDirectories) - - - NOMINMAX; - _WIN32_WINNT=0x0602; - _CRT_NONSTDC_NO_DEPRECATE; - WITH_UCHARDET; - %(PreprocessorDefinitions) - - Use - lagi_pre.h - lagi_pre.h - $(SrcDir) - - - - - - - {a649d828-a399-4d81-adef-94cfdba7847f} - - - {f934ab7b-186b-4e96-b20c-a58c38c1b818} - - - {965054d2-44f2-4eb2-9879-051cc3d7ef08} - - - {A7A30702-8162-4E1A-A010-EF51B590C121} - - - {5391a8b1-9c70-4dc4-92ad-d3e34c6b803f} - - - {7b56955d-5162-4698-aa5b-47484edc8783} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create - lagi_pre.h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - - - - - - - - - - - - - - - - - diff --git a/build/libaegisub/libaegisub.vcxproj.filters b/build/libaegisub/libaegisub.vcxproj.filters deleted file mode 100644 index 157c48198..000000000 --- a/build/libaegisub/libaegisub.vcxproj.filters +++ /dev/null @@ -1,388 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {4084442f-51e9-4c31-8d5a-c825e076c012} - - - {1d2e187a-1681-4c30-8912-a4b5a5d0ab9d} - - - {c97bd8a3-ebb7-4c43-9ca0-4ab8479d9388} - - - {ce495b25-1630-42e1-8ab0-053c313448f0} - - - {2cf3ad94-e8a9-4a89-b47e-29523d90fd08} - - - {fce4f3aa-dc34-44fe-9a6a-99b0914e3436} - - - {5af331b5-ea1f-493f-abf9-f5912e2350df} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - cajun - - - cajun - - - cajun - - - cajun - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - ASS - - - ASS - - - ASS - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - ASS - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Lua - - - Lua - - - Lua\Modules - - - Lua - - - Lua - - - Header Files - - - Audio - - - - - Source Files - - - Source Files\Windows - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Windows - - - Source Files\Windows - - - Source Files\Common - - - Source Files\Common - - - Source Files\Windows - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Windows - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - cajun - - - cajun - - - cajun - - - ASS - - - ASS - - - ASS - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Windows - - - Source Files\Windows - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Source Files\Common - - - Lua - - - Lua - - - Lua\Modules - - - Lua\Modules - - - Lua\Modules - - - Lua - - - Lua\Modules - - - Source Files\Common - - - Audio - - - Audio - - - Audio - - - Audio - - - Audio - - - Audio - - - Audio - - - - - Header Files - - - diff --git a/build/libass/config.h b/build/libass/config.h deleted file mode 100644 index d2fc12117..000000000 --- a/build/libass/config.h +++ /dev/null @@ -1,6 +0,0 @@ -#define _CRT_SECURE_NO_WARNINGS -#define _CRT_NONSTDC_NO_DEPRECATE - -#define CONFIG_ASM 1 -#define CONFIG_RASTERIZER 1 -#define CONFIG_DIRECTWRITE 1 diff --git a/build/libass/dirent.h b/build/libass/dirent.h deleted file mode 100644 index fcbd0289b..000000000 --- a/build/libass/dirent.h +++ /dev/null @@ -1,6 +0,0 @@ -// libass uses dirent in a function we don't use, so just provide a dummy version -typedef struct DIR { int dummy; } DIR; -typedef struct dirent { char *d_name; } dirent; -static inline DIR *opendir(const char *x) { return 0; } -static inline struct dirent *readdir(DIR *x) { return 0; } -static inline void closedir(DIR *x) { } diff --git a/build/libass/libass.vcxproj b/build/libass/libass.vcxproj deleted file mode 100644 index cf21877c8..000000000 --- a/build/libass/libass.vcxproj +++ /dev/null @@ -1,120 +0,0 @@ - - - - {8804F253-DA67-4CC4-926B-0CD2AEE5778D} - libass - - - - - lib - - - - - - - - - - - - - - $(LibassSrcDir)\libass; - $(MSBuildThisFileDirectory); - $(FribidiSrcDir)\fribidi; - %(AdditionalIncludeDirectories) - - - inline=__inline; - FRIBIDI_ENTRY=; - _USE_MATH_DEFINES=; - %(PreprocessorDefinitions) - - - - $(LibassSrcDir)\libass - ass\ - - - %(Config) -DARCH_X86_64=0 -DPREFIX -DHAVE_ALIGNED_STACK=0 -DHAVE_CPUNOP=1 - %(Config) -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=1 -DHAVE_CPUNOP=1 - - - - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {78b079bd-9fc7-4b9e-b4a6-96da0f00248b} - - - {fb8e8d19-a4d6-4181-943c-282075f49b41} - - - diff --git a/build/libass/libass.vcxproj.filters b/build/libass/libass.vcxproj.filters deleted file mode 100644 index 9623c769c..000000000 --- a/build/libass/libass.vcxproj.filters +++ /dev/null @@ -1,176 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {56793734-89BD-4b04-88EB-625FBE52EBFB} - asm - - - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - Assembly Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/build/libass/strings.h b/build/libass/strings.h deleted file mode 100644 index 8279fd78d..000000000 --- a/build/libass/strings.h +++ /dev/null @@ -1,3 +0,0 @@ -#define strncasecmp _strnicmp -#define strcasecmp _stricmp - diff --git a/build/libass/unistd.h b/build/libass/unistd.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/build/libiconv/libiconv.vcxproj b/build/libiconv/libiconv.vcxproj deleted file mode 100644 index 712551531..000000000 --- a/build/libiconv/libiconv.vcxproj +++ /dev/null @@ -1,44 +0,0 @@ - - - - {965054D2-44F2-4EB2-9879-051CC3D7EF08} - libiconv - - - - - lib - ..\..\vendor\iconv\ - - - - - - - - - $(SrcDir)include;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - CompileAsC - - - $(SrcDir)include - - - - - - - - - - - - - - - - - - - diff --git a/build/libiconv/libiconv.vcxproj.filters b/build/libiconv/libiconv.vcxproj.filters deleted file mode 100644 index 4e4a8972b..000000000 --- a/build/libiconv/libiconv.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - diff --git a/build/libpng/libpng.vcxproj b/build/libpng/libpng.vcxproj deleted file mode 100644 index 9d57ff478..000000000 --- a/build/libpng/libpng.vcxproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - {5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96} - libpng - - - - - lib - ..\..\vendor\wxWidgets\src\png\ - - - - - - - - - {10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee} - - - - - - $(SrcDir) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/libpng/libpng.vcxproj.filters b/build/libpng/libpng.vcxproj.filters deleted file mode 100644 index 355924ee7..000000000 --- a/build/libpng/libpng.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - \ No newline at end of file diff --git a/build/libresrc/libresrc.vcxproj b/build/libresrc/libresrc.vcxproj deleted file mode 100644 index 5a5fafee1..000000000 --- a/build/libresrc/libresrc.vcxproj +++ /dev/null @@ -1,75 +0,0 @@ - - - - {BD00D65F-24DA-4784-8860-3B972EA125FC} - libresrc - - - - - lib - $(MSBuildThisFileDirectory)..\..\src\libresrc\ - - - - - - - - - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - - - - - - - - - - - - {0518d6c0-7bf6-4fd1-91fb-191bd10db2ac} - - - {fcaed410-90ef-4ef9-916c-4b86dc13a3cf} - - - {5cabcbef-e79a-4d27-94a5-cf4eaaf1dd96} - - - - - - - default_config - $(SrcDir) - - - bitmap - $(SrcDir) - - - - - - - - - - - - - - - - - - - diff --git a/build/libresrc/libresrc.vcxproj.filters b/build/libresrc/libresrc.vcxproj.filters deleted file mode 100644 index 9cedcca48..000000000 --- a/build/libresrc/libresrc.vcxproj.filters +++ /dev/null @@ -1,50 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - Resource Files - - - diff --git a/build/luabins/luabins.vcxproj b/build/luabins/luabins.vcxproj deleted file mode 100644 index ef162ac35..000000000 --- a/build/luabins/luabins.vcxproj +++ /dev/null @@ -1,51 +0,0 @@ - - - - {A7A30702-8162-4E1A-A010-EF51B590C121} - luabins - - - - - lib - ..\..\vendor\luabins\src\ - - - - - - - - - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(SrcDir)..\..\lua51\src;%(AdditionalIncludeDirectories) - - - - - - - {5391a8b1-9c70-4dc4-92ad-d3e34c6b803f} - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/luabins/luabins.vcxproj.filters b/build/luabins/luabins.vcxproj.filters deleted file mode 100644 index 67677205b..000000000 --- a/build/luabins/luabins.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {0A33FF05-970D-49a7-B722-73E8EA350084} - - - {2C50401A-5AC6-4630-B633-DFCC190306A8} - - - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - diff --git a/build/luajit-buildvm/luajit-buildvm.vcxproj b/build/luajit-buildvm/luajit-buildvm.vcxproj deleted file mode 100644 index 3132e2ab4..000000000 --- a/build/luajit-buildvm/luajit-buildvm.vcxproj +++ /dev/null @@ -1,79 +0,0 @@ - - - - {7CA6A4EB-A11B-4975-8F3A-F633111C6213} - luajitbuildvm - - - - - exe - ..\..\vendor\luajit\ - - - - - - - - $(ProjectDir) - luajit-buildvm$(AegisubPlatformSuffix) - - - - - _CRT_SECURE_NO_WARNINGS; - LUAJIT_ENABLE_LUA52COMPAT; - %(PreprocessorDefinitions) - - - $(AegisubObjectDir); - $(SrcDir)dynasm; - $(SrcDir)src; - $(SrcDir)src/host; - %(AdditionalIncludeDirectories) - - - - $(AegisubLibraryDir);%(AdditionalLibraryDirectories) - Console - - - - - - $(AegisubBinaryDir)luajit-minilua$(AegisubPlatformSuffix) - -D P64 - - - - - - - - - - - - - - - - - - - - - {fcaed410-90ef-4ef9-916c-4b86dc13a3cf} - - - diff --git a/build/luajit-buildvm/luajit-buildvm.vcxproj.filters b/build/luajit-buildvm/luajit-buildvm.vcxproj.filters deleted file mode 100644 index e9cb57b99..000000000 --- a/build/luajit-buildvm/luajit-buildvm.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/build/luajit-minilua/luajit-minilua.vcxproj b/build/luajit-minilua/luajit-minilua.vcxproj deleted file mode 100644 index f27dbca75..000000000 --- a/build/luajit-minilua/luajit-minilua.vcxproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - {FCAED410-90EF-4EF9-916C-4B86DC13A3CF} - luajitminilua - - - - - exe - - - - - - - - $(ProjectDir) - luajit-minilua$(AegisubPlatformSuffix) - - - - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(AegisubLibraryDir);%(AdditionalLibraryDirectories) - Console - - - - - - - - diff --git a/build/luajit-minilua/luajit-minilua.vcxproj.filters b/build/luajit-minilua/luajit-minilua.vcxproj.filters deleted file mode 100644 index 5243cbd1d..000000000 --- a/build/luajit-minilua/luajit-minilua.vcxproj.filters +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/build/luajit/luajit.vcxproj b/build/luajit/luajit.vcxproj deleted file mode 100644 index 58a34500d..000000000 --- a/build/luajit/luajit.vcxproj +++ /dev/null @@ -1,234 +0,0 @@ - - - - {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} - luajit - - - - - lib - ..\..\vendor\luajit\ - - - - - - - - - - _CRT_SECURE_NO_WARNINGS; - LUAJIT_ENABLE_LUA52COMPAT; - %(PreprocessorDefinitions) - - $(AegisubObjectDir);%(AdditionalIncludeDirectories) - - - $(SrcDir)include - - - - - - $(AegisubBinaryDir)luajit-buildvm$(AegisubPlatformSuffix) - - BuildVM; - ComputeLibDefNames; - BuildLibDefs; - $(BuildCompileTargets) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {7ca6a4eb-a11b-4975-8f3a-f633111c6213} - - - diff --git a/build/luajit/luajit.vcxproj.filters b/build/luajit/luajit.vcxproj.filters deleted file mode 100644 index 59e9479a1..000000000 --- a/build/luajit/luajit.vcxproj.filters +++ /dev/null @@ -1,447 +0,0 @@ - - - - - {dfbe0704-0805-42a9-b221-0eb02d38e473} - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - - - {46f51bca-6fac-4e83-b18b-5e8145f11f3c} - - - {947aec3e-b05b-404f-bd0d-27dfec92f4d0} - - - {5877d6d7-abc5-4e4d-9c16-64ae7538072e} - - - - - - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - Core - - - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - Headers - - - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - Internal headers - - - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - Standard library - - - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - JIT - - - diff --git a/build/paths.props b/build/paths.props deleted file mode 100644 index cc6e5d677..000000000 --- a/build/paths.props +++ /dev/null @@ -1,25 +0,0 @@ - - - - <_PropertySheetDisplayName>Path definitions - - - - - $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\')) - - $(AegisubSourceBase)vendor\ - - $(AegisubSourceBase) - - $(AegisubOutputBase)bin\ - - $(AegisubOutputBase)lib\$(Platform)\$(Configuration)\ - - $(AegisubOutputBase)obj\$(ProjectName)-$(Platform)-$(Configuration)\ - - $(PlatformArchitecture)d - $(PlatformArchitecture) - (unk) - - diff --git a/build/respack.targets b/build/respack.targets deleted file mode 100644 index 5d8cf0194..000000000 --- a/build/respack.targets +++ /dev/null @@ -1,27 +0,0 @@ - - - - $(AegisubBinaryDir)luajit-minilua$(AegisubPlatformSuffix) - $(AegisubSourceBase)tools\respack.lua - - - - - - - - - - diff --git a/build/scintilla/catalogue.cpp b/build/scintilla/catalogue.cpp deleted file mode 100644 index a424dcd50..000000000 --- a/build/scintilla/catalogue.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// A dummy replacement for Catalogue.cxx that doesn't support any lexers - -#include - -#include "ILexer.h" -#include "LexerModule.h" -#include "Catalogue.h" - -const LexerModule *Catalogue::Find(int language) { return nullptr; } -const LexerModule *Catalogue::Find(const char *languageName) { return nullptr; } -void Catalogue::AddLexerModule(LexerModule *plm) { } -int Scintilla_LinkLexers() { return 1; } - diff --git a/build/scintilla/scintilla.vcxproj b/build/scintilla/scintilla.vcxproj deleted file mode 100644 index 70c1b6e27..000000000 --- a/build/scintilla/scintilla.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - {D6EA54FD-F15C-42F6-929B-A83F299A4582} - scintilla - - - - - lib - ..\..\vendor\wxWidgets\src\stc\scintilla - - - - - - - - - $(SrcDir)\include\;$(SrcDir)\lexlib\;$(SrcDir)\src\;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;__WX__;PreprocessorDefinitions) - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/scintilla/scintilla.vcxproj.filters b/build/scintilla/scintilla.vcxproj.filters deleted file mode 100644 index 355924ee7..000000000 --- a/build/scintilla/scintilla.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - \ No newline at end of file diff --git a/build/standard-outdirs.props b/build/standard-outdirs.props deleted file mode 100644 index ba4f2b275..000000000 --- a/build/standard-outdirs.props +++ /dev/null @@ -1,68 +0,0 @@ - - - - <_PropertySheetDisplayName>Output directories - - - - $(AegisubBinaryDir) - $(AegisubBinaryDir) - $(AegisubLibraryDir) - $(AegisubObjectDir) - $(ProjectName)_$(AegisubPlatformSuffix) - $(ProjectName)$(AegisubPlatformSuffix) - $(ProjectName) - - - - - - - $(AegisubBinaryDir)$(TargetName)$(TargetExt) - $(AegisubBinaryDir)$(TargetName).pdb - $(AegisubLibraryDir)$(ProjectName).lib - - - $(AegisubLibraryDir)$(ProjectName).lib - - - - - - - ComputeClRelativeObjectFileName; - $(ComputeCompileInputsTargets) - - - - - - - - - - <_RelativeClCompile Condition="'%(_RelativeClCompile.OutputDir)' != ''"> - $(IntDir)%(_RelativeClCompile.OutputDir) - - - - - - <_RelativeClCompile Remove="@(_RelativeClCompile)" /> - - - diff --git a/build/standard-settings.props b/build/standard-settings.props deleted file mode 100644 index bdd8e7ac6..000000000 --- a/build/standard-settings.props +++ /dev/null @@ -1,71 +0,0 @@ - - - - <_PropertySheetDisplayName>Compiler settings - - - - true - - - false - - - - - true - false - Level3 - - BOOST_ALL_NO_LIB; - BOOST_HAS_ICU; - BOOST_SYSTEM_NO_DEPRECATED; - BOOST_MULTI_INDEX_DISABLE_SERIALIZATION; - U_STATIC_IMPLEMENTATION; - WIN32; - _WINDOWS; - %(PreprocessorDefinitions) - - $(AegisubSourceBase)\include; - $(BoostPath); - $(GtestSrcDir)\include; - $(IcuSrcDir)\include; - %(AdditionalIncludeDirectories) - - 4345 - - - $(AegisubSourceBase)include;%(AdditionalIncludeDirectories) - - - Windows - true - true - true - - - - - - MultiThreadedDebugDLL - Disabled - _DEBUG;%(PreprocessorDefinitions) - - - - - - MultiThreadedDLL - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - /Gw %(AdditionalOptions) - - - true - true - - - - diff --git a/build/tasks.props b/build/tasks.props deleted file mode 100644 index 39c594f90..000000000 --- a/build/tasks.props +++ /dev/null @@ -1,35 +0,0 @@ - - - - <_PropertySheetDisplayName>Custom Tasks - - - - - - - - - - - - - - - - - diff --git a/build/tests/tests.vcxproj b/build/tests/tests.vcxproj deleted file mode 100644 index 1dbbfb1af..000000000 --- a/build/tests/tests.vcxproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - {49766286-2B5D-4177-A860-BD7CE1846EEF} - tests - - - - - exe - ..\..\tests\ - - - - - - - - - - GTEST_HAS_TR1_TUPLE=0; - %(PreprocessorDefinitions) - - - $(AegisubSourceBase)libaegisub\include; - $(SrcDir)support; - %(AdditionalIncludeDirectories) - - $(SrcDir) - - - $(AegisubLibraryDir);%(AdditionalLibraryDirectories) - Console - - - $(SrcDir)setup.bat "$(AegisubBinaryDir)" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - - - - {a649d828-a399-4d81-adef-94cfdba7847f} - - - {fbe51b37-8b12-41e8-b5e0-f00a06b4bcd2} - - - {f934ab7b-186b-4e96-b20c-a58c38c1b818} - - - {bb3fed86-db7a-4dc7-964a-260fb86cde61} - - - {965054d2-44f2-4eb2-9879-051cc3d7ef08} - - - {7b56955d-5162-4698-aa5b-47484edc8783} - - - diff --git a/build/tests/tests.vcxproj.filters b/build/tests/tests.vcxproj.filters deleted file mode 100644 index dceeba91b..000000000 --- a/build/tests/tests.vcxproj.filters +++ /dev/null @@ -1,106 +0,0 @@ - - - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - Support - - - Support - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - Tests - - - - - Support - - - Support - - - - - Support - - - Support - - - diff --git a/build/universalchardet/universalchardet.vcxproj b/build/universalchardet/universalchardet.vcxproj deleted file mode 100644 index 4479436d2..000000000 --- a/build/universalchardet/universalchardet.vcxproj +++ /dev/null @@ -1,117 +0,0 @@ - - - - {7B56955D-5162-4698-AA5B-47484EDC8783} - universalchardet - - - - - lib - ..\..\vendor\uchardet\src\ - - - - - - - - - false - false - - _CRT_NONSTDC_NO_DEPRECATE; - %(PreprocessorDefinitions) - - - - $(SrcDir) - uchardet\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/universalchardet/universalchardet.vcxproj.filters b/build/universalchardet/universalchardet.vcxproj.filters deleted file mode 100644 index a3b82a996..000000000 --- a/build/universalchardet/universalchardet.vcxproj.filters +++ /dev/null @@ -1,249 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {f628048a-0e81-4ea7-b20c-09e14f767db1} - *.tab - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Frequency tables - - - Frequency tables - - - Frequency tables - - - Frequency tables - - - Frequency tables - - - diff --git a/build/userconfig/ft2.props.sample b/build/userconfig/ft2.props.sample deleted file mode 100644 index 926813596..000000000 --- a/build/userconfig/ft2.props.sample +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - C:\Dev\freetype-2.4.3\include - - C:\Dev\freetype-2.4.3\objs\win32\vc2010 - - freetype2.4.3_32d.lib - freetype2.4.3_32.lib - freetype2.4.3_64d.lib - freetype2.4.3_64.lib - - diff --git a/build/userconfig/paths.props.sample b/build/userconfig/paths.props.sample deleted file mode 100644 index 8b57248e3..000000000 --- a/build/userconfig/paths.props.sample +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - C:\Dev\Aegisub\BuildFiles\ - - C:\Dev\Aegisub\BuiltBinaries\$(Platform)\ - - diff --git a/build/userconfig/readme.txt b/build/userconfig/readme.txt deleted file mode 100644 index 58e634860..000000000 --- a/build/userconfig/readme.txt +++ /dev/null @@ -1,12 +0,0 @@ -You can put MSBuild property files in this folder to override the default -build configuration for Aegisub's build system. - -A number of sample files are provided. These can be copied and used as -templates for common configuration. Importantly, configuring the location -of several library dependencies. -The copied sample files should be renamed to *.props, otherwise they will -not be found by the build system. - -You should not check files placed in this folder into source control. - -Files must be named *.props to be found by the build system. diff --git a/build/userconfig/wx.props.sample b/build/userconfig/wx.props.sample deleted file mode 100644 index 0fdeba05d..000000000 --- a/build/userconfig/wx.props.sample +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - C:\Dev\wxWidgets-2.9\install-vc10 - - $(WxBasePath)\lib32 - $(WxBasePath)\lib64 - - $(WxBasePath)\include - - diff --git a/build/wx/setup-build.h b/build/wx/setup-build.h deleted file mode 100644 index caf5b8fbd..000000000 --- a/build/wx/setup-build.h +++ /dev/null @@ -1,262 +0,0 @@ -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ -#ifndef wxUSE_GUI -#define wxUSE_GUI 1 -#endif -#ifdef wxUSE_UNICODE -#undef wxUSE_UNICODE -#endif -#define WXWIN_COMPATIBILITY_2_4 0 -#define WXWIN_COMPATIBILITY_2_6 0 -#define WXWIN_COMPATIBILITY_2_8 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 -#define wxUSE_ON_FATAL_EXCEPTION 1 -#define wxUSE_STACKWALKER 0 -#define wxUSE_DEBUGREPORT 0 -#define wxUSE_DEBUG_CONTEXT 0 -#define wxUSE_MEMORY_TRACING 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 -#define wxUSE_UNICODE 1 -#define wxUSE_WCHAR_T 1 -#define wxUSE_EXCEPTIONS 1 -#define wxUSE_EXTENDED_RTTI 0 -#define wxUSE_STL 0 -#define wxUSE_LOG 1 -#define wxUSE_LOGWINDOW 1 -#define wxUSE_LOGGUI 1 -#define wxUSE_LOG_DIALOG 1 -#define wxUSE_CMDLINE_PARSER 0 -#define wxUSE_THREADS 1 -#define wxUSE_STREAMS 1 -#define wxUSE_STD_IOSTREAM 0 -#define wxUSE_STD_STRING 1 -#define wxUSE_PRINTF_POS_PARAMS 1 -#define wxUSE_LONGLONG 1 -#define wxUSE_BASE64 0 -#define wxUSE_CONSOLE_EVENTLOOP 1 -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 -#define wxUSE_FSVOLUME 0 -#define wxUSE_STDPATHS 1 -#define wxUSE_TEXTBUFFER 0 -#define wxUSE_TEXTFILE 0 -#define wxUSE_INTL 1 -#define wxUSE_XLOCALE 1 -#define wxUSE_DATETIME 1 -#define wxUSE_TIMER 1 -#define wxUSE_STOPWATCH 1 -#define wxUSE_FSWATCHER 0 -#define wxUSE_CONFIG 0 -#define wxUSE_CONFIG_NATIVE 0 -#define wxUSE_DIALUP_MANAGER 0 -#define wxUSE_DYNLIB_CLASS 1 -#define wxUSE_DYNAMIC_LOADER 1 -#define wxUSE_SOCKETS 0 -#define wxUSE_IPV6 0 -#define wxUSE_FILESYSTEM 0 -#define wxUSE_FS_ZIP 0 -#define wxUSE_FS_ARCHIVE 0 -#define wxUSE_FS_INET 0 -#define wxUSE_ARCHIVE_STREAMS 1 -#define wxUSE_ZIPSTREAM 1 -#define wxUSE_TARSTREAM 0 -#define wxUSE_ZLIB 1 -#define wxUSE_APPLE_IEEE 0 -#define wxUSE_JOYSTICK 0 -#define wxUSE_FONTENUM 1 -#define wxUSE_FONTMAP 1 -#define wxUSE_MIMETYPE 0 -#define wxUSE_PROTOCOL 0 -#define wxUSE_PROTOCOL_FILE 0 -#define wxUSE_PROTOCOL_FTP 0 -#define wxUSE_PROTOCOL_HTTP 0 -#define wxUSE_URL 0 -#define wxUSE_URL_NATIVE 0 -#define wxUSE_VARIANT 1 -#define wxUSE_ANY 0 -#define wxUSE_REGEX 0 -#define wxUSE_SYSTEM_OPTIONS 1 -#define wxUSE_SOUND 0 -#define wxUSE_MEDIACTRL 0 -#define wxUSE_GSTREAMER 0 -#define wxUSE_XRC 0 -#define wxUSE_XML 1 -#define wxUSE_AUI 0 -#define wxUSE_RIBBON 0 -#define wxUSE_PROPGRID 0 -#define wxUSE_STC 1 -#define wxUSE_GRAPHICS_CONTEXT 1 -#define wxUSE_GRAPHICS_GDIPLUS 1 -#define wxUSE_CONTROLS 1 -#define wxUSE_POPUPWIN 1 -#define wxUSE_TIPWINDOW 0 -#define wxUSE_ANIMATIONCTRL 0 -#define wxUSE_BUTTON 1 -#define wxUSE_BMPBUTTON 1 -#define wxUSE_CALENDARCTRL 1 -#define wxUSE_CHECKBOX 1 -#define wxUSE_CHECKLISTBOX 1 -#define wxUSE_CHOICE 1 -#define wxUSE_COLLPANE 0 -#define wxUSE_COLOURPICKERCTRL 1 -#define wxUSE_COMBOBOX 1 -#define wxUSE_DATAVIEWCTRL 1 -#define wxUSE_DATEPICKCTRL 1 -#define wxUSE_DIRPICKERCTRL 1 -#define wxUSE_EDITABLELISTBOX 1 -#define wxUSE_FILECTRL 1 -#define wxUSE_FILEPICKERCTRL 1 -#define wxUSE_FONTPICKERCTRL 1 -#define wxUSE_GAUGE 1 -#define wxUSE_HEADERCTRL 1 -#define wxUSE_HYPERLINKCTRL 1 -#define wxUSE_LISTBOX 1 -#define wxUSE_LISTCTRL 1 -#define wxUSE_RADIOBOX 1 -#define wxUSE_RADIOBTN 1 -#define wxUSE_SCROLLBAR 1 -#define wxUSE_SEARCHCTRL 1 -#define wxUSE_SLIDER 1 -#define wxUSE_SPINBTN 1 -#define wxUSE_SPINCTRL 1 -#define wxUSE_STATBOX 1 -#define wxUSE_STATLINE 1 -#define wxUSE_STATTEXT 1 -#define wxUSE_STATBMP 1 -#define wxUSE_TEXTCTRL 1 -#define wxUSE_TOGGLEBTN 1 -#define wxUSE_TREECTRL 1 -#define wxUSE_STATUSBAR 1 -#define wxUSE_NATIVE_STATUSBAR 1 -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 -#define wxUSE_NOTEBOOK 1 -#define wxUSE_LISTBOOK 1 -#define wxUSE_CHOICEBOOK 1 -#define wxUSE_TREEBOOK 1 -#define wxUSE_TOOLBOOK 1 -#define wxUSE_TASKBARICON 0 -#define wxUSE_TAB_DIALOG 0 -#define wxUSE_GRID 0 -#define wxUSE_MINIFRAME 0 -#define wxUSE_COMBOCTRL 1 -#define wxUSE_ODCOMBOBOX 1 -#define wxUSE_BITMAPCOMBOBOX 0 -#define wxUSE_REARRANGECTRL 1 -#define wxUSE_ACCEL 1 -#define wxUSE_HOTKEY 1 -#define wxUSE_CARET 1 -#define wxUSE_DISPLAY 1 -#define wxUSE_GEOMETRY 1 -#define wxUSE_IMAGLIST 1 -#define wxUSE_INFOBAR 1 -#define wxUSE_MENUS 1 -#define wxUSE_NOTIFICATION_MESSAGE 0 -#define wxUSE_SASH 1 -#define wxUSE_SPLITTER 1 -#define wxUSE_TOOLTIPS 1 -#define wxUSE_VALIDATORS 1 -#define wxUSE_COMMON_DIALOGS 1 -#define wxUSE_BUSYINFO 1 -#define wxUSE_CHOICEDLG 1 -#define wxUSE_COLOURDLG 1 -#define wxUSE_DIRDLG 1 -#define wxUSE_FILEDLG 1 -#define wxUSE_FINDREPLDLG 0 -#define wxUSE_FONTDLG 1 -#define wxUSE_MSGDLG 1 -#define wxUSE_PROGRESSDLG 0 -#define wxUSE_STARTUP_TIPS 0 -#define wxUSE_TEXTDLG 1 -#define wxUSE_NUMBERDLG 1 -#define wxUSE_SPLASH 0 -#define wxUSE_WIZARDDLG 0 -#define wxUSE_ABOUTDLG 1 -#define wxUSE_METAFILE 0 -#define wxUSE_ENH_METAFILE 0 -#define wxUSE_WIN_METAFILES_ALWAYS 0 -#define wxUSE_MDI 0 -#define wxUSE_DOC_VIEW_ARCHITECTURE 0 -#define wxUSE_MDI_ARCHITECTURE 0 -#define wxUSE_PRINTING_ARCHITECTURE 0 -#define wxUSE_HTML 0 -#define wxUSE_GLCANVAS 1 -#define wxUSE_RICHTEXT 0 -#define wxUSE_CLIPBOARD 1 -#define wxUSE_DATAOBJ 1 -#define wxUSE_DRAG_AND_DROP 1 -#define wxUSE_ACCESSIBILITY 0 -#define wxUSE_SNGLINST_CHECKER 1 -#define wxUSE_DRAGIMAGE 1 -#define wxUSE_IPC 0 -#define wxUSE_HELP 0 -#define wxUSE_MS_HTML_HELP 0 -#define wxUSE_WXHTML_HELP 0 -#define wxUSE_RESOURCES 0 -#define wxUSE_CONSTRAINTS 0 -#define wxUSE_SPLINES 0 -#define wxUSE_MOUSEWHEEL 1 -#define wxUSE_POSTSCRIPT 0 -#define wxUSE_AFM_FOR_POSTSCRIPT 0 -#define wxUSE_SVG 0 -#define wxODBC_FWD_ONLY_CURSORS 0 -#define wxODBC_BACKWARD_COMPATABILITY 0 -#define wxUSE_IOSTREAMH 0 -#define wxUSE_IMAGE 1 -#define wxUSE_LIBPNG 1 -#define wxUSE_LIBJPEG 0 -#define wxUSE_LIBTIFF 0 -#define wxUSE_TGA 0 -#define wxUSE_GIF 0 -#define wxUSE_PNM 0 -#define wxUSE_PCX 0 -#define wxUSE_IFF 0 -#define wxUSE_XPM 0 -#define wxUSE_ICO_CUR 1 -#define wxUSE_PALETTE 1 -#define wxUSE_ALL_THEMES 1 -#define wxUSE_UNICODE_MSLU 0 -#define wxUSE_MFC 0 -#define wxUSE_OLE 1 -#define wxUSE_OLE_AUTOMATION 0 -#define wxUSE_ACTIVEX 0 -#define wxUSE_DC_CACHEING 1 -#define wxUSE_DIB_FOR_BITMAP 0 -#define wxUSE_WXDIB 1 -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0 -#define wxUSE_REGKEY 1 -#define wxUSE_RICHEDIT 0 -#define wxUSE_RICHEDIT2 0 -#define wxUSE_OWNER_DRAWN 1 -#define wxUSE_TASKBARICON_BALLOONS 0 -#define wxUSE_UXTHEME 1 -#define wxUSE_UXTHEME_AUTO 1 -#define wxUSE_INKEDIT 0 -#define wxUSE_INICONF 0 -#define wxUSE_DATEPICKCTRL_GENERIC 0 -#define wxUSE_CRASHREPORT 1 -#define wxUSE_AUTOID_MANAGEMENT 1 -#define wxUSE_FILE_HISTORY 0 -#define wxUSE_UIACTIONSIMULATOR 0 -#define wxUSE_CAIRO 0 -#define wxUSE_COMMANDLINKBUTTON 0 -#define wxUSE_RICHMSGDLG 0 -#define wxUSE_STD_CONTAINERS 1 -#define wxUSE_STD_STRING_CONV_IN_WXSTRING 0 -#define wxUSE_ARTPROVIDER_STD 0 -#define wxUSE_ARTPROVIDER_TANGO 0 -#define wxUSE_DC_TRANSFORM_MATRIX 0 -#define wxUSE_MARKUP 0 -#define wxUSE_TREELISTCTRL 1 -#define wxUSE_TIMEPICKCTRL 1 -#define wxUSE_WEBVIEW 0 -#define wxUSE_RICHTOOLTIP 0 -#define wxUSE_COMPILER_TLS 2 -#define wxUSE_PREFERENCES_EDITOR 0 -#define wxUSE_STD_CONTAINERS_COMPATIBLY 0 -#define wxUSE_TASKBARBUTTON 0 -#define wxUSE_ADDREMOVECTRL 0 -#define wxUSE_ACTIVITYINDICATOR 0 -#define wxUSE_WINRT 0 -#endif diff --git a/build/wx/setup-installed.h b/build/wx/setup-installed.h deleted file mode 100644 index 791db0ffc..000000000 --- a/build/wx/setup-installed.h +++ /dev/null @@ -1,3 +0,0 @@ -#include "wx/version.h" -#include "wx/cpp.h" -#include "wx/msw/setup.h" diff --git a/build/wx/stc-fi.h b/build/wx/stc-fi.h deleted file mode 100644 index 053e86b0d..000000000 --- a/build/wx/stc-fi.h +++ /dev/null @@ -1,7 +0,0 @@ -#include - -#include "Platform.h" -#include "SciLexer.h" -#include "ILexer.h" -#include "LexerModule.h" - diff --git a/build/wx/wxWidgets.vcxproj b/build/wx/wxWidgets.vcxproj deleted file mode 100644 index 4567381ed..000000000 --- a/build/wx/wxWidgets.vcxproj +++ /dev/null @@ -1,425 +0,0 @@ - - - - {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC} - wxWidgets - - - - - lib - ..\..\vendor\wxWidgets\ - - - - - - - - - _CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;__WX__;WXBUILDING;%(PreprocessorDefinitions) - $(SrcDir)include;%(AdditionalIncludeDirectories) - Use - wx/wxprec.h - /Zm150 %(AdditionalOptions) - - - $(SrcDir)include - - - - - - - - - - - - - - - - - - - - - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(SrcDir)src\stc\scintilla\include;$(SrcDir)src\stc\scintilla\src;$(SrcDir)src\stc\scintilla\lexlib;%(AdditionalIncludeDirectories) - - - - $(MSBuildThisFileDirectory)stc-fi.h - NotUsing - $(SrcDir)src\stc\scintilla\include;$(SrcDir)src\stc\scintilla\src;$(SrcDir)src\stc\scintilla\lexlib;%(AdditionalIncludeDirectories) - - - SCI_LEXER;%(PreprocessorDefinitions) - $(SrcDir)src\stc\scintilla\include;$(SrcDir)src\stc\scintilla\src;$(SrcDir)src\stc\scintilla\lexlib;%(AdditionalIncludeDirectories) - - - - - - - - {d6ba6815-0aac-48fa-8372-d32cde8bf07a} - - - {5cabcbef-e79a-4d27-94a5-cf4eaaf1dd96} - - - {d6ea54fd-f15c-42f6-929b-a83f299a4582} - - - {10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee} - - - diff --git a/build/yasm.targets b/build/yasm.targets deleted file mode 100644 index 57fde6103..000000000 --- a/build/yasm.targets +++ /dev/null @@ -1,101 +0,0 @@ - - - - - <_PropertySheetDisplayName>Yasm compile targets - - - - - _YasmAssemble; - $(BuildCompileTargets) - - - - - - - false - -m x86 - -m amd64 - - - - - - - - - - - - - <_Yasm Include="@(Yasm)" Condition="'%(Yasm.InputRelativeSourceDir)' == ''"> - - - - <_Yasm Remove="@(_Yasm->WithMetadataValue('ExcludeFromBuild','true'))" /> - - - - - <_Yasm> - %(Include) -I%(RootDir)%(Directory)..\ - - %(OutputDir) - $(AegisubObjectDir)%(OutputDir) - - - - - - - - - - - - - - - - - - - diff --git a/build/zlib/zconf.h b/build/zlib/zconf.h deleted file mode 100644 index 69610ac37..000000000 --- a/build/zlib/zconf.h +++ /dev/null @@ -1,513 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2012 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -/* ./configure may #define Z_U4 here */ - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# else -# if (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# else -# if (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -# endif -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#if defined(HAVE_UNISTD_H) && -HAVE_UNISTD_H - -1 == 1 -# undef HAVE_UNISTD_H -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#ifdef _WIN32 -# include /* for wchar_t */ -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(LARGEFILE64_SOURCE) -# ifdef Z_HAVE_UNISTD_H -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# endif -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ - diff --git a/build/zlib/zlib.vcxproj b/build/zlib/zlib.vcxproj deleted file mode 100644 index 1dbf4345d..000000000 --- a/build/zlib/zlib.vcxproj +++ /dev/null @@ -1,60 +0,0 @@ - - - - {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE} - zlib - lib - - - - - - - - - - $(ZlibSrcDir)\ - 4996;%(DisableSpecificWarnings) - - - - - - - $(ZlibSrcDir) - - - $(MSBuildThisFileDirectory) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From d80b8d6de0cdae29936e0c26b45100fbe8887d80 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 20:50:45 +0000 Subject: [PATCH 131/185] meson: use meson-pr branch for libass --- subprojects/libass.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 90101e922..326b3a87b 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -1,5 +1,5 @@ [wrap-git] directory = libass url = https://github.com/TypesettingTools/libass.git -revision = meson-no-rasterizer-approximation +revision = meson-pr patch_directory = libass From 3147f303c8991cff3ab0d449acbaf8498cb16c49 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Wed, 28 Oct 2020 20:51:06 +0000 Subject: [PATCH 132/185] meson: save git_version.xml to meson build directory in version.ps1 --- tools/version.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/version.ps1 b/tools/version.ps1 index 8ce776474..3d0c62655 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -28,7 +28,7 @@ if ([System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $BuildRo $BuildRoot = Join-Path $repositoryRootPath 'build' } $gitVersionHeaderPath = Join-Path $BuildRoot 'git_version.h' -$gitVersionXmlPath = Join-Path $repositoryRootPath 'build' | Join-Path -ChildPath 'git_version.xml' +$gitVersionXmlPath = Join-Path $BuildRoot 'git_version.xml' $version = @{} if (Test-Path $gitVersionHeaderPath) { From 5ec5271eb58f709b4ae426b1f0dd2b94c7e0d835 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 5 Oct 2019 20:44:54 -0400 Subject: [PATCH 133/185] meson: fix source file inclusion in libaegisub on osx --- libaegisub/meson.build | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/libaegisub/meson.build b/libaegisub/meson.build index bb9842bfa..e780a399c 100644 --- a/libaegisub/meson.build +++ b/libaegisub/meson.build @@ -58,24 +58,25 @@ if host_machine.system() == 'darwin' ] else libaegisub_src += 'common/dispatch.cpp' - if host_machine.system() == 'windows' - libaegisub_src += [ - 'windows/access.cpp', - 'windows/charset_conv_win.cpp', - 'windows/fs.cpp', - 'windows/log_win.cpp', - 'windows/path_win.cpp', - 'windows/util_win.cpp', - ] - else - libaegisub_src += [ - 'unix/access.cpp', - 'unix/fs.cpp', - 'unix/log.cpp', - 'unix/path.cpp', - 'unix/util.cpp', - ] - endif +endif + +if host_machine.system() == 'windows' + libaegisub_src += [ + 'windows/access.cpp', + 'windows/charset_conv_win.cpp', + 'windows/fs.cpp', + 'windows/log_win.cpp', + 'windows/path_win.cpp', + 'windows/util_win.cpp', + ] +else + libaegisub_src += [ + 'unix/access.cpp', + 'unix/fs.cpp', + 'unix/log.cpp', + 'unix/path.cpp', + 'unix/util.cpp', + ] endif libaegisub_cpp_pch = ['include/lagi_pre.h'] From e08772802148e1ac6c047c312bb16d69adbae954 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 12:11:22 -0500 Subject: [PATCH 134/185] gitignore: mass purge, add .DS_STORE --- .gitignore | 42 +++--------------------------------------- 1 file changed, 3 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 67fb79e98..b8181d675 100644 --- a/.gitignore +++ b/.gitignore @@ -1,30 +1,5 @@ -*.vcxproj.user -*.idb -*.pdb -*.mo -*.exe - -/output -/include /tests/data -.lvimrc -.syntastic_cpp_config -/Makefile.inc -BuildLog.htm -acconf.h -acconf.h.in -aclocal.m4 -autom4te.cache -automation/aegisub-lua -build/userconfig/*.props -conf.sh -config.log -config.status -config_windows.h -configure -git_version.h -git_version.xml packages/desktop/aegisub.desktop packages/desktop/aegisub.desktop.template packages/win_installer/vendor @@ -33,26 +8,12 @@ src/libresrc/bitmap.h src/libresrc/default_config.cpp src/libresrc/default_config.h src/libresrc/default_config_platform.json -svn-revision.h -svn_revision tests/*.json tests/run tools/osx-bundle-restart-helper tools/osx-bundle.sed tools/repack-thes-dict tools/repack-thes-dict.dSYM -vendor/luajit/src/host/buildvm -vendor/luajit/src/host/minilua -vendor/luajit/src/host/buildvm_arch.h -vendor/luajit/src/jit/vmdef.lua -vendor/luajit/src/gen -vendor/luajit/src/lj_vm.s -vendor/luajit/src/lj_bcdef.h -vendor/luajit/src/lj_ffdef.h -vendor/luajit/src/lj_folddef.h -vendor/luajit/src/lj_libdef.h -vendor/luajit/src/lj_recdef.h -vendor/luajit/src/luajit # IDE-specific .nuget @@ -60,6 +21,9 @@ vendor/luajit/src/luajit .kdev4/ *.kdev4 +# Platform-specific +.DS_Store + # Meson build*/ subprojects/freetype* From 44af99a16388a1788a3eef81be7fb25a41701a0a Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 12:13:50 -0500 Subject: [PATCH 135/185] meson: move luabins to subprojects --- meson.build | 5 ++++- {vendor => subprojects}/luabins/AUTHORS | 0 {vendor => subprojects}/luabins/BENCHMARK | 0 {vendor => subprojects}/luabins/COPYRIGHT | 0 {vendor => subprojects}/luabins/HISTORY | 0 {vendor => subprojects}/luabins/Makefile | 0 {vendor => subprojects}/luabins/README.md | 0 {vendor => subprojects}/luabins/TODO | 0 {vendor => subprojects}/luabins/etc/benchmark.lua | 0 {vendor => subprojects}/luabins/etc/checkfmt.lua | 0 {vendor => subprojects}/luabins/etc/dataset.lua | 0 {vendor => subprojects}/luabins/etc/tolua.lua | 0 {vendor => subprojects}/luabins/etc/toluabins.lua | 0 {vendor => subprojects}/luabins/include/.keepme | 0 {vendor => subprojects}/luabins/lib/.keepme | 0 {vendor => subprojects}/luabins/obj/.keepme | 0 .../luabins/rockspec/luabins-0.1.1-1.rockspec | 0 .../luabins/rockspec/luabins-0.1.1-2.rockspec | 0 .../luabins/rockspec/luabins-0.2-1.rockspec | 0 .../luabins/rockspec/luabins-0.3-1.rockspec | 0 .../luabins/rockspec/luabins-scm-1.rockspec | 0 .../luabins/rockspec/luabins-scm-2.rockspec | 0 {vendor => subprojects}/luabins/src/fwrite.c | 0 {vendor => subprojects}/luabins/src/fwrite.h | 0 {vendor => subprojects}/luabins/src/load.c | 0 {vendor => subprojects}/luabins/src/luabins.c | 0 {vendor => subprojects}/luabins/src/luabins.h | 0 {vendor => subprojects}/luabins/src/luaheaders.h | 0 {vendor => subprojects}/luabins/src/luainternals.c | 0 {vendor => subprojects}/luabins/src/luainternals.h | 0 {vendor => subprojects}/luabins/src/lualess.h | 0 {vendor => subprojects}/luabins/src/meson.build | 0 {vendor => subprojects}/luabins/src/save.c | 0 {vendor => subprojects}/luabins/src/savebuffer.c | 0 {vendor => subprojects}/luabins/src/savebuffer.h | 0 {vendor => subprojects}/luabins/src/saveload.h | 0 {vendor => subprojects}/luabins/src/write.c | 0 {vendor => subprojects}/luabins/src/write.h | 0 {vendor => subprojects}/luabins/test/large_data.lua | 0 .../luabins/test/large_data.luabins | Bin {vendor => subprojects}/luabins/test/test.c | 0 {vendor => subprojects}/luabins/test/test.h | 0 {vendor => subprojects}/luabins/test/test.lua | 0 {vendor => subprojects}/luabins/test/test_api.c | 0 .../luabins/test/test_fwrite_api.c | 0 .../luabins/test/test_savebuffer.c | 0 .../luabins/test/test_write_api.c | 0 {vendor => subprojects}/luabins/test/util.c | 0 {vendor => subprojects}/luabins/test/util.h | 0 .../luabins/test/write_tests.inc | 0 {vendor => subprojects}/luabins/tmp/.keepme | 0 51 files changed, 4 insertions(+), 1 deletion(-) rename {vendor => subprojects}/luabins/AUTHORS (100%) rename {vendor => subprojects}/luabins/BENCHMARK (100%) rename {vendor => subprojects}/luabins/COPYRIGHT (100%) rename {vendor => subprojects}/luabins/HISTORY (100%) rename {vendor => subprojects}/luabins/Makefile (100%) rename {vendor => subprojects}/luabins/README.md (100%) rename {vendor => subprojects}/luabins/TODO (100%) rename {vendor => subprojects}/luabins/etc/benchmark.lua (100%) rename {vendor => subprojects}/luabins/etc/checkfmt.lua (100%) rename {vendor => subprojects}/luabins/etc/dataset.lua (100%) rename {vendor => subprojects}/luabins/etc/tolua.lua (100%) rename {vendor => subprojects}/luabins/etc/toluabins.lua (100%) rename {vendor => subprojects}/luabins/include/.keepme (100%) rename {vendor => subprojects}/luabins/lib/.keepme (100%) rename {vendor => subprojects}/luabins/obj/.keepme (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-0.1.1-1.rockspec (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-0.1.1-2.rockspec (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-0.2-1.rockspec (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-0.3-1.rockspec (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-scm-1.rockspec (100%) rename {vendor => subprojects}/luabins/rockspec/luabins-scm-2.rockspec (100%) rename {vendor => subprojects}/luabins/src/fwrite.c (100%) rename {vendor => subprojects}/luabins/src/fwrite.h (100%) rename {vendor => subprojects}/luabins/src/load.c (100%) rename {vendor => subprojects}/luabins/src/luabins.c (100%) rename {vendor => subprojects}/luabins/src/luabins.h (100%) rename {vendor => subprojects}/luabins/src/luaheaders.h (100%) rename {vendor => subprojects}/luabins/src/luainternals.c (100%) rename {vendor => subprojects}/luabins/src/luainternals.h (100%) rename {vendor => subprojects}/luabins/src/lualess.h (100%) rename {vendor => subprojects}/luabins/src/meson.build (100%) rename {vendor => subprojects}/luabins/src/save.c (100%) rename {vendor => subprojects}/luabins/src/savebuffer.c (100%) rename {vendor => subprojects}/luabins/src/savebuffer.h (100%) rename {vendor => subprojects}/luabins/src/saveload.h (100%) rename {vendor => subprojects}/luabins/src/write.c (100%) rename {vendor => subprojects}/luabins/src/write.h (100%) rename {vendor => subprojects}/luabins/test/large_data.lua (100%) rename {vendor => subprojects}/luabins/test/large_data.luabins (100%) rename {vendor => subprojects}/luabins/test/test.c (100%) rename {vendor => subprojects}/luabins/test/test.h (100%) rename {vendor => subprojects}/luabins/test/test.lua (100%) rename {vendor => subprojects}/luabins/test/test_api.c (100%) rename {vendor => subprojects}/luabins/test/test_fwrite_api.c (100%) rename {vendor => subprojects}/luabins/test/test_savebuffer.c (100%) rename {vendor => subprojects}/luabins/test/test_write_api.c (100%) rename {vendor => subprojects}/luabins/test/util.c (100%) rename {vendor => subprojects}/luabins/test/util.h (100%) rename {vendor => subprojects}/luabins/test/write_tests.inc (100%) rename {vendor => subprojects}/luabins/tmp/.keepme (100%) diff --git a/meson.build b/meson.build index ce0a24e35..be8feb3d5 100644 --- a/meson.build +++ b/meson.build @@ -243,7 +243,7 @@ if not deps.contains(luajit) else luajit_inc = include_directories(luajit.get_pkgconfig_variable('includedir')) endif -subdir('vendor/luabins/src') +subdir('subprojects/luabins/src') dep_gl = dependency('gl', required: false) if not dep_gl.found() @@ -257,6 +257,9 @@ if not dep_gl.found() dep_gl = dependency('', required: false) endif endif +if host_machine.system() == 'darwin' + conf.set('HAVE_OPENGL_GL_H', 1) +endif if not dep_gl.found() error('OpenGL implementation not found') diff --git a/vendor/luabins/AUTHORS b/subprojects/luabins/AUTHORS similarity index 100% rename from vendor/luabins/AUTHORS rename to subprojects/luabins/AUTHORS diff --git a/vendor/luabins/BENCHMARK b/subprojects/luabins/BENCHMARK similarity index 100% rename from vendor/luabins/BENCHMARK rename to subprojects/luabins/BENCHMARK diff --git a/vendor/luabins/COPYRIGHT b/subprojects/luabins/COPYRIGHT similarity index 100% rename from vendor/luabins/COPYRIGHT rename to subprojects/luabins/COPYRIGHT diff --git a/vendor/luabins/HISTORY b/subprojects/luabins/HISTORY similarity index 100% rename from vendor/luabins/HISTORY rename to subprojects/luabins/HISTORY diff --git a/vendor/luabins/Makefile b/subprojects/luabins/Makefile similarity index 100% rename from vendor/luabins/Makefile rename to subprojects/luabins/Makefile diff --git a/vendor/luabins/README.md b/subprojects/luabins/README.md similarity index 100% rename from vendor/luabins/README.md rename to subprojects/luabins/README.md diff --git a/vendor/luabins/TODO b/subprojects/luabins/TODO similarity index 100% rename from vendor/luabins/TODO rename to subprojects/luabins/TODO diff --git a/vendor/luabins/etc/benchmark.lua b/subprojects/luabins/etc/benchmark.lua similarity index 100% rename from vendor/luabins/etc/benchmark.lua rename to subprojects/luabins/etc/benchmark.lua diff --git a/vendor/luabins/etc/checkfmt.lua b/subprojects/luabins/etc/checkfmt.lua similarity index 100% rename from vendor/luabins/etc/checkfmt.lua rename to subprojects/luabins/etc/checkfmt.lua diff --git a/vendor/luabins/etc/dataset.lua b/subprojects/luabins/etc/dataset.lua similarity index 100% rename from vendor/luabins/etc/dataset.lua rename to subprojects/luabins/etc/dataset.lua diff --git a/vendor/luabins/etc/tolua.lua b/subprojects/luabins/etc/tolua.lua similarity index 100% rename from vendor/luabins/etc/tolua.lua rename to subprojects/luabins/etc/tolua.lua diff --git a/vendor/luabins/etc/toluabins.lua b/subprojects/luabins/etc/toluabins.lua similarity index 100% rename from vendor/luabins/etc/toluabins.lua rename to subprojects/luabins/etc/toluabins.lua diff --git a/vendor/luabins/include/.keepme b/subprojects/luabins/include/.keepme similarity index 100% rename from vendor/luabins/include/.keepme rename to subprojects/luabins/include/.keepme diff --git a/vendor/luabins/lib/.keepme b/subprojects/luabins/lib/.keepme similarity index 100% rename from vendor/luabins/lib/.keepme rename to subprojects/luabins/lib/.keepme diff --git a/vendor/luabins/obj/.keepme b/subprojects/luabins/obj/.keepme similarity index 100% rename from vendor/luabins/obj/.keepme rename to subprojects/luabins/obj/.keepme diff --git a/vendor/luabins/rockspec/luabins-0.1.1-1.rockspec b/subprojects/luabins/rockspec/luabins-0.1.1-1.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-0.1.1-1.rockspec rename to subprojects/luabins/rockspec/luabins-0.1.1-1.rockspec diff --git a/vendor/luabins/rockspec/luabins-0.1.1-2.rockspec b/subprojects/luabins/rockspec/luabins-0.1.1-2.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-0.1.1-2.rockspec rename to subprojects/luabins/rockspec/luabins-0.1.1-2.rockspec diff --git a/vendor/luabins/rockspec/luabins-0.2-1.rockspec b/subprojects/luabins/rockspec/luabins-0.2-1.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-0.2-1.rockspec rename to subprojects/luabins/rockspec/luabins-0.2-1.rockspec diff --git a/vendor/luabins/rockspec/luabins-0.3-1.rockspec b/subprojects/luabins/rockspec/luabins-0.3-1.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-0.3-1.rockspec rename to subprojects/luabins/rockspec/luabins-0.3-1.rockspec diff --git a/vendor/luabins/rockspec/luabins-scm-1.rockspec b/subprojects/luabins/rockspec/luabins-scm-1.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-scm-1.rockspec rename to subprojects/luabins/rockspec/luabins-scm-1.rockspec diff --git a/vendor/luabins/rockspec/luabins-scm-2.rockspec b/subprojects/luabins/rockspec/luabins-scm-2.rockspec similarity index 100% rename from vendor/luabins/rockspec/luabins-scm-2.rockspec rename to subprojects/luabins/rockspec/luabins-scm-2.rockspec diff --git a/vendor/luabins/src/fwrite.c b/subprojects/luabins/src/fwrite.c similarity index 100% rename from vendor/luabins/src/fwrite.c rename to subprojects/luabins/src/fwrite.c diff --git a/vendor/luabins/src/fwrite.h b/subprojects/luabins/src/fwrite.h similarity index 100% rename from vendor/luabins/src/fwrite.h rename to subprojects/luabins/src/fwrite.h diff --git a/vendor/luabins/src/load.c b/subprojects/luabins/src/load.c similarity index 100% rename from vendor/luabins/src/load.c rename to subprojects/luabins/src/load.c diff --git a/vendor/luabins/src/luabins.c b/subprojects/luabins/src/luabins.c similarity index 100% rename from vendor/luabins/src/luabins.c rename to subprojects/luabins/src/luabins.c diff --git a/vendor/luabins/src/luabins.h b/subprojects/luabins/src/luabins.h similarity index 100% rename from vendor/luabins/src/luabins.h rename to subprojects/luabins/src/luabins.h diff --git a/vendor/luabins/src/luaheaders.h b/subprojects/luabins/src/luaheaders.h similarity index 100% rename from vendor/luabins/src/luaheaders.h rename to subprojects/luabins/src/luaheaders.h diff --git a/vendor/luabins/src/luainternals.c b/subprojects/luabins/src/luainternals.c similarity index 100% rename from vendor/luabins/src/luainternals.c rename to subprojects/luabins/src/luainternals.c diff --git a/vendor/luabins/src/luainternals.h b/subprojects/luabins/src/luainternals.h similarity index 100% rename from vendor/luabins/src/luainternals.h rename to subprojects/luabins/src/luainternals.h diff --git a/vendor/luabins/src/lualess.h b/subprojects/luabins/src/lualess.h similarity index 100% rename from vendor/luabins/src/lualess.h rename to subprojects/luabins/src/lualess.h diff --git a/vendor/luabins/src/meson.build b/subprojects/luabins/src/meson.build similarity index 100% rename from vendor/luabins/src/meson.build rename to subprojects/luabins/src/meson.build diff --git a/vendor/luabins/src/save.c b/subprojects/luabins/src/save.c similarity index 100% rename from vendor/luabins/src/save.c rename to subprojects/luabins/src/save.c diff --git a/vendor/luabins/src/savebuffer.c b/subprojects/luabins/src/savebuffer.c similarity index 100% rename from vendor/luabins/src/savebuffer.c rename to subprojects/luabins/src/savebuffer.c diff --git a/vendor/luabins/src/savebuffer.h b/subprojects/luabins/src/savebuffer.h similarity index 100% rename from vendor/luabins/src/savebuffer.h rename to subprojects/luabins/src/savebuffer.h diff --git a/vendor/luabins/src/saveload.h b/subprojects/luabins/src/saveload.h similarity index 100% rename from vendor/luabins/src/saveload.h rename to subprojects/luabins/src/saveload.h diff --git a/vendor/luabins/src/write.c b/subprojects/luabins/src/write.c similarity index 100% rename from vendor/luabins/src/write.c rename to subprojects/luabins/src/write.c diff --git a/vendor/luabins/src/write.h b/subprojects/luabins/src/write.h similarity index 100% rename from vendor/luabins/src/write.h rename to subprojects/luabins/src/write.h diff --git a/vendor/luabins/test/large_data.lua b/subprojects/luabins/test/large_data.lua similarity index 100% rename from vendor/luabins/test/large_data.lua rename to subprojects/luabins/test/large_data.lua diff --git a/vendor/luabins/test/large_data.luabins b/subprojects/luabins/test/large_data.luabins similarity index 100% rename from vendor/luabins/test/large_data.luabins rename to subprojects/luabins/test/large_data.luabins diff --git a/vendor/luabins/test/test.c b/subprojects/luabins/test/test.c similarity index 100% rename from vendor/luabins/test/test.c rename to subprojects/luabins/test/test.c diff --git a/vendor/luabins/test/test.h b/subprojects/luabins/test/test.h similarity index 100% rename from vendor/luabins/test/test.h rename to subprojects/luabins/test/test.h diff --git a/vendor/luabins/test/test.lua b/subprojects/luabins/test/test.lua similarity index 100% rename from vendor/luabins/test/test.lua rename to subprojects/luabins/test/test.lua diff --git a/vendor/luabins/test/test_api.c b/subprojects/luabins/test/test_api.c similarity index 100% rename from vendor/luabins/test/test_api.c rename to subprojects/luabins/test/test_api.c diff --git a/vendor/luabins/test/test_fwrite_api.c b/subprojects/luabins/test/test_fwrite_api.c similarity index 100% rename from vendor/luabins/test/test_fwrite_api.c rename to subprojects/luabins/test/test_fwrite_api.c diff --git a/vendor/luabins/test/test_savebuffer.c b/subprojects/luabins/test/test_savebuffer.c similarity index 100% rename from vendor/luabins/test/test_savebuffer.c rename to subprojects/luabins/test/test_savebuffer.c diff --git a/vendor/luabins/test/test_write_api.c b/subprojects/luabins/test/test_write_api.c similarity index 100% rename from vendor/luabins/test/test_write_api.c rename to subprojects/luabins/test/test_write_api.c diff --git a/vendor/luabins/test/util.c b/subprojects/luabins/test/util.c similarity index 100% rename from vendor/luabins/test/util.c rename to subprojects/luabins/test/util.c diff --git a/vendor/luabins/test/util.h b/subprojects/luabins/test/util.h similarity index 100% rename from vendor/luabins/test/util.h rename to subprojects/luabins/test/util.h diff --git a/vendor/luabins/test/write_tests.inc b/subprojects/luabins/test/write_tests.inc similarity index 100% rename from vendor/luabins/test/write_tests.inc rename to subprojects/luabins/test/write_tests.inc diff --git a/vendor/luabins/tmp/.keepme b/subprojects/luabins/tmp/.keepme similarity index 100% rename from vendor/luabins/tmp/.keepme rename to subprojects/luabins/tmp/.keepme From 0d45c67dcf026dbc7296a4a29e3dfdc33a583367 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Oct 2019 15:59:40 -0400 Subject: [PATCH 136/185] meson: move all .desktop file work into linux conditional --- packages/meson.build | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/meson.build b/packages/meson.build index b4db1e0e0..f2a02902c 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -1,12 +1,13 @@ -c_pkg = configuration_data() -c_pkg.set('AEGISUB_COMMAND', 'aegisub') +conf_pkg = configuration_data() if host_machine.system() == 'windows' elif host_machine.system() == 'darwin' else + conf_pkg.set('AEGISUB_COMMAND', 'aegisub') + desktop_template = configure_file(input: 'desktop/aegisub.desktop.template.in', output: 'aegisub.desktop.template', - configuration: c_pkg) + configuration: conf_pkg) i18n = import('i18n') i18n.merge_file(input: desktop_template, @@ -15,13 +16,13 @@ else po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications')) + + aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] + + foreach s: aegisub_logos + dir = s.split('.')[0] + ext = s.split('.')[1] + install_data('desktop' / dir / 'aegisub.' + ext, + install_dir: get_option('datadir') / 'icons' / 'hicolor' / dir / 'apps') + endforeach endif - -aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] - -foreach s: aegisub_logos - dir = s.split('.')[0] - ext = s.split('.')[1] - install_data('desktop' / dir / 'aegisub.' + ext, - install_dir: get_option('datadir') / 'icons' / 'hicolor' / dir / 'apps') -endforeach From 2e898c461a1e9fec1765a4a7449ac4e7fb5f2fc5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Oct 2019 16:00:08 -0400 Subject: [PATCH 137/185] win-installer: remove fragment_opengl --- packages/win_installer/fragment_opengl.iss | 68 ---------------------- 1 file changed, 68 deletions(-) delete mode 100644 packages/win_installer/fragment_opengl.iss diff --git a/packages/win_installer/fragment_opengl.iss b/packages/win_installer/fragment_opengl.iss deleted file mode 100644 index 21cb3ee14..000000000 --- a/packages/win_installer/fragment_opengl.iss +++ /dev/null @@ -1,68 +0,0 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - - -; Check whether the user has a possibly redundant OPENGL32.DLL file in his program folder and offer to remove it - -[InstallDelete] -Type: files; Name: {app}\opengl32.dll; Tasks: RemoveRedundantOpenGL -Type: files; Name: {app}\opengl32.txt; Tasks: RemoveRedundantOpenGL -Type: files; Name: {app}\opengl32.lib; Tasks: RemoveRedundantOpenGL - -[Tasks] -Name: RemoveRedundantOpenGL; Description: Remove OPENGL32.DLL from Aegisub folder; Check: OpenGLdllPresent - -[Messages] -WizardSelectTasks=Select Additional Tasks -SelectTasksDesc=Which additional tasks should be performed? -SelectTasksLabel2=You appear to have a Mesa3D OPENGL32.DLL file installed in your Aegisub directory. This file has previously helped make video display more stable, but is no longer needed because Aegisub's code has been made more robust.%nThis file will be removed by default, but if you want to keep it you can unselect the option below. - -[Code] -function OpenGLdllPresent: Boolean; -begin - try - Result := - FileExists(ExpandConstant('{app}\opengl32.dll')) - // MD5 hash of the DLL distributed on Aegisub's forum - and (GetMD5OfFile(ExpandConstant('{app}\opengl32.dll')) = 'f928a03f4b265658589be951cbd09a27') - ; - except - Result := False; - end; -end; -[/Code] - - - - From 9fd62692af3b7f4bb0d4a676bc506b2f16f0df26 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Oct 2019 16:00:37 -0400 Subject: [PATCH 138/185] win-installer: auto-populate current year for copyright --- packages/win_installer/fragment_setupbase.iss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/win_installer/fragment_setupbase.iss b/packages/win_installer/fragment_setupbase.iss index 4ab7f44ed..8935e256c 100644 --- a/packages/win_installer/fragment_setupbase.iss +++ b/packages/win_installer/fragment_setupbase.iss @@ -34,6 +34,8 @@ #include "../../build/git_version.h" +#define CURRENT_YEAR GetDateTimeString('yyyy', '', ''); + [Setup] AppName=Aegisub AppVerName=Aegisub {#BUILD_GIT_VERSION_STRING} @@ -41,7 +43,7 @@ AppVersion={#INSTALLER_VERSION} AppPublisher=Aegisub Team AppPublisherURL=http://www.aegisub.org/ AppSupportURL=https://github.com/TypesettingTools/Aegisub/issues -AppCopyright=2005-2018 The Aegisub Team +AppCopyright=2005-{#CURRENT_YEAR} The Aegisub Team VersionInfoVersion={#INSTALLER_VERSION} DefaultGroupName=Aegisub AllowNoIcons=true From 8f42f11b11e3ae1129a6b67b5bd5273f9391f28d Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 6 Oct 2019 20:53:57 -0400 Subject: [PATCH 139/185] Convert osx-fix-libs.py to py3 --- tools/osx-fix-libs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx-fix-libs.py b/tools/osx-fix-libs.py index ac4327a9a..845a56b97 100755 --- a/tools/osx-fix-libs.py +++ b/tools/osx-fix-libs.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import re import sys From e3826cb17eb54b4a106c304dd12d7b31e00b3d37 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 12:33:37 -0500 Subject: [PATCH 140/185] meson: initial attempt to generate Aegisub.app on macOS --- automation/meson.build | 2 +- meson.build | 14 +++- meson_options.txt | 2 + packages/meson.build | 10 ++- .../osx_bundle}/osx-bundle.sed.in | 0 po/meson.build | 4 +- src/meson.build | 1 + tools/osx-bundle.sh | 74 +++++++++---------- 8 files changed, 63 insertions(+), 44 deletions(-) rename {tools => packages/osx_bundle}/osx-bundle.sed.in (100%) diff --git a/automation/meson.build b/automation/meson.build index fff6b45c1..043d40c8c 100644 --- a/automation/meson.build +++ b/automation/meson.build @@ -1,4 +1,4 @@ -automation_dir = get_option('datadir') / 'aegisub' / 'automation' +automation_dir = dataroot / 'automation' install_data( 'autoload/cleantags-autoload.lua', diff --git a/meson.build b/meson.build index be8feb3d5..cf9cfe66e 100644 --- a/meson.build +++ b/meson.build @@ -26,7 +26,19 @@ version_h = custom_target('git_version.h', build_always_stale: true, # has internal check whether target file will be refreshed output: ['git_version.h', 'git_version.xml']) -dataroot = get_option('prefix') / get_option('datadir') / 'aegisub' +if host_machine.system() == 'darwin' and get_option('build_osx_bundle') + prefix = meson.current_build_dir() / 'Aegisub.app' / 'Contents' + bindir = prefix / 'MacOS' + datadir = prefix / 'SharedSupport' + localedir = prefix / 'Resources' +else + prefix = get_option('prefix') + bindir = prefix / get_option('bindir') + datadir = prefix / get_option('datadir') + localedir = prefix / get_option('localedir') +endif +docdir = prefix / 'doc' +dataroot = datadir / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') if host_machine.system() == 'windows' diff --git a/meson_options.txt b/meson_options.txt index fa24825cc..c003fbc1d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -22,3 +22,5 @@ option('credit', type: 'string', value: '', description: 'Build credit shown in option('enable_update_checker', type: 'boolean', value: false, description: 'Enable the update checker') option('update_server', type: 'string', value: 'updates.aegisub.org', description: 'Server to use for the update checker') option('update_url', type: 'string', value: '/trunk', description: 'Base path to use for the update checker') + +option('build_osx_bundle', type: 'boolean', value: 'false', description: 'Package Aegisub.app on OSX') diff --git a/packages/meson.build b/packages/meson.build index f2a02902c..41676bfb2 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -2,6 +2,12 @@ conf_pkg = configuration_data() if host_machine.system() == 'windows' elif host_machine.system() == 'darwin' + # temporary hack until version.sh generates this properly + run_command('cp', meson.source_root() / 'tools' / 'osx-bundle.sed', meson.build_root()) + fontconfig_conf = run_command('pkg-config', '--variable=confdir', 'fontconfig').stdout().strip() + run_target('osx-bundle', + command: ['../tools/osx-bundle.sh', meson.source_root(), meson.build_root(), 'wx-config', fontconfig_conf, '', + get_option('build_osx_bundle') ? 'TRUE' : 'FALSE']) else conf_pkg.set('AEGISUB_COMMAND', 'aegisub') @@ -15,7 +21,7 @@ else type: 'desktop', po_dir: '../po', install: true, - install_dir: join_paths(get_option('datadir'), 'applications')) + install_dir: datadir / 'applications') aegisub_logos = ['16x16.png', '22x22.png', '24x24.png', '32x32.png', '48x48.png', '64x64.png', 'scalable.svg'] @@ -23,6 +29,6 @@ else dir = s.split('.')[0] ext = s.split('.')[1] install_data('desktop' / dir / 'aegisub.' + ext, - install_dir: get_option('datadir') / 'icons' / 'hicolor' / dir / 'apps') + install_dir: datadir / 'icons' / 'hicolor' / dir / 'apps') endforeach endif diff --git a/tools/osx-bundle.sed.in b/packages/osx_bundle/osx-bundle.sed.in similarity index 100% rename from tools/osx-bundle.sed.in rename to packages/osx_bundle/osx-bundle.sed.in diff --git a/po/meson.build b/po/meson.build index 5d61f0efc..5aae381d1 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,2 +1,4 @@ i18n = import('i18n') -i18n.gettext('aegisub') +# This is currently busted on OSX +i18n.gettext('aegisub', + install_dir: localedir) diff --git a/src/meson.build b/src/meson.build index 7e5dc7788..1238f6dea 100644 --- a/src/meson.build +++ b/src/meson.build @@ -220,5 +220,6 @@ aegisub = executable('aegisub', aegisub_src, version_h, acconf, cpp_pch: aegisub_cpp_pch, c_pch: aegisub_c_pch, install: true, + install_dir: bindir, dependencies: deps, gui_app: true) diff --git a/tools/osx-bundle.sh b/tools/osx-bundle.sh index eb82b554f..dbec657d8 100755 --- a/tools/osx-bundle.sh +++ b/tools/osx-bundle.sh @@ -2,22 +2,25 @@ set -e -PKG_DIR=Aegisub.app -SKEL_DIR="packages/osx_bundle" -AEGISUB_BIN="${1}" -SRCDIR=`pwd` -HOME_DIR=`echo ~` -WX_PREFIX=`${2} --prefix` -FONTCONFIG_CONF_DIR="${3}" +SRC_DIR="${1}" +BUILD_DIR="${2}" +WX_PREFIX=`${3} --prefix` +FONTCONFIG_CONF_DIR="${4}" +DICT_DIR="${5}" +MESON_BUILD_OSX_BUNDLE="${6}" -if ! test -d packages/osx_bundle; then - echo - echo "Make sure you're in the toplevel source directory" +if [ "${MESON_BUILD_OSX_BUNDLE}" != "TRUE" ]; then + echo "Project not built with \`build_osx_bundle\`" + echo "Please run \`meson configure -Dbuild_osx_bundle=true\` and rebuild" exit 1 fi +PKG_DIR="${BUILD_DIR}/Aegisub.app" +SKEL_DIR="${SRC_DIR}/packages/osx_bundle" + if test -d "${PKG_DIR}"; then rm -rf "${PKG_DIR}" + echo "Removing old Aegisub.app" fi echo @@ -31,41 +34,34 @@ mkdir -v "${PKG_DIR}/Contents/SharedSupport/dictionaries" echo echo "---- Copying Skel Files ----" -if ! test -f "tools/osx-bundle.sed"; then +if ! test -f "${BUILD_DIR}/osx-bundle.sed"; then echo - echo "NOT FOUND: tools/osx-bundle.sed" + echo "NOT FOUND: ${BUILD_DIR}/osx-bundle.sed" exit 1 fi # used by osx-bundle.sed -find po -name *.po | sed 's/.*\/\(.*\)\.po/ \1<\/string>/; s/RS/YU/' > languages +find "${SRC_DIR}/po" -name *.po | sed 's/.*\/\(.*\)\.po/ \1<\/string>/; s/RS/YU/' > "${BUILD_DIR}/languages" -find ${SKEL_DIR} -type f -not -regex ".*.svn.*" -cp ${SKEL_DIR}/Contents/Resources/*.icns "${PKG_DIR}/Contents/Resources" -cat ${SKEL_DIR}/Contents/Info.plist | sed -f tools/osx-bundle.sed > "${PKG_DIR}/Contents/Info.plist" +#find "${SKEL_DIR}" -type f -not -regex ".*.svn.*" +cp -v ${SKEL_DIR}/Contents/Resources/*.icns "${PKG_DIR}/Contents/Resources" +cat "${SKEL_DIR}/Contents/Info.plist" | sed -f "${BUILD_DIR}/osx-bundle.sed" > "${PKG_DIR}/Contents/Info.plist" -rm languages +rm "${BUILD_DIR}/languages" echo echo "---- Installing files ----" -make install \ - DESTDIR="${PKG_DIR}/Contents" \ - P_DATA="/SharedSupport" \ - P_DOC="/SharedSupport/doc" \ - P_LOCALE="/Resources" \ - P_BINDIR="/MacOS" +CURRENT_DIR=`pwd` +cd ${BUILD_DIR} +ninja install +cd ${CURRENT_DIR} echo echo "---- Copying dictionaries ----" -if test -z "${DICT_DIR}"; then - DICT_DIR="${HOME_DIR}/dict" -fi - -if test -d "${DICT_DIR}"; then - cp -v ${DICT_DIR}/* "${PKG_DIR}/Contents/SharedSupport/dictionaries" +if test -f "${DICT_DIR}"; then + cp -v "${DICT_DIR}/*" "${PKG_DIR}/Contents/SharedSupport/dictionaries" else - echo "WARNING: Dictionaries not found, please set $$DICT_DIR to a directiory" - echo " where the *.aff and *.dic files can be found" + echo "Specified dictionary directory ${DICT_DIR} not found!" fi echo @@ -74,14 +70,15 @@ echo "---- Copying Aegisub locale files ----" # internal so we don't need an aegisub.mo file. mkdir -vp "${PKG_DIR}/Contents/Resources/en.lproj" +# FIXME # 10.8 wants sr_YU rather than sr_RS -mv "${PKG_DIR}/Contents/Resources/sr_RS.lproj" "${PKG_DIR}/Contents/Resources/sr_YU.lproj" -mv "${PKG_DIR}/Contents/Resources/sr_RS@latin.lproj" "${PKG_DIR}/Contents/Resources/sr_YU@latin.lproj" +#mv "${PKG_DIR}/Contents/Resources/sr_RS.lproj" "${PKG_DIR}/Contents/Resources/sr_YU.lproj" +#mv "${PKG_DIR}/Contents/Resources/sr_RS@latin.lproj" "${PKG_DIR}/Contents/Resources/sr_YU@latin.lproj" echo echo "---- Copying WX locale files ----" -for i in `ls -1 po/*.mo|sed "s|po/\(.*\).mo|\1|"`; do +for i in `ls -1 ${SRC_DIR}/po/*.mo|sed "s|po/\(.*\).mo|\1|"`; do WX_MO="${WX_PREFIX}/share/locale/${i}/LC_MESSAGES/wxstd.mo" if ! test -f "${WX_MO}"; then @@ -95,10 +92,9 @@ for i in `ls -1 po/*.mo|sed "s|po/\(.*\).mo|\1|"`; do fi done +echo +echo "---- Fixing libraries ----" +sudo python "${SRC_DIR}/tools/osx-fix-libs.py" "${PKG_DIR}/Contents/MacOS/aegisub" || exit $? echo -echo "---- Libraries ----" -python tools/osx-fix-libs.py "${PKG_DIR}/Contents/MacOS/aegisub" || exit $? - -echo -echo "Done Creating \"${PKG_DIR}\"" +echo "Done creating \"${PKG_DIR}\"" From e3935095153e7846376409b4104b3e4095c8fef1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 12:57:29 -0500 Subject: [PATCH 141/185] meson: default to buildtype debugoptimized --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index cf9cfe66e..73cf0d51f 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', meson_version: '>=0.55.0', - default_options: ['cpp_std=c++11', 'b_lto=true'], + default_options: ['cpp_std=c++11', 'b_lto=true', 'buildtype=debugoptimized'], version: '3.2.2') cmake = import('cmake') From 7d0028799f7ee75f4d857ed5c819286526c32641 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 12:58:07 -0500 Subject: [PATCH 142/185] meson: remove old wx_path and icu_path hacks --- meson.build | 62 +++++++++++++++++++++-------------------------- meson_options.txt | 3 --- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/meson.build b/meson.build index 73cf0d51f..01df6a50f 100644 --- a/meson.build +++ b/meson.build @@ -107,41 +107,35 @@ wx_dep = dependency('wxWidgets', version: '>=3.0.0', if wx_dep.found() deps += wx_dep -else # this will only be hit with msvc - if get_option('wx_path') != '' - deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') - add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') - add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') - else - buildShared = 'ON' - if get_option('default_library') == 'static' - buildShared = 'OFF' +else + build_shared = 'ON' + if get_option('default_library') == 'static' + build_shared = 'OFF' + endif + + wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', + '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson + '-DwxBUILD_SHARED=@0@'.format(build_shared), + '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson + deps += [ + wx.dependency('wxmono'), + wx.dependency('wxzlib'), + wx.dependency('wxpng'), + wx.dependency('wxexpat'), + wx.dependency('wxregex'), + wx.dependency('wxscintilla') + ] + + if host_machine.system() == 'windows' + if cc.has_header('rpc.h') + deps += cc.find_library('rpcrt4', required: true) + else + error('Missing Windows SDK RPC Library (rpc.h / rpcrt4.lib)') endif - - wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', - '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson - '-DwxBUILD_SHARED=@0@'.format(buildShared), - '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson - deps += [ - wx.dependency('wxmono'), - wx.dependency('wxzlib'), - wx.dependency('wxpng'), - wx.dependency('wxexpat'), - wx.dependency('wxregex'), - wx.dependency('wxscintilla') - ] - - if host_machine.system() == 'windows' - if cc.has_header('rpc.h') - deps += cc.find_library('rpcrt4', required: true) - else - error('Missing Windows SDK RPC Library (rpc.h / rpcrt4.lib)') - endif - if cc.has_header('commctrl.h') - deps += cc.find_library('comctl32', required: true) - else - error('Missing Windows SDK Common Controls Library (commctrl.h / comctl32.lib)') - endif + if cc.has_header('commctrl.h') + deps += cc.find_library('comctl32', required: true) + else + error('Missing Windows SDK Common Controls Library (commctrl.h / comctl32.lib)') endif endif endif diff --git a/meson_options.txt b/meson_options.txt index c003fbc1d..4481aa69d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -14,9 +14,6 @@ option('uchardet', type: 'feature', description: 'uchardet character encoding de option('system_luajit', type: 'boolean', value: false, description: 'Force using system luajit') option('local_boost', type: 'boolean', value: false, description: 'Force using locally compiled Boost') -option('icu_path', type: 'string', value: '', description: 'Path to ICU libraries on Windows') -option('wx_path', type: 'string', value: '', description: 'Path to wxWidgets libraries on Windows') - option('credit', type: 'string', value: '', description: 'Build credit shown in program title') option('enable_update_checker', type: 'boolean', value: false, description: 'Enable the update checker') From 60431862faf774bf79d78518e9509ab9f675a5ed Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 8 Nov 2020 13:04:16 -0500 Subject: [PATCH 143/185] meson: allow wx fallback on all platforms --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 01df6a50f..f32659344 100644 --- a/meson.build +++ b/meson.build @@ -102,7 +102,7 @@ endif deps += dependency('zlib') wx_dep = dependency('wxWidgets', version: '>=3.0.0', - required: cxx.get_id() != 'msvc', + required: false, modules: ['std', 'stc', 'gl']) if wx_dep.found() From 454c79c8ccad04fe785c0c37f55cb2f62cbee212 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 12:40:06 -0500 Subject: [PATCH 144/185] Remove travis file --- .travis.yml | 68 ----------------------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 421119d72..000000000 --- a/.travis.yml +++ /dev/null @@ -1,68 +0,0 @@ -sudo: required -dist: trusty -language: cpp - -git: - submodules: false - -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - libasound2-dev - - libfftw3-dev - - libhunspell-dev - - yasm - - libfribidi-dev - - libass-dev - - libicu-dev - - luarocks - - g++-5 - -matrix: - include: - - compiler: gcc - env: BOOST_VERSION=55 - - compiler: gcc - env: BOOST_VERSION=60 - before_install: - - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 --slave /usr/bin/gcov gcov /usr/bin/gcov-5 - -install: - # Can't install these via the apt addon due to the whitelist - - sudo apt-get install -y -qq libffms2-dev libwxgtk3.0-dev libuchardet-dev - - - sudo pip install cpp-coveralls - - sudo luarocks install busted > /dev/null - - sudo luarocks install moonscript > /dev/null - - sudo luarocks install uuid > /dev/null - - - git submodule --quiet init - - git submodule --quiet update vendor/googletest - - - cd vendor - - rm -rf boost - - wget http://sourceforge.net/projects/boost/files/boost/1.${BOOST_VERSION}.0/boost_1_${BOOST_VERSION}_0.tar.bz2/download - - tar xjf download - - mv boost_1_${BOOST_VERSION}_0 boost - - cd boost - - ./bootstrap.sh - - ./b2 -j3 -layout=system threading=multi cxxflags=-std=c++11 link=shared variant=release --without-python --without-iostreams --without-serialization --without-graph --without-log --without-math --without-signals --without-test --without-wave --without-mpi --without-program_options --without-graph_parallel --without-context --without-coroutine --without-random --without-timer --without-date_time - - cd ../.. - -script: - - export CPATH=$(pwd)/vendor/boost - - export LD_LIBRARY_PATH=$(pwd)/vendor/boost/stage/lib:$LD_LIBRARY_PATH - - export CPPFLAGS="-fprofile-arcs -ftest-coverage" - - export LIBS="-lgcov" - - autoreconf -if - - ./configure BOOST_LDFLAGS="-L$(pwd)/vendor/boost/stage/lib" --enable-debug || cat config.log - - make -j3 all test - - coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null - -notifications: - email: - - on_success: change - - on_failure: change - From dc3aaa5df069883ef62f36a8938da2cc2b5a3fd6 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 12:42:12 -0500 Subject: [PATCH 145/185] meson: allow boost fallback under msvc --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index f32659344..6b8e0b128 100644 --- a/meson.build +++ b/meson.build @@ -82,7 +82,7 @@ boost_modules = ['chrono', 'filesystem', 'thread', 'locale', 'regex'] if not get_option('local_boost') boost_dep = dependency('boost', version: '>=1.50.0', modules: boost_modules, - required: cxx.get_id() != 'msvc', + required: false, static: get_option('default_library') == 'static') endif From daa4cc8bbccefead573d07dec8e3f2c01e1ed5c7 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 12:43:26 -0500 Subject: [PATCH 146/185] meson: search for 'system' module with system boost System was made header-only by 1.74, so we can't check for it in the submodule, but when linking with older system boosts we need to make sure it gets linked in --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 6b8e0b128..88e222983 100644 --- a/meson.build +++ b/meson.build @@ -81,7 +81,7 @@ deps += dependency('libass', version: '>=0.9.7', boost_modules = ['chrono', 'filesystem', 'thread', 'locale', 'regex'] if not get_option('local_boost') boost_dep = dependency('boost', version: '>=1.50.0', - modules: boost_modules, + modules: boost_modules + ['system'], required: false, static: get_option('default_library') == 'static') endif From 7d4c99db5a6bb216b77a7d2855d5c11bb4cdde31 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 12:44:54 -0500 Subject: [PATCH 147/185] meson: switch to upstream freetype --- subprojects/freetype2.wrap | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/subprojects/freetype2.wrap b/subprojects/freetype2.wrap index 613f7d627..751c91d3c 100644 --- a/subprojects/freetype2.wrap +++ b/subprojects/freetype2.wrap @@ -1,10 +1,4 @@ -[wrap-file] -directory = freetype-2.9.1 - -source_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz -source_filename = freetype-2.9.1.tar.gz -source_hash = ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce - -patch_url = https://wrapdb.mesonbuild.com/v1/projects/freetype2/2.9.1/1/get_zip -patch_filename = freetype2-2.9.1-1-wrap.zip -patch_hash = 06222607775e707c6d7b8d21ffdb04c7672f676a18c5ebb9880545130ab0407b +[wrap-git] +directory = freetype2 +url = https://git.savannah.gnu.org/git/freetype/freetype2.git +revision = master From 17303d3846957383762117fd08f1e31ecefe97c8 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 12:46:43 -0500 Subject: [PATCH 148/185] actions: add initial ubuntu workflow --- .github/workflows/ci.yml | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..d6f79acee --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,71 @@ +name: Meson CI + +on: + push: + branches: [ meson-vs2019 ] + pull_request: + branches: [ meson-vs2019 ] + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + + strategy: + matrix: + config: + #- { + # name: Windows MSVC, + # os: windows-latest, + # msvc: true + #} + #- { + # name: Windows MinGW, + # os: windows-latest, + # msvc: false + #} + - { + name: "Ubuntu", + os: ubuntu-latest + } + #- { + # name: "macOS", + # os: macos-latest + #} + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + + - uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Setup Meson + run: | + python -m pip install --upgrade pip + pip install meson + + - name: Setup MSVC + if: matrix.config.os == 'windows-latest' && matrix.config.msvc == true + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install dependencies (Windows) + if: matrix.config.os == 'windows-latest' + run: choco install ninja + + - name: Install dependencies (Linux) + if: matrix.config.os == 'ubuntu-latest' + run: sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev + + - name: Configure (Windows) + if: matrix.config.os == 'windows-latest' + run: meson build -Db_vscrt=mdd -Ddefault_library=static + + - name: Configure (Linux) + if: matrix.config.os == 'ubuntu-latest' + run: meson build + + - name: Build + run: meson compile -C build From 0ea6d36fcaf2323de4dba723642b2ef02cdbbae1 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Thu, 19 Nov 2020 17:33:20 +0000 Subject: [PATCH 149/185] meson: don't generate git_version.xml and don't regenerate git_version.h on windows Also fix incorrect use of return outside function. Fixes #80 --- meson.build | 2 +- tools/version.ps1 | 19 ++++--------------- tools/version.sh | 17 +---------------- 3 files changed, 6 insertions(+), 32 deletions(-) diff --git a/meson.build b/meson.build index 88e222983..beecfd707 100644 --- a/meson.build +++ b/meson.build @@ -24,7 +24,7 @@ version_h = custom_target('git_version.h', command: [version_sh, meson.current_build_dir(), meson.current_source_dir()], build_by_default: true, build_always_stale: true, # has internal check whether target file will be refreshed - output: ['git_version.h', 'git_version.xml']) + output: ['git_version.h']) if host_machine.system() == 'darwin' and get_option('build_osx_bundle') prefix = meson.current_build_dir() / 'Aegisub.app' / 'Contents' diff --git a/tools/version.ps1 b/tools/version.ps1 index 3d0c62655..f02e47dc6 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -28,7 +28,6 @@ if ([System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $BuildRo $BuildRoot = Join-Path $repositoryRootPath 'build' } $gitVersionHeaderPath = Join-Path $BuildRoot 'git_version.h' -$gitVersionXmlPath = Join-Path $BuildRoot 'git_version.xml' $version = @{} if (Test-Path $gitVersionHeaderPath) { @@ -50,6 +49,10 @@ $gitHash = git -C $repositoryRootPath rev-parse --short HEAD 2>$null $gitVersionString = $gitRevision, $gitBranch, $gitHash -join '-' $exactGitTag = git -C $repositoryRootPath describe --exact-match --tags 2>$null +if ($gitVersionString -eq $version['BUILD_GIT_VERSION_STRING']) { + exit 0 +} + if ($exactGitTag -match $semVerMatch) { $version['TAGGED_RELEASE'] = $true $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] @@ -84,17 +87,3 @@ $version.GetEnumerator() | %{ } "#define $($_.Key) $($fmtValue)" } | Out-File -FilePath $gitVersionHeaderPath -Encoding utf8 - -$gitVersionXml = [xml]@' - - - - - - - -'@ - -$gitVersionXml.Project.PropertyGroup.GitVersionNumber = $gitRevision.ToString() -$gitVersionXml.Project.PropertyGroup.GitVersionString = $gitVersionString -$gitVersionXml.Save($gitVersionXmlPath) diff --git a/tools/version.sh b/tools/version.sh index a2d3c7b39..485f45113 100755 --- a/tools/version.sh +++ b/tools/version.sh @@ -10,8 +10,7 @@ if ! test -d "${srcdir}/.git"; then export $2=$(echo $3 | sed 's/"//g') done < "${version_h_path}" if test x$BUILD_GIT_VERSION_NUMBER != x -a x$BUILD_GIT_VERSION_STRING != x; then - export VERSION_SOURCE="from cached git_version.h" - return 0 + exit 0 else echo "invalid git_version.h" exit 2 @@ -61,17 +60,3 @@ in "${new_version_h}");; *) echo "${new_version_h}" > "${version_h_path}" esac - -export BUILD_GIT_VERSION_NUMBER="${git_revision}" -export BUILD_GIT_VERSION_STRING="${git_version_str}" -export VERSION_SOURCE="from git" - -cat << EOF > "${builddir}/git_version.xml" - - - - ${git_revision} - ${git_version_str} - - -EOF From 8bb8b34fe7a5bd69fa6c58ad07a86a65de083259 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Thu, 19 Nov 2020 18:37:41 +0000 Subject: [PATCH 150/185] meson: set _DEBUG on all platforms for debug builds --- meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meson.build b/meson.build index beecfd707..e3f0aef76 100644 --- a/meson.build +++ b/meson.build @@ -45,6 +45,10 @@ if host_machine.system() == 'windows' add_project_arguments('-DNOMINMAX', '-D_WIN32_WINNT=0x0602', language: 'cpp') endif +if get_option('debug') + add_project_arguments('-D_DEBUG', language: 'cpp') +endif + conf = configuration_data() conf.set_quoted('P_DATA', dataroot) if get_option('credit') != '' From 6ff17293035bda123b2356609b1d244f8add454c Mon Sep 17 00:00:00 2001 From: Myaamori Date: Sun, 22 Nov 2020 19:54:56 +0000 Subject: [PATCH 151/185] meson: update/promote libass dependency wraps --- subprojects/freetype2.wrap | 3 +++ subprojects/fribidi.wrap | 3 +++ subprojects/libpng.wrap | 10 ++++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/subprojects/freetype2.wrap b/subprojects/freetype2.wrap index 751c91d3c..a86e85e54 100644 --- a/subprojects/freetype2.wrap +++ b/subprojects/freetype2.wrap @@ -2,3 +2,6 @@ directory = freetype2 url = https://git.savannah.gnu.org/git/freetype/freetype2.git revision = master + +[provide] +freetype = freetype2_dep diff --git a/subprojects/fribidi.wrap b/subprojects/fribidi.wrap index e3f62a688..55458fca9 100644 --- a/subprojects/fribidi.wrap +++ b/subprojects/fribidi.wrap @@ -2,3 +2,6 @@ directory = fribidi url = https://github.com/fribidi/fribidi.git revision = master + +[provide] +fribidi = libfribidi_dep diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap index b7af9091c..8c7e3fdce 100644 --- a/subprojects/libpng.wrap +++ b/subprojects/libpng.wrap @@ -1,10 +1,12 @@ [wrap-file] directory = libpng-1.6.37 - source_url = https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz source_filename = libpng-1.6.37.tar.gz source_hash = ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.37/3/get_zip +patch_filename = libpng-1.6.37-3-wrap.zip +patch_hash = 6c9f32fd9150b3a96ab89be52af664e32207e10aa9f5fb9aa015989ee2dd7100 + +[provide] +libpng = libpng_dep -patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.37/1/get_zip -patch_filename = libpng-1.6.37-1-wrap.zip -patch_hash = 9a863ae8a5657315a484c94c51f9f636b1fb9f49a15196cc896b72e5f21d78f0 From 93b2794c85ff3c9cec604432e8ccaa761f6144f5 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Sun, 22 Nov 2020 18:17:19 +0000 Subject: [PATCH 152/185] Correct wxStyledTextCtrl::StartStyling for wx 3.1 --- src/dialog_fonts_collector.cpp | 6 +++++- src/dialog_translation.cpp | 6 +++++- src/subs_edit_ctrl.cpp | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/dialog_fonts_collector.cpp b/src/dialog_fonts_collector.cpp index 78ac20ef5..d4d675e8a 100644 --- a/src/dialog_fonts_collector.cpp +++ b/src/dialog_fonts_collector.cpp @@ -400,7 +400,11 @@ void DialogFontsCollector::OnAddText(ValueEvent &event) { auto const& utf8 = str.second.utf8_str(); collection_log->AppendTextRaw(utf8.data(), utf8.length()); if (str.first) { - collection_log->StartStyling(pos, 31); +#if wxVERSION_NUMBER >= 3100 + collection_log->StartStyling(pos); +#else + collection_log->StartStyling(pos, 255); +#endif collection_log->SetStyling(utf8.length(), str.first); } collection_log->GotoPos(pos + utf8.length()); diff --git a/src/dialog_translation.cpp b/src/dialog_translation.cpp index c953b6874..b47d01b4c 100644 --- a/src/dialog_translation.cpp +++ b/src/dialog_translation.cpp @@ -246,7 +246,11 @@ void DialogTranslation::UpdateDisplay() { int initial_pos = original_text->GetLength(); original_text->AppendTextRaw(block->GetText().c_str()); if (i == cur_block) { - original_text->StartStyling(initial_pos, 31); +#if wxVERSION_NUMBER >= 3100 + original_text->StartStyling(initial_pos); +#else + original_text->StartStyling(initial_pos, 255); +#endif original_text->SetStyling(block->GetText().size(), 1); } } diff --git a/src/subs_edit_ctrl.cpp b/src/subs_edit_ctrl.cpp index 4618ea409..d744900eb 100644 --- a/src/subs_edit_ctrl.cpp +++ b/src/subs_edit_ctrl.cpp @@ -261,7 +261,11 @@ void SubsTextEditCtrl::UpdateStyle() { cursor_pos = -1; UpdateCallTip(); - StartStyling(0,255); +#if wxVERSION_NUMBER >= 3100 + StartStyling(0); +#else + StartStyling(0, 255); +#endif if (!OPT_GET("Subtitle/Highlight/Syntax")->GetBool()) { SetStyling(line_text.size(), 0); From aecf09a64d27f378e7fe2d721bc51f4ba49ded4d Mon Sep 17 00:00:00 2001 From: Myaamori Date: Sun, 22 Nov 2020 18:18:19 +0000 Subject: [PATCH 153/185] Use wxSizer::RepositionChildren instead of RecalcSizes on wx 3.1.3+ --- src/frame_main.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/frame_main.cpp b/src/frame_main.cpp index b35c32960..12172eb41 100644 --- a/src/frame_main.cpp +++ b/src/frame_main.cpp @@ -240,8 +240,12 @@ void FrameMain::SetDisplayMode(int video, int audio) { TopSizer->Show(videoBox, showVideo, true); ToolsSizer->Show(audioBox, showAudio, true); - MainSizer->CalcMin(); + auto min_size = MainSizer->CalcMin(); +#if wxVERSION_NUMBER >= 3103 + MainSizer->RepositionChildren(min_size); +#else MainSizer->RecalcSizes(); +#endif MainSizer->Layout(); Layout(); From abec21f4e0a06a581685be545352d382da0db421 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Sun, 22 Nov 2020 18:21:23 +0000 Subject: [PATCH 154/185] meson: fix wx subproject on Linux --- meson.build | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index e3f0aef76..4961e4a7b 100644 --- a/meson.build +++ b/meson.build @@ -120,17 +120,21 @@ else wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson '-DwxBUILD_SHARED=@0@'.format(build_shared), + '-DwxUSE_WEBVIEW=OFF', # breaks build on linux '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson deps += [ wx.dependency('wxmono'), - wx.dependency('wxzlib'), - wx.dependency('wxpng'), - wx.dependency('wxexpat'), wx.dependency('wxregex'), wx.dependency('wxscintilla') ] if host_machine.system() == 'windows' + deps += [ + wx.dependency('wxzlib'), + wx.dependency('wxpng'), + wx.dependency('wxexpat') + ] + if cc.has_header('rpc.h') deps += cc.find_library('rpcrt4', required: true) else From 3f1c315dfedab917ed9bca93ba6155f6bdbc4df5 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 13:08:33 -0500 Subject: [PATCH 155/185] meson: force zlib subproject for freetype --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6f79acee..7bd2ce18d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' - run: meson build -Db_vscrt=mdd -Ddefault_library=static + run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' From 8a09d00081f6baf57eee4f205e92d6849d0279cb Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 13:10:21 -0500 Subject: [PATCH 156/185] actions: enable MSVC --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7bd2ce18d..ae08ccb87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,11 +14,11 @@ jobs: strategy: matrix: config: - #- { - # name: Windows MSVC, - # os: windows-latest, - # msvc: true - #} + - { + name: Windows MSVC, + os: windows-latest, + msvc: true + } #- { # name: Windows MinGW, # os: windows-latest, From 18ccc1d7f00b61ffbee69a5693c37dc43c5572ea Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 14:43:40 -0500 Subject: [PATCH 157/185] meson: disable building ffmpeg tests --- subprojects/packagefiles/ffms2/meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/subprojects/packagefiles/ffms2/meson.build b/subprojects/packagefiles/ffms2/meson.build index a7328ea8d..8c6a07851 100644 --- a/subprojects/packagefiles/ffms2/meson.build +++ b/subprojects/packagefiles/ffms2/meson.build @@ -3,11 +3,11 @@ project('ffms2', 'cpp', version: '2.40.0') deps = [] deps += dependency('zlib') -deps += dependency('libavformat') -deps += dependency('libavcodec') -deps += dependency('libswscale') -deps += dependency('libavutil') -deps += dependency('libswresample') +deps += dependency('libavformat', default_options: ['tests=disabled']) +deps += dependency('libavcodec', default_options: ['tests=disabled']) +deps += dependency('libswscale', default_options: ['tests=disabled']) +deps += dependency('libavutil', default_options: ['tests=disabled']) +deps += dependency('libswresample', default_options: ['tests=disabled']) args = ['-D_FILE_OFFSET_BITNS=64', '-DFFMS_EXPORTS', '-D__STDC_CONSTANT_MACROS'] usage_args = [] From f91f6f07438d833579295c87b64dbeebc4b5edf0 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 15:41:56 -0500 Subject: [PATCH 158/185] meson: pass png=enable to freetype2 to work around bug See https://savannah.nongnu.org/bugs/?59458 --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae08ccb87..0b6d8879e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,8 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' - run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib + # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 + run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib -Dfreetype2:png=enabled - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' From cd0eee968f961372335828dacce6e2338dfb500d Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 15:59:26 -0500 Subject: [PATCH 159/185] meson: minor subproject cleanup, update gitignore --- .gitignore | 29 +++++++++++++++++------------ subprojects/harfbuzz.wrap | 3 +++ subprojects/iconv/meson.build | 2 +- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index b8181d675..854d4d565 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ packages/desktop/aegisub.desktop packages/desktop/aegisub.desktop.template -packages/win_installer/vendor src/libresrc/bitmap.cpp src/libresrc/bitmap.h src/libresrc/default_config.cpp @@ -26,15 +25,21 @@ tools/repack-thes-dict.dSYM # Meson build*/ -subprojects/freetype* -subprojects/fribidi -subprojects/harfbuzz -subprojects/libass -subprojects/libpng* -subprojects/packagecache -subprojects/zlib* -subprojects/libass -subprojects/icu +subprojects/boost*/ +subprojects/cairo* subprojects/ffmpeg -subprojects/ffms2* -subprojects/boost* +subprojects/ffms2-* +subprojects/fontconfig* +subprojects/freetype2 +subprojects/fribidi +subprojects/glib* +subprojects/harfbuzz +subprojects/icu +subprojects/libass +subprojects/libffi* +subprojects/libpng-* +subprojects/nasm-* +subprojects/packagecache +subprojects/proxy-libintl* +subprojects/wxWidgets +subprojects/zlib-* diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index 3d320e894..08bfb0850 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -2,3 +2,6 @@ directory = harfbuzz url = https://github.com/harfbuzz/harfbuzz revision = master + +[provide] +harfbuzz = libharfbuzz_dep diff --git a/subprojects/iconv/meson.build b/subprojects/iconv/meson.build index 66cdc9806..458cd9d51 100644 --- a/subprojects/iconv/meson.build +++ b/subprojects/iconv/meson.build @@ -1,5 +1,5 @@ project('iconv', 'c', license: 'LGPL', - meson_version: '>=0.49.0') + meson_version: '>=0.54.0') iconv_src = [ 'libcharset/localcharset.c', From 4dc65303a1291e6037272f60b299292cca30adb4 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 16:49:04 -0500 Subject: [PATCH 160/185] actions: force default_library=static for freetype --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b6d8879e..12890a584 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 - run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib -Dfreetype2:png=enabled + run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib -Dfreetype2:png=enabled -Dfreetype2:default_library=static - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' From c5111b492b9ee4802cefa2717255eed1f0bd07d8 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 15 Nov 2020 19:26:59 -0500 Subject: [PATCH 161/185] actions: force fallback for harfbuzz --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12890a584..705b545d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 - run: meson build -Db_vscrt=mdd -Ddefault_library=static -Dfreetype2:zlib=system --force-fallback-for=zlib -Dfreetype2:png=enabled -Dfreetype2:default_library=static + run: meson build -Db_vscrt=mdd -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' From 89c788a4b3673b1abed5492b9c059726b2f70913 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 21 Nov 2020 15:44:46 -0500 Subject: [PATCH 162/185] autotools: remove remaining makefiles --- packages/desktop/Makefile | 26 -- po/Makefile | 24 -- src/Makefile | 208 ---------- src/libresrc/Makefile | 37 -- subprojects/luabins/Makefile | 8 - subprojects/luajit/Makefile | 15 - subprojects/luajit/src/Makefile | 689 -------------------------------- tools/Makefile | 17 - 8 files changed, 1024 deletions(-) delete mode 100644 packages/desktop/Makefile delete mode 100644 po/Makefile delete mode 100644 src/Makefile delete mode 100644 src/libresrc/Makefile delete mode 100644 subprojects/luabins/Makefile delete mode 100644 subprojects/luajit/Makefile delete mode 100644 subprojects/luajit/src/Makefile delete mode 100644 tools/Makefile diff --git a/packages/desktop/Makefile b/packages/desktop/Makefile deleted file mode 100644 index 47a21a63a..000000000 --- a/packages/desktop/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../../header.mk -DESKTOP_SRC := $(d) - -ICONS = $(sort $(wildcard $(d)*.png)) $(sort $(wildcard $(d)*.svg)) -ICONS_INSTALLED = $(DESTDIR)$(P_ICON)/hicolor/%/apps/aegisub. - -DESKTOP_FILE := $(d)aegisub.desktop -DESKTOP_FILE_PO := $(d)../../po -DESKTOP_FILE_INSTALLED = $(DESTDIR)$(P_DESKTOP)/$(notdir $(DESKTOP_FILE)) - -DISTCLEANFILES += $(DESKTOP_FILE) - -%.desktop: %.desktop.template $(DESKTOP_FILE_PO) - intltool-merge --quiet --desktop-style $(DESKTOP_FILE_PO) $< $@ - -$(ICONS_INSTALLED)png: $(d)%.png ; $(MKDIR_INSTALL) -$(ICONS_INSTALLED)svg: $(d)%.svg ; $(MKDIR_INSTALL) -$(DESKTOP_FILE_INSTALLED): $(DESKTOP_FILE) ; $(MKDIR_INSTALL) - -ifneq (yes, $(BUILD_DARWIN)) -install: \ - $(DESKTOP_FILE_INSTALLED) \ - $(patsubst %.png, $(ICONS_INSTALLED)png, $(patsubst %.svg, $(ICONS_INSTALLED)svg, $(notdir $(ICONS)))) -endif - -include $(TOP)Makefile.target diff --git a/po/Makefile b/po/Makefile deleted file mode 100644 index 4c7832b6a..000000000 --- a/po/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -.SUFFIXES: .po .mo - -PO := $(wildcard $(d)*.po) -MO := $(PO:po=mo) - -ifeq (yes, $(BUILD_DARWIN)) -MO_INSTALLED = $(DESTDIR)$(P_LOCALE)/%.lproj/$(AEGISUB_CATALOG).mo -else -MO_INSTALLED = $(DESTDIR)$(P_LOCALE)/%/LC_MESSAGES/$(AEGISUB_CATALOG).mo -endif - -%.mo: %.po - $(BIN_MSGFMT) -o $@ $< - -$(MO_INSTALLED): $(d)%.mo ; $(MKDIR_INSTALL) - -all: $(MO) -install: $(patsubst %.mo, $(MO_INSTALLED), $(notdir $(MO))) - -CLEANFILES += $(MO) - -include $(TOP)Makefile.target diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 38a809c06..000000000 --- a/src/Makefile +++ /dev/null @@ -1,208 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -PROGRAM += $(d)src - -src_CPPFLAGS := -I$(d) -I.. -I$(d)include -I$(TOP)libaegisub/include -I$(TOP)build \ - $(CFLAGS_PTHREAD) $(CFLAGS_FFTW3) $(CFLAGS_ICU) $(CPPFLAGS_BOOST) -src_CXXFLAGS := $(CXXFLAGS_WX) -src_LIBS := $(LIBS_GL) $(LIBS_PTHREAD) $(LIBS_WX) $(LIBS_FREETYPE) \ - $(LIBS_LIBASS) $(LIBS_FONTCONFIG) $(LIBS_FFTW3) $(LIBS_BOOST) $(LIBS_ICU) -src_PCH := $(d)agi_pre.h -src_INSTALLNAME := $(AEGISUB_COMMAND) - -src_OBJ := \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)command/*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)dialog_*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)subtitle_format*.cpp))) \ - $(patsubst %.cpp,%.o,$(sort $(wildcard $(d)visual_tool*.cpp))) \ - $(d)MatroskaParser.o \ - $(d)aegisublocale.o \ - $(d)ass_attachment.o \ - $(d)ass_dialogue.o \ - $(d)ass_entry.o \ - $(d)ass_export_filter.o \ - $(d)ass_exporter.o \ - $(d)ass_file.o \ - $(d)ass_karaoke.o \ - $(d)ass_override.o \ - $(d)ass_parser.o \ - $(d)ass_style.o \ - $(d)ass_style_storage.o \ - $(d)async_video_provider.o \ - $(d)audio_box.o \ - $(d)audio_colorscheme.o \ - $(d)audio_controller.o \ - $(d)audio_display.o \ - $(d)audio_karaoke.o \ - $(d)audio_marker.o \ - $(d)audio_player.o \ - $(d)audio_provider_factory.o \ - $(d)audio_renderer.o \ - $(d)audio_renderer_spectrum.o \ - $(d)audio_renderer_waveform.o \ - $(d)audio_timing_dialogue.o \ - $(d)audio_timing_karaoke.o \ - $(d)auto4_base.o \ - $(d)auto4_lua.o \ - $(d)auto4_lua_assfile.o \ - $(d)auto4_lua_dialog.o \ - $(d)auto4_lua_progresssink.o \ - $(d)avisynth_wrap.o \ - $(d)base_grid.o \ - $(d)charset_detect.o \ - $(d)colorspace.o \ - $(d)colour_button.o \ - $(d)compat.o \ - $(d)context.o \ - $(d)crash_writer.o \ - $(d)export_fixstyle.o \ - $(d)export_framerate.o \ - $(d)fft.o \ - $(d)font_file_lister.o \ - $(d)frame_main.o \ - $(d)gl_text.o \ - $(d)gl_wrap.o \ - $(d)grid_column.o \ - $(d)help_button.o \ - $(d)hotkey.o \ - $(d)hotkey_data_view_model.o \ - $(d)initial_line_state.o \ - $(d)main.o \ - $(d)menu.o \ - $(d)mkv_wrap.o \ - $(d)pen.o \ - $(d)persist_location.o \ - $(d)preferences.o \ - $(d)preferences_base.o \ - $(d)project.o \ - $(d)resolution_resampler.o \ - $(d)search_replace_engine.o \ - $(d)selection_controller.o \ - $(d)spellchecker.o \ - $(d)spline.o \ - $(d)spline_curve.o \ - $(d)string_codec.o \ - $(d)subs_controller.o \ - $(d)subs_edit_box.o \ - $(d)subs_edit_ctrl.o \ - $(d)subs_preview.o \ - $(d)subtitles_provider.o \ - $(d)subtitles_provider_libass.o \ - $(d)text_file_reader.o \ - $(d)text_file_writer.o \ - $(d)text_selection_controller.o \ - $(d)thesaurus.o \ - $(d)timeedit_ctrl.o \ - $(d)toggle_bitmap.o \ - $(d)toolbar.o \ - $(d)tooltip_manager.o \ - $(d)utils.o \ - $(d)validators.o \ - $(d)vector2d.o \ - $(d)version.o \ - $(d)video_box.o \ - $(d)video_controller.o \ - $(d)video_display.o \ - $(d)video_frame.o \ - $(d)video_out_gl.o \ - $(d)video_provider_cache.o \ - $(d)video_provider_dummy.o \ - $(d)video_provider_manager.o \ - $(d)video_provider_yuv4mpeg.o \ - $(d)video_slider.o \ - $(d)visual_feature.o \ - $(LIBS_LUA) \ - $(TOP)lib/libaegisub.a \ - $(TOP)lib/libluabins.a \ - $(TOP)lib/libresrc.a \ - -ifeq (yes, $(BUILD_DARWIN)) -src_OBJ += $(d)font_file_lister_coretext.o -src_OBJ += $(patsubst %.mm,%.o,$(sort $(wildcard $(d)osx/*.mm))) -$(d)font_file_lister_coretext.o_FLAGS := -fobjc-arc -else -src_OBJ += $(d)font_file_lister_fontconfig.o -endif - -############### -# AUDIO PLAYERS -############### -$(d)audio_player_alsa.o_FLAGS := $(CFLAGS_ALSA) -$(d)audio_player_portaudio.o_FLAGS := $(CFLAGS_PORTAUDIO) -$(d)audio_player_pulse.o_FLAGS := $(CFLAGS_LIBPULSE) -$(d)audio_player_openal.o_FLAGS := $(CFLAGS_OPENAL) -$(d)audio_player_oss.o_FLAGS := $(CFLAGS_OSS) - -ifeq (yes, $(HAVE_ALSA)) -src_LIBS += $(LIBS_ALSA) -src_OBJ += $(d)audio_player_alsa.o -endif - -ifeq (yes, $(HAVE_PORTAUDIO)) -src_LIBS += $(LIBS_PORTAUDIO) -src_OBJ += $(d)audio_player_portaudio.o -endif - -ifeq (yes, $(HAVE_LIBPULSE)) -src_LIBS += $(LIBS_LIBPULSE) -src_OBJ += $(d)audio_player_pulse.o -endif - -ifeq (yes, $(HAVE_OPENAL)) -src_LIBS += $(LIBS_OPENAL) -src_OBJ += $(d)audio_player_openal.o -endif - -ifeq (yes, $(HAVE_OSS)) -src_OBJ += $(d)audio_player_oss.o -endif - -####################### -# AUDIO / VIDEO SUPPORT -####################### -ifeq (yes, $(HAVE_FFMS2)) -$(d)audio_provider_ffmpegsource.o_FLAGS := $(CFLAGS_FFMS2) -$(d)video_provider_ffmpegsource.o_FLAGS := $(CFLAGS_FFMS2) -$(d)ffmpegsource_common.o_FLAGS := $(CFLAGS_FFMS2) -$(d)preferences.o_FLAGS := $(CFLAGS_FFMS2) -src_LIBS += $(LIBS_FFMS2) -src_OBJ += \ - $(d)audio_provider_ffmpegsource.o \ - $(d)video_provider_ffmpegsource.o \ - $(d)ffmpegsource_common.o -endif - -############## -# MISCELLANOUS -############## -ifeq (yes, $(HAVE_HUNSPELL)) -$(d)spellchecker_hunspell.o_FLAGS := $(CFLAGS_HUNSPELL) -src_LIBS += $(LIBS_HUNSPELL) -src_OBJ += $(d)spellchecker_hunspell.o -endif - -ifeq (yes, $(HAVE_UCHARDET)) -src_LIBS += $(LIBS_UCHARDET) -endif - -##################### -# SOURCE-LEVEL CFLAGS -##################### -$(d)MatroskaParser.o_FLAGS := -Wno-sometimes-uninitialized -$(d)audio_player.o_FLAGS := $(CFLAGS_ALSA) $(CFLAGS_PORTAUDIO) $(CFLAGS_LIBPULSE) $(CFLAGS_OPENAL) -$(d)audio_provider_factory.o_FLAGS := $(CFLAGS_FFMS2) -$(d)auto4_base.o_FLAGS := $(CFLAGS_FREETYPE) -$(d)charset_detect.o_FLAGS := -D_X86_ -$(d)font_file_lister_fontconfig.o_FLAGS := $(CFLAGS_FONTCONFIG) -$(d)subtitles_provider.o_FLAGS := $(CFLAGS_LIBASS) -$(d)subtitles_provider_libass.o_FLAGS := $(CFLAGS_LIBASS) -Wno-c++11-narrowing -$(d)text_file_reader.o_FLAGS := -D_X86_ -$(d)video_provider_manager.o_FLAGS := $(CFLAGS_FFMS2) -$(d)auto4_lua.o_FLAGS := $(CFLAGS_LUA) -$(d)auto4_lua_assfile.o_FLAGS := $(CFLAGS_LUA) -$(d)auto4_lua_dialog.o_FLAGS := $(CFLAGS_LUA) -$(d)auto4_lua_progresssink.o_FLAGS := $(CFLAGS_LUA) - -$(src_OBJ): $(d)libresrc/bitmap.h $(d)libresrc/default_config.h - -include $(d)libresrc/Makefile diff --git a/src/libresrc/Makefile b/src/libresrc/Makefile deleted file mode 100644 index 8b6d19595..000000000 --- a/src/libresrc/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../../header.mk - -LIB += resrc - -resrc_CPPFLAGS := -I$(TOP) -I$(d) $(CPPFLAGS_WX) -resrc_OBJ := \ - $(d)bitmap.o \ - $(d)default_config.o \ - $(d)libresrc.o - -$(resrc_OBJ): $(d)default_config.h $(d)bitmap.h $(d)default_config.cpp $(d)bitmap.cpp - -RESPACK := cd $(TOP)src/libresrc; $(BIN_LUA) $(TOP)tools/respack.lua - -$(d)bitmap.cpp: $(d)bitmap.h -$(d)default_config.cpp: $(d)default_config.h - -$(d)bitmap.h: $(TOP)tools/respack.lua $(d)../bitmaps/button - $(RESPACK) ../bitmaps/manifest.respack bitmap.cpp bitmap.h - -ifeq (yes, $(BUILD_DARWIN)) -$(d)default_config.h: $(TOP)tools/respack.lua $(d)*.json $(d)osx/*.json - $(RESPACK) manifest_osx.respack default_config.cpp default_config.h -else -$(d)default_config.h: $(TOP)tools/respack.lua $(d)*.json - $(RESPACK) manifest.respack default_config.cpp default_config.h -endif - -CLEANFILES += \ - $(d)bitmap.cpp \ - $(d)bitmap.h \ - $(d)default_config.cpp \ - $(d)default_config.h - -DISTCLEANFILES += $(d)default_config_platform.json - -include $(TOP)Makefile.target diff --git a/subprojects/luabins/Makefile b/subprojects/luabins/Makefile deleted file mode 100644 index b4b01036e..000000000 --- a/subprojects/luabins/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../../header.mk - -luabins_OBJ := $(patsubst %.c,%.o,$(sort $(wildcard $(d)src/*.c))) -luabins_CPPFLAGS := $(CFLAGS_LUA) - -LIB += luabins - -include $(TOP)Makefile.target diff --git a/subprojects/luajit/Makefile b/subprojects/luajit/Makefile deleted file mode 100644 index 67c67f727..000000000 --- a/subprojects/luajit/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../../header.mk - -LUAJIT_DIR := $(abspath $(d)src) - -$(LIBS_LUA): $(LUAJIT_DIR)/host/minilua - $(MAKE) -C $(LUAJIT_DIR) amalg V=$(V) - -$(LUAJIT_DIR)/host/minilua: - $(MAKE) -C $(LUAJIT_DIR) host/minilua V=$(V) - -clean-luajit: - $(MAKE) -C $(LUAJIT_DIR) clean - -clean: clean-luajit -distclean: clean-luajit diff --git a/subprojects/luajit/src/Makefile b/subprojects/luajit/src/Makefile deleted file mode 100644 index 16ddd9a17..000000000 --- a/subprojects/luajit/src/Makefile +++ /dev/null @@ -1,689 +0,0 @@ -############################################################################## -# LuaJIT Makefile. Requires GNU Make. -# -# Please read doc/install.html before changing any variables! -# -# Suitable for POSIX platforms (Linux, *BSD, OSX etc.). -# Also works with MinGW and Cygwin on Windows. -# Please check msvcbuild.bat for building with MSVC on Windows. -# -# Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h -############################################################################## - -MAJVER= 2 -MINVER= 0 -RELVER= 5 -ABIVER= 5.1 -NODOTABIVER= 51 - -############################################################################## -############################# COMPILER OPTIONS ############################# -############################################################################## -# These options mainly affect the speed of the JIT compiler itself, not the -# speed of the JIT-compiled code. Turn any of the optional settings on by -# removing the '#' in front of them. Make sure you force a full recompile -# with "make clean", followed by "make" if you change any options. -# -DEFAULT_CC = gcc -# -# LuaJIT builds as a native 32 or 64 bit binary by default. -CC= $(DEFAULT_CC) -# -# Use this if you want to force a 32 bit build on a 64 bit multilib OS. -#CC= $(DEFAULT_CC) -m32 -# -# Since the assembler part does NOT maintain a frame pointer, it's pointless -# to slow down the C part by not omitting it. Debugging, tracebacks and -# unwinding are not affected -- the assembler part has frame unwind -# information and GCC emits it where needed (x64) or with -g (see CCDEBUG). -CCOPT= -O2 -fomit-frame-pointer -# Use this if you want to generate a smaller binary (but it's slower): -#CCOPT= -Os -fomit-frame-pointer -# Note: it's no longer recommended to use -O3 with GCC 4.x. -# The I-Cache bloat usually outweighs the benefits from aggressive inlining. -# -# Target-specific compiler options: -# -# x86 only: it's recommended to compile at least for i686. Better yet, -# compile for an architecture that has SSE2, too (-msse -msse2). -# -# x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute -# the binaries to a different machine you could also use: -march=native -# -CCOPT_x86= -march=i686 -CCOPT_x64= -CCOPT_arm= -CCOPT_ppc= -CCOPT_ppcspe= -CCOPT_mips= -# -CCDEBUG= -# Uncomment the next line to generate debug information: -#CCDEBUG= -g -# -CCWARN= -Wall -# Uncomment the next line to enable more warnings: -#CCWARN+= -Wextra -Wdeclaration-after-statement -Wredundant-decls -Wshadow -Wpointer-arith -# -############################################################################## - -############################################################################## -################################ BUILD MODE ################################ -############################################################################## -# The default build mode is mixed mode on POSIX. On Windows this is the same -# as dynamic mode. -# -# Mixed mode creates a static + dynamic library and a statically linked luajit. -#BUILDMODE= mixed -# -# Static mode creates a static library and a statically linked luajit. -BUILDMODE= static -# -# Dynamic mode creates a dynamic library and a dynamically linked luajit. -# Note: this executable will only run when the library is installed! -#BUILDMODE= dynamic -# -############################################################################## - -############################################################################## -################################# FEATURES ################################# -############################################################################## -# Enable/disable these features as needed, but make sure you force a full -# recompile with "make clean", followed by "make". -XCFLAGS= -# -# Permanently disable the FFI extension to reduce the size of the LuaJIT -# executable. But please consider that the FFI library is compiled-in, -# but NOT loaded by default. It only allocates any memory, if you actually -# make use of it. -#XCFLAGS+= -DLUAJIT_DISABLE_FFI -# -# Features from Lua 5.2 that are unlikely to break existing code are -# enabled by default. Some other features that *might* break some existing -# code (e.g. __pairs or os.execute() return values) can be enabled here. -# Note: this does not provide full compatibility with Lua 5.2 at this time. -XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT -# -# Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter. -#XCFLAGS+= -DLUAJIT_DISABLE_JIT -# -# Some architectures (e.g. PPC) can use either single-number (1) or -# dual-number (2) mode. Uncomment one of these lines to override the -# default mode. Please see LJ_ARCH_NUMMODE in lj_arch.h for details. -#XCFLAGS+= -DLUAJIT_NUMMODE=1 -#XCFLAGS+= -DLUAJIT_NUMMODE=2 -# -############################################################################## - -############################################################################## -############################ DEBUGGING SUPPORT ############################# -############################################################################## -# Enable these options as needed, but make sure you force a full recompile -# with "make clean", followed by "make". -# Note that most of these are NOT suitable for benchmarking or release mode! -# -# Use the system provided memory allocator (realloc) instead of the -# bundled memory allocator. This is slower, but sometimes helpful for -# debugging. This option cannot be enabled on x64, since realloc usually -# doesn't return addresses in the right address range. -# OTOH this option is mandatory for Valgrind's memcheck tool on x64 and -# the only way to get useful results from it for all other architectures. -#XCFLAGS+= -DLUAJIT_USE_SYSMALLOC -# -# This define is required to run LuaJIT under Valgrind. The Valgrind -# header files must be installed. You should enable debug information, too. -# Use --suppressions=lj.supp to avoid some false positives. -#XCFLAGS+= -DLUAJIT_USE_VALGRIND -# -# This is the client for the GDB JIT API. GDB 7.0 or higher is required -# to make use of it. See lj_gdbjit.c for details. Enabling this causes -# a non-negligible overhead, even when not running under GDB. -#XCFLAGS+= -DLUAJIT_USE_GDBJIT -# -# Turn on assertions for the Lua/C API to debug problems with lua_* calls. -# This is rather slow -- use only while developing C libraries/embeddings. -#XCFLAGS+= -DLUA_USE_APICHECK -# -# Turn on assertions for the whole LuaJIT VM. This significantly slows down -# everything. Use only if you suspect a problem with LuaJIT itself. -#XCFLAGS+= -DLUA_USE_ASSERT -# -############################################################################## -# You probably don't need to change anything below this line! -############################################################################## - -############################################################################## -# Host system detection. -############################################################################## - -ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM)) - HOST_SYS= Windows - HOST_RM= del -else - HOST_SYS:= $(shell uname -s) - ifneq (,$(findstring MINGW,$(HOST_SYS))) - HOST_SYS= Windows - HOST_MSYS= mingw - endif - ifneq (,$(findstring CYGWIN,$(HOST_SYS))) - HOST_SYS= Windows - HOST_MSYS= cygwin - endif -endif - -############################################################################## -# Flags and options for host and target. -############################################################################## - -# You can override the following variables at the make command line: -# CC HOST_CC STATIC_CC DYNAMIC_CC -# CFLAGS HOST_CFLAGS TARGET_CFLAGS -# LDFLAGS HOST_LDFLAGS TARGET_LDFLAGS TARGET_SHLDFLAGS -# LIBS HOST_LIBS TARGET_LIBS -# CROSS HOST_SYS TARGET_SYS TARGET_FLAGS -# -# Cross-compilation examples: -# make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows -# make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- - -CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) -LDOPTIONS= $(CCDEBUG) $(LDFLAGS) - -HOST_CC= $(CC) -HOST_RM= rm -f -# If left blank, minilua is built and used. You can supply an installed -# copy of (plain) Lua 5.1 or 5.2, plus Lua BitOp. E.g. with: HOST_LUA=lua -HOST_LUA= - -HOST_XCFLAGS= -I. -HOST_XLDFLAGS= -HOST_XLIBS= -HOST_ACFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) $(HOST_CFLAGS) -HOST_ALDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) $(HOST_LDFLAGS) -HOST_ALIBS= $(HOST_XLIBS) $(LIBS) $(HOST_LIBS) - -STATIC_CC = $(CROSS)$(CC) -DYNAMIC_CC = $(CROSS)$(CC) -fPIC -TARGET_CC= $(STATIC_CC) -TARGET_STCC= $(STATIC_CC) -TARGET_DYNCC= $(DYNAMIC_CC) -TARGET_LD= $(CROSS)$(CC) -TARGET_AR= $(CROSS)ar rcus 2>/dev/null -TARGET_STRIP= $(CROSS)strip - -TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib) -TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) -TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib -TARGET_DYLIBPATH= $(TARGET_LIBPATH)/$(TARGET_DYLIBNAME) -TARGET_DLLNAME= lua$(NODOTABIVER).dll -TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) -TARGET_DYNXLDOPTS= - -TARGET_LFSFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -TARGET_XCFLAGS= $(TARGET_LFSFLAGS) -U_FORTIFY_SOURCE -TARGET_XLDFLAGS= -TARGET_XLIBS= -lm -TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) -TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) -TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) -TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) -TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) - -TARGET_TESTARCH=$(shell $(TARGET_CC) $(TARGET_TCFLAGS) -E lj_arch.h -dM) -ifneq (,$(findstring LJ_TARGET_X64 ,$(TARGET_TESTARCH))) - TARGET_LJARCH= x64 -else -ifneq (,$(findstring LJ_TARGET_X86 ,$(TARGET_TESTARCH))) - TARGET_LJARCH= x86 -else -ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) - TARGET_LJARCH= arm -else -ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) - TARGET_LJARCH= ppc -else -ifneq (,$(findstring LJ_TARGET_PPCSPE ,$(TARGET_TESTARCH))) - TARGET_LJARCH= ppcspe -else -ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) - ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH))) - TARGET_ARCH= -D__MIPSEL__=1 - endif - TARGET_LJARCH= mips -else - $(error Unsupported target architecture) -endif -endif -endif -endif -endif -endif - -ifneq (,$(findstring LJ_TARGET_PS3 1,$(TARGET_TESTARCH))) - TARGET_SYS= PS3 - TARGET_ARCH+= -D__CELLOS_LV2__ - TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC -endif - -TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) -TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH)) - -ifneq (,$(PREFIX)) -ifneq (/usr/local,$(PREFIX)) - TARGET_XCFLAGS+= -DLUA_ROOT=\"$(PREFIX)\" - ifneq (/usr,$(PREFIX)) - TARGET_DYNXLDOPTS= -Wl,-rpath,$(TARGET_LIBPATH) - endif -endif -endif -ifneq (,$(MULTILIB)) - TARGET_XCFLAGS+= -DLUA_MULTILIB=\"$(MULTILIB)\" -endif -ifneq (,$(LMULTILIB)) - TARGET_XCFLAGS+= -DLUA_LMULTILIB=\"$(LMULTILIB)\" -endif - -############################################################################## -# Target system detection. -############################################################################## - -TARGET_SYS?= $(HOST_SYS) -ifeq (Windows,$(TARGET_SYS)) - TARGET_STRIP+= --strip-unneeded - TARGET_XSHLDFLAGS= -shared - TARGET_DYNXLDOPTS= -else -ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1)) - TARGET_XCFLAGS+= -fno-stack-protector -endif -ifeq (Darwin,$(TARGET_SYS)) - ifeq (,$(MACOSX_DEPLOYMENT_TARGET)) - export MACOSX_DEPLOYMENT_TARGET=10.6 - endif - TARGET_STRIP+= -x - TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC - TARGET_DYNXLDOPTS= - TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) - ifeq (x64,$(TARGET_LJARCH)) - TARGET_XLDFLAGS+= -pagezero_size 10000 -image_base 100000000 - TARGET_XSHLDFLAGS+= -image_base 7fff04c4a000 - endif -else -ifeq (iOS,$(TARGET_SYS)) - TARGET_STRIP+= -x - TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC - TARGET_DYNXLDOPTS= - TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) -else - ifneq (SunOS,$(TARGET_SYS)) - ifneq (PS3,$(TARGET_SYS)) - TARGET_XLDFLAGS+= -Wl,-E - endif - endif - ifeq (Linux,$(TARGET_SYS)) - TARGET_XLIBS+= -ldl - endif - ifeq (GNU/kFreeBSD,$(TARGET_SYS)) - TARGET_XLIBS+= -ldl - endif -endif -endif -endif - -ifneq ($(HOST_SYS),$(TARGET_SYS)) - ifeq (Windows,$(TARGET_SYS)) - HOST_XCFLAGS+= -malign-double -DLUAJIT_OS=LUAJIT_OS_WINDOWS - else - ifeq (Linux,$(TARGET_SYS)) - HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX - else - ifeq (Darwin,$(TARGET_SYS)) - HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX - else - ifeq (iOS,$(TARGET_SYS)) - HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX - else - HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OTHER - endif - endif - endif - endif -endif - -ifneq (,$(CCDEBUG)) - TARGET_STRIP= @: -endif - -############################################################################## -# Files and pathnames. -############################################################################## - -MINILUA_O= host/minilua.o -MINILUA_LIBS= -lm -MINILUA_T= host/minilua -MINILUA_X= $(MINILUA_T) - -ifeq (,$(HOST_LUA)) - HOST_LUA= $(MINILUA_X) - DASM_DEP= $(MINILUA_T) -endif - -DASM_DIR= ../dynasm -DASM= $(HOST_LUA) $(DASM_DIR)/dynasm.lua -DASM_XFLAGS= -DASM_AFLAGS= -DASM_ARCH= $(TARGET_LJARCH) - -ifneq (,$(findstring LJ_ARCH_BITS 64,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D P64 -endif -ifneq (,$(findstring LJ_HASJIT 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D JIT -endif -ifneq (,$(findstring LJ_HASFFI 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D FFI -endif -ifneq (,$(findstring LJ_DUALNUM 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D DUALNUM -endif -ifneq (,$(findstring LJ_ARCH_HASFPU 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D FPU - TARGET_ARCH+= -DLJ_ARCH_HASFPU=1 -else - TARGET_ARCH+= -DLJ_ARCH_HASFPU=0 -endif -ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D HFABI - TARGET_ARCH+= -DLJ_ABI_SOFTFP=0 -else - TARGET_ARCH+= -DLJ_ABI_SOFTFP=1 -endif -ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D NO_UNWIND - TARGET_ARCH+= -DLUAJIT_NO_UNWIND -endif -DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH)))) -ifeq (Windows,$(TARGET_SYS)) - DASM_AFLAGS+= -D WIN -endif -ifeq (x86,$(TARGET_LJARCH)) - ifneq (,$(findstring __SSE2__ 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D SSE - endif -else -ifeq (x64,$(TARGET_LJARCH)) - DASM_ARCH= x86 -else -ifeq (arm,$(TARGET_LJARCH)) - ifeq (iOS,$(TARGET_SYS)) - DASM_AFLAGS+= -D IOS - endif -else -ifeq (ppc,$(TARGET_LJARCH)) - ifneq (,$(findstring LJ_ARCH_SQRT 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D SQRT - endif - ifneq (,$(findstring LJ_ARCH_ROUND 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D ROUND - endif - ifneq (,$(findstring LJ_ARCH_PPC64 1,$(TARGET_TESTARCH))) - DASM_AFLAGS+= -D GPR64 - endif - ifeq (PS3,$(TARGET_SYS)) - DASM_AFLAGS+= -D PPE -D TOC - endif -endif -endif -endif -endif - -DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS) -DASM_DASC= vm_$(DASM_ARCH).dasc - -BUILDVM_O= host/buildvm.o host/buildvm_asm.o host/buildvm_peobj.o \ - host/buildvm_lib.o host/buildvm_fold.o -BUILDVM_T= host/buildvm -BUILDVM_X= $(BUILDVM_T) - -HOST_O= $(MINILUA_O) $(BUILDVM_O) -HOST_T= $(MINILUA_T) $(BUILDVM_T) - -LJVM_S= lj_vm.s -LJVM_O= lj_vm.o -LJVM_BOUT= $(LJVM_S) -LJVM_MODE= elfasm - -LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \ - lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o -LJLIB_C= $(LJLIB_O:.o=.c) - -LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o \ - lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \ - lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \ - lj_api.o lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \ - lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \ - lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \ - lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \ - lj_asm.o lj_trace.o lj_gdbjit.o \ - lj_ctype.o lj_cdata.o lj_cconv.o lj_ccall.o lj_ccallback.o \ - lj_carith.o lj_clib.o lj_cparse.o \ - lj_lib.o lj_alloc.o lib_aux.o \ - $(LJLIB_O) lib_init.o - -LJVMCORE_O= $(LJVM_O) $(LJCORE_O) -LJVMCORE_DYNO= $(LJVMCORE_O:.o=_dyn.o) - -LIB_VMDEF= jit/vmdef.lua -LIB_VMDEFP= $(LIB_VMDEF) - -LUAJIT_O= luajit.o -LUAJIT_A= libluajit.a -LUAJIT_SO= libluajit.so -LUAJIT_T= luajit - -ALL_T= $(LUAJIT_T) $(LUAJIT_A) $(LUAJIT_SO) $(HOST_T) -ALL_HDRGEN= lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h \ - host/buildvm_arch.h -ALL_GEN= $(LJVM_S) $(ALL_HDRGEN) $(LIB_VMDEFP) -WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk -ALL_RM= $(ALL_T) $(ALL_GEN) *.o host/*.o $(WIN_RM) - -############################################################################## -# Build mode handling. -############################################################################## - -# Mixed mode defaults. -TARGET_O= $(LUAJIT_A) -TARGET_T= $(LUAJIT_T) $(LUAJIT_SO) -TARGET_DEP= $(LIB_VMDEF) $(LUAJIT_SO) - -ifeq (Windows,$(TARGET_SYS)) - TARGET_DYNCC= $(STATIC_CC) - LJVM_MODE= peobj - LJVM_BOUT= $(LJVM_O) - LUAJIT_T= luajit.exe - ifeq (cygwin,$(HOST_MSYS)) - LUAJIT_SO= cyg$(TARGET_DLLNAME) - else - LUAJIT_SO= $(TARGET_DLLNAME) - endif - # Mixed mode is not supported on Windows. And static mode doesn't work well. - # C modules cannot be loaded, because they bind to lua51.dll. - ifneq (static,$(BUILDMODE)) - BUILDMODE= dynamic - TARGET_XCFLAGS+= -DLUA_BUILD_AS_DLL - endif -endif -ifeq (Darwin,$(TARGET_SYS)) - LJVM_MODE= machasm -endif -ifeq (iOS,$(TARGET_SYS)) - LJVM_MODE= machasm -endif -ifeq (SunOS,$(TARGET_SYS)) - BUILDMODE= static -endif -ifeq (PS3,$(TARGET_SYS)) - BUILDMODE= static -endif - -ifeq (Windows,$(HOST_SYS)) - MINILUA_T= host/minilua.exe - BUILDVM_T= host/buildvm.exe - ifeq (,$(HOST_MSYS)) - MINILUA_X= host\minilua - BUILDVM_X= host\buildvm - ALL_RM:= $(subst /,\,$(ALL_RM)) - endif -endif - -ifeq (static,$(BUILDMODE)) - TARGET_DYNCC= @: - TARGET_T= $(LUAJIT_T) - TARGET_DEP= $(LIB_VMDEF) -else -ifeq (dynamic,$(BUILDMODE)) - ifneq (Windows,$(TARGET_SYS)) - TARGET_CC= $(DYNAMIC_CC) - endif - TARGET_DYNCC= @: - LJVMCORE_DYNO= $(LJVMCORE_O) - TARGET_O= $(LUAJIT_SO) - TARGET_XLDFLAGS+= $(TARGET_DYNXLDOPTS) -else -ifeq (Darwin,$(TARGET_SYS)) - TARGET_DYNCC= @: - LJVMCORE_DYNO= $(LJVMCORE_O) -endif -ifeq (iOS,$(TARGET_SYS)) - TARGET_DYNCC= @: - LJVMCORE_DYNO= $(LJVMCORE_O) -endif -endif -endif - -Q= @ -E= @echo -#Q= -#E= @: - -############################################################################## -# Make targets. -############################################################################## - -default all: $(TARGET_T) - -amalg: - @grep "^[+|]" ljamalg.c - $(MAKE) all "LJCORE_O=ljamalg.o" - -clean: - $(HOST_RM) $(ALL_RM) - -depend: - @for file in $(ALL_HDRGEN); do \ - test -f $$file || touch $$file; \ - done - @$(HOST_CC) $(HOST_ACFLAGS) -MM *.c host/*.c | \ - sed -e "s| [^ ]*/dasm_\S*\.h||g" \ - -e "s|^\([^l ]\)|host/\1|" \ - -e "s| lj_target_\S*\.h| lj_target_*.h|g" \ - -e "s| lj_emit_\S*\.h| lj_emit_*.h|g" \ - -e "s| lj_asm_\S*\.h| lj_asm_*.h|g" >Makefile.dep - @for file in $(ALL_HDRGEN); do \ - test -s $$file || $(HOST_RM) $$file; \ - done - -.PHONY: default all amalg clean depend - -############################################################################## -# Rules for generated files. -############################################################################## - -$(MINILUA_T): $(MINILUA_O) - $(E) "HOSTLINK $@" - $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(MINILUA_O) $(MINILUA_LIBS) $(HOST_ALIBS) - -host/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP) - $(E) "DYNASM $@" - $(Q)$(DASM) $(DASM_FLAGS) -o $@ $(DASM_DASC) - -host/buildvm.o: $(DASM_DIR)/dasm_*.h - -$(BUILDVM_T): $(BUILDVM_O) - $(E) "HOSTLINK $@" - $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(BUILDVM_O) $(HOST_ALIBS) - -$(LJVM_BOUT): $(BUILDVM_T) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m $(LJVM_MODE) -o $@ - -lj_bcdef.h: $(BUILDVM_T) $(LJLIB_C) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m bcdef -o $@ $(LJLIB_C) - -lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m ffdef -o $@ $(LJLIB_C) - -lj_libdef.h: $(BUILDVM_T) $(LJLIB_C) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m libdef -o $@ $(LJLIB_C) - -lj_recdef.h: $(BUILDVM_T) $(LJLIB_C) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m recdef -o $@ $(LJLIB_C) - -$(LIB_VMDEF): $(BUILDVM_T) $(LJLIB_C) - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m vmdef -o $(LIB_VMDEFP) $(LJLIB_C) - -lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c - $(E) "BUILDVM $@" - $(Q)$(BUILDVM_X) -m folddef -o $@ lj_opt_fold.c - -############################################################################## -# Object file rules. -############################################################################## - -%.o: %.c - $(E) "CC $@" - $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< - $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< - -%.o: %.s - $(E) "ASM $@" - $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< - $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< - -$(LUAJIT_O): - $(E) "CC $@" - $(Q)$(TARGET_STCC) $(TARGET_ACFLAGS) -c -o $@ $< - -$(HOST_O): %.o: %.c - $(E) "HOSTCC $@" - $(Q)$(HOST_CC) $(HOST_ACFLAGS) -c -o $@ $< - -include Makefile.dep - -############################################################################## -# Target file rules. -############################################################################## - -$(LUAJIT_A): $(LJVMCORE_O) - $(E) "AR $@" - $(Q)$(TARGET_AR) $@ $(LJVMCORE_O) - -# The dependency on _O, but linking with _DYNO is intentional. -$(LUAJIT_SO): $(LJVMCORE_O) - $(E) "DYNLINK $@" - $(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS) - $(Q)$(TARGET_STRIP) $@ - -$(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) - $(E) "LINK $@" - $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS) - $(Q)$(TARGET_STRIP) $@ - $(E) "OK Successfully built LuaJIT" - -############################################################################## diff --git a/tools/Makefile b/tools/Makefile deleted file mode 100644 index de6166a1e..000000000 --- a/tools/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk - -osx-bundle-restart-helper_OBJ := $(d)osx-bundle-restart-helper.o - -ifeq (yes, $(BUILD_DARWIN)) -PROGRAM += $(d)osx-bundle-restart-helper -endif - -repack-thes-dict_OBJ := $(d)repack-thes-dict.o $(TOP)lib/libaegisub.a -repack-thes-dict_LIBS := $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_PTHREAD) -repack-thes-dict_CPPFLAGS := -I$(TOP) -I$(TOP)libaegisub/include $(CFLAGS_ICU) - -PROGRAM += $(d)repack-thes-dict - -$(TOP)tools/respack.lua: $(shell command -v "$(BIN_LUA)") - -include $(TOP)Makefile.target From 47f7aa879de8aad14a6b123925269f6e56a88de1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 21 Nov 2020 15:51:59 -0500 Subject: [PATCH 163/185] README: update Windows section to reflect the switch to Meson --- README.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5739c3688..e173ae9e7 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ For binaries and general information [see the homepage](http://www.aegisub.org). -The bug tracker can be found at http://devel.aegisub.org. +The bug tracker can be found at https://github.com/TypesettingTools/Aegisub/issues. -Support is available on [the forums](http://forum.aegisub.org) or [on IRC](irc://irc.rizon.net/aegisub). +Support is available on [Discord](https://discord.com/invite/AZaVyPr) or [IRC](irc://irc.rizon.net/aegisub). ## Building Aegisub @@ -12,9 +12,10 @@ Support is available on [the forums](http://forum.aegisub.org) or [on IRC](irc:/ Prerequisites: -1. Visual Studio 2015 (the free Community edition is good enough) +1. Visual Studio (Community edition of any recent version is fine) 2. The June 2010 DirectX SDK (the final release before DirectSound was dropped) -3. [Yasm](http://yasm.tortall.net/) installed to somewhere on your path. +3. Python 3 +4. Meson There are a few optional dependencies: @@ -26,22 +27,19 @@ All other dependencies are either stored in the repository or are included as su Building: -1. Clone Aegisub's repository recursively to fetch it and all submodules: `git clone --recursive git@github.com:Aegisub/Aegisub.git` This will take quite a while and requires about 2.5 GB of disk space. -2. Open Aegisub.sln -3. Build the BuildTasks project. -4. Build the entire solution. +1. Clone Aegisub's repository: `git clone https://github.com/TypesettingTools/Aegisub.git` +2. From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory: `meson build -Ddefault_library=static -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static` +3. Build with `cd build` and `meson compile` -You should now have a `bin` directory in your Aegisub directory which contains `aegisub32d.exe`, along with a pile of other files. +You should now have a binary at `src/aegisub.exe`. -The Aegisub installer includes some files not built as part of Aegisub (such as Avisynth and VSFilter), so for a fully functional copy of Aegisub you now need to copy all of the files from an installed copy of Aegisub into your `bin` directory (and don't overwrite any of the files already there). -You'll also either need to copy the `automation` directory into the `bin` directory, or edit your automation search paths to include the `automation` directory in the source tree. +Installer: -After building the solution once, you'll want to switch to the Debug-MinDep configuration, which skips checking if the dependencies are out of date, as that takes a while. +You can generate the installer with `ninja win-installer` after a successful build. This assumes you have InnoSetup present on your `PATH` and a working internet connection. ### OS X A vaguely recent version of Xcode and the corresponding command-line tools are required. -Nothing older than Xcode 5 has been tested recently, but it is likely that some later versions of Xcode 4 are good enough. For personal usage, you can use homebrew to install almost all of Aegisub's dependencies: From 194521e777f484767b86882f40b896dc444383c1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 22 Nov 2020 16:30:18 -0500 Subject: [PATCH 164/185] meson: set wx subproject buildtype, remove d_vscrt hack --- .github/workflows/ci.yml | 2 +- meson.build | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 705b545d8..01dbbf193 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 - run: meson build -Db_vscrt=mdd -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static + run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' diff --git a/meson.build b/meson.build index 4961e4a7b..3c331b620 100644 --- a/meson.build +++ b/meson.build @@ -116,11 +116,16 @@ else if get_option('default_library') == 'static' build_shared = 'OFF' endif + build_type = 'Release' + if get_option('buildtype') == 'debug' + build_type = 'Debug' + endif wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson '-DwxBUILD_SHARED=@0@'.format(build_shared), '-DwxUSE_WEBVIEW=OFF', # breaks build on linux + '-DCMAKE_BUILD_TYPE=@0@'.format(build_type), '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson deps += [ wx.dependency('wxmono'), From 44fdeb361f4ecd7fda7a563ba3d28712ffa6653e Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sun, 22 Nov 2020 16:33:02 -0500 Subject: [PATCH 165/185] actions: upload artifacts --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01dbbf193..95e8f4e51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,3 +70,11 @@ jobs: - name: Build run: meson compile -C build + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + if: matrix.config.os == 'windows-latest' + with: + name: ${{ matrix.config.name }} + path: | + build/Aegisub-*.exe From 72edb889827a8d3fce112d140bd8d17ac285b830 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 22 Dec 2020 01:01:12 -0500 Subject: [PATCH 166/185] meson: add Avisynth option, compile libass_gdi_fontselect Sadly, building with Avisynth is still broken. --- meson.build | 4 ++++ meson_options.txt | 1 + src/meson.build | 7 +++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 3c331b620..0b53d1967 100644 --- a/meson.build +++ b/meson.build @@ -192,6 +192,10 @@ foreach dep: [ endif endforeach +if host_machine.system() == 'windows' and get_option('avisynth').enabled() + conf.set('WITH_AVISYNTH', 1) # bundled separately with installer +endif + if host_machine.system() == 'windows' and not get_option('directsound').disabled() dsound_dep = cc.find_library('dsound', required: get_option('directsound')) winmm_dep = cc.find_library('winmm', required: get_option('directsound')) diff --git a/meson_options.txt b/meson_options.txt index 4481aa69d..20bac21ae 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,6 +6,7 @@ option('directsound', type: 'feature', description: 'DirectSound audio output') option('default_audio_output', type: 'combo', choices: ['auto', 'ALSA', 'OpenAL', 'PulseAudio', 'PortAudio', 'DirectSound'], description: 'Default audio output') option('ffms2', type: 'feature', description: 'FFMS2 video source') +option('avisynth', type: 'feature', description: 'AviSynth video source') option('fftw3', type: 'feature', description: 'FFTW3 support') option('hunspell', type: 'feature', description: 'Hunspell spell checker') diff --git a/src/meson.build b/src/meson.build index 1238f6dea..29dfe2169 100644 --- a/src/meson.build +++ b/src/meson.build @@ -33,7 +33,6 @@ aegisub_src = files( 'auto4_lua_assfile.cpp', 'auto4_lua_dialog.cpp', 'auto4_lua_progresssink.cpp', - 'avisynth_wrap.cpp', 'base_grid.cpp', 'charset_detect.cpp', 'colorspace.cpp', @@ -173,8 +172,12 @@ if host_machine.system() == 'darwin' ] elif host_machine.system() == 'windows' aegisub_src += [ - 'font_file_lister_gdi.cpp' + 'avisynth_wrap.cpp', + 'font_file_lister_gdi.cpp', + 'libass_gdi_fontselect.cpp', + 'video_provider_avs.cpp', ] + if cc.has_header('wingdi.h') deps += cc.find_library('gdi32', required: true) else From a3ec466ff64fa96aae098899d7c90ae89ef1bbdb Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 22 Dec 2020 01:05:02 -0500 Subject: [PATCH 167/185] meson: fix Windows installer generation This includes some miscellaneous cleanup to the installer files as well --- README.md | 8 +- packages/meson.build | 3 + packages/win_installer/aegisub3.iss | 35 ------ packages/win_installer/aegisub_depctrl.iss | 2 + .../dictionaries/fragment_dictbase.iss | 35 ------ .../dictionaries/fragment_stddict.iss | 36 ------ .../win_installer/fragment_associations.iss | 34 ------ .../win_installer/fragment_automation.iss | 103 ++++++------------ .../win_installer/fragment_beautify_code.iss | 38 ------- packages/win_installer/fragment_codecs.iss | 42 +------ .../win_installer/fragment_mainprogram.iss | 38 +------ .../win_installer/fragment_migrate_code.iss | 43 -------- packages/win_installer/fragment_runtimes.iss | 42 +------ packages/win_installer/fragment_setupbase.iss | 97 ++++++----------- .../win_installer/fragment_shell_code.iss | 37 ------- packages/win_installer/fragment_spelling.iss | 40 +------ packages/win_installer/fragment_strings.iss | 33 ++++-- .../win_installer/fragment_translations.iss | 98 ++++++----------- packages/win_installer/license.txt | 2 +- tools/version.ps1 | 2 +- tools/win-installer-setup.ps1 | 80 ++++++++++++++ 21 files changed, 228 insertions(+), 620 deletions(-) create mode 100644 tools/win-installer-setup.ps1 diff --git a/README.md b/README.md index e173ae9e7..f009c4235 100644 --- a/README.md +++ b/README.md @@ -16,12 +16,16 @@ Prerequisites: 2. The June 2010 DirectX SDK (the final release before DirectSound was dropped) 3. Python 3 4. Meson +5. CMake +6. Powershell execution policy set to Unrestricted -There are a few optional dependencies: +There are a few optional dependencies that must be installed and on your PATH: 1. msgfmt, to build the translations 2. WinRAR, to build the portable installer 3. InnoSetup, to build the regular installer +4. 7zip, to build the regular installer +5. Moonscript, to build the regular installer All other dependencies are either stored in the repository or are included as submodules. @@ -35,7 +39,7 @@ You should now have a binary at `src/aegisub.exe`. Installer: -You can generate the installer with `ninja win-installer` after a successful build. This assumes you have InnoSetup present on your `PATH` and a working internet connection. +You can generate the installer with `ninja win-installer` after a successful build. This assumes a working internet connection and installation of the optional dependencies. ### OS X diff --git a/packages/meson.build b/packages/meson.build index 41676bfb2..d2298cd27 100644 --- a/packages/meson.build +++ b/packages/meson.build @@ -1,6 +1,9 @@ conf_pkg = configuration_data() if host_machine.system() == 'windows' + installer_setup = find_program(meson.source_root() / 'tools/win-installer-setup.ps1', ) + run_target('win-installer', + command: [installer_setup, meson.build_root(), meson.source_root()]) elif host_machine.system() == 'darwin' # temporary hack until version.sh generates this properly run_command('cp', meson.source_root() / 'tools' / 'osx-bundle.sed', meson.build_root()) diff --git a/packages/win_installer/aegisub3.iss b/packages/win_installer/aegisub3.iss index 4ca458efc..61960ad36 100644 --- a/packages/win_installer/aegisub3.iss +++ b/packages/win_installer/aegisub3.iss @@ -1,37 +1,3 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - #define ARCH 64 #include "fragment_setupbase.iss" @@ -88,4 +54,3 @@ begin False); end; end; - diff --git a/packages/win_installer/aegisub_depctrl.iss b/packages/win_installer/aegisub_depctrl.iss index 069eac029..0cc857265 100644 --- a/packages/win_installer/aegisub_depctrl.iss +++ b/packages/win_installer/aegisub_depctrl.iss @@ -1,3 +1,5 @@ #define DEPCTRL +;#define UNOFFICIAL_LANGUAGES +;#define ENABLE_TRANSLATIONS #include "aegisub3.iss" diff --git a/packages/win_installer/dictionaries/fragment_dictbase.iss b/packages/win_installer/dictionaries/fragment_dictbase.iss index 5d694f98c..6f07dcc37 100644 --- a/packages/win_installer/dictionaries/fragment_dictbase.iss +++ b/packages/win_installer/dictionaries/fragment_dictbase.iss @@ -1,37 +1,3 @@ -; Copyright (c) 2011, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - [Setup] AppID={{24BC8B57-716C-444F-B46B-A3349B9164C5} AppName=Aegisub @@ -75,7 +41,6 @@ WelcomeLabel2=This will install {#LANGNAME} dictionaries for Aegisub 3.0 on your DestDir: {tmp}; Flags: dontcopy; Source: welcome.bmp DestDir: {tmp}; Flags: dontcopy; Source: aegisub.bmp - [Code] #include "..\fragment_shell_code.iss" #include "..\fragment_beautify_code.iss" diff --git a/packages/win_installer/dictionaries/fragment_stddict.iss b/packages/win_installer/dictionaries/fragment_stddict.iss index 7b7ee1924..acad697be 100644 --- a/packages/win_installer/dictionaries/fragment_stddict.iss +++ b/packages/win_installer/dictionaries/fragment_stddict.iss @@ -1,44 +1,9 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - #include "fragment_dictbase.iss" [Setup] OutputBaseFilename=Aegisub-3.0-dict-{#LANGCODE} VersionInfoDescription=Aegisub 3.0 {#LANGNAME} dictionary - [Files] Source: src\dictionaries\{#LANGCODE}.aff; DestDir: {app}\dictionaries; Flags: ignoreversion; Components: dic/{#LANGCODE} Source: src\dictionaries\{#LANGCODE}.dic; DestDir: {app}\dictionaries; Flags: ignoreversion; Components: dic/{#LANGCODE} @@ -54,4 +19,3 @@ Name: dic/{#LANGCODE}; Description: {#LANGNAME} dictionary; Types: full Name: th; Description: Thesaurus; Types: full Name: th/{#LANGCODE}; Description: {#LANGNAME} thesaurus; Types: full #endif - diff --git a/packages/win_installer/fragment_associations.iss b/packages/win_installer/fragment_associations.iss index 113b42dce..15567fb61 100644 --- a/packages/win_installer/fragment_associations.iss +++ b/packages/win_installer/fragment_associations.iss @@ -1,37 +1,3 @@ -; Copyright (c) 2007-2011, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - [Files] DestDir: {commontemplates}; Source: template.ass; DestName: Aegisub.ass diff --git a/packages/win_installer/fragment_automation.iss b/packages/win_installer/fragment_automation.iss index 4b224aad7..c754c4752 100644 --- a/packages/win_installer/fragment_automation.iss +++ b/packages/win_installer/fragment_automation.iss @@ -1,79 +1,48 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - ; This file declares all installables related to Aegisub Automation [Files] -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: {#SOURCE_ROOT}\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: {#SOURCE_ROOT}\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: {#SOURCE_ROOT}\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: {#SOURCE_ROOT}\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: {#SOURCE_ROOT}\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\demos; Source: ..\..\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos -DestDir: {app}\automation\demos; Source: ..\..\automation\demos\raytracer.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos +DestDir: {app}\automation\demos; Source: {#SOURCE_ROOT}\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos +DestDir: {app}\automation\demos; Source: {#SOURCE_ROOT}\automation\demos\raytracer.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\re.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\unicode.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\util.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\re.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\unicode.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: {#SOURCE_ROOT}\automation\include\aegisub\util.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\cleantags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\lfs.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\moonscript.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\re.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\unicode.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\cleantags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\karaskel.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\lfs.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\moonscript.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\re.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\unicode.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: {#SOURCE_ROOT}\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -; DepCtrl #ifdef DEPCTRL -DestDir: {userappdata}\Aegisub\automation\include\l0; Source: vendor\DependencyControl\modules\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\autoload; Source: vendor\DependencyControl\macros\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\Yutils\src\Yutils.lua; Flags: ignoreversion; Components: macros\modules\yutils -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\luajson\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\luajson -DestDir: {userappdata}\Aegisub\automation\include\requireffi; Source: vendor\ffi-experiments\requireffi\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +; DepCtrl +DestDir: {userappdata}\Aegisub\automation\include\l0; Source: {#DEPS_DIR}\DependencyControl\modules\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\autoload; Source: {#DEPS_DIR}\DependencyControl\macros\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: {#DEPS_DIR}\Yutils\src\Yutils.lua; Flags: ignoreversion; Components: macros\modules\yutils +DestDir: {userappdata}\Aegisub\automation\include; Source: {#DEPS_DIR}\luajson\lua\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\luajson -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\requireffi; Source: {#DEPS_DIR}\ffi-experiments\build\requireffi\requireffi.lua; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\BM\BadMutex; Source: {#DEPS_DIR}\ffi-experiments\build\bad-mutex\BadMutex.dll; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\BM; Source: {#DEPS_DIR}\ffi-experiments\build\bad-mutex\BadMutex.lua; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\PT\PreciseTimer; Source: {#DEPS_DIR}\ffi-experiments\build\precise-timer\PreciseTimer.dll; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\PT; Source: {#DEPS_DIR}\ffi-experiments\build\precise-timer\PreciseTimer.lua; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\DM\DownloadManager; Source: {#DEPS_DIR}\ffi-experiments\build\download-manager\DownloadManager.dll; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include\DM; Source: {#DEPS_DIR}\ffi-experiments\build\download-manager\DownloadManager.lua; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl [Dirs] Name: {userappdata}\Aegisub\automation\test\DepUnit\automation; Components: macros\modules\depctrl; diff --git a/packages/win_installer/fragment_beautify_code.iss b/packages/win_installer/fragment_beautify_code.iss index 25552ecdd..9e7155b91 100644 --- a/packages/win_installer/fragment_beautify_code.iss +++ b/packages/win_installer/fragment_beautify_code.iss @@ -1,41 +1,4 @@ [Code] -(* -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; -*) - - function SHAutoComplete(hWnd: Integer; dwFlags: DWORD): Integer; external 'SHAutoComplete@shlwapi.dll stdcall delayload'; const @@ -81,4 +44,3 @@ begin Log('Could not add autocomplete to dir edit box'); end; end; - diff --git a/packages/win_installer/fragment_codecs.iss b/packages/win_installer/fragment_codecs.iss index 5951f8ddd..06e73b037 100644 --- a/packages/win_installer/fragment_codecs.iss +++ b/packages/win_installer/fragment_codecs.iss @@ -1,41 +1,7 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - [Files] ; Avisynth -DestDir: {app}; Source: vendor\AvisynthPlus64\devil.dll; Flags: ignoreversion; Components: main -DestDir: {app}; Source: vendor\AvisynthPlus64\avisynth.dll; Flags: ignoreversion; Components: main -DestDir: {app}; Source: vendor\AvisynthPlus64\DirectShowSource.dll; Flags: ignoreversion; Components: main +DestDir: {app}; Source: {#DEPS_DIR}\AvisynthPlus64\x64\system\DevIL.dll; Flags: ignoreversion; Components: main +DestDir: {app}; Source: {#DEPS_DIR}\AvisynthPlus64\x64\AviSynth.dll; Flags: ignoreversion; Components: main +DestDir: {app}; Source: {#DEPS_DIR}\AvisynthPlus64\x64\plugins\DirectShowSource.dll; Flags: ignoreversion; Components: main ; VSFilter -DestDir: {app}\csri; Source: vendor\xy-vsfilter\xy-vsfilter-aegisub64.dll; Flags: ignoreversion; Components: main +DestDir: {app}\csri; Source: {#DEPS_DIR}\VSFilter\x64\VSFilter.dll; Flags: ignoreversion; Components: main diff --git a/packages/win_installer/fragment_mainprogram.iss b/packages/win_installer/fragment_mainprogram.iss index 0eed59a86..003efde7d 100644 --- a/packages/win_installer/fragment_mainprogram.iss +++ b/packages/win_installer/fragment_mainprogram.iss @@ -1,37 +1,3 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - [Components] Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed Name: "macros"; Description: "Automation Scripts"; Types: full @@ -53,8 +19,8 @@ Name: "checkforupdates"; Description: "{cm:CheckForUpdates}"; GroupDescription: [Files] ; main -DestDir: {app}; Source: ..\..\bin\aegisub{#ARCH}.exe; Flags: ignoreversion; Components: main -DestDir: {app}; Source: license.txt; Flags: ignoreversion; Components: main +DestDir: {app}; Source: "{#BUILD_ROOT}\src\aegisub.exe"; Flags: ignoreversion; Components: main +DestDir: {app}; Source: "{#INSTALLER_DIR}\license.txt"; Flags: ignoreversion; Components: main [Icons] Name: {commonprograms}\Aegisub; Filename: {app}\aegisub{#ARCH}.exe; WorkingDir: {app}; IconIndex: 0; Tasks: startmenuicon; Comment: Create and edit subtitle files diff --git a/packages/win_installer/fragment_migrate_code.iss b/packages/win_installer/fragment_migrate_code.iss index 7be07c916..ff655154f 100644 --- a/packages/win_installer/fragment_migrate_code.iss +++ b/packages/win_installer/fragment_migrate_code.iss @@ -1,41 +1,4 @@ [Code] -(* -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; -*) - - var HasLegacyVersion: Boolean; LegacyStartMenuFolder: string; @@ -390,9 +353,3 @@ begin CleanUpOldVersion; end; end; - - - - - - diff --git a/packages/win_installer/fragment_runtimes.iss b/packages/win_installer/fragment_runtimes.iss index 8d7f56436..ae71daf74 100644 --- a/packages/win_installer/fragment_runtimes.iss +++ b/packages/win_installer/fragment_runtimes.iss @@ -1,47 +1,7 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - ; This file implements checking for and installing runtime libraries for Aegisub [Files] -DestDir: {tmp}; Source: src\vcredist_{#ARCH}.exe; Flags: nocompression deleteafterinstall -;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\msvcp140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\concrt140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\vccorlib140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\vcruntime140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#ARCH}\Microsoft.VC140.MFC\mfc140u.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#ARCH}\Microsoft.VC140.MFC\mfcm140u.dll; DestDir: {app}; Flags: ignoreversion +DestDir: {tmp}; Source: "{#DEPS_DIR}\VC_redist\VC_redist.x{#ARCH}.exe"; Flags: nocompression deleteafterinstall [Run] Filename: {tmp}\vcredist_{#ARCH}.exe; StatusMsg: {cm:InstallRuntime}; Parameters: "/install /quiet /norestart" diff --git a/packages/win_installer/fragment_setupbase.iss b/packages/win_installer/fragment_setupbase.iss index 8935e256c..168c5f88b 100644 --- a/packages/win_installer/fragment_setupbase.iss +++ b/packages/win_installer/fragment_setupbase.iss @@ -1,40 +1,10 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - -#include "../../build/git_version.h" - #define CURRENT_YEAR GetDateTimeString('yyyy', '', ''); +#define BUILD_ROOT GetEnv('BUILD_ROOT') +#define SOURCE_ROOT GetEnv('SOURCE_ROOT') +#define INSTALLER_DIR SOURCE_ROOT + "\packages\win_installer" +#define DEPS_DIR BUILD_ROOT + "\installer-deps" + +#include BUILD_ROOT + "\git_version.h" [Setup] AppName=Aegisub @@ -47,10 +17,10 @@ AppCopyright=2005-{#CURRENT_YEAR} The Aegisub Team VersionInfoVersion={#INSTALLER_VERSION} DefaultGroupName=Aegisub AllowNoIcons=true -OutputDir=output +OutputDir={#BUILD_ROOT} Compression=lzma/ultra64 SolidCompression=true -MinVersion=0,5.0 +MinVersion=6.1sp1 ShowLanguageDialog=yes LanguageDetectionMethod=none DisableProgramGroupPage=yes @@ -61,51 +31,54 @@ UsePreviousTasks=no UninstallDisplayIcon={app}\aegisub{#ARCH}.exe ; Default to a large welcome bitmap, suitable for large fonts ; The normal fonts version is selected by code below -WizardImageFile=welcome-large.bmp -WizardSmallImageFile=aegisub-large.bmp +WizardImageFile={#INSTALLER_DIR}\welcome-large.bmp +WizardSmallImageFile={#INSTALLER_DIR}\aegisub-large.bmp OutputBaseFilename=Aegisub-{#BUILD_GIT_VERSION_STRING}-{#ARCH} VersionInfoDescription=Aegisub {#BUILD_GIT_VERSION_STRING} {#ARCH}-bit [Languages] Name: "en"; MessagesFile: "compiler:Default.isl" -Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl" Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl" Name: "cz"; MessagesFile: "compiler:Languages\Czech.isl" Name: "da"; MessagesFile: "compiler:Languages\Danish.isl" Name: "de"; MessagesFile: "compiler:Languages\German.isl" -Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" -Name: "eu"; MessagesFile: "compiler:Languages\Basque.isl" Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" Name: "fr_FR"; MessagesFile: "compiler:Languages\French.isl" -Name: "gl"; MessagesFile: "compiler:Languages\Galician.isl" -Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" -Name: "id"; MessagesFile: "compiler:Languages\Indonesian.isl" Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" Name: "ja"; MessagesFile: "compiler:Languages\Japanese.isl" -Name: "ko"; MessagesFile: "compiler:Languages\Korean.isl" -Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" Name: "pt_BR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" Name: "pt_PT"; MessagesFile: "compiler:Languages\Portuguese.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" -Name: "sr_RS"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl" -Name: "sr_RS_latin"; MessagesFile: "compiler:Languages\SerbianLatin.isl" Name: "uk_UA"; MessagesFile: "compiler:Languages\Ukrainian.isl" -Name: "zh_CN"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" -Name: "zh_TW"; MessagesFile: "compiler:Languages\ChineseTraditional.isl" +#ifdef UNOFFICIAL_LANGUAGES +; These languages are not shipped with InnoSetup by default and would need to be fetched from https://jrsoftware.org/files/istrans/ +;Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl" +;Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" +;Name: "eu"; MessagesFile: "compiler:Languages\Basque.isl" +;Name: "gl"; MessagesFile: "compiler:Languages\Galician.isl" +;Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" +;Name: "id"; MessagesFile: "compiler:Languages\Indonesian.isl" +;Name: "ko"; MessagesFile: "compiler:Languages\Korean.isl" +;Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" +;Name: "sr_RS"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl" +;Name: "sr_RS_latin"; MessagesFile: "compiler:Languages\SerbianLatin.isl" +;Name: "zh_CN"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" +;Name: "zh_TW"; MessagesFile: "compiler:Languages\ChineseTraditional.isl" +#endif [Files] ; small bitmaps (used by beautify code) -DestDir: {tmp}; Flags: dontcopy; Source: welcome.bmp -DestDir: {tmp}; Flags: dontcopy; Source: aegisub.bmp +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\welcome.bmp +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\aegisub.bmp ; uninstall data (used by migration code) -DestDir: {tmp}; Flags: dontcopy; Source: legacy_filelist.txt -DestDir: {tmp}; Flags: dontcopy; Source: legacy_dirlist.txt -DestDir: {tmp}; Flags: dontcopy; Source: legacy_locales.txt -DestDir: {tmp}; Flags: dontcopy; Source: legacy_shortcutlist.txt -DestDir: {tmp}; Flags: dontcopy; Source: old_filelist.txt -DestDir: {tmp}; Flags: dontcopy; Source: old_dirlist.txt -DestDir: {tmp}; Flags: dontcopy; Source: old_locales.txt -DestDir: {tmp}; Flags: dontcopy; Source: old_shortcutlist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\legacy_filelist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\legacy_dirlist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\legacy_locales.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\legacy_shortcutlist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\old_filelist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\old_dirlist.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\old_locales.txt +DestDir: {tmp}; Flags: dontcopy; Source: {#INSTALLER_DIR}\old_shortcutlist.txt diff --git a/packages/win_installer/fragment_shell_code.iss b/packages/win_installer/fragment_shell_code.iss index 259d45a06..53cea58a9 100644 --- a/packages/win_installer/fragment_shell_code.iss +++ b/packages/win_installer/fragment_shell_code.iss @@ -1,40 +1,4 @@ [Code] -(* -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; -*) - // IShellLink interface and CLSID taken from sample const MAX_PATH = 260; @@ -121,4 +85,3 @@ begin Result := ''; end; end; - diff --git a/packages/win_installer/fragment_spelling.iss b/packages/win_installer/fragment_spelling.iss index 1ce979d8f..331f3eb29 100644 --- a/packages/win_installer/fragment_spelling.iss +++ b/packages/win_installer/fragment_spelling.iss @@ -1,41 +1,5 @@ -; Copyright (c) 2007-2011, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - - ; This file declares all installables related to spell checking and thesaurii in Aegisub [Files] -Source: src\dictionaries\en_US.aff; DestDir: {app}\dictionaries; Flags: skipifsourcedoesntexist ignoreversion -Source: src\dictionaries\en_US.dic; DestDir: {app}\dictionaries; Flags: skipifsourcedoesntexist ignoreversion - +Source: {#DEPS_DIR}\dictionaries\en_US.aff; DestDir: {app}\dictionaries; Flags: skipifsourcedoesntexist ignoreversion +Source: {#DEPS_DIR}\dictionaries\en_US.dic; DestDir: {app}\dictionaries; Flags: skipifsourcedoesntexist ignoreversion diff --git a/packages/win_installer/fragment_strings.iss b/packages/win_installer/fragment_strings.iss index f558865da..f572d8618 100644 --- a/packages/win_installer/fragment_strings.iss +++ b/packages/win_installer/fragment_strings.iss @@ -1,44 +1,57 @@ [CustomMessages] InstallRuntime=Installing runtime libraries... +pt_PT.InstallRuntime=A instalar livrarias de runtime... +uk_UA.InstallRuntime=Встановлюю бібліотеки реального часу... +#ifdef UNOFFICIAL_LANGUAGES el.InstallRuntime=Εγκατάσταση βιβλιοθηκών... eu.InstallRuntime=Runtime liburutegiak ezartzen... id.InstallRuntime=Memasang runtime libraries... -pt_PT.InstallRuntime=A instalar livrarias de runtime... -uk_UA.InstallRuntime=Встановлюю бібліотеки реального часу... zh_CN.InstallRuntime=正在安装运行库…… zh_TW.InstallRuntime=正在安裝運行庫…… +#endif + StartMenuIcon=Create a start menu icon +pt_PT.StartMenuIcon=Criar ícone no menu iniciar +uk_UA.StartMenuIcon=Створити піктограму в меню Запустити +#ifdef UNOFFICIAL_LANGUAGES el.StartMenuIcon=Δημιουργία εικονιδίου στο μενού έναρξης eu.StartMenuIcon=Sortu hasiera menuko ikur bat id.StartMenuIcon=Buat ikon di menu awal -pt_PT.StartMenuIcon=Criar ícone no menu iniciar -uk_UA.StartMenuIcon=Створити піктограму в меню Запустити zh_CN.StartMenuIcon=创建开始菜单图标 zh_TW.StartMenuIcon=創建開始功能表圖示 +#endif + CheckForUpdates=Automatically check for new versions of Aegisub +pt_PT.CheckForUpdates=Verifica automaticamente a existência de novas versões do Aegisub +uk_UA.CheckForUpdates=Автоматично перевіряти Aegisub на нові версії +#ifdef UNOFFICIAL_LANGUAGES el.CheckForUpdates=Αυτόματος έλεγχος για καινούριες εκδόσεις του Aegisub eu.CheckForUpdates=Berezgaitasunez egiaztatu Aegisub-ren bertsio berririk dagoen id.CheckForUpdates=Otomatis cek versi terbaru Aegisub -pt_PT.CheckForUpdates=Verifica automaticamente a existência de novas versões do Aegisub -uk_UA.CheckForUpdates=Автоматично перевіряти Aegisub на нові версії zh_CN.CheckForUpdates=自动检查Aegisub的新版本 zh_TW.CheckForUpdates=自動檢查Aegisub的新版本 +#endif + UpdatesGroup=Update Checker: +pt_PT.UpdatesGroup=Verificar Actualizações: +uk_UA.UpdatesGroup=Модуль Перевірки на Оновлення: +#ifdef UNOFFICIAL_LANGUAGES el.UpdatesGroup=Έλεγχος Ενημερώσεων: eu.UpdatesGroup=Eguneraketa Egiaztatzailea: id.UpdatesGroup=Pemeriksa Pembaharuan -pt_PT.UpdatesGroup=Verificar Actualizações: -uk_UA.UpdatesGroup=Модуль Перевірки на Оновлення: zh_CN.UpdatesGroup=自动更新: zh_TW.UpdatesGroup=自動更新: +#endif ; Replacement for License page, no need to bother the user with legal mumbo-jumbo [Messages] WelcomeLabel2=This will install Aegisub {#BUILD_GIT_VERSION_STRING} on your computer.%n%nAegisub is covered by the GNU General Public License version 2. This means you may use the application for any purpose without charge, but that no warranties of any kind are given either.%n%nSee the Aegisub website for information on obtaining the source code. +pt_PT.WelcomeLabel2=Irá ser instalado no seu computador a versão {#BUILD_GIT_VERSION_STRING} do Aegisub.%n%nO Aegisub está protegido sob a Licença Pública Geral GNU (GPL version 2). O que significa que poderá fazer uso da aplicação para qualquer propósito, sem que seja cobrado, mas não serão dadas quaisquer tipos de garantias.%n%nVeja a página do Aegisub para mais informações sobre como obter o código-fonte. +uk_UA.WelcomeLabel2=Зараз буде встанвлено Aegisub {#BUILD_GIT_VERSION_STRING} на ваш комп'ютер.%n%nAegisub захищено універсальною громадською ліцензією GNU, версія 2. Це означає, що ви можете використосувати цю програму для будь яких цілей безкоштовно, але, в будь-якому випадку, ми не даємо жодних гарантій.%n%nДивіться сайт Aegisub для інформації щодо отримання вихідного коду. +#ifdef UNOFFICIAL_LANGUAGES el.WelcomeLabel2=Αυτό θα εγκαταστήσει το Aegisub {#BUILD_GIT_VERSION_STRING} στον υπολογιστή σας.%n%nΤο Aegisub καλύπτεται από τον άδεια GNU General Public License version 2. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε την εφαρμογή για κάθε σκοπό χωρίς χρέωση, αλλά δεν υπάρχουν εγγυήσεις καμίας φύσης.%n%nΔείτε την ιστοσελίδα του Aegisub για πληροφορίες σχετικά με την απόκτηση του πηγαίου κώδικα. eu.WelcomeLabel2=Honek Aegisub {#BUILD_GIT_VERSION_STRING} ezarriko du zure ordenagailuan.%n%nAegisub GNU Baimen Publiko Orokorra 2. bertsioa Baimenak estalia dago. Honek esanahi du aplikazio hau edozein asmotarako erabili dezakezula ordaindu behar izan gabe, baina ez da inolako berme motarik ematen.%n%nIkusi Aegisub webgunea iturburu kodea lortzeko argibideetarako. id.WelcomeLabel2=Ini akan memasang Aegisub {#BUILD_GIT_VERSION_STRING} di komputer Anda.%n%nAegisub dilindungi oleh Lisensi Publik Umum GNU versi 2. Artinya Anda bisa menggunakan aplikasi ini untuk tujuan apa pun tanpad dipungut biaya, tapi tidak ada jaminan yang bisa diberikan.%n%nLihat laman situs Aegisub untuk memperoleh informasi sumber kode. -pt_PT.WelcomeLabel2=Irá ser instalado no seu computador a versão {#BUILD_GIT_VERSION_STRING} do Aegisub.%n%nO Aegisub está protegido sob a Licença Pública Geral GNU (GPL version 2). O que significa que poderá fazer uso da aplicação para qualquer propósito, sem que seja cobrado, mas não serão dadas quaisquer tipos de garantias.%n%nVeja a página do Aegisub para mais informações sobre como obter o código-fonte. -uk_UA.WelcomeLabel2=Зараз буде встанвлено Aegisub {#BUILD_GIT_VERSION_STRING} на ваш комп'ютер.%n%nAegisub захищено універсальною громадською ліцензією GNU, версія 2. Це означає, що ви можете використосувати цю програму для будь яких цілей безкоштовно, але, в будь-якому випадку, ми не даємо жодних гарантій.%n%nДивіться сайт Aegisub для інформації щодо отримання вихідного коду. zh_CN.WelcomeLabel2=将会在您的电脑上安装Aegisub {#BUILD_GIT_VERSION_STRING} 。%n%n Aegisub适用于GNU通用公共许可证第二版(GPLv2),这意味着您可以将该应用程序用于任何目的而不需要支付费用,但同时也不会得到任何形式的担保。%n%n您可以到Aegisub官网获取源代码信息。 zh_TW.WelcomeLabel2=將會在您的電腦上安裝Aegisub {#BUILD_GIT_VERSION_STRING} 。%n%n Aegisub適用於GNU通用公共許可證第二版(GPLv2),這意味著您可以將該應用程式用於任何目的而不需要支付費用,但同時也不會得到任何形式的擔保。%n%n您可以到Aegisub官網獲取原始程式碼資訊。 +#endif diff --git a/packages/win_installer/fragment_translations.iss b/packages/win_installer/fragment_translations.iss index 08d6a5ca5..2e6098711 100644 --- a/packages/win_installer/fragment_translations.iss +++ b/packages/win_installer/fragment_translations.iss @@ -1,98 +1,64 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - - -; This file declares everything related to installable translations of Aegisub +; This file declares everything related to installable translations of Aegisub [Files] ; localization (commented out ones are out of date; some don't have wxstd.mo) -Source: ..\..\po\ar.mo; DestDir: {app}\locale\ar; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +#ifdef ENABLE_TRANSLATIONS +Source: {#BUILD_ROOT}\po\ar.mo; DestDir: {app}\locale\ar; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-ar.mo; DestDir: {app}\locale\ar; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\bg.mo; DestDir: {app}\locale\bg; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\bg.mo; DestDir: {app}\locale\bg; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Missing wxstd for Bulgarian -Source: ..\..\po\ca.mo; DestDir: {app}\locale\ca; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\ca.mo; DestDir: {app}\locale\ca; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-ca.mo; DestDir: {app}\locale\ca; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\cs.mo; DestDir: {app}\locale\cs; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\cs.mo; DestDir: {app}\locale\cs; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-cs.mo; DestDir: {app}\locale\cs; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\da.mo; DestDir: {app}\locale\da; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\da.mo; DestDir: {app}\locale\da; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-da.mo; DestDir: {app}\locale\da; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\de.mo; DestDir: {app}\locale\de; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\de.mo; DestDir: {app}\locale\de; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-de.mo; DestDir: {app}\locale\de; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\el.mo; DestDir: {app}\locale\el; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\el.mo; DestDir: {app}\locale\el; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-el.mo; DestDir: {app}\locale\el; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\es.mo; DestDir: {app}\locale\es; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\es.mo; DestDir: {app}\locale\es; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-es.mo; DestDir: {app}\locale\es; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\eu.mo; DestDir: {app}\locale\eu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\eu.mo; DestDir: {app}\locale\eu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-eu.mo; DestDir: {app}\locale\eu; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\fa.mo; DestDir: {app}\locale\fa; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\fa.mo; DestDir: {app}\locale\fa; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Farsi wxstd missing ;Source: src\mo\wxstd-fa.mo; DestDir: {app}\locale\fa; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\fi.mo; DestDir: {app}\locale\fi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\fi.mo; DestDir: {app}\locale\fi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-fi.mo; DestDir: {app}\locale\fi; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\fr_FR.mo; DestDir: {app}\locale\fr_FR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\fr_FR.mo; DestDir: {app}\locale\fr_FR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-fr.mo; DestDir: {app}\locale\fr_FR; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\gl.mo; DestDir: {app}\locale\gl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\gl.mo; DestDir: {app}\locale\gl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-gl_ES.mo; DestDir: {app}\locale\gl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\hu.mo; DestDir: {app}\locale\hu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\hu.mo; DestDir: {app}\locale\hu; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-hu.mo; DestDir: {app}\locale\hu; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\id.mo; DestDir: {app}\locale\id; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\id.mo; DestDir: {app}\locale\id; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-id.mo; DestDir: {app}\locale\id; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\it.mo; DestDir: {app}\locale\it; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\it.mo; DestDir: {app}\locale\it; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-it.mo; DestDir: {app}\locale\it; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\ja.mo; DestDir: {app}\locale\ja; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\ja.mo; DestDir: {app}\locale\ja; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-ja.mo; DestDir: {app}\locale\ja; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\ko.mo; DestDir: {app}\locale\ko; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\ko.mo; DestDir: {app}\locale\ko; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-ko_KR.mo; DestDir: {app}\locale\ko; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\nl.mo; DestDir: {app}\locale\nl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\nl.mo; DestDir: {app}\locale\nl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-nl.mo; DestDir: {app}\locale\nl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\pl.mo; DestDir: {app}\locale\pl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\pl.mo; DestDir: {app}\locale\pl; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-pl.mo; DestDir: {app}\locale\pl; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-pt_BR.mo; DestDir: {app}\locale\pt_BR; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\pt_PT.mo; DestDir: {app}\locale\pt_PT; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\pt_PT.mo; DestDir: {app}\locale\pt_PT; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-pt.mo; DestDir: {app}\locale\pt_PT; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\ru.mo; DestDir: {app}\locale\ru; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\ru.mo; DestDir: {app}\locale\ru; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-ru.mo; DestDir: {app}\locale\ru; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\sr_RS.mo; DestDir: {app}\locale\sr_RS; DestName: aegisub.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\sr_RS@latin.mo; DestDir: {app}\locale\sr_RS@latin; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\sr_RS.mo; DestDir: {app}\locale\sr_RS; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\sr_RS@latin.mo; DestDir: {app}\locale\sr_RS@latin; DestName: aegisub.mo; Flags: ignoreversion; Components: translations ; Missing wxstd for Serbian -Source: ..\..\po\uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-uk_UA.mo; DestDir: {app}\locale\uk_UA; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\vi.mo; DestDir: {app}\locale\vi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\vi.mo; DestDir: {app}\locale\vi; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-vi.mo; DestDir: {app}\locale\vi; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-zh_CN.mo; DestDir: {app}\locale\zh_CN; DestName: wxstd.mo; Flags: ignoreversion; Components: translations -Source: ..\..\po\zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: aegisub.mo; Flags: ignoreversion; Components: translations +Source: {#BUILD_ROOT}\po\zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: aegisub.mo; Flags: ignoreversion; Components: translations Source: src\mo\wxstd-zh_TW.mo; DestDir: {app}\locale\zh_TW; DestName: wxstd.mo; Flags: ignoreversion; Components: translations - +#endif diff --git a/packages/win_installer/license.txt b/packages/win_installer/license.txt index 732874e53..d78767c5c 100644 --- a/packages/win_installer/license.txt +++ b/packages/win_installer/license.txt @@ -1,4 +1,4 @@ -Copyright (c) 2005-2014, the Aegisub Team. +Copyright (c) 2005-2020, the Aegisub Team. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/tools/version.ps1 b/tools/version.ps1 index f02e47dc6..13e51b4f2 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -63,7 +63,7 @@ if ($exactGitTag -match $semVerMatch) { if ($tag -match $semVerMatch) {# $version['TAGGED_RELEASE'] = $false $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] + $gitRevision - $version['INSTALLER_VERSION'] = ($Matches[1..3] -join '.') + "-" + $gitBranch + $version['INSTALLER_VERSION'] = ($Matches[1..3] -join '.') break; } } diff --git a/tools/win-installer-setup.ps1 b/tools/win-installer-setup.ps1 new file mode 100644 index 000000000..42ee0cc42 --- /dev/null +++ b/tools/win-installer-setup.ps1 @@ -0,0 +1,80 @@ +#!/usr/bin/env powershell + +param ( + [Parameter(Position = 0)] + [string]$BuildRoot, + [Parameter(Position = 1)] + [string]$SourceRoot +) + +$InstallerDir = Join-Path $SourceRoot "packages\win_installer" | Resolve-Path +$DepsDir = Join-Path $BuildRoot "installer-deps" +if (!(Test-Path $DepsDir)) { + New-Item -ItemType Directory -Path $DepsDir +} + +$Env:BUILD_ROOT = $BuildRoot +$Env:SOURCE_ROOT = $SourceRoot + +Set-Location $DepsDir + +# DepCtrl +if (!(Test-Path DependencyControl)) { + git clone https://github.com/TypesettingTools/DependencyControl.git +} + +# YUtils +if (!(Test-Path YUtils)) { + git clone https://github.com/TypesettingTools/YUtils.git +} + +# luajson +if (!(Test-Path luajson)) { + git clone https://github.com/harningt/luajson.git +} + +# Avisynth +if (!(Test-Path AviSynthPlus64)) { + $avsReleases = Invoke-WebRequest "https://api.github.com/repos/AviSynth/AviSynthPlus/releases/latest" -UseBasicParsing | ConvertFrom-Json + $avsUrl = $avsReleases.assets[0].browser_download_url + Invoke-WebRequest $avsUrl -OutFile AviSynthPlus.7z -UseBasicParsing + 7z x AviSynthPlus.7z + Rename-Item (Get-ChildItem -Filter "AviSynthPlus_*" -Directory) AviSynthPlus64 + Remove-Item AviSynthPlus.7z +} + +# VSFilter +if (!(Test-Path VSFilter)) { + $vsFilterDir = New-Item -ItemType Directory VSFilter + Set-Location $vsFilterDir + $vsFilterReleases = Invoke-WebRequest "https://api.github.com/repos/pinterf/xy-VSFilter/releases/latest" -UseBasicParsing | ConvertFrom-Json + $vsFilterUrl = $vsFilterReleases.assets[0].browser_download_url + Invoke-WebRequest $vsFilterUrl -OutFile VSFilter.7z -UseBasicParsing + 7z x VSFilter.7z + Remove-Item VSFilter.7z + Set-Location $DepsDir +} + +# ffi-experiments +if (!(Test-Path ffi-experiments)) { + Get-Command "moonc" # check to ensure Moonscript is present + git clone https://github.com/TypesettingTools/ffi-experiments.git + Set-Location ffi-experiments + meson build -Ddefault_library=static + meson compile -C build + Set-Location $DepsDir +} + +# VC++ redistributable +if (!(Test-Path VC_redist)) { + $redistDir = New-Item -ItemType Directory VC_redist + Invoke-WebRequest https://aka.ms/vs/16/release/VC_redist.x64.exe -OutFile "$redistDir\VC_redist.x64.exe" -UseBasicParsing +} + +# TODO dictionaries + +# TODO localization + +# Invoke InnoSetup +$IssUrl = Join-Path $InstallerDir "aegisub_depctrl.iss" +iscc $IssUrl From 106c7537820ad14d02e36f24b50e1d6a4deea858 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 22 Dec 2020 01:06:07 -0500 Subject: [PATCH 168/185] actions: support installer generation on CI --- .github/workflows/ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95e8f4e51..a676d1ef4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,14 @@ jobs: - name: Install dependencies (Windows) if: matrix.config.os == 'windows-latest' - run: choco install ninja + run: | + choco install ninja + $url = "https://github.com/leafo/moonscript/releases/download/win32-v0.5.0/moonscript-187bac54ee5a7450013e9c38e005a0e671b76f45.zip" + mkdir moonscript + Invoke-WebRequest -Uri $url -OutFile ".\moonscript\moonscript.zip" + cd moonscript + 7z e moonscript.zip + Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Install dependencies (Linux) if: matrix.config.os == 'ubuntu-latest' @@ -71,6 +78,10 @@ jobs: - name: Build run: meson compile -C build + - name: Generate Windows installer + if: matrix.config.os == 'windows-latest' + run: ninja win-installer + - name: Upload artifacts uses: actions/upload-artifact@v2 if: matrix.config.os == 'windows-latest' From 8cf4100c871b83e1f55d431ec22b3425a99e2660 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 22 Dec 2020 22:52:28 -0500 Subject: [PATCH 169/185] meson: fix resource file compilation This enables video to load correctly in Windows builds --- src/meson.build | 27 +++++++++++++++++++++++++++ src/res/res.rc | 20 +++----------------- tools/version.ps1 | 4 ++-- 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/meson.build b/src/meson.build index 29dfe2169..90c981792 100644 --- a/src/meson.build +++ b/src/meson.build @@ -188,6 +188,33 @@ elif host_machine.system() == 'windows' else error('Missing Windows SDK Uniscribe Library (usp10.h / usp10.lib)') endif + + res_inc = include_directories('bitmaps/windows') + res_dep_files = files( + 'bitmaps/windows/icon.ico', + 'bitmaps/windows/eyedropper.cur', + ) + windows = import('windows') + if wx_dep.type_name() != 'not-found' # system wx + raw_wx_windres_args = wx_dep.get_variable(configtool: 'rescomp').split() + wx_windres_args = [] + foreach arg: raw_wx_windres_args + if arg != 'windres' + wx_windres_args += arg + endif + endforeach + aegisub_src += windows.compile_resources('res/res.rc', + args: wx_windres_args, + depend_files: res_dep_files, + depends: version_h, + include_directories: [res_inc, version_inc]) + else # subproject + wx_inc = wx.include_directories('wxmono') + aegisub_src += windows.compile_resources('res/res.rc', + depend_files: res_dep_files, + depends: version_h, + include_directories: [res_inc, version_inc, wx_inc]) + endif elif conf.get('WITH_FONTCONFIG') == '1' aegisub_src += 'font_file_lister_fontconfig.cpp' endif diff --git a/src/res/res.rc b/src/res/res.rc index 45616b8cb..26f268165 100644 --- a/src/res/res.rc +++ b/src/res/res.rc @@ -23,23 +23,9 @@ eyedropper_cursor CURSOR "../bitmaps/windows/eyedropper.cur" #define wxUSE_NO_MANIFEST 1 #include "wx/msw/wx.rc" -#include "../../build/git_version.h" +#include "git_version.h" #include -#ifdef _DEBUG - #ifdef _WIN64 - #define AGI_RC_FILENAME "aegisub64d" - #else - #define AGI_RC_FILENAME "aegisub32d" - #endif -#else - #ifdef _WIN64 - #define AGI_RC_FILENAME "aegisub64" - #else - #define AGI_RC_FILENAME "aegisub32" - #endif -#endif - #ifdef _DEBUG #define AGI_RC_FLAG_DEBUG VS_FF_DEBUG #else @@ -68,8 +54,8 @@ BEGIN VALUE "CompanyName", "Aegisub" VALUE "FileDescription", "Aegisub subtitle editor" VALUE "FileVersion", BUILD_GIT_VERSION_STRING - VALUE "InternalName", AGI_RC_FILENAME - VALUE "OriginalFilename", AGI_RC_FILENAME ".exe" + VALUE "InternalName", "aegisub" + VALUE "OriginalFilename", "aegisub.exe" VALUE "ProductName", "Aegisub" VALUE "ProductVersion", BUILD_GIT_VERSION_STRING END diff --git a/tools/version.ps1 b/tools/version.ps1 index 13e51b4f2..7a05b7bf5 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -62,7 +62,7 @@ if ($exactGitTag -match $semVerMatch) { $tag = git -C $repositoryRootPath describe --exact-match --tags $rev 2>$null if ($tag -match $semVerMatch) {# $version['TAGGED_RELEASE'] = $false - $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] + $gitRevision + $version['RESOURCE_BASE_VERSION'] = $Matches[1..3] $version['INSTALLER_VERSION'] = ($Matches[1..3] -join '.') break; } @@ -85,5 +85,5 @@ $version.GetEnumerator() | %{ {"`"$($value.ToString())`""} } } - "#define $($_.Key) $($fmtValue)" + "`n#define $($_.Key) $($fmtValue)" } | Out-File -FilePath $gitVersionHeaderPath -Encoding utf8 From 9211b7b632419c63c87d46f70e8ccc1e2717ea87 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 23 Dec 2020 02:59:57 -0500 Subject: [PATCH 170/185] win-installer: fix warnings --- packages/win_installer/aegisub3.iss | 4 ++-- packages/win_installer/fragment_migrate_code.iss | 2 +- packages/win_installer/fragment_setupbase.iss | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/win_installer/aegisub3.iss b/packages/win_installer/aegisub3.iss index 61960ad36..b4361a733 100644 --- a/packages/win_installer/aegisub3.iss +++ b/packages/win_installer/aegisub3.iss @@ -5,7 +5,7 @@ [Setup] AppID={{24BC8B57-716C-444F-B46B-A3349B9164C5} -DefaultDirName={pf}\Aegisub +DefaultDirName={commonpf}\Aegisub PrivilegesRequired=poweruser ArchitecturesInstallIn64BitMode=x64 ArchitecturesAllowed=x64 @@ -41,7 +41,7 @@ begin if CurStep = ssPostInstall then begin - if IsTaskSelected('checkforupdates') then + if WizardIsTaskSelected('checkforupdates') then Updates := 'true' else Updates := 'false'; diff --git a/packages/win_installer/fragment_migrate_code.iss b/packages/win_installer/fragment_migrate_code.iss index ff655154f..2ba53ffdd 100644 --- a/packages/win_installer/fragment_migrate_code.iss +++ b/packages/win_installer/fragment_migrate_code.iss @@ -31,7 +31,7 @@ end; function InitializeSetupMigration: Boolean; begin LegacyStartMenuFolder := 'Aegisub'; - LegacyInstallFolder := ExpandConstant('{pf}\Aegisub'); + LegacyInstallFolder := ExpandConstant('{commonpf32}\Aegisub'); LegacyVersionNumber := '1.x'; try diff --git a/packages/win_installer/fragment_setupbase.iss b/packages/win_installer/fragment_setupbase.iss index 168c5f88b..1d4529587 100644 --- a/packages/win_installer/fragment_setupbase.iss +++ b/packages/win_installer/fragment_setupbase.iss @@ -28,6 +28,7 @@ UsePreviousGroup=yes UsePreviousSetupType=no UsePreviousAppDir=yes UsePreviousTasks=no +UsedUserAreasWarning=no UninstallDisplayIcon={app}\aegisub{#ARCH}.exe ; Default to a large welcome bitmap, suitable for large fonts ; The normal fonts version is selected by code below From 32729800dfd5b8b3b105ef29cf09f6cfd617f511 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 23 Dec 2020 03:58:36 -0500 Subject: [PATCH 171/185] actions: build as release for Windows CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a676d1ef4..30c0b75a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,7 +69,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 - run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static + run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static -Dbuildtype=release - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' From 56581fbce30d395619468e11e061820ad64e54ba Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 23 Dec 2020 05:07:02 -0500 Subject: [PATCH 172/185] actions: invoke win-installer correctly, install innosetup on ci --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30c0b75a5..5ece2b685 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: - name: Install dependencies (Windows) if: matrix.config.os == 'windows-latest' run: | - choco install ninja + choco install ninja innosetup $url = "https://github.com/leafo/moonscript/releases/download/win32-v0.5.0/moonscript-187bac54ee5a7450013e9c38e005a0e671b76f45.zip" mkdir moonscript Invoke-WebRequest -Uri $url -OutFile ".\moonscript\moonscript.zip" @@ -80,7 +80,7 @@ jobs: - name: Generate Windows installer if: matrix.config.os == 'windows-latest' - run: ninja win-installer + run: meson compile win-installer -C build - name: Upload artifacts uses: actions/upload-artifact@v2 From f240c01cbc88ca8c4bec4e0de64dcabdc6ef7310 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 24 Dec 2020 16:57:08 -0500 Subject: [PATCH 173/185] meson: only manually set _DEBUG on non-windows --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 0b53d1967..dd5e84877 100644 --- a/meson.build +++ b/meson.build @@ -45,7 +45,8 @@ if host_machine.system() == 'windows' add_project_arguments('-DNOMINMAX', '-D_WIN32_WINNT=0x0602', language: 'cpp') endif -if get_option('debug') +# MSVC sets this automatically with -MDd, but it has a different meaning on other platforms +if get_option('debug') and host_machine.system() != 'windows' add_project_arguments('-D_DEBUG', language: 'cpp') endif From c487dd2bdbab58ad9f50da6624132165abd7a123 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 9 Jan 2021 03:17:05 -0500 Subject: [PATCH 174/185] Parially revert fffb138b8175b4838b6a063863756b7c6b2db547 I haven't checked whether reverting this breaks IME input, and if it doesn't what changed on wx's end. However, this is the commit that uses private symbols, and so reverting it lets us build against upstream wx. Even if this is a loss in functionality, for now it's fine. --- src/meson.build | 1 - src/osx/scintilla_ime.mm | 212 --------------------------------------- src/subs_edit_box.cpp | 4 +- src/subs_edit_ctrl.cpp | 8 -- src/utils.cpp | 7 -- src/utils.h | 9 -- 6 files changed, 1 insertion(+), 240 deletions(-) delete mode 100644 src/osx/scintilla_ime.mm diff --git a/src/meson.build b/src/meson.build index 90c981792..13570c139 100644 --- a/src/meson.build +++ b/src/meson.build @@ -168,7 +168,6 @@ if host_machine.system() == 'darwin' 'font_file_lister_coretext.mm', 'osx/osx_utils.mm', 'osx/retina_helper.mm', - 'osx/scintilla_ime.mm', ] elif host_machine.system() == 'windows' aegisub_src += [ diff --git a/src/osx/scintilla_ime.mm b/src/osx/scintilla_ime.mm deleted file mode 100644 index 4806d1797..000000000 --- a/src/osx/scintilla_ime.mm +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright (c) 2014, Thomas Goyne -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// -// Aegisub Project http://www.aegisub.org/ - -#import -#import -#import - -// from src/osx/cocoa/window.mm -@interface wxNSView : NSView { - BOOL _hasToolTip; - NSTrackingRectTag _lastToolTipTrackTag; - id _lastToolTipOwner; - void *_lastUserData; -} -@end - -@interface IMEState : NSObject -@property (nonatomic) NSRange markedRange; -@property (nonatomic) bool undoActive; -@end - -@implementation IMEState -- (id)init { - self = [super init]; - self.markedRange = NSMakeRange(NSNotFound, 0); - self.undoActive = false; - return self; -} -@end - -@interface ScintillaNSView : wxNSView -@property (nonatomic, readonly) wxStyledTextCtrl *stc; -@property (nonatomic, readonly) IMEState *state; -@end - -@implementation ScintillaNSView -- (Class)superclass { - return [wxNSView superclass]; -} - -- (wxStyledTextCtrl *)stc { - return static_cast(wxWidgetImpl::FindFromWXWidget(self)->GetWXPeer()); -} - -- (IMEState *)state { - return objc_getAssociatedObject(self, [IMEState class]); -} - -- (void)invalidate { - self.state.markedRange = NSMakeRange(NSNotFound, 0); - [self.inputContext discardMarkedText]; -} - -#pragma mark - NSTextInputClient - -- (NSAttributedString *)attributedSubstringForProposedRange:(NSRange)aRange - actualRange:(NSRangePointer)actualRange -{ - return nil; -} - -- (NSUInteger)characterIndexForPoint:(NSPoint)point { - return self.stc->PositionFromPoint(wxPoint(point.x, point.y)); -} - -- (BOOL)drawsVerticallyForCharacterAtIndex:(NSUInteger)charIndex { - return NO; -} - -- (NSRect)firstRectForCharacterRange:(NSRange)range - actualRange:(NSRangePointer)actualRange -{ - auto stc = self.stc; - int line = stc->LineFromPosition(range.location); - int height = stc->TextHeight(line); - auto pt = stc->PointFromPosition(range.location); - - int width = 0; - if (range.length > 0) { - // If the end of the range is on the next line, the range should be - // truncated to the current line and actualRange should be set to the - // truncated range - int end_line = stc->LineFromPosition(range.location + range.length); - if (end_line > line) { - range.length = stc->PositionFromLine(line + 1) - 1 - range.location; - *actualRange = range; - } - - auto end_pt = stc->PointFromPosition(range.location + range.length); - width = end_pt.x - pt.x; - } - - auto rect = NSMakeRect(pt.x, pt.y, width, height); - rect = [self convertRect:rect toView:nil]; - return [self.window convertRectToScreen:rect]; -} - -- (BOOL)hasMarkedText { - return self.state.markedRange.length > 0; -} - -- (void)insertText:(id)str replacementRange:(NSRange)replacementRange { - [self unmarkText]; - [super insertText:str replacementRange:replacementRange]; -} - -- (NSRange)markedRange { - return self.state.markedRange; -} - -- (NSRange)selectedRange { - long from = 0, to = 0; - self.stc->GetSelection(&from, &to); - return NSMakeRange(from, to - from); -} - -- (void)setMarkedText:(id)str - selectedRange:(NSRange)range - replacementRange:(NSRange)replacementRange -{ - if ([str isKindOfClass:[NSAttributedString class]]) - str = [str string]; - - auto stc = self.stc; - auto state = self.state; - - int pos = stc->GetInsertionPoint(); - if (state.markedRange.length > 0) { - pos = state.markedRange.location; - stc->DeleteRange(pos, state.markedRange.length); - stc->SetSelection(pos, pos); - } else { - state.undoActive = stc->GetUndoCollection(); - if (state.undoActive) - stc->SetUndoCollection(false); - } - - auto utf8 = [str UTF8String]; - auto utf8len = strlen(utf8); - stc->AddTextRaw(utf8, utf8len); - - state.markedRange = NSMakeRange(pos, utf8len); - - stc->SetIndicatorCurrent(1); - stc->IndicatorFillRange(pos, utf8len); - - // Re-enable undo if we got a zero-length string as that means we're done - if (!utf8len && state.undoActive) - stc->SetUndoCollection(true); - else { - int start = pos; - // Range is in utf-16 code units - if (range.location > 0) - start += [[str substringToIndex:range.location] lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; - int length = [[str substringWithRange:range] lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; - stc->SetSelection(start, start + length); - } -} - -- (void)unmarkText { - auto state = self.state; - if (state.markedRange.length > 0) { - self.stc->DeleteRange(state.markedRange.location, state.markedRange.length); - state.markedRange = NSMakeRange(NSNotFound, 0); - if (state.undoActive) - self.stc->SetUndoCollection(true); - } -} - -- (NSArray *)validAttributesForMarkedText { - return @[]; -} -@end - -namespace osx { namespace ime { -void inject(wxStyledTextCtrl *ctrl) { - id view = (id)ctrl->GetHandle(); - object_setClass(view, [ScintillaNSView class]); - - auto state = [IMEState new]; - objc_setAssociatedObject(view, [IMEState class], state, - OBJC_ASSOCIATION_RETAIN_NONATOMIC); - [state release]; -} - -void invalidate(wxStyledTextCtrl *ctrl) { - [(ScintillaNSView *)ctrl->GetHandle() invalidate]; -} - -bool process_key_event(wxStyledTextCtrl *ctrl, wxKeyEvent &evt) { - if (evt.GetModifiers() != 0) return false; - if (evt.GetKeyCode() != WXK_RETURN && evt.GetKeyCode() != WXK_TAB) return false; - if (![(ScintillaNSView *)ctrl->GetHandle() hasMarkedText]) return false; - - evt.Skip(); - return true; -} - -} } diff --git a/src/subs_edit_box.cpp b/src/subs_edit_box.cpp index ca08b4177..8ae123713 100644 --- a/src/subs_edit_box.cpp +++ b/src/subs_edit_box.cpp @@ -52,7 +52,6 @@ #include "text_selection_controller.h" #include "timeedit_ctrl.h" #include "tooltip_manager.h" -#include "utils.h" #include "validators.h" #include @@ -427,8 +426,7 @@ void SubsEditBox::UpdateFrameTiming(agi::vfr::Framerate const& fps) { } void SubsEditBox::OnKeyDown(wxKeyEvent &event) { - if (!osx::ime::process_key_event(edit_ctrl, event)) - hotkey::check("Subtitle Edit Box", c, event); + hotkey::check("Subtitle Edit Box", c, event); } void SubsEditBox::OnChange(wxStyledTextEvent &event) { diff --git a/src/subs_edit_ctrl.cpp b/src/subs_edit_ctrl.cpp index d744900eb..d2d31ee6b 100644 --- a/src/subs_edit_ctrl.cpp +++ b/src/subs_edit_ctrl.cpp @@ -83,8 +83,6 @@ SubsTextEditCtrl::SubsTextEditCtrl(wxWindow* parent, wxSize wsize, long style, a , thesaurus(agi::make_unique()) , context(context) { - osx::ime::inject(this); - // Set properties SetWrapMode(wxSTC_WRAP_WORD); SetMarginWidth(1,0); @@ -187,7 +185,6 @@ void SubsTextEditCtrl::OnLoseFocus(wxFocusEvent &event) { } void SubsTextEditCtrl::OnKeyDown(wxKeyEvent &event) { - if (osx::ime::process_key_event(this, event)) return; event.Skip(); // Workaround for wxSTC eating tabs. @@ -245,10 +242,6 @@ void SubsTextEditCtrl::SetStyles() { // Misspelling indicator IndicatorSetStyle(0,wxSTC_INDIC_SQUIGGLE); IndicatorSetForeground(0,wxColour(255,0,0)); - - // IME pending text indicator - IndicatorSetStyle(1, wxSTC_INDIC_PLAIN); - IndicatorSetUnder(1, true); } void SubsTextEditCtrl::UpdateStyle() { @@ -313,7 +306,6 @@ void SubsTextEditCtrl::UpdateCallTip() { } void SubsTextEditCtrl::SetTextTo(std::string const& text) { - osx::ime::invalidate(this); SetEvtHandlerEnabled(false); Freeze(); diff --git a/src/utils.cpp b/src/utils.cpp index 69c53bd1c..a014b0a29 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -217,13 +217,6 @@ void SetFloatOnParent(wxWindow *) { } RetinaHelper::RetinaHelper(wxWindow *) { } RetinaHelper::~RetinaHelper() { } int RetinaHelper::GetScaleFactor() const { return 1; } - -// OS X implementation in scintilla_ime.mm -namespace osx { namespace ime { - void inject(wxStyledTextCtrl *) { } - void invalidate(wxStyledTextCtrl *) { } - bool process_key_event(wxStyledTextCtrl *, wxKeyEvent&) { return false; } -} } #endif wxString FontFace(std::string opt_prefix) { diff --git a/src/utils.h b/src/utils.h index 269100de8..02ef78aac 100644 --- a/src/utils.h +++ b/src/utils.h @@ -106,13 +106,4 @@ namespace osx { bool activate_top_window_other_than(wxFrame *wx); // Bring all windows to the front, maintaining relative z-order void bring_to_front(); - -namespace ime { - /// Inject the IME helper into the given wxSTC - void inject(wxStyledTextCtrl *ctrl); - /// Invalidate any pending text from the IME - void invalidate(wxStyledTextCtrl *ctrl); - /// Give the IME a chance to process a key event and return whether it did - bool process_key_event(wxStyledTextCtrl *ctrl, wxKeyEvent &); -} } From b51463a5f5eb334f253912f470b90d21de341cc9 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 9 Jan 2021 03:18:11 -0500 Subject: [PATCH 175/185] meson: Fix build on OSX --- meson.build | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index dd5e84877..043d9809e 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', - meson_version: '>=0.55.0', + meson_version: '>=0.56.1', default_options: ['cpp_std=c++11', 'b_lto=true', 'buildtype=debugoptimized'], version: '3.2.2') @@ -64,7 +64,7 @@ conf.set('WITH_FONTCONFIG', '0') if host_machine.system() == 'darwin' add_languages('objc', 'objcpp') add_project_arguments('-DGL_SILENCE_DEPRECATION', language: 'cpp') - # meson does not currently support objcpp_std + # meson neither supports objcpp_std nor inherits cpp_std https://github.com/mesonbuild/meson/issues/5495 add_project_arguments('-std=c++11', language: 'objcpp') elif host_machine.system() != 'windows' conf.set('WITH_FONTCONFIG', '1') @@ -106,7 +106,11 @@ endif deps += dependency('zlib') -wx_dep = dependency('wxWidgets', version: '>=3.0.0', +wx_minver = '>=3.0.0' +if host_machine.system() == 'darwin' + wx_minver = '>=3.1.0' +endif +wx_dep = dependency('wxWidgets', version: wx_minver, required: false, modules: ['std', 'stc', 'gl']) @@ -134,11 +138,16 @@ else wx.dependency('wxscintilla') ] + if host_machine.system() == 'windows' or host_machine.system() == 'darwin' + deps += [ + wx.dependency('wxpng'), + ] + endif + if host_machine.system() == 'windows' deps += [ wx.dependency('wxzlib'), - wx.dependency('wxpng'), - wx.dependency('wxexpat') + wx.dependency('wxexpat'), ] if cc.has_header('rpc.h') @@ -215,7 +224,7 @@ if host_machine.system() == 'windows' and not get_option('directsound').disabled endif if host_machine.system() == 'darwin' - frameworks_dep = dependency('appleframeworks', modules : ['CoreText', 'CoreFoundation']) + frameworks_dep = dependency('appleframeworks', modules : ['CoreText', 'CoreFoundation', 'AppKit', 'Carbon']) deps += frameworks_dep endif From bc079922c083fc7cae01d89a1d7dacf110f5f8f1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 9 Jan 2021 03:18:33 -0500 Subject: [PATCH 176/185] actions: Enable OSX CI --- .github/workflows/ci.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ece2b685..2e9652425 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,10 +28,10 @@ jobs: name: "Ubuntu", os: ubuntu-latest } - #- { - # name: "macOS", - # os: macos-latest - #} + - { + name: "macOS", + os: macos-latest + } steps: - uses: actions/checkout@v2 @@ -62,6 +62,12 @@ jobs: 7z e moonscript.zip Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Install dependencies (MacOS) + if: matrix.config.os == 'macos-latest' + run: | + brew install luarocks nasm ninja + luarocks install moonscript --dev + - name: Install dependencies (Linux) if: matrix.config.os == 'ubuntu-latest' run: sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev @@ -71,6 +77,10 @@ jobs: # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static -Dbuildtype=release + - name: Configure (MacOS) + if: matrix.config.os == 'macos-latest' + run: meson build -Ddefault_library=static + - name: Configure (Linux) if: matrix.config.os == 'ubuntu-latest' run: meson build From a77f7d48dfa0b387de9599c16594ed42ceddf1c6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 9 Jan 2021 05:16:32 -0500 Subject: [PATCH 177/185] meson: update to reflect fixes in dependencies --- .github/workflows/ci.yml | 3 +-- README.md | 2 +- subprojects/freetype2.wrap | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e9652425..671e06116 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,8 +74,7 @@ jobs: - name: Configure (Windows) if: matrix.config.os == 'windows-latest' - # -Dfreetype2:png=enabled is a workaround for https://savannah.nongnu.org/bugs/?59458 - run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static -Dbuildtype=release + run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dbuildtype=release - name: Configure (MacOS) if: matrix.config.os == 'macos-latest' diff --git a/README.md b/README.md index f009c4235..713382f1c 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ All other dependencies are either stored in the repository or are included as su Building: 1. Clone Aegisub's repository: `git clone https://github.com/TypesettingTools/Aegisub.git` -2. From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory: `meson build -Ddefault_library=static -Dfreetype2:zlib=system -Dfreetype2:png=enabled -Dfreetype2:default_library=static` +2. From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory: `meson build -Ddefault_library=static` 3. Build with `cd build` and `meson compile` You should now have a binary at `src/aegisub.exe`. diff --git a/subprojects/freetype2.wrap b/subprojects/freetype2.wrap index a86e85e54..d9903f108 100644 --- a/subprojects/freetype2.wrap +++ b/subprojects/freetype2.wrap @@ -5,3 +5,4 @@ revision = master [provide] freetype = freetype2_dep +freetype2 = freetype2_dep From 28bc329678d16a441ce425c44cc56b6077af2985 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 9 Jan 2021 22:50:59 -0500 Subject: [PATCH 178/185] actions: apt-get update on ubuntu --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 671e06116..44fbf0fc2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,9 @@ jobs: - name: Install dependencies (Linux) if: matrix.config.os == 'ubuntu-latest' - run: sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev + run: | + sudo apt-get update + sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev - name: Configure (Windows) if: matrix.config.os == 'windows-latest' From 1a5c19c4d743aafc32ef2de1c4a0d594eac6b3c1 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Jan 2021 00:01:47 -0500 Subject: [PATCH 179/185] actions: force LFS 1.8.0 on macOS --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44fbf0fc2..5a48f4638 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,6 +66,7 @@ jobs: if: matrix.config.os == 'macos-latest' run: | brew install luarocks nasm ninja + luarocks install luafilesystem 1.8.0 luarocks install moonscript --dev - name: Install dependencies (Linux) From 7f46b687e17d19a374fb371cfcc009245f9bd720 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Jan 2021 01:03:45 -0500 Subject: [PATCH 180/185] meson: remove libass dirent patch Handled more properly in libass itself --- subprojects/libass.wrap | 1 - subprojects/packagefiles/libass/dirent.h | 6 ------ 2 files changed, 7 deletions(-) delete mode 100644 subprojects/packagefiles/libass/dirent.h diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 326b3a87b..3e64a4ab2 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -2,4 +2,3 @@ directory = libass url = https://github.com/TypesettingTools/libass.git revision = meson-pr -patch_directory = libass diff --git a/subprojects/packagefiles/libass/dirent.h b/subprojects/packagefiles/libass/dirent.h deleted file mode 100644 index fcbd0289b..000000000 --- a/subprojects/packagefiles/libass/dirent.h +++ /dev/null @@ -1,6 +0,0 @@ -// libass uses dirent in a function we don't use, so just provide a dummy version -typedef struct DIR { int dummy; } DIR; -typedef struct dirent { char *d_name; } dirent; -static inline DIR *opendir(const char *x) { return 0; } -static inline struct dirent *readdir(DIR *x) { return 0; } -static inline void closedir(DIR *x) { } From 4b1d23e6be1d8d8a4e1722fe95cca9484339095e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Jan 2021 01:59:09 -0500 Subject: [PATCH 181/185] actions: add separate debug/release lanes No debug on Windows because the container isn't powerful enough --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a48f4638..ca6010a08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,11 @@ jobs: matrix: config: - { - name: Windows MSVC, + name: Windows MSVC Release, os: windows-latest, - msvc: true + msvc: true, + buildtype: release, + args: -Ddefault_library=static --force-fallback-for=zlib,harfbuzz } #- { # name: Windows MinGW, @@ -25,12 +27,28 @@ jobs: # msvc: false #} - { - name: "Ubuntu", - os: ubuntu-latest + name: Ubuntu Debug, + os: ubuntu-latest, + buildtype: debugoptimized, + args: "" } - { - name: "macOS", - os: macos-latest + name: Ubuntu Release, + os: ubuntu-latest, + buildtype: release, + args: "" + } + - { + name: macOS Debug, + os: macos-latest, + buildtype: debugoptimized, + args: -Ddefault_library=static + } + - { + name: macOS Release, + os: macos-latest, + buildtype: release, + args: -Ddefault_library=static } steps: @@ -75,17 +93,8 @@ jobs: sudo apt-get update sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev - - name: Configure (Windows) - if: matrix.config.os == 'windows-latest' - run: meson build -Ddefault_library=static --force-fallback-for=zlib,harfbuzz -Dbuildtype=release - - - name: Configure (MacOS) - if: matrix.config.os == 'macos-latest' - run: meson build -Ddefault_library=static - - - name: Configure (Linux) - if: matrix.config.os == 'ubuntu-latest' - run: meson build + - name: Configure + run: meson build ${{ matrix.config.args }} -Dbuildtype=${{ matrix.config.buildtype }} - name: Build run: meson compile -C build From 2211b7a0a59f252e18eb708f2518b9a322a7a76e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Jan 2021 02:56:53 -0500 Subject: [PATCH 182/185] README: update for macOS with meson --- README.md | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 713382f1c..87c0c0258 100644 --- a/README.md +++ b/README.md @@ -45,43 +45,16 @@ You can generate the installer with `ninja win-installer` after a successful bui A vaguely recent version of Xcode and the corresponding command-line tools are required. -For personal usage, you can use homebrew to install almost all of Aegisub's dependencies: +For personal usage, you can use pip and homebrew to install almost all of Aegisub's dependencies: - brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config boost - brew install luajit --HEAD + brew install libass nasm ninja boost zlib icu4c pkg-config ffms2 fftw hunspell gettext cmake brew link --force gettext export LDFLAGS="-L/usr/local/opt/icu4c/lib" export CPPFLAGS="-I/usr/local/opt/icu4c/include" export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig" + pip install meson -wxWidgets is located in vendor/wxWidgets, and can be built like so: - - CPPFLAGS="$CPPFLAGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \ - ./configure --disable-aboutdlg --disable-animatectrl --disable-aui --disable-any \ - --disable-bannerwindow --disable-base64 --disable-calendar --disable-caret \ - --disable-cmdline --disable-colourpicker --disable-compat28 --disable-config \ - --disable-constraints --disable-datepick --disable-dctransform --disable-debugreport \ - --disable-dialupman --disable-docview --disable-filehistory --disable-finddlg \ - --disable-fs_archive --disable-fs_inet --disable-fs_zip --disable-fsvolume \ - --disable-fswatcher --disable-gif --disable-help --disable-html --disable-ipc \ - --disable-joystick --disable-jpeg --disable-largefile --disable-markup --disable-mdi \ - --disable-mediactrl --disable-metafiles --disable-miniframe --disable-notifmsg \ - --disable-numberdlg --disable-pcx --disable-pnm --disable-postscript \ - --disable-prefseditor --disable-printarch --disable-progressdlg --disable-propgrid \ - --disable-protocol --disable-protocols --disable-rearrangectrl --disable-ribbon \ - --disable-richtext --disable-richtooltip --disable-snglinst --disable-sockets \ - --disable-sockets --disable-sound --disable-splash --disable-splines \ - --disable-std_iostreams --disable-svg --disable-tarstream --disable-tiff \ - --disable-tipdlg --disable-tipwindow --disable-url --disable-webkit --disable-webview \ - --disable-wizarddlg --disable-xrc \ - --enable-geometry --enable-imaglist --enable-listctrl --enable-stc --with-cocoa \ - --with-libpng=yes --with-macosx-version-min=10.9 \ - --with-opengl \ - --without-libjpeg --without-libtiff --without-regex \ - && make - -Once the dependencies are installed, build Aegisub with `autoreconf && ./configure --with-wxdir=/path/to/Aegisub/vendor/wxWidgets && make && make osx-bundle`. -`autoreconf` should be skipped if you are building from a source tarball rather than `git`. +Once the dependencies are installed, build Aegisub with `meson build && meson compile -C build`. ## Updating Moonscript From 417ba4ff2db712466c419e6ebb5648208393ec73 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Jan 2021 03:09:34 -0500 Subject: [PATCH 183/185] actions: change branch to master --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca6010a08..1dd3fa87e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: Meson CI on: push: - branches: [ meson-vs2019 ] + branches: [ master ] pull_request: - branches: [ meson-vs2019 ] + branches: [ master ] jobs: build: From 25a62f4f122b78020ccca166c1222aab7da94033 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 16 Jan 2021 01:24:19 -0500 Subject: [PATCH 184/185] libass_gdi_fontselect: don't redefine NOMINMAX It's now defined in the build system itself --- src/libass_gdi_fontselect.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libass_gdi_fontselect.cpp b/src/libass_gdi_fontselect.cpp index 3623968e5..dcba736ef 100644 --- a/src/libass_gdi_fontselect.cpp +++ b/src/libass_gdi_fontselect.cpp @@ -23,7 +23,6 @@ extern "C" { #include #define WIN32_LEAN_AND_MEAN -#define NOMINMAX #include namespace { From a2da1616c0dc5f7823d61ff9ec0e75095260cd6d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 16 Jan 2021 01:26:19 -0500 Subject: [PATCH 185/185] meson: set minimum win version to 7 I think setting it at 8 was accidental? This matches the installer, so we should be consistent throughout --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 043d9809e..29d449597 100644 --- a/meson.build +++ b/meson.build @@ -42,7 +42,7 @@ dataroot = datadir / 'aegisub' add_project_arguments('-DP_DATA="@0@"'.format(dataroot), language: 'cpp') if host_machine.system() == 'windows' - add_project_arguments('-DNOMINMAX', '-D_WIN32_WINNT=0x0602', language: 'cpp') + add_project_arguments('-DNOMINMAX', '-D_WIN32_WINNT=0x0601', language: 'cpp') endif # MSVC sets this automatically with -MDd, but it has a different meaning on other platforms

Z9?Vr?n6Vq$o(XDQjXiDK#R73lKxmHR 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 Date: Sun, 29 Apr 2018 15:18:39 -0400 Subject: [PATCH 024/185] More cleanup efforts on the installer scripts Untested, probably still needs work --- packages/win_installer/aegisub3.iss | 13 ++---- packages/win_installer/aegisub_depctrl.iss | 3 ++ packages/win_installer/fragment_assdraw.iss | 43 ------------------- .../win_installer/fragment_associations.iss | 2 - .../win_installer/fragment_automation.iss | 27 +++++------- ...ment_codecs_64.iss => fragment_codecs.iss} | 6 +-- .../win_installer/fragment_mainprogram.iss | 3 +- packages/win_installer/fragment_runtimes.iss | 22 ++++------ packages/win_installer/fragment_setupbase.iss | 5 +-- .../portable/create-portable-64.bat | 23 ---------- .../portable/create-portable.bat | 17 +++----- 11 files changed, 36 insertions(+), 128 deletions(-) create mode 100644 packages/win_installer/aegisub_depctrl.iss delete mode 100644 packages/win_installer/fragment_assdraw.iss rename packages/win_installer/{fragment_codecs_64.iss => fragment_codecs.iss} (98%) delete mode 100644 packages/win_installer/portable/create-portable-64.bat diff --git a/packages/win_installer/aegisub3.iss b/packages/win_installer/aegisub3.iss index a9505044e..2683e02c1 100644 --- a/packages/win_installer/aegisub3.iss +++ b/packages/win_installer/aegisub3.iss @@ -32,7 +32,6 @@ ; Contact: mailto:nielsm@indvikleren.dk ; -#define ARCH64 #define ARCH 64 #include "fragment_setupbase.iss" @@ -42,24 +41,18 @@ AppID={{24BC8B57-716C-444F-B46B-A3349B9164C5} DefaultDirName={pf}\Aegisub PrivilegesRequired=poweruser -#ifdef ARCH64 ArchitecturesInstallIn64BitMode=x64 ArchitecturesAllowed=x64 -#endif #include "fragment_mainprogram.iss" #include "fragment_associations.iss" -#ifdef ARCH64 -#include "fragment_codecs_64.iss" -#else -#include "fragment_codecs_32.iss" -#endif +#include "fragment_codecs.iss" #include "fragment_automation.iss" #include "fragment_translations.iss" #include "fragment_spelling.iss" -#include "fragment_assdraw.iss" +#ifdef DEPCTRL #include "fragment_runtimes.iss" - +#endif [Code] #include "fragment_shell_code.iss" diff --git a/packages/win_installer/aegisub_depctrl.iss b/packages/win_installer/aegisub_depctrl.iss new file mode 100644 index 000000000..069eac029 --- /dev/null +++ b/packages/win_installer/aegisub_depctrl.iss @@ -0,0 +1,3 @@ +#define DEPCTRL + +#include "aegisub3.iss" diff --git a/packages/win_installer/fragment_assdraw.iss b/packages/win_installer/fragment_assdraw.iss deleted file mode 100644 index 405929298..000000000 --- a/packages/win_installer/fragment_assdraw.iss +++ /dev/null @@ -1,43 +0,0 @@ -; Copyright (c) 2007-2009, Niels Martin Hansen -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; -; * Redistributions of source code must retain the above copyright notice, -; this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright notice, -; this list of conditions and the following disclaimer in the documentation -; and/or other materials provided with the distribution. -; * Neither the name of the Aegisub Group nor the names of its contributors -; may be used to endorse or promote products derived from this software -; without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. -; -; ----------------------------------------------------------------------------- -; -; AEGISUB -; -; Website: http://www.aegisub.org/ -; Contact: mailto:nielsm@indvikleren.dk -; - - -[Files] -; ASSDraw3 -Source: vendor\ASSDraw\ASSDraw3.exe; DestDir: {app}; Flags: ignoreversion; Components: assdraw -Source: vendor\ASSDraw\ASSDraw3.chm; DestDir: {app}; Flags: ignoreversion; Components: assdraw - -[Icons] -Name: {commonprograms}\ASSDraw3; Filename: {app}\ASSDraw3.exe; WorkingDir: {app}; IconIndex: 0; Flags: createonlyiffileexists; Comment: Create vector drawings for ASS-format subtitles; Components: assdraw - diff --git a/packages/win_installer/fragment_associations.iss b/packages/win_installer/fragment_associations.iss index 2fe401baf..83315f1d0 100644 --- a/packages/win_installer/fragment_associations.iss +++ b/packages/win_installer/fragment_associations.iss @@ -32,7 +32,6 @@ ; Contact: mailto:nielsm@indvikleren.dk ; - [Files] DestDir: {commontemplates}; Source: template.ass; DestName: Aegisub.ass @@ -195,4 +194,3 @@ Root: HKLM; Subkey: "SOFTWARE\Classes\.m4a\OpenWithProgids"; ValueType: string; Root: HKLM; Subkey: "SOFTWARE\Classes\.wav\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Audio.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.ogg\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Media.1"; Flags: uninsdeletevalue Root: HKLM; Subkey: "SOFTWARE\Classes\.avs\OpenWithProgids"; ValueType: string; ValueName: "Aegisub.Video.1"; Flags: uninsdeletevalue - diff --git a/packages/win_installer/fragment_automation.iss b/packages/win_installer/fragment_automation.iss index d40994a1f..4377ef126 100644 --- a/packages/win_installer/fragment_automation.iss +++ b/packages/win_installer/fragment_automation.iss @@ -38,8 +38,6 @@ DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-1-edgeblur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\macro-2-mkfullwitdh.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\demos; Source: ..\..\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos @@ -62,38 +60,33 @@ DestDir: {app}\automation\include; Source: ..\..\automation\include\unicode.lua; DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main - +; DepCtrl +#ifdef DEPCTRL DestDir: {userappdata}\Aegisub\automation\include\l0; Source: vendor\DependencyControl\modules\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl DestDir: {userappdata}\Aegisub\automation\autoload; Source: vendor\DependencyControl\macros\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\Yutils\src\Yutils.lua; Flags: ignoreversion; Components: macros\modules\yutils DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\luajson\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\luajson DestDir: {userappdata}\Aegisub\automation\include\requireffi; Source: vendor\ffi-experiments\requireffi\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -#ifdef ARCH64 DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex-v0.1.3-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer-v0.1.5-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager-v0.4.0-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -#else -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex-v0.1.3-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer-v0.1.5-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager-v0.4.0-Win32\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -#endif [Dirs] Name: {userappdata}\Aegisub\automation\test\DepUnit\automation; Components: macros\modules\depctrl; -Name: {userappdata}\Aegisub\automation\test\DepUnit\modules; Components: macros\modules\depctrl; -Name: {userappdata}\Aegisub\automation\schema\DepSqlite\automation; Components: macros\modules\depctrl; -Name: {userappdata}\Aegisub\automation\schema\DepSqlite\modules; Components: macros\modules\depctrl; -Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\automation; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\test\DepUnit\modules; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\schema\DepSqlite\automation; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\schema\DepSqlite\modules; Components: macros\modules\depctrl; +Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\automation; Components: macros\modules\depctrl; Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\modules; Components: macros\modules\depctrl; - +#endif [InstallDelete] Type: files; Name: "{userappdata}\Aegisub\l0.UpdateFeed_*.json" Type: files; Name: "{userappdata}\Aegisub\DependencyControl.json" -Type: files; Name: "{userappdata}\Aegisub\Nudge.json" -Type: files; Name: "{userappdata}\Aegisub\PasteAILines.json" +Type: files; Name: "{userappdata}\Aegisub\Nudge.json" ; why is this here? +Type: files; Name: "{userappdata}\Aegisub\PasteAILines.json" ; ditto Type: files; Name: "{userappdata}\Aegisub\ASSWipe.json" Type: files; Name: "{userappdata}\Aegisub\automation\include\DM\DownloadManager.dll" Type: files; Name: "{userappdata}\Aegisub\automation\include\BM\BadMutex.dll" -Type: files; Name: "{userappdata}\Aegisub\automation\include\PT\PreciseTimer.dll" \ No newline at end of file +Type: files; Name: "{userappdata}\Aegisub\automation\include\PT\PreciseTimer.dll" diff --git a/packages/win_installer/fragment_codecs_64.iss b/packages/win_installer/fragment_codecs.iss similarity index 98% rename from packages/win_installer/fragment_codecs_64.iss rename to packages/win_installer/fragment_codecs.iss index 654f97241..5951f8ddd 100644 --- a/packages/win_installer/fragment_codecs_64.iss +++ b/packages/win_installer/fragment_codecs.iss @@ -32,12 +32,10 @@ ; Contact: mailto:nielsm@indvikleren.dk ; - [Files] -; avisynth +; Avisynth DestDir: {app}; Source: vendor\AvisynthPlus64\devil.dll; Flags: ignoreversion; Components: main DestDir: {app}; Source: vendor\AvisynthPlus64\avisynth.dll; Flags: ignoreversion; Components: main DestDir: {app}; Source: vendor\AvisynthPlus64\DirectShowSource.dll; Flags: ignoreversion; Components: main -; vsfilter +; VSFilter DestDir: {app}\csri; Source: vendor\xy-vsfilter\xy-vsfilter-aegisub64.dll; Flags: ignoreversion; Components: main - diff --git a/packages/win_installer/fragment_mainprogram.iss b/packages/win_installer/fragment_mainprogram.iss index 1258b0b7c..0eed59a86 100644 --- a/packages/win_installer/fragment_mainprogram.iss +++ b/packages/win_installer/fragment_mainprogram.iss @@ -37,14 +37,15 @@ Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixe Name: "macros"; Description: "Automation Scripts"; Types: full Name: "macros\bundled"; Description: "Bundled macros"; Types: full Name: "macros\demos"; Description: "Example macros/Demos"; Types: full +#ifdef DEPCTRL Name: "macros\modules"; Description: "Modules"; Types: full Name: "macros\modules\depctrl"; Description: "DependencyControl"; Types: full Name: "macros\modules\yutils"; Description: "YUtils"; Types: full Name: "macros\modules\luajson"; Description: "LuaJSON"; Types: full +#endif Name: "dictionaries"; Description: "Spellcheck Dictionaries"; Types: full Name: "dictionaries\en_US"; Description: "English (US)"; Types: full Name: "translations"; Description: "Aegisub Translations"; Types: full -Name: "assdraw"; Description: "ASSDraw 3"; Types: full [Tasks] Name: "startmenuicon"; Description: "{cm:StartMenuIcon}"; GroupDescription: "{cm:AdditionalIcons}" diff --git a/packages/win_installer/fragment_runtimes.iss b/packages/win_installer/fragment_runtimes.iss index bccc41568..8d7f56436 100644 --- a/packages/win_installer/fragment_runtimes.iss +++ b/packages/win_installer/fragment_runtimes.iss @@ -33,21 +33,15 @@ ; ; This file implements checking for and installing runtime libraries for Aegisub -#ifdef ARCH64 -#define SUFFIX "x64" -#else -#define SUFFIX "x86" -#endif [Files] -DestDir: {tmp}; Source: src\vcredist_{#SUFFIX}.exe; Flags: nocompression deleteafterinstall -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\msvcp140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\concrt140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\vccorlib140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.CRT\vcruntime140.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.MFC\mfc140u.dll; DestDir: {app}; Flags: ignoreversion -;Source: src\redist\{#SUFFIX}\Microsoft.VC140.MFC\mfcm140u.dll; DestDir: {app}; Flags: ignoreversion - +DestDir: {tmp}; Source: src\vcredist_{#ARCH}.exe; Flags: nocompression deleteafterinstall +;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\msvcp140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\concrt140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\vccorlib140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#ARCH}\Microsoft.VC140.CRT\vcruntime140.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#ARCH}\Microsoft.VC140.MFC\mfc140u.dll; DestDir: {app}; Flags: ignoreversion +;Source: src\redist\{#ARCH}\Microsoft.VC140.MFC\mfcm140u.dll; DestDir: {app}; Flags: ignoreversion [Run] -Filename: {tmp}\vcredist_{#SUFFIX}.exe; StatusMsg: {cm:InstallRuntime}; Parameters: "/install /quiet /norestart" \ No newline at end of file +Filename: {tmp}\vcredist_{#ARCH}.exe; StatusMsg: {cm:InstallRuntime}; Parameters: "/install /quiet /norestart" diff --git a/packages/win_installer/fragment_setupbase.iss b/packages/win_installer/fragment_setupbase.iss index 9c7926319..4ab7f44ed 100644 --- a/packages/win_installer/fragment_setupbase.iss +++ b/packages/win_installer/fragment_setupbase.iss @@ -40,8 +40,8 @@ AppVerName=Aegisub {#BUILD_GIT_VERSION_STRING} AppVersion={#INSTALLER_VERSION} AppPublisher=Aegisub Team AppPublisherURL=http://www.aegisub.org/ -AppSupportURL=http://forum.aegisub.org/ -AppCopyright= 2005-2018 The Aegisub Team +AppSupportURL=https://github.com/TypesettingTools/Aegisub/issues +AppCopyright=2005-2018 The Aegisub Team VersionInfoVersion={#INSTALLER_VERSION} DefaultGroupName=Aegisub AllowNoIcons=true @@ -107,4 +107,3 @@ DestDir: {tmp}; Flags: dontcopy; Source: old_filelist.txt DestDir: {tmp}; Flags: dontcopy; Source: old_dirlist.txt DestDir: {tmp}; Flags: dontcopy; Source: old_locales.txt DestDir: {tmp}; Flags: dontcopy; Source: old_shortcutlist.txt - diff --git a/packages/win_installer/portable/create-portable-64.bat b/packages/win_installer/portable/create-portable-64.bat deleted file mode 100644 index 27e973d82..000000000 --- a/packages/win_installer/portable/create-portable-64.bat +++ /dev/null @@ -1,23 +0,0 @@ -@echo off - -echo Gathering files -xcopy ..\..\..\automation\autoload\*.lua aegisub-portable\automation\autoload\ > NUL -xcopy ..\..\..\automation\demos\*.lua aegisub-portable\automation\demos\ > NUL -xcopy ..\..\..\automation\include\*.lua aegisub-portable\automation\include\ > NUL -xcopy ..\..\..\bin\aegisub64.exe aegisub-portable\ > NUL -xcopy ..\..\..\bin\ffms2_64.dll aegisub-portable\ > NUL -xcopy ..\src\ASSDraw3.chm aegisub-portable\ > NUL -xcopy ..\src\ASSDraw3.exe aegisub-portable\ > NUL -xcopy ..\src\dictionaries\en_US.aff aegisub-portable\dictionaries\ > NUL -xcopy ..\src\dictionaries\en_US.dic aegisub-portable\dictionaries\ > NUL -xcopy ..\src\vsfilter-aegisub64.dll aegisub-portable\csri\ > NUL -xcopy ..\src\x64\Microsoft.VC90.CRT\* aegisub-portable\Microsoft.VC90.CRT\ > NUL -xcopy config.json aegisub-portable\ > NUL - -echo Creating SFX -del ..\output\aegisub-3.1.0-portable-64.exe -WinRAR a -sfx -s -m5 -ep1 -r -zportable-comment.txt -iimgside-logo.bmp -iiconicon.ico ..\output\aegisub-3.1.0-portable-64.exe aegisub-portable\ - -echo Removing temp dir -rmdir /S /Q aegisub-portable > NUL - diff --git a/packages/win_installer/portable/create-portable.bat b/packages/win_installer/portable/create-portable.bat index eb624b86e..4d42b6c51 100644 --- a/packages/win_installer/portable/create-portable.bat +++ b/packages/win_installer/portable/create-portable.bat @@ -4,24 +4,19 @@ echo Gathering files xcopy ..\..\..\automation\autoload\*.lua aegisub-portable\automation\autoload\ > NUL xcopy ..\..\..\automation\demos\*.lua aegisub-portable\automation\demos\ > NUL xcopy ..\..\..\automation\include\*.lua aegisub-portable\automation\include\ > NUL -xcopy ..\..\..\bin\aegisub32.exe aegisub-portable\ > NUL -xcopy ..\..\..\bin\ffms2.dll aegisub-portable\ > NUL +xcopy ..\..\..\bin\aegisub64.exe aegisub-portable\ > NUL +xcopy ..\..\..\bin\ffms2_64.dll aegisub-portable\ > NUL xcopy ..\src\ASSDraw3.chm aegisub-portable\ > NUL xcopy ..\src\ASSDraw3.exe aegisub-portable\ > NUL -xcopy ..\src\DirectShowSource.dll aegisub-portable\ > NUL -xcopy ..\src\avisynth.dll aegisub-portable\ > NUL -xcopy ..\src\devil.dll aegisub-portable\ > NUL xcopy ..\src\dictionaries\en_US.aff aegisub-portable\dictionaries\ > NUL xcopy ..\src\dictionaries\en_US.dic aegisub-portable\dictionaries\ > NUL -xcopy ..\src\vsfilter-aegisub32.dll aegisub-portable\csri\ > NUL -xcopy ..\src\xy-vsfilter-aegisub.dll aegisub-portable\csri\ > NUL -xcopy ..\src\x86\Microsoft.VC90.CRT\* aegisub-portable\Microsoft.VC90.CRT\ > NUL +xcopy ..\src\vsfilter-aegisub64.dll aegisub-portable\csri\ > NUL +xcopy ..\src\x64\Microsoft.VC90.CRT\* aegisub-portable\Microsoft.VC90.CRT\ > NUL xcopy config.json aegisub-portable\ > NUL echo Creating SFX -del ..\output\aegisub-3.1.0-portable.exe -WinRAR a -sfx -s -m5 -ep1 -r -zportable-comment.txt -iimgside-logo.bmp -iiconicon.ico ..\output\aegisub-3.1.0-portable.exe aegisub-portable\ +del ..\output\aegisub-3.1.0-portable-64.exe +WinRAR a -sfx -s -m5 -ep1 -r -zportable-comment.txt -iimgside-logo.bmp -iiconicon.ico ..\output\aegisub-3.1.0-portable-64.exe aegisub-portable\ echo Removing temp dir rmdir /S /Q aegisub-portable > NUL - From c6d50332e83f35bec30b8b3d0d06f9e10e333068 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 6 Oct 2018 03:57:04 -0400 Subject: [PATCH 025/185] Modify organization for installer requirements, minor installer clean-up --- .../win_installer/fragment_automation.iss | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/win_installer/fragment_automation.iss b/packages/win_installer/fragment_automation.iss index 4377ef126..4b224aad7 100644 --- a/packages/win_installer/fragment_automation.iss +++ b/packages/win_installer/fragment_automation.iss @@ -36,29 +36,32 @@ [Files] DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\cleantags-autoload.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled -DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\karaoke-auto-leadin.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled +DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\kara-templater.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\select-overlaps.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled DestDir: {app}\automation\autoload; Source: ..\..\automation\autoload\strip-tags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\bundled + DestDir: {app}\automation\demos; Source: ..\..\automation\demos\future-windy-blur.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos DestDir: {app}\automation\demos; Source: ..\..\automation\demos\raytracer.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: macros\demos + +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\re.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\unicode.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\util.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\ffi.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\lfs.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include\aegisub; Source: ..\..\automation\include\aegisub\argcheck.moon; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main + DestDir: {app}\automation\include; Source: ..\..\automation\include\cleantags.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\clipboard.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\karaskel-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\lfs.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\moonscript.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\re.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\unicode.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main -DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main DestDir: {app}\automation\include; Source: ..\..\automation\include\utils.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main +DestDir: {app}\automation\include; Source: ..\..\automation\include\utils-auto4.lua; Flags: ignoreversion overwritereadonly uninsremovereadonly; Attribs: readonly; Components: main ; DepCtrl #ifdef DEPCTRL @@ -68,9 +71,9 @@ DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\Yutils\src\Yut DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\luajson\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\luajson DestDir: {userappdata}\Aegisub\automation\include\requireffi; Source: vendor\ffi-experiments\requireffi\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex-v0.1.3-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer-v0.1.5-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl -DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager-v0.4.0-Win64\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\BadMutex\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\PreciseTimer\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl +DestDir: {userappdata}\Aegisub\automation\include; Source: vendor\ffi-experiments\DownloadManager\*; Flags: ignoreversion recursesubdirs createallsubdirs; Components: macros\modules\depctrl [Dirs] Name: {userappdata}\Aegisub\automation\test\DepUnit\automation; Components: macros\modules\depctrl; @@ -84,8 +87,8 @@ Name: {userappdata}\Aegisub\automation\lifecycle\DepLifecycle\modules; Component [InstallDelete] Type: files; Name: "{userappdata}\Aegisub\l0.UpdateFeed_*.json" Type: files; Name: "{userappdata}\Aegisub\DependencyControl.json" -Type: files; Name: "{userappdata}\Aegisub\Nudge.json" ; why is this here? -Type: files; Name: "{userappdata}\Aegisub\PasteAILines.json" ; ditto +Type: files; Name: "{userappdata}\Aegisub\Nudge.json" +Type: files; Name: "{userappdata}\Aegisub\PasteAILines.json" Type: files; Name: "{userappdata}\Aegisub\ASSWipe.json" Type: files; Name: "{userappdata}\Aegisub\automation\include\DM\DownloadManager.dll" Type: files; Name: "{userappdata}\Aegisub\automation\include\BM\BadMutex.dll" From 9d579e15ecc75e48f2c4d29a414ff933ebc76f44 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 17 Nov 2018 15:56:34 -0500 Subject: [PATCH 026/185] Add installer vendor folder to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a9b3616b4..d800491d4 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,7 @@ git_version.h git_version.xml packages/desktop/aegisub.desktop packages/desktop/aegisub.desktop.template +packages/win_installer/vendor src/aegisub src/libresrc/bitmap.cpp src/libresrc/bitmap.h From a9eba14df54df5d673d261169c646c28ab184a92 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 17 Nov 2018 15:57:48 -0500 Subject: [PATCH 027/185] Remove assdraw and forums from default menu Reflects changes previously made to remove those elements from Aegisub --- src/libresrc/default_menu.json | 2 -- src/libresrc/osx/default_menu.json | 1 - 2 files changed, 3 deletions(-) diff --git a/src/libresrc/default_menu.json b/src/libresrc/default_menu.json index f213feff3..b1797836f 100644 --- a/src/libresrc/default_menu.json +++ b/src/libresrc/default_menu.json @@ -76,7 +76,6 @@ { "command" : "tool/resampleres" }, { "command" : "subtitle/spellcheck" }, {}, - { "command" : "tool/assdraw" }, { "submenu" : "main/subtitle/insert lines", "text" : "&Insert Lines" }, { "command" : "edit/line/duplicate" }, { "command" : "edit/line/split/before" }, @@ -204,7 +203,6 @@ { "command" : "help/contents" }, {}, { "command" : "help/website" }, - { "command" : "help/forums" }, { "command" : "help/bugs" }, {}, { "command" : "help/irc" }, diff --git a/src/libresrc/osx/default_menu.json b/src/libresrc/osx/default_menu.json index 036753c94..75a9e4a03 100644 --- a/src/libresrc/osx/default_menu.json +++ b/src/libresrc/osx/default_menu.json @@ -213,7 +213,6 @@ { "command" : "help/contents" }, {}, { "command" : "help/website" }, - { "command" : "help/forums" }, { "command" : "help/bugs" }, {}, { "command" : "help/irc" }, From 08ebcf4693b7f23ac267aa130003769f6af97690 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 17 Nov 2018 17:54:17 -0500 Subject: [PATCH 028/185] Remove assdraw from default toolbar --- src/libresrc/default_toolbar.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libresrc/default_toolbar.json b/src/libresrc/default_toolbar.json index c83d0ead0..07afb90b0 100644 --- a/src/libresrc/default_toolbar.json +++ b/src/libresrc/default_toolbar.json @@ -50,8 +50,6 @@ "", "am/meta", "", - "tool/assdraw", - "", "time/shift", "tool/style/assistant", "tool/translation_assistant", From 26ccf0b8e5374973b3a5edfe2bd958a1a2040da1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Sat, 17 Nov 2018 19:27:25 -0500 Subject: [PATCH 029/185] Divorce stored TPP lead-in/out values from config There's no real reason to link these as far as I can tell, and plenty of valid reasons not to --- src/dialog_timing_processor.cpp | 8 ++++---- src/libresrc/default_config.json | 4 ++++ src/libresrc/osx/default_config.json | 4 ++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/dialog_timing_processor.cpp b/src/dialog_timing_processor.cpp index 00719c51c..e0b7dc00b 100644 --- a/src/dialog_timing_processor.cpp +++ b/src/dialog_timing_processor.cpp @@ -144,8 +144,8 @@ DialogTimingProcessor::DialogTimingProcessor(agi::Context *c) d.SetIcon(GETICON(timing_processor_toolbutton_16)); // Read options - leadIn = OPT_GET("Audio/Lead/IN")->GetInt(); - leadOut = OPT_GET("Audio/Lead/OUT")->GetInt(); + leadIn = OPT_GET("Tool/Timing Post Processor/Lead/IN")->GetInt(); + leadOut = OPT_GET("Tool/Timing Post Processor/Lead/OUT")->GetInt(); beforeStart = OPT_GET("Tool/Timing Post Processor/Threshold/Key Start Before")->GetInt(); beforeEnd = OPT_GET("Tool/Timing Post Processor/Threshold/Key End Before")->GetInt(); afterStart = OPT_GET("Tool/Timing Post Processor/Threshold/Key Start After")->GetInt(); @@ -305,8 +305,8 @@ void DialogTimingProcessor::UpdateControls() { void DialogTimingProcessor::OnApply(wxCommandEvent &) { d.TransferDataFromWindow(); // Save settings - OPT_SET("Audio/Lead/IN")->SetInt(leadIn); - OPT_SET("Audio/Lead/OUT")->SetInt(leadOut); + OPT_SET("Tool/Timing Post Processor/Lead/IN")->SetInt(leadIn); + OPT_SET("Tool/Timing Post Processor/Lead/OUT")->SetInt(leadOut); OPT_SET("Tool/Timing Post Processor/Threshold/Key Start Before")->SetInt(beforeStart); OPT_SET("Tool/Timing Post Processor/Threshold/Key Start After")->SetInt(afterStart); OPT_SET("Tool/Timing Post Processor/Threshold/Key End Before")->SetInt(beforeEnd); diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 61921d0b0..318f8d3ee 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -552,6 +552,10 @@ } }, "Only Selection" : false, + "Lead" : { + "IN" : 100, + "OUT" : 350 + }, "Threshold" : { "Adjacent Gap" : 300, "Adjacent Overlap" : 50, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index 62d04874e..59f2ed05f 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -552,6 +552,10 @@ } }, "Only Selection" : false, + "Lead" : { + "IN" : 100, + "OUT" : 350 + }, "Threshold" : { "Adjacent Gap" : 300, "Adjacent Overlap" : 50, From 6496414e6118c9a0e2d90aaa137287953221cfa8 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sat, 26 May 2018 17:41:13 +0200 Subject: [PATCH 030/185] Update freetype2 --- build/freetype2/freetype.vcxproj | 2 +- build/freetype2/freetype.vcxproj.filters | 2 +- vendor/freetype2 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/freetype2/freetype.vcxproj b/build/freetype2/freetype.vcxproj index 69ec78e4c..fdb8fbdf4 100644 --- a/build/freetype2/freetype.vcxproj +++ b/build/freetype2/freetype.vcxproj @@ -55,7 +55,7 @@ - + diff --git a/build/freetype2/freetype.vcxproj.filters b/build/freetype2/freetype.vcxproj.filters index 0d9678157..9787c9d06 100644 --- a/build/freetype2/freetype.vcxproj.filters +++ b/build/freetype2/freetype.vcxproj.filters @@ -71,7 +71,7 @@ Source Files - + Source Files diff --git a/vendor/freetype2 b/vendor/freetype2 index aaffbf85d..51fee6558 160000 --- a/vendor/freetype2 +++ b/vendor/freetype2 @@ -1 +1 @@ -Subproject commit aaffbf85df8b02b469eb76e22354c2bab6759ae6 +Subproject commit 51fee655837ef99084767873266aaddfa3a31da5 From f99711aca802e7f3ff01fdcf556ee7d7fada0725 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Thu, 22 Nov 2018 12:23:58 -0800 Subject: [PATCH 031/185] Bump _WIN32_WINNT to Vista --- build/Aegisub/Aegisub.targets | 1 + build/ffmpeg/ffmpeg.vcxproj | 2 +- build/libaegisub/libaegisub.vcxproj | 2 +- libaegisub/windows/path_win.cpp | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build/Aegisub/Aegisub.targets b/build/Aegisub/Aegisub.targets index 46cc90c9f..78d939088 100644 --- a/build/Aegisub/Aegisub.targets +++ b/build/Aegisub/Aegisub.targets @@ -126,6 +126,7 @@ NOMINMAX; + _WIN32_WINNT=0x0602; %(PreprocessorDefinitions) diff --git a/build/ffmpeg/ffmpeg.vcxproj b/build/ffmpeg/ffmpeg.vcxproj index 8f9959679..555df4864 100644 --- a/build/ffmpeg/ffmpeg.vcxproj +++ b/build/ffmpeg/ffmpeg.vcxproj @@ -32,7 +32,7 @@ _LARGEFILE_SOURCE; _SYSCRT; _USE_MATH_DEFINES; - _WIN32_WINNT=0x0502; + _WIN32_WINNT=0x0602; inline=__inline; %(PreprocessorDefinitions) diff --git a/build/libaegisub/libaegisub.vcxproj b/build/libaegisub/libaegisub.vcxproj index 06f9c02ba..a431eb5eb 100644 --- a/build/libaegisub/libaegisub.vcxproj +++ b/build/libaegisub/libaegisub.vcxproj @@ -23,7 +23,7 @@ NOMINMAX; - _WIN32_WINNT=0x0501; + _WIN32_WINNT=0x0602; _CRT_NONSTDC_NO_DEPRECATE; WITH_UCHARDET; %(PreprocessorDefinitions) diff --git a/libaegisub/windows/path_win.cpp b/libaegisub/windows/path_win.cpp index 4f164074a..387cf1cdd 100644 --- a/libaegisub/windows/path_win.cpp +++ b/libaegisub/windows/path_win.cpp @@ -25,10 +25,10 @@ #include -namespace { #include #include +namespace { agi::fs::path WinGetFolderPath(int folder) { wchar_t path[MAX_PATH+1] = {0}; if (FAILED(SHGetFolderPathW(0, folder, 0, 0, path))) From 9638bfbef43496c11186d6cfa99dd74cfd14ca87 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 5 Dec 2018 17:18:17 -0500 Subject: [PATCH 032/185] Update ffmpeg and ffms2 --- build/Aegisub/standard-libraries.props | 3 +- build/ffmpeg/config-x64.asm | 1502 ++++++++++++++------- build/ffmpeg/config-x64.h | 1507 +++++++++++++++------- build/ffmpeg/config-x86.asm | 1498 ++++++++++++++------- build/ffmpeg/config-x86.h | 1503 ++++++++++++++------- build/ffmpeg/configure.sh | 18 +- build/ffmpeg/ffmpeg.vcxproj | 250 +++- build/ffmpeg/libavcodec/bsf_list.c | 33 + build/ffmpeg/libavcodec/codec_list.c | 426 ++++++ build/ffmpeg/libavcodec/parser_list.c | 45 + build/ffmpeg/libavdevice/indev_list.c | 2 + build/ffmpeg/libavdevice/outdev_list.c | 2 + build/ffmpeg/libavformat/demuxer_list.c | 287 ++++ build/ffmpeg/libavformat/muxer_list.c | 2 + build/ffmpeg/libavformat/protocol_list.c | 14 + build/ffmpeg/libavutil/avconfig.h | 3 +- build/ffms2/ffms2.vcxproj | 5 - build/ffms2/ffms2.vcxproj.filters | 15 - src/video_provider_ffmpegsource.cpp | 41 +- vendor/ffmpeg | 2 +- vendor/ffms2 | 2 +- 21 files changed, 5102 insertions(+), 2058 deletions(-) mode change 100644 => 100755 build/ffmpeg/config-x64.asm mode change 100644 => 100755 build/ffmpeg/config-x64.h mode change 100644 => 100755 build/ffmpeg/config-x86.asm mode change 100644 => 100755 build/ffmpeg/config-x86.h create mode 100644 build/ffmpeg/libavcodec/bsf_list.c create mode 100644 build/ffmpeg/libavcodec/codec_list.c create mode 100644 build/ffmpeg/libavcodec/parser_list.c create mode 100644 build/ffmpeg/libavdevice/indev_list.c create mode 100644 build/ffmpeg/libavdevice/outdev_list.c create mode 100644 build/ffmpeg/libavformat/demuxer_list.c create mode 100644 build/ffmpeg/libavformat/muxer_list.c create mode 100644 build/ffmpeg/libavformat/protocol_list.c diff --git a/build/Aegisub/standard-libraries.props b/build/Aegisub/standard-libraries.props index 719686902..b4f5074e1 100644 --- a/build/Aegisub/standard-libraries.props +++ b/build/Aegisub/standard-libraries.props @@ -8,11 +8,12 @@ + Usp10.lib; Vfw32.lib; advapi32.lib; + bcrypt.lib; comctl32.lib; comdlg32.lib; - Usp10.lib; gdi32.lib; kernel32.lib; ole32.lib; diff --git a/build/ffmpeg/config-x64.asm b/build/ffmpeg/config-x64.asm old mode 100644 new mode 100755 index 13b3f69d0..3cc5a6c31 --- a/build/ffmpeg/config-x64.asm +++ b/build/ffmpeg/config-x64.asm @@ -1,3 +1,4 @@ +; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -36,10 +37,12 @@ %define HAVE_POWER8 0 %define HAVE_PPC4XX 0 %define HAVE_VSX 0 +%define HAVE_AESNI 1 %define HAVE_AMD3DNOW 1 %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 +%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -56,12 +59,14 @@ %define HAVE_MIPSFPU 0 %define HAVE_MIPS32R2 0 %define HAVE_MIPS32R5 0 +%define HAVE_MIPS64R2 0 +%define HAVE_MIPS32R6 0 %define HAVE_MIPS64R6 0 -%define HAVE_MIPSDSPR1 0 +%define HAVE_MIPSDSP 0 %define HAVE_MIPSDSPR2 0 %define HAVE_MSA 0 -%define HAVE_LOONGSON2 1 -%define HAVE_LOONGSON3 1 +%define HAVE_LOONGSON2 0 +%define HAVE_LOONGSON3 0 %define HAVE_MMI 0 %define HAVE_ARMV5TE_EXTERNAL 0 %define HAVE_ARMV6_EXTERNAL 0 @@ -77,10 +82,12 @@ %define HAVE_POWER8_EXTERNAL 0 %define HAVE_PPC4XX_EXTERNAL 0 %define HAVE_VSX_EXTERNAL 0 +%define HAVE_AESNI_EXTERNAL 1 %define HAVE_AMD3DNOW_EXTERNAL 1 %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 0 +%define HAVE_AVX512_EXTERNAL 0 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -97,8 +104,10 @@ %define HAVE_MIPSFPU_EXTERNAL 0 %define HAVE_MIPS32R2_EXTERNAL 0 %define HAVE_MIPS32R5_EXTERNAL 0 +%define HAVE_MIPS64R2_EXTERNAL 0 +%define HAVE_MIPS32R6_EXTERNAL 0 %define HAVE_MIPS64R6_EXTERNAL 0 -%define HAVE_MIPSDSPR1_EXTERNAL 0 +%define HAVE_MIPSDSP_EXTERNAL 0 %define HAVE_MIPSDSPR2_EXTERNAL 0 %define HAVE_MSA_EXTERNAL 0 %define HAVE_LOONGSON2_EXTERNAL 0 @@ -118,10 +127,12 @@ %define HAVE_POWER8_INLINE 0 %define HAVE_PPC4XX_INLINE 0 %define HAVE_VSX_INLINE 0 +%define HAVE_AESNI_INLINE 0 %define HAVE_AMD3DNOW_INLINE 0 %define HAVE_AMD3DNOWEXT_INLINE 0 %define HAVE_AVX_INLINE 0 %define HAVE_AVX2_INLINE 0 +%define HAVE_AVX512_INLINE 0 %define HAVE_FMA3_INLINE 0 %define HAVE_FMA4_INLINE 0 %define HAVE_MMX_INLINE 0 @@ -138,8 +149,10 @@ %define HAVE_MIPSFPU_INLINE 0 %define HAVE_MIPS32R2_INLINE 0 %define HAVE_MIPS32R5_INLINE 0 +%define HAVE_MIPS64R2_INLINE 0 +%define HAVE_MIPS32R6_INLINE 0 %define HAVE_MIPS64R6_INLINE 0 -%define HAVE_MIPSDSPR1_INLINE 0 +%define HAVE_MIPSDSP_INLINE 0 %define HAVE_MIPSDSPR2_INLINE 0 %define HAVE_MSA_INLINE 0 %define HAVE_LOONGSON2_INLINE 0 @@ -149,55 +162,49 @@ %define HAVE_FAST_64BIT 1 %define HAVE_FAST_CLZ 1 %define HAVE_FAST_CMOV 1 -%define HAVE_LOCAL_ALIGNED_8 1 -%define HAVE_LOCAL_ALIGNED_16 1 -%define HAVE_LOCAL_ALIGNED_32 1 +%define HAVE_LOCAL_ALIGNED 1 %define HAVE_SIMD_ALIGN_16 1 -%define HAVE_ATOMICS_GCC 0 -%define HAVE_ATOMICS_SUNCC 0 -%define HAVE_ATOMICS_WIN32 1 +%define HAVE_SIMD_ALIGN_32 1 +%define HAVE_SIMD_ALIGN_64 1 %define HAVE_ATOMIC_CAS_PTR 0 -%define HAVE_ATOMIC_COMPARE_EXCHANGE 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 1 %define HAVE_MM_EMPTY 0 %define HAVE_RDTSC 1 -%define HAVE_SARESTART 0 +%define HAVE_SEM_TIMEDWAIT 0 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 +%define HAVE_CABS 0 +%define HAVE_CEXP 0 %define HAVE_INLINE_ASM 0 %define HAVE_SYMVER 0 -%define HAVE_YASM 1 +%define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 -%define HAVE_ALSA_ASOUNDLIB_H 0 -%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 %define HAVE_ASM_TYPES_H 0 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +%define HAVE_CUDA_H 0 +%define HAVE_DISPATCH_DISPATCH_H 0 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 %define HAVE_DEV_IC_BT8XX_H 0 %define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 1 -%define HAVE_DLFCN_H 0 -%define HAVE_D3D11_H 1 +%define HAVE_DIRENT_H 0 +%define HAVE_DXGIDEBUG_H 1 %define HAVE_DXVA_H 1 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 1 -%define HAVE_MACH_MACH_TIME_H 0 +%define HAVE_LINUX_PERF_EVENT_H 0 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_MALLOC_H 1 -%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +%define HAVE_OPENCV2_CORE_CORE_C_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 0 -%define HAVE_SNDIO_H 0 -%define HAVE_SOUNDCARD_H 0 -%define HAVE_SYS_MMAN_H 0 %define HAVE_SYS_PARAM_H 0 %define HAVE_SYS_RESOURCE_H 0 %define HAVE_SYS_SELECT_H 0 @@ -222,6 +229,8 @@ %define HAVE_EXP2 1 %define HAVE_EXP2F 1 %define HAVE_EXPF 1 +%define HAVE_HYPOT 1 +%define HAVE_ISFINITE 1 %define HAVE_ISINF 1 %define HAVE_ISNAN 1 %define HAVE_LDEXPF 1 @@ -239,17 +248,20 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 +%define HAVE_DOS_PATHS 1 +%define HAVE_LIBC_MSVCRT 1 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 +%define HAVE_SECTION_DATA_REL_RO 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 1 +%define HAVE_ARC4RANDOM 0 %define HAVE_CLOCK_GETTIME 0 %define HAVE_CLOSESOCKET 0 %define HAVE_COMMANDLINETOARGVW 1 -%define HAVE_COTASKMEMFREE 1 -%define HAVE_CRYPTGENRANDOM 1 -%define HAVE_DLOPEN 0 %define HAVE_FCNTL 0 -%define HAVE_FLT_LIM 1 -%define HAVE_FORK 0 %define HAVE_GETADDRINFO 0 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 0 @@ -257,7 +269,6 @@ %define HAVE_GETPROCESSMEMORYINFO 1 %define HAVE_GETPROCESSTIMES 1 %define HAVE_GETRUSAGE 0 -%define HAVE_GETSERVBYPORT 0 %define HAVE_GETSYSTEMTIMEASFILETIME 1 %define HAVE_GETTIMEOFDAY 0 %define HAVE_GLOB 0 @@ -265,9 +276,9 @@ %define HAVE_GMTIME_R 0 %define HAVE_INET_ATON 0 %define HAVE_ISATTY 1 -%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 %define HAVE_LOCALTIME_R 0 +%define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 %define HAVE_MAPVIEWOFFILE 1 @@ -280,6 +291,7 @@ %define HAVE_POSIX_MEMALIGN 0 %define HAVE_PTHREAD_CANCEL 0 %define HAVE_SCHED_GETAFFINITY 0 +%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 1 %define HAVE_SETCONSOLECTRLHANDLER 1 %define HAVE_SETMODE 1 @@ -289,25 +301,31 @@ %define HAVE_SYSCONF 0 %define HAVE_SYSCTL 0 %define HAVE_USLEEP 0 +%define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 1 %define HAVE_WGLGETPROCADDRESS 0 +%define HAVE_BCRYPT 1 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 0 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 1 +%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 +%define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 -%define HAVE_ATTRIBUTE_MAY_ALIAS 0 -%define HAVE_ATTRIBUTE_PACKED 0 +%define HAVE_BLOCKS_EXTENSION 0 %define HAVE_EBP_AVAILABLE 0 %define HAVE_EBX_AVAILABLE 0 %define HAVE_GNU_AS 0 %define HAVE_GNU_WINDRES 0 %define HAVE_IBM_ASM 0 +%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 %define HAVE_INLINE_ASM_LABELS 0 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 %define HAVE_PRAGMA_DEPRECATED 1 %define HAVE_RSYNC_CONTIMEOUT 0 %define HAVE_SYMVER_ASM_LABEL 0 @@ -315,13 +333,13 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 0 -%define HAVE_CONDITION_VARIABLE_PTR 1 +%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 0 %define HAVE_STRUCT_ADDRINFO 0 -%define HAVE_STRUCT_DCADEC_EXSS_INFO_MATRIX_ENCODING 0 %define HAVE_STRUCT_GROUP_SOURCE_REQ 0 %define HAVE_STRUCT_IP_MREQ_SOURCE 0 %define HAVE_STRUCT_IPV6_MREQ 0 +%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 %define HAVE_STRUCT_POLLFD 0 %define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 @@ -330,48 +348,35 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 0 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -%define HAVE_ATOMICS_NATIVE 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_DXVA2API_COBJ 1 -%define HAVE_DXVA2_LIB 0 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_LIBDC1394_1 0 -%define HAVE_LIBDC1394_2 0 -%define HAVE_MAKEINFO 1 +%define HAVE_MAKEINFO 0 %define HAVE_MAKEINFO_HTML 0 +%define HAVE_OPENCL_D3D11 0 +%define HAVE_OPENCL_DRM_ARM 0 +%define HAVE_OPENCL_DRM_BEIGNET 0 +%define HAVE_OPENCL_DXVA2 0 +%define HAVE_OPENCL_VAAPI_BEIGNET 0 +%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 0 -%define HAVE_SDL 0 -%define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 -%define HAVE_THREADS 1 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 -%define HAVE_XLIB 0 -%define CONFIG_BSFS 1 -%define CONFIG_DECODERS 1 -%define CONFIG_DEMUXERS 1 -%define CONFIG_ENCODERS 0 -%define CONFIG_FILTERS 0 -%define CONFIG_HWACCELS 0 -%define CONFIG_INDEVS 0 -%define CONFIG_MUXERS 0 -%define CONFIG_OUTDEVS 0 -%define CONFIG_PARSERS 1 -%define CONFIG_PROTOCOLS 1 %define CONFIG_DOC 0 %define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 0 %define CONFIG_PODPAGES 1 -%define CONFIG_TXTPAGES 1 +%define CONFIG_TXTPAGES 0 +%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 %define CONFIG_AVIO_READING_EXAMPLE 1 -%define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 -%define CONFIG_DECODING_ENCODING_EXAMPLE 1 +%define CONFIG_DECODE_AUDIO_EXAMPLE 1 +%define CONFIG_DECODE_VIDEO_EXAMPLE 1 %define CONFIG_DEMUXING_DECODING_EXAMPLE 1 +%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 +%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 %define CONFIG_EXTRACT_MVS_EXAMPLE 1 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 +%define CONFIG_HW_DECODE_EXAMPLE 1 %define CONFIG_METADATA_EXAMPLE 1 %define CONFIG_MUXING_EXAMPLE 1 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -380,25 +385,48 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 1 %define CONFIG_TRANSCODE_AAC_EXAMPLE 1 %define CONFIG_TRANSCODING_EXAMPLE 0 +%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 +%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 %define CONFIG_AVISYNTH 0 -%define CONFIG_BZLIB 0 -%define CONFIG_CRYSTALHD 0 -%define CONFIG_DECKLINK 0 %define CONFIG_FREI0R 0 +%define CONFIG_LIBCDIO 0 +%define CONFIG_LIBDAVS2 0 +%define CONFIG_LIBRUBBERBAND 0 +%define CONFIG_LIBVIDSTAB 0 +%define CONFIG_LIBX264 0 +%define CONFIG_LIBX265 0 +%define CONFIG_LIBXAVS 0 +%define CONFIG_LIBXAVS2 0 +%define CONFIG_LIBXVID 0 +%define CONFIG_DECKLINK 0 +%define CONFIG_LIBNDI_NEWTEK 0 +%define CONFIG_LIBFDK_AAC 0 +%define CONFIG_OPENSSL 0 +%define CONFIG_LIBTLS 0 +%define CONFIG_GMP 0 +%define CONFIG_LIBLENSFUN 0 +%define CONFIG_LIBOPENCORE_AMRNB 0 +%define CONFIG_LIBOPENCORE_AMRWB 0 +%define CONFIG_LIBVMAF 0 +%define CONFIG_LIBVO_AMRWBENC 0 +%define CONFIG_MBEDTLS 0 +%define CONFIG_RKMPP 0 +%define CONFIG_LIBSMBCLIENT 0 +%define CONFIG_CHROMAPRINT 0 +%define CONFIG_GCRYPT 0 %define CONFIG_GNUTLS 0 -%define CONFIG_ICONV 0 +%define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAACPLUS 0 +%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 -%define CONFIG_LIBCDIO 0 %define CONFIG_LIBCELT 0 +%define CONFIG_LIBCODEC2 0 +%define CONFIG_LIBDAV1D 0 %define CONFIG_LIBDC1394 0 -%define CONFIG_LIBDCADEC 0 -%define CONFIG_LIBFAAC 0 -%define CONFIG_LIBFDK_AAC 0 +%define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 %define CONFIG_LIBFREETYPE 0 @@ -407,91 +435,107 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 +%define CONFIG_LIBJACK 0 +%define CONFIG_LIBKLVANC 0 %define CONFIG_LIBKVAZAAR 0 -%define CONFIG_LIBMFX 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 -%define CONFIG_LIBNUT 0 -%define CONFIG_LIBOPENCORE_AMRNB 0 -%define CONFIG_LIBOPENCORE_AMRWB 0 +%define CONFIG_LIBMYSOFA 0 %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 -%define CONFIG_LIBQUVI 0 +%define CONFIG_LIBRSVG 0 %define CONFIG_LIBRTMP 0 -%define CONFIG_LIBSCHROEDINGER 0 %define CONFIG_LIBSHINE 0 %define CONFIG_LIBSMBCLIENT 0 %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 +%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 -%define CONFIG_LIBSTAGEFRIGHT_H264 0 +%define CONFIG_LIBTENSORFLOW 0 +%define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 -%define CONFIG_LIBUTVIDEO 0 %define CONFIG_LIBV4L2 0 -%define CONFIG_LIBVIDSTAB 0 -%define CONFIG_LIBVO_AACENC 0 -%define CONFIG_LIBVO_AMRWBENC 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 %define CONFIG_LIBWEBP 0 -%define CONFIG_LIBX264 0 -%define CONFIG_LIBX265 0 -%define CONFIG_LIBXAVS 0 +%define CONFIG_LIBXML2 0 +%define CONFIG_LIBZIMG 0 +%define CONFIG_LIBZMQ 0 +%define CONFIG_LIBZVBI 0 +%define CONFIG_LV2 0 +%define CONFIG_MEDIACODEC 0 +%define CONFIG_OPENAL 0 +%define CONFIG_OPENGL 0 +%define CONFIG_VAPOURSYNTH 0 +%define CONFIG_ALSA 0 +%define CONFIG_APPKIT 0 +%define CONFIG_AVFOUNDATION 0 +%define CONFIG_BZLIB 0 +%define CONFIG_COREIMAGE 0 +%define CONFIG_ICONV 0 %define CONFIG_LIBXCB 0 %define CONFIG_LIBXCB_SHM 0 %define CONFIG_LIBXCB_SHAPE 0 %define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LIBXVID 0 -%define CONFIG_LIBZMQ 0 -%define CONFIG_LIBZVBI 0 %define CONFIG_LZMA 0 -%define CONFIG_MMAL 0 -%define CONFIG_NVENC 0 -%define CONFIG_OPENAL 0 -%define CONFIG_OPENCL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_OPENSSL 0 -%define CONFIG_SDL 0 +%define CONFIG_SCHANNEL 1 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 -%define CONFIG_X11GRAB 0 +%define CONFIG_SNDIO 0 %define CONFIG_XLIB 0 %define CONFIG_ZLIB 1 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 +%define CONFIG_OPENCL 0 +%define CONFIG_AMF 0 +%define CONFIG_AUDIOTOOLBOX 0 +%define CONFIG_CRYSTALHD 0 +%define CONFIG_CUDA 0 +%define CONFIG_CUVID 0 +%define CONFIG_D3D11VA 0 +%define CONFIG_DXVA2 0 +%define CONFIG_FFNVCODEC 0 +%define CONFIG_NVDEC 0 +%define CONFIG_NVENC 0 +%define CONFIG_VAAPI 0 +%define CONFIG_VDPAU 0 +%define CONFIG_VIDEOTOOLBOX 0 +%define CONFIG_V4L2_M2M 0 +%define CONFIG_XVMC 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 +%define CONFIG_OMX_RPI 0 %define CONFIG_RUNTIME_CPUDETECT 1 %define CONFIG_SAFE_BITSTREAM_READER 1 %define CONFIG_SHARED 0 -%define CONFIG_SMALL 0 +%define CONFIG_SMALL 1 %define CONFIG_STATIC 1 %define CONFIG_SWSCALE_ALPHA 1 -%define CONFIG_D3D11VA 0 -%define CONFIG_DXVA2 0 -%define CONFIG_VAAPI 0 -%define CONFIG_VDA 0 -%define CONFIG_VDPAU 0 -%define CONFIG_XVMC 0 %define CONFIG_GPL 1 %define CONFIG_NONFREE 0 %define CONFIG_VERSION3 0 -%define CONFIG_AVCODEC 1 %define CONFIG_AVDEVICE 1 %define CONFIG_AVFILTER 0 +%define CONFIG_SWSCALE 1 +%define CONFIG_POSTPROC 0 %define CONFIG_AVFORMAT 1 +%define CONFIG_AVCODEC 1 +%define CONFIG_SWRESAMPLE 1 %define CONFIG_AVRESAMPLE 0 %define CONFIG_AVUTIL 1 -%define CONFIG_POSTPROC 0 -%define CONFIG_SWRESAMPLE 1 -%define CONFIG_SWSCALE 1 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 -%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 1 %define CONFIG_DWT 1 @@ -505,24 +549,44 @@ %define CONFIG_PIXELUTILS 0 %define CONFIG_NETWORK 0 %define CONFIG_RDFT 1 +%define CONFIG_AUTODETECT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 -%define CONFIG_MEMALIGN_HACK 0 +%define CONFIG_LINUX_PERF 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 +%define CONFIG_OSSFUZZ 0 %define CONFIG_PIC 0 -%define CONFIG_POD2MAN 0 -%define CONFIG_RAISE_MAJOR 0 %define CONFIG_THUMB 0 %define CONFIG_VALGRIND_BACKTRACE 0 %define CONFIG_XMM_CLOBBER_TEST 0 +%define CONFIG_BSFS 1 +%define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 +%define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 1 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 1 %define CONFIG_AANDCTTABLES 1 %define CONFIG_AC3DSP 1 -%define CONFIG_AUDIO_FRAME_QUEUE 0 +%define CONFIG_ADTS_HEADER 1 +%define CONFIG_AUDIO_FRAME_QUEUE 1 %define CONFIG_AUDIODSP 1 %define CONFIG_BLOCKDSP 1 %define CONFIG_BSWAPDSP 1 %define CONFIG_CABAC 1 +%define CONFIG_CBS 1 +%define CONFIG_CBS_AV1 1 +%define CONFIG_CBS_H264 1 +%define CONFIG_CBS_H265 1 +%define CONFIG_CBS_JPEG 0 +%define CONFIG_CBS_MPEG2 1 +%define CONFIG_CBS_VP9 1 +%define CONFIG_DIRAC_PARSE 1 +%define CONFIG_DNN 0 %define CONFIG_DVPROFILE 1 %define CONFIG_EXIF 1 %define CONFIG_FAANDCT 1 @@ -532,34 +596,38 @@ %define CONFIG_FMTCONVERT 1 %define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 1 -%define CONFIG_GCRYPT 0 -%define CONFIG_GMP 0 %define CONFIG_GOLOMB 1 %define CONFIG_GPLV3 0 %define CONFIG_H263DSP 1 %define CONFIG_H264CHROMA 1 %define CONFIG_H264DSP 1 +%define CONFIG_H264PARSE 1 %define CONFIG_H264PRED 1 %define CONFIG_H264QPEL 1 +%define CONFIG_HEVCPARSE 1 %define CONFIG_HPELDSP 1 %define CONFIG_HUFFMAN 1 %define CONFIG_HUFFYUVDSP 1 %define CONFIG_HUFFYUVENCDSP 0 %define CONFIG_IDCTDSP 1 %define CONFIG_IIRFILTER 0 -%define CONFIG_IMDCT15 1 +%define CONFIG_MDCT15 1 %define CONFIG_INTRAX8 1 +%define CONFIG_ISO_MEDIA 1 %define CONFIG_IVIDSP 0 %define CONFIG_JPEGTABLES 1 -%define CONFIG_LIBX262 0 %define CONFIG_LGPLV3 0 +%define CONFIG_LIBX262 0 %define CONFIG_LLAUDDSP 1 %define CONFIG_LLVIDDSP 1 +%define CONFIG_LLVIDENCDSP 0 %define CONFIG_LPC 0 +%define CONFIG_LZF 1 %define CONFIG_ME_CMP 1 %define CONFIG_MPEG_ER 1 %define CONFIG_MPEGAUDIO 1 %define CONFIG_MPEGAUDIODSP 1 +%define CONFIG_MPEGAUDIOHEADER 1 %define CONFIG_MPEGVIDEO 1 %define CONFIG_MPEGVIDEOENC 1 %define CONFIG_MSS34DSP 1 @@ -568,18 +636,24 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 +%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 1 %define CONFIG_RIFFDEC 1 %define CONFIG_RIFFENC 0 %define CONFIG_RTPDEC 0 %define CONFIG_RTPENC_CHAIN 0 %define CONFIG_RV34DSP 1 +%define CONFIG_SCENE_SAD 0 %define CONFIG_SINEWIN 1 %define CONFIG_SNAPPY 1 +%define CONFIG_SRTP 0 %define CONFIG_STARTCODE 1 %define CONFIG_TEXTUREDSP 1 %define CONFIG_TEXTUREDSPENC 0 %define CONFIG_TPELDSP 1 +%define CONFIG_VAAPI_1 0 +%define CONFIG_VAAPI_ENCODE 0 +%define CONFIG_VC1DSP 1 %define CONFIG_VIDEODSP 1 %define CONFIG_VP3DSP 1 %define CONFIG_VP56DSP 1 @@ -587,19 +661,36 @@ %define CONFIG_WMA_FREQS 1 %define CONFIG_WMV2DSP 1 %define CONFIG_AAC_ADTSTOASC_BSF 1 +%define CONFIG_AV1_METADATA_BSF 1 %define CONFIG_CHOMP_BSF 1 %define CONFIG_DUMP_EXTRADATA_BSF 1 +%define CONFIG_DCA_CORE_BSF 1 +%define CONFIG_EAC3_CORE_BSF 1 +%define CONFIG_EXTRACT_EXTRADATA_BSF 1 +%define CONFIG_FILTER_UNITS_BSF 1 +%define CONFIG_H264_METADATA_BSF 1 %define CONFIG_H264_MP4TOANNEXB_BSF 1 +%define CONFIG_H264_REDUNDANT_PPS_BSF 1 +%define CONFIG_HAPQA_EXTRACT_BSF 1 +%define CONFIG_HEVC_METADATA_BSF 1 %define CONFIG_HEVC_MP4TOANNEXB_BSF 1 %define CONFIG_IMX_DUMP_HEADER_BSF 1 %define CONFIG_MJPEG2JPEG_BSF 1 %define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 %define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +%define CONFIG_MPEG2_METADATA_BSF 1 %define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 %define CONFIG_MOV2TEXTSUB_BSF 1 %define CONFIG_NOISE_BSF 1 +%define CONFIG_NULL_BSF 1 +%define CONFIG_PRORES_METADATA_BSF 1 %define CONFIG_REMOVE_EXTRADATA_BSF 1 %define CONFIG_TEXT2MOVSUB_BSF 1 +%define CONFIG_TRACE_HEADERS_BSF 1 +%define CONFIG_VP9_METADATA_BSF 1 +%define CONFIG_VP9_RAW_REORDER_BSF 1 +%define CONFIG_VP9_SUPERFRAME_BSF 1 +%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_AASC_DECODER 1 %define CONFIG_AIC_DECODER 1 %define CONFIG_ALIAS_PIX_DECODER 1 @@ -619,6 +710,7 @@ %define CONFIG_BETHSOFTVID_DECODER 1 %define CONFIG_BFI_DECODER 1 %define CONFIG_BINK_DECODER 1 +%define CONFIG_BITPACKED_DECODER 1 %define CONFIG_BMP_DECODER 1 %define CONFIG_BMV_VIDEO_DECODER 1 %define CONFIG_BRENDER_PIX_DECODER 1 @@ -626,7 +718,9 @@ %define CONFIG_CAVS_DECODER 1 %define CONFIG_CDGRAPHICS_DECODER 1 %define CONFIG_CDXL_DECODER 1 +%define CONFIG_CFHD_DECODER 1 %define CONFIG_CINEPAK_DECODER 1 +%define CONFIG_CLEARVIDEO_DECODER 1 %define CONFIG_CLJR_DECODER 1 %define CONFIG_CLLC_DECODER 1 %define CONFIG_COMFORTNOISE_DECODER 1 @@ -639,9 +733,11 @@ %define CONFIG_DNXHD_DECODER 1 %define CONFIG_DPX_DECODER 1 %define CONFIG_DSICINVIDEO_DECODER 1 +%define CONFIG_DVAUDIO_DECODER 1 %define CONFIG_DVVIDEO_DECODER 1 %define CONFIG_DXA_DECODER 1 %define CONFIG_DXTORY_DECODER 1 +%define CONFIG_DXV_DECODER 1 %define CONFIG_EACMV_DECODER 1 %define CONFIG_EAMAD_DECODER 1 %define CONFIG_EATGQ_DECODER 1 @@ -656,35 +752,42 @@ %define CONFIG_FFV1_DECODER 1 %define CONFIG_FFVHUFF_DECODER 1 %define CONFIG_FIC_DECODER 1 +%define CONFIG_FITS_DECODER 1 %define CONFIG_FLASHSV_DECODER 1 %define CONFIG_FLASHSV2_DECODER 1 %define CONFIG_FLIC_DECODER 1 %define CONFIG_FLV_DECODER 1 +%define CONFIG_FMVC_DECODER 1 %define CONFIG_FOURXM_DECODER 1 %define CONFIG_FRAPS_DECODER 1 %define CONFIG_FRWU_DECODER 1 %define CONFIG_G2M_DECODER 1 +%define CONFIG_GDV_DECODER 1 %define CONFIG_GIF_DECODER 1 %define CONFIG_H261_DECODER 1 %define CONFIG_H263_DECODER 1 %define CONFIG_H263I_DECODER 1 %define CONFIG_H263P_DECODER 1 +%define CONFIG_H263_V4L2M2M_DECODER 0 %define CONFIG_H264_DECODER 1 %define CONFIG_H264_CRYSTALHD_DECODER 0 +%define CONFIG_H264_V4L2M2M_DECODER 0 +%define CONFIG_H264_MEDIACODEC_DECODER 0 %define CONFIG_H264_MMAL_DECODER 0 %define CONFIG_H264_QSV_DECODER 0 -%define CONFIG_H264_VDA_DECODER 0 -%define CONFIG_H264_VDPAU_DECODER 0 +%define CONFIG_H264_RKMPP_DECODER 0 %define CONFIG_HAP_DECODER 1 %define CONFIG_HEVC_DECODER 1 %define CONFIG_HEVC_QSV_DECODER 0 +%define CONFIG_HEVC_RKMPP_DECODER 0 +%define CONFIG_HEVC_V4L2M2M_DECODER 0 %define CONFIG_HNM4_VIDEO_DECODER 1 %define CONFIG_HQ_HQA_DECODER 1 %define CONFIG_HQX_DECODER 1 %define CONFIG_HUFFYUV_DECODER 1 %define CONFIG_IDCIN_DECODER 1 -%define CONFIG_IFF_BYTERUN1_DECODER 1 %define CONFIG_IFF_ILBM_DECODER 1 +%define CONFIG_IMM4_DECODER 1 %define CONFIG_INDEO2_DECODER 0 %define CONFIG_INDEO3_DECODER 0 %define CONFIG_INDEO4_DECODER 0 @@ -697,28 +800,33 @@ %define CONFIG_KMVC_DECODER 1 %define CONFIG_LAGARITH_DECODER 1 %define CONFIG_LOCO_DECODER 1 +%define CONFIG_M101_DECODER 1 +%define CONFIG_MAGICYUV_DECODER 1 %define CONFIG_MDEC_DECODER 1 %define CONFIG_MIMIC_DECODER 1 %define CONFIG_MJPEG_DECODER 1 %define CONFIG_MJPEGB_DECODER 1 %define CONFIG_MMVIDEO_DECODER 1 %define CONFIG_MOTIONPIXELS_DECODER 1 -%define CONFIG_MPEG_XVMC_DECODER 0 %define CONFIG_MPEG1VIDEO_DECODER 1 %define CONFIG_MPEG2VIDEO_DECODER 1 %define CONFIG_MPEG4_DECODER 1 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG4_VDPAU_DECODER 0 +%define CONFIG_MPEG4_V4L2M2M_DECODER 0 +%define CONFIG_MPEG4_MMAL_DECODER 0 %define CONFIG_MPEGVIDEO_DECODER 1 -%define CONFIG_MPEG_VDPAU_DECODER 0 -%define CONFIG_MPEG1_VDPAU_DECODER 0 +%define CONFIG_MPEG1_V4L2M2M_DECODER 0 +%define CONFIG_MPEG2_MMAL_DECODER 0 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +%define CONFIG_MPEG2_V4L2M2M_DECODER 0 %define CONFIG_MPEG2_QSV_DECODER 0 +%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 %define CONFIG_MSA1_DECODER 1 -%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MSCC_DECODER 1 %define CONFIG_MSMPEG4V1_DECODER 1 %define CONFIG_MSMPEG4V2_DECODER 1 %define CONFIG_MSMPEG4V3_DECODER 1 +%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 %define CONFIG_MSRLE_DECODER 1 %define CONFIG_MSS1_DECODER 1 %define CONFIG_MSS2_DECODER 1 @@ -727,6 +835,7 @@ %define CONFIG_MTS2_DECODER 1 %define CONFIG_MVC1_DECODER 1 %define CONFIG_MVC2_DECODER 1 +%define CONFIG_MWSC_DECODER 1 %define CONFIG_MXPEG_DECODER 1 %define CONFIG_NUV_DECODER 1 %define CONFIG_PAF_VIDEO_DECODER 1 @@ -736,33 +845,43 @@ %define CONFIG_PGM_DECODER 1 %define CONFIG_PGMYUV_DECODER 1 %define CONFIG_PICTOR_DECODER 1 +%define CONFIG_PIXLET_DECODER 1 %define CONFIG_PNG_DECODER 1 %define CONFIG_PPM_DECODER 1 %define CONFIG_PRORES_DECODER 1 -%define CONFIG_PRORES_LGPL_DECODER 1 +%define CONFIG_PROSUMER_DECODER 1 +%define CONFIG_PSD_DECODER 1 %define CONFIG_PTX_DECODER 1 %define CONFIG_QDRAW_DECODER 1 %define CONFIG_QPEG_DECODER 1 %define CONFIG_QTRLE_DECODER 1 %define CONFIG_R10K_DECODER 1 %define CONFIG_R210_DECODER 1 +%define CONFIG_RASC_DECODER 1 %define CONFIG_RAWVIDEO_DECODER 1 %define CONFIG_RL2_DECODER 1 %define CONFIG_ROQ_DECODER 1 %define CONFIG_RPZA_DECODER 1 +%define CONFIG_RSCC_DECODER 1 %define CONFIG_RV10_DECODER 1 %define CONFIG_RV20_DECODER 1 %define CONFIG_RV30_DECODER 1 %define CONFIG_RV40_DECODER 1 %define CONFIG_S302M_DECODER 1 %define CONFIG_SANM_DECODER 1 +%define CONFIG_SCPR_DECODER 1 +%define CONFIG_SCREENPRESSO_DECODER 1 +%define CONFIG_SDX2_DPCM_DECODER 1 %define CONFIG_SGI_DECODER 1 %define CONFIG_SGIRLE_DECODER 1 +%define CONFIG_SHEERVIDEO_DECODER 1 %define CONFIG_SMACKER_DECODER 1 %define CONFIG_SMC_DECODER 1 %define CONFIG_SMVJPEG_DECODER 1 %define CONFIG_SNOW_DECODER 1 %define CONFIG_SP5X_DECODER 1 +%define CONFIG_SPEEDHQ_DECODER 1 +%define CONFIG_SRGC_DECODER 1 %define CONFIG_SUNRAST_DECODER 1 %define CONFIG_SVQ1_DECODER 1 %define CONFIG_SVQ3_DECODER 1 @@ -776,6 +895,7 @@ %define CONFIG_TMV_DECODER 1 %define CONFIG_TRUEMOTION1_DECODER 1 %define CONFIG_TRUEMOTION2_DECODER 1 +%define CONFIG_TRUEMOTION2RT_DECODER 1 %define CONFIG_TSCC_DECODER 1 %define CONFIG_TSCC2_DECODER 1 %define CONFIG_TXD_DECODER 1 @@ -790,9 +910,10 @@ %define CONFIG_VBLE_DECODER 1 %define CONFIG_VC1_DECODER 1 %define CONFIG_VC1_CRYSTALHD_DECODER 0 -%define CONFIG_VC1_VDPAU_DECODER 0 %define CONFIG_VC1IMAGE_DECODER 1 +%define CONFIG_VC1_MMAL_DECODER 0 %define CONFIG_VC1_QSV_DECODER 0 +%define CONFIG_VC1_V4L2M2M_DECODER 0 %define CONFIG_VCR1_DECODER 1 %define CONFIG_VMDVIDEO_DECODER 1 %define CONFIG_VMNC_DECODER 1 @@ -803,14 +924,19 @@ %define CONFIG_VP6F_DECODER 1 %define CONFIG_VP7_DECODER 1 %define CONFIG_VP8_DECODER 1 +%define CONFIG_VP8_RKMPP_DECODER 0 +%define CONFIG_VP8_V4L2M2M_DECODER 0 %define CONFIG_VP9_DECODER 1 +%define CONFIG_VP9_RKMPP_DECODER 0 +%define CONFIG_VP9_V4L2M2M_DECODER 0 %define CONFIG_VQA_DECODER 1 %define CONFIG_WEBP_DECODER 1 +%define CONFIG_WCMV_DECODER 1 +%define CONFIG_WRAPPED_AVFRAME_DECODER 1 %define CONFIG_WMV1_DECODER 1 %define CONFIG_WMV2_DECODER 1 %define CONFIG_WMV3_DECODER 1 %define CONFIG_WMV3_CRYSTALHD_DECODER 0 -%define CONFIG_WMV3_VDPAU_DECODER 0 %define CONFIG_WMV3IMAGE_DECODER 1 %define CONFIG_WNV1_DECODER 1 %define CONFIG_XAN_WC3_DECODER 1 @@ -818,8 +944,10 @@ %define CONFIG_XBM_DECODER 1 %define CONFIG_XFACE_DECODER 1 %define CONFIG_XL_DECODER 1 +%define CONFIG_XPM_DECODER 1 %define CONFIG_XWD_DECODER 1 %define CONFIG_Y41P_DECODER 1 +%define CONFIG_YLC_DECODER 1 %define CONFIG_YOP_DECODER 1 %define CONFIG_YUV4_DECODER 1 %define CONFIG_ZERO12V_DECODER 1 @@ -836,20 +964,27 @@ %define CONFIG_AMRNB_DECODER 1 %define CONFIG_AMRWB_DECODER 1 %define CONFIG_APE_DECODER 1 +%define CONFIG_APTX_DECODER 1 +%define CONFIG_APTX_HD_DECODER 1 %define CONFIG_ATRAC1_DECODER 1 %define CONFIG_ATRAC3_DECODER 1 +%define CONFIG_ATRAC3AL_DECODER 1 %define CONFIG_ATRAC3P_DECODER 0 +%define CONFIG_ATRAC3PAL_DECODER 1 +%define CONFIG_ATRAC9_DECODER 1 %define CONFIG_BINKAUDIO_DCT_DECODER 1 %define CONFIG_BINKAUDIO_RDFT_DECODER 1 %define CONFIG_BMV_AUDIO_DECODER 1 %define CONFIG_COOK_DECODER 1 %define CONFIG_DCA_DECODER 1 +%define CONFIG_DOLBY_E_DECODER 1 %define CONFIG_DSD_LSBF_DECODER 1 %define CONFIG_DSD_MSBF_DECODER 1 %define CONFIG_DSD_LSBF_PLANAR_DECODER 1 %define CONFIG_DSD_MSBF_PLANAR_DECODER 1 %define CONFIG_DSICINAUDIO_DECODER 1 %define CONFIG_DSS_SP_DECODER 1 +%define CONFIG_DST_DECODER 1 %define CONFIG_EAC3_DECODER 1 %define CONFIG_EVRC_DECODER 1 %define CONFIG_FFWAVESYNTH_DECODER 1 @@ -859,7 +994,9 @@ %define CONFIG_GSM_DECODER 1 %define CONFIG_GSM_MS_DECODER 1 %define CONFIG_IAC_DECODER 1 +%define CONFIG_ILBC_DECODER 1 %define CONFIG_IMC_DECODER 1 +%define CONFIG_INTERPLAY_ACM_DECODER 1 %define CONFIG_MACE3_DECODER 1 %define CONFIG_MACE6_DECODER 1 %define CONFIG_METASOUND_DECODER 1 @@ -868,12 +1005,12 @@ %define CONFIG_MP1FLOAT_DECODER 1 %define CONFIG_MP2_DECODER 1 %define CONFIG_MP2FLOAT_DECODER 1 -%define CONFIG_MP3_DECODER 1 %define CONFIG_MP3FLOAT_DECODER 1 -%define CONFIG_MP3ADU_DECODER 1 +%define CONFIG_MP3_DECODER 1 %define CONFIG_MP3ADUFLOAT_DECODER 1 -%define CONFIG_MP3ON4_DECODER 1 +%define CONFIG_MP3ADU_DECODER 1 %define CONFIG_MP3ON4FLOAT_DECODER 1 +%define CONFIG_MP3ON4_DECODER 1 %define CONFIG_MPC7_DECODER 1 %define CONFIG_MPC8_DECODER 1 %define CONFIG_NELLYMOSER_DECODER 1 @@ -882,9 +1019,11 @@ %define CONFIG_PAF_AUDIO_DECODER 1 %define CONFIG_QCELP_DECODER 1 %define CONFIG_QDM2_DECODER 1 +%define CONFIG_QDMC_DECODER 1 %define CONFIG_RA_144_DECODER 1 %define CONFIG_RA_288_DECODER 1 %define CONFIG_RALF_DECODER 1 +%define CONFIG_SBC_DECODER 1 %define CONFIG_SHORTEN_DECODER 1 %define CONFIG_SIPR_DECODER 1 %define CONFIG_SMACKAUD_DECODER 1 @@ -903,9 +1042,13 @@ %define CONFIG_WMAV2_DECODER 1 %define CONFIG_WMAVOICE_DECODER 1 %define CONFIG_WS_SND1_DECODER 1 +%define CONFIG_XMA1_DECODER 1 +%define CONFIG_XMA2_DECODER 1 %define CONFIG_PCM_ALAW_DECODER 1 %define CONFIG_PCM_BLURAY_DECODER 1 %define CONFIG_PCM_DVD_DECODER 1 +%define CONFIG_PCM_F16LE_DECODER 1 +%define CONFIG_PCM_F24LE_DECODER 1 %define CONFIG_PCM_F32BE_DECODER 1 %define CONFIG_PCM_F32LE_DECODER 1 %define CONFIG_PCM_F64BE_DECODER 1 @@ -925,6 +1068,8 @@ %define CONFIG_PCM_S32BE_DECODER 1 %define CONFIG_PCM_S32LE_DECODER 1 %define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +%define CONFIG_PCM_S64BE_DECODER 1 +%define CONFIG_PCM_S64LE_DECODER 1 %define CONFIG_PCM_U8_DECODER 1 %define CONFIG_PCM_U16BE_DECODER 1 %define CONFIG_PCM_U16LE_DECODER 1 @@ -932,7 +1077,9 @@ %define CONFIG_PCM_U24LE_DECODER 1 %define CONFIG_PCM_U32BE_DECODER 1 %define CONFIG_PCM_U32LE_DECODER 1 +%define CONFIG_PCM_VIDC_DECODER 1 %define CONFIG_PCM_ZORK_DECODER 1 +%define CONFIG_GREMLIN_DPCM_DECODER 1 %define CONFIG_INTERPLAY_DPCM_DECODER 1 %define CONFIG_ROQ_DPCM_DECODER 1 %define CONFIG_SOL_DPCM_DECODER 1 @@ -940,6 +1087,7 @@ %define CONFIG_ADPCM_4XM_DECODER 1 %define CONFIG_ADPCM_ADX_DECODER 1 %define CONFIG_ADPCM_AFC_DECODER 1 +%define CONFIG_ADPCM_AICA_DECODER 1 %define CONFIG_ADPCM_CT_DECODER 1 %define CONFIG_ADPCM_DTK_DECODER 1 %define CONFIG_ADPCM_EA_DECODER 1 @@ -953,6 +1101,7 @@ %define CONFIG_ADPCM_G726LE_DECODER 1 %define CONFIG_ADPCM_IMA_AMV_DECODER 1 %define CONFIG_ADPCM_IMA_APC_DECODER 1 +%define CONFIG_ADPCM_IMA_DAT4_DECODER 1 %define CONFIG_ADPCM_IMA_DK3_DECODER 1 %define CONFIG_ADPCM_IMA_DK4_DECODER 1 %define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 @@ -965,6 +1114,8 @@ %define CONFIG_ADPCM_IMA_WAV_DECODER 1 %define CONFIG_ADPCM_IMA_WS_DECODER 1 %define CONFIG_ADPCM_MS_DECODER 1 +%define CONFIG_ADPCM_MTAF_DECODER 1 +%define CONFIG_ADPCM_PSX_DECODER 1 %define CONFIG_ADPCM_SBPRO_2_DECODER 1 %define CONFIG_ADPCM_SBPRO_3_DECODER 1 %define CONFIG_ADPCM_SBPRO_4_DECODER 1 @@ -974,7 +1125,6 @@ %define CONFIG_ADPCM_VIMA_DECODER 1 %define CONFIG_ADPCM_XA_DECODER 1 %define CONFIG_ADPCM_YAMAHA_DECODER 1 -%define CONFIG_VIMA_DECODER 1 %define CONFIG_SSA_DECODER 1 %define CONFIG_ASS_DECODER 1 %define CONFIG_CCAPTION_DECODER 1 @@ -997,8 +1147,26 @@ %define CONFIG_VPLAYER_DECODER 1 %define CONFIG_WEBVTT_DECODER 1 %define CONFIG_XSUB_DECODER 1 +%define CONFIG_AAC_AT_DECODER 0 +%define CONFIG_AC3_AT_DECODER 0 +%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +%define CONFIG_ALAC_AT_DECODER 0 +%define CONFIG_AMR_NB_AT_DECODER 0 +%define CONFIG_EAC3_AT_DECODER 0 +%define CONFIG_GSM_MS_AT_DECODER 0 +%define CONFIG_ILBC_AT_DECODER 0 +%define CONFIG_MP1_AT_DECODER 0 +%define CONFIG_MP2_AT_DECODER 0 +%define CONFIG_MP3_AT_DECODER 0 +%define CONFIG_PCM_ALAW_AT_DECODER 0 +%define CONFIG_PCM_MULAW_AT_DECODER 0 +%define CONFIG_QDMC_AT_DECODER 0 +%define CONFIG_QDM2_AT_DECODER 0 +%define CONFIG_LIBAOM_AV1_DECODER 0 %define CONFIG_LIBCELT_DECODER 0 -%define CONFIG_LIBDCADEC_DECODER 0 +%define CONFIG_LIBCODEC2_DECODER 0 +%define CONFIG_LIBDAV1D_DECODER 0 +%define CONFIG_LIBDAVS2_DECODER 0 %define CONFIG_LIBFDK_AAC_DECODER 0 %define CONFIG_LIBGSM_DECODER 0 %define CONFIG_LIBGSM_MS_DECODER 0 @@ -1007,10 +1175,8 @@ %define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 %define CONFIG_LIBOPENJPEG_DECODER 0 %define CONFIG_LIBOPUS_DECODER 0 -%define CONFIG_LIBSCHROEDINGER_DECODER 0 +%define CONFIG_LIBRSVG_DECODER 0 %define CONFIG_LIBSPEEX_DECODER 0 -%define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 -%define CONFIG_LIBUTVIDEO_DECODER 0 %define CONFIG_LIBVORBIS_DECODER 0 %define CONFIG_LIBVPX_VP8_DECODER 0 %define CONFIG_LIBVPX_VP9_DECODER 0 @@ -1018,250 +1184,21 @@ %define CONFIG_BINTEXT_DECODER 1 %define CONFIG_XBIN_DECODER 1 %define CONFIG_IDF_DECODER 1 -%define CONFIG_AAC_DEMUXER 1 -%define CONFIG_AC3_DEMUXER 1 -%define CONFIG_ACT_DEMUXER 1 -%define CONFIG_ADF_DEMUXER 1 -%define CONFIG_ADP_DEMUXER 1 -%define CONFIG_ADX_DEMUXER 1 -%define CONFIG_AEA_DEMUXER 1 -%define CONFIG_AFC_DEMUXER 1 -%define CONFIG_AIFF_DEMUXER 1 -%define CONFIG_AMR_DEMUXER 1 -%define CONFIG_ANM_DEMUXER 1 -%define CONFIG_APC_DEMUXER 1 -%define CONFIG_APE_DEMUXER 1 -%define CONFIG_APNG_DEMUXER 1 -%define CONFIG_AQTITLE_DEMUXER 1 -%define CONFIG_ASF_DEMUXER 1 -%define CONFIG_ASF_O_DEMUXER 1 -%define CONFIG_ASS_DEMUXER 1 -%define CONFIG_AST_DEMUXER 1 -%define CONFIG_AU_DEMUXER 1 -%define CONFIG_AVI_DEMUXER 1 -%define CONFIG_AVISYNTH_DEMUXER 0 -%define CONFIG_AVR_DEMUXER 1 -%define CONFIG_AVS_DEMUXER 1 -%define CONFIG_BETHSOFTVID_DEMUXER 1 -%define CONFIG_BFI_DEMUXER 1 -%define CONFIG_BINTEXT_DEMUXER 1 -%define CONFIG_BINK_DEMUXER 1 -%define CONFIG_BIT_DEMUXER 1 -%define CONFIG_BMV_DEMUXER 1 -%define CONFIG_BFSTM_DEMUXER 1 -%define CONFIG_BRSTM_DEMUXER 1 -%define CONFIG_BOA_DEMUXER 1 -%define CONFIG_C93_DEMUXER 1 -%define CONFIG_CAF_DEMUXER 1 -%define CONFIG_CAVSVIDEO_DEMUXER 1 -%define CONFIG_CDG_DEMUXER 1 -%define CONFIG_CDXL_DEMUXER 1 -%define CONFIG_CINE_DEMUXER 1 -%define CONFIG_CONCAT_DEMUXER 1 -%define CONFIG_DATA_DEMUXER 1 -%define CONFIG_DAUD_DEMUXER 1 -%define CONFIG_DFA_DEMUXER 1 -%define CONFIG_DIRAC_DEMUXER 1 -%define CONFIG_DNXHD_DEMUXER 1 -%define CONFIG_DSF_DEMUXER 1 -%define CONFIG_DSICIN_DEMUXER 1 -%define CONFIG_DSS_DEMUXER 1 -%define CONFIG_DTS_DEMUXER 1 -%define CONFIG_DTSHD_DEMUXER 1 -%define CONFIG_DV_DEMUXER 1 -%define CONFIG_DVBSUB_DEMUXER 1 -%define CONFIG_DXA_DEMUXER 1 -%define CONFIG_EA_DEMUXER 1 -%define CONFIG_EA_CDATA_DEMUXER 1 -%define CONFIG_EAC3_DEMUXER 1 -%define CONFIG_EPAF_DEMUXER 1 -%define CONFIG_FFM_DEMUXER 1 -%define CONFIG_FFMETADATA_DEMUXER 1 -%define CONFIG_FILMSTRIP_DEMUXER 1 -%define CONFIG_FLAC_DEMUXER 1 -%define CONFIG_FLIC_DEMUXER 1 -%define CONFIG_FLV_DEMUXER 1 -%define CONFIG_LIVE_FLV_DEMUXER 1 -%define CONFIG_FOURXM_DEMUXER 1 -%define CONFIG_FRM_DEMUXER 1 -%define CONFIG_G722_DEMUXER 1 -%define CONFIG_G723_1_DEMUXER 1 -%define CONFIG_G729_DEMUXER 1 -%define CONFIG_GIF_DEMUXER 1 -%define CONFIG_GSM_DEMUXER 1 -%define CONFIG_GXF_DEMUXER 1 -%define CONFIG_H261_DEMUXER 1 -%define CONFIG_H263_DEMUXER 1 -%define CONFIG_H264_DEMUXER 1 -%define CONFIG_HEVC_DEMUXER 1 -%define CONFIG_HLS_DEMUXER 1 -%define CONFIG_HNM_DEMUXER 1 -%define CONFIG_ICO_DEMUXER 1 -%define CONFIG_IDCIN_DEMUXER 1 -%define CONFIG_IDF_DEMUXER 1 -%define CONFIG_IFF_DEMUXER 1 -%define CONFIG_ILBC_DEMUXER 1 -%define CONFIG_IMAGE2_DEMUXER 1 -%define CONFIG_IMAGE2PIPE_DEMUXER 1 -%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -%define CONFIG_INGENIENT_DEMUXER 1 -%define CONFIG_IPMOVIE_DEMUXER 1 -%define CONFIG_IRCAM_DEMUXER 1 -%define CONFIG_ISS_DEMUXER 1 -%define CONFIG_IV8_DEMUXER 1 -%define CONFIG_IVF_DEMUXER 1 -%define CONFIG_JACOSUB_DEMUXER 1 -%define CONFIG_JV_DEMUXER 1 -%define CONFIG_LATM_DEMUXER 1 -%define CONFIG_LMLM4_DEMUXER 1 -%define CONFIG_LOAS_DEMUXER 1 -%define CONFIG_LRC_DEMUXER 1 -%define CONFIG_LVF_DEMUXER 1 -%define CONFIG_LXF_DEMUXER 1 -%define CONFIG_M4V_DEMUXER 1 -%define CONFIG_MATROSKA_DEMUXER 1 -%define CONFIG_MGSTS_DEMUXER 1 -%define CONFIG_MICRODVD_DEMUXER 1 -%define CONFIG_MJPEG_DEMUXER 1 -%define CONFIG_MLP_DEMUXER 1 -%define CONFIG_MLV_DEMUXER 1 -%define CONFIG_MM_DEMUXER 1 -%define CONFIG_MMF_DEMUXER 1 -%define CONFIG_MOV_DEMUXER 1 -%define CONFIG_MP3_DEMUXER 1 -%define CONFIG_MPC_DEMUXER 1 -%define CONFIG_MPC8_DEMUXER 1 -%define CONFIG_MPEGPS_DEMUXER 1 -%define CONFIG_MPEGTS_DEMUXER 1 -%define CONFIG_MPEGTSRAW_DEMUXER 1 -%define CONFIG_MPEGVIDEO_DEMUXER 1 -%define CONFIG_MPJPEG_DEMUXER 1 -%define CONFIG_MPL2_DEMUXER 1 -%define CONFIG_MPSUB_DEMUXER 1 -%define CONFIG_MSNWC_TCP_DEMUXER 1 -%define CONFIG_MTV_DEMUXER 1 -%define CONFIG_MV_DEMUXER 1 -%define CONFIG_MVI_DEMUXER 1 -%define CONFIG_MXF_DEMUXER 1 -%define CONFIG_MXG_DEMUXER 1 -%define CONFIG_NC_DEMUXER 1 -%define CONFIG_NISTSPHERE_DEMUXER 1 -%define CONFIG_NSV_DEMUXER 1 -%define CONFIG_NUT_DEMUXER 1 -%define CONFIG_NUV_DEMUXER 1 -%define CONFIG_OGG_DEMUXER 1 -%define CONFIG_OMA_DEMUXER 1 -%define CONFIG_PAF_DEMUXER 1 -%define CONFIG_PCM_ALAW_DEMUXER 1 -%define CONFIG_PCM_MULAW_DEMUXER 1 -%define CONFIG_PCM_F64BE_DEMUXER 1 -%define CONFIG_PCM_F64LE_DEMUXER 1 -%define CONFIG_PCM_F32BE_DEMUXER 1 -%define CONFIG_PCM_F32LE_DEMUXER 1 -%define CONFIG_PCM_S32BE_DEMUXER 1 -%define CONFIG_PCM_S32LE_DEMUXER 1 -%define CONFIG_PCM_S24BE_DEMUXER 1 -%define CONFIG_PCM_S24LE_DEMUXER 1 -%define CONFIG_PCM_S16BE_DEMUXER 1 -%define CONFIG_PCM_S16LE_DEMUXER 1 -%define CONFIG_PCM_S8_DEMUXER 1 -%define CONFIG_PCM_U32BE_DEMUXER 1 -%define CONFIG_PCM_U32LE_DEMUXER 1 -%define CONFIG_PCM_U24BE_DEMUXER 1 -%define CONFIG_PCM_U24LE_DEMUXER 1 -%define CONFIG_PCM_U16BE_DEMUXER 1 -%define CONFIG_PCM_U16LE_DEMUXER 1 -%define CONFIG_PCM_U8_DEMUXER 1 -%define CONFIG_PJS_DEMUXER 1 -%define CONFIG_PMP_DEMUXER 1 -%define CONFIG_PVA_DEMUXER 1 -%define CONFIG_PVF_DEMUXER 1 -%define CONFIG_QCP_DEMUXER 1 -%define CONFIG_R3D_DEMUXER 1 -%define CONFIG_RAWVIDEO_DEMUXER 1 -%define CONFIG_REALTEXT_DEMUXER 1 -%define CONFIG_REDSPARK_DEMUXER 1 -%define CONFIG_RL2_DEMUXER 1 -%define CONFIG_RM_DEMUXER 1 -%define CONFIG_ROQ_DEMUXER 1 -%define CONFIG_RPL_DEMUXER 1 -%define CONFIG_RSD_DEMUXER 1 -%define CONFIG_RSO_DEMUXER 1 -%define CONFIG_RTP_DEMUXER 0 -%define CONFIG_RTSP_DEMUXER 0 -%define CONFIG_SAMI_DEMUXER 1 -%define CONFIG_SAP_DEMUXER 0 -%define CONFIG_SBG_DEMUXER 1 -%define CONFIG_SDP_DEMUXER 0 -%define CONFIG_SDR2_DEMUXER 1 -%define CONFIG_SEGAFILM_DEMUXER 1 -%define CONFIG_SHORTEN_DEMUXER 1 -%define CONFIG_SIFF_DEMUXER 1 -%define CONFIG_SLN_DEMUXER 1 -%define CONFIG_SMACKER_DEMUXER 1 -%define CONFIG_SMJPEG_DEMUXER 1 -%define CONFIG_SMUSH_DEMUXER 1 -%define CONFIG_SOL_DEMUXER 1 -%define CONFIG_SOX_DEMUXER 1 -%define CONFIG_SPDIF_DEMUXER 1 -%define CONFIG_SRT_DEMUXER 1 -%define CONFIG_STR_DEMUXER 1 -%define CONFIG_STL_DEMUXER 1 -%define CONFIG_SUBVIEWER1_DEMUXER 1 -%define CONFIG_SUBVIEWER_DEMUXER 1 -%define CONFIG_SUP_DEMUXER 1 -%define CONFIG_SWF_DEMUXER 1 -%define CONFIG_TAK_DEMUXER 1 -%define CONFIG_TEDCAPTIONS_DEMUXER 1 -%define CONFIG_THP_DEMUXER 1 -%define CONFIG_TIERTEXSEQ_DEMUXER 1 -%define CONFIG_TMV_DEMUXER 1 -%define CONFIG_TRUEHD_DEMUXER 1 -%define CONFIG_TTA_DEMUXER 1 -%define CONFIG_TXD_DEMUXER 1 -%define CONFIG_TTY_DEMUXER 1 -%define CONFIG_VC1_DEMUXER 1 -%define CONFIG_VC1T_DEMUXER 1 -%define CONFIG_VIVO_DEMUXER 1 -%define CONFIG_VMD_DEMUXER 1 -%define CONFIG_VOBSUB_DEMUXER 1 -%define CONFIG_VOC_DEMUXER 1 -%define CONFIG_VPLAYER_DEMUXER 1 -%define CONFIG_VQF_DEMUXER 1 -%define CONFIG_W64_DEMUXER 1 -%define CONFIG_WAV_DEMUXER 1 -%define CONFIG_WC3_DEMUXER 1 -%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -%define CONFIG_WEBVTT_DEMUXER 1 -%define CONFIG_WSAUD_DEMUXER 1 -%define CONFIG_WSVQA_DEMUXER 1 -%define CONFIG_WTV_DEMUXER 1 -%define CONFIG_WV_DEMUXER 1 -%define CONFIG_XA_DEMUXER 1 -%define CONFIG_XBIN_DEMUXER 1 -%define CONFIG_XMV_DEMUXER 1 -%define CONFIG_XWMA_DEMUXER 1 -%define CONFIG_YOP_DEMUXER 1 -%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -%define CONFIG_LIBGME_DEMUXER 0 -%define CONFIG_LIBMODPLUG_DEMUXER 0 -%define CONFIG_LIBNUT_DEMUXER 0 -%define CONFIG_LIBQUVI_DEMUXER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H264_CUVID_DECODER 0 +%define CONFIG_HEVC_CUVID_DECODER 0 +%define CONFIG_HEVC_MEDIACODEC_DECODER 0 +%define CONFIG_MJPEG_CUVID_DECODER 0 +%define CONFIG_MPEG1_CUVID_DECODER 0 +%define CONFIG_MPEG2_CUVID_DECODER 0 +%define CONFIG_MPEG4_CUVID_DECODER 0 +%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +%define CONFIG_VC1_CUVID_DECODER 0 +%define CONFIG_VP8_CUVID_DECODER 0 +%define CONFIG_VP8_MEDIACODEC_DECODER 0 +%define CONFIG_VP8_QSV_DECODER 0 +%define CONFIG_VP9_CUVID_DECODER 0 +%define CONFIG_VP9_MEDIACODEC_DECODER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1281,6 +1218,7 @@ %define CONFIG_DVVIDEO_ENCODER 0 %define CONFIG_FFV1_ENCODER 0 %define CONFIG_FFVHUFF_ENCODER 0 +%define CONFIG_FITS_ENCODER 0 %define CONFIG_FLASHSV_ENCODER 0 %define CONFIG_FLASHSV2_ENCODER 0 %define CONFIG_FLV_ENCODER 0 @@ -1293,6 +1231,7 @@ %define CONFIG_JPEG2000_ENCODER 0 %define CONFIG_JPEGLS_ENCODER 0 %define CONFIG_LJPEG_ENCODER 0 +%define CONFIG_MAGICYUV_ENCODER 0 %define CONFIG_MJPEG_ENCODER 0 %define CONFIG_MPEG1VIDEO_ENCODER 0 %define CONFIG_MPEG2VIDEO_ENCODER 0 @@ -1329,6 +1268,8 @@ %define CONFIG_V308_ENCODER 0 %define CONFIG_V408_ENCODER 0 %define CONFIG_V410_ENCODER 0 +%define CONFIG_VC2_ENCODER 0 +%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 %define CONFIG_WMV1_ENCODER 0 %define CONFIG_WMV2_ENCODER 0 %define CONFIG_XBM_ENCODER 0 @@ -1342,16 +1283,22 @@ %define CONFIG_AC3_ENCODER 0 %define CONFIG_AC3_FIXED_ENCODER 0 %define CONFIG_ALAC_ENCODER 0 +%define CONFIG_APTX_ENCODER 0 +%define CONFIG_APTX_HD_ENCODER 0 %define CONFIG_DCA_ENCODER 0 %define CONFIG_EAC3_ENCODER 0 %define CONFIG_FLAC_ENCODER 0 %define CONFIG_G723_1_ENCODER 0 +%define CONFIG_MLP_ENCODER 0 %define CONFIG_MP2_ENCODER 0 %define CONFIG_MP2FIXED_ENCODER 0 %define CONFIG_NELLYMOSER_ENCODER 0 +%define CONFIG_OPUS_ENCODER 0 %define CONFIG_RA_144_ENCODER 0 +%define CONFIG_SBC_ENCODER 0 %define CONFIG_SONIC_ENCODER 0 %define CONFIG_SONIC_LS_ENCODER 0 +%define CONFIG_TRUEHD_ENCODER 0 %define CONFIG_TTA_ENCODER 0 %define CONFIG_VORBIS_ENCODER 0 %define CONFIG_WAVPACK_ENCODER 0 @@ -1376,6 +1323,8 @@ %define CONFIG_PCM_S32BE_ENCODER 0 %define CONFIG_PCM_S32LE_ENCODER 0 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S64BE_ENCODER 0 +%define CONFIG_PCM_S64LE_ENCODER 0 %define CONFIG_PCM_U8_ENCODER 0 %define CONFIG_PCM_U16BE_ENCODER 0 %define CONFIG_PCM_U16LE_ENCODER 0 @@ -1383,10 +1332,12 @@ %define CONFIG_PCM_U24LE_ENCODER 0 %define CONFIG_PCM_U32BE_ENCODER 0 %define CONFIG_PCM_U32LE_ENCODER 0 +%define CONFIG_PCM_VIDC_ENCODER 0 %define CONFIG_ROQ_DPCM_ENCODER 0 %define CONFIG_ADPCM_ADX_ENCODER 0 %define CONFIG_ADPCM_G722_ENCODER 0 %define CONFIG_ADPCM_G726_ENCODER 0 +%define CONFIG_ADPCM_G726LE_ENCODER 0 %define CONFIG_ADPCM_IMA_QT_ENCODER 0 %define CONFIG_ADPCM_IMA_WAV_ENCODER 0 %define CONFIG_ADPCM_MS_ENCODER 0 @@ -1399,9 +1350,16 @@ %define CONFIG_MOVTEXT_ENCODER 0 %define CONFIG_SRT_ENCODER 0 %define CONFIG_SUBRIP_ENCODER 0 +%define CONFIG_TEXT_ENCODER 0 %define CONFIG_WEBVTT_ENCODER 0 %define CONFIG_XSUB_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 +%define CONFIG_AAC_AT_ENCODER 0 +%define CONFIG_ALAC_AT_ENCODER 0 +%define CONFIG_ILBC_AT_ENCODER 0 +%define CONFIG_PCM_ALAW_AT_ENCODER 0 +%define CONFIG_PCM_MULAW_AT_ENCODER 0 +%define CONFIG_LIBAOM_AV1_ENCODER 0 +%define CONFIG_LIBCODEC2_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1410,13 +1368,10 @@ %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 %define CONFIG_LIBOPENJPEG_ENCODER 0 %define CONFIG_LIBOPUS_ENCODER 0 -%define CONFIG_LIBSCHROEDINGER_ENCODER 0 %define CONFIG_LIBSHINE_ENCODER 0 %define CONFIG_LIBSPEEX_ENCODER 0 %define CONFIG_LIBTHEORA_ENCODER 0 %define CONFIG_LIBTWOLAME_ENCODER 0 -%define CONFIG_LIBUTVIDEO_ENCODER 0 -%define CONFIG_LIBVO_AACENC_ENCODER 0 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0 %define CONFIG_LIBVORBIS_ENCODER 0 %define CONFIG_LIBVPX_VP8_ENCODER 0 @@ -1429,30 +1384,203 @@ %define CONFIG_LIBX264RGB_ENCODER 0 %define CONFIG_LIBX265_ENCODER 0 %define CONFIG_LIBXAVS_ENCODER 0 +%define CONFIG_LIBXAVS2_ENCODER 0 %define CONFIG_LIBXVID_ENCODER 0 -%define CONFIG_LIBAACPLUS_ENCODER 0 +%define CONFIG_H263_V4L2M2M_ENCODER 0 %define CONFIG_LIBOPENH264_ENCODER 0 +%define CONFIG_H264_AMF_ENCODER 0 +%define CONFIG_H264_NVENC_ENCODER 0 +%define CONFIG_H264_OMX_ENCODER 0 %define CONFIG_H264_QSV_ENCODER 0 +%define CONFIG_H264_V4L2M2M_ENCODER 0 +%define CONFIG_H264_VAAPI_ENCODER 0 +%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 %define CONFIG_NVENC_ENCODER 0 %define CONFIG_NVENC_H264_ENCODER 0 %define CONFIG_NVENC_HEVC_ENCODER 0 +%define CONFIG_HEVC_AMF_ENCODER 0 +%define CONFIG_HEVC_NVENC_ENCODER 0 %define CONFIG_HEVC_QSV_ENCODER 0 +%define CONFIG_HEVC_V4L2M2M_ENCODER 0 +%define CONFIG_HEVC_VAAPI_ENCODER 0 +%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 %define CONFIG_LIBKVAZAAR_ENCODER 0 +%define CONFIG_MJPEG_QSV_ENCODER 0 +%define CONFIG_MJPEG_VAAPI_ENCODER 0 %define CONFIG_MPEG2_QSV_ENCODER 0 +%define CONFIG_MPEG2_VAAPI_ENCODER 0 +%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_VAAPI_ENCODER 0 +%define CONFIG_VP9_VAAPI_ENCODER 0 +%define CONFIG_H263_VAAPI_HWACCEL 0 +%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_H264_D3D11VA_HWACCEL 0 +%define CONFIG_H264_D3D11VA2_HWACCEL 0 +%define CONFIG_H264_DXVA2_HWACCEL 0 +%define CONFIG_H264_NVDEC_HWACCEL 0 +%define CONFIG_H264_VAAPI_HWACCEL 0 +%define CONFIG_H264_VDPAU_HWACCEL 0 +%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +%define CONFIG_HEVC_DXVA2_HWACCEL 0 +%define CONFIG_HEVC_NVDEC_HWACCEL 0 +%define CONFIG_HEVC_VAAPI_HWACCEL 0 +%define CONFIG_HEVC_VDPAU_HWACCEL 0 +%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MJPEG_NVDEC_HWACCEL 0 +%define CONFIG_MJPEG_VAAPI_HWACCEL 0 +%define CONFIG_MPEG1_NVDEC_HWACCEL 0 +%define CONFIG_MPEG1_VDPAU_HWACCEL 0 +%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG1_XVMC_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +%define CONFIG_MPEG2_NVDEC_HWACCEL 0 +%define CONFIG_MPEG2_DXVA2_HWACCEL 0 +%define CONFIG_MPEG2_VAAPI_HWACCEL 0 +%define CONFIG_MPEG2_VDPAU_HWACCEL 0 +%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG2_XVMC_HWACCEL 0 +%define CONFIG_MPEG4_NVDEC_HWACCEL 0 +%define CONFIG_MPEG4_VAAPI_HWACCEL 0 +%define CONFIG_MPEG4_VDPAU_HWACCEL 0 +%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_VC1_D3D11VA_HWACCEL 0 +%define CONFIG_VC1_D3D11VA2_HWACCEL 0 +%define CONFIG_VC1_DXVA2_HWACCEL 0 +%define CONFIG_VC1_NVDEC_HWACCEL 0 +%define CONFIG_VC1_VAAPI_HWACCEL 0 +%define CONFIG_VC1_VDPAU_HWACCEL 0 +%define CONFIG_VP8_NVDEC_HWACCEL 0 +%define CONFIG_VP8_VAAPI_HWACCEL 0 +%define CONFIG_VP9_D3D11VA_HWACCEL 0 +%define CONFIG_VP9_D3D11VA2_HWACCEL 0 +%define CONFIG_VP9_DXVA2_HWACCEL 0 +%define CONFIG_VP9_NVDEC_HWACCEL 0 +%define CONFIG_VP9_VAAPI_HWACCEL 0 +%define CONFIG_WMV3_D3D11VA_HWACCEL 0 +%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +%define CONFIG_WMV3_DXVA2_HWACCEL 0 +%define CONFIG_WMV3_NVDEC_HWACCEL 0 +%define CONFIG_WMV3_VAAPI_HWACCEL 0 +%define CONFIG_WMV3_VDPAU_HWACCEL 0 +%define CONFIG_AAC_PARSER 1 +%define CONFIG_AAC_LATM_PARSER 1 +%define CONFIG_AC3_PARSER 1 +%define CONFIG_ADX_PARSER 1 +%define CONFIG_AV1_PARSER 1 +%define CONFIG_AVS2_PARSER 1 +%define CONFIG_BMP_PARSER 1 +%define CONFIG_CAVSVIDEO_PARSER 1 +%define CONFIG_COOK_PARSER 1 +%define CONFIG_DCA_PARSER 1 +%define CONFIG_DIRAC_PARSER 1 +%define CONFIG_DNXHD_PARSER 1 +%define CONFIG_DPX_PARSER 1 +%define CONFIG_DVAUDIO_PARSER 1 +%define CONFIG_DVBSUB_PARSER 1 +%define CONFIG_DVDSUB_PARSER 1 +%define CONFIG_DVD_NAV_PARSER 1 +%define CONFIG_FLAC_PARSER 1 +%define CONFIG_G729_PARSER 1 +%define CONFIG_GSM_PARSER 1 +%define CONFIG_H261_PARSER 1 +%define CONFIG_H263_PARSER 1 +%define CONFIG_H264_PARSER 1 +%define CONFIG_HEVC_PARSER 1 +%define CONFIG_MJPEG_PARSER 1 +%define CONFIG_MLP_PARSER 1 +%define CONFIG_MPEG4VIDEO_PARSER 1 +%define CONFIG_MPEGAUDIO_PARSER 1 +%define CONFIG_MPEGVIDEO_PARSER 1 +%define CONFIG_OPUS_PARSER 1 +%define CONFIG_PNG_PARSER 1 +%define CONFIG_PNM_PARSER 1 +%define CONFIG_RV30_PARSER 1 +%define CONFIG_RV40_PARSER 1 +%define CONFIG_SBC_PARSER 1 +%define CONFIG_SIPR_PARSER 1 +%define CONFIG_TAK_PARSER 1 +%define CONFIG_VC1_PARSER 1 +%define CONFIG_VORBIS_PARSER 1 +%define CONFIG_VP3_PARSER 1 +%define CONFIG_VP8_PARSER 1 +%define CONFIG_VP9_PARSER 1 +%define CONFIG_XMA_PARSER 1 +%define CONFIG_ALSA_INDEV 0 +%define CONFIG_ANDROID_CAMERA_INDEV 0 +%define CONFIG_AVFOUNDATION_INDEV 0 +%define CONFIG_BKTR_INDEV 0 +%define CONFIG_DECKLINK_INDEV 0 +%define CONFIG_LIBNDI_NEWTEK_INDEV 0 +%define CONFIG_DSHOW_INDEV 0 +%define CONFIG_FBDEV_INDEV 0 +%define CONFIG_GDIGRAB_INDEV 0 +%define CONFIG_IEC61883_INDEV 0 +%define CONFIG_JACK_INDEV 0 +%define CONFIG_KMSGRAB_INDEV 0 +%define CONFIG_LAVFI_INDEV 0 +%define CONFIG_OPENAL_INDEV 0 +%define CONFIG_OSS_INDEV 0 +%define CONFIG_PULSE_INDEV 0 +%define CONFIG_SNDIO_INDEV 0 +%define CONFIG_V4L2_INDEV 0 +%define CONFIG_VFWCAP_INDEV 0 +%define CONFIG_XCBGRAB_INDEV 0 +%define CONFIG_LIBCDIO_INDEV 0 +%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_ALSA_OUTDEV 0 +%define CONFIG_CACA_OUTDEV 0 +%define CONFIG_DECKLINK_OUTDEV 0 +%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +%define CONFIG_FBDEV_OUTDEV 0 +%define CONFIG_OPENGL_OUTDEV 0 +%define CONFIG_OSS_OUTDEV 0 +%define CONFIG_PULSE_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 +%define CONFIG_SNDIO_OUTDEV 0 +%define CONFIG_V4L2_OUTDEV 0 +%define CONFIG_XV_OUTDEV 0 +%define CONFIG_ABENCH_FILTER 0 +%define CONFIG_ACOMPRESSOR_FILTER 0 +%define CONFIG_ACONTRAST_FILTER 0 +%define CONFIG_ACOPY_FILTER 0 +%define CONFIG_ACUE_FILTER 0 %define CONFIG_ACROSSFADE_FILTER 0 +%define CONFIG_ACROSSOVER_FILTER 0 +%define CONFIG_ACRUSHER_FILTER 0 +%define CONFIG_ADECLICK_FILTER 0 +%define CONFIG_ADECLIP_FILTER 0 %define CONFIG_ADELAY_FILTER 0 +%define CONFIG_ADERIVATIVE_FILTER 0 %define CONFIG_AECHO_FILTER 0 +%define CONFIG_AEMPHASIS_FILTER 0 %define CONFIG_AEVAL_FILTER 0 %define CONFIG_AFADE_FILTER 0 +%define CONFIG_AFFTDN_FILTER 0 +%define CONFIG_AFFTFILT_FILTER 0 +%define CONFIG_AFIR_FILTER 0 %define CONFIG_AFORMAT_FILTER 0 +%define CONFIG_AGATE_FILTER 0 +%define CONFIG_AIIR_FILTER 0 +%define CONFIG_AINTEGRAL_FILTER 0 %define CONFIG_AINTERLEAVE_FILTER 0 +%define CONFIG_ALIMITER_FILTER 0 %define CONFIG_ALLPASS_FILTER 0 +%define CONFIG_ALOOP_FILTER 0 %define CONFIG_AMERGE_FILTER 0 +%define CONFIG_AMETADATA_FILTER 0 %define CONFIG_AMIX_FILTER 0 +%define CONFIG_AMULTIPLY_FILTER 0 +%define CONFIG_ANEQUALIZER_FILTER 0 %define CONFIG_ANULL_FILTER 0 %define CONFIG_APAD_FILTER 0 %define CONFIG_APERMS_FILTER 0 %define CONFIG_APHASER_FILTER 0 +%define CONFIG_APULSATOR_FILTER 0 +%define CONFIG_AREALTIME_FILTER 0 %define CONFIG_ARESAMPLE_FILTER 0 %define CONFIG_AREVERSE_FILTER 0 %define CONFIG_ASELECT_FILTER 0 @@ -1462,10 +1590,10 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 -%define CONFIG_ASTREAMSYNC_FILTER 0 -%define CONFIG_ASYNCTS_FILTER 0 +%define CONFIG_ASTREAMSELECT_FILTER 0 %define CONFIG_ATEMPO_FILTER 0 %define CONFIG_ATRIM_FILTER 0 %define CONFIG_AZMQ_FILTER 0 @@ -1478,88 +1606,162 @@ %define CONFIG_CHANNELSPLIT_FILTER 0 %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 +%define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CROSSFEED_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 +%define CONFIG_DRMETER_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 %define CONFIG_EBUR128_FILTER 0 %define CONFIG_EQUALIZER_FILTER 0 +%define CONFIG_EXTRASTEREO_FILTER 0 +%define CONFIG_FIREQUALIZER_FILTER 0 %define CONFIG_FLANGER_FILTER 0 +%define CONFIG_HAAS_FILTER 0 +%define CONFIG_HDCD_FILTER 0 +%define CONFIG_HEADPHONE_FILTER 0 %define CONFIG_HIGHPASS_FILTER 0 +%define CONFIG_HIGHSHELF_FILTER 0 %define CONFIG_JOIN_FILTER 0 %define CONFIG_LADSPA_FILTER 0 +%define CONFIG_LOUDNORM_FILTER 0 %define CONFIG_LOWPASS_FILTER 0 +%define CONFIG_LOWSHELF_FILTER 0 +%define CONFIG_LV2_FILTER 0 +%define CONFIG_MCOMPAND_FILTER 0 %define CONFIG_PAN_FILTER 0 %define CONFIG_REPLAYGAIN_FILTER 0 %define CONFIG_RESAMPLE_FILTER 0 +%define CONFIG_RUBBERBAND_FILTER 0 %define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +%define CONFIG_SIDECHAINGATE_FILTER 0 %define CONFIG_SILENCEDETECT_FILTER 0 %define CONFIG_SILENCEREMOVE_FILTER 0 +%define CONFIG_SOFALIZER_FILTER 0 +%define CONFIG_STEREOTOOLS_FILTER 0 +%define CONFIG_STEREOWIDEN_FILTER 0 +%define CONFIG_SUPEREQUALIZER_FILTER 0 +%define CONFIG_SURROUND_FILTER 0 %define CONFIG_TREBLE_FILTER 0 +%define CONFIG_TREMOLO_FILTER 0 +%define CONFIG_VIBRATO_FILTER 0 %define CONFIG_VOLUME_FILTER 0 %define CONFIG_VOLUMEDETECT_FILTER 0 %define CONFIG_AEVALSRC_FILTER 0 +%define CONFIG_ANOISESRC_FILTER 0 %define CONFIG_ANULLSRC_FILTER 0 %define CONFIG_FLITE_FILTER 0 +%define CONFIG_HILBERT_FILTER 0 +%define CONFIG_SINC_FILTER 0 %define CONFIG_SINE_FILTER 0 %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 +%define CONFIG_AMPLIFY_FILTER 0 %define CONFIG_ASS_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 +%define CONFIG_AVGBLUR_OPENCL_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 +%define CONFIG_BM3D_FILTER 0 %define CONFIG_BOXBLUR_FILTER 0 +%define CONFIG_BOXBLUR_OPENCL_FILTER 0 +%define CONFIG_BWDIF_FILTER 0 +%define CONFIG_CHROMAHOLD_FILTER 0 +%define CONFIG_CHROMAKEY_FILTER 0 +%define CONFIG_CHROMASHIFT_FILTER 0 +%define CONFIG_CIESCOPE_FILTER 0 %define CONFIG_CODECVIEW_FILTER 0 %define CONFIG_COLORBALANCE_FILTER 0 %define CONFIG_COLORCHANNELMIXER_FILTER 0 %define CONFIG_COLORKEY_FILTER 0 %define CONFIG_COLORLEVELS_FILTER 0 %define CONFIG_COLORMATRIX_FILTER 0 +%define CONFIG_COLORSPACE_FILTER 0 +%define CONFIG_CONVOLUTION_FILTER 0 +%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 +%define CONFIG_CONVOLVE_FILTER 0 %define CONFIG_COPY_FILTER 0 +%define CONFIG_COREIMAGE_FILTER 0 %define CONFIG_COVER_RECT_FILTER 0 %define CONFIG_CROP_FILTER 0 %define CONFIG_CROPDETECT_FILTER 0 +%define CONFIG_CUE_FILTER 0 %define CONFIG_CURVES_FILTER 0 +%define CONFIG_DATASCOPE_FILTER 0 %define CONFIG_DCTDNOIZ_FILTER 0 %define CONFIG_DEBAND_FILTER 0 +%define CONFIG_DEBLOCK_FILTER 0 %define CONFIG_DECIMATE_FILTER 0 +%define CONFIG_DECONVOLVE_FILTER 0 +%define CONFIG_DEDOT_FILTER 0 %define CONFIG_DEFLATE_FILTER 0 +%define CONFIG_DEFLICKER_FILTER 0 +%define CONFIG_DEINTERLACE_QSV_FILTER 0 +%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 %define CONFIG_DEJUDDER_FILTER 0 %define CONFIG_DELOGO_FILTER 0 +%define CONFIG_DENOISE_VAAPI_FILTER 0 %define CONFIG_DESHAKE_FILTER 0 +%define CONFIG_DESPILL_FILTER 0 %define CONFIG_DETELECINE_FILTER 0 %define CONFIG_DILATION_FILTER 0 +%define CONFIG_DILATION_OPENCL_FILTER 0 +%define CONFIG_DISPLACE_FILTER 0 +%define CONFIG_DOUBLEWEAVE_FILTER 0 %define CONFIG_DRAWBOX_FILTER 0 %define CONFIG_DRAWGRAPH_FILTER 0 %define CONFIG_DRAWGRID_FILTER 0 %define CONFIG_DRAWTEXT_FILTER 0 %define CONFIG_EDGEDETECT_FILTER 0 %define CONFIG_ELBG_FILTER 0 +%define CONFIG_ENTROPY_FILTER 0 %define CONFIG_EQ_FILTER 0 %define CONFIG_EROSION_FILTER 0 +%define CONFIG_EROSION_OPENCL_FILTER 0 %define CONFIG_EXTRACTPLANES_FILTER 0 %define CONFIG_FADE_FILTER 0 +%define CONFIG_FFTDNOIZ_FILTER 0 %define CONFIG_FFTFILT_FILTER 0 %define CONFIG_FIELD_FILTER 0 +%define CONFIG_FIELDHINT_FILTER 0 %define CONFIG_FIELDMATCH_FILTER 0 %define CONFIG_FIELDORDER_FILTER 0 +%define CONFIG_FILLBORDERS_FILTER 0 %define CONFIG_FIND_RECT_FILTER 0 +%define CONFIG_FLOODFILL_FILTER 0 %define CONFIG_FORMAT_FILTER 0 %define CONFIG_FPS_FILTER 0 %define CONFIG_FRAMEPACK_FILTER 0 +%define CONFIG_FRAMERATE_FILTER 0 %define CONFIG_FRAMESTEP_FILTER 0 +%define CONFIG_FREEZEDETECT_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 +%define CONFIG_GRAPHMONITOR_FILTER 0 +%define CONFIG_GREYEDGE_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 %define CONFIG_HFLIP_FILTER 0 %define CONFIG_HISTEQ_FILTER 0 %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 %define CONFIG_HUE_FILTER 0 +%define CONFIG_HWDOWNLOAD_FILTER 0 +%define CONFIG_HWMAP_FILTER 0 +%define CONFIG_HWUPLOAD_FILTER 0 +%define CONFIG_HWUPLOAD_CUDA_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1567,19 +1769,40 @@ %define CONFIG_INTERLEAVE_FILTER 0 %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 -%define CONFIG_LUT3D_FILTER 0 +%define CONFIG_LENSFUN_FILTER 0 +%define CONFIG_LIBVMAF_FILTER 0 +%define CONFIG_LIMITER_FILTER 0 +%define CONFIG_LOOP_FILTER 0 +%define CONFIG_LUMAKEY_FILTER 0 %define CONFIG_LUT_FILTER 0 +%define CONFIG_LUT1D_FILTER 0 +%define CONFIG_LUT2_FILTER 0 +%define CONFIG_LUT3D_FILTER 0 %define CONFIG_LUTRGB_FILTER 0 %define CONFIG_LUTYUV_FILTER 0 +%define CONFIG_MASKEDCLAMP_FILTER 0 +%define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 +%define CONFIG_METADATA_FILTER 0 +%define CONFIG_MIDEQUALIZER_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 +%define CONFIG_MIX_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 +%define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 +%define CONFIG_NORMALIZE_FILTER 0 %define CONFIG_NULL_FILTER 0 +%define CONFIG_OCR_FILTER 0 %define CONFIG_OCV_FILTER 0 +%define CONFIG_OSCILLOSCOPE_FILTER 0 %define CONFIG_OVERLAY_FILTER 0 +%define CONFIG_OVERLAY_OPENCL_FILTER 0 +%define CONFIG_OVERLAY_QSV_FILTER 0 %define CONFIG_OWDENOISE_FILTER 0 %define CONFIG_PAD_FILTER 0 %define CONFIG_PALETTEGEN_FILTER 0 @@ -1588,135 +1811,445 @@ %define CONFIG_PERSPECTIVE_FILTER 0 %define CONFIG_PHASE_FILTER 0 %define CONFIG_PIXDESCTEST_FILTER 0 +%define CONFIG_PIXSCOPE_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREMULTIPLY_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 +%define CONFIG_PREWITT_OPENCL_FILTER 0 +%define CONFIG_PROCAMP_VAAPI_FILTER 0 +%define CONFIG_PROGRAM_OPENCL_FILTER 0 +%define CONFIG_PSEUDOCOLOR_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 %define CONFIG_RANDOM_FILTER 0 +%define CONFIG_READEIA608_FILTER 0 +%define CONFIG_READVITC_FILTER 0 +%define CONFIG_REALTIME_FILTER 0 +%define CONFIG_REMAP_FILTER 0 %define CONFIG_REMOVEGRAIN_FILTER 0 %define CONFIG_REMOVELOGO_FILTER 0 %define CONFIG_REPEATFIELDS_FILTER 0 %define CONFIG_REVERSE_FILTER 0 +%define CONFIG_RGBASHIFT_FILTER 0 +%define CONFIG_ROBERTS_FILTER 0 +%define CONFIG_ROBERTS_OPENCL_FILTER 0 %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 +%define CONFIG_SCALE_CUDA_FILTER 0 +%define CONFIG_SCALE_NPP_FILTER 0 +%define CONFIG_SCALE_QSV_FILTER 0 +%define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 +%define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 %define CONFIG_SEPARATEFIELDS_FILTER 0 %define CONFIG_SETDAR_FILTER 0 %define CONFIG_SETFIELD_FILTER 0 +%define CONFIG_SETPARAMS_FILTER 0 %define CONFIG_SETPTS_FILTER 0 +%define CONFIG_SETRANGE_FILTER 0 %define CONFIG_SETSAR_FILTER 0 %define CONFIG_SETTB_FILTER 0 +%define CONFIG_SHARPNESS_VAAPI_FILTER 0 %define CONFIG_SHOWINFO_FILTER 0 %define CONFIG_SHOWPALETTE_FILTER 0 +%define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 +%define CONFIG_SIGNATURE_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 +%define CONFIG_SOBEL_OPENCL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 +%define CONFIG_SR_FILTER 0 %define CONFIG_SSIM_FILTER 0 %define CONFIG_STEREO3D_FILTER 0 +%define CONFIG_STREAMSELECT_FILTER 0 %define CONFIG_SUBTITLES_FILTER 0 %define CONFIG_SUPER2XSAI_FILTER 0 +%define CONFIG_SWAPRECT_FILTER 0 %define CONFIG_SWAPUV_FILTER 0 %define CONFIG_TBLEND_FILTER 0 %define CONFIG_TELECINE_FILTER 0 +%define CONFIG_THRESHOLD_FILTER 0 %define CONFIG_THUMBNAIL_FILTER 0 +%define CONFIG_THUMBNAIL_CUDA_FILTER 0 %define CONFIG_TILE_FILTER 0 %define CONFIG_TINTERLACE_FILTER 0 +%define CONFIG_TLUT2_FILTER 0 +%define CONFIG_TMIX_FILTER 0 +%define CONFIG_TONEMAP_FILTER 0 +%define CONFIG_TONEMAP_OPENCL_FILTER 0 +%define CONFIG_TPAD_FILTER 0 %define CONFIG_TRANSPOSE_FILTER 0 +%define CONFIG_TRANSPOSE_NPP_FILTER 0 %define CONFIG_TRIM_FILTER 0 +%define CONFIG_UNPREMULTIPLY_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 +%define CONFIG_UNSHARP_OPENCL_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 +%define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 +%define CONFIG_VFRDET_FILTER 0 +%define CONFIG_VIBRANCE_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 %define CONFIG_VIDSTABTRANSFORM_FILTER 0 %define CONFIG_VIGNETTE_FILTER 0 +%define CONFIG_VMAFMOTION_FILTER 0 +%define CONFIG_VPP_QSV_FILTER 0 +%define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 +%define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 +%define CONFIG_XSTACK_FILTER 0 %define CONFIG_YADIF_FILTER 0 +%define CONFIG_YADIF_CUDA_FILTER 0 %define CONFIG_ZMQ_FILTER 0 %define CONFIG_ZOOMPAN_FILTER 0 +%define CONFIG_ZSCALE_FILTER 0 +%define CONFIG_ALLRGB_FILTER 0 +%define CONFIG_ALLYUV_FILTER 0 %define CONFIG_CELLAUTO_FILTER 0 %define CONFIG_COLOR_FILTER 0 +%define CONFIG_COREIMAGESRC_FILTER 0 %define CONFIG_FREI0R_SRC_FILTER 0 %define CONFIG_HALDCLUTSRC_FILTER 0 %define CONFIG_LIFE_FILTER 0 %define CONFIG_MANDELBROT_FILTER 0 %define CONFIG_MPTESTSRC_FILTER 0 %define CONFIG_NULLSRC_FILTER 0 +%define CONFIG_OPENCLSRC_FILTER 0 +%define CONFIG_PAL75BARS_FILTER 0 +%define CONFIG_PAL100BARS_FILTER 0 %define CONFIG_RGBTESTSRC_FILTER 0 %define CONFIG_SMPTEBARS_FILTER 0 %define CONFIG_SMPTEHDBARS_FILTER 0 %define CONFIG_TESTSRC_FILTER 0 +%define CONFIG_TESTSRC2_FILTER 0 +%define CONFIG_YUVTESTSRC_FILTER 0 %define CONFIG_NULLSINK_FILTER 0 +%define CONFIG_ABITSCOPE_FILTER 0 %define CONFIG_ADRAWGRAPH_FILTER 0 +%define CONFIG_AGRAPHMONITOR_FILTER 0 +%define CONFIG_AHISTOGRAM_FILTER 0 +%define CONFIG_APHASEMETER_FILTER 0 %define CONFIG_AVECTORSCOPE_FILTER 0 %define CONFIG_CONCAT_FILTER 0 %define CONFIG_SHOWCQT_FILTER 0 +%define CONFIG_SHOWFREQS_FILTER 0 %define CONFIG_SHOWSPECTRUM_FILTER 0 +%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 %define CONFIG_SHOWVOLUME_FILTER 0 %define CONFIG_SHOWWAVES_FILTER 0 %define CONFIG_SHOWWAVESPIC_FILTER 0 +%define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 -%define CONFIG_H263_VAAPI_HWACCEL 0 -%define CONFIG_H263_VDPAU_HWACCEL 0 -%define CONFIG_H264_D3D11VA_HWACCEL 0 -%define CONFIG_H264_DXVA2_HWACCEL 0 -%define CONFIG_H264_MMAL_HWACCEL 0 -%define CONFIG_H264_QSV_HWACCEL 0 -%define CONFIG_H264_VAAPI_HWACCEL 0 -%define CONFIG_H264_VDA_HWACCEL 0 -%define CONFIG_H264_VDA_OLD_HWACCEL 0 -%define CONFIG_H264_VDPAU_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA_HWACCEL 0 -%define CONFIG_HEVC_DXVA2_HWACCEL 0 -%define CONFIG_HEVC_QSV_HWACCEL 0 -%define CONFIG_HEVC_VDPAU_HWACCEL 0 -%define CONFIG_MPEG1_XVMC_HWACCEL 0 -%define CONFIG_MPEG1_VDPAU_HWACCEL 0 -%define CONFIG_MPEG2_XVMC_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -%define CONFIG_MPEG2_DXVA2_HWACCEL 0 -%define CONFIG_MPEG2_QSV_HWACCEL 0 -%define CONFIG_MPEG2_VAAPI_HWACCEL 0 -%define CONFIG_MPEG2_VDPAU_HWACCEL 0 -%define CONFIG_MPEG4_VAAPI_HWACCEL 0 -%define CONFIG_MPEG4_VDPAU_HWACCEL 0 -%define CONFIG_VC1_D3D11VA_HWACCEL 0 -%define CONFIG_VC1_DXVA2_HWACCEL 0 -%define CONFIG_VC1_VAAPI_HWACCEL 0 -%define CONFIG_VC1_VDPAU_HWACCEL 0 -%define CONFIG_VC1_QSV_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA_HWACCEL 0 -%define CONFIG_WMV3_DXVA2_HWACCEL 0 -%define CONFIG_WMV3_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_VDPAU_HWACCEL 0 -%define CONFIG_ALSA_INDEV 0 -%define CONFIG_AVFOUNDATION_INDEV 0 -%define CONFIG_BKTR_INDEV 0 -%define CONFIG_DECKLINK_INDEV 0 -%define CONFIG_DSHOW_INDEV 0 -%define CONFIG_DV1394_INDEV 0 -%define CONFIG_FBDEV_INDEV 0 -%define CONFIG_GDIGRAB_INDEV 0 -%define CONFIG_IEC61883_INDEV 0 -%define CONFIG_JACK_INDEV 0 -%define CONFIG_LAVFI_INDEV 0 -%define CONFIG_OPENAL_INDEV 0 -%define CONFIG_OSS_INDEV 0 -%define CONFIG_PULSE_INDEV 0 -%define CONFIG_QTKIT_INDEV 0 -%define CONFIG_SNDIO_INDEV 0 -%define CONFIG_V4L2_INDEV 0 -%define CONFIG_VFWCAP_INDEV 0 -%define CONFIG_X11GRAB_INDEV 0 -%define CONFIG_X11GRAB_XCB_INDEV 0 -%define CONFIG_LIBCDIO_INDEV 0 -%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_AFIFO_FILTER 0 +%define CONFIG_FIFO_FILTER 0 +%define CONFIG_AA_DEMUXER 1 +%define CONFIG_AAC_DEMUXER 1 +%define CONFIG_AC3_DEMUXER 1 +%define CONFIG_ACM_DEMUXER 1 +%define CONFIG_ACT_DEMUXER 1 +%define CONFIG_ADF_DEMUXER 1 +%define CONFIG_ADP_DEMUXER 1 +%define CONFIG_ADS_DEMUXER 1 +%define CONFIG_ADX_DEMUXER 1 +%define CONFIG_AEA_DEMUXER 1 +%define CONFIG_AFC_DEMUXER 1 +%define CONFIG_AIFF_DEMUXER 1 +%define CONFIG_AIX_DEMUXER 1 +%define CONFIG_AMR_DEMUXER 1 +%define CONFIG_AMRNB_DEMUXER 1 +%define CONFIG_AMRWB_DEMUXER 1 +%define CONFIG_ANM_DEMUXER 1 +%define CONFIG_APC_DEMUXER 1 +%define CONFIG_APE_DEMUXER 1 +%define CONFIG_APNG_DEMUXER 1 +%define CONFIG_APTX_DEMUXER 1 +%define CONFIG_APTX_HD_DEMUXER 1 +%define CONFIG_AQTITLE_DEMUXER 1 +%define CONFIG_ASF_DEMUXER 1 +%define CONFIG_ASF_O_DEMUXER 1 +%define CONFIG_ASS_DEMUXER 1 +%define CONFIG_AST_DEMUXER 1 +%define CONFIG_AU_DEMUXER 1 +%define CONFIG_AVI_DEMUXER 1 +%define CONFIG_AVISYNTH_DEMUXER 0 +%define CONFIG_AVR_DEMUXER 1 +%define CONFIG_AVS_DEMUXER 1 +%define CONFIG_AVS2_DEMUXER 1 +%define CONFIG_BETHSOFTVID_DEMUXER 1 +%define CONFIG_BFI_DEMUXER 1 +%define CONFIG_BINTEXT_DEMUXER 1 +%define CONFIG_BINK_DEMUXER 1 +%define CONFIG_BIT_DEMUXER 1 +%define CONFIG_BMV_DEMUXER 1 +%define CONFIG_BFSTM_DEMUXER 1 +%define CONFIG_BRSTM_DEMUXER 1 +%define CONFIG_BOA_DEMUXER 1 +%define CONFIG_C93_DEMUXER 1 +%define CONFIG_CAF_DEMUXER 1 +%define CONFIG_CAVSVIDEO_DEMUXER 1 +%define CONFIG_CDG_DEMUXER 1 +%define CONFIG_CDXL_DEMUXER 1 +%define CONFIG_CINE_DEMUXER 1 +%define CONFIG_CODEC2_DEMUXER 1 +%define CONFIG_CODEC2RAW_DEMUXER 1 +%define CONFIG_CONCAT_DEMUXER 1 +%define CONFIG_DASH_DEMUXER 0 +%define CONFIG_DATA_DEMUXER 1 +%define CONFIG_DAUD_DEMUXER 1 +%define CONFIG_DCSTR_DEMUXER 1 +%define CONFIG_DFA_DEMUXER 1 +%define CONFIG_DIRAC_DEMUXER 1 +%define CONFIG_DNXHD_DEMUXER 1 +%define CONFIG_DSF_DEMUXER 1 +%define CONFIG_DSICIN_DEMUXER 1 +%define CONFIG_DSS_DEMUXER 1 +%define CONFIG_DTS_DEMUXER 1 +%define CONFIG_DTSHD_DEMUXER 1 +%define CONFIG_DV_DEMUXER 1 +%define CONFIG_DVBSUB_DEMUXER 1 +%define CONFIG_DVBTXT_DEMUXER 1 +%define CONFIG_DXA_DEMUXER 1 +%define CONFIG_EA_DEMUXER 1 +%define CONFIG_EA_CDATA_DEMUXER 1 +%define CONFIG_EAC3_DEMUXER 1 +%define CONFIG_EPAF_DEMUXER 1 +%define CONFIG_FFMETADATA_DEMUXER 1 +%define CONFIG_FILMSTRIP_DEMUXER 1 +%define CONFIG_FITS_DEMUXER 1 +%define CONFIG_FLAC_DEMUXER 1 +%define CONFIG_FLIC_DEMUXER 1 +%define CONFIG_FLV_DEMUXER 1 +%define CONFIG_LIVE_FLV_DEMUXER 1 +%define CONFIG_FOURXM_DEMUXER 1 +%define CONFIG_FRM_DEMUXER 1 +%define CONFIG_FSB_DEMUXER 1 +%define CONFIG_G722_DEMUXER 1 +%define CONFIG_G723_1_DEMUXER 1 +%define CONFIG_G726_DEMUXER 1 +%define CONFIG_G726LE_DEMUXER 1 +%define CONFIG_G729_DEMUXER 1 +%define CONFIG_GDV_DEMUXER 1 +%define CONFIG_GENH_DEMUXER 1 +%define CONFIG_GIF_DEMUXER 1 +%define CONFIG_GSM_DEMUXER 1 +%define CONFIG_GXF_DEMUXER 1 +%define CONFIG_H261_DEMUXER 1 +%define CONFIG_H263_DEMUXER 1 +%define CONFIG_H264_DEMUXER 1 +%define CONFIG_HEVC_DEMUXER 1 +%define CONFIG_HLS_DEMUXER 1 +%define CONFIG_HNM_DEMUXER 1 +%define CONFIG_ICO_DEMUXER 1 +%define CONFIG_IDCIN_DEMUXER 1 +%define CONFIG_IDF_DEMUXER 1 +%define CONFIG_IFF_DEMUXER 1 +%define CONFIG_ILBC_DEMUXER 1 +%define CONFIG_IMAGE2_DEMUXER 1 +%define CONFIG_IMAGE2PIPE_DEMUXER 1 +%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 +%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 +%define CONFIG_INGENIENT_DEMUXER 1 +%define CONFIG_IPMOVIE_DEMUXER 1 +%define CONFIG_IRCAM_DEMUXER 1 +%define CONFIG_ISS_DEMUXER 1 +%define CONFIG_IV8_DEMUXER 1 +%define CONFIG_IVF_DEMUXER 1 +%define CONFIG_IVR_DEMUXER 1 +%define CONFIG_JACOSUB_DEMUXER 1 +%define CONFIG_JV_DEMUXER 1 +%define CONFIG_LMLM4_DEMUXER 1 +%define CONFIG_LOAS_DEMUXER 1 +%define CONFIG_LRC_DEMUXER 1 +%define CONFIG_LVF_DEMUXER 1 +%define CONFIG_LXF_DEMUXER 1 +%define CONFIG_M4V_DEMUXER 1 +%define CONFIG_MATROSKA_DEMUXER 1 +%define CONFIG_MGSTS_DEMUXER 1 +%define CONFIG_MICRODVD_DEMUXER 1 +%define CONFIG_MJPEG_DEMUXER 1 +%define CONFIG_MJPEG_2000_DEMUXER 1 +%define CONFIG_MLP_DEMUXER 1 +%define CONFIG_MLV_DEMUXER 1 +%define CONFIG_MM_DEMUXER 1 +%define CONFIG_MMF_DEMUXER 1 +%define CONFIG_MOV_DEMUXER 1 +%define CONFIG_MP3_DEMUXER 1 +%define CONFIG_MPC_DEMUXER 1 +%define CONFIG_MPC8_DEMUXER 1 +%define CONFIG_MPEGPS_DEMUXER 1 +%define CONFIG_MPEGTS_DEMUXER 1 +%define CONFIG_MPEGTSRAW_DEMUXER 1 +%define CONFIG_MPEGVIDEO_DEMUXER 1 +%define CONFIG_MPJPEG_DEMUXER 1 +%define CONFIG_MPL2_DEMUXER 1 +%define CONFIG_MPSUB_DEMUXER 1 +%define CONFIG_MSF_DEMUXER 1 +%define CONFIG_MSNWC_TCP_DEMUXER 1 +%define CONFIG_MTAF_DEMUXER 1 +%define CONFIG_MTV_DEMUXER 1 +%define CONFIG_MUSX_DEMUXER 1 +%define CONFIG_MV_DEMUXER 1 +%define CONFIG_MVI_DEMUXER 1 +%define CONFIG_MXF_DEMUXER 1 +%define CONFIG_MXG_DEMUXER 1 +%define CONFIG_NC_DEMUXER 1 +%define CONFIG_NISTSPHERE_DEMUXER 1 +%define CONFIG_NSP_DEMUXER 1 +%define CONFIG_NSV_DEMUXER 1 +%define CONFIG_NUT_DEMUXER 1 +%define CONFIG_NUV_DEMUXER 1 +%define CONFIG_OGG_DEMUXER 1 +%define CONFIG_OMA_DEMUXER 1 +%define CONFIG_PAF_DEMUXER 1 +%define CONFIG_PCM_ALAW_DEMUXER 1 +%define CONFIG_PCM_MULAW_DEMUXER 1 +%define CONFIG_PCM_VIDC_DEMUXER 1 +%define CONFIG_PCM_F64BE_DEMUXER 1 +%define CONFIG_PCM_F64LE_DEMUXER 1 +%define CONFIG_PCM_F32BE_DEMUXER 1 +%define CONFIG_PCM_F32LE_DEMUXER 1 +%define CONFIG_PCM_S32BE_DEMUXER 1 +%define CONFIG_PCM_S32LE_DEMUXER 1 +%define CONFIG_PCM_S24BE_DEMUXER 1 +%define CONFIG_PCM_S24LE_DEMUXER 1 +%define CONFIG_PCM_S16BE_DEMUXER 1 +%define CONFIG_PCM_S16LE_DEMUXER 1 +%define CONFIG_PCM_S8_DEMUXER 1 +%define CONFIG_PCM_U32BE_DEMUXER 1 +%define CONFIG_PCM_U32LE_DEMUXER 1 +%define CONFIG_PCM_U24BE_DEMUXER 1 +%define CONFIG_PCM_U24LE_DEMUXER 1 +%define CONFIG_PCM_U16BE_DEMUXER 1 +%define CONFIG_PCM_U16LE_DEMUXER 1 +%define CONFIG_PCM_U8_DEMUXER 1 +%define CONFIG_PJS_DEMUXER 1 +%define CONFIG_PMP_DEMUXER 1 +%define CONFIG_PVA_DEMUXER 1 +%define CONFIG_PVF_DEMUXER 1 +%define CONFIG_QCP_DEMUXER 1 +%define CONFIG_R3D_DEMUXER 1 +%define CONFIG_RAWVIDEO_DEMUXER 1 +%define CONFIG_REALTEXT_DEMUXER 1 +%define CONFIG_REDSPARK_DEMUXER 1 +%define CONFIG_RL2_DEMUXER 1 +%define CONFIG_RM_DEMUXER 1 +%define CONFIG_ROQ_DEMUXER 1 +%define CONFIG_RPL_DEMUXER 1 +%define CONFIG_RSD_DEMUXER 1 +%define CONFIG_RSO_DEMUXER 1 +%define CONFIG_RTP_DEMUXER 0 +%define CONFIG_RTSP_DEMUXER 0 +%define CONFIG_S337M_DEMUXER 1 +%define CONFIG_SAMI_DEMUXER 1 +%define CONFIG_SAP_DEMUXER 0 +%define CONFIG_SBC_DEMUXER 1 +%define CONFIG_SBG_DEMUXER 1 +%define CONFIG_SCC_DEMUXER 1 +%define CONFIG_SDP_DEMUXER 0 +%define CONFIG_SDR2_DEMUXER 1 +%define CONFIG_SDS_DEMUXER 1 +%define CONFIG_SDX_DEMUXER 1 +%define CONFIG_SEGAFILM_DEMUXER 1 +%define CONFIG_SER_DEMUXER 1 +%define CONFIG_SHORTEN_DEMUXER 1 +%define CONFIG_SIFF_DEMUXER 1 +%define CONFIG_SLN_DEMUXER 1 +%define CONFIG_SMACKER_DEMUXER 1 +%define CONFIG_SMJPEG_DEMUXER 1 +%define CONFIG_SMUSH_DEMUXER 1 +%define CONFIG_SOL_DEMUXER 1 +%define CONFIG_SOX_DEMUXER 1 +%define CONFIG_SPDIF_DEMUXER 1 +%define CONFIG_SRT_DEMUXER 1 +%define CONFIG_STR_DEMUXER 1 +%define CONFIG_STL_DEMUXER 1 +%define CONFIG_SUBVIEWER1_DEMUXER 1 +%define CONFIG_SUBVIEWER_DEMUXER 1 +%define CONFIG_SUP_DEMUXER 1 +%define CONFIG_SVAG_DEMUXER 1 +%define CONFIG_SWF_DEMUXER 1 +%define CONFIG_TAK_DEMUXER 1 +%define CONFIG_TEDCAPTIONS_DEMUXER 1 +%define CONFIG_THP_DEMUXER 1 +%define CONFIG_THREEDOSTR_DEMUXER 1 +%define CONFIG_TIERTEXSEQ_DEMUXER 1 +%define CONFIG_TMV_DEMUXER 1 +%define CONFIG_TRUEHD_DEMUXER 1 +%define CONFIG_TTA_DEMUXER 1 +%define CONFIG_TXD_DEMUXER 1 +%define CONFIG_TTY_DEMUXER 1 +%define CONFIG_TY_DEMUXER 1 +%define CONFIG_V210_DEMUXER 1 +%define CONFIG_V210X_DEMUXER 1 +%define CONFIG_VAG_DEMUXER 1 +%define CONFIG_VC1_DEMUXER 1 +%define CONFIG_VC1T_DEMUXER 1 +%define CONFIG_VIVO_DEMUXER 1 +%define CONFIG_VMD_DEMUXER 1 +%define CONFIG_VOBSUB_DEMUXER 1 +%define CONFIG_VOC_DEMUXER 1 +%define CONFIG_VPK_DEMUXER 1 +%define CONFIG_VPLAYER_DEMUXER 1 +%define CONFIG_VQF_DEMUXER 1 +%define CONFIG_W64_DEMUXER 1 +%define CONFIG_WAV_DEMUXER 1 +%define CONFIG_WC3_DEMUXER 1 +%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 +%define CONFIG_WEBVTT_DEMUXER 1 +%define CONFIG_WSAUD_DEMUXER 1 +%define CONFIG_WSD_DEMUXER 1 +%define CONFIG_WSVQA_DEMUXER 1 +%define CONFIG_WTV_DEMUXER 1 +%define CONFIG_WVE_DEMUXER 1 +%define CONFIG_WV_DEMUXER 1 +%define CONFIG_XA_DEMUXER 1 +%define CONFIG_XBIN_DEMUXER 1 +%define CONFIG_XMV_DEMUXER 1 +%define CONFIG_XVAG_DEMUXER 1 +%define CONFIG_XWMA_DEMUXER 1 +%define CONFIG_YOP_DEMUXER 1 +%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 +%define CONFIG_LIBGME_DEMUXER 0 +%define CONFIG_LIBMODPLUG_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 +%define CONFIG_VAPOURSYNTH_DEMUXER 0 %define CONFIG_A64_MUXER 0 %define CONFIG_AC3_MUXER 0 %define CONFIG_ADTS_MUXER 0 @@ -1724,6 +2257,8 @@ %define CONFIG_AIFF_MUXER 0 %define CONFIG_AMR_MUXER 0 %define CONFIG_APNG_MUXER 0 +%define CONFIG_APTX_MUXER 0 +%define CONFIG_APTX_HD_MUXER 0 %define CONFIG_ASF_MUXER 0 %define CONFIG_ASS_MUXER 0 %define CONFIG_AST_MUXER 0 @@ -1731,9 +2266,12 @@ %define CONFIG_AU_MUXER 0 %define CONFIG_AVI_MUXER 0 %define CONFIG_AVM2_MUXER 0 +%define CONFIG_AVS2_MUXER 0 %define CONFIG_BIT_MUXER 0 %define CONFIG_CAF_MUXER 0 %define CONFIG_CAVSVIDEO_MUXER 0 +%define CONFIG_CODEC2_MUXER 0 +%define CONFIG_CODEC2RAW_MUXER 0 %define CONFIG_CRC_MUXER 0 %define CONFIG_DASH_MUXER 0 %define CONFIG_DATA_MUXER 0 @@ -1744,20 +2282,27 @@ %define CONFIG_DV_MUXER 0 %define CONFIG_EAC3_MUXER 0 %define CONFIG_F4V_MUXER 0 -%define CONFIG_FFM_MUXER 0 %define CONFIG_FFMETADATA_MUXER 0 +%define CONFIG_FIFO_MUXER 0 +%define CONFIG_FIFO_TEST_MUXER 0 %define CONFIG_FILMSTRIP_MUXER 0 +%define CONFIG_FITS_MUXER 0 %define CONFIG_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 %define CONFIG_FRAMECRC_MUXER 0 +%define CONFIG_FRAMEHASH_MUXER 0 %define CONFIG_FRAMEMD5_MUXER 0 %define CONFIG_G722_MUXER 0 %define CONFIG_G723_1_MUXER 0 +%define CONFIG_G726_MUXER 0 +%define CONFIG_G726LE_MUXER 0 %define CONFIG_GIF_MUXER 0 +%define CONFIG_GSM_MUXER 0 %define CONFIG_GXF_MUXER 0 %define CONFIG_H261_MUXER 0 %define CONFIG_H263_MUXER 0 %define CONFIG_H264_MUXER 0 +%define CONFIG_HASH_MUXER 0 %define CONFIG_HDS_MUXER 0 %define CONFIG_HEVC_MUXER 0 %define CONFIG_HLS_MUXER 0 @@ -1800,10 +2345,12 @@ %define CONFIG_NUT_MUXER 0 %define CONFIG_OGA_MUXER 0 %define CONFIG_OGG_MUXER 0 +%define CONFIG_OGV_MUXER 0 %define CONFIG_OMA_MUXER 0 %define CONFIG_OPUS_MUXER 0 %define CONFIG_PCM_ALAW_MUXER 0 %define CONFIG_PCM_MULAW_MUXER 0 +%define CONFIG_PCM_VIDC_MUXER 0 %define CONFIG_PCM_F64BE_MUXER 0 %define CONFIG_PCM_F64LE_MUXER 0 %define CONFIG_PCM_F32BE_MUXER 0 @@ -1831,6 +2378,9 @@ %define CONFIG_RTP_MPEGTS_MUXER 0 %define CONFIG_RTSP_MUXER 0 %define CONFIG_SAP_MUXER 0 +%define CONFIG_SBC_MUXER 0 +%define CONFIG_SCC_MUXER 0 +%define CONFIG_SEGAFILM_MUXER 0 %define CONFIG_SEGMENT_MUXER 0 %define CONFIG_STREAM_SEGMENT_MUXER 0 %define CONFIG_SINGLEJPEG_MUXER 0 @@ -1840,12 +2390,14 @@ %define CONFIG_SPX_MUXER 0 %define CONFIG_SPDIF_MUXER 0 %define CONFIG_SRT_MUXER 0 +%define CONFIG_SUP_MUXER 0 %define CONFIG_SWF_MUXER 0 %define CONFIG_TEE_MUXER 0 %define CONFIG_TG2_MUXER 0 %define CONFIG_TGP_MUXER 0 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0 %define CONFIG_TRUEHD_MUXER 0 +%define CONFIG_TTA_MUXER 0 %define CONFIG_UNCODEDFRAMECRC_MUXER 0 %define CONFIG_VC1_MUXER 0 %define CONFIG_VC1T_MUXER 0 @@ -1860,55 +2412,8 @@ %define CONFIG_WTV_MUXER 0 %define CONFIG_WV_MUXER 0 %define CONFIG_YUV4MPEGPIPE_MUXER 0 -%define CONFIG_LIBNUT_MUXER 0 -%define CONFIG_ALSA_OUTDEV 0 -%define CONFIG_CACA_OUTDEV 0 -%define CONFIG_DECKLINK_OUTDEV 0 -%define CONFIG_FBDEV_OUTDEV 0 -%define CONFIG_OPENGL_OUTDEV 0 -%define CONFIG_OSS_OUTDEV 0 -%define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 -%define CONFIG_SNDIO_OUTDEV 0 -%define CONFIG_V4L2_OUTDEV 0 -%define CONFIG_XV_OUTDEV 0 -%define CONFIG_AAC_PARSER 1 -%define CONFIG_AAC_LATM_PARSER 1 -%define CONFIG_AC3_PARSER 1 -%define CONFIG_ADX_PARSER 1 -%define CONFIG_BMP_PARSER 1 -%define CONFIG_CAVSVIDEO_PARSER 1 -%define CONFIG_COOK_PARSER 1 -%define CONFIG_DCA_PARSER 1 -%define CONFIG_DIRAC_PARSER 1 -%define CONFIG_DNXHD_PARSER 1 -%define CONFIG_DPX_PARSER 1 -%define CONFIG_DVBSUB_PARSER 1 -%define CONFIG_DVDSUB_PARSER 1 -%define CONFIG_DVD_NAV_PARSER 1 -%define CONFIG_FLAC_PARSER 1 -%define CONFIG_GSM_PARSER 1 -%define CONFIG_H261_PARSER 1 -%define CONFIG_H263_PARSER 1 -%define CONFIG_H264_PARSER 1 -%define CONFIG_HEVC_PARSER 1 -%define CONFIG_MJPEG_PARSER 1 -%define CONFIG_MLP_PARSER 1 -%define CONFIG_MPEG4VIDEO_PARSER 1 -%define CONFIG_MPEGAUDIO_PARSER 1 -%define CONFIG_MPEGVIDEO_PARSER 1 -%define CONFIG_OPUS_PARSER 1 -%define CONFIG_PNG_PARSER 1 -%define CONFIG_PNM_PARSER 1 -%define CONFIG_RV30_PARSER 1 -%define CONFIG_RV40_PARSER 1 -%define CONFIG_TAK_PARSER 1 -%define CONFIG_VC1_PARSER 1 -%define CONFIG_VORBIS_PARSER 1 -%define CONFIG_VP3_PARSER 1 -%define CONFIG_VP8_PARSER 1 -%define CONFIG_VP9_PARSER 1 -%define CONFIG_ASYNC_PROTOCOL 0 +%define CONFIG_CHROMAPRINT_MUXER 0 +%define CONFIG_ASYNC_PROTOCOL 1 %define CONFIG_BLURAY_PROTOCOL 0 %define CONFIG_CACHE_PROTOCOL 1 %define CONFIG_CONCAT_PROTOCOL 1 @@ -1928,6 +2433,7 @@ %define CONFIG_MMST_PROTOCOL 0 %define CONFIG_MD5_PROTOCOL 1 %define CONFIG_PIPE_PROTOCOL 1 +%define CONFIG_PROMPEG_PROTOCOL 1 %define CONFIG_RTMP_PROTOCOL 0 %define CONFIG_RTMPE_PROTOCOL 0 %define CONFIG_RTMPS_PROTOCOL 0 @@ -1938,10 +2444,9 @@ %define CONFIG_SCTP_PROTOCOL 0 %define CONFIG_SRTP_PROTOCOL 0 %define CONFIG_SUBFILE_PROTOCOL 1 +%define CONFIG_TEE_PROTOCOL 1 %define CONFIG_TCP_PROTOCOL 0 -%define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 -%define CONFIG_TLS_GNUTLS_PROTOCOL 0 -%define CONFIG_TLS_OPENSSL_PROTOCOL 0 +%define CONFIG_TLS_PROTOCOL 0 %define CONFIG_UDP_PROTOCOL 0 %define CONFIG_UDPLITE_PROTOCOL 0 %define CONFIG_UNIX_PROTOCOL 0 @@ -1950,5 +2455,6 @@ %define CONFIG_LIBRTMPS_PROTOCOL 0 %define CONFIG_LIBRTMPT_PROTOCOL 0 %define CONFIG_LIBRTMPTE_PROTOCOL 0 +%define CONFIG_LIBSRT_PROTOCOL 0 %define CONFIG_LIBSSH_PROTOCOL 0 %define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/build/ffmpeg/config-x64.h b/build/ffmpeg/config-x64.h old mode 100644 new mode 100755 index 921478eb0..52eed2f2f --- a/build/ffmpeg/config-x64.h +++ b/build/ffmpeg/config-x64.h @@ -1,12 +1,12 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/x64/Release' --toolchain=msvc" +#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-small --enable-x86asm --x86asmexe=yasm --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/x64/Release' --toolchain=msvc" #define FFMPEG_LICENSE "GPL version 2 or later" -#define CONFIG_THIS_YEAR 2015 +#define CONFIG_THIS_YEAR 2018 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x64" +#define CC_IDENT "Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64" #define av_restrict __restrict #define EXTERN_PREFIX "" #define EXTERN_ASM @@ -52,10 +52,12 @@ #define HAVE_POWER8 0 #define HAVE_PPC4XX 0 #define HAVE_VSX 0 +#define HAVE_AESNI 1 #define HAVE_AMD3DNOW 1 #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 +#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -72,12 +74,14 @@ #define HAVE_MIPSFPU 0 #define HAVE_MIPS32R2 0 #define HAVE_MIPS32R5 0 +#define HAVE_MIPS64R2 0 +#define HAVE_MIPS32R6 0 #define HAVE_MIPS64R6 0 -#define HAVE_MIPSDSPR1 0 +#define HAVE_MIPSDSP 0 #define HAVE_MIPSDSPR2 0 #define HAVE_MSA 0 -#define HAVE_LOONGSON2 1 -#define HAVE_LOONGSON3 1 +#define HAVE_LOONGSON2 0 +#define HAVE_LOONGSON3 0 #define HAVE_MMI 0 #define HAVE_ARMV5TE_EXTERNAL 0 #define HAVE_ARMV6_EXTERNAL 0 @@ -93,10 +97,12 @@ #define HAVE_POWER8_EXTERNAL 0 #define HAVE_PPC4XX_EXTERNAL 0 #define HAVE_VSX_EXTERNAL 0 +#define HAVE_AESNI_EXTERNAL 1 #define HAVE_AMD3DNOW_EXTERNAL 1 #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 0 +#define HAVE_AVX512_EXTERNAL 0 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -113,8 +119,10 @@ #define HAVE_MIPSFPU_EXTERNAL 0 #define HAVE_MIPS32R2_EXTERNAL 0 #define HAVE_MIPS32R5_EXTERNAL 0 +#define HAVE_MIPS64R2_EXTERNAL 0 +#define HAVE_MIPS32R6_EXTERNAL 0 #define HAVE_MIPS64R6_EXTERNAL 0 -#define HAVE_MIPSDSPR1_EXTERNAL 0 +#define HAVE_MIPSDSP_EXTERNAL 0 #define HAVE_MIPSDSPR2_EXTERNAL 0 #define HAVE_MSA_EXTERNAL 0 #define HAVE_LOONGSON2_EXTERNAL 0 @@ -134,10 +142,12 @@ #define HAVE_POWER8_INLINE 0 #define HAVE_PPC4XX_INLINE 0 #define HAVE_VSX_INLINE 0 +#define HAVE_AESNI_INLINE 0 #define HAVE_AMD3DNOW_INLINE 0 #define HAVE_AMD3DNOWEXT_INLINE 0 #define HAVE_AVX_INLINE 0 #define HAVE_AVX2_INLINE 0 +#define HAVE_AVX512_INLINE 0 #define HAVE_FMA3_INLINE 0 #define HAVE_FMA4_INLINE 0 #define HAVE_MMX_INLINE 0 @@ -154,8 +164,10 @@ #define HAVE_MIPSFPU_INLINE 0 #define HAVE_MIPS32R2_INLINE 0 #define HAVE_MIPS32R5_INLINE 0 +#define HAVE_MIPS64R2_INLINE 0 +#define HAVE_MIPS32R6_INLINE 0 #define HAVE_MIPS64R6_INLINE 0 -#define HAVE_MIPSDSPR1_INLINE 0 +#define HAVE_MIPSDSP_INLINE 0 #define HAVE_MIPSDSPR2_INLINE 0 #define HAVE_MSA_INLINE 0 #define HAVE_LOONGSON2_INLINE 0 @@ -165,55 +177,49 @@ #define HAVE_FAST_64BIT 1 #define HAVE_FAST_CLZ 1 #define HAVE_FAST_CMOV 1 -#define HAVE_LOCAL_ALIGNED_8 1 -#define HAVE_LOCAL_ALIGNED_16 1 -#define HAVE_LOCAL_ALIGNED_32 1 +#define HAVE_LOCAL_ALIGNED 1 #define HAVE_SIMD_ALIGN_16 1 -#define HAVE_ATOMICS_GCC 0 -#define HAVE_ATOMICS_SUNCC 0 -#define HAVE_ATOMICS_WIN32 1 +#define HAVE_SIMD_ALIGN_32 1 +#define HAVE_SIMD_ALIGN_64 1 #define HAVE_ATOMIC_CAS_PTR 0 -#define HAVE_ATOMIC_COMPARE_EXCHANGE 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 1 #define HAVE_MM_EMPTY 0 #define HAVE_RDTSC 1 -#define HAVE_SARESTART 0 +#define HAVE_SEM_TIMEDWAIT 0 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 +#define HAVE_CABS 0 +#define HAVE_CEXP 0 #define HAVE_INLINE_ASM 0 #define HAVE_SYMVER 0 -#define HAVE_YASM 1 +#define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 -#define HAVE_ALSA_ASOUNDLIB_H 0 -#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 #define HAVE_ASM_TYPES_H 0 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +#define HAVE_CUDA_H 0 +#define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 #define HAVE_DEV_IC_BT8XX_H 0 #define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 1 -#define HAVE_DLFCN_H 0 -#define HAVE_D3D11_H 1 +#define HAVE_DIRENT_H 0 +#define HAVE_DXGIDEBUG_H 1 #define HAVE_DXVA_H 1 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 1 -#define HAVE_MACH_MACH_TIME_H 0 +#define HAVE_LINUX_PERF_EVENT_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_MALLOC_H 1 -#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +#define HAVE_OPENCV2_CORE_CORE_C_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 0 -#define HAVE_SNDIO_H 0 -#define HAVE_SOUNDCARD_H 0 -#define HAVE_SYS_MMAN_H 0 #define HAVE_SYS_PARAM_H 0 #define HAVE_SYS_RESOURCE_H 0 #define HAVE_SYS_SELECT_H 0 @@ -238,6 +244,8 @@ #define HAVE_EXP2 1 #define HAVE_EXP2F 1 #define HAVE_EXPF 1 +#define HAVE_HYPOT 1 +#define HAVE_ISFINITE 1 #define HAVE_ISINF 1 #define HAVE_ISNAN 1 #define HAVE_LDEXPF 1 @@ -255,17 +263,20 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 +#define HAVE_DOS_PATHS 1 +#define HAVE_LIBC_MSVCRT 1 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 +#define HAVE_SECTION_DATA_REL_RO 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 1 +#define HAVE_ARC4RANDOM 0 #define HAVE_CLOCK_GETTIME 0 #define HAVE_CLOSESOCKET 0 #define HAVE_COMMANDLINETOARGVW 1 -#define HAVE_COTASKMEMFREE 1 -#define HAVE_CRYPTGENRANDOM 1 -#define HAVE_DLOPEN 0 #define HAVE_FCNTL 0 -#define HAVE_FLT_LIM 1 -#define HAVE_FORK 0 #define HAVE_GETADDRINFO 0 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 0 @@ -273,7 +284,6 @@ #define HAVE_GETPROCESSMEMORYINFO 1 #define HAVE_GETPROCESSTIMES 1 #define HAVE_GETRUSAGE 0 -#define HAVE_GETSERVBYPORT 0 #define HAVE_GETSYSTEMTIMEASFILETIME 1 #define HAVE_GETTIMEOFDAY 0 #define HAVE_GLOB 0 @@ -281,9 +291,9 @@ #define HAVE_GMTIME_R 0 #define HAVE_INET_ATON 0 #define HAVE_ISATTY 1 -#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 #define HAVE_LOCALTIME_R 0 +#define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 #define HAVE_MAPVIEWOFFILE 1 @@ -296,6 +306,7 @@ #define HAVE_POSIX_MEMALIGN 0 #define HAVE_PTHREAD_CANCEL 0 #define HAVE_SCHED_GETAFFINITY 0 +#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 1 #define HAVE_SETCONSOLECTRLHANDLER 1 #define HAVE_SETMODE 1 @@ -305,25 +316,31 @@ #define HAVE_SYSCONF 0 #define HAVE_SYSCTL 0 #define HAVE_USLEEP 0 +#define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 1 #define HAVE_WGLGETPROCADDRESS 0 +#define HAVE_BCRYPT 1 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 0 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 1 +#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 +#define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 -#define HAVE_ATTRIBUTE_MAY_ALIAS 0 -#define HAVE_ATTRIBUTE_PACKED 0 +#define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 0 #define HAVE_EBX_AVAILABLE 0 #define HAVE_GNU_AS 0 #define HAVE_GNU_WINDRES 0 #define HAVE_IBM_ASM 0 +#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 #define HAVE_INLINE_ASM_LABELS 0 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 #define HAVE_PRAGMA_DEPRECATED 1 #define HAVE_RSYNC_CONTIMEOUT 0 #define HAVE_SYMVER_ASM_LABEL 0 @@ -331,13 +348,13 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 0 -#define HAVE_CONDITION_VARIABLE_PTR 1 +#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 0 #define HAVE_STRUCT_ADDRINFO 0 -#define HAVE_STRUCT_DCADEC_EXSS_INFO_MATRIX_ENCODING 0 #define HAVE_STRUCT_GROUP_SOURCE_REQ 0 #define HAVE_STRUCT_IP_MREQ_SOURCE 0 #define HAVE_STRUCT_IPV6_MREQ 0 +#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 #define HAVE_STRUCT_POLLFD 0 #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 @@ -346,48 +363,35 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 0 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -#define HAVE_ATOMICS_NATIVE 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_DXVA2API_COBJ 1 -#define HAVE_DXVA2_LIB 0 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_LIBDC1394_1 0 -#define HAVE_LIBDC1394_2 0 -#define HAVE_MAKEINFO 1 +#define HAVE_MAKEINFO 0 #define HAVE_MAKEINFO_HTML 0 +#define HAVE_OPENCL_D3D11 0 +#define HAVE_OPENCL_DRM_ARM 0 +#define HAVE_OPENCL_DRM_BEIGNET 0 +#define HAVE_OPENCL_DXVA2 0 +#define HAVE_OPENCL_VAAPI_BEIGNET 0 +#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 0 -#define HAVE_SDL 0 -#define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 -#define HAVE_THREADS 1 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 -#define HAVE_XLIB 0 -#define CONFIG_BSFS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_DEMUXERS 1 -#define CONFIG_ENCODERS 0 -#define CONFIG_FILTERS 0 -#define CONFIG_HWACCELS 0 -#define CONFIG_INDEVS 0 -#define CONFIG_MUXERS 0 -#define CONFIG_OUTDEVS 0 -#define CONFIG_PARSERS 1 -#define CONFIG_PROTOCOLS 1 #define CONFIG_DOC 0 #define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 0 #define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 1 +#define CONFIG_TXTPAGES 0 +#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 #define CONFIG_AVIO_READING_EXAMPLE 1 -#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 -#define CONFIG_DECODING_ENCODING_EXAMPLE 1 +#define CONFIG_DECODE_AUDIO_EXAMPLE 1 +#define CONFIG_DECODE_VIDEO_EXAMPLE 1 #define CONFIG_DEMUXING_DECODING_EXAMPLE 1 +#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 +#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 #define CONFIG_EXTRACT_MVS_EXAMPLE 1 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 +#define CONFIG_HW_DECODE_EXAMPLE 1 #define CONFIG_METADATA_EXAMPLE 1 #define CONFIG_MUXING_EXAMPLE 1 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -396,25 +400,48 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 1 #define CONFIG_TRANSCODE_AAC_EXAMPLE 1 #define CONFIG_TRANSCODING_EXAMPLE 0 +#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 +#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 #define CONFIG_AVISYNTH 0 -#define CONFIG_BZLIB 0 -#define CONFIG_CRYSTALHD 0 -#define CONFIG_DECKLINK 0 #define CONFIG_FREI0R 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBDAVS2 0 +#define CONFIG_LIBRUBBERBAND 0 +#define CONFIG_LIBVIDSTAB 0 +#define CONFIG_LIBX264 0 +#define CONFIG_LIBX265 0 +#define CONFIG_LIBXAVS 0 +#define CONFIG_LIBXAVS2 0 +#define CONFIG_LIBXVID 0 +#define CONFIG_DECKLINK 0 +#define CONFIG_LIBNDI_NEWTEK 0 +#define CONFIG_LIBFDK_AAC 0 +#define CONFIG_OPENSSL 0 +#define CONFIG_LIBTLS 0 +#define CONFIG_GMP 0 +#define CONFIG_LIBLENSFUN 0 +#define CONFIG_LIBOPENCORE_AMRNB 0 +#define CONFIG_LIBOPENCORE_AMRWB 0 +#define CONFIG_LIBVMAF 0 +#define CONFIG_LIBVO_AMRWBENC 0 +#define CONFIG_MBEDTLS 0 +#define CONFIG_RKMPP 0 +#define CONFIG_LIBSMBCLIENT 0 +#define CONFIG_CHROMAPRINT 0 +#define CONFIG_GCRYPT 0 #define CONFIG_GNUTLS 0 -#define CONFIG_ICONV 0 +#define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAACPLUS 0 +#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 -#define CONFIG_LIBCDIO 0 #define CONFIG_LIBCELT 0 +#define CONFIG_LIBCODEC2 0 +#define CONFIG_LIBDAV1D 0 #define CONFIG_LIBDC1394 0 -#define CONFIG_LIBDCADEC 0 -#define CONFIG_LIBFAAC 0 -#define CONFIG_LIBFDK_AAC 0 +#define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 #define CONFIG_LIBFREETYPE 0 @@ -423,91 +450,107 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 +#define CONFIG_LIBJACK 0 +#define CONFIG_LIBKLVANC 0 #define CONFIG_LIBKVAZAAR 0 -#define CONFIG_LIBMFX 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 -#define CONFIG_LIBNUT 0 -#define CONFIG_LIBOPENCORE_AMRNB 0 -#define CONFIG_LIBOPENCORE_AMRWB 0 +#define CONFIG_LIBMYSOFA 0 #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 -#define CONFIG_LIBQUVI 0 +#define CONFIG_LIBRSVG 0 #define CONFIG_LIBRTMP 0 -#define CONFIG_LIBSCHROEDINGER 0 #define CONFIG_LIBSHINE 0 #define CONFIG_LIBSMBCLIENT 0 #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 +#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 -#define CONFIG_LIBSTAGEFRIGHT_H264 0 +#define CONFIG_LIBTENSORFLOW 0 +#define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 -#define CONFIG_LIBUTVIDEO 0 #define CONFIG_LIBV4L2 0 -#define CONFIG_LIBVIDSTAB 0 -#define CONFIG_LIBVO_AACENC 0 -#define CONFIG_LIBVO_AMRWBENC 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 #define CONFIG_LIBWEBP 0 -#define CONFIG_LIBX264 0 -#define CONFIG_LIBX265 0 -#define CONFIG_LIBXAVS 0 +#define CONFIG_LIBXML2 0 +#define CONFIG_LIBZIMG 0 +#define CONFIG_LIBZMQ 0 +#define CONFIG_LIBZVBI 0 +#define CONFIG_LV2 0 +#define CONFIG_MEDIACODEC 0 +#define CONFIG_OPENAL 0 +#define CONFIG_OPENGL 0 +#define CONFIG_VAPOURSYNTH 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 #define CONFIG_LIBXCB 0 #define CONFIG_LIBXCB_SHM 0 #define CONFIG_LIBXCB_SHAPE 0 #define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LIBXVID 0 -#define CONFIG_LIBZMQ 0 -#define CONFIG_LIBZVBI 0 #define CONFIG_LZMA 0 -#define CONFIG_MMAL 0 -#define CONFIG_NVENC 0 -#define CONFIG_OPENAL 0 -#define CONFIG_OPENCL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_OPENSSL 0 -#define CONFIG_SDL 0 +#define CONFIG_SCHANNEL 1 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 -#define CONFIG_X11GRAB 0 +#define CONFIG_SNDIO 0 #define CONFIG_XLIB 0 #define CONFIG_ZLIB 1 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 +#define CONFIG_OPENCL 0 +#define CONFIG_AMF 0 +#define CONFIG_AUDIOTOOLBOX 0 +#define CONFIG_CRYSTALHD 0 +#define CONFIG_CUDA 0 +#define CONFIG_CUVID 0 +#define CONFIG_D3D11VA 0 +#define CONFIG_DXVA2 0 +#define CONFIG_FFNVCODEC 0 +#define CONFIG_NVDEC 0 +#define CONFIG_NVENC 0 +#define CONFIG_VAAPI 0 +#define CONFIG_VDPAU 0 +#define CONFIG_VIDEOTOOLBOX 0 +#define CONFIG_V4L2_M2M 0 +#define CONFIG_XVMC 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 +#define CONFIG_OMX_RPI 0 #define CONFIG_RUNTIME_CPUDETECT 1 #define CONFIG_SAFE_BITSTREAM_READER 1 #define CONFIG_SHARED 0 -#define CONFIG_SMALL 0 +#define CONFIG_SMALL 1 #define CONFIG_STATIC 1 #define CONFIG_SWSCALE_ALPHA 1 -#define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 0 -#define CONFIG_VAAPI 0 -#define CONFIG_VDA 0 -#define CONFIG_VDPAU 0 -#define CONFIG_XVMC 0 #define CONFIG_GPL 1 #define CONFIG_NONFREE 0 #define CONFIG_VERSION3 0 -#define CONFIG_AVCODEC 1 #define CONFIG_AVDEVICE 1 #define CONFIG_AVFILTER 0 +#define CONFIG_SWSCALE 1 +#define CONFIG_POSTPROC 0 #define CONFIG_AVFORMAT 1 +#define CONFIG_AVCODEC 1 +#define CONFIG_SWRESAMPLE 1 #define CONFIG_AVRESAMPLE 0 #define CONFIG_AVUTIL 1 -#define CONFIG_POSTPROC 0 -#define CONFIG_SWRESAMPLE 1 -#define CONFIG_SWSCALE 1 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 -#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 1 #define CONFIG_DWT 1 @@ -521,24 +564,44 @@ #define CONFIG_PIXELUTILS 0 #define CONFIG_NETWORK 0 #define CONFIG_RDFT 1 +#define CONFIG_AUTODETECT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 -#define CONFIG_MEMALIGN_HACK 0 +#define CONFIG_LINUX_PERF 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 +#define CONFIG_OSSFUZZ 0 #define CONFIG_PIC 0 -#define CONFIG_POD2MAN 0 -#define CONFIG_RAISE_MAJOR 0 #define CONFIG_THUMB 0 #define CONFIG_VALGRIND_BACKTRACE 0 #define CONFIG_XMM_CLOBBER_TEST 0 +#define CONFIG_BSFS 1 +#define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 +#define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 1 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 1 #define CONFIG_AANDCTTABLES 1 #define CONFIG_AC3DSP 1 -#define CONFIG_AUDIO_FRAME_QUEUE 0 +#define CONFIG_ADTS_HEADER 1 +#define CONFIG_AUDIO_FRAME_QUEUE 1 #define CONFIG_AUDIODSP 1 #define CONFIG_BLOCKDSP 1 #define CONFIG_BSWAPDSP 1 #define CONFIG_CABAC 1 +#define CONFIG_CBS 1 +#define CONFIG_CBS_AV1 1 +#define CONFIG_CBS_H264 1 +#define CONFIG_CBS_H265 1 +#define CONFIG_CBS_JPEG 0 +#define CONFIG_CBS_MPEG2 1 +#define CONFIG_CBS_VP9 1 +#define CONFIG_DIRAC_PARSE 1 +#define CONFIG_DNN 0 #define CONFIG_DVPROFILE 1 #define CONFIG_EXIF 1 #define CONFIG_FAANDCT 1 @@ -548,34 +611,38 @@ #define CONFIG_FMTCONVERT 1 #define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 1 -#define CONFIG_GCRYPT 0 -#define CONFIG_GMP 0 #define CONFIG_GOLOMB 1 #define CONFIG_GPLV3 0 #define CONFIG_H263DSP 1 #define CONFIG_H264CHROMA 1 #define CONFIG_H264DSP 1 +#define CONFIG_H264PARSE 1 #define CONFIG_H264PRED 1 #define CONFIG_H264QPEL 1 +#define CONFIG_HEVCPARSE 1 #define CONFIG_HPELDSP 1 #define CONFIG_HUFFMAN 1 #define CONFIG_HUFFYUVDSP 1 #define CONFIG_HUFFYUVENCDSP 0 #define CONFIG_IDCTDSP 1 #define CONFIG_IIRFILTER 0 -#define CONFIG_IMDCT15 1 +#define CONFIG_MDCT15 1 #define CONFIG_INTRAX8 1 +#define CONFIG_ISO_MEDIA 1 #define CONFIG_IVIDSP 0 #define CONFIG_JPEGTABLES 1 -#define CONFIG_LIBX262 0 #define CONFIG_LGPLV3 0 +#define CONFIG_LIBX262 0 #define CONFIG_LLAUDDSP 1 #define CONFIG_LLVIDDSP 1 +#define CONFIG_LLVIDENCDSP 0 #define CONFIG_LPC 0 +#define CONFIG_LZF 1 #define CONFIG_ME_CMP 1 #define CONFIG_MPEG_ER 1 #define CONFIG_MPEGAUDIO 1 #define CONFIG_MPEGAUDIODSP 1 +#define CONFIG_MPEGAUDIOHEADER 1 #define CONFIG_MPEGVIDEO 1 #define CONFIG_MPEGVIDEOENC 1 #define CONFIG_MSS34DSP 1 @@ -584,18 +651,24 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 +#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 1 #define CONFIG_RIFFDEC 1 #define CONFIG_RIFFENC 0 #define CONFIG_RTPDEC 0 #define CONFIG_RTPENC_CHAIN 0 #define CONFIG_RV34DSP 1 +#define CONFIG_SCENE_SAD 0 #define CONFIG_SINEWIN 1 #define CONFIG_SNAPPY 1 +#define CONFIG_SRTP 0 #define CONFIG_STARTCODE 1 #define CONFIG_TEXTUREDSP 1 #define CONFIG_TEXTUREDSPENC 0 #define CONFIG_TPELDSP 1 +#define CONFIG_VAAPI_1 0 +#define CONFIG_VAAPI_ENCODE 0 +#define CONFIG_VC1DSP 1 #define CONFIG_VIDEODSP 1 #define CONFIG_VP3DSP 1 #define CONFIG_VP56DSP 1 @@ -603,19 +676,36 @@ #define CONFIG_WMA_FREQS 1 #define CONFIG_WMV2DSP 1 #define CONFIG_AAC_ADTSTOASC_BSF 1 +#define CONFIG_AV1_METADATA_BSF 1 #define CONFIG_CHOMP_BSF 1 #define CONFIG_DUMP_EXTRADATA_BSF 1 +#define CONFIG_DCA_CORE_BSF 1 +#define CONFIG_EAC3_CORE_BSF 1 +#define CONFIG_EXTRACT_EXTRADATA_BSF 1 +#define CONFIG_FILTER_UNITS_BSF 1 +#define CONFIG_H264_METADATA_BSF 1 #define CONFIG_H264_MP4TOANNEXB_BSF 1 +#define CONFIG_H264_REDUNDANT_PPS_BSF 1 +#define CONFIG_HAPQA_EXTRACT_BSF 1 +#define CONFIG_HEVC_METADATA_BSF 1 #define CONFIG_HEVC_MP4TOANNEXB_BSF 1 #define CONFIG_IMX_DUMP_HEADER_BSF 1 #define CONFIG_MJPEG2JPEG_BSF 1 #define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 #define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +#define CONFIG_MPEG2_METADATA_BSF 1 #define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 #define CONFIG_MOV2TEXTSUB_BSF 1 #define CONFIG_NOISE_BSF 1 +#define CONFIG_NULL_BSF 1 +#define CONFIG_PRORES_METADATA_BSF 1 #define CONFIG_REMOVE_EXTRADATA_BSF 1 #define CONFIG_TEXT2MOVSUB_BSF 1 +#define CONFIG_TRACE_HEADERS_BSF 1 +#define CONFIG_VP9_METADATA_BSF 1 +#define CONFIG_VP9_RAW_REORDER_BSF 1 +#define CONFIG_VP9_SUPERFRAME_BSF 1 +#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_AASC_DECODER 1 #define CONFIG_AIC_DECODER 1 #define CONFIG_ALIAS_PIX_DECODER 1 @@ -635,6 +725,7 @@ #define CONFIG_BETHSOFTVID_DECODER 1 #define CONFIG_BFI_DECODER 1 #define CONFIG_BINK_DECODER 1 +#define CONFIG_BITPACKED_DECODER 1 #define CONFIG_BMP_DECODER 1 #define CONFIG_BMV_VIDEO_DECODER 1 #define CONFIG_BRENDER_PIX_DECODER 1 @@ -642,7 +733,9 @@ #define CONFIG_CAVS_DECODER 1 #define CONFIG_CDGRAPHICS_DECODER 1 #define CONFIG_CDXL_DECODER 1 +#define CONFIG_CFHD_DECODER 1 #define CONFIG_CINEPAK_DECODER 1 +#define CONFIG_CLEARVIDEO_DECODER 1 #define CONFIG_CLJR_DECODER 1 #define CONFIG_CLLC_DECODER 1 #define CONFIG_COMFORTNOISE_DECODER 1 @@ -655,9 +748,11 @@ #define CONFIG_DNXHD_DECODER 1 #define CONFIG_DPX_DECODER 1 #define CONFIG_DSICINVIDEO_DECODER 1 +#define CONFIG_DVAUDIO_DECODER 1 #define CONFIG_DVVIDEO_DECODER 1 #define CONFIG_DXA_DECODER 1 #define CONFIG_DXTORY_DECODER 1 +#define CONFIG_DXV_DECODER 1 #define CONFIG_EACMV_DECODER 1 #define CONFIG_EAMAD_DECODER 1 #define CONFIG_EATGQ_DECODER 1 @@ -672,35 +767,42 @@ #define CONFIG_FFV1_DECODER 1 #define CONFIG_FFVHUFF_DECODER 1 #define CONFIG_FIC_DECODER 1 +#define CONFIG_FITS_DECODER 1 #define CONFIG_FLASHSV_DECODER 1 #define CONFIG_FLASHSV2_DECODER 1 #define CONFIG_FLIC_DECODER 1 #define CONFIG_FLV_DECODER 1 +#define CONFIG_FMVC_DECODER 1 #define CONFIG_FOURXM_DECODER 1 #define CONFIG_FRAPS_DECODER 1 #define CONFIG_FRWU_DECODER 1 #define CONFIG_G2M_DECODER 1 +#define CONFIG_GDV_DECODER 1 #define CONFIG_GIF_DECODER 1 #define CONFIG_H261_DECODER 1 #define CONFIG_H263_DECODER 1 #define CONFIG_H263I_DECODER 1 #define CONFIG_H263P_DECODER 1 +#define CONFIG_H263_V4L2M2M_DECODER 0 #define CONFIG_H264_DECODER 1 #define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 #define CONFIG_H264_MMAL_DECODER 0 #define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_VDA_DECODER 0 -#define CONFIG_H264_VDPAU_DECODER 0 +#define CONFIG_H264_RKMPP_DECODER 0 #define CONFIG_HAP_DECODER 1 #define CONFIG_HEVC_DECODER 1 #define CONFIG_HEVC_QSV_DECODER 0 +#define CONFIG_HEVC_RKMPP_DECODER 0 +#define CONFIG_HEVC_V4L2M2M_DECODER 0 #define CONFIG_HNM4_VIDEO_DECODER 1 #define CONFIG_HQ_HQA_DECODER 1 #define CONFIG_HQX_DECODER 1 #define CONFIG_HUFFYUV_DECODER 1 #define CONFIG_IDCIN_DECODER 1 -#define CONFIG_IFF_BYTERUN1_DECODER 1 #define CONFIG_IFF_ILBM_DECODER 1 +#define CONFIG_IMM4_DECODER 1 #define CONFIG_INDEO2_DECODER 0 #define CONFIG_INDEO3_DECODER 0 #define CONFIG_INDEO4_DECODER 0 @@ -713,28 +815,33 @@ #define CONFIG_KMVC_DECODER 1 #define CONFIG_LAGARITH_DECODER 1 #define CONFIG_LOCO_DECODER 1 +#define CONFIG_M101_DECODER 1 +#define CONFIG_MAGICYUV_DECODER 1 #define CONFIG_MDEC_DECODER 1 #define CONFIG_MIMIC_DECODER 1 #define CONFIG_MJPEG_DECODER 1 #define CONFIG_MJPEGB_DECODER 1 #define CONFIG_MMVIDEO_DECODER 1 #define CONFIG_MOTIONPIXELS_DECODER 1 -#define CONFIG_MPEG_XVMC_DECODER 0 #define CONFIG_MPEG1VIDEO_DECODER 1 #define CONFIG_MPEG2VIDEO_DECODER 1 #define CONFIG_MPEG4_DECODER 1 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_VDPAU_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 #define CONFIG_MPEGVIDEO_DECODER 1 -#define CONFIG_MPEG_VDPAU_DECODER 0 -#define CONFIG_MPEG1_VDPAU_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 #define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 #define CONFIG_MSA1_DECODER 1 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSCC_DECODER 1 #define CONFIG_MSMPEG4V1_DECODER 1 #define CONFIG_MSMPEG4V2_DECODER 1 #define CONFIG_MSMPEG4V3_DECODER 1 +#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 #define CONFIG_MSRLE_DECODER 1 #define CONFIG_MSS1_DECODER 1 #define CONFIG_MSS2_DECODER 1 @@ -743,6 +850,7 @@ #define CONFIG_MTS2_DECODER 1 #define CONFIG_MVC1_DECODER 1 #define CONFIG_MVC2_DECODER 1 +#define CONFIG_MWSC_DECODER 1 #define CONFIG_MXPEG_DECODER 1 #define CONFIG_NUV_DECODER 1 #define CONFIG_PAF_VIDEO_DECODER 1 @@ -752,33 +860,43 @@ #define CONFIG_PGM_DECODER 1 #define CONFIG_PGMYUV_DECODER 1 #define CONFIG_PICTOR_DECODER 1 +#define CONFIG_PIXLET_DECODER 1 #define CONFIG_PNG_DECODER 1 #define CONFIG_PPM_DECODER 1 #define CONFIG_PRORES_DECODER 1 -#define CONFIG_PRORES_LGPL_DECODER 1 +#define CONFIG_PROSUMER_DECODER 1 +#define CONFIG_PSD_DECODER 1 #define CONFIG_PTX_DECODER 1 #define CONFIG_QDRAW_DECODER 1 #define CONFIG_QPEG_DECODER 1 #define CONFIG_QTRLE_DECODER 1 #define CONFIG_R10K_DECODER 1 #define CONFIG_R210_DECODER 1 +#define CONFIG_RASC_DECODER 1 #define CONFIG_RAWVIDEO_DECODER 1 #define CONFIG_RL2_DECODER 1 #define CONFIG_ROQ_DECODER 1 #define CONFIG_RPZA_DECODER 1 +#define CONFIG_RSCC_DECODER 1 #define CONFIG_RV10_DECODER 1 #define CONFIG_RV20_DECODER 1 #define CONFIG_RV30_DECODER 1 #define CONFIG_RV40_DECODER 1 #define CONFIG_S302M_DECODER 1 #define CONFIG_SANM_DECODER 1 +#define CONFIG_SCPR_DECODER 1 +#define CONFIG_SCREENPRESSO_DECODER 1 +#define CONFIG_SDX2_DPCM_DECODER 1 #define CONFIG_SGI_DECODER 1 #define CONFIG_SGIRLE_DECODER 1 +#define CONFIG_SHEERVIDEO_DECODER 1 #define CONFIG_SMACKER_DECODER 1 #define CONFIG_SMC_DECODER 1 #define CONFIG_SMVJPEG_DECODER 1 #define CONFIG_SNOW_DECODER 1 #define CONFIG_SP5X_DECODER 1 +#define CONFIG_SPEEDHQ_DECODER 1 +#define CONFIG_SRGC_DECODER 1 #define CONFIG_SUNRAST_DECODER 1 #define CONFIG_SVQ1_DECODER 1 #define CONFIG_SVQ3_DECODER 1 @@ -792,6 +910,7 @@ #define CONFIG_TMV_DECODER 1 #define CONFIG_TRUEMOTION1_DECODER 1 #define CONFIG_TRUEMOTION2_DECODER 1 +#define CONFIG_TRUEMOTION2RT_DECODER 1 #define CONFIG_TSCC_DECODER 1 #define CONFIG_TSCC2_DECODER 1 #define CONFIG_TXD_DECODER 1 @@ -806,9 +925,10 @@ #define CONFIG_VBLE_DECODER 1 #define CONFIG_VC1_DECODER 1 #define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1_VDPAU_DECODER 0 #define CONFIG_VC1IMAGE_DECODER 1 +#define CONFIG_VC1_MMAL_DECODER 0 #define CONFIG_VC1_QSV_DECODER 0 +#define CONFIG_VC1_V4L2M2M_DECODER 0 #define CONFIG_VCR1_DECODER 1 #define CONFIG_VMDVIDEO_DECODER 1 #define CONFIG_VMNC_DECODER 1 @@ -819,14 +939,19 @@ #define CONFIG_VP6F_DECODER 1 #define CONFIG_VP7_DECODER 1 #define CONFIG_VP8_DECODER 1 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 #define CONFIG_VP9_DECODER 1 +#define CONFIG_VP9_RKMPP_DECODER 0 +#define CONFIG_VP9_V4L2M2M_DECODER 0 #define CONFIG_VQA_DECODER 1 #define CONFIG_WEBP_DECODER 1 +#define CONFIG_WCMV_DECODER 1 +#define CONFIG_WRAPPED_AVFRAME_DECODER 1 #define CONFIG_WMV1_DECODER 1 #define CONFIG_WMV2_DECODER 1 #define CONFIG_WMV3_DECODER 1 #define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3_VDPAU_DECODER 0 #define CONFIG_WMV3IMAGE_DECODER 1 #define CONFIG_WNV1_DECODER 1 #define CONFIG_XAN_WC3_DECODER 1 @@ -834,8 +959,10 @@ #define CONFIG_XBM_DECODER 1 #define CONFIG_XFACE_DECODER 1 #define CONFIG_XL_DECODER 1 +#define CONFIG_XPM_DECODER 1 #define CONFIG_XWD_DECODER 1 #define CONFIG_Y41P_DECODER 1 +#define CONFIG_YLC_DECODER 1 #define CONFIG_YOP_DECODER 1 #define CONFIG_YUV4_DECODER 1 #define CONFIG_ZERO12V_DECODER 1 @@ -852,20 +979,27 @@ #define CONFIG_AMRNB_DECODER 1 #define CONFIG_AMRWB_DECODER 1 #define CONFIG_APE_DECODER 1 +#define CONFIG_APTX_DECODER 1 +#define CONFIG_APTX_HD_DECODER 1 #define CONFIG_ATRAC1_DECODER 1 #define CONFIG_ATRAC3_DECODER 1 +#define CONFIG_ATRAC3AL_DECODER 1 #define CONFIG_ATRAC3P_DECODER 0 +#define CONFIG_ATRAC3PAL_DECODER 1 +#define CONFIG_ATRAC9_DECODER 1 #define CONFIG_BINKAUDIO_DCT_DECODER 1 #define CONFIG_BINKAUDIO_RDFT_DECODER 1 #define CONFIG_BMV_AUDIO_DECODER 1 #define CONFIG_COOK_DECODER 1 #define CONFIG_DCA_DECODER 1 +#define CONFIG_DOLBY_E_DECODER 1 #define CONFIG_DSD_LSBF_DECODER 1 #define CONFIG_DSD_MSBF_DECODER 1 #define CONFIG_DSD_LSBF_PLANAR_DECODER 1 #define CONFIG_DSD_MSBF_PLANAR_DECODER 1 #define CONFIG_DSICINAUDIO_DECODER 1 #define CONFIG_DSS_SP_DECODER 1 +#define CONFIG_DST_DECODER 1 #define CONFIG_EAC3_DECODER 1 #define CONFIG_EVRC_DECODER 1 #define CONFIG_FFWAVESYNTH_DECODER 1 @@ -875,7 +1009,9 @@ #define CONFIG_GSM_DECODER 1 #define CONFIG_GSM_MS_DECODER 1 #define CONFIG_IAC_DECODER 1 +#define CONFIG_ILBC_DECODER 1 #define CONFIG_IMC_DECODER 1 +#define CONFIG_INTERPLAY_ACM_DECODER 1 #define CONFIG_MACE3_DECODER 1 #define CONFIG_MACE6_DECODER 1 #define CONFIG_METASOUND_DECODER 1 @@ -884,12 +1020,12 @@ #define CONFIG_MP1FLOAT_DECODER 1 #define CONFIG_MP2_DECODER 1 #define CONFIG_MP2FLOAT_DECODER 1 -#define CONFIG_MP3_DECODER 1 #define CONFIG_MP3FLOAT_DECODER 1 -#define CONFIG_MP3ADU_DECODER 1 +#define CONFIG_MP3_DECODER 1 #define CONFIG_MP3ADUFLOAT_DECODER 1 -#define CONFIG_MP3ON4_DECODER 1 +#define CONFIG_MP3ADU_DECODER 1 #define CONFIG_MP3ON4FLOAT_DECODER 1 +#define CONFIG_MP3ON4_DECODER 1 #define CONFIG_MPC7_DECODER 1 #define CONFIG_MPC8_DECODER 1 #define CONFIG_NELLYMOSER_DECODER 1 @@ -898,9 +1034,11 @@ #define CONFIG_PAF_AUDIO_DECODER 1 #define CONFIG_QCELP_DECODER 1 #define CONFIG_QDM2_DECODER 1 +#define CONFIG_QDMC_DECODER 1 #define CONFIG_RA_144_DECODER 1 #define CONFIG_RA_288_DECODER 1 #define CONFIG_RALF_DECODER 1 +#define CONFIG_SBC_DECODER 1 #define CONFIG_SHORTEN_DECODER 1 #define CONFIG_SIPR_DECODER 1 #define CONFIG_SMACKAUD_DECODER 1 @@ -919,9 +1057,13 @@ #define CONFIG_WMAV2_DECODER 1 #define CONFIG_WMAVOICE_DECODER 1 #define CONFIG_WS_SND1_DECODER 1 +#define CONFIG_XMA1_DECODER 1 +#define CONFIG_XMA2_DECODER 1 #define CONFIG_PCM_ALAW_DECODER 1 #define CONFIG_PCM_BLURAY_DECODER 1 #define CONFIG_PCM_DVD_DECODER 1 +#define CONFIG_PCM_F16LE_DECODER 1 +#define CONFIG_PCM_F24LE_DECODER 1 #define CONFIG_PCM_F32BE_DECODER 1 #define CONFIG_PCM_F32LE_DECODER 1 #define CONFIG_PCM_F64BE_DECODER 1 @@ -941,6 +1083,8 @@ #define CONFIG_PCM_S32BE_DECODER 1 #define CONFIG_PCM_S32LE_DECODER 1 #define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +#define CONFIG_PCM_S64BE_DECODER 1 +#define CONFIG_PCM_S64LE_DECODER 1 #define CONFIG_PCM_U8_DECODER 1 #define CONFIG_PCM_U16BE_DECODER 1 #define CONFIG_PCM_U16LE_DECODER 1 @@ -948,7 +1092,9 @@ #define CONFIG_PCM_U24LE_DECODER 1 #define CONFIG_PCM_U32BE_DECODER 1 #define CONFIG_PCM_U32LE_DECODER 1 +#define CONFIG_PCM_VIDC_DECODER 1 #define CONFIG_PCM_ZORK_DECODER 1 +#define CONFIG_GREMLIN_DPCM_DECODER 1 #define CONFIG_INTERPLAY_DPCM_DECODER 1 #define CONFIG_ROQ_DPCM_DECODER 1 #define CONFIG_SOL_DPCM_DECODER 1 @@ -956,6 +1102,7 @@ #define CONFIG_ADPCM_4XM_DECODER 1 #define CONFIG_ADPCM_ADX_DECODER 1 #define CONFIG_ADPCM_AFC_DECODER 1 +#define CONFIG_ADPCM_AICA_DECODER 1 #define CONFIG_ADPCM_CT_DECODER 1 #define CONFIG_ADPCM_DTK_DECODER 1 #define CONFIG_ADPCM_EA_DECODER 1 @@ -969,6 +1116,7 @@ #define CONFIG_ADPCM_G726LE_DECODER 1 #define CONFIG_ADPCM_IMA_AMV_DECODER 1 #define CONFIG_ADPCM_IMA_APC_DECODER 1 +#define CONFIG_ADPCM_IMA_DAT4_DECODER 1 #define CONFIG_ADPCM_IMA_DK3_DECODER 1 #define CONFIG_ADPCM_IMA_DK4_DECODER 1 #define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 @@ -981,6 +1129,8 @@ #define CONFIG_ADPCM_IMA_WAV_DECODER 1 #define CONFIG_ADPCM_IMA_WS_DECODER 1 #define CONFIG_ADPCM_MS_DECODER 1 +#define CONFIG_ADPCM_MTAF_DECODER 1 +#define CONFIG_ADPCM_PSX_DECODER 1 #define CONFIG_ADPCM_SBPRO_2_DECODER 1 #define CONFIG_ADPCM_SBPRO_3_DECODER 1 #define CONFIG_ADPCM_SBPRO_4_DECODER 1 @@ -990,7 +1140,6 @@ #define CONFIG_ADPCM_VIMA_DECODER 1 #define CONFIG_ADPCM_XA_DECODER 1 #define CONFIG_ADPCM_YAMAHA_DECODER 1 -#define CONFIG_VIMA_DECODER 1 #define CONFIG_SSA_DECODER 1 #define CONFIG_ASS_DECODER 1 #define CONFIG_CCAPTION_DECODER 1 @@ -1013,8 +1162,26 @@ #define CONFIG_VPLAYER_DECODER 1 #define CONFIG_WEBVTT_DECODER 1 #define CONFIG_XSUB_DECODER 1 +#define CONFIG_AAC_AT_DECODER 0 +#define CONFIG_AC3_AT_DECODER 0 +#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +#define CONFIG_ALAC_AT_DECODER 0 +#define CONFIG_AMR_NB_AT_DECODER 0 +#define CONFIG_EAC3_AT_DECODER 0 +#define CONFIG_GSM_MS_AT_DECODER 0 +#define CONFIG_ILBC_AT_DECODER 0 +#define CONFIG_MP1_AT_DECODER 0 +#define CONFIG_MP2_AT_DECODER 0 +#define CONFIG_MP3_AT_DECODER 0 +#define CONFIG_PCM_ALAW_AT_DECODER 0 +#define CONFIG_PCM_MULAW_AT_DECODER 0 +#define CONFIG_QDMC_AT_DECODER 0 +#define CONFIG_QDM2_AT_DECODER 0 +#define CONFIG_LIBAOM_AV1_DECODER 0 #define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBDCADEC_DECODER 0 +#define CONFIG_LIBCODEC2_DECODER 0 +#define CONFIG_LIBDAV1D_DECODER 0 +#define CONFIG_LIBDAVS2_DECODER 0 #define CONFIG_LIBFDK_AAC_DECODER 0 #define CONFIG_LIBGSM_DECODER 0 #define CONFIG_LIBGSM_MS_DECODER 0 @@ -1023,10 +1190,8 @@ #define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 #define CONFIG_LIBOPENJPEG_DECODER 0 #define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBSCHROEDINGER_DECODER 0 +#define CONFIG_LIBRSVG_DECODER 0 #define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 -#define CONFIG_LIBUTVIDEO_DECODER 0 #define CONFIG_LIBVORBIS_DECODER 0 #define CONFIG_LIBVPX_VP8_DECODER 0 #define CONFIG_LIBVPX_VP9_DECODER 0 @@ -1034,250 +1199,21 @@ #define CONFIG_BINTEXT_DECODER 1 #define CONFIG_XBIN_DECODER 1 #define CONFIG_IDF_DECODER 1 -#define CONFIG_AAC_DEMUXER 1 -#define CONFIG_AC3_DEMUXER 1 -#define CONFIG_ACT_DEMUXER 1 -#define CONFIG_ADF_DEMUXER 1 -#define CONFIG_ADP_DEMUXER 1 -#define CONFIG_ADX_DEMUXER 1 -#define CONFIG_AEA_DEMUXER 1 -#define CONFIG_AFC_DEMUXER 1 -#define CONFIG_AIFF_DEMUXER 1 -#define CONFIG_AMR_DEMUXER 1 -#define CONFIG_ANM_DEMUXER 1 -#define CONFIG_APC_DEMUXER 1 -#define CONFIG_APE_DEMUXER 1 -#define CONFIG_APNG_DEMUXER 1 -#define CONFIG_AQTITLE_DEMUXER 1 -#define CONFIG_ASF_DEMUXER 1 -#define CONFIG_ASF_O_DEMUXER 1 -#define CONFIG_ASS_DEMUXER 1 -#define CONFIG_AST_DEMUXER 1 -#define CONFIG_AU_DEMUXER 1 -#define CONFIG_AVI_DEMUXER 1 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVR_DEMUXER 1 -#define CONFIG_AVS_DEMUXER 1 -#define CONFIG_BETHSOFTVID_DEMUXER 1 -#define CONFIG_BFI_DEMUXER 1 -#define CONFIG_BINTEXT_DEMUXER 1 -#define CONFIG_BINK_DEMUXER 1 -#define CONFIG_BIT_DEMUXER 1 -#define CONFIG_BMV_DEMUXER 1 -#define CONFIG_BFSTM_DEMUXER 1 -#define CONFIG_BRSTM_DEMUXER 1 -#define CONFIG_BOA_DEMUXER 1 -#define CONFIG_C93_DEMUXER 1 -#define CONFIG_CAF_DEMUXER 1 -#define CONFIG_CAVSVIDEO_DEMUXER 1 -#define CONFIG_CDG_DEMUXER 1 -#define CONFIG_CDXL_DEMUXER 1 -#define CONFIG_CINE_DEMUXER 1 -#define CONFIG_CONCAT_DEMUXER 1 -#define CONFIG_DATA_DEMUXER 1 -#define CONFIG_DAUD_DEMUXER 1 -#define CONFIG_DFA_DEMUXER 1 -#define CONFIG_DIRAC_DEMUXER 1 -#define CONFIG_DNXHD_DEMUXER 1 -#define CONFIG_DSF_DEMUXER 1 -#define CONFIG_DSICIN_DEMUXER 1 -#define CONFIG_DSS_DEMUXER 1 -#define CONFIG_DTS_DEMUXER 1 -#define CONFIG_DTSHD_DEMUXER 1 -#define CONFIG_DV_DEMUXER 1 -#define CONFIG_DVBSUB_DEMUXER 1 -#define CONFIG_DXA_DEMUXER 1 -#define CONFIG_EA_DEMUXER 1 -#define CONFIG_EA_CDATA_DEMUXER 1 -#define CONFIG_EAC3_DEMUXER 1 -#define CONFIG_EPAF_DEMUXER 1 -#define CONFIG_FFM_DEMUXER 1 -#define CONFIG_FFMETADATA_DEMUXER 1 -#define CONFIG_FILMSTRIP_DEMUXER 1 -#define CONFIG_FLAC_DEMUXER 1 -#define CONFIG_FLIC_DEMUXER 1 -#define CONFIG_FLV_DEMUXER 1 -#define CONFIG_LIVE_FLV_DEMUXER 1 -#define CONFIG_FOURXM_DEMUXER 1 -#define CONFIG_FRM_DEMUXER 1 -#define CONFIG_G722_DEMUXER 1 -#define CONFIG_G723_1_DEMUXER 1 -#define CONFIG_G729_DEMUXER 1 -#define CONFIG_GIF_DEMUXER 1 -#define CONFIG_GSM_DEMUXER 1 -#define CONFIG_GXF_DEMUXER 1 -#define CONFIG_H261_DEMUXER 1 -#define CONFIG_H263_DEMUXER 1 -#define CONFIG_H264_DEMUXER 1 -#define CONFIG_HEVC_DEMUXER 1 -#define CONFIG_HLS_DEMUXER 1 -#define CONFIG_HNM_DEMUXER 1 -#define CONFIG_ICO_DEMUXER 1 -#define CONFIG_IDCIN_DEMUXER 1 -#define CONFIG_IDF_DEMUXER 1 -#define CONFIG_IFF_DEMUXER 1 -#define CONFIG_ILBC_DEMUXER 1 -#define CONFIG_IMAGE2_DEMUXER 1 -#define CONFIG_IMAGE2PIPE_DEMUXER 1 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -#define CONFIG_INGENIENT_DEMUXER 1 -#define CONFIG_IPMOVIE_DEMUXER 1 -#define CONFIG_IRCAM_DEMUXER 1 -#define CONFIG_ISS_DEMUXER 1 -#define CONFIG_IV8_DEMUXER 1 -#define CONFIG_IVF_DEMUXER 1 -#define CONFIG_JACOSUB_DEMUXER 1 -#define CONFIG_JV_DEMUXER 1 -#define CONFIG_LATM_DEMUXER 1 -#define CONFIG_LMLM4_DEMUXER 1 -#define CONFIG_LOAS_DEMUXER 1 -#define CONFIG_LRC_DEMUXER 1 -#define CONFIG_LVF_DEMUXER 1 -#define CONFIG_LXF_DEMUXER 1 -#define CONFIG_M4V_DEMUXER 1 -#define CONFIG_MATROSKA_DEMUXER 1 -#define CONFIG_MGSTS_DEMUXER 1 -#define CONFIG_MICRODVD_DEMUXER 1 -#define CONFIG_MJPEG_DEMUXER 1 -#define CONFIG_MLP_DEMUXER 1 -#define CONFIG_MLV_DEMUXER 1 -#define CONFIG_MM_DEMUXER 1 -#define CONFIG_MMF_DEMUXER 1 -#define CONFIG_MOV_DEMUXER 1 -#define CONFIG_MP3_DEMUXER 1 -#define CONFIG_MPC_DEMUXER 1 -#define CONFIG_MPC8_DEMUXER 1 -#define CONFIG_MPEGPS_DEMUXER 1 -#define CONFIG_MPEGTS_DEMUXER 1 -#define CONFIG_MPEGTSRAW_DEMUXER 1 -#define CONFIG_MPEGVIDEO_DEMUXER 1 -#define CONFIG_MPJPEG_DEMUXER 1 -#define CONFIG_MPL2_DEMUXER 1 -#define CONFIG_MPSUB_DEMUXER 1 -#define CONFIG_MSNWC_TCP_DEMUXER 1 -#define CONFIG_MTV_DEMUXER 1 -#define CONFIG_MV_DEMUXER 1 -#define CONFIG_MVI_DEMUXER 1 -#define CONFIG_MXF_DEMUXER 1 -#define CONFIG_MXG_DEMUXER 1 -#define CONFIG_NC_DEMUXER 1 -#define CONFIG_NISTSPHERE_DEMUXER 1 -#define CONFIG_NSV_DEMUXER 1 -#define CONFIG_NUT_DEMUXER 1 -#define CONFIG_NUV_DEMUXER 1 -#define CONFIG_OGG_DEMUXER 1 -#define CONFIG_OMA_DEMUXER 1 -#define CONFIG_PAF_DEMUXER 1 -#define CONFIG_PCM_ALAW_DEMUXER 1 -#define CONFIG_PCM_MULAW_DEMUXER 1 -#define CONFIG_PCM_F64BE_DEMUXER 1 -#define CONFIG_PCM_F64LE_DEMUXER 1 -#define CONFIG_PCM_F32BE_DEMUXER 1 -#define CONFIG_PCM_F32LE_DEMUXER 1 -#define CONFIG_PCM_S32BE_DEMUXER 1 -#define CONFIG_PCM_S32LE_DEMUXER 1 -#define CONFIG_PCM_S24BE_DEMUXER 1 -#define CONFIG_PCM_S24LE_DEMUXER 1 -#define CONFIG_PCM_S16BE_DEMUXER 1 -#define CONFIG_PCM_S16LE_DEMUXER 1 -#define CONFIG_PCM_S8_DEMUXER 1 -#define CONFIG_PCM_U32BE_DEMUXER 1 -#define CONFIG_PCM_U32LE_DEMUXER 1 -#define CONFIG_PCM_U24BE_DEMUXER 1 -#define CONFIG_PCM_U24LE_DEMUXER 1 -#define CONFIG_PCM_U16BE_DEMUXER 1 -#define CONFIG_PCM_U16LE_DEMUXER 1 -#define CONFIG_PCM_U8_DEMUXER 1 -#define CONFIG_PJS_DEMUXER 1 -#define CONFIG_PMP_DEMUXER 1 -#define CONFIG_PVA_DEMUXER 1 -#define CONFIG_PVF_DEMUXER 1 -#define CONFIG_QCP_DEMUXER 1 -#define CONFIG_R3D_DEMUXER 1 -#define CONFIG_RAWVIDEO_DEMUXER 1 -#define CONFIG_REALTEXT_DEMUXER 1 -#define CONFIG_REDSPARK_DEMUXER 1 -#define CONFIG_RL2_DEMUXER 1 -#define CONFIG_RM_DEMUXER 1 -#define CONFIG_ROQ_DEMUXER 1 -#define CONFIG_RPL_DEMUXER 1 -#define CONFIG_RSD_DEMUXER 1 -#define CONFIG_RSO_DEMUXER 1 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_SAMI_DEMUXER 1 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SBG_DEMUXER 1 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 1 -#define CONFIG_SEGAFILM_DEMUXER 1 -#define CONFIG_SHORTEN_DEMUXER 1 -#define CONFIG_SIFF_DEMUXER 1 -#define CONFIG_SLN_DEMUXER 1 -#define CONFIG_SMACKER_DEMUXER 1 -#define CONFIG_SMJPEG_DEMUXER 1 -#define CONFIG_SMUSH_DEMUXER 1 -#define CONFIG_SOL_DEMUXER 1 -#define CONFIG_SOX_DEMUXER 1 -#define CONFIG_SPDIF_DEMUXER 1 -#define CONFIG_SRT_DEMUXER 1 -#define CONFIG_STR_DEMUXER 1 -#define CONFIG_STL_DEMUXER 1 -#define CONFIG_SUBVIEWER1_DEMUXER 1 -#define CONFIG_SUBVIEWER_DEMUXER 1 -#define CONFIG_SUP_DEMUXER 1 -#define CONFIG_SWF_DEMUXER 1 -#define CONFIG_TAK_DEMUXER 1 -#define CONFIG_TEDCAPTIONS_DEMUXER 1 -#define CONFIG_THP_DEMUXER 1 -#define CONFIG_TIERTEXSEQ_DEMUXER 1 -#define CONFIG_TMV_DEMUXER 1 -#define CONFIG_TRUEHD_DEMUXER 1 -#define CONFIG_TTA_DEMUXER 1 -#define CONFIG_TXD_DEMUXER 1 -#define CONFIG_TTY_DEMUXER 1 -#define CONFIG_VC1_DEMUXER 1 -#define CONFIG_VC1T_DEMUXER 1 -#define CONFIG_VIVO_DEMUXER 1 -#define CONFIG_VMD_DEMUXER 1 -#define CONFIG_VOBSUB_DEMUXER 1 -#define CONFIG_VOC_DEMUXER 1 -#define CONFIG_VPLAYER_DEMUXER 1 -#define CONFIG_VQF_DEMUXER 1 -#define CONFIG_W64_DEMUXER 1 -#define CONFIG_WAV_DEMUXER 1 -#define CONFIG_WC3_DEMUXER 1 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -#define CONFIG_WEBVTT_DEMUXER 1 -#define CONFIG_WSAUD_DEMUXER 1 -#define CONFIG_WSVQA_DEMUXER 1 -#define CONFIG_WTV_DEMUXER 1 -#define CONFIG_WV_DEMUXER 1 -#define CONFIG_XA_DEMUXER 1 -#define CONFIG_XBIN_DEMUXER 1 -#define CONFIG_XMV_DEMUXER 1 -#define CONFIG_XWMA_DEMUXER 1 -#define CONFIG_YOP_DEMUXER 1 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBNUT_DEMUXER 0 -#define CONFIG_LIBQUVI_DEMUXER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H264_CUVID_DECODER 0 +#define CONFIG_HEVC_CUVID_DECODER 0 +#define CONFIG_HEVC_MEDIACODEC_DECODER 0 +#define CONFIG_MJPEG_CUVID_DECODER 0 +#define CONFIG_MPEG1_CUVID_DECODER 0 +#define CONFIG_MPEG2_CUVID_DECODER 0 +#define CONFIG_MPEG4_CUVID_DECODER 0 +#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +#define CONFIG_VC1_CUVID_DECODER 0 +#define CONFIG_VP8_CUVID_DECODER 0 +#define CONFIG_VP8_MEDIACODEC_DECODER 0 +#define CONFIG_VP8_QSV_DECODER 0 +#define CONFIG_VP9_CUVID_DECODER 0 +#define CONFIG_VP9_MEDIACODEC_DECODER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1297,6 +1233,7 @@ #define CONFIG_DVVIDEO_ENCODER 0 #define CONFIG_FFV1_ENCODER 0 #define CONFIG_FFVHUFF_ENCODER 0 +#define CONFIG_FITS_ENCODER 0 #define CONFIG_FLASHSV_ENCODER 0 #define CONFIG_FLASHSV2_ENCODER 0 #define CONFIG_FLV_ENCODER 0 @@ -1309,6 +1246,7 @@ #define CONFIG_JPEG2000_ENCODER 0 #define CONFIG_JPEGLS_ENCODER 0 #define CONFIG_LJPEG_ENCODER 0 +#define CONFIG_MAGICYUV_ENCODER 0 #define CONFIG_MJPEG_ENCODER 0 #define CONFIG_MPEG1VIDEO_ENCODER 0 #define CONFIG_MPEG2VIDEO_ENCODER 0 @@ -1345,6 +1283,8 @@ #define CONFIG_V308_ENCODER 0 #define CONFIG_V408_ENCODER 0 #define CONFIG_V410_ENCODER 0 +#define CONFIG_VC2_ENCODER 0 +#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 #define CONFIG_WMV1_ENCODER 0 #define CONFIG_WMV2_ENCODER 0 #define CONFIG_XBM_ENCODER 0 @@ -1358,16 +1298,22 @@ #define CONFIG_AC3_ENCODER 0 #define CONFIG_AC3_FIXED_ENCODER 0 #define CONFIG_ALAC_ENCODER 0 +#define CONFIG_APTX_ENCODER 0 +#define CONFIG_APTX_HD_ENCODER 0 #define CONFIG_DCA_ENCODER 0 #define CONFIG_EAC3_ENCODER 0 #define CONFIG_FLAC_ENCODER 0 #define CONFIG_G723_1_ENCODER 0 +#define CONFIG_MLP_ENCODER 0 #define CONFIG_MP2_ENCODER 0 #define CONFIG_MP2FIXED_ENCODER 0 #define CONFIG_NELLYMOSER_ENCODER 0 +#define CONFIG_OPUS_ENCODER 0 #define CONFIG_RA_144_ENCODER 0 +#define CONFIG_SBC_ENCODER 0 #define CONFIG_SONIC_ENCODER 0 #define CONFIG_SONIC_LS_ENCODER 0 +#define CONFIG_TRUEHD_ENCODER 0 #define CONFIG_TTA_ENCODER 0 #define CONFIG_VORBIS_ENCODER 0 #define CONFIG_WAVPACK_ENCODER 0 @@ -1392,6 +1338,8 @@ #define CONFIG_PCM_S32BE_ENCODER 0 #define CONFIG_PCM_S32LE_ENCODER 0 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S64BE_ENCODER 0 +#define CONFIG_PCM_S64LE_ENCODER 0 #define CONFIG_PCM_U8_ENCODER 0 #define CONFIG_PCM_U16BE_ENCODER 0 #define CONFIG_PCM_U16LE_ENCODER 0 @@ -1399,10 +1347,12 @@ #define CONFIG_PCM_U24LE_ENCODER 0 #define CONFIG_PCM_U32BE_ENCODER 0 #define CONFIG_PCM_U32LE_ENCODER 0 +#define CONFIG_PCM_VIDC_ENCODER 0 #define CONFIG_ROQ_DPCM_ENCODER 0 #define CONFIG_ADPCM_ADX_ENCODER 0 #define CONFIG_ADPCM_G722_ENCODER 0 #define CONFIG_ADPCM_G726_ENCODER 0 +#define CONFIG_ADPCM_G726LE_ENCODER 0 #define CONFIG_ADPCM_IMA_QT_ENCODER 0 #define CONFIG_ADPCM_IMA_WAV_ENCODER 0 #define CONFIG_ADPCM_MS_ENCODER 0 @@ -1415,9 +1365,16 @@ #define CONFIG_MOVTEXT_ENCODER 0 #define CONFIG_SRT_ENCODER 0 #define CONFIG_SUBRIP_ENCODER 0 +#define CONFIG_TEXT_ENCODER 0 #define CONFIG_WEBVTT_ENCODER 0 #define CONFIG_XSUB_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 +#define CONFIG_AAC_AT_ENCODER 0 +#define CONFIG_ALAC_AT_ENCODER 0 +#define CONFIG_ILBC_AT_ENCODER 0 +#define CONFIG_PCM_ALAW_AT_ENCODER 0 +#define CONFIG_PCM_MULAW_AT_ENCODER 0 +#define CONFIG_LIBAOM_AV1_ENCODER 0 +#define CONFIG_LIBCODEC2_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1426,13 +1383,10 @@ #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 #define CONFIG_LIBOPENJPEG_ENCODER 0 #define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBSCHROEDINGER_ENCODER 0 #define CONFIG_LIBSHINE_ENCODER 0 #define CONFIG_LIBSPEEX_ENCODER 0 #define CONFIG_LIBTHEORA_ENCODER 0 #define CONFIG_LIBTWOLAME_ENCODER 0 -#define CONFIG_LIBUTVIDEO_ENCODER 0 -#define CONFIG_LIBVO_AACENC_ENCODER 0 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0 #define CONFIG_LIBVORBIS_ENCODER 0 #define CONFIG_LIBVPX_VP8_ENCODER 0 @@ -1445,30 +1399,203 @@ #define CONFIG_LIBX264RGB_ENCODER 0 #define CONFIG_LIBX265_ENCODER 0 #define CONFIG_LIBXAVS_ENCODER 0 +#define CONFIG_LIBXAVS2_ENCODER 0 #define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_LIBAACPLUS_ENCODER 0 +#define CONFIG_H263_V4L2M2M_ENCODER 0 #define CONFIG_LIBOPENH264_ENCODER 0 +#define CONFIG_H264_AMF_ENCODER 0 +#define CONFIG_H264_NVENC_ENCODER 0 +#define CONFIG_H264_OMX_ENCODER 0 #define CONFIG_H264_QSV_ENCODER 0 +#define CONFIG_H264_V4L2M2M_ENCODER 0 +#define CONFIG_H264_VAAPI_ENCODER 0 +#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 #define CONFIG_NVENC_ENCODER 0 #define CONFIG_NVENC_H264_ENCODER 0 #define CONFIG_NVENC_HEVC_ENCODER 0 +#define CONFIG_HEVC_AMF_ENCODER 0 +#define CONFIG_HEVC_NVENC_ENCODER 0 #define CONFIG_HEVC_QSV_ENCODER 0 +#define CONFIG_HEVC_V4L2M2M_ENCODER 0 +#define CONFIG_HEVC_VAAPI_ENCODER 0 +#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 #define CONFIG_LIBKVAZAAR_ENCODER 0 +#define CONFIG_MJPEG_QSV_ENCODER 0 +#define CONFIG_MJPEG_VAAPI_ENCODER 0 #define CONFIG_MPEG2_QSV_ENCODER 0 +#define CONFIG_MPEG2_VAAPI_ENCODER 0 +#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_VAAPI_ENCODER 0 +#define CONFIG_VP9_VAAPI_ENCODER 0 +#define CONFIG_H263_VAAPI_HWACCEL 0 +#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_H264_D3D11VA_HWACCEL 0 +#define CONFIG_H264_D3D11VA2_HWACCEL 0 +#define CONFIG_H264_DXVA2_HWACCEL 0 +#define CONFIG_H264_NVDEC_HWACCEL 0 +#define CONFIG_H264_VAAPI_HWACCEL 0 +#define CONFIG_H264_VDPAU_HWACCEL 0 +#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +#define CONFIG_HEVC_DXVA2_HWACCEL 0 +#define CONFIG_HEVC_NVDEC_HWACCEL 0 +#define CONFIG_HEVC_VAAPI_HWACCEL 0 +#define CONFIG_HEVC_VDPAU_HWACCEL 0 +#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MJPEG_NVDEC_HWACCEL 0 +#define CONFIG_MJPEG_VAAPI_HWACCEL 0 +#define CONFIG_MPEG1_NVDEC_HWACCEL 0 +#define CONFIG_MPEG1_VDPAU_HWACCEL 0 +#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG1_XVMC_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +#define CONFIG_MPEG2_NVDEC_HWACCEL 0 +#define CONFIG_MPEG2_DXVA2_HWACCEL 0 +#define CONFIG_MPEG2_VAAPI_HWACCEL 0 +#define CONFIG_MPEG2_VDPAU_HWACCEL 0 +#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG2_XVMC_HWACCEL 0 +#define CONFIG_MPEG4_NVDEC_HWACCEL 0 +#define CONFIG_MPEG4_VAAPI_HWACCEL 0 +#define CONFIG_MPEG4_VDPAU_HWACCEL 0 +#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_VC1_D3D11VA_HWACCEL 0 +#define CONFIG_VC1_D3D11VA2_HWACCEL 0 +#define CONFIG_VC1_DXVA2_HWACCEL 0 +#define CONFIG_VC1_NVDEC_HWACCEL 0 +#define CONFIG_VC1_VAAPI_HWACCEL 0 +#define CONFIG_VC1_VDPAU_HWACCEL 0 +#define CONFIG_VP8_NVDEC_HWACCEL 0 +#define CONFIG_VP8_VAAPI_HWACCEL 0 +#define CONFIG_VP9_D3D11VA_HWACCEL 0 +#define CONFIG_VP9_D3D11VA2_HWACCEL 0 +#define CONFIG_VP9_DXVA2_HWACCEL 0 +#define CONFIG_VP9_NVDEC_HWACCEL 0 +#define CONFIG_VP9_VAAPI_HWACCEL 0 +#define CONFIG_WMV3_D3D11VA_HWACCEL 0 +#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +#define CONFIG_WMV3_DXVA2_HWACCEL 0 +#define CONFIG_WMV3_NVDEC_HWACCEL 0 +#define CONFIG_WMV3_VAAPI_HWACCEL 0 +#define CONFIG_WMV3_VDPAU_HWACCEL 0 +#define CONFIG_AAC_PARSER 1 +#define CONFIG_AAC_LATM_PARSER 1 +#define CONFIG_AC3_PARSER 1 +#define CONFIG_ADX_PARSER 1 +#define CONFIG_AV1_PARSER 1 +#define CONFIG_AVS2_PARSER 1 +#define CONFIG_BMP_PARSER 1 +#define CONFIG_CAVSVIDEO_PARSER 1 +#define CONFIG_COOK_PARSER 1 +#define CONFIG_DCA_PARSER 1 +#define CONFIG_DIRAC_PARSER 1 +#define CONFIG_DNXHD_PARSER 1 +#define CONFIG_DPX_PARSER 1 +#define CONFIG_DVAUDIO_PARSER 1 +#define CONFIG_DVBSUB_PARSER 1 +#define CONFIG_DVDSUB_PARSER 1 +#define CONFIG_DVD_NAV_PARSER 1 +#define CONFIG_FLAC_PARSER 1 +#define CONFIG_G729_PARSER 1 +#define CONFIG_GSM_PARSER 1 +#define CONFIG_H261_PARSER 1 +#define CONFIG_H263_PARSER 1 +#define CONFIG_H264_PARSER 1 +#define CONFIG_HEVC_PARSER 1 +#define CONFIG_MJPEG_PARSER 1 +#define CONFIG_MLP_PARSER 1 +#define CONFIG_MPEG4VIDEO_PARSER 1 +#define CONFIG_MPEGAUDIO_PARSER 1 +#define CONFIG_MPEGVIDEO_PARSER 1 +#define CONFIG_OPUS_PARSER 1 +#define CONFIG_PNG_PARSER 1 +#define CONFIG_PNM_PARSER 1 +#define CONFIG_RV30_PARSER 1 +#define CONFIG_RV40_PARSER 1 +#define CONFIG_SBC_PARSER 1 +#define CONFIG_SIPR_PARSER 1 +#define CONFIG_TAK_PARSER 1 +#define CONFIG_VC1_PARSER 1 +#define CONFIG_VORBIS_PARSER 1 +#define CONFIG_VP3_PARSER 1 +#define CONFIG_VP8_PARSER 1 +#define CONFIG_VP9_PARSER 1 +#define CONFIG_XMA_PARSER 1 +#define CONFIG_ALSA_INDEV 0 +#define CONFIG_ANDROID_CAMERA_INDEV 0 +#define CONFIG_AVFOUNDATION_INDEV 0 +#define CONFIG_BKTR_INDEV 0 +#define CONFIG_DECKLINK_INDEV 0 +#define CONFIG_LIBNDI_NEWTEK_INDEV 0 +#define CONFIG_DSHOW_INDEV 0 +#define CONFIG_FBDEV_INDEV 0 +#define CONFIG_GDIGRAB_INDEV 0 +#define CONFIG_IEC61883_INDEV 0 +#define CONFIG_JACK_INDEV 0 +#define CONFIG_KMSGRAB_INDEV 0 +#define CONFIG_LAVFI_INDEV 0 +#define CONFIG_OPENAL_INDEV 0 +#define CONFIG_OSS_INDEV 0 +#define CONFIG_PULSE_INDEV 0 +#define CONFIG_SNDIO_INDEV 0 +#define CONFIG_V4L2_INDEV 0 +#define CONFIG_VFWCAP_INDEV 0 +#define CONFIG_XCBGRAB_INDEV 0 +#define CONFIG_LIBCDIO_INDEV 0 +#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_ALSA_OUTDEV 0 +#define CONFIG_CACA_OUTDEV 0 +#define CONFIG_DECKLINK_OUTDEV 0 +#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +#define CONFIG_FBDEV_OUTDEV 0 +#define CONFIG_OPENGL_OUTDEV 0 +#define CONFIG_OSS_OUTDEV 0 +#define CONFIG_PULSE_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 +#define CONFIG_SNDIO_OUTDEV 0 +#define CONFIG_V4L2_OUTDEV 0 +#define CONFIG_XV_OUTDEV 0 +#define CONFIG_ABENCH_FILTER 0 +#define CONFIG_ACOMPRESSOR_FILTER 0 +#define CONFIG_ACONTRAST_FILTER 0 +#define CONFIG_ACOPY_FILTER 0 +#define CONFIG_ACUE_FILTER 0 #define CONFIG_ACROSSFADE_FILTER 0 +#define CONFIG_ACROSSOVER_FILTER 0 +#define CONFIG_ACRUSHER_FILTER 0 +#define CONFIG_ADECLICK_FILTER 0 +#define CONFIG_ADECLIP_FILTER 0 #define CONFIG_ADELAY_FILTER 0 +#define CONFIG_ADERIVATIVE_FILTER 0 #define CONFIG_AECHO_FILTER 0 +#define CONFIG_AEMPHASIS_FILTER 0 #define CONFIG_AEVAL_FILTER 0 #define CONFIG_AFADE_FILTER 0 +#define CONFIG_AFFTDN_FILTER 0 +#define CONFIG_AFFTFILT_FILTER 0 +#define CONFIG_AFIR_FILTER 0 #define CONFIG_AFORMAT_FILTER 0 +#define CONFIG_AGATE_FILTER 0 +#define CONFIG_AIIR_FILTER 0 +#define CONFIG_AINTEGRAL_FILTER 0 #define CONFIG_AINTERLEAVE_FILTER 0 +#define CONFIG_ALIMITER_FILTER 0 #define CONFIG_ALLPASS_FILTER 0 +#define CONFIG_ALOOP_FILTER 0 #define CONFIG_AMERGE_FILTER 0 +#define CONFIG_AMETADATA_FILTER 0 #define CONFIG_AMIX_FILTER 0 +#define CONFIG_AMULTIPLY_FILTER 0 +#define CONFIG_ANEQUALIZER_FILTER 0 #define CONFIG_ANULL_FILTER 0 #define CONFIG_APAD_FILTER 0 #define CONFIG_APERMS_FILTER 0 #define CONFIG_APHASER_FILTER 0 +#define CONFIG_APULSATOR_FILTER 0 +#define CONFIG_AREALTIME_FILTER 0 #define CONFIG_ARESAMPLE_FILTER 0 #define CONFIG_AREVERSE_FILTER 0 #define CONFIG_ASELECT_FILTER 0 @@ -1478,10 +1605,10 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 -#define CONFIG_ASTREAMSYNC_FILTER 0 -#define CONFIG_ASYNCTS_FILTER 0 +#define CONFIG_ASTREAMSELECT_FILTER 0 #define CONFIG_ATEMPO_FILTER 0 #define CONFIG_ATRIM_FILTER 0 #define CONFIG_AZMQ_FILTER 0 @@ -1494,88 +1621,162 @@ #define CONFIG_CHANNELSPLIT_FILTER 0 #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 +#define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CROSSFEED_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 +#define CONFIG_DRMETER_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 #define CONFIG_EBUR128_FILTER 0 #define CONFIG_EQUALIZER_FILTER 0 +#define CONFIG_EXTRASTEREO_FILTER 0 +#define CONFIG_FIREQUALIZER_FILTER 0 #define CONFIG_FLANGER_FILTER 0 +#define CONFIG_HAAS_FILTER 0 +#define CONFIG_HDCD_FILTER 0 +#define CONFIG_HEADPHONE_FILTER 0 #define CONFIG_HIGHPASS_FILTER 0 +#define CONFIG_HIGHSHELF_FILTER 0 #define CONFIG_JOIN_FILTER 0 #define CONFIG_LADSPA_FILTER 0 +#define CONFIG_LOUDNORM_FILTER 0 #define CONFIG_LOWPASS_FILTER 0 +#define CONFIG_LOWSHELF_FILTER 0 +#define CONFIG_LV2_FILTER 0 +#define CONFIG_MCOMPAND_FILTER 0 #define CONFIG_PAN_FILTER 0 #define CONFIG_REPLAYGAIN_FILTER 0 #define CONFIG_RESAMPLE_FILTER 0 +#define CONFIG_RUBBERBAND_FILTER 0 #define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +#define CONFIG_SIDECHAINGATE_FILTER 0 #define CONFIG_SILENCEDETECT_FILTER 0 #define CONFIG_SILENCEREMOVE_FILTER 0 +#define CONFIG_SOFALIZER_FILTER 0 +#define CONFIG_STEREOTOOLS_FILTER 0 +#define CONFIG_STEREOWIDEN_FILTER 0 +#define CONFIG_SUPEREQUALIZER_FILTER 0 +#define CONFIG_SURROUND_FILTER 0 #define CONFIG_TREBLE_FILTER 0 +#define CONFIG_TREMOLO_FILTER 0 +#define CONFIG_VIBRATO_FILTER 0 #define CONFIG_VOLUME_FILTER 0 #define CONFIG_VOLUMEDETECT_FILTER 0 #define CONFIG_AEVALSRC_FILTER 0 +#define CONFIG_ANOISESRC_FILTER 0 #define CONFIG_ANULLSRC_FILTER 0 #define CONFIG_FLITE_FILTER 0 +#define CONFIG_HILBERT_FILTER 0 +#define CONFIG_SINC_FILTER 0 #define CONFIG_SINE_FILTER 0 #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 +#define CONFIG_AMPLIFY_FILTER 0 #define CONFIG_ASS_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 +#define CONFIG_AVGBLUR_OPENCL_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 +#define CONFIG_BM3D_FILTER 0 #define CONFIG_BOXBLUR_FILTER 0 +#define CONFIG_BOXBLUR_OPENCL_FILTER 0 +#define CONFIG_BWDIF_FILTER 0 +#define CONFIG_CHROMAHOLD_FILTER 0 +#define CONFIG_CHROMAKEY_FILTER 0 +#define CONFIG_CHROMASHIFT_FILTER 0 +#define CONFIG_CIESCOPE_FILTER 0 #define CONFIG_CODECVIEW_FILTER 0 #define CONFIG_COLORBALANCE_FILTER 0 #define CONFIG_COLORCHANNELMIXER_FILTER 0 #define CONFIG_COLORKEY_FILTER 0 #define CONFIG_COLORLEVELS_FILTER 0 #define CONFIG_COLORMATRIX_FILTER 0 +#define CONFIG_COLORSPACE_FILTER 0 +#define CONFIG_CONVOLUTION_FILTER 0 +#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 +#define CONFIG_CONVOLVE_FILTER 0 #define CONFIG_COPY_FILTER 0 +#define CONFIG_COREIMAGE_FILTER 0 #define CONFIG_COVER_RECT_FILTER 0 #define CONFIG_CROP_FILTER 0 #define CONFIG_CROPDETECT_FILTER 0 +#define CONFIG_CUE_FILTER 0 #define CONFIG_CURVES_FILTER 0 +#define CONFIG_DATASCOPE_FILTER 0 #define CONFIG_DCTDNOIZ_FILTER 0 #define CONFIG_DEBAND_FILTER 0 +#define CONFIG_DEBLOCK_FILTER 0 #define CONFIG_DECIMATE_FILTER 0 +#define CONFIG_DECONVOLVE_FILTER 0 +#define CONFIG_DEDOT_FILTER 0 #define CONFIG_DEFLATE_FILTER 0 +#define CONFIG_DEFLICKER_FILTER 0 +#define CONFIG_DEINTERLACE_QSV_FILTER 0 +#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 #define CONFIG_DEJUDDER_FILTER 0 #define CONFIG_DELOGO_FILTER 0 +#define CONFIG_DENOISE_VAAPI_FILTER 0 #define CONFIG_DESHAKE_FILTER 0 +#define CONFIG_DESPILL_FILTER 0 #define CONFIG_DETELECINE_FILTER 0 #define CONFIG_DILATION_FILTER 0 +#define CONFIG_DILATION_OPENCL_FILTER 0 +#define CONFIG_DISPLACE_FILTER 0 +#define CONFIG_DOUBLEWEAVE_FILTER 0 #define CONFIG_DRAWBOX_FILTER 0 #define CONFIG_DRAWGRAPH_FILTER 0 #define CONFIG_DRAWGRID_FILTER 0 #define CONFIG_DRAWTEXT_FILTER 0 #define CONFIG_EDGEDETECT_FILTER 0 #define CONFIG_ELBG_FILTER 0 +#define CONFIG_ENTROPY_FILTER 0 #define CONFIG_EQ_FILTER 0 #define CONFIG_EROSION_FILTER 0 +#define CONFIG_EROSION_OPENCL_FILTER 0 #define CONFIG_EXTRACTPLANES_FILTER 0 #define CONFIG_FADE_FILTER 0 +#define CONFIG_FFTDNOIZ_FILTER 0 #define CONFIG_FFTFILT_FILTER 0 #define CONFIG_FIELD_FILTER 0 +#define CONFIG_FIELDHINT_FILTER 0 #define CONFIG_FIELDMATCH_FILTER 0 #define CONFIG_FIELDORDER_FILTER 0 +#define CONFIG_FILLBORDERS_FILTER 0 #define CONFIG_FIND_RECT_FILTER 0 +#define CONFIG_FLOODFILL_FILTER 0 #define CONFIG_FORMAT_FILTER 0 #define CONFIG_FPS_FILTER 0 #define CONFIG_FRAMEPACK_FILTER 0 +#define CONFIG_FRAMERATE_FILTER 0 #define CONFIG_FRAMESTEP_FILTER 0 +#define CONFIG_FREEZEDETECT_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 +#define CONFIG_GRAPHMONITOR_FILTER 0 +#define CONFIG_GREYEDGE_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 #define CONFIG_HFLIP_FILTER 0 #define CONFIG_HISTEQ_FILTER 0 #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 #define CONFIG_HUE_FILTER 0 +#define CONFIG_HWDOWNLOAD_FILTER 0 +#define CONFIG_HWMAP_FILTER 0 +#define CONFIG_HWUPLOAD_FILTER 0 +#define CONFIG_HWUPLOAD_CUDA_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1583,19 +1784,40 @@ #define CONFIG_INTERLEAVE_FILTER 0 #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 -#define CONFIG_LUT3D_FILTER 0 +#define CONFIG_LENSFUN_FILTER 0 +#define CONFIG_LIBVMAF_FILTER 0 +#define CONFIG_LIMITER_FILTER 0 +#define CONFIG_LOOP_FILTER 0 +#define CONFIG_LUMAKEY_FILTER 0 #define CONFIG_LUT_FILTER 0 +#define CONFIG_LUT1D_FILTER 0 +#define CONFIG_LUT2_FILTER 0 +#define CONFIG_LUT3D_FILTER 0 #define CONFIG_LUTRGB_FILTER 0 #define CONFIG_LUTYUV_FILTER 0 +#define CONFIG_MASKEDCLAMP_FILTER 0 +#define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 +#define CONFIG_METADATA_FILTER 0 +#define CONFIG_MIDEQUALIZER_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 +#define CONFIG_MIX_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 +#define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 +#define CONFIG_NORMALIZE_FILTER 0 #define CONFIG_NULL_FILTER 0 +#define CONFIG_OCR_FILTER 0 #define CONFIG_OCV_FILTER 0 +#define CONFIG_OSCILLOSCOPE_FILTER 0 #define CONFIG_OVERLAY_FILTER 0 +#define CONFIG_OVERLAY_OPENCL_FILTER 0 +#define CONFIG_OVERLAY_QSV_FILTER 0 #define CONFIG_OWDENOISE_FILTER 0 #define CONFIG_PAD_FILTER 0 #define CONFIG_PALETTEGEN_FILTER 0 @@ -1604,135 +1826,445 @@ #define CONFIG_PERSPECTIVE_FILTER 0 #define CONFIG_PHASE_FILTER 0 #define CONFIG_PIXDESCTEST_FILTER 0 +#define CONFIG_PIXSCOPE_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREMULTIPLY_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 +#define CONFIG_PREWITT_OPENCL_FILTER 0 +#define CONFIG_PROCAMP_VAAPI_FILTER 0 +#define CONFIG_PROGRAM_OPENCL_FILTER 0 +#define CONFIG_PSEUDOCOLOR_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 #define CONFIG_RANDOM_FILTER 0 +#define CONFIG_READEIA608_FILTER 0 +#define CONFIG_READVITC_FILTER 0 +#define CONFIG_REALTIME_FILTER 0 +#define CONFIG_REMAP_FILTER 0 #define CONFIG_REMOVEGRAIN_FILTER 0 #define CONFIG_REMOVELOGO_FILTER 0 #define CONFIG_REPEATFIELDS_FILTER 0 #define CONFIG_REVERSE_FILTER 0 +#define CONFIG_RGBASHIFT_FILTER 0 +#define CONFIG_ROBERTS_FILTER 0 +#define CONFIG_ROBERTS_OPENCL_FILTER 0 #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 +#define CONFIG_SCALE_CUDA_FILTER 0 +#define CONFIG_SCALE_NPP_FILTER 0 +#define CONFIG_SCALE_QSV_FILTER 0 +#define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 +#define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 #define CONFIG_SEPARATEFIELDS_FILTER 0 #define CONFIG_SETDAR_FILTER 0 #define CONFIG_SETFIELD_FILTER 0 +#define CONFIG_SETPARAMS_FILTER 0 #define CONFIG_SETPTS_FILTER 0 +#define CONFIG_SETRANGE_FILTER 0 #define CONFIG_SETSAR_FILTER 0 #define CONFIG_SETTB_FILTER 0 +#define CONFIG_SHARPNESS_VAAPI_FILTER 0 #define CONFIG_SHOWINFO_FILTER 0 #define CONFIG_SHOWPALETTE_FILTER 0 +#define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 +#define CONFIG_SIGNATURE_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 +#define CONFIG_SOBEL_OPENCL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 +#define CONFIG_SR_FILTER 0 #define CONFIG_SSIM_FILTER 0 #define CONFIG_STEREO3D_FILTER 0 +#define CONFIG_STREAMSELECT_FILTER 0 #define CONFIG_SUBTITLES_FILTER 0 #define CONFIG_SUPER2XSAI_FILTER 0 +#define CONFIG_SWAPRECT_FILTER 0 #define CONFIG_SWAPUV_FILTER 0 #define CONFIG_TBLEND_FILTER 0 #define CONFIG_TELECINE_FILTER 0 +#define CONFIG_THRESHOLD_FILTER 0 #define CONFIG_THUMBNAIL_FILTER 0 +#define CONFIG_THUMBNAIL_CUDA_FILTER 0 #define CONFIG_TILE_FILTER 0 #define CONFIG_TINTERLACE_FILTER 0 +#define CONFIG_TLUT2_FILTER 0 +#define CONFIG_TMIX_FILTER 0 +#define CONFIG_TONEMAP_FILTER 0 +#define CONFIG_TONEMAP_OPENCL_FILTER 0 +#define CONFIG_TPAD_FILTER 0 #define CONFIG_TRANSPOSE_FILTER 0 +#define CONFIG_TRANSPOSE_NPP_FILTER 0 #define CONFIG_TRIM_FILTER 0 +#define CONFIG_UNPREMULTIPLY_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 +#define CONFIG_UNSHARP_OPENCL_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 +#define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 +#define CONFIG_VFRDET_FILTER 0 +#define CONFIG_VIBRANCE_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 #define CONFIG_VIDSTABTRANSFORM_FILTER 0 #define CONFIG_VIGNETTE_FILTER 0 +#define CONFIG_VMAFMOTION_FILTER 0 +#define CONFIG_VPP_QSV_FILTER 0 +#define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 +#define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 +#define CONFIG_XSTACK_FILTER 0 #define CONFIG_YADIF_FILTER 0 +#define CONFIG_YADIF_CUDA_FILTER 0 #define CONFIG_ZMQ_FILTER 0 #define CONFIG_ZOOMPAN_FILTER 0 +#define CONFIG_ZSCALE_FILTER 0 +#define CONFIG_ALLRGB_FILTER 0 +#define CONFIG_ALLYUV_FILTER 0 #define CONFIG_CELLAUTO_FILTER 0 #define CONFIG_COLOR_FILTER 0 +#define CONFIG_COREIMAGESRC_FILTER 0 #define CONFIG_FREI0R_SRC_FILTER 0 #define CONFIG_HALDCLUTSRC_FILTER 0 #define CONFIG_LIFE_FILTER 0 #define CONFIG_MANDELBROT_FILTER 0 #define CONFIG_MPTESTSRC_FILTER 0 #define CONFIG_NULLSRC_FILTER 0 +#define CONFIG_OPENCLSRC_FILTER 0 +#define CONFIG_PAL75BARS_FILTER 0 +#define CONFIG_PAL100BARS_FILTER 0 #define CONFIG_RGBTESTSRC_FILTER 0 #define CONFIG_SMPTEBARS_FILTER 0 #define CONFIG_SMPTEHDBARS_FILTER 0 #define CONFIG_TESTSRC_FILTER 0 +#define CONFIG_TESTSRC2_FILTER 0 +#define CONFIG_YUVTESTSRC_FILTER 0 #define CONFIG_NULLSINK_FILTER 0 +#define CONFIG_ABITSCOPE_FILTER 0 #define CONFIG_ADRAWGRAPH_FILTER 0 +#define CONFIG_AGRAPHMONITOR_FILTER 0 +#define CONFIG_AHISTOGRAM_FILTER 0 +#define CONFIG_APHASEMETER_FILTER 0 #define CONFIG_AVECTORSCOPE_FILTER 0 #define CONFIG_CONCAT_FILTER 0 #define CONFIG_SHOWCQT_FILTER 0 +#define CONFIG_SHOWFREQS_FILTER 0 #define CONFIG_SHOWSPECTRUM_FILTER 0 +#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 #define CONFIG_SHOWVOLUME_FILTER 0 #define CONFIG_SHOWWAVES_FILTER 0 #define CONFIG_SHOWWAVESPIC_FILTER 0 +#define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VDPAU_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_MMAL_HWACCEL 0 -#define CONFIG_H264_QSV_HWACCEL 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDA_HWACCEL 0 -#define CONFIG_H264_VDA_OLD_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_QSV_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_QSV_HWACCEL 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VC1_QSV_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_BKTR_INDEV 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_DV1394_INDEV 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_LAVFI_INDEV 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_QTKIT_INDEV 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_X11GRAB_INDEV 0 -#define CONFIG_X11GRAB_XCB_INDEV 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_AFIFO_FILTER 0 +#define CONFIG_FIFO_FILTER 0 +#define CONFIG_AA_DEMUXER 1 +#define CONFIG_AAC_DEMUXER 1 +#define CONFIG_AC3_DEMUXER 1 +#define CONFIG_ACM_DEMUXER 1 +#define CONFIG_ACT_DEMUXER 1 +#define CONFIG_ADF_DEMUXER 1 +#define CONFIG_ADP_DEMUXER 1 +#define CONFIG_ADS_DEMUXER 1 +#define CONFIG_ADX_DEMUXER 1 +#define CONFIG_AEA_DEMUXER 1 +#define CONFIG_AFC_DEMUXER 1 +#define CONFIG_AIFF_DEMUXER 1 +#define CONFIG_AIX_DEMUXER 1 +#define CONFIG_AMR_DEMUXER 1 +#define CONFIG_AMRNB_DEMUXER 1 +#define CONFIG_AMRWB_DEMUXER 1 +#define CONFIG_ANM_DEMUXER 1 +#define CONFIG_APC_DEMUXER 1 +#define CONFIG_APE_DEMUXER 1 +#define CONFIG_APNG_DEMUXER 1 +#define CONFIG_APTX_DEMUXER 1 +#define CONFIG_APTX_HD_DEMUXER 1 +#define CONFIG_AQTITLE_DEMUXER 1 +#define CONFIG_ASF_DEMUXER 1 +#define CONFIG_ASF_O_DEMUXER 1 +#define CONFIG_ASS_DEMUXER 1 +#define CONFIG_AST_DEMUXER 1 +#define CONFIG_AU_DEMUXER 1 +#define CONFIG_AVI_DEMUXER 1 +#define CONFIG_AVISYNTH_DEMUXER 0 +#define CONFIG_AVR_DEMUXER 1 +#define CONFIG_AVS_DEMUXER 1 +#define CONFIG_AVS2_DEMUXER 1 +#define CONFIG_BETHSOFTVID_DEMUXER 1 +#define CONFIG_BFI_DEMUXER 1 +#define CONFIG_BINTEXT_DEMUXER 1 +#define CONFIG_BINK_DEMUXER 1 +#define CONFIG_BIT_DEMUXER 1 +#define CONFIG_BMV_DEMUXER 1 +#define CONFIG_BFSTM_DEMUXER 1 +#define CONFIG_BRSTM_DEMUXER 1 +#define CONFIG_BOA_DEMUXER 1 +#define CONFIG_C93_DEMUXER 1 +#define CONFIG_CAF_DEMUXER 1 +#define CONFIG_CAVSVIDEO_DEMUXER 1 +#define CONFIG_CDG_DEMUXER 1 +#define CONFIG_CDXL_DEMUXER 1 +#define CONFIG_CINE_DEMUXER 1 +#define CONFIG_CODEC2_DEMUXER 1 +#define CONFIG_CODEC2RAW_DEMUXER 1 +#define CONFIG_CONCAT_DEMUXER 1 +#define CONFIG_DASH_DEMUXER 0 +#define CONFIG_DATA_DEMUXER 1 +#define CONFIG_DAUD_DEMUXER 1 +#define CONFIG_DCSTR_DEMUXER 1 +#define CONFIG_DFA_DEMUXER 1 +#define CONFIG_DIRAC_DEMUXER 1 +#define CONFIG_DNXHD_DEMUXER 1 +#define CONFIG_DSF_DEMUXER 1 +#define CONFIG_DSICIN_DEMUXER 1 +#define CONFIG_DSS_DEMUXER 1 +#define CONFIG_DTS_DEMUXER 1 +#define CONFIG_DTSHD_DEMUXER 1 +#define CONFIG_DV_DEMUXER 1 +#define CONFIG_DVBSUB_DEMUXER 1 +#define CONFIG_DVBTXT_DEMUXER 1 +#define CONFIG_DXA_DEMUXER 1 +#define CONFIG_EA_DEMUXER 1 +#define CONFIG_EA_CDATA_DEMUXER 1 +#define CONFIG_EAC3_DEMUXER 1 +#define CONFIG_EPAF_DEMUXER 1 +#define CONFIG_FFMETADATA_DEMUXER 1 +#define CONFIG_FILMSTRIP_DEMUXER 1 +#define CONFIG_FITS_DEMUXER 1 +#define CONFIG_FLAC_DEMUXER 1 +#define CONFIG_FLIC_DEMUXER 1 +#define CONFIG_FLV_DEMUXER 1 +#define CONFIG_LIVE_FLV_DEMUXER 1 +#define CONFIG_FOURXM_DEMUXER 1 +#define CONFIG_FRM_DEMUXER 1 +#define CONFIG_FSB_DEMUXER 1 +#define CONFIG_G722_DEMUXER 1 +#define CONFIG_G723_1_DEMUXER 1 +#define CONFIG_G726_DEMUXER 1 +#define CONFIG_G726LE_DEMUXER 1 +#define CONFIG_G729_DEMUXER 1 +#define CONFIG_GDV_DEMUXER 1 +#define CONFIG_GENH_DEMUXER 1 +#define CONFIG_GIF_DEMUXER 1 +#define CONFIG_GSM_DEMUXER 1 +#define CONFIG_GXF_DEMUXER 1 +#define CONFIG_H261_DEMUXER 1 +#define CONFIG_H263_DEMUXER 1 +#define CONFIG_H264_DEMUXER 1 +#define CONFIG_HEVC_DEMUXER 1 +#define CONFIG_HLS_DEMUXER 1 +#define CONFIG_HNM_DEMUXER 1 +#define CONFIG_ICO_DEMUXER 1 +#define CONFIG_IDCIN_DEMUXER 1 +#define CONFIG_IDF_DEMUXER 1 +#define CONFIG_IFF_DEMUXER 1 +#define CONFIG_ILBC_DEMUXER 1 +#define CONFIG_IMAGE2_DEMUXER 1 +#define CONFIG_IMAGE2PIPE_DEMUXER 1 +#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 +#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 +#define CONFIG_INGENIENT_DEMUXER 1 +#define CONFIG_IPMOVIE_DEMUXER 1 +#define CONFIG_IRCAM_DEMUXER 1 +#define CONFIG_ISS_DEMUXER 1 +#define CONFIG_IV8_DEMUXER 1 +#define CONFIG_IVF_DEMUXER 1 +#define CONFIG_IVR_DEMUXER 1 +#define CONFIG_JACOSUB_DEMUXER 1 +#define CONFIG_JV_DEMUXER 1 +#define CONFIG_LMLM4_DEMUXER 1 +#define CONFIG_LOAS_DEMUXER 1 +#define CONFIG_LRC_DEMUXER 1 +#define CONFIG_LVF_DEMUXER 1 +#define CONFIG_LXF_DEMUXER 1 +#define CONFIG_M4V_DEMUXER 1 +#define CONFIG_MATROSKA_DEMUXER 1 +#define CONFIG_MGSTS_DEMUXER 1 +#define CONFIG_MICRODVD_DEMUXER 1 +#define CONFIG_MJPEG_DEMUXER 1 +#define CONFIG_MJPEG_2000_DEMUXER 1 +#define CONFIG_MLP_DEMUXER 1 +#define CONFIG_MLV_DEMUXER 1 +#define CONFIG_MM_DEMUXER 1 +#define CONFIG_MMF_DEMUXER 1 +#define CONFIG_MOV_DEMUXER 1 +#define CONFIG_MP3_DEMUXER 1 +#define CONFIG_MPC_DEMUXER 1 +#define CONFIG_MPC8_DEMUXER 1 +#define CONFIG_MPEGPS_DEMUXER 1 +#define CONFIG_MPEGTS_DEMUXER 1 +#define CONFIG_MPEGTSRAW_DEMUXER 1 +#define CONFIG_MPEGVIDEO_DEMUXER 1 +#define CONFIG_MPJPEG_DEMUXER 1 +#define CONFIG_MPL2_DEMUXER 1 +#define CONFIG_MPSUB_DEMUXER 1 +#define CONFIG_MSF_DEMUXER 1 +#define CONFIG_MSNWC_TCP_DEMUXER 1 +#define CONFIG_MTAF_DEMUXER 1 +#define CONFIG_MTV_DEMUXER 1 +#define CONFIG_MUSX_DEMUXER 1 +#define CONFIG_MV_DEMUXER 1 +#define CONFIG_MVI_DEMUXER 1 +#define CONFIG_MXF_DEMUXER 1 +#define CONFIG_MXG_DEMUXER 1 +#define CONFIG_NC_DEMUXER 1 +#define CONFIG_NISTSPHERE_DEMUXER 1 +#define CONFIG_NSP_DEMUXER 1 +#define CONFIG_NSV_DEMUXER 1 +#define CONFIG_NUT_DEMUXER 1 +#define CONFIG_NUV_DEMUXER 1 +#define CONFIG_OGG_DEMUXER 1 +#define CONFIG_OMA_DEMUXER 1 +#define CONFIG_PAF_DEMUXER 1 +#define CONFIG_PCM_ALAW_DEMUXER 1 +#define CONFIG_PCM_MULAW_DEMUXER 1 +#define CONFIG_PCM_VIDC_DEMUXER 1 +#define CONFIG_PCM_F64BE_DEMUXER 1 +#define CONFIG_PCM_F64LE_DEMUXER 1 +#define CONFIG_PCM_F32BE_DEMUXER 1 +#define CONFIG_PCM_F32LE_DEMUXER 1 +#define CONFIG_PCM_S32BE_DEMUXER 1 +#define CONFIG_PCM_S32LE_DEMUXER 1 +#define CONFIG_PCM_S24BE_DEMUXER 1 +#define CONFIG_PCM_S24LE_DEMUXER 1 +#define CONFIG_PCM_S16BE_DEMUXER 1 +#define CONFIG_PCM_S16LE_DEMUXER 1 +#define CONFIG_PCM_S8_DEMUXER 1 +#define CONFIG_PCM_U32BE_DEMUXER 1 +#define CONFIG_PCM_U32LE_DEMUXER 1 +#define CONFIG_PCM_U24BE_DEMUXER 1 +#define CONFIG_PCM_U24LE_DEMUXER 1 +#define CONFIG_PCM_U16BE_DEMUXER 1 +#define CONFIG_PCM_U16LE_DEMUXER 1 +#define CONFIG_PCM_U8_DEMUXER 1 +#define CONFIG_PJS_DEMUXER 1 +#define CONFIG_PMP_DEMUXER 1 +#define CONFIG_PVA_DEMUXER 1 +#define CONFIG_PVF_DEMUXER 1 +#define CONFIG_QCP_DEMUXER 1 +#define CONFIG_R3D_DEMUXER 1 +#define CONFIG_RAWVIDEO_DEMUXER 1 +#define CONFIG_REALTEXT_DEMUXER 1 +#define CONFIG_REDSPARK_DEMUXER 1 +#define CONFIG_RL2_DEMUXER 1 +#define CONFIG_RM_DEMUXER 1 +#define CONFIG_ROQ_DEMUXER 1 +#define CONFIG_RPL_DEMUXER 1 +#define CONFIG_RSD_DEMUXER 1 +#define CONFIG_RSO_DEMUXER 1 +#define CONFIG_RTP_DEMUXER 0 +#define CONFIG_RTSP_DEMUXER 0 +#define CONFIG_S337M_DEMUXER 1 +#define CONFIG_SAMI_DEMUXER 1 +#define CONFIG_SAP_DEMUXER 0 +#define CONFIG_SBC_DEMUXER 1 +#define CONFIG_SBG_DEMUXER 1 +#define CONFIG_SCC_DEMUXER 1 +#define CONFIG_SDP_DEMUXER 0 +#define CONFIG_SDR2_DEMUXER 1 +#define CONFIG_SDS_DEMUXER 1 +#define CONFIG_SDX_DEMUXER 1 +#define CONFIG_SEGAFILM_DEMUXER 1 +#define CONFIG_SER_DEMUXER 1 +#define CONFIG_SHORTEN_DEMUXER 1 +#define CONFIG_SIFF_DEMUXER 1 +#define CONFIG_SLN_DEMUXER 1 +#define CONFIG_SMACKER_DEMUXER 1 +#define CONFIG_SMJPEG_DEMUXER 1 +#define CONFIG_SMUSH_DEMUXER 1 +#define CONFIG_SOL_DEMUXER 1 +#define CONFIG_SOX_DEMUXER 1 +#define CONFIG_SPDIF_DEMUXER 1 +#define CONFIG_SRT_DEMUXER 1 +#define CONFIG_STR_DEMUXER 1 +#define CONFIG_STL_DEMUXER 1 +#define CONFIG_SUBVIEWER1_DEMUXER 1 +#define CONFIG_SUBVIEWER_DEMUXER 1 +#define CONFIG_SUP_DEMUXER 1 +#define CONFIG_SVAG_DEMUXER 1 +#define CONFIG_SWF_DEMUXER 1 +#define CONFIG_TAK_DEMUXER 1 +#define CONFIG_TEDCAPTIONS_DEMUXER 1 +#define CONFIG_THP_DEMUXER 1 +#define CONFIG_THREEDOSTR_DEMUXER 1 +#define CONFIG_TIERTEXSEQ_DEMUXER 1 +#define CONFIG_TMV_DEMUXER 1 +#define CONFIG_TRUEHD_DEMUXER 1 +#define CONFIG_TTA_DEMUXER 1 +#define CONFIG_TXD_DEMUXER 1 +#define CONFIG_TTY_DEMUXER 1 +#define CONFIG_TY_DEMUXER 1 +#define CONFIG_V210_DEMUXER 1 +#define CONFIG_V210X_DEMUXER 1 +#define CONFIG_VAG_DEMUXER 1 +#define CONFIG_VC1_DEMUXER 1 +#define CONFIG_VC1T_DEMUXER 1 +#define CONFIG_VIVO_DEMUXER 1 +#define CONFIG_VMD_DEMUXER 1 +#define CONFIG_VOBSUB_DEMUXER 1 +#define CONFIG_VOC_DEMUXER 1 +#define CONFIG_VPK_DEMUXER 1 +#define CONFIG_VPLAYER_DEMUXER 1 +#define CONFIG_VQF_DEMUXER 1 +#define CONFIG_W64_DEMUXER 1 +#define CONFIG_WAV_DEMUXER 1 +#define CONFIG_WC3_DEMUXER 1 +#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 +#define CONFIG_WEBVTT_DEMUXER 1 +#define CONFIG_WSAUD_DEMUXER 1 +#define CONFIG_WSD_DEMUXER 1 +#define CONFIG_WSVQA_DEMUXER 1 +#define CONFIG_WTV_DEMUXER 1 +#define CONFIG_WVE_DEMUXER 1 +#define CONFIG_WV_DEMUXER 1 +#define CONFIG_XA_DEMUXER 1 +#define CONFIG_XBIN_DEMUXER 1 +#define CONFIG_XMV_DEMUXER 1 +#define CONFIG_XVAG_DEMUXER 1 +#define CONFIG_XWMA_DEMUXER 1 +#define CONFIG_YOP_DEMUXER 1 +#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 +#define CONFIG_LIBGME_DEMUXER 0 +#define CONFIG_LIBMODPLUG_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 +#define CONFIG_VAPOURSYNTH_DEMUXER 0 #define CONFIG_A64_MUXER 0 #define CONFIG_AC3_MUXER 0 #define CONFIG_ADTS_MUXER 0 @@ -1740,6 +2272,8 @@ #define CONFIG_AIFF_MUXER 0 #define CONFIG_AMR_MUXER 0 #define CONFIG_APNG_MUXER 0 +#define CONFIG_APTX_MUXER 0 +#define CONFIG_APTX_HD_MUXER 0 #define CONFIG_ASF_MUXER 0 #define CONFIG_ASS_MUXER 0 #define CONFIG_AST_MUXER 0 @@ -1747,9 +2281,12 @@ #define CONFIG_AU_MUXER 0 #define CONFIG_AVI_MUXER 0 #define CONFIG_AVM2_MUXER 0 +#define CONFIG_AVS2_MUXER 0 #define CONFIG_BIT_MUXER 0 #define CONFIG_CAF_MUXER 0 #define CONFIG_CAVSVIDEO_MUXER 0 +#define CONFIG_CODEC2_MUXER 0 +#define CONFIG_CODEC2RAW_MUXER 0 #define CONFIG_CRC_MUXER 0 #define CONFIG_DASH_MUXER 0 #define CONFIG_DATA_MUXER 0 @@ -1760,20 +2297,27 @@ #define CONFIG_DV_MUXER 0 #define CONFIG_EAC3_MUXER 0 #define CONFIG_F4V_MUXER 0 -#define CONFIG_FFM_MUXER 0 #define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 +#define CONFIG_FIFO_TEST_MUXER 0 #define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 #define CONFIG_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 #define CONFIG_FRAMECRC_MUXER 0 +#define CONFIG_FRAMEHASH_MUXER 0 #define CONFIG_FRAMEMD5_MUXER 0 #define CONFIG_G722_MUXER 0 #define CONFIG_G723_1_MUXER 0 +#define CONFIG_G726_MUXER 0 +#define CONFIG_G726LE_MUXER 0 #define CONFIG_GIF_MUXER 0 +#define CONFIG_GSM_MUXER 0 #define CONFIG_GXF_MUXER 0 #define CONFIG_H261_MUXER 0 #define CONFIG_H263_MUXER 0 #define CONFIG_H264_MUXER 0 +#define CONFIG_HASH_MUXER 0 #define CONFIG_HDS_MUXER 0 #define CONFIG_HEVC_MUXER 0 #define CONFIG_HLS_MUXER 0 @@ -1816,10 +2360,12 @@ #define CONFIG_NUT_MUXER 0 #define CONFIG_OGA_MUXER 0 #define CONFIG_OGG_MUXER 0 +#define CONFIG_OGV_MUXER 0 #define CONFIG_OMA_MUXER 0 #define CONFIG_OPUS_MUXER 0 #define CONFIG_PCM_ALAW_MUXER 0 #define CONFIG_PCM_MULAW_MUXER 0 +#define CONFIG_PCM_VIDC_MUXER 0 #define CONFIG_PCM_F64BE_MUXER 0 #define CONFIG_PCM_F64LE_MUXER 0 #define CONFIG_PCM_F32BE_MUXER 0 @@ -1847,6 +2393,9 @@ #define CONFIG_RTP_MPEGTS_MUXER 0 #define CONFIG_RTSP_MUXER 0 #define CONFIG_SAP_MUXER 0 +#define CONFIG_SBC_MUXER 0 +#define CONFIG_SCC_MUXER 0 +#define CONFIG_SEGAFILM_MUXER 0 #define CONFIG_SEGMENT_MUXER 0 #define CONFIG_STREAM_SEGMENT_MUXER 0 #define CONFIG_SINGLEJPEG_MUXER 0 @@ -1856,12 +2405,14 @@ #define CONFIG_SPX_MUXER 0 #define CONFIG_SPDIF_MUXER 0 #define CONFIG_SRT_MUXER 0 +#define CONFIG_SUP_MUXER 0 #define CONFIG_SWF_MUXER 0 #define CONFIG_TEE_MUXER 0 #define CONFIG_TG2_MUXER 0 #define CONFIG_TGP_MUXER 0 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0 #define CONFIG_TRUEHD_MUXER 0 +#define CONFIG_TTA_MUXER 0 #define CONFIG_UNCODEDFRAMECRC_MUXER 0 #define CONFIG_VC1_MUXER 0 #define CONFIG_VC1T_MUXER 0 @@ -1876,55 +2427,8 @@ #define CONFIG_WTV_MUXER 0 #define CONFIG_WV_MUXER 0 #define CONFIG_YUV4MPEGPIPE_MUXER 0 -#define CONFIG_LIBNUT_MUXER 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_V4L2_OUTDEV 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_AAC_PARSER 1 -#define CONFIG_AAC_LATM_PARSER 1 -#define CONFIG_AC3_PARSER 1 -#define CONFIG_ADX_PARSER 1 -#define CONFIG_BMP_PARSER 1 -#define CONFIG_CAVSVIDEO_PARSER 1 -#define CONFIG_COOK_PARSER 1 -#define CONFIG_DCA_PARSER 1 -#define CONFIG_DIRAC_PARSER 1 -#define CONFIG_DNXHD_PARSER 1 -#define CONFIG_DPX_PARSER 1 -#define CONFIG_DVBSUB_PARSER 1 -#define CONFIG_DVDSUB_PARSER 1 -#define CONFIG_DVD_NAV_PARSER 1 -#define CONFIG_FLAC_PARSER 1 -#define CONFIG_GSM_PARSER 1 -#define CONFIG_H261_PARSER 1 -#define CONFIG_H263_PARSER 1 -#define CONFIG_H264_PARSER 1 -#define CONFIG_HEVC_PARSER 1 -#define CONFIG_MJPEG_PARSER 1 -#define CONFIG_MLP_PARSER 1 -#define CONFIG_MPEG4VIDEO_PARSER 1 -#define CONFIG_MPEGAUDIO_PARSER 1 -#define CONFIG_MPEGVIDEO_PARSER 1 -#define CONFIG_OPUS_PARSER 1 -#define CONFIG_PNG_PARSER 1 -#define CONFIG_PNM_PARSER 1 -#define CONFIG_RV30_PARSER 1 -#define CONFIG_RV40_PARSER 1 -#define CONFIG_TAK_PARSER 1 -#define CONFIG_VC1_PARSER 1 -#define CONFIG_VORBIS_PARSER 1 -#define CONFIG_VP3_PARSER 1 -#define CONFIG_VP8_PARSER 1 -#define CONFIG_VP9_PARSER 1 -#define CONFIG_ASYNC_PROTOCOL 0 +#define CONFIG_CHROMAPRINT_MUXER 0 +#define CONFIG_ASYNC_PROTOCOL 1 #define CONFIG_BLURAY_PROTOCOL 0 #define CONFIG_CACHE_PROTOCOL 1 #define CONFIG_CONCAT_PROTOCOL 1 @@ -1944,6 +2448,7 @@ #define CONFIG_MMST_PROTOCOL 0 #define CONFIG_MD5_PROTOCOL 1 #define CONFIG_PIPE_PROTOCOL 1 +#define CONFIG_PROMPEG_PROTOCOL 1 #define CONFIG_RTMP_PROTOCOL 0 #define CONFIG_RTMPE_PROTOCOL 0 #define CONFIG_RTMPS_PROTOCOL 0 @@ -1954,10 +2459,9 @@ #define CONFIG_SCTP_PROTOCOL 0 #define CONFIG_SRTP_PROTOCOL 0 #define CONFIG_SUBFILE_PROTOCOL 1 +#define CONFIG_TEE_PROTOCOL 1 #define CONFIG_TCP_PROTOCOL 0 -#define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 -#define CONFIG_TLS_GNUTLS_PROTOCOL 0 -#define CONFIG_TLS_OPENSSL_PROTOCOL 0 +#define CONFIG_TLS_PROTOCOL 0 #define CONFIG_UDP_PROTOCOL 0 #define CONFIG_UDPLITE_PROTOCOL 0 #define CONFIG_UNIX_PROTOCOL 0 @@ -1966,6 +2470,7 @@ #define CONFIG_LIBRTMPS_PROTOCOL 0 #define CONFIG_LIBRTMPT_PROTOCOL 0 #define CONFIG_LIBRTMPTE_PROTOCOL 0 +#define CONFIG_LIBSRT_PROTOCOL 0 #define CONFIG_LIBSSH_PROTOCOL 0 #define CONFIG_LIBSMBCLIENT_PROTOCOL 0 #endif /* FFMPEG_CONFIG_H */ diff --git a/build/ffmpeg/config-x86.asm b/build/ffmpeg/config-x86.asm old mode 100644 new mode 100755 index 37e33ec59..5475555d4 --- a/build/ffmpeg/config-x86.asm +++ b/build/ffmpeg/config-x86.asm @@ -1,3 +1,4 @@ +; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -36,10 +37,12 @@ %define HAVE_POWER8 0 %define HAVE_PPC4XX 0 %define HAVE_VSX 0 +%define HAVE_AESNI 1 %define HAVE_AMD3DNOW 1 %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 +%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -56,12 +59,14 @@ %define HAVE_MIPSFPU 0 %define HAVE_MIPS32R2 0 %define HAVE_MIPS32R5 0 +%define HAVE_MIPS64R2 0 +%define HAVE_MIPS32R6 0 %define HAVE_MIPS64R6 0 -%define HAVE_MIPSDSPR1 0 +%define HAVE_MIPSDSP 0 %define HAVE_MIPSDSPR2 0 %define HAVE_MSA 0 -%define HAVE_LOONGSON2 1 -%define HAVE_LOONGSON3 1 +%define HAVE_LOONGSON2 0 +%define HAVE_LOONGSON3 0 %define HAVE_MMI 0 %define HAVE_ARMV5TE_EXTERNAL 0 %define HAVE_ARMV6_EXTERNAL 0 @@ -77,10 +82,12 @@ %define HAVE_POWER8_EXTERNAL 0 %define HAVE_PPC4XX_EXTERNAL 0 %define HAVE_VSX_EXTERNAL 0 +%define HAVE_AESNI_EXTERNAL 1 %define HAVE_AMD3DNOW_EXTERNAL 1 %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 0 +%define HAVE_AVX512_EXTERNAL 0 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -97,8 +104,10 @@ %define HAVE_MIPSFPU_EXTERNAL 0 %define HAVE_MIPS32R2_EXTERNAL 0 %define HAVE_MIPS32R5_EXTERNAL 0 +%define HAVE_MIPS64R2_EXTERNAL 0 +%define HAVE_MIPS32R6_EXTERNAL 0 %define HAVE_MIPS64R6_EXTERNAL 0 -%define HAVE_MIPSDSPR1_EXTERNAL 0 +%define HAVE_MIPSDSP_EXTERNAL 0 %define HAVE_MIPSDSPR2_EXTERNAL 0 %define HAVE_MSA_EXTERNAL 0 %define HAVE_LOONGSON2_EXTERNAL 0 @@ -118,10 +127,12 @@ %define HAVE_POWER8_INLINE 0 %define HAVE_PPC4XX_INLINE 0 %define HAVE_VSX_INLINE 0 +%define HAVE_AESNI_INLINE 0 %define HAVE_AMD3DNOW_INLINE 0 %define HAVE_AMD3DNOWEXT_INLINE 0 %define HAVE_AVX_INLINE 0 %define HAVE_AVX2_INLINE 0 +%define HAVE_AVX512_INLINE 0 %define HAVE_FMA3_INLINE 0 %define HAVE_FMA4_INLINE 0 %define HAVE_MMX_INLINE 0 @@ -138,8 +149,10 @@ %define HAVE_MIPSFPU_INLINE 0 %define HAVE_MIPS32R2_INLINE 0 %define HAVE_MIPS32R5_INLINE 0 +%define HAVE_MIPS64R2_INLINE 0 +%define HAVE_MIPS32R6_INLINE 0 %define HAVE_MIPS64R6_INLINE 0 -%define HAVE_MIPSDSPR1_INLINE 0 +%define HAVE_MIPSDSP_INLINE 0 %define HAVE_MIPSDSPR2_INLINE 0 %define HAVE_MSA_INLINE 0 %define HAVE_LOONGSON2_INLINE 0 @@ -149,55 +162,49 @@ %define HAVE_FAST_64BIT 0 %define HAVE_FAST_CLZ 1 %define HAVE_FAST_CMOV 0 -%define HAVE_LOCAL_ALIGNED_8 1 -%define HAVE_LOCAL_ALIGNED_16 1 -%define HAVE_LOCAL_ALIGNED_32 1 +%define HAVE_LOCAL_ALIGNED 1 %define HAVE_SIMD_ALIGN_16 1 -%define HAVE_ATOMICS_GCC 0 -%define HAVE_ATOMICS_SUNCC 0 -%define HAVE_ATOMICS_WIN32 1 +%define HAVE_SIMD_ALIGN_32 1 +%define HAVE_SIMD_ALIGN_64 1 %define HAVE_ATOMIC_CAS_PTR 0 -%define HAVE_ATOMIC_COMPARE_EXCHANGE 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 1 %define HAVE_MM_EMPTY 1 %define HAVE_RDTSC 1 -%define HAVE_SARESTART 0 +%define HAVE_SEM_TIMEDWAIT 0 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 +%define HAVE_CABS 0 +%define HAVE_CEXP 0 %define HAVE_INLINE_ASM 0 %define HAVE_SYMVER 0 -%define HAVE_YASM 1 +%define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 -%define HAVE_ALSA_ASOUNDLIB_H 0 -%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 %define HAVE_ASM_TYPES_H 0 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +%define HAVE_CUDA_H 0 +%define HAVE_DISPATCH_DISPATCH_H 0 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 %define HAVE_DEV_IC_BT8XX_H 0 %define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 1 -%define HAVE_DLFCN_H 0 -%define HAVE_D3D11_H 1 +%define HAVE_DIRENT_H 0 +%define HAVE_DXGIDEBUG_H 1 %define HAVE_DXVA_H 1 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 1 -%define HAVE_MACH_MACH_TIME_H 0 +%define HAVE_LINUX_PERF_EVENT_H 0 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_MALLOC_H 1 -%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +%define HAVE_OPENCV2_CORE_CORE_C_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 0 -%define HAVE_SNDIO_H 0 -%define HAVE_SOUNDCARD_H 0 -%define HAVE_SYS_MMAN_H 0 %define HAVE_SYS_PARAM_H 0 %define HAVE_SYS_RESOURCE_H 0 %define HAVE_SYS_SELECT_H 0 @@ -222,6 +229,8 @@ %define HAVE_EXP2 1 %define HAVE_EXP2F 1 %define HAVE_EXPF 1 +%define HAVE_HYPOT 1 +%define HAVE_ISFINITE 1 %define HAVE_ISINF 1 %define HAVE_ISNAN 1 %define HAVE_LDEXPF 1 @@ -239,17 +248,20 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 +%define HAVE_DOS_PATHS 1 +%define HAVE_LIBC_MSVCRT 1 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 +%define HAVE_SECTION_DATA_REL_RO 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 1 +%define HAVE_ARC4RANDOM 0 %define HAVE_CLOCK_GETTIME 0 %define HAVE_CLOSESOCKET 0 %define HAVE_COMMANDLINETOARGVW 1 -%define HAVE_COTASKMEMFREE 1 -%define HAVE_CRYPTGENRANDOM 1 -%define HAVE_DLOPEN 0 %define HAVE_FCNTL 0 -%define HAVE_FLT_LIM 1 -%define HAVE_FORK 0 %define HAVE_GETADDRINFO 0 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 0 @@ -257,7 +269,6 @@ %define HAVE_GETPROCESSMEMORYINFO 1 %define HAVE_GETPROCESSTIMES 1 %define HAVE_GETRUSAGE 0 -%define HAVE_GETSERVBYPORT 0 %define HAVE_GETSYSTEMTIMEASFILETIME 1 %define HAVE_GETTIMEOFDAY 0 %define HAVE_GLOB 0 @@ -265,9 +276,9 @@ %define HAVE_GMTIME_R 0 %define HAVE_INET_ATON 0 %define HAVE_ISATTY 1 -%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 %define HAVE_LOCALTIME_R 0 +%define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 %define HAVE_MAPVIEWOFFILE 1 @@ -280,6 +291,7 @@ %define HAVE_POSIX_MEMALIGN 0 %define HAVE_PTHREAD_CANCEL 0 %define HAVE_SCHED_GETAFFINITY 0 +%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 1 %define HAVE_SETCONSOLECTRLHANDLER 1 %define HAVE_SETMODE 1 @@ -289,25 +301,31 @@ %define HAVE_SYSCONF 0 %define HAVE_SYSCTL 0 %define HAVE_USLEEP 0 +%define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 1 %define HAVE_WGLGETPROCADDRESS 0 +%define HAVE_BCRYPT 1 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 0 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 1 +%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 +%define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 -%define HAVE_ATTRIBUTE_MAY_ALIAS 0 -%define HAVE_ATTRIBUTE_PACKED 0 +%define HAVE_BLOCKS_EXTENSION 0 %define HAVE_EBP_AVAILABLE 0 %define HAVE_EBX_AVAILABLE 0 %define HAVE_GNU_AS 0 %define HAVE_GNU_WINDRES 0 %define HAVE_IBM_ASM 0 +%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 %define HAVE_INLINE_ASM_LABELS 0 %define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 %define HAVE_PRAGMA_DEPRECATED 1 %define HAVE_RSYNC_CONTIMEOUT 0 %define HAVE_SYMVER_ASM_LABEL 0 @@ -315,13 +333,13 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 0 -%define HAVE_CONDITION_VARIABLE_PTR 1 +%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 0 %define HAVE_STRUCT_ADDRINFO 0 -%define HAVE_STRUCT_DCADEC_EXSS_INFO_MATRIX_ENCODING 0 %define HAVE_STRUCT_GROUP_SOURCE_REQ 0 %define HAVE_STRUCT_IP_MREQ_SOURCE 0 %define HAVE_STRUCT_IPV6_MREQ 0 +%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 %define HAVE_STRUCT_POLLFD 0 %define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 @@ -330,48 +348,35 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 0 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -%define HAVE_ATOMICS_NATIVE 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_DXVA2API_COBJ 1 -%define HAVE_DXVA2_LIB 0 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_LIBDC1394_1 0 -%define HAVE_LIBDC1394_2 0 %define HAVE_MAKEINFO 1 %define HAVE_MAKEINFO_HTML 0 +%define HAVE_OPENCL_D3D11 0 +%define HAVE_OPENCL_DRM_ARM 0 +%define HAVE_OPENCL_DRM_BEIGNET 0 +%define HAVE_OPENCL_DXVA2 0 +%define HAVE_OPENCL_VAAPI_BEIGNET 0 +%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 0 -%define HAVE_SDL 0 -%define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 -%define HAVE_THREADS 1 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 -%define HAVE_XLIB 0 -%define CONFIG_BSFS 1 -%define CONFIG_DECODERS 1 -%define CONFIG_DEMUXERS 1 -%define CONFIG_ENCODERS 0 -%define CONFIG_FILTERS 0 -%define CONFIG_HWACCELS 0 -%define CONFIG_INDEVS 0 -%define CONFIG_MUXERS 0 -%define CONFIG_OUTDEVS 0 -%define CONFIG_PARSERS 1 -%define CONFIG_PROTOCOLS 1 %define CONFIG_DOC 0 %define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 0 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 1 +%define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 %define CONFIG_AVIO_READING_EXAMPLE 1 -%define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 -%define CONFIG_DECODING_ENCODING_EXAMPLE 1 +%define CONFIG_DECODE_AUDIO_EXAMPLE 1 +%define CONFIG_DECODE_VIDEO_EXAMPLE 1 %define CONFIG_DEMUXING_DECODING_EXAMPLE 1 +%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 +%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 %define CONFIG_EXTRACT_MVS_EXAMPLE 1 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 +%define CONFIG_HW_DECODE_EXAMPLE 1 %define CONFIG_METADATA_EXAMPLE 1 %define CONFIG_MUXING_EXAMPLE 1 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -380,25 +385,48 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 1 %define CONFIG_TRANSCODE_AAC_EXAMPLE 1 %define CONFIG_TRANSCODING_EXAMPLE 0 +%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 +%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 %define CONFIG_AVISYNTH 0 -%define CONFIG_BZLIB 0 -%define CONFIG_CRYSTALHD 0 -%define CONFIG_DECKLINK 0 %define CONFIG_FREI0R 0 +%define CONFIG_LIBCDIO 0 +%define CONFIG_LIBDAVS2 0 +%define CONFIG_LIBRUBBERBAND 0 +%define CONFIG_LIBVIDSTAB 0 +%define CONFIG_LIBX264 0 +%define CONFIG_LIBX265 0 +%define CONFIG_LIBXAVS 0 +%define CONFIG_LIBXAVS2 0 +%define CONFIG_LIBXVID 0 +%define CONFIG_DECKLINK 0 +%define CONFIG_LIBNDI_NEWTEK 0 +%define CONFIG_LIBFDK_AAC 0 +%define CONFIG_OPENSSL 0 +%define CONFIG_LIBTLS 0 +%define CONFIG_GMP 0 +%define CONFIG_LIBLENSFUN 0 +%define CONFIG_LIBOPENCORE_AMRNB 0 +%define CONFIG_LIBOPENCORE_AMRWB 0 +%define CONFIG_LIBVMAF 0 +%define CONFIG_LIBVO_AMRWBENC 0 +%define CONFIG_MBEDTLS 0 +%define CONFIG_RKMPP 0 +%define CONFIG_LIBSMBCLIENT 0 +%define CONFIG_CHROMAPRINT 0 +%define CONFIG_GCRYPT 0 %define CONFIG_GNUTLS 0 -%define CONFIG_ICONV 0 +%define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAACPLUS 0 +%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 -%define CONFIG_LIBCDIO 0 %define CONFIG_LIBCELT 0 +%define CONFIG_LIBCODEC2 0 +%define CONFIG_LIBDAV1D 0 %define CONFIG_LIBDC1394 0 -%define CONFIG_LIBDCADEC 0 -%define CONFIG_LIBFAAC 0 -%define CONFIG_LIBFDK_AAC 0 +%define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 %define CONFIG_LIBFREETYPE 0 @@ -407,91 +435,107 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 +%define CONFIG_LIBJACK 0 +%define CONFIG_LIBKLVANC 0 %define CONFIG_LIBKVAZAAR 0 -%define CONFIG_LIBMFX 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 -%define CONFIG_LIBNUT 0 -%define CONFIG_LIBOPENCORE_AMRNB 0 -%define CONFIG_LIBOPENCORE_AMRWB 0 +%define CONFIG_LIBMYSOFA 0 %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 -%define CONFIG_LIBQUVI 0 +%define CONFIG_LIBRSVG 0 %define CONFIG_LIBRTMP 0 -%define CONFIG_LIBSCHROEDINGER 0 %define CONFIG_LIBSHINE 0 %define CONFIG_LIBSMBCLIENT 0 %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 +%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 -%define CONFIG_LIBSTAGEFRIGHT_H264 0 +%define CONFIG_LIBTENSORFLOW 0 +%define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 -%define CONFIG_LIBUTVIDEO 0 %define CONFIG_LIBV4L2 0 -%define CONFIG_LIBVIDSTAB 0 -%define CONFIG_LIBVO_AACENC 0 -%define CONFIG_LIBVO_AMRWBENC 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 %define CONFIG_LIBWEBP 0 -%define CONFIG_LIBX264 0 -%define CONFIG_LIBX265 0 -%define CONFIG_LIBXAVS 0 +%define CONFIG_LIBXML2 0 +%define CONFIG_LIBZIMG 0 +%define CONFIG_LIBZMQ 0 +%define CONFIG_LIBZVBI 0 +%define CONFIG_LV2 0 +%define CONFIG_MEDIACODEC 0 +%define CONFIG_OPENAL 0 +%define CONFIG_OPENGL 0 +%define CONFIG_VAPOURSYNTH 0 +%define CONFIG_ALSA 0 +%define CONFIG_APPKIT 0 +%define CONFIG_AVFOUNDATION 0 +%define CONFIG_BZLIB 0 +%define CONFIG_COREIMAGE 0 +%define CONFIG_ICONV 0 %define CONFIG_LIBXCB 0 %define CONFIG_LIBXCB_SHM 0 %define CONFIG_LIBXCB_SHAPE 0 %define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LIBXVID 0 -%define CONFIG_LIBZMQ 0 -%define CONFIG_LIBZVBI 0 %define CONFIG_LZMA 0 -%define CONFIG_MMAL 0 -%define CONFIG_NVENC 0 -%define CONFIG_OPENAL 0 -%define CONFIG_OPENCL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_OPENSSL 0 -%define CONFIG_SDL 0 +%define CONFIG_SCHANNEL 1 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 -%define CONFIG_X11GRAB 0 +%define CONFIG_SNDIO 0 %define CONFIG_XLIB 0 %define CONFIG_ZLIB 1 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 +%define CONFIG_OPENCL 0 +%define CONFIG_AMF 0 +%define CONFIG_AUDIOTOOLBOX 0 +%define CONFIG_CRYSTALHD 0 +%define CONFIG_CUDA 0 +%define CONFIG_CUVID 0 +%define CONFIG_D3D11VA 0 +%define CONFIG_DXVA2 0 +%define CONFIG_FFNVCODEC 0 +%define CONFIG_NVDEC 0 +%define CONFIG_NVENC 0 +%define CONFIG_VAAPI 0 +%define CONFIG_VDPAU 0 +%define CONFIG_VIDEOTOOLBOX 0 +%define CONFIG_V4L2_M2M 0 +%define CONFIG_XVMC 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 +%define CONFIG_OMX_RPI 0 %define CONFIG_RUNTIME_CPUDETECT 1 %define CONFIG_SAFE_BITSTREAM_READER 1 %define CONFIG_SHARED 0 -%define CONFIG_SMALL 0 +%define CONFIG_SMALL 1 %define CONFIG_STATIC 1 %define CONFIG_SWSCALE_ALPHA 1 -%define CONFIG_D3D11VA 0 -%define CONFIG_DXVA2 0 -%define CONFIG_VAAPI 0 -%define CONFIG_VDA 0 -%define CONFIG_VDPAU 0 -%define CONFIG_XVMC 0 %define CONFIG_GPL 1 %define CONFIG_NONFREE 0 %define CONFIG_VERSION3 0 -%define CONFIG_AVCODEC 1 %define CONFIG_AVDEVICE 1 %define CONFIG_AVFILTER 0 +%define CONFIG_SWSCALE 1 +%define CONFIG_POSTPROC 0 %define CONFIG_AVFORMAT 1 +%define CONFIG_AVCODEC 1 +%define CONFIG_SWRESAMPLE 1 %define CONFIG_AVRESAMPLE 0 %define CONFIG_AVUTIL 1 -%define CONFIG_POSTPROC 0 -%define CONFIG_SWRESAMPLE 1 -%define CONFIG_SWSCALE 1 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 -%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 1 %define CONFIG_DWT 1 @@ -505,24 +549,44 @@ %define CONFIG_PIXELUTILS 0 %define CONFIG_NETWORK 0 %define CONFIG_RDFT 1 +%define CONFIG_AUTODETECT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 -%define CONFIG_MEMALIGN_HACK 0 +%define CONFIG_LINUX_PERF 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 +%define CONFIG_OSSFUZZ 0 %define CONFIG_PIC 0 -%define CONFIG_POD2MAN 0 -%define CONFIG_RAISE_MAJOR 0 %define CONFIG_THUMB 0 %define CONFIG_VALGRIND_BACKTRACE 0 %define CONFIG_XMM_CLOBBER_TEST 0 +%define CONFIG_BSFS 1 +%define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 +%define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 1 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 1 %define CONFIG_AANDCTTABLES 1 %define CONFIG_AC3DSP 1 -%define CONFIG_AUDIO_FRAME_QUEUE 0 +%define CONFIG_ADTS_HEADER 1 +%define CONFIG_AUDIO_FRAME_QUEUE 1 %define CONFIG_AUDIODSP 1 %define CONFIG_BLOCKDSP 1 %define CONFIG_BSWAPDSP 1 %define CONFIG_CABAC 1 +%define CONFIG_CBS 1 +%define CONFIG_CBS_AV1 1 +%define CONFIG_CBS_H264 1 +%define CONFIG_CBS_H265 1 +%define CONFIG_CBS_JPEG 0 +%define CONFIG_CBS_MPEG2 1 +%define CONFIG_CBS_VP9 1 +%define CONFIG_DIRAC_PARSE 1 +%define CONFIG_DNN 0 %define CONFIG_DVPROFILE 1 %define CONFIG_EXIF 1 %define CONFIG_FAANDCT 1 @@ -532,34 +596,38 @@ %define CONFIG_FMTCONVERT 1 %define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 1 -%define CONFIG_GCRYPT 0 -%define CONFIG_GMP 0 %define CONFIG_GOLOMB 1 %define CONFIG_GPLV3 0 %define CONFIG_H263DSP 1 %define CONFIG_H264CHROMA 1 %define CONFIG_H264DSP 1 +%define CONFIG_H264PARSE 1 %define CONFIG_H264PRED 1 %define CONFIG_H264QPEL 1 +%define CONFIG_HEVCPARSE 1 %define CONFIG_HPELDSP 1 %define CONFIG_HUFFMAN 1 %define CONFIG_HUFFYUVDSP 1 %define CONFIG_HUFFYUVENCDSP 0 %define CONFIG_IDCTDSP 1 %define CONFIG_IIRFILTER 0 -%define CONFIG_IMDCT15 1 +%define CONFIG_MDCT15 1 %define CONFIG_INTRAX8 1 +%define CONFIG_ISO_MEDIA 1 %define CONFIG_IVIDSP 0 %define CONFIG_JPEGTABLES 1 -%define CONFIG_LIBX262 0 %define CONFIG_LGPLV3 0 +%define CONFIG_LIBX262 0 %define CONFIG_LLAUDDSP 1 %define CONFIG_LLVIDDSP 1 +%define CONFIG_LLVIDENCDSP 0 %define CONFIG_LPC 0 +%define CONFIG_LZF 1 %define CONFIG_ME_CMP 1 %define CONFIG_MPEG_ER 1 %define CONFIG_MPEGAUDIO 1 %define CONFIG_MPEGAUDIODSP 1 +%define CONFIG_MPEGAUDIOHEADER 1 %define CONFIG_MPEGVIDEO 1 %define CONFIG_MPEGVIDEOENC 1 %define CONFIG_MSS34DSP 1 @@ -568,18 +636,24 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 +%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 1 %define CONFIG_RIFFDEC 1 %define CONFIG_RIFFENC 0 %define CONFIG_RTPDEC 0 %define CONFIG_RTPENC_CHAIN 0 %define CONFIG_RV34DSP 1 +%define CONFIG_SCENE_SAD 0 %define CONFIG_SINEWIN 1 %define CONFIG_SNAPPY 1 +%define CONFIG_SRTP 0 %define CONFIG_STARTCODE 1 %define CONFIG_TEXTUREDSP 1 %define CONFIG_TEXTUREDSPENC 0 %define CONFIG_TPELDSP 1 +%define CONFIG_VAAPI_1 0 +%define CONFIG_VAAPI_ENCODE 0 +%define CONFIG_VC1DSP 1 %define CONFIG_VIDEODSP 1 %define CONFIG_VP3DSP 1 %define CONFIG_VP56DSP 1 @@ -587,19 +661,36 @@ %define CONFIG_WMA_FREQS 1 %define CONFIG_WMV2DSP 1 %define CONFIG_AAC_ADTSTOASC_BSF 1 +%define CONFIG_AV1_METADATA_BSF 1 %define CONFIG_CHOMP_BSF 1 %define CONFIG_DUMP_EXTRADATA_BSF 1 +%define CONFIG_DCA_CORE_BSF 1 +%define CONFIG_EAC3_CORE_BSF 1 +%define CONFIG_EXTRACT_EXTRADATA_BSF 1 +%define CONFIG_FILTER_UNITS_BSF 1 +%define CONFIG_H264_METADATA_BSF 1 %define CONFIG_H264_MP4TOANNEXB_BSF 1 +%define CONFIG_H264_REDUNDANT_PPS_BSF 1 +%define CONFIG_HAPQA_EXTRACT_BSF 1 +%define CONFIG_HEVC_METADATA_BSF 1 %define CONFIG_HEVC_MP4TOANNEXB_BSF 1 %define CONFIG_IMX_DUMP_HEADER_BSF 1 %define CONFIG_MJPEG2JPEG_BSF 1 %define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 %define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +%define CONFIG_MPEG2_METADATA_BSF 1 %define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 %define CONFIG_MOV2TEXTSUB_BSF 1 %define CONFIG_NOISE_BSF 1 +%define CONFIG_NULL_BSF 1 +%define CONFIG_PRORES_METADATA_BSF 1 %define CONFIG_REMOVE_EXTRADATA_BSF 1 %define CONFIG_TEXT2MOVSUB_BSF 1 +%define CONFIG_TRACE_HEADERS_BSF 1 +%define CONFIG_VP9_METADATA_BSF 1 +%define CONFIG_VP9_RAW_REORDER_BSF 1 +%define CONFIG_VP9_SUPERFRAME_BSF 1 +%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_AASC_DECODER 1 %define CONFIG_AIC_DECODER 1 %define CONFIG_ALIAS_PIX_DECODER 1 @@ -619,6 +710,7 @@ %define CONFIG_BETHSOFTVID_DECODER 1 %define CONFIG_BFI_DECODER 1 %define CONFIG_BINK_DECODER 1 +%define CONFIG_BITPACKED_DECODER 1 %define CONFIG_BMP_DECODER 1 %define CONFIG_BMV_VIDEO_DECODER 1 %define CONFIG_BRENDER_PIX_DECODER 1 @@ -626,7 +718,9 @@ %define CONFIG_CAVS_DECODER 1 %define CONFIG_CDGRAPHICS_DECODER 1 %define CONFIG_CDXL_DECODER 1 +%define CONFIG_CFHD_DECODER 1 %define CONFIG_CINEPAK_DECODER 1 +%define CONFIG_CLEARVIDEO_DECODER 1 %define CONFIG_CLJR_DECODER 1 %define CONFIG_CLLC_DECODER 1 %define CONFIG_COMFORTNOISE_DECODER 1 @@ -639,9 +733,11 @@ %define CONFIG_DNXHD_DECODER 1 %define CONFIG_DPX_DECODER 1 %define CONFIG_DSICINVIDEO_DECODER 1 +%define CONFIG_DVAUDIO_DECODER 1 %define CONFIG_DVVIDEO_DECODER 1 %define CONFIG_DXA_DECODER 1 %define CONFIG_DXTORY_DECODER 1 +%define CONFIG_DXV_DECODER 1 %define CONFIG_EACMV_DECODER 1 %define CONFIG_EAMAD_DECODER 1 %define CONFIG_EATGQ_DECODER 1 @@ -656,35 +752,42 @@ %define CONFIG_FFV1_DECODER 1 %define CONFIG_FFVHUFF_DECODER 1 %define CONFIG_FIC_DECODER 1 +%define CONFIG_FITS_DECODER 1 %define CONFIG_FLASHSV_DECODER 1 %define CONFIG_FLASHSV2_DECODER 1 %define CONFIG_FLIC_DECODER 1 %define CONFIG_FLV_DECODER 1 +%define CONFIG_FMVC_DECODER 1 %define CONFIG_FOURXM_DECODER 1 %define CONFIG_FRAPS_DECODER 1 %define CONFIG_FRWU_DECODER 1 %define CONFIG_G2M_DECODER 1 +%define CONFIG_GDV_DECODER 1 %define CONFIG_GIF_DECODER 1 %define CONFIG_H261_DECODER 1 %define CONFIG_H263_DECODER 1 %define CONFIG_H263I_DECODER 1 %define CONFIG_H263P_DECODER 1 +%define CONFIG_H263_V4L2M2M_DECODER 0 %define CONFIG_H264_DECODER 1 %define CONFIG_H264_CRYSTALHD_DECODER 0 +%define CONFIG_H264_V4L2M2M_DECODER 0 +%define CONFIG_H264_MEDIACODEC_DECODER 0 %define CONFIG_H264_MMAL_DECODER 0 %define CONFIG_H264_QSV_DECODER 0 -%define CONFIG_H264_VDA_DECODER 0 -%define CONFIG_H264_VDPAU_DECODER 0 +%define CONFIG_H264_RKMPP_DECODER 0 %define CONFIG_HAP_DECODER 1 %define CONFIG_HEVC_DECODER 1 %define CONFIG_HEVC_QSV_DECODER 0 +%define CONFIG_HEVC_RKMPP_DECODER 0 +%define CONFIG_HEVC_V4L2M2M_DECODER 0 %define CONFIG_HNM4_VIDEO_DECODER 1 %define CONFIG_HQ_HQA_DECODER 1 %define CONFIG_HQX_DECODER 1 %define CONFIG_HUFFYUV_DECODER 1 %define CONFIG_IDCIN_DECODER 1 -%define CONFIG_IFF_BYTERUN1_DECODER 1 %define CONFIG_IFF_ILBM_DECODER 1 +%define CONFIG_IMM4_DECODER 1 %define CONFIG_INDEO2_DECODER 0 %define CONFIG_INDEO3_DECODER 0 %define CONFIG_INDEO4_DECODER 0 @@ -697,28 +800,33 @@ %define CONFIG_KMVC_DECODER 1 %define CONFIG_LAGARITH_DECODER 1 %define CONFIG_LOCO_DECODER 1 +%define CONFIG_M101_DECODER 1 +%define CONFIG_MAGICYUV_DECODER 1 %define CONFIG_MDEC_DECODER 1 %define CONFIG_MIMIC_DECODER 1 %define CONFIG_MJPEG_DECODER 1 %define CONFIG_MJPEGB_DECODER 1 %define CONFIG_MMVIDEO_DECODER 1 %define CONFIG_MOTIONPIXELS_DECODER 1 -%define CONFIG_MPEG_XVMC_DECODER 0 %define CONFIG_MPEG1VIDEO_DECODER 1 %define CONFIG_MPEG2VIDEO_DECODER 1 %define CONFIG_MPEG4_DECODER 1 %define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG4_VDPAU_DECODER 0 +%define CONFIG_MPEG4_V4L2M2M_DECODER 0 +%define CONFIG_MPEG4_MMAL_DECODER 0 %define CONFIG_MPEGVIDEO_DECODER 1 -%define CONFIG_MPEG_VDPAU_DECODER 0 -%define CONFIG_MPEG1_VDPAU_DECODER 0 +%define CONFIG_MPEG1_V4L2M2M_DECODER 0 +%define CONFIG_MPEG2_MMAL_DECODER 0 %define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +%define CONFIG_MPEG2_V4L2M2M_DECODER 0 %define CONFIG_MPEG2_QSV_DECODER 0 +%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 %define CONFIG_MSA1_DECODER 1 -%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MSCC_DECODER 1 %define CONFIG_MSMPEG4V1_DECODER 1 %define CONFIG_MSMPEG4V2_DECODER 1 %define CONFIG_MSMPEG4V3_DECODER 1 +%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 %define CONFIG_MSRLE_DECODER 1 %define CONFIG_MSS1_DECODER 1 %define CONFIG_MSS2_DECODER 1 @@ -727,6 +835,7 @@ %define CONFIG_MTS2_DECODER 1 %define CONFIG_MVC1_DECODER 1 %define CONFIG_MVC2_DECODER 1 +%define CONFIG_MWSC_DECODER 1 %define CONFIG_MXPEG_DECODER 1 %define CONFIG_NUV_DECODER 1 %define CONFIG_PAF_VIDEO_DECODER 1 @@ -736,33 +845,43 @@ %define CONFIG_PGM_DECODER 1 %define CONFIG_PGMYUV_DECODER 1 %define CONFIG_PICTOR_DECODER 1 +%define CONFIG_PIXLET_DECODER 1 %define CONFIG_PNG_DECODER 1 %define CONFIG_PPM_DECODER 1 %define CONFIG_PRORES_DECODER 1 -%define CONFIG_PRORES_LGPL_DECODER 1 +%define CONFIG_PROSUMER_DECODER 1 +%define CONFIG_PSD_DECODER 1 %define CONFIG_PTX_DECODER 1 %define CONFIG_QDRAW_DECODER 1 %define CONFIG_QPEG_DECODER 1 %define CONFIG_QTRLE_DECODER 1 %define CONFIG_R10K_DECODER 1 %define CONFIG_R210_DECODER 1 +%define CONFIG_RASC_DECODER 1 %define CONFIG_RAWVIDEO_DECODER 1 %define CONFIG_RL2_DECODER 1 %define CONFIG_ROQ_DECODER 1 %define CONFIG_RPZA_DECODER 1 +%define CONFIG_RSCC_DECODER 1 %define CONFIG_RV10_DECODER 1 %define CONFIG_RV20_DECODER 1 %define CONFIG_RV30_DECODER 1 %define CONFIG_RV40_DECODER 1 %define CONFIG_S302M_DECODER 1 %define CONFIG_SANM_DECODER 1 +%define CONFIG_SCPR_DECODER 1 +%define CONFIG_SCREENPRESSO_DECODER 1 +%define CONFIG_SDX2_DPCM_DECODER 1 %define CONFIG_SGI_DECODER 1 %define CONFIG_SGIRLE_DECODER 1 +%define CONFIG_SHEERVIDEO_DECODER 1 %define CONFIG_SMACKER_DECODER 1 %define CONFIG_SMC_DECODER 1 %define CONFIG_SMVJPEG_DECODER 1 %define CONFIG_SNOW_DECODER 1 %define CONFIG_SP5X_DECODER 1 +%define CONFIG_SPEEDHQ_DECODER 1 +%define CONFIG_SRGC_DECODER 1 %define CONFIG_SUNRAST_DECODER 1 %define CONFIG_SVQ1_DECODER 1 %define CONFIG_SVQ3_DECODER 1 @@ -776,6 +895,7 @@ %define CONFIG_TMV_DECODER 1 %define CONFIG_TRUEMOTION1_DECODER 1 %define CONFIG_TRUEMOTION2_DECODER 1 +%define CONFIG_TRUEMOTION2RT_DECODER 1 %define CONFIG_TSCC_DECODER 1 %define CONFIG_TSCC2_DECODER 1 %define CONFIG_TXD_DECODER 1 @@ -790,9 +910,10 @@ %define CONFIG_VBLE_DECODER 1 %define CONFIG_VC1_DECODER 1 %define CONFIG_VC1_CRYSTALHD_DECODER 0 -%define CONFIG_VC1_VDPAU_DECODER 0 %define CONFIG_VC1IMAGE_DECODER 1 +%define CONFIG_VC1_MMAL_DECODER 0 %define CONFIG_VC1_QSV_DECODER 0 +%define CONFIG_VC1_V4L2M2M_DECODER 0 %define CONFIG_VCR1_DECODER 1 %define CONFIG_VMDVIDEO_DECODER 1 %define CONFIG_VMNC_DECODER 1 @@ -803,14 +924,19 @@ %define CONFIG_VP6F_DECODER 1 %define CONFIG_VP7_DECODER 1 %define CONFIG_VP8_DECODER 1 +%define CONFIG_VP8_RKMPP_DECODER 0 +%define CONFIG_VP8_V4L2M2M_DECODER 0 %define CONFIG_VP9_DECODER 1 +%define CONFIG_VP9_RKMPP_DECODER 0 +%define CONFIG_VP9_V4L2M2M_DECODER 0 %define CONFIG_VQA_DECODER 1 %define CONFIG_WEBP_DECODER 1 +%define CONFIG_WCMV_DECODER 1 +%define CONFIG_WRAPPED_AVFRAME_DECODER 1 %define CONFIG_WMV1_DECODER 1 %define CONFIG_WMV2_DECODER 1 %define CONFIG_WMV3_DECODER 1 %define CONFIG_WMV3_CRYSTALHD_DECODER 0 -%define CONFIG_WMV3_VDPAU_DECODER 0 %define CONFIG_WMV3IMAGE_DECODER 1 %define CONFIG_WNV1_DECODER 1 %define CONFIG_XAN_WC3_DECODER 1 @@ -818,8 +944,10 @@ %define CONFIG_XBM_DECODER 1 %define CONFIG_XFACE_DECODER 1 %define CONFIG_XL_DECODER 1 +%define CONFIG_XPM_DECODER 1 %define CONFIG_XWD_DECODER 1 %define CONFIG_Y41P_DECODER 1 +%define CONFIG_YLC_DECODER 1 %define CONFIG_YOP_DECODER 1 %define CONFIG_YUV4_DECODER 1 %define CONFIG_ZERO12V_DECODER 1 @@ -836,20 +964,27 @@ %define CONFIG_AMRNB_DECODER 1 %define CONFIG_AMRWB_DECODER 1 %define CONFIG_APE_DECODER 1 +%define CONFIG_APTX_DECODER 1 +%define CONFIG_APTX_HD_DECODER 1 %define CONFIG_ATRAC1_DECODER 1 %define CONFIG_ATRAC3_DECODER 1 +%define CONFIG_ATRAC3AL_DECODER 1 %define CONFIG_ATRAC3P_DECODER 0 +%define CONFIG_ATRAC3PAL_DECODER 1 +%define CONFIG_ATRAC9_DECODER 1 %define CONFIG_BINKAUDIO_DCT_DECODER 1 %define CONFIG_BINKAUDIO_RDFT_DECODER 1 %define CONFIG_BMV_AUDIO_DECODER 1 %define CONFIG_COOK_DECODER 1 %define CONFIG_DCA_DECODER 1 +%define CONFIG_DOLBY_E_DECODER 1 %define CONFIG_DSD_LSBF_DECODER 1 %define CONFIG_DSD_MSBF_DECODER 1 %define CONFIG_DSD_LSBF_PLANAR_DECODER 1 %define CONFIG_DSD_MSBF_PLANAR_DECODER 1 %define CONFIG_DSICINAUDIO_DECODER 1 %define CONFIG_DSS_SP_DECODER 1 +%define CONFIG_DST_DECODER 1 %define CONFIG_EAC3_DECODER 1 %define CONFIG_EVRC_DECODER 1 %define CONFIG_FFWAVESYNTH_DECODER 1 @@ -859,7 +994,9 @@ %define CONFIG_GSM_DECODER 1 %define CONFIG_GSM_MS_DECODER 1 %define CONFIG_IAC_DECODER 1 +%define CONFIG_ILBC_DECODER 1 %define CONFIG_IMC_DECODER 1 +%define CONFIG_INTERPLAY_ACM_DECODER 1 %define CONFIG_MACE3_DECODER 1 %define CONFIG_MACE6_DECODER 1 %define CONFIG_METASOUND_DECODER 1 @@ -868,12 +1005,12 @@ %define CONFIG_MP1FLOAT_DECODER 1 %define CONFIG_MP2_DECODER 1 %define CONFIG_MP2FLOAT_DECODER 1 -%define CONFIG_MP3_DECODER 1 %define CONFIG_MP3FLOAT_DECODER 1 -%define CONFIG_MP3ADU_DECODER 1 +%define CONFIG_MP3_DECODER 1 %define CONFIG_MP3ADUFLOAT_DECODER 1 -%define CONFIG_MP3ON4_DECODER 1 +%define CONFIG_MP3ADU_DECODER 1 %define CONFIG_MP3ON4FLOAT_DECODER 1 +%define CONFIG_MP3ON4_DECODER 1 %define CONFIG_MPC7_DECODER 1 %define CONFIG_MPC8_DECODER 1 %define CONFIG_NELLYMOSER_DECODER 1 @@ -882,9 +1019,11 @@ %define CONFIG_PAF_AUDIO_DECODER 1 %define CONFIG_QCELP_DECODER 1 %define CONFIG_QDM2_DECODER 1 +%define CONFIG_QDMC_DECODER 1 %define CONFIG_RA_144_DECODER 1 %define CONFIG_RA_288_DECODER 1 %define CONFIG_RALF_DECODER 1 +%define CONFIG_SBC_DECODER 1 %define CONFIG_SHORTEN_DECODER 1 %define CONFIG_SIPR_DECODER 1 %define CONFIG_SMACKAUD_DECODER 1 @@ -903,9 +1042,13 @@ %define CONFIG_WMAV2_DECODER 1 %define CONFIG_WMAVOICE_DECODER 1 %define CONFIG_WS_SND1_DECODER 1 +%define CONFIG_XMA1_DECODER 1 +%define CONFIG_XMA2_DECODER 1 %define CONFIG_PCM_ALAW_DECODER 1 %define CONFIG_PCM_BLURAY_DECODER 1 %define CONFIG_PCM_DVD_DECODER 1 +%define CONFIG_PCM_F16LE_DECODER 1 +%define CONFIG_PCM_F24LE_DECODER 1 %define CONFIG_PCM_F32BE_DECODER 1 %define CONFIG_PCM_F32LE_DECODER 1 %define CONFIG_PCM_F64BE_DECODER 1 @@ -925,6 +1068,8 @@ %define CONFIG_PCM_S32BE_DECODER 1 %define CONFIG_PCM_S32LE_DECODER 1 %define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +%define CONFIG_PCM_S64BE_DECODER 1 +%define CONFIG_PCM_S64LE_DECODER 1 %define CONFIG_PCM_U8_DECODER 1 %define CONFIG_PCM_U16BE_DECODER 1 %define CONFIG_PCM_U16LE_DECODER 1 @@ -932,7 +1077,9 @@ %define CONFIG_PCM_U24LE_DECODER 1 %define CONFIG_PCM_U32BE_DECODER 1 %define CONFIG_PCM_U32LE_DECODER 1 +%define CONFIG_PCM_VIDC_DECODER 1 %define CONFIG_PCM_ZORK_DECODER 1 +%define CONFIG_GREMLIN_DPCM_DECODER 1 %define CONFIG_INTERPLAY_DPCM_DECODER 1 %define CONFIG_ROQ_DPCM_DECODER 1 %define CONFIG_SOL_DPCM_DECODER 1 @@ -940,6 +1087,7 @@ %define CONFIG_ADPCM_4XM_DECODER 1 %define CONFIG_ADPCM_ADX_DECODER 1 %define CONFIG_ADPCM_AFC_DECODER 1 +%define CONFIG_ADPCM_AICA_DECODER 1 %define CONFIG_ADPCM_CT_DECODER 1 %define CONFIG_ADPCM_DTK_DECODER 1 %define CONFIG_ADPCM_EA_DECODER 1 @@ -953,6 +1101,7 @@ %define CONFIG_ADPCM_G726LE_DECODER 1 %define CONFIG_ADPCM_IMA_AMV_DECODER 1 %define CONFIG_ADPCM_IMA_APC_DECODER 1 +%define CONFIG_ADPCM_IMA_DAT4_DECODER 1 %define CONFIG_ADPCM_IMA_DK3_DECODER 1 %define CONFIG_ADPCM_IMA_DK4_DECODER 1 %define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 @@ -965,6 +1114,8 @@ %define CONFIG_ADPCM_IMA_WAV_DECODER 1 %define CONFIG_ADPCM_IMA_WS_DECODER 1 %define CONFIG_ADPCM_MS_DECODER 1 +%define CONFIG_ADPCM_MTAF_DECODER 1 +%define CONFIG_ADPCM_PSX_DECODER 1 %define CONFIG_ADPCM_SBPRO_2_DECODER 1 %define CONFIG_ADPCM_SBPRO_3_DECODER 1 %define CONFIG_ADPCM_SBPRO_4_DECODER 1 @@ -974,7 +1125,6 @@ %define CONFIG_ADPCM_VIMA_DECODER 1 %define CONFIG_ADPCM_XA_DECODER 1 %define CONFIG_ADPCM_YAMAHA_DECODER 1 -%define CONFIG_VIMA_DECODER 1 %define CONFIG_SSA_DECODER 1 %define CONFIG_ASS_DECODER 1 %define CONFIG_CCAPTION_DECODER 1 @@ -997,8 +1147,26 @@ %define CONFIG_VPLAYER_DECODER 1 %define CONFIG_WEBVTT_DECODER 1 %define CONFIG_XSUB_DECODER 1 +%define CONFIG_AAC_AT_DECODER 0 +%define CONFIG_AC3_AT_DECODER 0 +%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +%define CONFIG_ALAC_AT_DECODER 0 +%define CONFIG_AMR_NB_AT_DECODER 0 +%define CONFIG_EAC3_AT_DECODER 0 +%define CONFIG_GSM_MS_AT_DECODER 0 +%define CONFIG_ILBC_AT_DECODER 0 +%define CONFIG_MP1_AT_DECODER 0 +%define CONFIG_MP2_AT_DECODER 0 +%define CONFIG_MP3_AT_DECODER 0 +%define CONFIG_PCM_ALAW_AT_DECODER 0 +%define CONFIG_PCM_MULAW_AT_DECODER 0 +%define CONFIG_QDMC_AT_DECODER 0 +%define CONFIG_QDM2_AT_DECODER 0 +%define CONFIG_LIBAOM_AV1_DECODER 0 %define CONFIG_LIBCELT_DECODER 0 -%define CONFIG_LIBDCADEC_DECODER 0 +%define CONFIG_LIBCODEC2_DECODER 0 +%define CONFIG_LIBDAV1D_DECODER 0 +%define CONFIG_LIBDAVS2_DECODER 0 %define CONFIG_LIBFDK_AAC_DECODER 0 %define CONFIG_LIBGSM_DECODER 0 %define CONFIG_LIBGSM_MS_DECODER 0 @@ -1007,10 +1175,8 @@ %define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 %define CONFIG_LIBOPENJPEG_DECODER 0 %define CONFIG_LIBOPUS_DECODER 0 -%define CONFIG_LIBSCHROEDINGER_DECODER 0 +%define CONFIG_LIBRSVG_DECODER 0 %define CONFIG_LIBSPEEX_DECODER 0 -%define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 -%define CONFIG_LIBUTVIDEO_DECODER 0 %define CONFIG_LIBVORBIS_DECODER 0 %define CONFIG_LIBVPX_VP8_DECODER 0 %define CONFIG_LIBVPX_VP9_DECODER 0 @@ -1018,250 +1184,21 @@ %define CONFIG_BINTEXT_DECODER 1 %define CONFIG_XBIN_DECODER 1 %define CONFIG_IDF_DECODER 1 -%define CONFIG_AAC_DEMUXER 1 -%define CONFIG_AC3_DEMUXER 1 -%define CONFIG_ACT_DEMUXER 1 -%define CONFIG_ADF_DEMUXER 1 -%define CONFIG_ADP_DEMUXER 1 -%define CONFIG_ADX_DEMUXER 1 -%define CONFIG_AEA_DEMUXER 1 -%define CONFIG_AFC_DEMUXER 1 -%define CONFIG_AIFF_DEMUXER 1 -%define CONFIG_AMR_DEMUXER 1 -%define CONFIG_ANM_DEMUXER 1 -%define CONFIG_APC_DEMUXER 1 -%define CONFIG_APE_DEMUXER 1 -%define CONFIG_APNG_DEMUXER 1 -%define CONFIG_AQTITLE_DEMUXER 1 -%define CONFIG_ASF_DEMUXER 1 -%define CONFIG_ASF_O_DEMUXER 1 -%define CONFIG_ASS_DEMUXER 1 -%define CONFIG_AST_DEMUXER 1 -%define CONFIG_AU_DEMUXER 1 -%define CONFIG_AVI_DEMUXER 1 -%define CONFIG_AVISYNTH_DEMUXER 0 -%define CONFIG_AVR_DEMUXER 1 -%define CONFIG_AVS_DEMUXER 1 -%define CONFIG_BETHSOFTVID_DEMUXER 1 -%define CONFIG_BFI_DEMUXER 1 -%define CONFIG_BINTEXT_DEMUXER 1 -%define CONFIG_BINK_DEMUXER 1 -%define CONFIG_BIT_DEMUXER 1 -%define CONFIG_BMV_DEMUXER 1 -%define CONFIG_BFSTM_DEMUXER 1 -%define CONFIG_BRSTM_DEMUXER 1 -%define CONFIG_BOA_DEMUXER 1 -%define CONFIG_C93_DEMUXER 1 -%define CONFIG_CAF_DEMUXER 1 -%define CONFIG_CAVSVIDEO_DEMUXER 1 -%define CONFIG_CDG_DEMUXER 1 -%define CONFIG_CDXL_DEMUXER 1 -%define CONFIG_CINE_DEMUXER 1 -%define CONFIG_CONCAT_DEMUXER 1 -%define CONFIG_DATA_DEMUXER 1 -%define CONFIG_DAUD_DEMUXER 1 -%define CONFIG_DFA_DEMUXER 1 -%define CONFIG_DIRAC_DEMUXER 1 -%define CONFIG_DNXHD_DEMUXER 1 -%define CONFIG_DSF_DEMUXER 1 -%define CONFIG_DSICIN_DEMUXER 1 -%define CONFIG_DSS_DEMUXER 1 -%define CONFIG_DTS_DEMUXER 1 -%define CONFIG_DTSHD_DEMUXER 1 -%define CONFIG_DV_DEMUXER 1 -%define CONFIG_DVBSUB_DEMUXER 1 -%define CONFIG_DXA_DEMUXER 1 -%define CONFIG_EA_DEMUXER 1 -%define CONFIG_EA_CDATA_DEMUXER 1 -%define CONFIG_EAC3_DEMUXER 1 -%define CONFIG_EPAF_DEMUXER 1 -%define CONFIG_FFM_DEMUXER 1 -%define CONFIG_FFMETADATA_DEMUXER 1 -%define CONFIG_FILMSTRIP_DEMUXER 1 -%define CONFIG_FLAC_DEMUXER 1 -%define CONFIG_FLIC_DEMUXER 1 -%define CONFIG_FLV_DEMUXER 1 -%define CONFIG_LIVE_FLV_DEMUXER 1 -%define CONFIG_FOURXM_DEMUXER 1 -%define CONFIG_FRM_DEMUXER 1 -%define CONFIG_G722_DEMUXER 1 -%define CONFIG_G723_1_DEMUXER 1 -%define CONFIG_G729_DEMUXER 1 -%define CONFIG_GIF_DEMUXER 1 -%define CONFIG_GSM_DEMUXER 1 -%define CONFIG_GXF_DEMUXER 1 -%define CONFIG_H261_DEMUXER 1 -%define CONFIG_H263_DEMUXER 1 -%define CONFIG_H264_DEMUXER 1 -%define CONFIG_HEVC_DEMUXER 1 -%define CONFIG_HLS_DEMUXER 1 -%define CONFIG_HNM_DEMUXER 1 -%define CONFIG_ICO_DEMUXER 1 -%define CONFIG_IDCIN_DEMUXER 1 -%define CONFIG_IDF_DEMUXER 1 -%define CONFIG_IFF_DEMUXER 1 -%define CONFIG_ILBC_DEMUXER 1 -%define CONFIG_IMAGE2_DEMUXER 1 -%define CONFIG_IMAGE2PIPE_DEMUXER 1 -%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -%define CONFIG_INGENIENT_DEMUXER 1 -%define CONFIG_IPMOVIE_DEMUXER 1 -%define CONFIG_IRCAM_DEMUXER 1 -%define CONFIG_ISS_DEMUXER 1 -%define CONFIG_IV8_DEMUXER 1 -%define CONFIG_IVF_DEMUXER 1 -%define CONFIG_JACOSUB_DEMUXER 1 -%define CONFIG_JV_DEMUXER 1 -%define CONFIG_LATM_DEMUXER 1 -%define CONFIG_LMLM4_DEMUXER 1 -%define CONFIG_LOAS_DEMUXER 1 -%define CONFIG_LRC_DEMUXER 1 -%define CONFIG_LVF_DEMUXER 1 -%define CONFIG_LXF_DEMUXER 1 -%define CONFIG_M4V_DEMUXER 1 -%define CONFIG_MATROSKA_DEMUXER 1 -%define CONFIG_MGSTS_DEMUXER 1 -%define CONFIG_MICRODVD_DEMUXER 1 -%define CONFIG_MJPEG_DEMUXER 1 -%define CONFIG_MLP_DEMUXER 1 -%define CONFIG_MLV_DEMUXER 1 -%define CONFIG_MM_DEMUXER 1 -%define CONFIG_MMF_DEMUXER 1 -%define CONFIG_MOV_DEMUXER 1 -%define CONFIG_MP3_DEMUXER 1 -%define CONFIG_MPC_DEMUXER 1 -%define CONFIG_MPC8_DEMUXER 1 -%define CONFIG_MPEGPS_DEMUXER 1 -%define CONFIG_MPEGTS_DEMUXER 1 -%define CONFIG_MPEGTSRAW_DEMUXER 1 -%define CONFIG_MPEGVIDEO_DEMUXER 1 -%define CONFIG_MPJPEG_DEMUXER 1 -%define CONFIG_MPL2_DEMUXER 1 -%define CONFIG_MPSUB_DEMUXER 1 -%define CONFIG_MSNWC_TCP_DEMUXER 1 -%define CONFIG_MTV_DEMUXER 1 -%define CONFIG_MV_DEMUXER 1 -%define CONFIG_MVI_DEMUXER 1 -%define CONFIG_MXF_DEMUXER 1 -%define CONFIG_MXG_DEMUXER 1 -%define CONFIG_NC_DEMUXER 1 -%define CONFIG_NISTSPHERE_DEMUXER 1 -%define CONFIG_NSV_DEMUXER 1 -%define CONFIG_NUT_DEMUXER 1 -%define CONFIG_NUV_DEMUXER 1 -%define CONFIG_OGG_DEMUXER 1 -%define CONFIG_OMA_DEMUXER 1 -%define CONFIG_PAF_DEMUXER 1 -%define CONFIG_PCM_ALAW_DEMUXER 1 -%define CONFIG_PCM_MULAW_DEMUXER 1 -%define CONFIG_PCM_F64BE_DEMUXER 1 -%define CONFIG_PCM_F64LE_DEMUXER 1 -%define CONFIG_PCM_F32BE_DEMUXER 1 -%define CONFIG_PCM_F32LE_DEMUXER 1 -%define CONFIG_PCM_S32BE_DEMUXER 1 -%define CONFIG_PCM_S32LE_DEMUXER 1 -%define CONFIG_PCM_S24BE_DEMUXER 1 -%define CONFIG_PCM_S24LE_DEMUXER 1 -%define CONFIG_PCM_S16BE_DEMUXER 1 -%define CONFIG_PCM_S16LE_DEMUXER 1 -%define CONFIG_PCM_S8_DEMUXER 1 -%define CONFIG_PCM_U32BE_DEMUXER 1 -%define CONFIG_PCM_U32LE_DEMUXER 1 -%define CONFIG_PCM_U24BE_DEMUXER 1 -%define CONFIG_PCM_U24LE_DEMUXER 1 -%define CONFIG_PCM_U16BE_DEMUXER 1 -%define CONFIG_PCM_U16LE_DEMUXER 1 -%define CONFIG_PCM_U8_DEMUXER 1 -%define CONFIG_PJS_DEMUXER 1 -%define CONFIG_PMP_DEMUXER 1 -%define CONFIG_PVA_DEMUXER 1 -%define CONFIG_PVF_DEMUXER 1 -%define CONFIG_QCP_DEMUXER 1 -%define CONFIG_R3D_DEMUXER 1 -%define CONFIG_RAWVIDEO_DEMUXER 1 -%define CONFIG_REALTEXT_DEMUXER 1 -%define CONFIG_REDSPARK_DEMUXER 1 -%define CONFIG_RL2_DEMUXER 1 -%define CONFIG_RM_DEMUXER 1 -%define CONFIG_ROQ_DEMUXER 1 -%define CONFIG_RPL_DEMUXER 1 -%define CONFIG_RSD_DEMUXER 1 -%define CONFIG_RSO_DEMUXER 1 -%define CONFIG_RTP_DEMUXER 0 -%define CONFIG_RTSP_DEMUXER 0 -%define CONFIG_SAMI_DEMUXER 1 -%define CONFIG_SAP_DEMUXER 0 -%define CONFIG_SBG_DEMUXER 1 -%define CONFIG_SDP_DEMUXER 0 -%define CONFIG_SDR2_DEMUXER 1 -%define CONFIG_SEGAFILM_DEMUXER 1 -%define CONFIG_SHORTEN_DEMUXER 1 -%define CONFIG_SIFF_DEMUXER 1 -%define CONFIG_SLN_DEMUXER 1 -%define CONFIG_SMACKER_DEMUXER 1 -%define CONFIG_SMJPEG_DEMUXER 1 -%define CONFIG_SMUSH_DEMUXER 1 -%define CONFIG_SOL_DEMUXER 1 -%define CONFIG_SOX_DEMUXER 1 -%define CONFIG_SPDIF_DEMUXER 1 -%define CONFIG_SRT_DEMUXER 1 -%define CONFIG_STR_DEMUXER 1 -%define CONFIG_STL_DEMUXER 1 -%define CONFIG_SUBVIEWER1_DEMUXER 1 -%define CONFIG_SUBVIEWER_DEMUXER 1 -%define CONFIG_SUP_DEMUXER 1 -%define CONFIG_SWF_DEMUXER 1 -%define CONFIG_TAK_DEMUXER 1 -%define CONFIG_TEDCAPTIONS_DEMUXER 1 -%define CONFIG_THP_DEMUXER 1 -%define CONFIG_TIERTEXSEQ_DEMUXER 1 -%define CONFIG_TMV_DEMUXER 1 -%define CONFIG_TRUEHD_DEMUXER 1 -%define CONFIG_TTA_DEMUXER 1 -%define CONFIG_TXD_DEMUXER 1 -%define CONFIG_TTY_DEMUXER 1 -%define CONFIG_VC1_DEMUXER 1 -%define CONFIG_VC1T_DEMUXER 1 -%define CONFIG_VIVO_DEMUXER 1 -%define CONFIG_VMD_DEMUXER 1 -%define CONFIG_VOBSUB_DEMUXER 1 -%define CONFIG_VOC_DEMUXER 1 -%define CONFIG_VPLAYER_DEMUXER 1 -%define CONFIG_VQF_DEMUXER 1 -%define CONFIG_W64_DEMUXER 1 -%define CONFIG_WAV_DEMUXER 1 -%define CONFIG_WC3_DEMUXER 1 -%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -%define CONFIG_WEBVTT_DEMUXER 1 -%define CONFIG_WSAUD_DEMUXER 1 -%define CONFIG_WSVQA_DEMUXER 1 -%define CONFIG_WTV_DEMUXER 1 -%define CONFIG_WV_DEMUXER 1 -%define CONFIG_XA_DEMUXER 1 -%define CONFIG_XBIN_DEMUXER 1 -%define CONFIG_XMV_DEMUXER 1 -%define CONFIG_XWMA_DEMUXER 1 -%define CONFIG_YOP_DEMUXER 1 -%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -%define CONFIG_LIBGME_DEMUXER 0 -%define CONFIG_LIBMODPLUG_DEMUXER 0 -%define CONFIG_LIBNUT_DEMUXER 0 -%define CONFIG_LIBQUVI_DEMUXER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H264_CUVID_DECODER 0 +%define CONFIG_HEVC_CUVID_DECODER 0 +%define CONFIG_HEVC_MEDIACODEC_DECODER 0 +%define CONFIG_MJPEG_CUVID_DECODER 0 +%define CONFIG_MPEG1_CUVID_DECODER 0 +%define CONFIG_MPEG2_CUVID_DECODER 0 +%define CONFIG_MPEG4_CUVID_DECODER 0 +%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +%define CONFIG_VC1_CUVID_DECODER 0 +%define CONFIG_VP8_CUVID_DECODER 0 +%define CONFIG_VP8_MEDIACODEC_DECODER 0 +%define CONFIG_VP8_QSV_DECODER 0 +%define CONFIG_VP9_CUVID_DECODER 0 +%define CONFIG_VP9_MEDIACODEC_DECODER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1281,6 +1218,7 @@ %define CONFIG_DVVIDEO_ENCODER 0 %define CONFIG_FFV1_ENCODER 0 %define CONFIG_FFVHUFF_ENCODER 0 +%define CONFIG_FITS_ENCODER 0 %define CONFIG_FLASHSV_ENCODER 0 %define CONFIG_FLASHSV2_ENCODER 0 %define CONFIG_FLV_ENCODER 0 @@ -1293,6 +1231,7 @@ %define CONFIG_JPEG2000_ENCODER 0 %define CONFIG_JPEGLS_ENCODER 0 %define CONFIG_LJPEG_ENCODER 0 +%define CONFIG_MAGICYUV_ENCODER 0 %define CONFIG_MJPEG_ENCODER 0 %define CONFIG_MPEG1VIDEO_ENCODER 0 %define CONFIG_MPEG2VIDEO_ENCODER 0 @@ -1329,6 +1268,8 @@ %define CONFIG_V308_ENCODER 0 %define CONFIG_V408_ENCODER 0 %define CONFIG_V410_ENCODER 0 +%define CONFIG_VC2_ENCODER 0 +%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 %define CONFIG_WMV1_ENCODER 0 %define CONFIG_WMV2_ENCODER 0 %define CONFIG_XBM_ENCODER 0 @@ -1342,16 +1283,22 @@ %define CONFIG_AC3_ENCODER 0 %define CONFIG_AC3_FIXED_ENCODER 0 %define CONFIG_ALAC_ENCODER 0 +%define CONFIG_APTX_ENCODER 0 +%define CONFIG_APTX_HD_ENCODER 0 %define CONFIG_DCA_ENCODER 0 %define CONFIG_EAC3_ENCODER 0 %define CONFIG_FLAC_ENCODER 0 %define CONFIG_G723_1_ENCODER 0 +%define CONFIG_MLP_ENCODER 0 %define CONFIG_MP2_ENCODER 0 %define CONFIG_MP2FIXED_ENCODER 0 %define CONFIG_NELLYMOSER_ENCODER 0 +%define CONFIG_OPUS_ENCODER 0 %define CONFIG_RA_144_ENCODER 0 +%define CONFIG_SBC_ENCODER 0 %define CONFIG_SONIC_ENCODER 0 %define CONFIG_SONIC_LS_ENCODER 0 +%define CONFIG_TRUEHD_ENCODER 0 %define CONFIG_TTA_ENCODER 0 %define CONFIG_VORBIS_ENCODER 0 %define CONFIG_WAVPACK_ENCODER 0 @@ -1376,6 +1323,8 @@ %define CONFIG_PCM_S32BE_ENCODER 0 %define CONFIG_PCM_S32LE_ENCODER 0 %define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S64BE_ENCODER 0 +%define CONFIG_PCM_S64LE_ENCODER 0 %define CONFIG_PCM_U8_ENCODER 0 %define CONFIG_PCM_U16BE_ENCODER 0 %define CONFIG_PCM_U16LE_ENCODER 0 @@ -1383,10 +1332,12 @@ %define CONFIG_PCM_U24LE_ENCODER 0 %define CONFIG_PCM_U32BE_ENCODER 0 %define CONFIG_PCM_U32LE_ENCODER 0 +%define CONFIG_PCM_VIDC_ENCODER 0 %define CONFIG_ROQ_DPCM_ENCODER 0 %define CONFIG_ADPCM_ADX_ENCODER 0 %define CONFIG_ADPCM_G722_ENCODER 0 %define CONFIG_ADPCM_G726_ENCODER 0 +%define CONFIG_ADPCM_G726LE_ENCODER 0 %define CONFIG_ADPCM_IMA_QT_ENCODER 0 %define CONFIG_ADPCM_IMA_WAV_ENCODER 0 %define CONFIG_ADPCM_MS_ENCODER 0 @@ -1399,9 +1350,16 @@ %define CONFIG_MOVTEXT_ENCODER 0 %define CONFIG_SRT_ENCODER 0 %define CONFIG_SUBRIP_ENCODER 0 +%define CONFIG_TEXT_ENCODER 0 %define CONFIG_WEBVTT_ENCODER 0 %define CONFIG_XSUB_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 +%define CONFIG_AAC_AT_ENCODER 0 +%define CONFIG_ALAC_AT_ENCODER 0 +%define CONFIG_ILBC_AT_ENCODER 0 +%define CONFIG_PCM_ALAW_AT_ENCODER 0 +%define CONFIG_PCM_MULAW_AT_ENCODER 0 +%define CONFIG_LIBAOM_AV1_ENCODER 0 +%define CONFIG_LIBCODEC2_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1410,13 +1368,10 @@ %define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 %define CONFIG_LIBOPENJPEG_ENCODER 0 %define CONFIG_LIBOPUS_ENCODER 0 -%define CONFIG_LIBSCHROEDINGER_ENCODER 0 %define CONFIG_LIBSHINE_ENCODER 0 %define CONFIG_LIBSPEEX_ENCODER 0 %define CONFIG_LIBTHEORA_ENCODER 0 %define CONFIG_LIBTWOLAME_ENCODER 0 -%define CONFIG_LIBUTVIDEO_ENCODER 0 -%define CONFIG_LIBVO_AACENC_ENCODER 0 %define CONFIG_LIBVO_AMRWBENC_ENCODER 0 %define CONFIG_LIBVORBIS_ENCODER 0 %define CONFIG_LIBVPX_VP8_ENCODER 0 @@ -1429,30 +1384,203 @@ %define CONFIG_LIBX264RGB_ENCODER 0 %define CONFIG_LIBX265_ENCODER 0 %define CONFIG_LIBXAVS_ENCODER 0 +%define CONFIG_LIBXAVS2_ENCODER 0 %define CONFIG_LIBXVID_ENCODER 0 -%define CONFIG_LIBAACPLUS_ENCODER 0 +%define CONFIG_H263_V4L2M2M_ENCODER 0 %define CONFIG_LIBOPENH264_ENCODER 0 +%define CONFIG_H264_AMF_ENCODER 0 +%define CONFIG_H264_NVENC_ENCODER 0 +%define CONFIG_H264_OMX_ENCODER 0 %define CONFIG_H264_QSV_ENCODER 0 +%define CONFIG_H264_V4L2M2M_ENCODER 0 +%define CONFIG_H264_VAAPI_ENCODER 0 +%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 %define CONFIG_NVENC_ENCODER 0 %define CONFIG_NVENC_H264_ENCODER 0 %define CONFIG_NVENC_HEVC_ENCODER 0 +%define CONFIG_HEVC_AMF_ENCODER 0 +%define CONFIG_HEVC_NVENC_ENCODER 0 %define CONFIG_HEVC_QSV_ENCODER 0 +%define CONFIG_HEVC_V4L2M2M_ENCODER 0 +%define CONFIG_HEVC_VAAPI_ENCODER 0 +%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 %define CONFIG_LIBKVAZAAR_ENCODER 0 +%define CONFIG_MJPEG_QSV_ENCODER 0 +%define CONFIG_MJPEG_VAAPI_ENCODER 0 %define CONFIG_MPEG2_QSV_ENCODER 0 +%define CONFIG_MPEG2_VAAPI_ENCODER 0 +%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_VAAPI_ENCODER 0 +%define CONFIG_VP9_VAAPI_ENCODER 0 +%define CONFIG_H263_VAAPI_HWACCEL 0 +%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_H264_D3D11VA_HWACCEL 0 +%define CONFIG_H264_D3D11VA2_HWACCEL 0 +%define CONFIG_H264_DXVA2_HWACCEL 0 +%define CONFIG_H264_NVDEC_HWACCEL 0 +%define CONFIG_H264_VAAPI_HWACCEL 0 +%define CONFIG_H264_VDPAU_HWACCEL 0 +%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +%define CONFIG_HEVC_DXVA2_HWACCEL 0 +%define CONFIG_HEVC_NVDEC_HWACCEL 0 +%define CONFIG_HEVC_VAAPI_HWACCEL 0 +%define CONFIG_HEVC_VDPAU_HWACCEL 0 +%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MJPEG_NVDEC_HWACCEL 0 +%define CONFIG_MJPEG_VAAPI_HWACCEL 0 +%define CONFIG_MPEG1_NVDEC_HWACCEL 0 +%define CONFIG_MPEG1_VDPAU_HWACCEL 0 +%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG1_XVMC_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +%define CONFIG_MPEG2_NVDEC_HWACCEL 0 +%define CONFIG_MPEG2_DXVA2_HWACCEL 0 +%define CONFIG_MPEG2_VAAPI_HWACCEL 0 +%define CONFIG_MPEG2_VDPAU_HWACCEL 0 +%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG2_XVMC_HWACCEL 0 +%define CONFIG_MPEG4_NVDEC_HWACCEL 0 +%define CONFIG_MPEG4_VAAPI_HWACCEL 0 +%define CONFIG_MPEG4_VDPAU_HWACCEL 0 +%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_VC1_D3D11VA_HWACCEL 0 +%define CONFIG_VC1_D3D11VA2_HWACCEL 0 +%define CONFIG_VC1_DXVA2_HWACCEL 0 +%define CONFIG_VC1_NVDEC_HWACCEL 0 +%define CONFIG_VC1_VAAPI_HWACCEL 0 +%define CONFIG_VC1_VDPAU_HWACCEL 0 +%define CONFIG_VP8_NVDEC_HWACCEL 0 +%define CONFIG_VP8_VAAPI_HWACCEL 0 +%define CONFIG_VP9_D3D11VA_HWACCEL 0 +%define CONFIG_VP9_D3D11VA2_HWACCEL 0 +%define CONFIG_VP9_DXVA2_HWACCEL 0 +%define CONFIG_VP9_NVDEC_HWACCEL 0 +%define CONFIG_VP9_VAAPI_HWACCEL 0 +%define CONFIG_WMV3_D3D11VA_HWACCEL 0 +%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +%define CONFIG_WMV3_DXVA2_HWACCEL 0 +%define CONFIG_WMV3_NVDEC_HWACCEL 0 +%define CONFIG_WMV3_VAAPI_HWACCEL 0 +%define CONFIG_WMV3_VDPAU_HWACCEL 0 +%define CONFIG_AAC_PARSER 1 +%define CONFIG_AAC_LATM_PARSER 1 +%define CONFIG_AC3_PARSER 1 +%define CONFIG_ADX_PARSER 1 +%define CONFIG_AV1_PARSER 1 +%define CONFIG_AVS2_PARSER 1 +%define CONFIG_BMP_PARSER 1 +%define CONFIG_CAVSVIDEO_PARSER 1 +%define CONFIG_COOK_PARSER 1 +%define CONFIG_DCA_PARSER 1 +%define CONFIG_DIRAC_PARSER 1 +%define CONFIG_DNXHD_PARSER 1 +%define CONFIG_DPX_PARSER 1 +%define CONFIG_DVAUDIO_PARSER 1 +%define CONFIG_DVBSUB_PARSER 1 +%define CONFIG_DVDSUB_PARSER 1 +%define CONFIG_DVD_NAV_PARSER 1 +%define CONFIG_FLAC_PARSER 1 +%define CONFIG_G729_PARSER 1 +%define CONFIG_GSM_PARSER 1 +%define CONFIG_H261_PARSER 1 +%define CONFIG_H263_PARSER 1 +%define CONFIG_H264_PARSER 1 +%define CONFIG_HEVC_PARSER 1 +%define CONFIG_MJPEG_PARSER 1 +%define CONFIG_MLP_PARSER 1 +%define CONFIG_MPEG4VIDEO_PARSER 1 +%define CONFIG_MPEGAUDIO_PARSER 1 +%define CONFIG_MPEGVIDEO_PARSER 1 +%define CONFIG_OPUS_PARSER 1 +%define CONFIG_PNG_PARSER 1 +%define CONFIG_PNM_PARSER 1 +%define CONFIG_RV30_PARSER 1 +%define CONFIG_RV40_PARSER 1 +%define CONFIG_SBC_PARSER 1 +%define CONFIG_SIPR_PARSER 1 +%define CONFIG_TAK_PARSER 1 +%define CONFIG_VC1_PARSER 1 +%define CONFIG_VORBIS_PARSER 1 +%define CONFIG_VP3_PARSER 1 +%define CONFIG_VP8_PARSER 1 +%define CONFIG_VP9_PARSER 1 +%define CONFIG_XMA_PARSER 1 +%define CONFIG_ALSA_INDEV 0 +%define CONFIG_ANDROID_CAMERA_INDEV 0 +%define CONFIG_AVFOUNDATION_INDEV 0 +%define CONFIG_BKTR_INDEV 0 +%define CONFIG_DECKLINK_INDEV 0 +%define CONFIG_LIBNDI_NEWTEK_INDEV 0 +%define CONFIG_DSHOW_INDEV 0 +%define CONFIG_FBDEV_INDEV 0 +%define CONFIG_GDIGRAB_INDEV 0 +%define CONFIG_IEC61883_INDEV 0 +%define CONFIG_JACK_INDEV 0 +%define CONFIG_KMSGRAB_INDEV 0 +%define CONFIG_LAVFI_INDEV 0 +%define CONFIG_OPENAL_INDEV 0 +%define CONFIG_OSS_INDEV 0 +%define CONFIG_PULSE_INDEV 0 +%define CONFIG_SNDIO_INDEV 0 +%define CONFIG_V4L2_INDEV 0 +%define CONFIG_VFWCAP_INDEV 0 +%define CONFIG_XCBGRAB_INDEV 0 +%define CONFIG_LIBCDIO_INDEV 0 +%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_ALSA_OUTDEV 0 +%define CONFIG_CACA_OUTDEV 0 +%define CONFIG_DECKLINK_OUTDEV 0 +%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +%define CONFIG_FBDEV_OUTDEV 0 +%define CONFIG_OPENGL_OUTDEV 0 +%define CONFIG_OSS_OUTDEV 0 +%define CONFIG_PULSE_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 +%define CONFIG_SNDIO_OUTDEV 0 +%define CONFIG_V4L2_OUTDEV 0 +%define CONFIG_XV_OUTDEV 0 +%define CONFIG_ABENCH_FILTER 0 +%define CONFIG_ACOMPRESSOR_FILTER 0 +%define CONFIG_ACONTRAST_FILTER 0 +%define CONFIG_ACOPY_FILTER 0 +%define CONFIG_ACUE_FILTER 0 %define CONFIG_ACROSSFADE_FILTER 0 +%define CONFIG_ACROSSOVER_FILTER 0 +%define CONFIG_ACRUSHER_FILTER 0 +%define CONFIG_ADECLICK_FILTER 0 +%define CONFIG_ADECLIP_FILTER 0 %define CONFIG_ADELAY_FILTER 0 +%define CONFIG_ADERIVATIVE_FILTER 0 %define CONFIG_AECHO_FILTER 0 +%define CONFIG_AEMPHASIS_FILTER 0 %define CONFIG_AEVAL_FILTER 0 %define CONFIG_AFADE_FILTER 0 +%define CONFIG_AFFTDN_FILTER 0 +%define CONFIG_AFFTFILT_FILTER 0 +%define CONFIG_AFIR_FILTER 0 %define CONFIG_AFORMAT_FILTER 0 +%define CONFIG_AGATE_FILTER 0 +%define CONFIG_AIIR_FILTER 0 +%define CONFIG_AINTEGRAL_FILTER 0 %define CONFIG_AINTERLEAVE_FILTER 0 +%define CONFIG_ALIMITER_FILTER 0 %define CONFIG_ALLPASS_FILTER 0 +%define CONFIG_ALOOP_FILTER 0 %define CONFIG_AMERGE_FILTER 0 +%define CONFIG_AMETADATA_FILTER 0 %define CONFIG_AMIX_FILTER 0 +%define CONFIG_AMULTIPLY_FILTER 0 +%define CONFIG_ANEQUALIZER_FILTER 0 %define CONFIG_ANULL_FILTER 0 %define CONFIG_APAD_FILTER 0 %define CONFIG_APERMS_FILTER 0 %define CONFIG_APHASER_FILTER 0 +%define CONFIG_APULSATOR_FILTER 0 +%define CONFIG_AREALTIME_FILTER 0 %define CONFIG_ARESAMPLE_FILTER 0 %define CONFIG_AREVERSE_FILTER 0 %define CONFIG_ASELECT_FILTER 0 @@ -1462,10 +1590,10 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 -%define CONFIG_ASTREAMSYNC_FILTER 0 -%define CONFIG_ASYNCTS_FILTER 0 +%define CONFIG_ASTREAMSELECT_FILTER 0 %define CONFIG_ATEMPO_FILTER 0 %define CONFIG_ATRIM_FILTER 0 %define CONFIG_AZMQ_FILTER 0 @@ -1478,88 +1606,162 @@ %define CONFIG_CHANNELSPLIT_FILTER 0 %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 +%define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CROSSFEED_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 +%define CONFIG_DRMETER_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 %define CONFIG_EBUR128_FILTER 0 %define CONFIG_EQUALIZER_FILTER 0 +%define CONFIG_EXTRASTEREO_FILTER 0 +%define CONFIG_FIREQUALIZER_FILTER 0 %define CONFIG_FLANGER_FILTER 0 +%define CONFIG_HAAS_FILTER 0 +%define CONFIG_HDCD_FILTER 0 +%define CONFIG_HEADPHONE_FILTER 0 %define CONFIG_HIGHPASS_FILTER 0 +%define CONFIG_HIGHSHELF_FILTER 0 %define CONFIG_JOIN_FILTER 0 %define CONFIG_LADSPA_FILTER 0 +%define CONFIG_LOUDNORM_FILTER 0 %define CONFIG_LOWPASS_FILTER 0 +%define CONFIG_LOWSHELF_FILTER 0 +%define CONFIG_LV2_FILTER 0 +%define CONFIG_MCOMPAND_FILTER 0 %define CONFIG_PAN_FILTER 0 %define CONFIG_REPLAYGAIN_FILTER 0 %define CONFIG_RESAMPLE_FILTER 0 +%define CONFIG_RUBBERBAND_FILTER 0 %define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +%define CONFIG_SIDECHAINGATE_FILTER 0 %define CONFIG_SILENCEDETECT_FILTER 0 %define CONFIG_SILENCEREMOVE_FILTER 0 +%define CONFIG_SOFALIZER_FILTER 0 +%define CONFIG_STEREOTOOLS_FILTER 0 +%define CONFIG_STEREOWIDEN_FILTER 0 +%define CONFIG_SUPEREQUALIZER_FILTER 0 +%define CONFIG_SURROUND_FILTER 0 %define CONFIG_TREBLE_FILTER 0 +%define CONFIG_TREMOLO_FILTER 0 +%define CONFIG_VIBRATO_FILTER 0 %define CONFIG_VOLUME_FILTER 0 %define CONFIG_VOLUMEDETECT_FILTER 0 %define CONFIG_AEVALSRC_FILTER 0 +%define CONFIG_ANOISESRC_FILTER 0 %define CONFIG_ANULLSRC_FILTER 0 %define CONFIG_FLITE_FILTER 0 +%define CONFIG_HILBERT_FILTER 0 +%define CONFIG_SINC_FILTER 0 %define CONFIG_SINE_FILTER 0 %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 +%define CONFIG_AMPLIFY_FILTER 0 %define CONFIG_ASS_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 +%define CONFIG_AVGBLUR_OPENCL_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 +%define CONFIG_BM3D_FILTER 0 %define CONFIG_BOXBLUR_FILTER 0 +%define CONFIG_BOXBLUR_OPENCL_FILTER 0 +%define CONFIG_BWDIF_FILTER 0 +%define CONFIG_CHROMAHOLD_FILTER 0 +%define CONFIG_CHROMAKEY_FILTER 0 +%define CONFIG_CHROMASHIFT_FILTER 0 +%define CONFIG_CIESCOPE_FILTER 0 %define CONFIG_CODECVIEW_FILTER 0 %define CONFIG_COLORBALANCE_FILTER 0 %define CONFIG_COLORCHANNELMIXER_FILTER 0 %define CONFIG_COLORKEY_FILTER 0 %define CONFIG_COLORLEVELS_FILTER 0 %define CONFIG_COLORMATRIX_FILTER 0 +%define CONFIG_COLORSPACE_FILTER 0 +%define CONFIG_CONVOLUTION_FILTER 0 +%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 +%define CONFIG_CONVOLVE_FILTER 0 %define CONFIG_COPY_FILTER 0 +%define CONFIG_COREIMAGE_FILTER 0 %define CONFIG_COVER_RECT_FILTER 0 %define CONFIG_CROP_FILTER 0 %define CONFIG_CROPDETECT_FILTER 0 +%define CONFIG_CUE_FILTER 0 %define CONFIG_CURVES_FILTER 0 +%define CONFIG_DATASCOPE_FILTER 0 %define CONFIG_DCTDNOIZ_FILTER 0 %define CONFIG_DEBAND_FILTER 0 +%define CONFIG_DEBLOCK_FILTER 0 %define CONFIG_DECIMATE_FILTER 0 +%define CONFIG_DECONVOLVE_FILTER 0 +%define CONFIG_DEDOT_FILTER 0 %define CONFIG_DEFLATE_FILTER 0 +%define CONFIG_DEFLICKER_FILTER 0 +%define CONFIG_DEINTERLACE_QSV_FILTER 0 +%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 %define CONFIG_DEJUDDER_FILTER 0 %define CONFIG_DELOGO_FILTER 0 +%define CONFIG_DENOISE_VAAPI_FILTER 0 %define CONFIG_DESHAKE_FILTER 0 +%define CONFIG_DESPILL_FILTER 0 %define CONFIG_DETELECINE_FILTER 0 %define CONFIG_DILATION_FILTER 0 +%define CONFIG_DILATION_OPENCL_FILTER 0 +%define CONFIG_DISPLACE_FILTER 0 +%define CONFIG_DOUBLEWEAVE_FILTER 0 %define CONFIG_DRAWBOX_FILTER 0 %define CONFIG_DRAWGRAPH_FILTER 0 %define CONFIG_DRAWGRID_FILTER 0 %define CONFIG_DRAWTEXT_FILTER 0 %define CONFIG_EDGEDETECT_FILTER 0 %define CONFIG_ELBG_FILTER 0 +%define CONFIG_ENTROPY_FILTER 0 %define CONFIG_EQ_FILTER 0 %define CONFIG_EROSION_FILTER 0 +%define CONFIG_EROSION_OPENCL_FILTER 0 %define CONFIG_EXTRACTPLANES_FILTER 0 %define CONFIG_FADE_FILTER 0 +%define CONFIG_FFTDNOIZ_FILTER 0 %define CONFIG_FFTFILT_FILTER 0 %define CONFIG_FIELD_FILTER 0 +%define CONFIG_FIELDHINT_FILTER 0 %define CONFIG_FIELDMATCH_FILTER 0 %define CONFIG_FIELDORDER_FILTER 0 +%define CONFIG_FILLBORDERS_FILTER 0 %define CONFIG_FIND_RECT_FILTER 0 +%define CONFIG_FLOODFILL_FILTER 0 %define CONFIG_FORMAT_FILTER 0 %define CONFIG_FPS_FILTER 0 %define CONFIG_FRAMEPACK_FILTER 0 +%define CONFIG_FRAMERATE_FILTER 0 %define CONFIG_FRAMESTEP_FILTER 0 +%define CONFIG_FREEZEDETECT_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 +%define CONFIG_GRAPHMONITOR_FILTER 0 +%define CONFIG_GREYEDGE_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 %define CONFIG_HFLIP_FILTER 0 %define CONFIG_HISTEQ_FILTER 0 %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 %define CONFIG_HUE_FILTER 0 +%define CONFIG_HWDOWNLOAD_FILTER 0 +%define CONFIG_HWMAP_FILTER 0 +%define CONFIG_HWUPLOAD_FILTER 0 +%define CONFIG_HWUPLOAD_CUDA_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1567,19 +1769,40 @@ %define CONFIG_INTERLEAVE_FILTER 0 %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 -%define CONFIG_LUT3D_FILTER 0 +%define CONFIG_LENSFUN_FILTER 0 +%define CONFIG_LIBVMAF_FILTER 0 +%define CONFIG_LIMITER_FILTER 0 +%define CONFIG_LOOP_FILTER 0 +%define CONFIG_LUMAKEY_FILTER 0 %define CONFIG_LUT_FILTER 0 +%define CONFIG_LUT1D_FILTER 0 +%define CONFIG_LUT2_FILTER 0 +%define CONFIG_LUT3D_FILTER 0 %define CONFIG_LUTRGB_FILTER 0 %define CONFIG_LUTYUV_FILTER 0 +%define CONFIG_MASKEDCLAMP_FILTER 0 +%define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 +%define CONFIG_METADATA_FILTER 0 +%define CONFIG_MIDEQUALIZER_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 +%define CONFIG_MIX_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 +%define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 +%define CONFIG_NORMALIZE_FILTER 0 %define CONFIG_NULL_FILTER 0 +%define CONFIG_OCR_FILTER 0 %define CONFIG_OCV_FILTER 0 +%define CONFIG_OSCILLOSCOPE_FILTER 0 %define CONFIG_OVERLAY_FILTER 0 +%define CONFIG_OVERLAY_OPENCL_FILTER 0 +%define CONFIG_OVERLAY_QSV_FILTER 0 %define CONFIG_OWDENOISE_FILTER 0 %define CONFIG_PAD_FILTER 0 %define CONFIG_PALETTEGEN_FILTER 0 @@ -1588,135 +1811,445 @@ %define CONFIG_PERSPECTIVE_FILTER 0 %define CONFIG_PHASE_FILTER 0 %define CONFIG_PIXDESCTEST_FILTER 0 +%define CONFIG_PIXSCOPE_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREMULTIPLY_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 +%define CONFIG_PREWITT_OPENCL_FILTER 0 +%define CONFIG_PROCAMP_VAAPI_FILTER 0 +%define CONFIG_PROGRAM_OPENCL_FILTER 0 +%define CONFIG_PSEUDOCOLOR_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 %define CONFIG_RANDOM_FILTER 0 +%define CONFIG_READEIA608_FILTER 0 +%define CONFIG_READVITC_FILTER 0 +%define CONFIG_REALTIME_FILTER 0 +%define CONFIG_REMAP_FILTER 0 %define CONFIG_REMOVEGRAIN_FILTER 0 %define CONFIG_REMOVELOGO_FILTER 0 %define CONFIG_REPEATFIELDS_FILTER 0 %define CONFIG_REVERSE_FILTER 0 +%define CONFIG_RGBASHIFT_FILTER 0 +%define CONFIG_ROBERTS_FILTER 0 +%define CONFIG_ROBERTS_OPENCL_FILTER 0 %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 +%define CONFIG_SCALE_CUDA_FILTER 0 +%define CONFIG_SCALE_NPP_FILTER 0 +%define CONFIG_SCALE_QSV_FILTER 0 +%define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 +%define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 %define CONFIG_SEPARATEFIELDS_FILTER 0 %define CONFIG_SETDAR_FILTER 0 %define CONFIG_SETFIELD_FILTER 0 +%define CONFIG_SETPARAMS_FILTER 0 %define CONFIG_SETPTS_FILTER 0 +%define CONFIG_SETRANGE_FILTER 0 %define CONFIG_SETSAR_FILTER 0 %define CONFIG_SETTB_FILTER 0 +%define CONFIG_SHARPNESS_VAAPI_FILTER 0 %define CONFIG_SHOWINFO_FILTER 0 %define CONFIG_SHOWPALETTE_FILTER 0 +%define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 +%define CONFIG_SIGNATURE_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 +%define CONFIG_SOBEL_OPENCL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 +%define CONFIG_SR_FILTER 0 %define CONFIG_SSIM_FILTER 0 %define CONFIG_STEREO3D_FILTER 0 +%define CONFIG_STREAMSELECT_FILTER 0 %define CONFIG_SUBTITLES_FILTER 0 %define CONFIG_SUPER2XSAI_FILTER 0 +%define CONFIG_SWAPRECT_FILTER 0 %define CONFIG_SWAPUV_FILTER 0 %define CONFIG_TBLEND_FILTER 0 %define CONFIG_TELECINE_FILTER 0 +%define CONFIG_THRESHOLD_FILTER 0 %define CONFIG_THUMBNAIL_FILTER 0 +%define CONFIG_THUMBNAIL_CUDA_FILTER 0 %define CONFIG_TILE_FILTER 0 %define CONFIG_TINTERLACE_FILTER 0 +%define CONFIG_TLUT2_FILTER 0 +%define CONFIG_TMIX_FILTER 0 +%define CONFIG_TONEMAP_FILTER 0 +%define CONFIG_TONEMAP_OPENCL_FILTER 0 +%define CONFIG_TPAD_FILTER 0 %define CONFIG_TRANSPOSE_FILTER 0 +%define CONFIG_TRANSPOSE_NPP_FILTER 0 %define CONFIG_TRIM_FILTER 0 +%define CONFIG_UNPREMULTIPLY_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 +%define CONFIG_UNSHARP_OPENCL_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 +%define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 +%define CONFIG_VFRDET_FILTER 0 +%define CONFIG_VIBRANCE_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 %define CONFIG_VIDSTABTRANSFORM_FILTER 0 %define CONFIG_VIGNETTE_FILTER 0 +%define CONFIG_VMAFMOTION_FILTER 0 +%define CONFIG_VPP_QSV_FILTER 0 +%define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 +%define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 +%define CONFIG_XSTACK_FILTER 0 %define CONFIG_YADIF_FILTER 0 +%define CONFIG_YADIF_CUDA_FILTER 0 %define CONFIG_ZMQ_FILTER 0 %define CONFIG_ZOOMPAN_FILTER 0 +%define CONFIG_ZSCALE_FILTER 0 +%define CONFIG_ALLRGB_FILTER 0 +%define CONFIG_ALLYUV_FILTER 0 %define CONFIG_CELLAUTO_FILTER 0 %define CONFIG_COLOR_FILTER 0 +%define CONFIG_COREIMAGESRC_FILTER 0 %define CONFIG_FREI0R_SRC_FILTER 0 %define CONFIG_HALDCLUTSRC_FILTER 0 %define CONFIG_LIFE_FILTER 0 %define CONFIG_MANDELBROT_FILTER 0 %define CONFIG_MPTESTSRC_FILTER 0 %define CONFIG_NULLSRC_FILTER 0 +%define CONFIG_OPENCLSRC_FILTER 0 +%define CONFIG_PAL75BARS_FILTER 0 +%define CONFIG_PAL100BARS_FILTER 0 %define CONFIG_RGBTESTSRC_FILTER 0 %define CONFIG_SMPTEBARS_FILTER 0 %define CONFIG_SMPTEHDBARS_FILTER 0 %define CONFIG_TESTSRC_FILTER 0 +%define CONFIG_TESTSRC2_FILTER 0 +%define CONFIG_YUVTESTSRC_FILTER 0 %define CONFIG_NULLSINK_FILTER 0 +%define CONFIG_ABITSCOPE_FILTER 0 %define CONFIG_ADRAWGRAPH_FILTER 0 +%define CONFIG_AGRAPHMONITOR_FILTER 0 +%define CONFIG_AHISTOGRAM_FILTER 0 +%define CONFIG_APHASEMETER_FILTER 0 %define CONFIG_AVECTORSCOPE_FILTER 0 %define CONFIG_CONCAT_FILTER 0 %define CONFIG_SHOWCQT_FILTER 0 +%define CONFIG_SHOWFREQS_FILTER 0 %define CONFIG_SHOWSPECTRUM_FILTER 0 +%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 %define CONFIG_SHOWVOLUME_FILTER 0 %define CONFIG_SHOWWAVES_FILTER 0 %define CONFIG_SHOWWAVESPIC_FILTER 0 +%define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 -%define CONFIG_H263_VAAPI_HWACCEL 0 -%define CONFIG_H263_VDPAU_HWACCEL 0 -%define CONFIG_H264_D3D11VA_HWACCEL 0 -%define CONFIG_H264_DXVA2_HWACCEL 0 -%define CONFIG_H264_MMAL_HWACCEL 0 -%define CONFIG_H264_QSV_HWACCEL 0 -%define CONFIG_H264_VAAPI_HWACCEL 0 -%define CONFIG_H264_VDA_HWACCEL 0 -%define CONFIG_H264_VDA_OLD_HWACCEL 0 -%define CONFIG_H264_VDPAU_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA_HWACCEL 0 -%define CONFIG_HEVC_DXVA2_HWACCEL 0 -%define CONFIG_HEVC_QSV_HWACCEL 0 -%define CONFIG_HEVC_VDPAU_HWACCEL 0 -%define CONFIG_MPEG1_XVMC_HWACCEL 0 -%define CONFIG_MPEG1_VDPAU_HWACCEL 0 -%define CONFIG_MPEG2_XVMC_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -%define CONFIG_MPEG2_DXVA2_HWACCEL 0 -%define CONFIG_MPEG2_QSV_HWACCEL 0 -%define CONFIG_MPEG2_VAAPI_HWACCEL 0 -%define CONFIG_MPEG2_VDPAU_HWACCEL 0 -%define CONFIG_MPEG4_VAAPI_HWACCEL 0 -%define CONFIG_MPEG4_VDPAU_HWACCEL 0 -%define CONFIG_VC1_D3D11VA_HWACCEL 0 -%define CONFIG_VC1_DXVA2_HWACCEL 0 -%define CONFIG_VC1_VAAPI_HWACCEL 0 -%define CONFIG_VC1_VDPAU_HWACCEL 0 -%define CONFIG_VC1_QSV_HWACCEL 0 -%define CONFIG_WMV3_D3D11VA_HWACCEL 0 -%define CONFIG_WMV3_DXVA2_HWACCEL 0 -%define CONFIG_WMV3_VAAPI_HWACCEL 0 -%define CONFIG_WMV3_VDPAU_HWACCEL 0 -%define CONFIG_ALSA_INDEV 0 -%define CONFIG_AVFOUNDATION_INDEV 0 -%define CONFIG_BKTR_INDEV 0 -%define CONFIG_DECKLINK_INDEV 0 -%define CONFIG_DSHOW_INDEV 0 -%define CONFIG_DV1394_INDEV 0 -%define CONFIG_FBDEV_INDEV 0 -%define CONFIG_GDIGRAB_INDEV 0 -%define CONFIG_IEC61883_INDEV 0 -%define CONFIG_JACK_INDEV 0 -%define CONFIG_LAVFI_INDEV 0 -%define CONFIG_OPENAL_INDEV 0 -%define CONFIG_OSS_INDEV 0 -%define CONFIG_PULSE_INDEV 0 -%define CONFIG_QTKIT_INDEV 0 -%define CONFIG_SNDIO_INDEV 0 -%define CONFIG_V4L2_INDEV 0 -%define CONFIG_VFWCAP_INDEV 0 -%define CONFIG_X11GRAB_INDEV 0 -%define CONFIG_X11GRAB_XCB_INDEV 0 -%define CONFIG_LIBCDIO_INDEV 0 -%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_AFIFO_FILTER 0 +%define CONFIG_FIFO_FILTER 0 +%define CONFIG_AA_DEMUXER 1 +%define CONFIG_AAC_DEMUXER 1 +%define CONFIG_AC3_DEMUXER 1 +%define CONFIG_ACM_DEMUXER 1 +%define CONFIG_ACT_DEMUXER 1 +%define CONFIG_ADF_DEMUXER 1 +%define CONFIG_ADP_DEMUXER 1 +%define CONFIG_ADS_DEMUXER 1 +%define CONFIG_ADX_DEMUXER 1 +%define CONFIG_AEA_DEMUXER 1 +%define CONFIG_AFC_DEMUXER 1 +%define CONFIG_AIFF_DEMUXER 1 +%define CONFIG_AIX_DEMUXER 1 +%define CONFIG_AMR_DEMUXER 1 +%define CONFIG_AMRNB_DEMUXER 1 +%define CONFIG_AMRWB_DEMUXER 1 +%define CONFIG_ANM_DEMUXER 1 +%define CONFIG_APC_DEMUXER 1 +%define CONFIG_APE_DEMUXER 1 +%define CONFIG_APNG_DEMUXER 1 +%define CONFIG_APTX_DEMUXER 1 +%define CONFIG_APTX_HD_DEMUXER 1 +%define CONFIG_AQTITLE_DEMUXER 1 +%define CONFIG_ASF_DEMUXER 1 +%define CONFIG_ASF_O_DEMUXER 1 +%define CONFIG_ASS_DEMUXER 1 +%define CONFIG_AST_DEMUXER 1 +%define CONFIG_AU_DEMUXER 1 +%define CONFIG_AVI_DEMUXER 1 +%define CONFIG_AVISYNTH_DEMUXER 0 +%define CONFIG_AVR_DEMUXER 1 +%define CONFIG_AVS_DEMUXER 1 +%define CONFIG_AVS2_DEMUXER 1 +%define CONFIG_BETHSOFTVID_DEMUXER 1 +%define CONFIG_BFI_DEMUXER 1 +%define CONFIG_BINTEXT_DEMUXER 1 +%define CONFIG_BINK_DEMUXER 1 +%define CONFIG_BIT_DEMUXER 1 +%define CONFIG_BMV_DEMUXER 1 +%define CONFIG_BFSTM_DEMUXER 1 +%define CONFIG_BRSTM_DEMUXER 1 +%define CONFIG_BOA_DEMUXER 1 +%define CONFIG_C93_DEMUXER 1 +%define CONFIG_CAF_DEMUXER 1 +%define CONFIG_CAVSVIDEO_DEMUXER 1 +%define CONFIG_CDG_DEMUXER 1 +%define CONFIG_CDXL_DEMUXER 1 +%define CONFIG_CINE_DEMUXER 1 +%define CONFIG_CODEC2_DEMUXER 1 +%define CONFIG_CODEC2RAW_DEMUXER 1 +%define CONFIG_CONCAT_DEMUXER 1 +%define CONFIG_DASH_DEMUXER 0 +%define CONFIG_DATA_DEMUXER 1 +%define CONFIG_DAUD_DEMUXER 1 +%define CONFIG_DCSTR_DEMUXER 1 +%define CONFIG_DFA_DEMUXER 1 +%define CONFIG_DIRAC_DEMUXER 1 +%define CONFIG_DNXHD_DEMUXER 1 +%define CONFIG_DSF_DEMUXER 1 +%define CONFIG_DSICIN_DEMUXER 1 +%define CONFIG_DSS_DEMUXER 1 +%define CONFIG_DTS_DEMUXER 1 +%define CONFIG_DTSHD_DEMUXER 1 +%define CONFIG_DV_DEMUXER 1 +%define CONFIG_DVBSUB_DEMUXER 1 +%define CONFIG_DVBTXT_DEMUXER 1 +%define CONFIG_DXA_DEMUXER 1 +%define CONFIG_EA_DEMUXER 1 +%define CONFIG_EA_CDATA_DEMUXER 1 +%define CONFIG_EAC3_DEMUXER 1 +%define CONFIG_EPAF_DEMUXER 1 +%define CONFIG_FFMETADATA_DEMUXER 1 +%define CONFIG_FILMSTRIP_DEMUXER 1 +%define CONFIG_FITS_DEMUXER 1 +%define CONFIG_FLAC_DEMUXER 1 +%define CONFIG_FLIC_DEMUXER 1 +%define CONFIG_FLV_DEMUXER 1 +%define CONFIG_LIVE_FLV_DEMUXER 1 +%define CONFIG_FOURXM_DEMUXER 1 +%define CONFIG_FRM_DEMUXER 1 +%define CONFIG_FSB_DEMUXER 1 +%define CONFIG_G722_DEMUXER 1 +%define CONFIG_G723_1_DEMUXER 1 +%define CONFIG_G726_DEMUXER 1 +%define CONFIG_G726LE_DEMUXER 1 +%define CONFIG_G729_DEMUXER 1 +%define CONFIG_GDV_DEMUXER 1 +%define CONFIG_GENH_DEMUXER 1 +%define CONFIG_GIF_DEMUXER 1 +%define CONFIG_GSM_DEMUXER 1 +%define CONFIG_GXF_DEMUXER 1 +%define CONFIG_H261_DEMUXER 1 +%define CONFIG_H263_DEMUXER 1 +%define CONFIG_H264_DEMUXER 1 +%define CONFIG_HEVC_DEMUXER 1 +%define CONFIG_HLS_DEMUXER 1 +%define CONFIG_HNM_DEMUXER 1 +%define CONFIG_ICO_DEMUXER 1 +%define CONFIG_IDCIN_DEMUXER 1 +%define CONFIG_IDF_DEMUXER 1 +%define CONFIG_IFF_DEMUXER 1 +%define CONFIG_ILBC_DEMUXER 1 +%define CONFIG_IMAGE2_DEMUXER 1 +%define CONFIG_IMAGE2PIPE_DEMUXER 1 +%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 +%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 +%define CONFIG_INGENIENT_DEMUXER 1 +%define CONFIG_IPMOVIE_DEMUXER 1 +%define CONFIG_IRCAM_DEMUXER 1 +%define CONFIG_ISS_DEMUXER 1 +%define CONFIG_IV8_DEMUXER 1 +%define CONFIG_IVF_DEMUXER 1 +%define CONFIG_IVR_DEMUXER 1 +%define CONFIG_JACOSUB_DEMUXER 1 +%define CONFIG_JV_DEMUXER 1 +%define CONFIG_LMLM4_DEMUXER 1 +%define CONFIG_LOAS_DEMUXER 1 +%define CONFIG_LRC_DEMUXER 1 +%define CONFIG_LVF_DEMUXER 1 +%define CONFIG_LXF_DEMUXER 1 +%define CONFIG_M4V_DEMUXER 1 +%define CONFIG_MATROSKA_DEMUXER 1 +%define CONFIG_MGSTS_DEMUXER 1 +%define CONFIG_MICRODVD_DEMUXER 1 +%define CONFIG_MJPEG_DEMUXER 1 +%define CONFIG_MJPEG_2000_DEMUXER 1 +%define CONFIG_MLP_DEMUXER 1 +%define CONFIG_MLV_DEMUXER 1 +%define CONFIG_MM_DEMUXER 1 +%define CONFIG_MMF_DEMUXER 1 +%define CONFIG_MOV_DEMUXER 1 +%define CONFIG_MP3_DEMUXER 1 +%define CONFIG_MPC_DEMUXER 1 +%define CONFIG_MPC8_DEMUXER 1 +%define CONFIG_MPEGPS_DEMUXER 1 +%define CONFIG_MPEGTS_DEMUXER 1 +%define CONFIG_MPEGTSRAW_DEMUXER 1 +%define CONFIG_MPEGVIDEO_DEMUXER 1 +%define CONFIG_MPJPEG_DEMUXER 1 +%define CONFIG_MPL2_DEMUXER 1 +%define CONFIG_MPSUB_DEMUXER 1 +%define CONFIG_MSF_DEMUXER 1 +%define CONFIG_MSNWC_TCP_DEMUXER 1 +%define CONFIG_MTAF_DEMUXER 1 +%define CONFIG_MTV_DEMUXER 1 +%define CONFIG_MUSX_DEMUXER 1 +%define CONFIG_MV_DEMUXER 1 +%define CONFIG_MVI_DEMUXER 1 +%define CONFIG_MXF_DEMUXER 1 +%define CONFIG_MXG_DEMUXER 1 +%define CONFIG_NC_DEMUXER 1 +%define CONFIG_NISTSPHERE_DEMUXER 1 +%define CONFIG_NSP_DEMUXER 1 +%define CONFIG_NSV_DEMUXER 1 +%define CONFIG_NUT_DEMUXER 1 +%define CONFIG_NUV_DEMUXER 1 +%define CONFIG_OGG_DEMUXER 1 +%define CONFIG_OMA_DEMUXER 1 +%define CONFIG_PAF_DEMUXER 1 +%define CONFIG_PCM_ALAW_DEMUXER 1 +%define CONFIG_PCM_MULAW_DEMUXER 1 +%define CONFIG_PCM_VIDC_DEMUXER 1 +%define CONFIG_PCM_F64BE_DEMUXER 1 +%define CONFIG_PCM_F64LE_DEMUXER 1 +%define CONFIG_PCM_F32BE_DEMUXER 1 +%define CONFIG_PCM_F32LE_DEMUXER 1 +%define CONFIG_PCM_S32BE_DEMUXER 1 +%define CONFIG_PCM_S32LE_DEMUXER 1 +%define CONFIG_PCM_S24BE_DEMUXER 1 +%define CONFIG_PCM_S24LE_DEMUXER 1 +%define CONFIG_PCM_S16BE_DEMUXER 1 +%define CONFIG_PCM_S16LE_DEMUXER 1 +%define CONFIG_PCM_S8_DEMUXER 1 +%define CONFIG_PCM_U32BE_DEMUXER 1 +%define CONFIG_PCM_U32LE_DEMUXER 1 +%define CONFIG_PCM_U24BE_DEMUXER 1 +%define CONFIG_PCM_U24LE_DEMUXER 1 +%define CONFIG_PCM_U16BE_DEMUXER 1 +%define CONFIG_PCM_U16LE_DEMUXER 1 +%define CONFIG_PCM_U8_DEMUXER 1 +%define CONFIG_PJS_DEMUXER 1 +%define CONFIG_PMP_DEMUXER 1 +%define CONFIG_PVA_DEMUXER 1 +%define CONFIG_PVF_DEMUXER 1 +%define CONFIG_QCP_DEMUXER 1 +%define CONFIG_R3D_DEMUXER 1 +%define CONFIG_RAWVIDEO_DEMUXER 1 +%define CONFIG_REALTEXT_DEMUXER 1 +%define CONFIG_REDSPARK_DEMUXER 1 +%define CONFIG_RL2_DEMUXER 1 +%define CONFIG_RM_DEMUXER 1 +%define CONFIG_ROQ_DEMUXER 1 +%define CONFIG_RPL_DEMUXER 1 +%define CONFIG_RSD_DEMUXER 1 +%define CONFIG_RSO_DEMUXER 1 +%define CONFIG_RTP_DEMUXER 0 +%define CONFIG_RTSP_DEMUXER 0 +%define CONFIG_S337M_DEMUXER 1 +%define CONFIG_SAMI_DEMUXER 1 +%define CONFIG_SAP_DEMUXER 0 +%define CONFIG_SBC_DEMUXER 1 +%define CONFIG_SBG_DEMUXER 1 +%define CONFIG_SCC_DEMUXER 1 +%define CONFIG_SDP_DEMUXER 0 +%define CONFIG_SDR2_DEMUXER 1 +%define CONFIG_SDS_DEMUXER 1 +%define CONFIG_SDX_DEMUXER 1 +%define CONFIG_SEGAFILM_DEMUXER 1 +%define CONFIG_SER_DEMUXER 1 +%define CONFIG_SHORTEN_DEMUXER 1 +%define CONFIG_SIFF_DEMUXER 1 +%define CONFIG_SLN_DEMUXER 1 +%define CONFIG_SMACKER_DEMUXER 1 +%define CONFIG_SMJPEG_DEMUXER 1 +%define CONFIG_SMUSH_DEMUXER 1 +%define CONFIG_SOL_DEMUXER 1 +%define CONFIG_SOX_DEMUXER 1 +%define CONFIG_SPDIF_DEMUXER 1 +%define CONFIG_SRT_DEMUXER 1 +%define CONFIG_STR_DEMUXER 1 +%define CONFIG_STL_DEMUXER 1 +%define CONFIG_SUBVIEWER1_DEMUXER 1 +%define CONFIG_SUBVIEWER_DEMUXER 1 +%define CONFIG_SUP_DEMUXER 1 +%define CONFIG_SVAG_DEMUXER 1 +%define CONFIG_SWF_DEMUXER 1 +%define CONFIG_TAK_DEMUXER 1 +%define CONFIG_TEDCAPTIONS_DEMUXER 1 +%define CONFIG_THP_DEMUXER 1 +%define CONFIG_THREEDOSTR_DEMUXER 1 +%define CONFIG_TIERTEXSEQ_DEMUXER 1 +%define CONFIG_TMV_DEMUXER 1 +%define CONFIG_TRUEHD_DEMUXER 1 +%define CONFIG_TTA_DEMUXER 1 +%define CONFIG_TXD_DEMUXER 1 +%define CONFIG_TTY_DEMUXER 1 +%define CONFIG_TY_DEMUXER 1 +%define CONFIG_V210_DEMUXER 1 +%define CONFIG_V210X_DEMUXER 1 +%define CONFIG_VAG_DEMUXER 1 +%define CONFIG_VC1_DEMUXER 1 +%define CONFIG_VC1T_DEMUXER 1 +%define CONFIG_VIVO_DEMUXER 1 +%define CONFIG_VMD_DEMUXER 1 +%define CONFIG_VOBSUB_DEMUXER 1 +%define CONFIG_VOC_DEMUXER 1 +%define CONFIG_VPK_DEMUXER 1 +%define CONFIG_VPLAYER_DEMUXER 1 +%define CONFIG_VQF_DEMUXER 1 +%define CONFIG_W64_DEMUXER 1 +%define CONFIG_WAV_DEMUXER 1 +%define CONFIG_WC3_DEMUXER 1 +%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 +%define CONFIG_WEBVTT_DEMUXER 1 +%define CONFIG_WSAUD_DEMUXER 1 +%define CONFIG_WSD_DEMUXER 1 +%define CONFIG_WSVQA_DEMUXER 1 +%define CONFIG_WTV_DEMUXER 1 +%define CONFIG_WVE_DEMUXER 1 +%define CONFIG_WV_DEMUXER 1 +%define CONFIG_XA_DEMUXER 1 +%define CONFIG_XBIN_DEMUXER 1 +%define CONFIG_XMV_DEMUXER 1 +%define CONFIG_XVAG_DEMUXER 1 +%define CONFIG_XWMA_DEMUXER 1 +%define CONFIG_YOP_DEMUXER 1 +%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 +%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 +%define CONFIG_LIBGME_DEMUXER 0 +%define CONFIG_LIBMODPLUG_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 +%define CONFIG_VAPOURSYNTH_DEMUXER 0 %define CONFIG_A64_MUXER 0 %define CONFIG_AC3_MUXER 0 %define CONFIG_ADTS_MUXER 0 @@ -1724,6 +2257,8 @@ %define CONFIG_AIFF_MUXER 0 %define CONFIG_AMR_MUXER 0 %define CONFIG_APNG_MUXER 0 +%define CONFIG_APTX_MUXER 0 +%define CONFIG_APTX_HD_MUXER 0 %define CONFIG_ASF_MUXER 0 %define CONFIG_ASS_MUXER 0 %define CONFIG_AST_MUXER 0 @@ -1731,9 +2266,12 @@ %define CONFIG_AU_MUXER 0 %define CONFIG_AVI_MUXER 0 %define CONFIG_AVM2_MUXER 0 +%define CONFIG_AVS2_MUXER 0 %define CONFIG_BIT_MUXER 0 %define CONFIG_CAF_MUXER 0 %define CONFIG_CAVSVIDEO_MUXER 0 +%define CONFIG_CODEC2_MUXER 0 +%define CONFIG_CODEC2RAW_MUXER 0 %define CONFIG_CRC_MUXER 0 %define CONFIG_DASH_MUXER 0 %define CONFIG_DATA_MUXER 0 @@ -1744,20 +2282,27 @@ %define CONFIG_DV_MUXER 0 %define CONFIG_EAC3_MUXER 0 %define CONFIG_F4V_MUXER 0 -%define CONFIG_FFM_MUXER 0 %define CONFIG_FFMETADATA_MUXER 0 +%define CONFIG_FIFO_MUXER 0 +%define CONFIG_FIFO_TEST_MUXER 0 %define CONFIG_FILMSTRIP_MUXER 0 +%define CONFIG_FITS_MUXER 0 %define CONFIG_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 %define CONFIG_FRAMECRC_MUXER 0 +%define CONFIG_FRAMEHASH_MUXER 0 %define CONFIG_FRAMEMD5_MUXER 0 %define CONFIG_G722_MUXER 0 %define CONFIG_G723_1_MUXER 0 +%define CONFIG_G726_MUXER 0 +%define CONFIG_G726LE_MUXER 0 %define CONFIG_GIF_MUXER 0 +%define CONFIG_GSM_MUXER 0 %define CONFIG_GXF_MUXER 0 %define CONFIG_H261_MUXER 0 %define CONFIG_H263_MUXER 0 %define CONFIG_H264_MUXER 0 +%define CONFIG_HASH_MUXER 0 %define CONFIG_HDS_MUXER 0 %define CONFIG_HEVC_MUXER 0 %define CONFIG_HLS_MUXER 0 @@ -1800,10 +2345,12 @@ %define CONFIG_NUT_MUXER 0 %define CONFIG_OGA_MUXER 0 %define CONFIG_OGG_MUXER 0 +%define CONFIG_OGV_MUXER 0 %define CONFIG_OMA_MUXER 0 %define CONFIG_OPUS_MUXER 0 %define CONFIG_PCM_ALAW_MUXER 0 %define CONFIG_PCM_MULAW_MUXER 0 +%define CONFIG_PCM_VIDC_MUXER 0 %define CONFIG_PCM_F64BE_MUXER 0 %define CONFIG_PCM_F64LE_MUXER 0 %define CONFIG_PCM_F32BE_MUXER 0 @@ -1831,6 +2378,9 @@ %define CONFIG_RTP_MPEGTS_MUXER 0 %define CONFIG_RTSP_MUXER 0 %define CONFIG_SAP_MUXER 0 +%define CONFIG_SBC_MUXER 0 +%define CONFIG_SCC_MUXER 0 +%define CONFIG_SEGAFILM_MUXER 0 %define CONFIG_SEGMENT_MUXER 0 %define CONFIG_STREAM_SEGMENT_MUXER 0 %define CONFIG_SINGLEJPEG_MUXER 0 @@ -1840,12 +2390,14 @@ %define CONFIG_SPX_MUXER 0 %define CONFIG_SPDIF_MUXER 0 %define CONFIG_SRT_MUXER 0 +%define CONFIG_SUP_MUXER 0 %define CONFIG_SWF_MUXER 0 %define CONFIG_TEE_MUXER 0 %define CONFIG_TG2_MUXER 0 %define CONFIG_TGP_MUXER 0 %define CONFIG_MKVTIMESTAMP_V2_MUXER 0 %define CONFIG_TRUEHD_MUXER 0 +%define CONFIG_TTA_MUXER 0 %define CONFIG_UNCODEDFRAMECRC_MUXER 0 %define CONFIG_VC1_MUXER 0 %define CONFIG_VC1T_MUXER 0 @@ -1860,55 +2412,8 @@ %define CONFIG_WTV_MUXER 0 %define CONFIG_WV_MUXER 0 %define CONFIG_YUV4MPEGPIPE_MUXER 0 -%define CONFIG_LIBNUT_MUXER 0 -%define CONFIG_ALSA_OUTDEV 0 -%define CONFIG_CACA_OUTDEV 0 -%define CONFIG_DECKLINK_OUTDEV 0 -%define CONFIG_FBDEV_OUTDEV 0 -%define CONFIG_OPENGL_OUTDEV 0 -%define CONFIG_OSS_OUTDEV 0 -%define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 -%define CONFIG_SNDIO_OUTDEV 0 -%define CONFIG_V4L2_OUTDEV 0 -%define CONFIG_XV_OUTDEV 0 -%define CONFIG_AAC_PARSER 1 -%define CONFIG_AAC_LATM_PARSER 1 -%define CONFIG_AC3_PARSER 1 -%define CONFIG_ADX_PARSER 1 -%define CONFIG_BMP_PARSER 1 -%define CONFIG_CAVSVIDEO_PARSER 1 -%define CONFIG_COOK_PARSER 1 -%define CONFIG_DCA_PARSER 1 -%define CONFIG_DIRAC_PARSER 1 -%define CONFIG_DNXHD_PARSER 1 -%define CONFIG_DPX_PARSER 1 -%define CONFIG_DVBSUB_PARSER 1 -%define CONFIG_DVDSUB_PARSER 1 -%define CONFIG_DVD_NAV_PARSER 1 -%define CONFIG_FLAC_PARSER 1 -%define CONFIG_GSM_PARSER 1 -%define CONFIG_H261_PARSER 1 -%define CONFIG_H263_PARSER 1 -%define CONFIG_H264_PARSER 1 -%define CONFIG_HEVC_PARSER 1 -%define CONFIG_MJPEG_PARSER 1 -%define CONFIG_MLP_PARSER 1 -%define CONFIG_MPEG4VIDEO_PARSER 1 -%define CONFIG_MPEGAUDIO_PARSER 1 -%define CONFIG_MPEGVIDEO_PARSER 1 -%define CONFIG_OPUS_PARSER 1 -%define CONFIG_PNG_PARSER 1 -%define CONFIG_PNM_PARSER 1 -%define CONFIG_RV30_PARSER 1 -%define CONFIG_RV40_PARSER 1 -%define CONFIG_TAK_PARSER 1 -%define CONFIG_VC1_PARSER 1 -%define CONFIG_VORBIS_PARSER 1 -%define CONFIG_VP3_PARSER 1 -%define CONFIG_VP8_PARSER 1 -%define CONFIG_VP9_PARSER 1 -%define CONFIG_ASYNC_PROTOCOL 0 +%define CONFIG_CHROMAPRINT_MUXER 0 +%define CONFIG_ASYNC_PROTOCOL 1 %define CONFIG_BLURAY_PROTOCOL 0 %define CONFIG_CACHE_PROTOCOL 1 %define CONFIG_CONCAT_PROTOCOL 1 @@ -1928,6 +2433,7 @@ %define CONFIG_MMST_PROTOCOL 0 %define CONFIG_MD5_PROTOCOL 1 %define CONFIG_PIPE_PROTOCOL 1 +%define CONFIG_PROMPEG_PROTOCOL 1 %define CONFIG_RTMP_PROTOCOL 0 %define CONFIG_RTMPE_PROTOCOL 0 %define CONFIG_RTMPS_PROTOCOL 0 @@ -1938,10 +2444,9 @@ %define CONFIG_SCTP_PROTOCOL 0 %define CONFIG_SRTP_PROTOCOL 0 %define CONFIG_SUBFILE_PROTOCOL 1 +%define CONFIG_TEE_PROTOCOL 1 %define CONFIG_TCP_PROTOCOL 0 -%define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 -%define CONFIG_TLS_GNUTLS_PROTOCOL 0 -%define CONFIG_TLS_OPENSSL_PROTOCOL 0 +%define CONFIG_TLS_PROTOCOL 0 %define CONFIG_UDP_PROTOCOL 0 %define CONFIG_UDPLITE_PROTOCOL 0 %define CONFIG_UNIX_PROTOCOL 0 @@ -1950,5 +2455,6 @@ %define CONFIG_LIBRTMPS_PROTOCOL 0 %define CONFIG_LIBRTMPT_PROTOCOL 0 %define CONFIG_LIBRTMPTE_PROTOCOL 0 +%define CONFIG_LIBSRT_PROTOCOL 0 %define CONFIG_LIBSSH_PROTOCOL 0 %define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/build/ffmpeg/config-x86.h b/build/ffmpeg/config-x86.h old mode 100644 new mode 100755 index f8f71992a..0a1483e3b --- a/build/ffmpeg/config-x86.h +++ b/build/ffmpeg/config-x86.h @@ -1,12 +1,12 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/Win32/Release' --toolchain=msvc" +#define FFMPEG_CONFIGURATION "--disable-avfilter --disable-avresample --disable-bzlib --disable-d3d11va --disable-dxva2 --disable-decoder='atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq' --disable-devices --disable-doc --disable-encoders --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-filters --disable-hwaccels --disable-muxers --disable-network --disable-postproc --disable-pthreads --disable-shared --enable-gpl --enable-runtime-cpudetect --enable-static --enable-small --enable-x86asm --x86asmexe=yasm --enable-zlib --extra-cflags=-D_SYSCRT --extra-cflags=-I../../include --extra-cflags=-MD --extra-cflags=-wd4005 --extra-cflags=-wd4189 --extra-ldflags='-LIBPATH:../../lib/Win32/Release' --toolchain=msvc" #define FFMPEG_LICENSE "GPL version 2 or later" -#define CONFIG_THIS_YEAR 2015 +#define CONFIG_THIS_YEAR 2018 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86" +#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.13.26132 for x86" #define av_restrict __restrict #define EXTERN_PREFIX "_" #define EXTERN_ASM _ @@ -52,10 +52,12 @@ #define HAVE_POWER8 0 #define HAVE_PPC4XX 0 #define HAVE_VSX 0 +#define HAVE_AESNI 1 #define HAVE_AMD3DNOW 1 #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 +#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -72,12 +74,14 @@ #define HAVE_MIPSFPU 0 #define HAVE_MIPS32R2 0 #define HAVE_MIPS32R5 0 +#define HAVE_MIPS64R2 0 +#define HAVE_MIPS32R6 0 #define HAVE_MIPS64R6 0 -#define HAVE_MIPSDSPR1 0 +#define HAVE_MIPSDSP 0 #define HAVE_MIPSDSPR2 0 #define HAVE_MSA 0 -#define HAVE_LOONGSON2 1 -#define HAVE_LOONGSON3 1 +#define HAVE_LOONGSON2 0 +#define HAVE_LOONGSON3 0 #define HAVE_MMI 0 #define HAVE_ARMV5TE_EXTERNAL 0 #define HAVE_ARMV6_EXTERNAL 0 @@ -93,10 +97,12 @@ #define HAVE_POWER8_EXTERNAL 0 #define HAVE_PPC4XX_EXTERNAL 0 #define HAVE_VSX_EXTERNAL 0 +#define HAVE_AESNI_EXTERNAL 1 #define HAVE_AMD3DNOW_EXTERNAL 1 #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 0 +#define HAVE_AVX512_EXTERNAL 0 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -113,8 +119,10 @@ #define HAVE_MIPSFPU_EXTERNAL 0 #define HAVE_MIPS32R2_EXTERNAL 0 #define HAVE_MIPS32R5_EXTERNAL 0 +#define HAVE_MIPS64R2_EXTERNAL 0 +#define HAVE_MIPS32R6_EXTERNAL 0 #define HAVE_MIPS64R6_EXTERNAL 0 -#define HAVE_MIPSDSPR1_EXTERNAL 0 +#define HAVE_MIPSDSP_EXTERNAL 0 #define HAVE_MIPSDSPR2_EXTERNAL 0 #define HAVE_MSA_EXTERNAL 0 #define HAVE_LOONGSON2_EXTERNAL 0 @@ -134,10 +142,12 @@ #define HAVE_POWER8_INLINE 0 #define HAVE_PPC4XX_INLINE 0 #define HAVE_VSX_INLINE 0 +#define HAVE_AESNI_INLINE 0 #define HAVE_AMD3DNOW_INLINE 0 #define HAVE_AMD3DNOWEXT_INLINE 0 #define HAVE_AVX_INLINE 0 #define HAVE_AVX2_INLINE 0 +#define HAVE_AVX512_INLINE 0 #define HAVE_FMA3_INLINE 0 #define HAVE_FMA4_INLINE 0 #define HAVE_MMX_INLINE 0 @@ -154,8 +164,10 @@ #define HAVE_MIPSFPU_INLINE 0 #define HAVE_MIPS32R2_INLINE 0 #define HAVE_MIPS32R5_INLINE 0 +#define HAVE_MIPS64R2_INLINE 0 +#define HAVE_MIPS32R6_INLINE 0 #define HAVE_MIPS64R6_INLINE 0 -#define HAVE_MIPSDSPR1_INLINE 0 +#define HAVE_MIPSDSP_INLINE 0 #define HAVE_MIPSDSPR2_INLINE 0 #define HAVE_MSA_INLINE 0 #define HAVE_LOONGSON2_INLINE 0 @@ -165,55 +177,49 @@ #define HAVE_FAST_64BIT 0 #define HAVE_FAST_CLZ 1 #define HAVE_FAST_CMOV 0 -#define HAVE_LOCAL_ALIGNED_8 1 -#define HAVE_LOCAL_ALIGNED_16 1 -#define HAVE_LOCAL_ALIGNED_32 1 +#define HAVE_LOCAL_ALIGNED 1 #define HAVE_SIMD_ALIGN_16 1 -#define HAVE_ATOMICS_GCC 0 -#define HAVE_ATOMICS_SUNCC 0 -#define HAVE_ATOMICS_WIN32 1 +#define HAVE_SIMD_ALIGN_32 1 +#define HAVE_SIMD_ALIGN_64 1 #define HAVE_ATOMIC_CAS_PTR 0 -#define HAVE_ATOMIC_COMPARE_EXCHANGE 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 1 #define HAVE_MM_EMPTY 1 #define HAVE_RDTSC 1 -#define HAVE_SARESTART 0 +#define HAVE_SEM_TIMEDWAIT 0 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 +#define HAVE_CABS 0 +#define HAVE_CEXP 0 #define HAVE_INLINE_ASM 0 #define HAVE_SYMVER 0 -#define HAVE_YASM 1 +#define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 -#define HAVE_ALSA_ASOUNDLIB_H 0 -#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 #define HAVE_ASM_TYPES_H 0 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +#define HAVE_CUDA_H 0 +#define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 #define HAVE_DEV_IC_BT8XX_H 0 #define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 1 -#define HAVE_DLFCN_H 0 -#define HAVE_D3D11_H 1 +#define HAVE_DIRENT_H 0 +#define HAVE_DXGIDEBUG_H 1 #define HAVE_DXVA_H 1 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 1 -#define HAVE_MACH_MACH_TIME_H 0 +#define HAVE_LINUX_PERF_EVENT_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_MALLOC_H 1 -#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +#define HAVE_OPENCV2_CORE_CORE_C_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 0 -#define HAVE_SNDIO_H 0 -#define HAVE_SOUNDCARD_H 0 -#define HAVE_SYS_MMAN_H 0 #define HAVE_SYS_PARAM_H 0 #define HAVE_SYS_RESOURCE_H 0 #define HAVE_SYS_SELECT_H 0 @@ -238,6 +244,8 @@ #define HAVE_EXP2 1 #define HAVE_EXP2F 1 #define HAVE_EXPF 1 +#define HAVE_HYPOT 1 +#define HAVE_ISFINITE 1 #define HAVE_ISINF 1 #define HAVE_ISNAN 1 #define HAVE_LDEXPF 1 @@ -255,17 +263,20 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 +#define HAVE_DOS_PATHS 1 +#define HAVE_LIBC_MSVCRT 1 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 +#define HAVE_SECTION_DATA_REL_RO 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 1 +#define HAVE_ARC4RANDOM 0 #define HAVE_CLOCK_GETTIME 0 #define HAVE_CLOSESOCKET 0 #define HAVE_COMMANDLINETOARGVW 1 -#define HAVE_COTASKMEMFREE 1 -#define HAVE_CRYPTGENRANDOM 1 -#define HAVE_DLOPEN 0 #define HAVE_FCNTL 0 -#define HAVE_FLT_LIM 1 -#define HAVE_FORK 0 #define HAVE_GETADDRINFO 0 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 0 @@ -273,7 +284,6 @@ #define HAVE_GETPROCESSMEMORYINFO 1 #define HAVE_GETPROCESSTIMES 1 #define HAVE_GETRUSAGE 0 -#define HAVE_GETSERVBYPORT 0 #define HAVE_GETSYSTEMTIMEASFILETIME 1 #define HAVE_GETTIMEOFDAY 0 #define HAVE_GLOB 0 @@ -281,9 +291,9 @@ #define HAVE_GMTIME_R 0 #define HAVE_INET_ATON 0 #define HAVE_ISATTY 1 -#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 #define HAVE_LOCALTIME_R 0 +#define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 #define HAVE_MAPVIEWOFFILE 1 @@ -296,6 +306,7 @@ #define HAVE_POSIX_MEMALIGN 0 #define HAVE_PTHREAD_CANCEL 0 #define HAVE_SCHED_GETAFFINITY 0 +#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 1 #define HAVE_SETCONSOLECTRLHANDLER 1 #define HAVE_SETMODE 1 @@ -305,25 +316,31 @@ #define HAVE_SYSCONF 0 #define HAVE_SYSCTL 0 #define HAVE_USLEEP 0 +#define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 1 #define HAVE_WGLGETPROCADDRESS 0 +#define HAVE_BCRYPT 1 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 0 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 1 +#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 +#define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 -#define HAVE_ATTRIBUTE_MAY_ALIAS 0 -#define HAVE_ATTRIBUTE_PACKED 0 +#define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 0 #define HAVE_EBX_AVAILABLE 0 #define HAVE_GNU_AS 0 #define HAVE_GNU_WINDRES 0 #define HAVE_IBM_ASM 0 +#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 #define HAVE_INLINE_ASM_LABELS 0 #define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 #define HAVE_PRAGMA_DEPRECATED 1 #define HAVE_RSYNC_CONTIMEOUT 0 #define HAVE_SYMVER_ASM_LABEL 0 @@ -331,13 +348,13 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 0 -#define HAVE_CONDITION_VARIABLE_PTR 1 +#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 0 #define HAVE_STRUCT_ADDRINFO 0 -#define HAVE_STRUCT_DCADEC_EXSS_INFO_MATRIX_ENCODING 0 #define HAVE_STRUCT_GROUP_SOURCE_REQ 0 #define HAVE_STRUCT_IP_MREQ_SOURCE 0 #define HAVE_STRUCT_IPV6_MREQ 0 +#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 #define HAVE_STRUCT_POLLFD 0 #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 @@ -346,48 +363,35 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 0 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -#define HAVE_ATOMICS_NATIVE 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_DXVA2API_COBJ 1 -#define HAVE_DXVA2_LIB 0 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_LIBDC1394_1 0 -#define HAVE_LIBDC1394_2 0 #define HAVE_MAKEINFO 1 #define HAVE_MAKEINFO_HTML 0 +#define HAVE_OPENCL_D3D11 0 +#define HAVE_OPENCL_DRM_ARM 0 +#define HAVE_OPENCL_DRM_BEIGNET 0 +#define HAVE_OPENCL_DXVA2 0 +#define HAVE_OPENCL_VAAPI_BEIGNET 0 +#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 0 -#define HAVE_SDL 0 -#define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 -#define HAVE_THREADS 1 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 -#define HAVE_XLIB 0 -#define CONFIG_BSFS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_DEMUXERS 1 -#define CONFIG_ENCODERS 0 -#define CONFIG_FILTERS 0 -#define CONFIG_HWACCELS 0 -#define CONFIG_INDEVS 0 -#define CONFIG_MUXERS 0 -#define CONFIG_OUTDEVS 0 -#define CONFIG_PARSERS 1 -#define CONFIG_PROTOCOLS 1 #define CONFIG_DOC 0 #define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 0 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 +#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 #define CONFIG_AVIO_READING_EXAMPLE 1 -#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 -#define CONFIG_DECODING_ENCODING_EXAMPLE 1 +#define CONFIG_DECODE_AUDIO_EXAMPLE 1 +#define CONFIG_DECODE_VIDEO_EXAMPLE 1 #define CONFIG_DEMUXING_DECODING_EXAMPLE 1 +#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 +#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 #define CONFIG_EXTRACT_MVS_EXAMPLE 1 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 +#define CONFIG_HW_DECODE_EXAMPLE 1 #define CONFIG_METADATA_EXAMPLE 1 #define CONFIG_MUXING_EXAMPLE 1 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -396,25 +400,48 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 1 #define CONFIG_TRANSCODE_AAC_EXAMPLE 1 #define CONFIG_TRANSCODING_EXAMPLE 0 +#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 +#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 #define CONFIG_AVISYNTH 0 -#define CONFIG_BZLIB 0 -#define CONFIG_CRYSTALHD 0 -#define CONFIG_DECKLINK 0 #define CONFIG_FREI0R 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBDAVS2 0 +#define CONFIG_LIBRUBBERBAND 0 +#define CONFIG_LIBVIDSTAB 0 +#define CONFIG_LIBX264 0 +#define CONFIG_LIBX265 0 +#define CONFIG_LIBXAVS 0 +#define CONFIG_LIBXAVS2 0 +#define CONFIG_LIBXVID 0 +#define CONFIG_DECKLINK 0 +#define CONFIG_LIBNDI_NEWTEK 0 +#define CONFIG_LIBFDK_AAC 0 +#define CONFIG_OPENSSL 0 +#define CONFIG_LIBTLS 0 +#define CONFIG_GMP 0 +#define CONFIG_LIBLENSFUN 0 +#define CONFIG_LIBOPENCORE_AMRNB 0 +#define CONFIG_LIBOPENCORE_AMRWB 0 +#define CONFIG_LIBVMAF 0 +#define CONFIG_LIBVO_AMRWBENC 0 +#define CONFIG_MBEDTLS 0 +#define CONFIG_RKMPP 0 +#define CONFIG_LIBSMBCLIENT 0 +#define CONFIG_CHROMAPRINT 0 +#define CONFIG_GCRYPT 0 #define CONFIG_GNUTLS 0 -#define CONFIG_ICONV 0 +#define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAACPLUS 0 +#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 -#define CONFIG_LIBCDIO 0 #define CONFIG_LIBCELT 0 +#define CONFIG_LIBCODEC2 0 +#define CONFIG_LIBDAV1D 0 #define CONFIG_LIBDC1394 0 -#define CONFIG_LIBDCADEC 0 -#define CONFIG_LIBFAAC 0 -#define CONFIG_LIBFDK_AAC 0 +#define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 #define CONFIG_LIBFREETYPE 0 @@ -423,91 +450,107 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 +#define CONFIG_LIBJACK 0 +#define CONFIG_LIBKLVANC 0 #define CONFIG_LIBKVAZAAR 0 -#define CONFIG_LIBMFX 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 -#define CONFIG_LIBNUT 0 -#define CONFIG_LIBOPENCORE_AMRNB 0 -#define CONFIG_LIBOPENCORE_AMRWB 0 +#define CONFIG_LIBMYSOFA 0 #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 -#define CONFIG_LIBQUVI 0 +#define CONFIG_LIBRSVG 0 #define CONFIG_LIBRTMP 0 -#define CONFIG_LIBSCHROEDINGER 0 #define CONFIG_LIBSHINE 0 #define CONFIG_LIBSMBCLIENT 0 #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 +#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 -#define CONFIG_LIBSTAGEFRIGHT_H264 0 +#define CONFIG_LIBTENSORFLOW 0 +#define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 -#define CONFIG_LIBUTVIDEO 0 #define CONFIG_LIBV4L2 0 -#define CONFIG_LIBVIDSTAB 0 -#define CONFIG_LIBVO_AACENC 0 -#define CONFIG_LIBVO_AMRWBENC 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 #define CONFIG_LIBWEBP 0 -#define CONFIG_LIBX264 0 -#define CONFIG_LIBX265 0 -#define CONFIG_LIBXAVS 0 +#define CONFIG_LIBXML2 0 +#define CONFIG_LIBZIMG 0 +#define CONFIG_LIBZMQ 0 +#define CONFIG_LIBZVBI 0 +#define CONFIG_LV2 0 +#define CONFIG_MEDIACODEC 0 +#define CONFIG_OPENAL 0 +#define CONFIG_OPENGL 0 +#define CONFIG_VAPOURSYNTH 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 #define CONFIG_LIBXCB 0 #define CONFIG_LIBXCB_SHM 0 #define CONFIG_LIBXCB_SHAPE 0 #define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LIBXVID 0 -#define CONFIG_LIBZMQ 0 -#define CONFIG_LIBZVBI 0 #define CONFIG_LZMA 0 -#define CONFIG_MMAL 0 -#define CONFIG_NVENC 0 -#define CONFIG_OPENAL 0 -#define CONFIG_OPENCL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_OPENSSL 0 -#define CONFIG_SDL 0 +#define CONFIG_SCHANNEL 1 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 -#define CONFIG_X11GRAB 0 +#define CONFIG_SNDIO 0 #define CONFIG_XLIB 0 #define CONFIG_ZLIB 1 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 +#define CONFIG_OPENCL 0 +#define CONFIG_AMF 0 +#define CONFIG_AUDIOTOOLBOX 0 +#define CONFIG_CRYSTALHD 0 +#define CONFIG_CUDA 0 +#define CONFIG_CUVID 0 +#define CONFIG_D3D11VA 0 +#define CONFIG_DXVA2 0 +#define CONFIG_FFNVCODEC 0 +#define CONFIG_NVDEC 0 +#define CONFIG_NVENC 0 +#define CONFIG_VAAPI 0 +#define CONFIG_VDPAU 0 +#define CONFIG_VIDEOTOOLBOX 0 +#define CONFIG_V4L2_M2M 0 +#define CONFIG_XVMC 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 +#define CONFIG_OMX_RPI 0 #define CONFIG_RUNTIME_CPUDETECT 1 #define CONFIG_SAFE_BITSTREAM_READER 1 #define CONFIG_SHARED 0 -#define CONFIG_SMALL 0 +#define CONFIG_SMALL 1 #define CONFIG_STATIC 1 #define CONFIG_SWSCALE_ALPHA 1 -#define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 0 -#define CONFIG_VAAPI 0 -#define CONFIG_VDA 0 -#define CONFIG_VDPAU 0 -#define CONFIG_XVMC 0 #define CONFIG_GPL 1 #define CONFIG_NONFREE 0 #define CONFIG_VERSION3 0 -#define CONFIG_AVCODEC 1 #define CONFIG_AVDEVICE 1 #define CONFIG_AVFILTER 0 +#define CONFIG_SWSCALE 1 +#define CONFIG_POSTPROC 0 #define CONFIG_AVFORMAT 1 +#define CONFIG_AVCODEC 1 +#define CONFIG_SWRESAMPLE 1 #define CONFIG_AVRESAMPLE 0 #define CONFIG_AVUTIL 1 -#define CONFIG_POSTPROC 0 -#define CONFIG_SWRESAMPLE 1 -#define CONFIG_SWSCALE 1 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 -#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 1 #define CONFIG_DWT 1 @@ -521,24 +564,44 @@ #define CONFIG_PIXELUTILS 0 #define CONFIG_NETWORK 0 #define CONFIG_RDFT 1 +#define CONFIG_AUTODETECT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 -#define CONFIG_MEMALIGN_HACK 0 +#define CONFIG_LINUX_PERF 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 +#define CONFIG_OSSFUZZ 0 #define CONFIG_PIC 0 -#define CONFIG_POD2MAN 0 -#define CONFIG_RAISE_MAJOR 0 #define CONFIG_THUMB 0 #define CONFIG_VALGRIND_BACKTRACE 0 #define CONFIG_XMM_CLOBBER_TEST 0 +#define CONFIG_BSFS 1 +#define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 +#define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 1 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 1 #define CONFIG_AANDCTTABLES 1 #define CONFIG_AC3DSP 1 -#define CONFIG_AUDIO_FRAME_QUEUE 0 +#define CONFIG_ADTS_HEADER 1 +#define CONFIG_AUDIO_FRAME_QUEUE 1 #define CONFIG_AUDIODSP 1 #define CONFIG_BLOCKDSP 1 #define CONFIG_BSWAPDSP 1 #define CONFIG_CABAC 1 +#define CONFIG_CBS 1 +#define CONFIG_CBS_AV1 1 +#define CONFIG_CBS_H264 1 +#define CONFIG_CBS_H265 1 +#define CONFIG_CBS_JPEG 0 +#define CONFIG_CBS_MPEG2 1 +#define CONFIG_CBS_VP9 1 +#define CONFIG_DIRAC_PARSE 1 +#define CONFIG_DNN 0 #define CONFIG_DVPROFILE 1 #define CONFIG_EXIF 1 #define CONFIG_FAANDCT 1 @@ -548,34 +611,38 @@ #define CONFIG_FMTCONVERT 1 #define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 1 -#define CONFIG_GCRYPT 0 -#define CONFIG_GMP 0 #define CONFIG_GOLOMB 1 #define CONFIG_GPLV3 0 #define CONFIG_H263DSP 1 #define CONFIG_H264CHROMA 1 #define CONFIG_H264DSP 1 +#define CONFIG_H264PARSE 1 #define CONFIG_H264PRED 1 #define CONFIG_H264QPEL 1 +#define CONFIG_HEVCPARSE 1 #define CONFIG_HPELDSP 1 #define CONFIG_HUFFMAN 1 #define CONFIG_HUFFYUVDSP 1 #define CONFIG_HUFFYUVENCDSP 0 #define CONFIG_IDCTDSP 1 #define CONFIG_IIRFILTER 0 -#define CONFIG_IMDCT15 1 +#define CONFIG_MDCT15 1 #define CONFIG_INTRAX8 1 +#define CONFIG_ISO_MEDIA 1 #define CONFIG_IVIDSP 0 #define CONFIG_JPEGTABLES 1 -#define CONFIG_LIBX262 0 #define CONFIG_LGPLV3 0 +#define CONFIG_LIBX262 0 #define CONFIG_LLAUDDSP 1 #define CONFIG_LLVIDDSP 1 +#define CONFIG_LLVIDENCDSP 0 #define CONFIG_LPC 0 +#define CONFIG_LZF 1 #define CONFIG_ME_CMP 1 #define CONFIG_MPEG_ER 1 #define CONFIG_MPEGAUDIO 1 #define CONFIG_MPEGAUDIODSP 1 +#define CONFIG_MPEGAUDIOHEADER 1 #define CONFIG_MPEGVIDEO 1 #define CONFIG_MPEGVIDEOENC 1 #define CONFIG_MSS34DSP 1 @@ -584,18 +651,24 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 +#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 1 #define CONFIG_RIFFDEC 1 #define CONFIG_RIFFENC 0 #define CONFIG_RTPDEC 0 #define CONFIG_RTPENC_CHAIN 0 #define CONFIG_RV34DSP 1 +#define CONFIG_SCENE_SAD 0 #define CONFIG_SINEWIN 1 #define CONFIG_SNAPPY 1 +#define CONFIG_SRTP 0 #define CONFIG_STARTCODE 1 #define CONFIG_TEXTUREDSP 1 #define CONFIG_TEXTUREDSPENC 0 #define CONFIG_TPELDSP 1 +#define CONFIG_VAAPI_1 0 +#define CONFIG_VAAPI_ENCODE 0 +#define CONFIG_VC1DSP 1 #define CONFIG_VIDEODSP 1 #define CONFIG_VP3DSP 1 #define CONFIG_VP56DSP 1 @@ -603,19 +676,36 @@ #define CONFIG_WMA_FREQS 1 #define CONFIG_WMV2DSP 1 #define CONFIG_AAC_ADTSTOASC_BSF 1 +#define CONFIG_AV1_METADATA_BSF 1 #define CONFIG_CHOMP_BSF 1 #define CONFIG_DUMP_EXTRADATA_BSF 1 +#define CONFIG_DCA_CORE_BSF 1 +#define CONFIG_EAC3_CORE_BSF 1 +#define CONFIG_EXTRACT_EXTRADATA_BSF 1 +#define CONFIG_FILTER_UNITS_BSF 1 +#define CONFIG_H264_METADATA_BSF 1 #define CONFIG_H264_MP4TOANNEXB_BSF 1 +#define CONFIG_H264_REDUNDANT_PPS_BSF 1 +#define CONFIG_HAPQA_EXTRACT_BSF 1 +#define CONFIG_HEVC_METADATA_BSF 1 #define CONFIG_HEVC_MP4TOANNEXB_BSF 1 #define CONFIG_IMX_DUMP_HEADER_BSF 1 #define CONFIG_MJPEG2JPEG_BSF 1 #define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 #define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +#define CONFIG_MPEG2_METADATA_BSF 1 #define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 #define CONFIG_MOV2TEXTSUB_BSF 1 #define CONFIG_NOISE_BSF 1 +#define CONFIG_NULL_BSF 1 +#define CONFIG_PRORES_METADATA_BSF 1 #define CONFIG_REMOVE_EXTRADATA_BSF 1 #define CONFIG_TEXT2MOVSUB_BSF 1 +#define CONFIG_TRACE_HEADERS_BSF 1 +#define CONFIG_VP9_METADATA_BSF 1 +#define CONFIG_VP9_RAW_REORDER_BSF 1 +#define CONFIG_VP9_SUPERFRAME_BSF 1 +#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_AASC_DECODER 1 #define CONFIG_AIC_DECODER 1 #define CONFIG_ALIAS_PIX_DECODER 1 @@ -635,6 +725,7 @@ #define CONFIG_BETHSOFTVID_DECODER 1 #define CONFIG_BFI_DECODER 1 #define CONFIG_BINK_DECODER 1 +#define CONFIG_BITPACKED_DECODER 1 #define CONFIG_BMP_DECODER 1 #define CONFIG_BMV_VIDEO_DECODER 1 #define CONFIG_BRENDER_PIX_DECODER 1 @@ -642,7 +733,9 @@ #define CONFIG_CAVS_DECODER 1 #define CONFIG_CDGRAPHICS_DECODER 1 #define CONFIG_CDXL_DECODER 1 +#define CONFIG_CFHD_DECODER 1 #define CONFIG_CINEPAK_DECODER 1 +#define CONFIG_CLEARVIDEO_DECODER 1 #define CONFIG_CLJR_DECODER 1 #define CONFIG_CLLC_DECODER 1 #define CONFIG_COMFORTNOISE_DECODER 1 @@ -655,9 +748,11 @@ #define CONFIG_DNXHD_DECODER 1 #define CONFIG_DPX_DECODER 1 #define CONFIG_DSICINVIDEO_DECODER 1 +#define CONFIG_DVAUDIO_DECODER 1 #define CONFIG_DVVIDEO_DECODER 1 #define CONFIG_DXA_DECODER 1 #define CONFIG_DXTORY_DECODER 1 +#define CONFIG_DXV_DECODER 1 #define CONFIG_EACMV_DECODER 1 #define CONFIG_EAMAD_DECODER 1 #define CONFIG_EATGQ_DECODER 1 @@ -672,35 +767,42 @@ #define CONFIG_FFV1_DECODER 1 #define CONFIG_FFVHUFF_DECODER 1 #define CONFIG_FIC_DECODER 1 +#define CONFIG_FITS_DECODER 1 #define CONFIG_FLASHSV_DECODER 1 #define CONFIG_FLASHSV2_DECODER 1 #define CONFIG_FLIC_DECODER 1 #define CONFIG_FLV_DECODER 1 +#define CONFIG_FMVC_DECODER 1 #define CONFIG_FOURXM_DECODER 1 #define CONFIG_FRAPS_DECODER 1 #define CONFIG_FRWU_DECODER 1 #define CONFIG_G2M_DECODER 1 +#define CONFIG_GDV_DECODER 1 #define CONFIG_GIF_DECODER 1 #define CONFIG_H261_DECODER 1 #define CONFIG_H263_DECODER 1 #define CONFIG_H263I_DECODER 1 #define CONFIG_H263P_DECODER 1 +#define CONFIG_H263_V4L2M2M_DECODER 0 #define CONFIG_H264_DECODER 1 #define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 #define CONFIG_H264_MMAL_DECODER 0 #define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_VDA_DECODER 0 -#define CONFIG_H264_VDPAU_DECODER 0 +#define CONFIG_H264_RKMPP_DECODER 0 #define CONFIG_HAP_DECODER 1 #define CONFIG_HEVC_DECODER 1 #define CONFIG_HEVC_QSV_DECODER 0 +#define CONFIG_HEVC_RKMPP_DECODER 0 +#define CONFIG_HEVC_V4L2M2M_DECODER 0 #define CONFIG_HNM4_VIDEO_DECODER 1 #define CONFIG_HQ_HQA_DECODER 1 #define CONFIG_HQX_DECODER 1 #define CONFIG_HUFFYUV_DECODER 1 #define CONFIG_IDCIN_DECODER 1 -#define CONFIG_IFF_BYTERUN1_DECODER 1 #define CONFIG_IFF_ILBM_DECODER 1 +#define CONFIG_IMM4_DECODER 1 #define CONFIG_INDEO2_DECODER 0 #define CONFIG_INDEO3_DECODER 0 #define CONFIG_INDEO4_DECODER 0 @@ -713,28 +815,33 @@ #define CONFIG_KMVC_DECODER 1 #define CONFIG_LAGARITH_DECODER 1 #define CONFIG_LOCO_DECODER 1 +#define CONFIG_M101_DECODER 1 +#define CONFIG_MAGICYUV_DECODER 1 #define CONFIG_MDEC_DECODER 1 #define CONFIG_MIMIC_DECODER 1 #define CONFIG_MJPEG_DECODER 1 #define CONFIG_MJPEGB_DECODER 1 #define CONFIG_MMVIDEO_DECODER 1 #define CONFIG_MOTIONPIXELS_DECODER 1 -#define CONFIG_MPEG_XVMC_DECODER 0 #define CONFIG_MPEG1VIDEO_DECODER 1 #define CONFIG_MPEG2VIDEO_DECODER 1 #define CONFIG_MPEG4_DECODER 1 #define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_VDPAU_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 #define CONFIG_MPEGVIDEO_DECODER 1 -#define CONFIG_MPEG_VDPAU_DECODER 0 -#define CONFIG_MPEG1_VDPAU_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 #define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 #define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 #define CONFIG_MSA1_DECODER 1 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSCC_DECODER 1 #define CONFIG_MSMPEG4V1_DECODER 1 #define CONFIG_MSMPEG4V2_DECODER 1 #define CONFIG_MSMPEG4V3_DECODER 1 +#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 #define CONFIG_MSRLE_DECODER 1 #define CONFIG_MSS1_DECODER 1 #define CONFIG_MSS2_DECODER 1 @@ -743,6 +850,7 @@ #define CONFIG_MTS2_DECODER 1 #define CONFIG_MVC1_DECODER 1 #define CONFIG_MVC2_DECODER 1 +#define CONFIG_MWSC_DECODER 1 #define CONFIG_MXPEG_DECODER 1 #define CONFIG_NUV_DECODER 1 #define CONFIG_PAF_VIDEO_DECODER 1 @@ -752,33 +860,43 @@ #define CONFIG_PGM_DECODER 1 #define CONFIG_PGMYUV_DECODER 1 #define CONFIG_PICTOR_DECODER 1 +#define CONFIG_PIXLET_DECODER 1 #define CONFIG_PNG_DECODER 1 #define CONFIG_PPM_DECODER 1 #define CONFIG_PRORES_DECODER 1 -#define CONFIG_PRORES_LGPL_DECODER 1 +#define CONFIG_PROSUMER_DECODER 1 +#define CONFIG_PSD_DECODER 1 #define CONFIG_PTX_DECODER 1 #define CONFIG_QDRAW_DECODER 1 #define CONFIG_QPEG_DECODER 1 #define CONFIG_QTRLE_DECODER 1 #define CONFIG_R10K_DECODER 1 #define CONFIG_R210_DECODER 1 +#define CONFIG_RASC_DECODER 1 #define CONFIG_RAWVIDEO_DECODER 1 #define CONFIG_RL2_DECODER 1 #define CONFIG_ROQ_DECODER 1 #define CONFIG_RPZA_DECODER 1 +#define CONFIG_RSCC_DECODER 1 #define CONFIG_RV10_DECODER 1 #define CONFIG_RV20_DECODER 1 #define CONFIG_RV30_DECODER 1 #define CONFIG_RV40_DECODER 1 #define CONFIG_S302M_DECODER 1 #define CONFIG_SANM_DECODER 1 +#define CONFIG_SCPR_DECODER 1 +#define CONFIG_SCREENPRESSO_DECODER 1 +#define CONFIG_SDX2_DPCM_DECODER 1 #define CONFIG_SGI_DECODER 1 #define CONFIG_SGIRLE_DECODER 1 +#define CONFIG_SHEERVIDEO_DECODER 1 #define CONFIG_SMACKER_DECODER 1 #define CONFIG_SMC_DECODER 1 #define CONFIG_SMVJPEG_DECODER 1 #define CONFIG_SNOW_DECODER 1 #define CONFIG_SP5X_DECODER 1 +#define CONFIG_SPEEDHQ_DECODER 1 +#define CONFIG_SRGC_DECODER 1 #define CONFIG_SUNRAST_DECODER 1 #define CONFIG_SVQ1_DECODER 1 #define CONFIG_SVQ3_DECODER 1 @@ -792,6 +910,7 @@ #define CONFIG_TMV_DECODER 1 #define CONFIG_TRUEMOTION1_DECODER 1 #define CONFIG_TRUEMOTION2_DECODER 1 +#define CONFIG_TRUEMOTION2RT_DECODER 1 #define CONFIG_TSCC_DECODER 1 #define CONFIG_TSCC2_DECODER 1 #define CONFIG_TXD_DECODER 1 @@ -806,9 +925,10 @@ #define CONFIG_VBLE_DECODER 1 #define CONFIG_VC1_DECODER 1 #define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1_VDPAU_DECODER 0 #define CONFIG_VC1IMAGE_DECODER 1 +#define CONFIG_VC1_MMAL_DECODER 0 #define CONFIG_VC1_QSV_DECODER 0 +#define CONFIG_VC1_V4L2M2M_DECODER 0 #define CONFIG_VCR1_DECODER 1 #define CONFIG_VMDVIDEO_DECODER 1 #define CONFIG_VMNC_DECODER 1 @@ -819,14 +939,19 @@ #define CONFIG_VP6F_DECODER 1 #define CONFIG_VP7_DECODER 1 #define CONFIG_VP8_DECODER 1 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 #define CONFIG_VP9_DECODER 1 +#define CONFIG_VP9_RKMPP_DECODER 0 +#define CONFIG_VP9_V4L2M2M_DECODER 0 #define CONFIG_VQA_DECODER 1 #define CONFIG_WEBP_DECODER 1 +#define CONFIG_WCMV_DECODER 1 +#define CONFIG_WRAPPED_AVFRAME_DECODER 1 #define CONFIG_WMV1_DECODER 1 #define CONFIG_WMV2_DECODER 1 #define CONFIG_WMV3_DECODER 1 #define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3_VDPAU_DECODER 0 #define CONFIG_WMV3IMAGE_DECODER 1 #define CONFIG_WNV1_DECODER 1 #define CONFIG_XAN_WC3_DECODER 1 @@ -834,8 +959,10 @@ #define CONFIG_XBM_DECODER 1 #define CONFIG_XFACE_DECODER 1 #define CONFIG_XL_DECODER 1 +#define CONFIG_XPM_DECODER 1 #define CONFIG_XWD_DECODER 1 #define CONFIG_Y41P_DECODER 1 +#define CONFIG_YLC_DECODER 1 #define CONFIG_YOP_DECODER 1 #define CONFIG_YUV4_DECODER 1 #define CONFIG_ZERO12V_DECODER 1 @@ -852,20 +979,27 @@ #define CONFIG_AMRNB_DECODER 1 #define CONFIG_AMRWB_DECODER 1 #define CONFIG_APE_DECODER 1 +#define CONFIG_APTX_DECODER 1 +#define CONFIG_APTX_HD_DECODER 1 #define CONFIG_ATRAC1_DECODER 1 #define CONFIG_ATRAC3_DECODER 1 +#define CONFIG_ATRAC3AL_DECODER 1 #define CONFIG_ATRAC3P_DECODER 0 +#define CONFIG_ATRAC3PAL_DECODER 1 +#define CONFIG_ATRAC9_DECODER 1 #define CONFIG_BINKAUDIO_DCT_DECODER 1 #define CONFIG_BINKAUDIO_RDFT_DECODER 1 #define CONFIG_BMV_AUDIO_DECODER 1 #define CONFIG_COOK_DECODER 1 #define CONFIG_DCA_DECODER 1 +#define CONFIG_DOLBY_E_DECODER 1 #define CONFIG_DSD_LSBF_DECODER 1 #define CONFIG_DSD_MSBF_DECODER 1 #define CONFIG_DSD_LSBF_PLANAR_DECODER 1 #define CONFIG_DSD_MSBF_PLANAR_DECODER 1 #define CONFIG_DSICINAUDIO_DECODER 1 #define CONFIG_DSS_SP_DECODER 1 +#define CONFIG_DST_DECODER 1 #define CONFIG_EAC3_DECODER 1 #define CONFIG_EVRC_DECODER 1 #define CONFIG_FFWAVESYNTH_DECODER 1 @@ -875,7 +1009,9 @@ #define CONFIG_GSM_DECODER 1 #define CONFIG_GSM_MS_DECODER 1 #define CONFIG_IAC_DECODER 1 +#define CONFIG_ILBC_DECODER 1 #define CONFIG_IMC_DECODER 1 +#define CONFIG_INTERPLAY_ACM_DECODER 1 #define CONFIG_MACE3_DECODER 1 #define CONFIG_MACE6_DECODER 1 #define CONFIG_METASOUND_DECODER 1 @@ -884,12 +1020,12 @@ #define CONFIG_MP1FLOAT_DECODER 1 #define CONFIG_MP2_DECODER 1 #define CONFIG_MP2FLOAT_DECODER 1 -#define CONFIG_MP3_DECODER 1 #define CONFIG_MP3FLOAT_DECODER 1 -#define CONFIG_MP3ADU_DECODER 1 +#define CONFIG_MP3_DECODER 1 #define CONFIG_MP3ADUFLOAT_DECODER 1 -#define CONFIG_MP3ON4_DECODER 1 +#define CONFIG_MP3ADU_DECODER 1 #define CONFIG_MP3ON4FLOAT_DECODER 1 +#define CONFIG_MP3ON4_DECODER 1 #define CONFIG_MPC7_DECODER 1 #define CONFIG_MPC8_DECODER 1 #define CONFIG_NELLYMOSER_DECODER 1 @@ -898,9 +1034,11 @@ #define CONFIG_PAF_AUDIO_DECODER 1 #define CONFIG_QCELP_DECODER 1 #define CONFIG_QDM2_DECODER 1 +#define CONFIG_QDMC_DECODER 1 #define CONFIG_RA_144_DECODER 1 #define CONFIG_RA_288_DECODER 1 #define CONFIG_RALF_DECODER 1 +#define CONFIG_SBC_DECODER 1 #define CONFIG_SHORTEN_DECODER 1 #define CONFIG_SIPR_DECODER 1 #define CONFIG_SMACKAUD_DECODER 1 @@ -919,9 +1057,13 @@ #define CONFIG_WMAV2_DECODER 1 #define CONFIG_WMAVOICE_DECODER 1 #define CONFIG_WS_SND1_DECODER 1 +#define CONFIG_XMA1_DECODER 1 +#define CONFIG_XMA2_DECODER 1 #define CONFIG_PCM_ALAW_DECODER 1 #define CONFIG_PCM_BLURAY_DECODER 1 #define CONFIG_PCM_DVD_DECODER 1 +#define CONFIG_PCM_F16LE_DECODER 1 +#define CONFIG_PCM_F24LE_DECODER 1 #define CONFIG_PCM_F32BE_DECODER 1 #define CONFIG_PCM_F32LE_DECODER 1 #define CONFIG_PCM_F64BE_DECODER 1 @@ -941,6 +1083,8 @@ #define CONFIG_PCM_S32BE_DECODER 1 #define CONFIG_PCM_S32LE_DECODER 1 #define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +#define CONFIG_PCM_S64BE_DECODER 1 +#define CONFIG_PCM_S64LE_DECODER 1 #define CONFIG_PCM_U8_DECODER 1 #define CONFIG_PCM_U16BE_DECODER 1 #define CONFIG_PCM_U16LE_DECODER 1 @@ -948,7 +1092,9 @@ #define CONFIG_PCM_U24LE_DECODER 1 #define CONFIG_PCM_U32BE_DECODER 1 #define CONFIG_PCM_U32LE_DECODER 1 +#define CONFIG_PCM_VIDC_DECODER 1 #define CONFIG_PCM_ZORK_DECODER 1 +#define CONFIG_GREMLIN_DPCM_DECODER 1 #define CONFIG_INTERPLAY_DPCM_DECODER 1 #define CONFIG_ROQ_DPCM_DECODER 1 #define CONFIG_SOL_DPCM_DECODER 1 @@ -956,6 +1102,7 @@ #define CONFIG_ADPCM_4XM_DECODER 1 #define CONFIG_ADPCM_ADX_DECODER 1 #define CONFIG_ADPCM_AFC_DECODER 1 +#define CONFIG_ADPCM_AICA_DECODER 1 #define CONFIG_ADPCM_CT_DECODER 1 #define CONFIG_ADPCM_DTK_DECODER 1 #define CONFIG_ADPCM_EA_DECODER 1 @@ -969,6 +1116,7 @@ #define CONFIG_ADPCM_G726LE_DECODER 1 #define CONFIG_ADPCM_IMA_AMV_DECODER 1 #define CONFIG_ADPCM_IMA_APC_DECODER 1 +#define CONFIG_ADPCM_IMA_DAT4_DECODER 1 #define CONFIG_ADPCM_IMA_DK3_DECODER 1 #define CONFIG_ADPCM_IMA_DK4_DECODER 1 #define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 @@ -981,6 +1129,8 @@ #define CONFIG_ADPCM_IMA_WAV_DECODER 1 #define CONFIG_ADPCM_IMA_WS_DECODER 1 #define CONFIG_ADPCM_MS_DECODER 1 +#define CONFIG_ADPCM_MTAF_DECODER 1 +#define CONFIG_ADPCM_PSX_DECODER 1 #define CONFIG_ADPCM_SBPRO_2_DECODER 1 #define CONFIG_ADPCM_SBPRO_3_DECODER 1 #define CONFIG_ADPCM_SBPRO_4_DECODER 1 @@ -990,7 +1140,6 @@ #define CONFIG_ADPCM_VIMA_DECODER 1 #define CONFIG_ADPCM_XA_DECODER 1 #define CONFIG_ADPCM_YAMAHA_DECODER 1 -#define CONFIG_VIMA_DECODER 1 #define CONFIG_SSA_DECODER 1 #define CONFIG_ASS_DECODER 1 #define CONFIG_CCAPTION_DECODER 1 @@ -1013,8 +1162,26 @@ #define CONFIG_VPLAYER_DECODER 1 #define CONFIG_WEBVTT_DECODER 1 #define CONFIG_XSUB_DECODER 1 +#define CONFIG_AAC_AT_DECODER 0 +#define CONFIG_AC3_AT_DECODER 0 +#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +#define CONFIG_ALAC_AT_DECODER 0 +#define CONFIG_AMR_NB_AT_DECODER 0 +#define CONFIG_EAC3_AT_DECODER 0 +#define CONFIG_GSM_MS_AT_DECODER 0 +#define CONFIG_ILBC_AT_DECODER 0 +#define CONFIG_MP1_AT_DECODER 0 +#define CONFIG_MP2_AT_DECODER 0 +#define CONFIG_MP3_AT_DECODER 0 +#define CONFIG_PCM_ALAW_AT_DECODER 0 +#define CONFIG_PCM_MULAW_AT_DECODER 0 +#define CONFIG_QDMC_AT_DECODER 0 +#define CONFIG_QDM2_AT_DECODER 0 +#define CONFIG_LIBAOM_AV1_DECODER 0 #define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBDCADEC_DECODER 0 +#define CONFIG_LIBCODEC2_DECODER 0 +#define CONFIG_LIBDAV1D_DECODER 0 +#define CONFIG_LIBDAVS2_DECODER 0 #define CONFIG_LIBFDK_AAC_DECODER 0 #define CONFIG_LIBGSM_DECODER 0 #define CONFIG_LIBGSM_MS_DECODER 0 @@ -1023,10 +1190,8 @@ #define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 #define CONFIG_LIBOPENJPEG_DECODER 0 #define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBSCHROEDINGER_DECODER 0 +#define CONFIG_LIBRSVG_DECODER 0 #define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 -#define CONFIG_LIBUTVIDEO_DECODER 0 #define CONFIG_LIBVORBIS_DECODER 0 #define CONFIG_LIBVPX_VP8_DECODER 0 #define CONFIG_LIBVPX_VP9_DECODER 0 @@ -1034,250 +1199,21 @@ #define CONFIG_BINTEXT_DECODER 1 #define CONFIG_XBIN_DECODER 1 #define CONFIG_IDF_DECODER 1 -#define CONFIG_AAC_DEMUXER 1 -#define CONFIG_AC3_DEMUXER 1 -#define CONFIG_ACT_DEMUXER 1 -#define CONFIG_ADF_DEMUXER 1 -#define CONFIG_ADP_DEMUXER 1 -#define CONFIG_ADX_DEMUXER 1 -#define CONFIG_AEA_DEMUXER 1 -#define CONFIG_AFC_DEMUXER 1 -#define CONFIG_AIFF_DEMUXER 1 -#define CONFIG_AMR_DEMUXER 1 -#define CONFIG_ANM_DEMUXER 1 -#define CONFIG_APC_DEMUXER 1 -#define CONFIG_APE_DEMUXER 1 -#define CONFIG_APNG_DEMUXER 1 -#define CONFIG_AQTITLE_DEMUXER 1 -#define CONFIG_ASF_DEMUXER 1 -#define CONFIG_ASF_O_DEMUXER 1 -#define CONFIG_ASS_DEMUXER 1 -#define CONFIG_AST_DEMUXER 1 -#define CONFIG_AU_DEMUXER 1 -#define CONFIG_AVI_DEMUXER 1 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVR_DEMUXER 1 -#define CONFIG_AVS_DEMUXER 1 -#define CONFIG_BETHSOFTVID_DEMUXER 1 -#define CONFIG_BFI_DEMUXER 1 -#define CONFIG_BINTEXT_DEMUXER 1 -#define CONFIG_BINK_DEMUXER 1 -#define CONFIG_BIT_DEMUXER 1 -#define CONFIG_BMV_DEMUXER 1 -#define CONFIG_BFSTM_DEMUXER 1 -#define CONFIG_BRSTM_DEMUXER 1 -#define CONFIG_BOA_DEMUXER 1 -#define CONFIG_C93_DEMUXER 1 -#define CONFIG_CAF_DEMUXER 1 -#define CONFIG_CAVSVIDEO_DEMUXER 1 -#define CONFIG_CDG_DEMUXER 1 -#define CONFIG_CDXL_DEMUXER 1 -#define CONFIG_CINE_DEMUXER 1 -#define CONFIG_CONCAT_DEMUXER 1 -#define CONFIG_DATA_DEMUXER 1 -#define CONFIG_DAUD_DEMUXER 1 -#define CONFIG_DFA_DEMUXER 1 -#define CONFIG_DIRAC_DEMUXER 1 -#define CONFIG_DNXHD_DEMUXER 1 -#define CONFIG_DSF_DEMUXER 1 -#define CONFIG_DSICIN_DEMUXER 1 -#define CONFIG_DSS_DEMUXER 1 -#define CONFIG_DTS_DEMUXER 1 -#define CONFIG_DTSHD_DEMUXER 1 -#define CONFIG_DV_DEMUXER 1 -#define CONFIG_DVBSUB_DEMUXER 1 -#define CONFIG_DXA_DEMUXER 1 -#define CONFIG_EA_DEMUXER 1 -#define CONFIG_EA_CDATA_DEMUXER 1 -#define CONFIG_EAC3_DEMUXER 1 -#define CONFIG_EPAF_DEMUXER 1 -#define CONFIG_FFM_DEMUXER 1 -#define CONFIG_FFMETADATA_DEMUXER 1 -#define CONFIG_FILMSTRIP_DEMUXER 1 -#define CONFIG_FLAC_DEMUXER 1 -#define CONFIG_FLIC_DEMUXER 1 -#define CONFIG_FLV_DEMUXER 1 -#define CONFIG_LIVE_FLV_DEMUXER 1 -#define CONFIG_FOURXM_DEMUXER 1 -#define CONFIG_FRM_DEMUXER 1 -#define CONFIG_G722_DEMUXER 1 -#define CONFIG_G723_1_DEMUXER 1 -#define CONFIG_G729_DEMUXER 1 -#define CONFIG_GIF_DEMUXER 1 -#define CONFIG_GSM_DEMUXER 1 -#define CONFIG_GXF_DEMUXER 1 -#define CONFIG_H261_DEMUXER 1 -#define CONFIG_H263_DEMUXER 1 -#define CONFIG_H264_DEMUXER 1 -#define CONFIG_HEVC_DEMUXER 1 -#define CONFIG_HLS_DEMUXER 1 -#define CONFIG_HNM_DEMUXER 1 -#define CONFIG_ICO_DEMUXER 1 -#define CONFIG_IDCIN_DEMUXER 1 -#define CONFIG_IDF_DEMUXER 1 -#define CONFIG_IFF_DEMUXER 1 -#define CONFIG_ILBC_DEMUXER 1 -#define CONFIG_IMAGE2_DEMUXER 1 -#define CONFIG_IMAGE2PIPE_DEMUXER 1 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 -#define CONFIG_INGENIENT_DEMUXER 1 -#define CONFIG_IPMOVIE_DEMUXER 1 -#define CONFIG_IRCAM_DEMUXER 1 -#define CONFIG_ISS_DEMUXER 1 -#define CONFIG_IV8_DEMUXER 1 -#define CONFIG_IVF_DEMUXER 1 -#define CONFIG_JACOSUB_DEMUXER 1 -#define CONFIG_JV_DEMUXER 1 -#define CONFIG_LATM_DEMUXER 1 -#define CONFIG_LMLM4_DEMUXER 1 -#define CONFIG_LOAS_DEMUXER 1 -#define CONFIG_LRC_DEMUXER 1 -#define CONFIG_LVF_DEMUXER 1 -#define CONFIG_LXF_DEMUXER 1 -#define CONFIG_M4V_DEMUXER 1 -#define CONFIG_MATROSKA_DEMUXER 1 -#define CONFIG_MGSTS_DEMUXER 1 -#define CONFIG_MICRODVD_DEMUXER 1 -#define CONFIG_MJPEG_DEMUXER 1 -#define CONFIG_MLP_DEMUXER 1 -#define CONFIG_MLV_DEMUXER 1 -#define CONFIG_MM_DEMUXER 1 -#define CONFIG_MMF_DEMUXER 1 -#define CONFIG_MOV_DEMUXER 1 -#define CONFIG_MP3_DEMUXER 1 -#define CONFIG_MPC_DEMUXER 1 -#define CONFIG_MPC8_DEMUXER 1 -#define CONFIG_MPEGPS_DEMUXER 1 -#define CONFIG_MPEGTS_DEMUXER 1 -#define CONFIG_MPEGTSRAW_DEMUXER 1 -#define CONFIG_MPEGVIDEO_DEMUXER 1 -#define CONFIG_MPJPEG_DEMUXER 1 -#define CONFIG_MPL2_DEMUXER 1 -#define CONFIG_MPSUB_DEMUXER 1 -#define CONFIG_MSNWC_TCP_DEMUXER 1 -#define CONFIG_MTV_DEMUXER 1 -#define CONFIG_MV_DEMUXER 1 -#define CONFIG_MVI_DEMUXER 1 -#define CONFIG_MXF_DEMUXER 1 -#define CONFIG_MXG_DEMUXER 1 -#define CONFIG_NC_DEMUXER 1 -#define CONFIG_NISTSPHERE_DEMUXER 1 -#define CONFIG_NSV_DEMUXER 1 -#define CONFIG_NUT_DEMUXER 1 -#define CONFIG_NUV_DEMUXER 1 -#define CONFIG_OGG_DEMUXER 1 -#define CONFIG_OMA_DEMUXER 1 -#define CONFIG_PAF_DEMUXER 1 -#define CONFIG_PCM_ALAW_DEMUXER 1 -#define CONFIG_PCM_MULAW_DEMUXER 1 -#define CONFIG_PCM_F64BE_DEMUXER 1 -#define CONFIG_PCM_F64LE_DEMUXER 1 -#define CONFIG_PCM_F32BE_DEMUXER 1 -#define CONFIG_PCM_F32LE_DEMUXER 1 -#define CONFIG_PCM_S32BE_DEMUXER 1 -#define CONFIG_PCM_S32LE_DEMUXER 1 -#define CONFIG_PCM_S24BE_DEMUXER 1 -#define CONFIG_PCM_S24LE_DEMUXER 1 -#define CONFIG_PCM_S16BE_DEMUXER 1 -#define CONFIG_PCM_S16LE_DEMUXER 1 -#define CONFIG_PCM_S8_DEMUXER 1 -#define CONFIG_PCM_U32BE_DEMUXER 1 -#define CONFIG_PCM_U32LE_DEMUXER 1 -#define CONFIG_PCM_U24BE_DEMUXER 1 -#define CONFIG_PCM_U24LE_DEMUXER 1 -#define CONFIG_PCM_U16BE_DEMUXER 1 -#define CONFIG_PCM_U16LE_DEMUXER 1 -#define CONFIG_PCM_U8_DEMUXER 1 -#define CONFIG_PJS_DEMUXER 1 -#define CONFIG_PMP_DEMUXER 1 -#define CONFIG_PVA_DEMUXER 1 -#define CONFIG_PVF_DEMUXER 1 -#define CONFIG_QCP_DEMUXER 1 -#define CONFIG_R3D_DEMUXER 1 -#define CONFIG_RAWVIDEO_DEMUXER 1 -#define CONFIG_REALTEXT_DEMUXER 1 -#define CONFIG_REDSPARK_DEMUXER 1 -#define CONFIG_RL2_DEMUXER 1 -#define CONFIG_RM_DEMUXER 1 -#define CONFIG_ROQ_DEMUXER 1 -#define CONFIG_RPL_DEMUXER 1 -#define CONFIG_RSD_DEMUXER 1 -#define CONFIG_RSO_DEMUXER 1 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_SAMI_DEMUXER 1 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SBG_DEMUXER 1 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 1 -#define CONFIG_SEGAFILM_DEMUXER 1 -#define CONFIG_SHORTEN_DEMUXER 1 -#define CONFIG_SIFF_DEMUXER 1 -#define CONFIG_SLN_DEMUXER 1 -#define CONFIG_SMACKER_DEMUXER 1 -#define CONFIG_SMJPEG_DEMUXER 1 -#define CONFIG_SMUSH_DEMUXER 1 -#define CONFIG_SOL_DEMUXER 1 -#define CONFIG_SOX_DEMUXER 1 -#define CONFIG_SPDIF_DEMUXER 1 -#define CONFIG_SRT_DEMUXER 1 -#define CONFIG_STR_DEMUXER 1 -#define CONFIG_STL_DEMUXER 1 -#define CONFIG_SUBVIEWER1_DEMUXER 1 -#define CONFIG_SUBVIEWER_DEMUXER 1 -#define CONFIG_SUP_DEMUXER 1 -#define CONFIG_SWF_DEMUXER 1 -#define CONFIG_TAK_DEMUXER 1 -#define CONFIG_TEDCAPTIONS_DEMUXER 1 -#define CONFIG_THP_DEMUXER 1 -#define CONFIG_TIERTEXSEQ_DEMUXER 1 -#define CONFIG_TMV_DEMUXER 1 -#define CONFIG_TRUEHD_DEMUXER 1 -#define CONFIG_TTA_DEMUXER 1 -#define CONFIG_TXD_DEMUXER 1 -#define CONFIG_TTY_DEMUXER 1 -#define CONFIG_VC1_DEMUXER 1 -#define CONFIG_VC1T_DEMUXER 1 -#define CONFIG_VIVO_DEMUXER 1 -#define CONFIG_VMD_DEMUXER 1 -#define CONFIG_VOBSUB_DEMUXER 1 -#define CONFIG_VOC_DEMUXER 1 -#define CONFIG_VPLAYER_DEMUXER 1 -#define CONFIG_VQF_DEMUXER 1 -#define CONFIG_W64_DEMUXER 1 -#define CONFIG_WAV_DEMUXER 1 -#define CONFIG_WC3_DEMUXER 1 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 -#define CONFIG_WEBVTT_DEMUXER 1 -#define CONFIG_WSAUD_DEMUXER 1 -#define CONFIG_WSVQA_DEMUXER 1 -#define CONFIG_WTV_DEMUXER 1 -#define CONFIG_WV_DEMUXER 1 -#define CONFIG_XA_DEMUXER 1 -#define CONFIG_XBIN_DEMUXER 1 -#define CONFIG_XMV_DEMUXER 1 -#define CONFIG_XWMA_DEMUXER 1 -#define CONFIG_YOP_DEMUXER 1 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBNUT_DEMUXER 0 -#define CONFIG_LIBQUVI_DEMUXER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H264_CUVID_DECODER 0 +#define CONFIG_HEVC_CUVID_DECODER 0 +#define CONFIG_HEVC_MEDIACODEC_DECODER 0 +#define CONFIG_MJPEG_CUVID_DECODER 0 +#define CONFIG_MPEG1_CUVID_DECODER 0 +#define CONFIG_MPEG2_CUVID_DECODER 0 +#define CONFIG_MPEG4_CUVID_DECODER 0 +#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +#define CONFIG_VC1_CUVID_DECODER 0 +#define CONFIG_VP8_CUVID_DECODER 0 +#define CONFIG_VP8_MEDIACODEC_DECODER 0 +#define CONFIG_VP8_QSV_DECODER 0 +#define CONFIG_VP9_CUVID_DECODER 0 +#define CONFIG_VP9_MEDIACODEC_DECODER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1297,6 +1233,7 @@ #define CONFIG_DVVIDEO_ENCODER 0 #define CONFIG_FFV1_ENCODER 0 #define CONFIG_FFVHUFF_ENCODER 0 +#define CONFIG_FITS_ENCODER 0 #define CONFIG_FLASHSV_ENCODER 0 #define CONFIG_FLASHSV2_ENCODER 0 #define CONFIG_FLV_ENCODER 0 @@ -1309,6 +1246,7 @@ #define CONFIG_JPEG2000_ENCODER 0 #define CONFIG_JPEGLS_ENCODER 0 #define CONFIG_LJPEG_ENCODER 0 +#define CONFIG_MAGICYUV_ENCODER 0 #define CONFIG_MJPEG_ENCODER 0 #define CONFIG_MPEG1VIDEO_ENCODER 0 #define CONFIG_MPEG2VIDEO_ENCODER 0 @@ -1345,6 +1283,8 @@ #define CONFIG_V308_ENCODER 0 #define CONFIG_V408_ENCODER 0 #define CONFIG_V410_ENCODER 0 +#define CONFIG_VC2_ENCODER 0 +#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 #define CONFIG_WMV1_ENCODER 0 #define CONFIG_WMV2_ENCODER 0 #define CONFIG_XBM_ENCODER 0 @@ -1358,16 +1298,22 @@ #define CONFIG_AC3_ENCODER 0 #define CONFIG_AC3_FIXED_ENCODER 0 #define CONFIG_ALAC_ENCODER 0 +#define CONFIG_APTX_ENCODER 0 +#define CONFIG_APTX_HD_ENCODER 0 #define CONFIG_DCA_ENCODER 0 #define CONFIG_EAC3_ENCODER 0 #define CONFIG_FLAC_ENCODER 0 #define CONFIG_G723_1_ENCODER 0 +#define CONFIG_MLP_ENCODER 0 #define CONFIG_MP2_ENCODER 0 #define CONFIG_MP2FIXED_ENCODER 0 #define CONFIG_NELLYMOSER_ENCODER 0 +#define CONFIG_OPUS_ENCODER 0 #define CONFIG_RA_144_ENCODER 0 +#define CONFIG_SBC_ENCODER 0 #define CONFIG_SONIC_ENCODER 0 #define CONFIG_SONIC_LS_ENCODER 0 +#define CONFIG_TRUEHD_ENCODER 0 #define CONFIG_TTA_ENCODER 0 #define CONFIG_VORBIS_ENCODER 0 #define CONFIG_WAVPACK_ENCODER 0 @@ -1392,6 +1338,8 @@ #define CONFIG_PCM_S32BE_ENCODER 0 #define CONFIG_PCM_S32LE_ENCODER 0 #define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S64BE_ENCODER 0 +#define CONFIG_PCM_S64LE_ENCODER 0 #define CONFIG_PCM_U8_ENCODER 0 #define CONFIG_PCM_U16BE_ENCODER 0 #define CONFIG_PCM_U16LE_ENCODER 0 @@ -1399,10 +1347,12 @@ #define CONFIG_PCM_U24LE_ENCODER 0 #define CONFIG_PCM_U32BE_ENCODER 0 #define CONFIG_PCM_U32LE_ENCODER 0 +#define CONFIG_PCM_VIDC_ENCODER 0 #define CONFIG_ROQ_DPCM_ENCODER 0 #define CONFIG_ADPCM_ADX_ENCODER 0 #define CONFIG_ADPCM_G722_ENCODER 0 #define CONFIG_ADPCM_G726_ENCODER 0 +#define CONFIG_ADPCM_G726LE_ENCODER 0 #define CONFIG_ADPCM_IMA_QT_ENCODER 0 #define CONFIG_ADPCM_IMA_WAV_ENCODER 0 #define CONFIG_ADPCM_MS_ENCODER 0 @@ -1415,9 +1365,16 @@ #define CONFIG_MOVTEXT_ENCODER 0 #define CONFIG_SRT_ENCODER 0 #define CONFIG_SUBRIP_ENCODER 0 +#define CONFIG_TEXT_ENCODER 0 #define CONFIG_WEBVTT_ENCODER 0 #define CONFIG_XSUB_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 +#define CONFIG_AAC_AT_ENCODER 0 +#define CONFIG_ALAC_AT_ENCODER 0 +#define CONFIG_ILBC_AT_ENCODER 0 +#define CONFIG_PCM_ALAW_AT_ENCODER 0 +#define CONFIG_PCM_MULAW_AT_ENCODER 0 +#define CONFIG_LIBAOM_AV1_ENCODER 0 +#define CONFIG_LIBCODEC2_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1426,13 +1383,10 @@ #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 #define CONFIG_LIBOPENJPEG_ENCODER 0 #define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBSCHROEDINGER_ENCODER 0 #define CONFIG_LIBSHINE_ENCODER 0 #define CONFIG_LIBSPEEX_ENCODER 0 #define CONFIG_LIBTHEORA_ENCODER 0 #define CONFIG_LIBTWOLAME_ENCODER 0 -#define CONFIG_LIBUTVIDEO_ENCODER 0 -#define CONFIG_LIBVO_AACENC_ENCODER 0 #define CONFIG_LIBVO_AMRWBENC_ENCODER 0 #define CONFIG_LIBVORBIS_ENCODER 0 #define CONFIG_LIBVPX_VP8_ENCODER 0 @@ -1445,30 +1399,203 @@ #define CONFIG_LIBX264RGB_ENCODER 0 #define CONFIG_LIBX265_ENCODER 0 #define CONFIG_LIBXAVS_ENCODER 0 +#define CONFIG_LIBXAVS2_ENCODER 0 #define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_LIBAACPLUS_ENCODER 0 +#define CONFIG_H263_V4L2M2M_ENCODER 0 #define CONFIG_LIBOPENH264_ENCODER 0 +#define CONFIG_H264_AMF_ENCODER 0 +#define CONFIG_H264_NVENC_ENCODER 0 +#define CONFIG_H264_OMX_ENCODER 0 #define CONFIG_H264_QSV_ENCODER 0 +#define CONFIG_H264_V4L2M2M_ENCODER 0 +#define CONFIG_H264_VAAPI_ENCODER 0 +#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 #define CONFIG_NVENC_ENCODER 0 #define CONFIG_NVENC_H264_ENCODER 0 #define CONFIG_NVENC_HEVC_ENCODER 0 +#define CONFIG_HEVC_AMF_ENCODER 0 +#define CONFIG_HEVC_NVENC_ENCODER 0 #define CONFIG_HEVC_QSV_ENCODER 0 +#define CONFIG_HEVC_V4L2M2M_ENCODER 0 +#define CONFIG_HEVC_VAAPI_ENCODER 0 +#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 #define CONFIG_LIBKVAZAAR_ENCODER 0 +#define CONFIG_MJPEG_QSV_ENCODER 0 +#define CONFIG_MJPEG_VAAPI_ENCODER 0 #define CONFIG_MPEG2_QSV_ENCODER 0 +#define CONFIG_MPEG2_VAAPI_ENCODER 0 +#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_VAAPI_ENCODER 0 +#define CONFIG_VP9_VAAPI_ENCODER 0 +#define CONFIG_H263_VAAPI_HWACCEL 0 +#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_H264_D3D11VA_HWACCEL 0 +#define CONFIG_H264_D3D11VA2_HWACCEL 0 +#define CONFIG_H264_DXVA2_HWACCEL 0 +#define CONFIG_H264_NVDEC_HWACCEL 0 +#define CONFIG_H264_VAAPI_HWACCEL 0 +#define CONFIG_H264_VDPAU_HWACCEL 0 +#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +#define CONFIG_HEVC_DXVA2_HWACCEL 0 +#define CONFIG_HEVC_NVDEC_HWACCEL 0 +#define CONFIG_HEVC_VAAPI_HWACCEL 0 +#define CONFIG_HEVC_VDPAU_HWACCEL 0 +#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MJPEG_NVDEC_HWACCEL 0 +#define CONFIG_MJPEG_VAAPI_HWACCEL 0 +#define CONFIG_MPEG1_NVDEC_HWACCEL 0 +#define CONFIG_MPEG1_VDPAU_HWACCEL 0 +#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG1_XVMC_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +#define CONFIG_MPEG2_NVDEC_HWACCEL 0 +#define CONFIG_MPEG2_DXVA2_HWACCEL 0 +#define CONFIG_MPEG2_VAAPI_HWACCEL 0 +#define CONFIG_MPEG2_VDPAU_HWACCEL 0 +#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG2_XVMC_HWACCEL 0 +#define CONFIG_MPEG4_NVDEC_HWACCEL 0 +#define CONFIG_MPEG4_VAAPI_HWACCEL 0 +#define CONFIG_MPEG4_VDPAU_HWACCEL 0 +#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_VC1_D3D11VA_HWACCEL 0 +#define CONFIG_VC1_D3D11VA2_HWACCEL 0 +#define CONFIG_VC1_DXVA2_HWACCEL 0 +#define CONFIG_VC1_NVDEC_HWACCEL 0 +#define CONFIG_VC1_VAAPI_HWACCEL 0 +#define CONFIG_VC1_VDPAU_HWACCEL 0 +#define CONFIG_VP8_NVDEC_HWACCEL 0 +#define CONFIG_VP8_VAAPI_HWACCEL 0 +#define CONFIG_VP9_D3D11VA_HWACCEL 0 +#define CONFIG_VP9_D3D11VA2_HWACCEL 0 +#define CONFIG_VP9_DXVA2_HWACCEL 0 +#define CONFIG_VP9_NVDEC_HWACCEL 0 +#define CONFIG_VP9_VAAPI_HWACCEL 0 +#define CONFIG_WMV3_D3D11VA_HWACCEL 0 +#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +#define CONFIG_WMV3_DXVA2_HWACCEL 0 +#define CONFIG_WMV3_NVDEC_HWACCEL 0 +#define CONFIG_WMV3_VAAPI_HWACCEL 0 +#define CONFIG_WMV3_VDPAU_HWACCEL 0 +#define CONFIG_AAC_PARSER 1 +#define CONFIG_AAC_LATM_PARSER 1 +#define CONFIG_AC3_PARSER 1 +#define CONFIG_ADX_PARSER 1 +#define CONFIG_AV1_PARSER 1 +#define CONFIG_AVS2_PARSER 1 +#define CONFIG_BMP_PARSER 1 +#define CONFIG_CAVSVIDEO_PARSER 1 +#define CONFIG_COOK_PARSER 1 +#define CONFIG_DCA_PARSER 1 +#define CONFIG_DIRAC_PARSER 1 +#define CONFIG_DNXHD_PARSER 1 +#define CONFIG_DPX_PARSER 1 +#define CONFIG_DVAUDIO_PARSER 1 +#define CONFIG_DVBSUB_PARSER 1 +#define CONFIG_DVDSUB_PARSER 1 +#define CONFIG_DVD_NAV_PARSER 1 +#define CONFIG_FLAC_PARSER 1 +#define CONFIG_G729_PARSER 1 +#define CONFIG_GSM_PARSER 1 +#define CONFIG_H261_PARSER 1 +#define CONFIG_H263_PARSER 1 +#define CONFIG_H264_PARSER 1 +#define CONFIG_HEVC_PARSER 1 +#define CONFIG_MJPEG_PARSER 1 +#define CONFIG_MLP_PARSER 1 +#define CONFIG_MPEG4VIDEO_PARSER 1 +#define CONFIG_MPEGAUDIO_PARSER 1 +#define CONFIG_MPEGVIDEO_PARSER 1 +#define CONFIG_OPUS_PARSER 1 +#define CONFIG_PNG_PARSER 1 +#define CONFIG_PNM_PARSER 1 +#define CONFIG_RV30_PARSER 1 +#define CONFIG_RV40_PARSER 1 +#define CONFIG_SBC_PARSER 1 +#define CONFIG_SIPR_PARSER 1 +#define CONFIG_TAK_PARSER 1 +#define CONFIG_VC1_PARSER 1 +#define CONFIG_VORBIS_PARSER 1 +#define CONFIG_VP3_PARSER 1 +#define CONFIG_VP8_PARSER 1 +#define CONFIG_VP9_PARSER 1 +#define CONFIG_XMA_PARSER 1 +#define CONFIG_ALSA_INDEV 0 +#define CONFIG_ANDROID_CAMERA_INDEV 0 +#define CONFIG_AVFOUNDATION_INDEV 0 +#define CONFIG_BKTR_INDEV 0 +#define CONFIG_DECKLINK_INDEV 0 +#define CONFIG_LIBNDI_NEWTEK_INDEV 0 +#define CONFIG_DSHOW_INDEV 0 +#define CONFIG_FBDEV_INDEV 0 +#define CONFIG_GDIGRAB_INDEV 0 +#define CONFIG_IEC61883_INDEV 0 +#define CONFIG_JACK_INDEV 0 +#define CONFIG_KMSGRAB_INDEV 0 +#define CONFIG_LAVFI_INDEV 0 +#define CONFIG_OPENAL_INDEV 0 +#define CONFIG_OSS_INDEV 0 +#define CONFIG_PULSE_INDEV 0 +#define CONFIG_SNDIO_INDEV 0 +#define CONFIG_V4L2_INDEV 0 +#define CONFIG_VFWCAP_INDEV 0 +#define CONFIG_XCBGRAB_INDEV 0 +#define CONFIG_LIBCDIO_INDEV 0 +#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_ALSA_OUTDEV 0 +#define CONFIG_CACA_OUTDEV 0 +#define CONFIG_DECKLINK_OUTDEV 0 +#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +#define CONFIG_FBDEV_OUTDEV 0 +#define CONFIG_OPENGL_OUTDEV 0 +#define CONFIG_OSS_OUTDEV 0 +#define CONFIG_PULSE_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 +#define CONFIG_SNDIO_OUTDEV 0 +#define CONFIG_V4L2_OUTDEV 0 +#define CONFIG_XV_OUTDEV 0 +#define CONFIG_ABENCH_FILTER 0 +#define CONFIG_ACOMPRESSOR_FILTER 0 +#define CONFIG_ACONTRAST_FILTER 0 +#define CONFIG_ACOPY_FILTER 0 +#define CONFIG_ACUE_FILTER 0 #define CONFIG_ACROSSFADE_FILTER 0 +#define CONFIG_ACROSSOVER_FILTER 0 +#define CONFIG_ACRUSHER_FILTER 0 +#define CONFIG_ADECLICK_FILTER 0 +#define CONFIG_ADECLIP_FILTER 0 #define CONFIG_ADELAY_FILTER 0 +#define CONFIG_ADERIVATIVE_FILTER 0 #define CONFIG_AECHO_FILTER 0 +#define CONFIG_AEMPHASIS_FILTER 0 #define CONFIG_AEVAL_FILTER 0 #define CONFIG_AFADE_FILTER 0 +#define CONFIG_AFFTDN_FILTER 0 +#define CONFIG_AFFTFILT_FILTER 0 +#define CONFIG_AFIR_FILTER 0 #define CONFIG_AFORMAT_FILTER 0 +#define CONFIG_AGATE_FILTER 0 +#define CONFIG_AIIR_FILTER 0 +#define CONFIG_AINTEGRAL_FILTER 0 #define CONFIG_AINTERLEAVE_FILTER 0 +#define CONFIG_ALIMITER_FILTER 0 #define CONFIG_ALLPASS_FILTER 0 +#define CONFIG_ALOOP_FILTER 0 #define CONFIG_AMERGE_FILTER 0 +#define CONFIG_AMETADATA_FILTER 0 #define CONFIG_AMIX_FILTER 0 +#define CONFIG_AMULTIPLY_FILTER 0 +#define CONFIG_ANEQUALIZER_FILTER 0 #define CONFIG_ANULL_FILTER 0 #define CONFIG_APAD_FILTER 0 #define CONFIG_APERMS_FILTER 0 #define CONFIG_APHASER_FILTER 0 +#define CONFIG_APULSATOR_FILTER 0 +#define CONFIG_AREALTIME_FILTER 0 #define CONFIG_ARESAMPLE_FILTER 0 #define CONFIG_AREVERSE_FILTER 0 #define CONFIG_ASELECT_FILTER 0 @@ -1478,10 +1605,10 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 -#define CONFIG_ASTREAMSYNC_FILTER 0 -#define CONFIG_ASYNCTS_FILTER 0 +#define CONFIG_ASTREAMSELECT_FILTER 0 #define CONFIG_ATEMPO_FILTER 0 #define CONFIG_ATRIM_FILTER 0 #define CONFIG_AZMQ_FILTER 0 @@ -1494,88 +1621,162 @@ #define CONFIG_CHANNELSPLIT_FILTER 0 #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 +#define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CROSSFEED_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 +#define CONFIG_DRMETER_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 #define CONFIG_EBUR128_FILTER 0 #define CONFIG_EQUALIZER_FILTER 0 +#define CONFIG_EXTRASTEREO_FILTER 0 +#define CONFIG_FIREQUALIZER_FILTER 0 #define CONFIG_FLANGER_FILTER 0 +#define CONFIG_HAAS_FILTER 0 +#define CONFIG_HDCD_FILTER 0 +#define CONFIG_HEADPHONE_FILTER 0 #define CONFIG_HIGHPASS_FILTER 0 +#define CONFIG_HIGHSHELF_FILTER 0 #define CONFIG_JOIN_FILTER 0 #define CONFIG_LADSPA_FILTER 0 +#define CONFIG_LOUDNORM_FILTER 0 #define CONFIG_LOWPASS_FILTER 0 +#define CONFIG_LOWSHELF_FILTER 0 +#define CONFIG_LV2_FILTER 0 +#define CONFIG_MCOMPAND_FILTER 0 #define CONFIG_PAN_FILTER 0 #define CONFIG_REPLAYGAIN_FILTER 0 #define CONFIG_RESAMPLE_FILTER 0 +#define CONFIG_RUBBERBAND_FILTER 0 #define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +#define CONFIG_SIDECHAINGATE_FILTER 0 #define CONFIG_SILENCEDETECT_FILTER 0 #define CONFIG_SILENCEREMOVE_FILTER 0 +#define CONFIG_SOFALIZER_FILTER 0 +#define CONFIG_STEREOTOOLS_FILTER 0 +#define CONFIG_STEREOWIDEN_FILTER 0 +#define CONFIG_SUPEREQUALIZER_FILTER 0 +#define CONFIG_SURROUND_FILTER 0 #define CONFIG_TREBLE_FILTER 0 +#define CONFIG_TREMOLO_FILTER 0 +#define CONFIG_VIBRATO_FILTER 0 #define CONFIG_VOLUME_FILTER 0 #define CONFIG_VOLUMEDETECT_FILTER 0 #define CONFIG_AEVALSRC_FILTER 0 +#define CONFIG_ANOISESRC_FILTER 0 #define CONFIG_ANULLSRC_FILTER 0 #define CONFIG_FLITE_FILTER 0 +#define CONFIG_HILBERT_FILTER 0 +#define CONFIG_SINC_FILTER 0 #define CONFIG_SINE_FILTER 0 #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 +#define CONFIG_AMPLIFY_FILTER 0 #define CONFIG_ASS_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 +#define CONFIG_AVGBLUR_OPENCL_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 +#define CONFIG_BM3D_FILTER 0 #define CONFIG_BOXBLUR_FILTER 0 +#define CONFIG_BOXBLUR_OPENCL_FILTER 0 +#define CONFIG_BWDIF_FILTER 0 +#define CONFIG_CHROMAHOLD_FILTER 0 +#define CONFIG_CHROMAKEY_FILTER 0 +#define CONFIG_CHROMASHIFT_FILTER 0 +#define CONFIG_CIESCOPE_FILTER 0 #define CONFIG_CODECVIEW_FILTER 0 #define CONFIG_COLORBALANCE_FILTER 0 #define CONFIG_COLORCHANNELMIXER_FILTER 0 #define CONFIG_COLORKEY_FILTER 0 #define CONFIG_COLORLEVELS_FILTER 0 #define CONFIG_COLORMATRIX_FILTER 0 +#define CONFIG_COLORSPACE_FILTER 0 +#define CONFIG_CONVOLUTION_FILTER 0 +#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 +#define CONFIG_CONVOLVE_FILTER 0 #define CONFIG_COPY_FILTER 0 +#define CONFIG_COREIMAGE_FILTER 0 #define CONFIG_COVER_RECT_FILTER 0 #define CONFIG_CROP_FILTER 0 #define CONFIG_CROPDETECT_FILTER 0 +#define CONFIG_CUE_FILTER 0 #define CONFIG_CURVES_FILTER 0 +#define CONFIG_DATASCOPE_FILTER 0 #define CONFIG_DCTDNOIZ_FILTER 0 #define CONFIG_DEBAND_FILTER 0 +#define CONFIG_DEBLOCK_FILTER 0 #define CONFIG_DECIMATE_FILTER 0 +#define CONFIG_DECONVOLVE_FILTER 0 +#define CONFIG_DEDOT_FILTER 0 #define CONFIG_DEFLATE_FILTER 0 +#define CONFIG_DEFLICKER_FILTER 0 +#define CONFIG_DEINTERLACE_QSV_FILTER 0 +#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 #define CONFIG_DEJUDDER_FILTER 0 #define CONFIG_DELOGO_FILTER 0 +#define CONFIG_DENOISE_VAAPI_FILTER 0 #define CONFIG_DESHAKE_FILTER 0 +#define CONFIG_DESPILL_FILTER 0 #define CONFIG_DETELECINE_FILTER 0 #define CONFIG_DILATION_FILTER 0 +#define CONFIG_DILATION_OPENCL_FILTER 0 +#define CONFIG_DISPLACE_FILTER 0 +#define CONFIG_DOUBLEWEAVE_FILTER 0 #define CONFIG_DRAWBOX_FILTER 0 #define CONFIG_DRAWGRAPH_FILTER 0 #define CONFIG_DRAWGRID_FILTER 0 #define CONFIG_DRAWTEXT_FILTER 0 #define CONFIG_EDGEDETECT_FILTER 0 #define CONFIG_ELBG_FILTER 0 +#define CONFIG_ENTROPY_FILTER 0 #define CONFIG_EQ_FILTER 0 #define CONFIG_EROSION_FILTER 0 +#define CONFIG_EROSION_OPENCL_FILTER 0 #define CONFIG_EXTRACTPLANES_FILTER 0 #define CONFIG_FADE_FILTER 0 +#define CONFIG_FFTDNOIZ_FILTER 0 #define CONFIG_FFTFILT_FILTER 0 #define CONFIG_FIELD_FILTER 0 +#define CONFIG_FIELDHINT_FILTER 0 #define CONFIG_FIELDMATCH_FILTER 0 #define CONFIG_FIELDORDER_FILTER 0 +#define CONFIG_FILLBORDERS_FILTER 0 #define CONFIG_FIND_RECT_FILTER 0 +#define CONFIG_FLOODFILL_FILTER 0 #define CONFIG_FORMAT_FILTER 0 #define CONFIG_FPS_FILTER 0 #define CONFIG_FRAMEPACK_FILTER 0 +#define CONFIG_FRAMERATE_FILTER 0 #define CONFIG_FRAMESTEP_FILTER 0 +#define CONFIG_FREEZEDETECT_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 +#define CONFIG_GRAPHMONITOR_FILTER 0 +#define CONFIG_GREYEDGE_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 #define CONFIG_HFLIP_FILTER 0 #define CONFIG_HISTEQ_FILTER 0 #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 #define CONFIG_HUE_FILTER 0 +#define CONFIG_HWDOWNLOAD_FILTER 0 +#define CONFIG_HWMAP_FILTER 0 +#define CONFIG_HWUPLOAD_FILTER 0 +#define CONFIG_HWUPLOAD_CUDA_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1583,19 +1784,40 @@ #define CONFIG_INTERLEAVE_FILTER 0 #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 -#define CONFIG_LUT3D_FILTER 0 +#define CONFIG_LENSFUN_FILTER 0 +#define CONFIG_LIBVMAF_FILTER 0 +#define CONFIG_LIMITER_FILTER 0 +#define CONFIG_LOOP_FILTER 0 +#define CONFIG_LUMAKEY_FILTER 0 #define CONFIG_LUT_FILTER 0 +#define CONFIG_LUT1D_FILTER 0 +#define CONFIG_LUT2_FILTER 0 +#define CONFIG_LUT3D_FILTER 0 #define CONFIG_LUTRGB_FILTER 0 #define CONFIG_LUTYUV_FILTER 0 +#define CONFIG_MASKEDCLAMP_FILTER 0 +#define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 +#define CONFIG_METADATA_FILTER 0 +#define CONFIG_MIDEQUALIZER_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 +#define CONFIG_MIX_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 +#define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 +#define CONFIG_NORMALIZE_FILTER 0 #define CONFIG_NULL_FILTER 0 +#define CONFIG_OCR_FILTER 0 #define CONFIG_OCV_FILTER 0 +#define CONFIG_OSCILLOSCOPE_FILTER 0 #define CONFIG_OVERLAY_FILTER 0 +#define CONFIG_OVERLAY_OPENCL_FILTER 0 +#define CONFIG_OVERLAY_QSV_FILTER 0 #define CONFIG_OWDENOISE_FILTER 0 #define CONFIG_PAD_FILTER 0 #define CONFIG_PALETTEGEN_FILTER 0 @@ -1604,135 +1826,445 @@ #define CONFIG_PERSPECTIVE_FILTER 0 #define CONFIG_PHASE_FILTER 0 #define CONFIG_PIXDESCTEST_FILTER 0 +#define CONFIG_PIXSCOPE_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREMULTIPLY_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 +#define CONFIG_PREWITT_OPENCL_FILTER 0 +#define CONFIG_PROCAMP_VAAPI_FILTER 0 +#define CONFIG_PROGRAM_OPENCL_FILTER 0 +#define CONFIG_PSEUDOCOLOR_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 #define CONFIG_RANDOM_FILTER 0 +#define CONFIG_READEIA608_FILTER 0 +#define CONFIG_READVITC_FILTER 0 +#define CONFIG_REALTIME_FILTER 0 +#define CONFIG_REMAP_FILTER 0 #define CONFIG_REMOVEGRAIN_FILTER 0 #define CONFIG_REMOVELOGO_FILTER 0 #define CONFIG_REPEATFIELDS_FILTER 0 #define CONFIG_REVERSE_FILTER 0 +#define CONFIG_RGBASHIFT_FILTER 0 +#define CONFIG_ROBERTS_FILTER 0 +#define CONFIG_ROBERTS_OPENCL_FILTER 0 #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 +#define CONFIG_SCALE_CUDA_FILTER 0 +#define CONFIG_SCALE_NPP_FILTER 0 +#define CONFIG_SCALE_QSV_FILTER 0 +#define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 +#define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 #define CONFIG_SEPARATEFIELDS_FILTER 0 #define CONFIG_SETDAR_FILTER 0 #define CONFIG_SETFIELD_FILTER 0 +#define CONFIG_SETPARAMS_FILTER 0 #define CONFIG_SETPTS_FILTER 0 +#define CONFIG_SETRANGE_FILTER 0 #define CONFIG_SETSAR_FILTER 0 #define CONFIG_SETTB_FILTER 0 +#define CONFIG_SHARPNESS_VAAPI_FILTER 0 #define CONFIG_SHOWINFO_FILTER 0 #define CONFIG_SHOWPALETTE_FILTER 0 +#define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 +#define CONFIG_SIGNATURE_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 +#define CONFIG_SOBEL_OPENCL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 +#define CONFIG_SR_FILTER 0 #define CONFIG_SSIM_FILTER 0 #define CONFIG_STEREO3D_FILTER 0 +#define CONFIG_STREAMSELECT_FILTER 0 #define CONFIG_SUBTITLES_FILTER 0 #define CONFIG_SUPER2XSAI_FILTER 0 +#define CONFIG_SWAPRECT_FILTER 0 #define CONFIG_SWAPUV_FILTER 0 #define CONFIG_TBLEND_FILTER 0 #define CONFIG_TELECINE_FILTER 0 +#define CONFIG_THRESHOLD_FILTER 0 #define CONFIG_THUMBNAIL_FILTER 0 +#define CONFIG_THUMBNAIL_CUDA_FILTER 0 #define CONFIG_TILE_FILTER 0 #define CONFIG_TINTERLACE_FILTER 0 +#define CONFIG_TLUT2_FILTER 0 +#define CONFIG_TMIX_FILTER 0 +#define CONFIG_TONEMAP_FILTER 0 +#define CONFIG_TONEMAP_OPENCL_FILTER 0 +#define CONFIG_TPAD_FILTER 0 #define CONFIG_TRANSPOSE_FILTER 0 +#define CONFIG_TRANSPOSE_NPP_FILTER 0 #define CONFIG_TRIM_FILTER 0 +#define CONFIG_UNPREMULTIPLY_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 +#define CONFIG_UNSHARP_OPENCL_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 +#define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 +#define CONFIG_VFRDET_FILTER 0 +#define CONFIG_VIBRANCE_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 #define CONFIG_VIDSTABTRANSFORM_FILTER 0 #define CONFIG_VIGNETTE_FILTER 0 +#define CONFIG_VMAFMOTION_FILTER 0 +#define CONFIG_VPP_QSV_FILTER 0 +#define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 +#define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 +#define CONFIG_XSTACK_FILTER 0 #define CONFIG_YADIF_FILTER 0 +#define CONFIG_YADIF_CUDA_FILTER 0 #define CONFIG_ZMQ_FILTER 0 #define CONFIG_ZOOMPAN_FILTER 0 +#define CONFIG_ZSCALE_FILTER 0 +#define CONFIG_ALLRGB_FILTER 0 +#define CONFIG_ALLYUV_FILTER 0 #define CONFIG_CELLAUTO_FILTER 0 #define CONFIG_COLOR_FILTER 0 +#define CONFIG_COREIMAGESRC_FILTER 0 #define CONFIG_FREI0R_SRC_FILTER 0 #define CONFIG_HALDCLUTSRC_FILTER 0 #define CONFIG_LIFE_FILTER 0 #define CONFIG_MANDELBROT_FILTER 0 #define CONFIG_MPTESTSRC_FILTER 0 #define CONFIG_NULLSRC_FILTER 0 +#define CONFIG_OPENCLSRC_FILTER 0 +#define CONFIG_PAL75BARS_FILTER 0 +#define CONFIG_PAL100BARS_FILTER 0 #define CONFIG_RGBTESTSRC_FILTER 0 #define CONFIG_SMPTEBARS_FILTER 0 #define CONFIG_SMPTEHDBARS_FILTER 0 #define CONFIG_TESTSRC_FILTER 0 +#define CONFIG_TESTSRC2_FILTER 0 +#define CONFIG_YUVTESTSRC_FILTER 0 #define CONFIG_NULLSINK_FILTER 0 +#define CONFIG_ABITSCOPE_FILTER 0 #define CONFIG_ADRAWGRAPH_FILTER 0 +#define CONFIG_AGRAPHMONITOR_FILTER 0 +#define CONFIG_AHISTOGRAM_FILTER 0 +#define CONFIG_APHASEMETER_FILTER 0 #define CONFIG_AVECTORSCOPE_FILTER 0 #define CONFIG_CONCAT_FILTER 0 #define CONFIG_SHOWCQT_FILTER 0 +#define CONFIG_SHOWFREQS_FILTER 0 #define CONFIG_SHOWSPECTRUM_FILTER 0 +#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 #define CONFIG_SHOWVOLUME_FILTER 0 #define CONFIG_SHOWWAVES_FILTER 0 #define CONFIG_SHOWWAVESPIC_FILTER 0 +#define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VDPAU_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_MMAL_HWACCEL 0 -#define CONFIG_H264_QSV_HWACCEL 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDA_HWACCEL 0 -#define CONFIG_H264_VDA_OLD_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_QSV_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_QSV_HWACCEL 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VC1_QSV_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_BKTR_INDEV 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_DV1394_INDEV 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_LAVFI_INDEV 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_QTKIT_INDEV 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_X11GRAB_INDEV 0 -#define CONFIG_X11GRAB_XCB_INDEV 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_AFIFO_FILTER 0 +#define CONFIG_FIFO_FILTER 0 +#define CONFIG_AA_DEMUXER 1 +#define CONFIG_AAC_DEMUXER 1 +#define CONFIG_AC3_DEMUXER 1 +#define CONFIG_ACM_DEMUXER 1 +#define CONFIG_ACT_DEMUXER 1 +#define CONFIG_ADF_DEMUXER 1 +#define CONFIG_ADP_DEMUXER 1 +#define CONFIG_ADS_DEMUXER 1 +#define CONFIG_ADX_DEMUXER 1 +#define CONFIG_AEA_DEMUXER 1 +#define CONFIG_AFC_DEMUXER 1 +#define CONFIG_AIFF_DEMUXER 1 +#define CONFIG_AIX_DEMUXER 1 +#define CONFIG_AMR_DEMUXER 1 +#define CONFIG_AMRNB_DEMUXER 1 +#define CONFIG_AMRWB_DEMUXER 1 +#define CONFIG_ANM_DEMUXER 1 +#define CONFIG_APC_DEMUXER 1 +#define CONFIG_APE_DEMUXER 1 +#define CONFIG_APNG_DEMUXER 1 +#define CONFIG_APTX_DEMUXER 1 +#define CONFIG_APTX_HD_DEMUXER 1 +#define CONFIG_AQTITLE_DEMUXER 1 +#define CONFIG_ASF_DEMUXER 1 +#define CONFIG_ASF_O_DEMUXER 1 +#define CONFIG_ASS_DEMUXER 1 +#define CONFIG_AST_DEMUXER 1 +#define CONFIG_AU_DEMUXER 1 +#define CONFIG_AVI_DEMUXER 1 +#define CONFIG_AVISYNTH_DEMUXER 0 +#define CONFIG_AVR_DEMUXER 1 +#define CONFIG_AVS_DEMUXER 1 +#define CONFIG_AVS2_DEMUXER 1 +#define CONFIG_BETHSOFTVID_DEMUXER 1 +#define CONFIG_BFI_DEMUXER 1 +#define CONFIG_BINTEXT_DEMUXER 1 +#define CONFIG_BINK_DEMUXER 1 +#define CONFIG_BIT_DEMUXER 1 +#define CONFIG_BMV_DEMUXER 1 +#define CONFIG_BFSTM_DEMUXER 1 +#define CONFIG_BRSTM_DEMUXER 1 +#define CONFIG_BOA_DEMUXER 1 +#define CONFIG_C93_DEMUXER 1 +#define CONFIG_CAF_DEMUXER 1 +#define CONFIG_CAVSVIDEO_DEMUXER 1 +#define CONFIG_CDG_DEMUXER 1 +#define CONFIG_CDXL_DEMUXER 1 +#define CONFIG_CINE_DEMUXER 1 +#define CONFIG_CODEC2_DEMUXER 1 +#define CONFIG_CODEC2RAW_DEMUXER 1 +#define CONFIG_CONCAT_DEMUXER 1 +#define CONFIG_DASH_DEMUXER 0 +#define CONFIG_DATA_DEMUXER 1 +#define CONFIG_DAUD_DEMUXER 1 +#define CONFIG_DCSTR_DEMUXER 1 +#define CONFIG_DFA_DEMUXER 1 +#define CONFIG_DIRAC_DEMUXER 1 +#define CONFIG_DNXHD_DEMUXER 1 +#define CONFIG_DSF_DEMUXER 1 +#define CONFIG_DSICIN_DEMUXER 1 +#define CONFIG_DSS_DEMUXER 1 +#define CONFIG_DTS_DEMUXER 1 +#define CONFIG_DTSHD_DEMUXER 1 +#define CONFIG_DV_DEMUXER 1 +#define CONFIG_DVBSUB_DEMUXER 1 +#define CONFIG_DVBTXT_DEMUXER 1 +#define CONFIG_DXA_DEMUXER 1 +#define CONFIG_EA_DEMUXER 1 +#define CONFIG_EA_CDATA_DEMUXER 1 +#define CONFIG_EAC3_DEMUXER 1 +#define CONFIG_EPAF_DEMUXER 1 +#define CONFIG_FFMETADATA_DEMUXER 1 +#define CONFIG_FILMSTRIP_DEMUXER 1 +#define CONFIG_FITS_DEMUXER 1 +#define CONFIG_FLAC_DEMUXER 1 +#define CONFIG_FLIC_DEMUXER 1 +#define CONFIG_FLV_DEMUXER 1 +#define CONFIG_LIVE_FLV_DEMUXER 1 +#define CONFIG_FOURXM_DEMUXER 1 +#define CONFIG_FRM_DEMUXER 1 +#define CONFIG_FSB_DEMUXER 1 +#define CONFIG_G722_DEMUXER 1 +#define CONFIG_G723_1_DEMUXER 1 +#define CONFIG_G726_DEMUXER 1 +#define CONFIG_G726LE_DEMUXER 1 +#define CONFIG_G729_DEMUXER 1 +#define CONFIG_GDV_DEMUXER 1 +#define CONFIG_GENH_DEMUXER 1 +#define CONFIG_GIF_DEMUXER 1 +#define CONFIG_GSM_DEMUXER 1 +#define CONFIG_GXF_DEMUXER 1 +#define CONFIG_H261_DEMUXER 1 +#define CONFIG_H263_DEMUXER 1 +#define CONFIG_H264_DEMUXER 1 +#define CONFIG_HEVC_DEMUXER 1 +#define CONFIG_HLS_DEMUXER 1 +#define CONFIG_HNM_DEMUXER 1 +#define CONFIG_ICO_DEMUXER 1 +#define CONFIG_IDCIN_DEMUXER 1 +#define CONFIG_IDF_DEMUXER 1 +#define CONFIG_IFF_DEMUXER 1 +#define CONFIG_ILBC_DEMUXER 1 +#define CONFIG_IMAGE2_DEMUXER 1 +#define CONFIG_IMAGE2PIPE_DEMUXER 1 +#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1 +#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1 +#define CONFIG_INGENIENT_DEMUXER 1 +#define CONFIG_IPMOVIE_DEMUXER 1 +#define CONFIG_IRCAM_DEMUXER 1 +#define CONFIG_ISS_DEMUXER 1 +#define CONFIG_IV8_DEMUXER 1 +#define CONFIG_IVF_DEMUXER 1 +#define CONFIG_IVR_DEMUXER 1 +#define CONFIG_JACOSUB_DEMUXER 1 +#define CONFIG_JV_DEMUXER 1 +#define CONFIG_LMLM4_DEMUXER 1 +#define CONFIG_LOAS_DEMUXER 1 +#define CONFIG_LRC_DEMUXER 1 +#define CONFIG_LVF_DEMUXER 1 +#define CONFIG_LXF_DEMUXER 1 +#define CONFIG_M4V_DEMUXER 1 +#define CONFIG_MATROSKA_DEMUXER 1 +#define CONFIG_MGSTS_DEMUXER 1 +#define CONFIG_MICRODVD_DEMUXER 1 +#define CONFIG_MJPEG_DEMUXER 1 +#define CONFIG_MJPEG_2000_DEMUXER 1 +#define CONFIG_MLP_DEMUXER 1 +#define CONFIG_MLV_DEMUXER 1 +#define CONFIG_MM_DEMUXER 1 +#define CONFIG_MMF_DEMUXER 1 +#define CONFIG_MOV_DEMUXER 1 +#define CONFIG_MP3_DEMUXER 1 +#define CONFIG_MPC_DEMUXER 1 +#define CONFIG_MPC8_DEMUXER 1 +#define CONFIG_MPEGPS_DEMUXER 1 +#define CONFIG_MPEGTS_DEMUXER 1 +#define CONFIG_MPEGTSRAW_DEMUXER 1 +#define CONFIG_MPEGVIDEO_DEMUXER 1 +#define CONFIG_MPJPEG_DEMUXER 1 +#define CONFIG_MPL2_DEMUXER 1 +#define CONFIG_MPSUB_DEMUXER 1 +#define CONFIG_MSF_DEMUXER 1 +#define CONFIG_MSNWC_TCP_DEMUXER 1 +#define CONFIG_MTAF_DEMUXER 1 +#define CONFIG_MTV_DEMUXER 1 +#define CONFIG_MUSX_DEMUXER 1 +#define CONFIG_MV_DEMUXER 1 +#define CONFIG_MVI_DEMUXER 1 +#define CONFIG_MXF_DEMUXER 1 +#define CONFIG_MXG_DEMUXER 1 +#define CONFIG_NC_DEMUXER 1 +#define CONFIG_NISTSPHERE_DEMUXER 1 +#define CONFIG_NSP_DEMUXER 1 +#define CONFIG_NSV_DEMUXER 1 +#define CONFIG_NUT_DEMUXER 1 +#define CONFIG_NUV_DEMUXER 1 +#define CONFIG_OGG_DEMUXER 1 +#define CONFIG_OMA_DEMUXER 1 +#define CONFIG_PAF_DEMUXER 1 +#define CONFIG_PCM_ALAW_DEMUXER 1 +#define CONFIG_PCM_MULAW_DEMUXER 1 +#define CONFIG_PCM_VIDC_DEMUXER 1 +#define CONFIG_PCM_F64BE_DEMUXER 1 +#define CONFIG_PCM_F64LE_DEMUXER 1 +#define CONFIG_PCM_F32BE_DEMUXER 1 +#define CONFIG_PCM_F32LE_DEMUXER 1 +#define CONFIG_PCM_S32BE_DEMUXER 1 +#define CONFIG_PCM_S32LE_DEMUXER 1 +#define CONFIG_PCM_S24BE_DEMUXER 1 +#define CONFIG_PCM_S24LE_DEMUXER 1 +#define CONFIG_PCM_S16BE_DEMUXER 1 +#define CONFIG_PCM_S16LE_DEMUXER 1 +#define CONFIG_PCM_S8_DEMUXER 1 +#define CONFIG_PCM_U32BE_DEMUXER 1 +#define CONFIG_PCM_U32LE_DEMUXER 1 +#define CONFIG_PCM_U24BE_DEMUXER 1 +#define CONFIG_PCM_U24LE_DEMUXER 1 +#define CONFIG_PCM_U16BE_DEMUXER 1 +#define CONFIG_PCM_U16LE_DEMUXER 1 +#define CONFIG_PCM_U8_DEMUXER 1 +#define CONFIG_PJS_DEMUXER 1 +#define CONFIG_PMP_DEMUXER 1 +#define CONFIG_PVA_DEMUXER 1 +#define CONFIG_PVF_DEMUXER 1 +#define CONFIG_QCP_DEMUXER 1 +#define CONFIG_R3D_DEMUXER 1 +#define CONFIG_RAWVIDEO_DEMUXER 1 +#define CONFIG_REALTEXT_DEMUXER 1 +#define CONFIG_REDSPARK_DEMUXER 1 +#define CONFIG_RL2_DEMUXER 1 +#define CONFIG_RM_DEMUXER 1 +#define CONFIG_ROQ_DEMUXER 1 +#define CONFIG_RPL_DEMUXER 1 +#define CONFIG_RSD_DEMUXER 1 +#define CONFIG_RSO_DEMUXER 1 +#define CONFIG_RTP_DEMUXER 0 +#define CONFIG_RTSP_DEMUXER 0 +#define CONFIG_S337M_DEMUXER 1 +#define CONFIG_SAMI_DEMUXER 1 +#define CONFIG_SAP_DEMUXER 0 +#define CONFIG_SBC_DEMUXER 1 +#define CONFIG_SBG_DEMUXER 1 +#define CONFIG_SCC_DEMUXER 1 +#define CONFIG_SDP_DEMUXER 0 +#define CONFIG_SDR2_DEMUXER 1 +#define CONFIG_SDS_DEMUXER 1 +#define CONFIG_SDX_DEMUXER 1 +#define CONFIG_SEGAFILM_DEMUXER 1 +#define CONFIG_SER_DEMUXER 1 +#define CONFIG_SHORTEN_DEMUXER 1 +#define CONFIG_SIFF_DEMUXER 1 +#define CONFIG_SLN_DEMUXER 1 +#define CONFIG_SMACKER_DEMUXER 1 +#define CONFIG_SMJPEG_DEMUXER 1 +#define CONFIG_SMUSH_DEMUXER 1 +#define CONFIG_SOL_DEMUXER 1 +#define CONFIG_SOX_DEMUXER 1 +#define CONFIG_SPDIF_DEMUXER 1 +#define CONFIG_SRT_DEMUXER 1 +#define CONFIG_STR_DEMUXER 1 +#define CONFIG_STL_DEMUXER 1 +#define CONFIG_SUBVIEWER1_DEMUXER 1 +#define CONFIG_SUBVIEWER_DEMUXER 1 +#define CONFIG_SUP_DEMUXER 1 +#define CONFIG_SVAG_DEMUXER 1 +#define CONFIG_SWF_DEMUXER 1 +#define CONFIG_TAK_DEMUXER 1 +#define CONFIG_TEDCAPTIONS_DEMUXER 1 +#define CONFIG_THP_DEMUXER 1 +#define CONFIG_THREEDOSTR_DEMUXER 1 +#define CONFIG_TIERTEXSEQ_DEMUXER 1 +#define CONFIG_TMV_DEMUXER 1 +#define CONFIG_TRUEHD_DEMUXER 1 +#define CONFIG_TTA_DEMUXER 1 +#define CONFIG_TXD_DEMUXER 1 +#define CONFIG_TTY_DEMUXER 1 +#define CONFIG_TY_DEMUXER 1 +#define CONFIG_V210_DEMUXER 1 +#define CONFIG_V210X_DEMUXER 1 +#define CONFIG_VAG_DEMUXER 1 +#define CONFIG_VC1_DEMUXER 1 +#define CONFIG_VC1T_DEMUXER 1 +#define CONFIG_VIVO_DEMUXER 1 +#define CONFIG_VMD_DEMUXER 1 +#define CONFIG_VOBSUB_DEMUXER 1 +#define CONFIG_VOC_DEMUXER 1 +#define CONFIG_VPK_DEMUXER 1 +#define CONFIG_VPLAYER_DEMUXER 1 +#define CONFIG_VQF_DEMUXER 1 +#define CONFIG_W64_DEMUXER 1 +#define CONFIG_WAV_DEMUXER 1 +#define CONFIG_WC3_DEMUXER 1 +#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1 +#define CONFIG_WEBVTT_DEMUXER 1 +#define CONFIG_WSAUD_DEMUXER 1 +#define CONFIG_WSD_DEMUXER 1 +#define CONFIG_WSVQA_DEMUXER 1 +#define CONFIG_WTV_DEMUXER 1 +#define CONFIG_WVE_DEMUXER 1 +#define CONFIG_WV_DEMUXER 1 +#define CONFIG_XA_DEMUXER 1 +#define CONFIG_XBIN_DEMUXER 1 +#define CONFIG_XMV_DEMUXER 1 +#define CONFIG_XVAG_DEMUXER 1 +#define CONFIG_XWMA_DEMUXER 1 +#define CONFIG_YOP_DEMUXER 1 +#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1 +#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1 +#define CONFIG_LIBGME_DEMUXER 0 +#define CONFIG_LIBMODPLUG_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 +#define CONFIG_VAPOURSYNTH_DEMUXER 0 #define CONFIG_A64_MUXER 0 #define CONFIG_AC3_MUXER 0 #define CONFIG_ADTS_MUXER 0 @@ -1740,6 +2272,8 @@ #define CONFIG_AIFF_MUXER 0 #define CONFIG_AMR_MUXER 0 #define CONFIG_APNG_MUXER 0 +#define CONFIG_APTX_MUXER 0 +#define CONFIG_APTX_HD_MUXER 0 #define CONFIG_ASF_MUXER 0 #define CONFIG_ASS_MUXER 0 #define CONFIG_AST_MUXER 0 @@ -1747,9 +2281,12 @@ #define CONFIG_AU_MUXER 0 #define CONFIG_AVI_MUXER 0 #define CONFIG_AVM2_MUXER 0 +#define CONFIG_AVS2_MUXER 0 #define CONFIG_BIT_MUXER 0 #define CONFIG_CAF_MUXER 0 #define CONFIG_CAVSVIDEO_MUXER 0 +#define CONFIG_CODEC2_MUXER 0 +#define CONFIG_CODEC2RAW_MUXER 0 #define CONFIG_CRC_MUXER 0 #define CONFIG_DASH_MUXER 0 #define CONFIG_DATA_MUXER 0 @@ -1760,20 +2297,27 @@ #define CONFIG_DV_MUXER 0 #define CONFIG_EAC3_MUXER 0 #define CONFIG_F4V_MUXER 0 -#define CONFIG_FFM_MUXER 0 #define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 +#define CONFIG_FIFO_TEST_MUXER 0 #define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 #define CONFIG_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 #define CONFIG_FRAMECRC_MUXER 0 +#define CONFIG_FRAMEHASH_MUXER 0 #define CONFIG_FRAMEMD5_MUXER 0 #define CONFIG_G722_MUXER 0 #define CONFIG_G723_1_MUXER 0 +#define CONFIG_G726_MUXER 0 +#define CONFIG_G726LE_MUXER 0 #define CONFIG_GIF_MUXER 0 +#define CONFIG_GSM_MUXER 0 #define CONFIG_GXF_MUXER 0 #define CONFIG_H261_MUXER 0 #define CONFIG_H263_MUXER 0 #define CONFIG_H264_MUXER 0 +#define CONFIG_HASH_MUXER 0 #define CONFIG_HDS_MUXER 0 #define CONFIG_HEVC_MUXER 0 #define CONFIG_HLS_MUXER 0 @@ -1816,10 +2360,12 @@ #define CONFIG_NUT_MUXER 0 #define CONFIG_OGA_MUXER 0 #define CONFIG_OGG_MUXER 0 +#define CONFIG_OGV_MUXER 0 #define CONFIG_OMA_MUXER 0 #define CONFIG_OPUS_MUXER 0 #define CONFIG_PCM_ALAW_MUXER 0 #define CONFIG_PCM_MULAW_MUXER 0 +#define CONFIG_PCM_VIDC_MUXER 0 #define CONFIG_PCM_F64BE_MUXER 0 #define CONFIG_PCM_F64LE_MUXER 0 #define CONFIG_PCM_F32BE_MUXER 0 @@ -1847,6 +2393,9 @@ #define CONFIG_RTP_MPEGTS_MUXER 0 #define CONFIG_RTSP_MUXER 0 #define CONFIG_SAP_MUXER 0 +#define CONFIG_SBC_MUXER 0 +#define CONFIG_SCC_MUXER 0 +#define CONFIG_SEGAFILM_MUXER 0 #define CONFIG_SEGMENT_MUXER 0 #define CONFIG_STREAM_SEGMENT_MUXER 0 #define CONFIG_SINGLEJPEG_MUXER 0 @@ -1856,12 +2405,14 @@ #define CONFIG_SPX_MUXER 0 #define CONFIG_SPDIF_MUXER 0 #define CONFIG_SRT_MUXER 0 +#define CONFIG_SUP_MUXER 0 #define CONFIG_SWF_MUXER 0 #define CONFIG_TEE_MUXER 0 #define CONFIG_TG2_MUXER 0 #define CONFIG_TGP_MUXER 0 #define CONFIG_MKVTIMESTAMP_V2_MUXER 0 #define CONFIG_TRUEHD_MUXER 0 +#define CONFIG_TTA_MUXER 0 #define CONFIG_UNCODEDFRAMECRC_MUXER 0 #define CONFIG_VC1_MUXER 0 #define CONFIG_VC1T_MUXER 0 @@ -1876,55 +2427,8 @@ #define CONFIG_WTV_MUXER 0 #define CONFIG_WV_MUXER 0 #define CONFIG_YUV4MPEGPIPE_MUXER 0 -#define CONFIG_LIBNUT_MUXER 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_V4L2_OUTDEV 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_AAC_PARSER 1 -#define CONFIG_AAC_LATM_PARSER 1 -#define CONFIG_AC3_PARSER 1 -#define CONFIG_ADX_PARSER 1 -#define CONFIG_BMP_PARSER 1 -#define CONFIG_CAVSVIDEO_PARSER 1 -#define CONFIG_COOK_PARSER 1 -#define CONFIG_DCA_PARSER 1 -#define CONFIG_DIRAC_PARSER 1 -#define CONFIG_DNXHD_PARSER 1 -#define CONFIG_DPX_PARSER 1 -#define CONFIG_DVBSUB_PARSER 1 -#define CONFIG_DVDSUB_PARSER 1 -#define CONFIG_DVD_NAV_PARSER 1 -#define CONFIG_FLAC_PARSER 1 -#define CONFIG_GSM_PARSER 1 -#define CONFIG_H261_PARSER 1 -#define CONFIG_H263_PARSER 1 -#define CONFIG_H264_PARSER 1 -#define CONFIG_HEVC_PARSER 1 -#define CONFIG_MJPEG_PARSER 1 -#define CONFIG_MLP_PARSER 1 -#define CONFIG_MPEG4VIDEO_PARSER 1 -#define CONFIG_MPEGAUDIO_PARSER 1 -#define CONFIG_MPEGVIDEO_PARSER 1 -#define CONFIG_OPUS_PARSER 1 -#define CONFIG_PNG_PARSER 1 -#define CONFIG_PNM_PARSER 1 -#define CONFIG_RV30_PARSER 1 -#define CONFIG_RV40_PARSER 1 -#define CONFIG_TAK_PARSER 1 -#define CONFIG_VC1_PARSER 1 -#define CONFIG_VORBIS_PARSER 1 -#define CONFIG_VP3_PARSER 1 -#define CONFIG_VP8_PARSER 1 -#define CONFIG_VP9_PARSER 1 -#define CONFIG_ASYNC_PROTOCOL 0 +#define CONFIG_CHROMAPRINT_MUXER 0 +#define CONFIG_ASYNC_PROTOCOL 1 #define CONFIG_BLURAY_PROTOCOL 0 #define CONFIG_CACHE_PROTOCOL 1 #define CONFIG_CONCAT_PROTOCOL 1 @@ -1944,6 +2448,7 @@ #define CONFIG_MMST_PROTOCOL 0 #define CONFIG_MD5_PROTOCOL 1 #define CONFIG_PIPE_PROTOCOL 1 +#define CONFIG_PROMPEG_PROTOCOL 1 #define CONFIG_RTMP_PROTOCOL 0 #define CONFIG_RTMPE_PROTOCOL 0 #define CONFIG_RTMPS_PROTOCOL 0 @@ -1954,10 +2459,9 @@ #define CONFIG_SCTP_PROTOCOL 0 #define CONFIG_SRTP_PROTOCOL 0 #define CONFIG_SUBFILE_PROTOCOL 1 +#define CONFIG_TEE_PROTOCOL 1 #define CONFIG_TCP_PROTOCOL 0 -#define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 -#define CONFIG_TLS_GNUTLS_PROTOCOL 0 -#define CONFIG_TLS_OPENSSL_PROTOCOL 0 +#define CONFIG_TLS_PROTOCOL 0 #define CONFIG_UDP_PROTOCOL 0 #define CONFIG_UDPLITE_PROTOCOL 0 #define CONFIG_UNIX_PROTOCOL 0 @@ -1966,6 +2470,7 @@ #define CONFIG_LIBRTMPS_PROTOCOL 0 #define CONFIG_LIBRTMPT_PROTOCOL 0 #define CONFIG_LIBRTMPTE_PROTOCOL 0 +#define CONFIG_LIBSRT_PROTOCOL 0 #define CONFIG_LIBSSH_PROTOCOL 0 #define CONFIG_LIBSMBCLIENT_PROTOCOL 0 #endif /* FFMPEG_CONFIG_H */ diff --git a/build/ffmpeg/configure.sh b/build/ffmpeg/configure.sh index 7eed30152..624783893 100755 --- a/build/ffmpeg/configure.sh +++ b/build/ffmpeg/configure.sh @@ -1,6 +1,6 @@ platform='Win32' suffix='x86' -if [[ $LIB =~ amd64 ]]; then +if [[ $LIB =~ x64 ]]; then platform='x64' suffix='x64' fi @@ -18,7 +18,6 @@ fi --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ - --disable-ffserver \ --disable-filters \ --disable-hwaccels \ --disable-muxers \ @@ -29,6 +28,9 @@ fi --enable-gpl \ --enable-runtime-cpudetect \ --enable-static \ + --enable-small \ + --enable-x86asm \ + --x86asmexe=yasm \ --enable-zlib \ --extra-cflags=-D_SYSCRT \ --extra-cflags=-I../../include \ @@ -38,5 +40,15 @@ fi --extra-ldflags=-LIBPATH:../../lib/$platform/Release \ --toolchain=msvc -mv config.h ../../build/ffmpeg/config-$suffix.h mv config.asm ../../build/ffmpeg/config-$suffix.asm +mv config.h ../../build/ffmpeg/config-$suffix.h +mv libavcodec/bsf_list.c ../../build/ffmpeg/libavcodec/bsf_list.c +mv libavcodec/codec_list.c ../../build/ffmpeg/libavcodec/codec_list.c +mv libavcodec/parser_list.c ../../build/ffmpeg/libavcodec/parser_list.c +mv libavdevice/indev_list.c ../../build/ffmpeg/libavdevice/indev_list.c +mv libavdevice/outdev_list.c ../../build/ffmpeg/libavdevice/outdev_list.c +mv libavformat/demuxer_list.c ../../build/ffmpeg/libavformat/demuxer_list.c +mv libavformat/muxer_list.c ../../build/ffmpeg/libavformat/muxer_list.c +mv libavformat/protocol_list.c ../../build/ffmpeg/libavformat/protocol_list.c +mv libavutil/avconfig.h ../../build/ffmpeg/libavutil/avconfig.h +mv libavutil/ffversion.h ../../build/ffmpeg/libavutil/ffversion.h diff --git a/build/ffmpeg/ffmpeg.vcxproj b/build/ffmpeg/ffmpeg.vcxproj index 555df4864..6753294ee 100644 --- a/build/ffmpeg/ffmpeg.vcxproj +++ b/build/ffmpeg/ffmpeg.vcxproj @@ -22,6 +22,7 @@ $(MSBuildThisFileDirectory); $(FfmpegSrcDir); + $(FfmpegSrcDir)\compat\atomics\win32; $(AegisubSourceBase)\include; @@ -76,7 +77,6 @@ - @@ -100,12 +100,15 @@ + + + @@ -114,23 +117,31 @@ + - - + + + + + + + + + @@ -139,14 +150,17 @@ + + + @@ -156,54 +170,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -213,6 +252,8 @@ + + @@ -221,12 +262,15 @@ + + + @@ -240,6 +284,9 @@ + + + @@ -249,6 +296,7 @@ + @@ -256,9 +304,12 @@ + + + @@ -273,27 +324,34 @@ - + + + + + + + + - + @@ -304,6 +362,7 @@ + @@ -314,6 +373,7 @@ + @@ -321,11 +381,13 @@ + - + + @@ -333,6 +395,7 @@ + @@ -353,14 +416,19 @@ + + + + + @@ -370,10 +438,12 @@ + + @@ -386,6 +456,8 @@ + + @@ -414,6 +486,7 @@ + @@ -429,10 +502,12 @@ + + @@ -440,11 +515,15 @@ + + + + @@ -452,6 +531,7 @@ + @@ -459,16 +539,20 @@ + + - + + + @@ -480,19 +564,19 @@ + - - + @@ -505,16 +589,24 @@ + + + + + + + + @@ -524,6 +616,7 @@ + @@ -536,6 +629,7 @@ + @@ -547,8 +641,10 @@ + + @@ -561,6 +657,7 @@ + @@ -602,13 +699,24 @@ + + + + + + + + + + + @@ -619,11 +727,15 @@ + + + + @@ -631,8 +743,9 @@ - - + + + @@ -646,11 +759,13 @@ + + @@ -658,6 +773,7 @@ + @@ -665,9 +781,11 @@ - + + + @@ -677,6 +795,9 @@ + + + @@ -684,11 +805,14 @@ + + + @@ -697,15 +821,20 @@ + + + + + @@ -713,6 +842,7 @@ + @@ -721,6 +851,7 @@ + @@ -744,12 +875,15 @@ + + + @@ -761,24 +895,29 @@ + - + + + + + @@ -823,11 +962,14 @@ + + + @@ -837,8 +979,11 @@ + + + @@ -847,12 +992,14 @@ + + @@ -871,10 +1018,13 @@ + + + @@ -891,12 +1041,19 @@ + + + + + + + @@ -914,23 +1071,32 @@ + + + + + + + + + @@ -939,18 +1105,23 @@ + + + + + @@ -966,6 +1137,7 @@ + @@ -976,13 +1148,16 @@ + + + @@ -994,10 +1169,13 @@ + + + @@ -1007,7 +1185,9 @@ + + @@ -1022,21 +1202,25 @@ + + + + + - $(MSBuildThisFileDirectory) @@ -1050,10 +1234,8 @@ - - @@ -1063,13 +1245,10 @@ - - - @@ -1094,6 +1273,7 @@ + @@ -1101,12 +1281,12 @@ + - @@ -1135,15 +1315,19 @@ + + + + - - - + + + @@ -1162,18 +1346,21 @@ + - + + + @@ -1185,9 +1372,15 @@ + + + + + - + + @@ -1195,19 +1388,26 @@ + + + + + + + diff --git a/build/ffmpeg/libavcodec/bsf_list.c b/build/ffmpeg/libavcodec/bsf_list.c new file mode 100644 index 000000000..9c0766c2a --- /dev/null +++ b/build/ffmpeg/libavcodec/bsf_list.c @@ -0,0 +1,33 @@ +static const AVBitStreamFilter * const bitstream_filters[] = { + &ff_aac_adtstoasc_bsf, + &ff_av1_metadata_bsf, + &ff_chomp_bsf, + &ff_dump_extradata_bsf, + &ff_dca_core_bsf, + &ff_eac3_core_bsf, + &ff_extract_extradata_bsf, + &ff_filter_units_bsf, + &ff_h264_metadata_bsf, + &ff_h264_mp4toannexb_bsf, + &ff_h264_redundant_pps_bsf, + &ff_hapqa_extract_bsf, + &ff_hevc_metadata_bsf, + &ff_hevc_mp4toannexb_bsf, + &ff_imx_dump_header_bsf, + &ff_mjpeg2jpeg_bsf, + &ff_mjpega_dump_header_bsf, + &ff_mp3_header_decompress_bsf, + &ff_mpeg2_metadata_bsf, + &ff_mpeg4_unpack_bframes_bsf, + &ff_mov2textsub_bsf, + &ff_noise_bsf, + &ff_null_bsf, + &ff_prores_metadata_bsf, + &ff_remove_extradata_bsf, + &ff_text2movsub_bsf, + &ff_trace_headers_bsf, + &ff_vp9_metadata_bsf, + &ff_vp9_raw_reorder_bsf, + &ff_vp9_superframe_bsf, + &ff_vp9_superframe_split_bsf, + NULL }; diff --git a/build/ffmpeg/libavcodec/codec_list.c b/build/ffmpeg/libavcodec/codec_list.c new file mode 100644 index 000000000..17228aa9f --- /dev/null +++ b/build/ffmpeg/libavcodec/codec_list.c @@ -0,0 +1,426 @@ +static const AVCodec * const codec_list[] = { + &ff_aasc_decoder, + &ff_aic_decoder, + &ff_alias_pix_decoder, + &ff_amv_decoder, + &ff_anm_decoder, + &ff_ansi_decoder, + &ff_apng_decoder, + &ff_asv1_decoder, + &ff_asv2_decoder, + &ff_aura_decoder, + &ff_aura2_decoder, + &ff_avrp_decoder, + &ff_avrn_decoder, + &ff_avs_decoder, + &ff_avui_decoder, + &ff_ayuv_decoder, + &ff_bethsoftvid_decoder, + &ff_bfi_decoder, + &ff_bink_decoder, + &ff_bitpacked_decoder, + &ff_bmp_decoder, + &ff_bmv_video_decoder, + &ff_brender_pix_decoder, + &ff_c93_decoder, + &ff_cavs_decoder, + &ff_cdgraphics_decoder, + &ff_cdxl_decoder, + &ff_cfhd_decoder, + &ff_cinepak_decoder, + &ff_clearvideo_decoder, + &ff_cljr_decoder, + &ff_cllc_decoder, + &ff_comfortnoise_decoder, + &ff_cpia_decoder, + &ff_cscd_decoder, + &ff_cyuv_decoder, + &ff_dds_decoder, + &ff_dfa_decoder, + &ff_dirac_decoder, + &ff_dnxhd_decoder, + &ff_dpx_decoder, + &ff_dsicinvideo_decoder, + &ff_dvaudio_decoder, + &ff_dvvideo_decoder, + &ff_dxa_decoder, + &ff_dxtory_decoder, + &ff_dxv_decoder, + &ff_eacmv_decoder, + &ff_eamad_decoder, + &ff_eatgq_decoder, + &ff_eatgv_decoder, + &ff_eatqi_decoder, + &ff_eightbps_decoder, + &ff_eightsvx_exp_decoder, + &ff_eightsvx_fib_decoder, + &ff_escape124_decoder, + &ff_escape130_decoder, + &ff_exr_decoder, + &ff_ffv1_decoder, + &ff_ffvhuff_decoder, + &ff_fic_decoder, + &ff_fits_decoder, + &ff_flashsv_decoder, + &ff_flashsv2_decoder, + &ff_flic_decoder, + &ff_flv_decoder, + &ff_fmvc_decoder, + &ff_fourxm_decoder, + &ff_fraps_decoder, + &ff_frwu_decoder, + &ff_g2m_decoder, + &ff_gdv_decoder, + &ff_gif_decoder, + &ff_h261_decoder, + &ff_h263_decoder, + &ff_h263i_decoder, + &ff_h263p_decoder, + &ff_h264_decoder, + &ff_hap_decoder, + &ff_hevc_decoder, + &ff_hnm4_video_decoder, + &ff_hq_hqa_decoder, + &ff_hqx_decoder, + &ff_huffyuv_decoder, + &ff_idcin_decoder, + &ff_iff_ilbm_decoder, + &ff_imm4_decoder, + &ff_interplay_video_decoder, + &ff_jpeg2000_decoder, + &ff_jpegls_decoder, + &ff_jv_decoder, + &ff_kgv1_decoder, + &ff_kmvc_decoder, + &ff_lagarith_decoder, + &ff_loco_decoder, + &ff_m101_decoder, + &ff_magicyuv_decoder, + &ff_mdec_decoder, + &ff_mimic_decoder, + &ff_mjpeg_decoder, + &ff_mjpegb_decoder, + &ff_mmvideo_decoder, + &ff_motionpixels_decoder, + &ff_mpeg1video_decoder, + &ff_mpeg2video_decoder, + &ff_mpeg4_decoder, + &ff_mpegvideo_decoder, + &ff_msa1_decoder, + &ff_mscc_decoder, + &ff_msmpeg4v1_decoder, + &ff_msmpeg4v2_decoder, + &ff_msmpeg4v3_decoder, + &ff_msrle_decoder, + &ff_mss1_decoder, + &ff_mss2_decoder, + &ff_msvideo1_decoder, + &ff_mszh_decoder, + &ff_mts2_decoder, + &ff_mvc1_decoder, + &ff_mvc2_decoder, + &ff_mwsc_decoder, + &ff_mxpeg_decoder, + &ff_nuv_decoder, + &ff_paf_video_decoder, + &ff_pam_decoder, + &ff_pbm_decoder, + &ff_pcx_decoder, + &ff_pgm_decoder, + &ff_pgmyuv_decoder, + &ff_pictor_decoder, + &ff_pixlet_decoder, + &ff_png_decoder, + &ff_ppm_decoder, + &ff_prores_decoder, + &ff_prosumer_decoder, + &ff_psd_decoder, + &ff_ptx_decoder, + &ff_qdraw_decoder, + &ff_qpeg_decoder, + &ff_qtrle_decoder, + &ff_r10k_decoder, + &ff_r210_decoder, + &ff_rasc_decoder, + &ff_rawvideo_decoder, + &ff_rl2_decoder, + &ff_roq_decoder, + &ff_rpza_decoder, + &ff_rscc_decoder, + &ff_rv10_decoder, + &ff_rv20_decoder, + &ff_rv30_decoder, + &ff_rv40_decoder, + &ff_s302m_decoder, + &ff_sanm_decoder, + &ff_scpr_decoder, + &ff_screenpresso_decoder, + &ff_sdx2_dpcm_decoder, + &ff_sgi_decoder, + &ff_sgirle_decoder, + &ff_sheervideo_decoder, + &ff_smacker_decoder, + &ff_smc_decoder, + &ff_smvjpeg_decoder, + &ff_snow_decoder, + &ff_sp5x_decoder, + &ff_speedhq_decoder, + &ff_srgc_decoder, + &ff_sunrast_decoder, + &ff_svq1_decoder, + &ff_svq3_decoder, + &ff_targa_decoder, + &ff_targa_y216_decoder, + &ff_tdsc_decoder, + &ff_theora_decoder, + &ff_thp_decoder, + &ff_tiertexseqvideo_decoder, + &ff_tiff_decoder, + &ff_tmv_decoder, + &ff_truemotion1_decoder, + &ff_truemotion2_decoder, + &ff_truemotion2rt_decoder, + &ff_tscc_decoder, + &ff_tscc2_decoder, + &ff_txd_decoder, + &ff_ulti_decoder, + &ff_utvideo_decoder, + &ff_v210_decoder, + &ff_v210x_decoder, + &ff_v308_decoder, + &ff_v408_decoder, + &ff_v410_decoder, + &ff_vb_decoder, + &ff_vble_decoder, + &ff_vc1_decoder, + &ff_vc1image_decoder, + &ff_vcr1_decoder, + &ff_vmdvideo_decoder, + &ff_vmnc_decoder, + &ff_vp3_decoder, + &ff_vp5_decoder, + &ff_vp6_decoder, + &ff_vp6a_decoder, + &ff_vp6f_decoder, + &ff_vp7_decoder, + &ff_vp8_decoder, + &ff_vp9_decoder, + &ff_vqa_decoder, + &ff_webp_decoder, + &ff_wcmv_decoder, + &ff_wrapped_avframe_decoder, + &ff_wmv1_decoder, + &ff_wmv2_decoder, + &ff_wmv3_decoder, + &ff_wmv3image_decoder, + &ff_wnv1_decoder, + &ff_xan_wc3_decoder, + &ff_xan_wc4_decoder, + &ff_xbm_decoder, + &ff_xface_decoder, + &ff_xl_decoder, + &ff_xpm_decoder, + &ff_xwd_decoder, + &ff_y41p_decoder, + &ff_ylc_decoder, + &ff_yop_decoder, + &ff_yuv4_decoder, + &ff_zero12v_decoder, + &ff_zerocodec_decoder, + &ff_zlib_decoder, + &ff_zmbv_decoder, + &ff_aac_decoder, + &ff_aac_fixed_decoder, + &ff_aac_latm_decoder, + &ff_ac3_decoder, + &ff_ac3_fixed_decoder, + &ff_alac_decoder, + &ff_als_decoder, + &ff_amrnb_decoder, + &ff_amrwb_decoder, + &ff_ape_decoder, + &ff_aptx_decoder, + &ff_aptx_hd_decoder, + &ff_atrac1_decoder, + &ff_atrac3_decoder, + &ff_atrac3al_decoder, + &ff_atrac3pal_decoder, + &ff_atrac9_decoder, + &ff_binkaudio_dct_decoder, + &ff_binkaudio_rdft_decoder, + &ff_bmv_audio_decoder, + &ff_cook_decoder, + &ff_dca_decoder, + &ff_dolby_e_decoder, + &ff_dsd_lsbf_decoder, + &ff_dsd_msbf_decoder, + &ff_dsd_lsbf_planar_decoder, + &ff_dsd_msbf_planar_decoder, + &ff_dsicinaudio_decoder, + &ff_dss_sp_decoder, + &ff_dst_decoder, + &ff_eac3_decoder, + &ff_evrc_decoder, + &ff_ffwavesynth_decoder, + &ff_flac_decoder, + &ff_g723_1_decoder, + &ff_g729_decoder, + &ff_gsm_decoder, + &ff_gsm_ms_decoder, + &ff_iac_decoder, + &ff_ilbc_decoder, + &ff_imc_decoder, + &ff_interplay_acm_decoder, + &ff_mace3_decoder, + &ff_mace6_decoder, + &ff_metasound_decoder, + &ff_mlp_decoder, + &ff_mp1_decoder, + &ff_mp1float_decoder, + &ff_mp2_decoder, + &ff_mp2float_decoder, + &ff_mp3float_decoder, + &ff_mp3_decoder, + &ff_mp3adufloat_decoder, + &ff_mp3adu_decoder, + &ff_mp3on4float_decoder, + &ff_mp3on4_decoder, + &ff_mpc7_decoder, + &ff_mpc8_decoder, + &ff_nellymoser_decoder, + &ff_on2avc_decoder, + &ff_opus_decoder, + &ff_paf_audio_decoder, + &ff_qcelp_decoder, + &ff_qdm2_decoder, + &ff_qdmc_decoder, + &ff_ra_144_decoder, + &ff_ra_288_decoder, + &ff_ralf_decoder, + &ff_sbc_decoder, + &ff_shorten_decoder, + &ff_sipr_decoder, + &ff_smackaud_decoder, + &ff_sonic_decoder, + &ff_tak_decoder, + &ff_truehd_decoder, + &ff_truespeech_decoder, + &ff_tta_decoder, + &ff_vmdaudio_decoder, + &ff_vorbis_decoder, + &ff_wavpack_decoder, + &ff_wmalossless_decoder, + &ff_wmapro_decoder, + &ff_wmav1_decoder, + &ff_wmav2_decoder, + &ff_wmavoice_decoder, + &ff_ws_snd1_decoder, + &ff_xma1_decoder, + &ff_xma2_decoder, + &ff_pcm_alaw_decoder, + &ff_pcm_bluray_decoder, + &ff_pcm_dvd_decoder, + &ff_pcm_f16le_decoder, + &ff_pcm_f24le_decoder, + &ff_pcm_f32be_decoder, + &ff_pcm_f32le_decoder, + &ff_pcm_f64be_decoder, + &ff_pcm_f64le_decoder, + &ff_pcm_lxf_decoder, + &ff_pcm_mulaw_decoder, + &ff_pcm_s8_decoder, + &ff_pcm_s8_planar_decoder, + &ff_pcm_s16be_decoder, + &ff_pcm_s16be_planar_decoder, + &ff_pcm_s16le_decoder, + &ff_pcm_s16le_planar_decoder, + &ff_pcm_s24be_decoder, + &ff_pcm_s24daud_decoder, + &ff_pcm_s24le_decoder, + &ff_pcm_s24le_planar_decoder, + &ff_pcm_s32be_decoder, + &ff_pcm_s32le_decoder, + &ff_pcm_s32le_planar_decoder, + &ff_pcm_s64be_decoder, + &ff_pcm_s64le_decoder, + &ff_pcm_u8_decoder, + &ff_pcm_u16be_decoder, + &ff_pcm_u16le_decoder, + &ff_pcm_u24be_decoder, + &ff_pcm_u24le_decoder, + &ff_pcm_u32be_decoder, + &ff_pcm_u32le_decoder, + &ff_pcm_vidc_decoder, + &ff_pcm_zork_decoder, + &ff_gremlin_dpcm_decoder, + &ff_interplay_dpcm_decoder, + &ff_roq_dpcm_decoder, + &ff_sol_dpcm_decoder, + &ff_xan_dpcm_decoder, + &ff_adpcm_4xm_decoder, + &ff_adpcm_adx_decoder, + &ff_adpcm_afc_decoder, + &ff_adpcm_aica_decoder, + &ff_adpcm_ct_decoder, + &ff_adpcm_dtk_decoder, + &ff_adpcm_ea_decoder, + &ff_adpcm_ea_maxis_xa_decoder, + &ff_adpcm_ea_r1_decoder, + &ff_adpcm_ea_r2_decoder, + &ff_adpcm_ea_r3_decoder, + &ff_adpcm_ea_xas_decoder, + &ff_adpcm_g722_decoder, + &ff_adpcm_g726_decoder, + &ff_adpcm_g726le_decoder, + &ff_adpcm_ima_amv_decoder, + &ff_adpcm_ima_apc_decoder, + &ff_adpcm_ima_dat4_decoder, + &ff_adpcm_ima_dk3_decoder, + &ff_adpcm_ima_dk4_decoder, + &ff_adpcm_ima_ea_eacs_decoder, + &ff_adpcm_ima_ea_sead_decoder, + &ff_adpcm_ima_iss_decoder, + &ff_adpcm_ima_oki_decoder, + &ff_adpcm_ima_qt_decoder, + &ff_adpcm_ima_rad_decoder, + &ff_adpcm_ima_smjpeg_decoder, + &ff_adpcm_ima_wav_decoder, + &ff_adpcm_ima_ws_decoder, + &ff_adpcm_ms_decoder, + &ff_adpcm_mtaf_decoder, + &ff_adpcm_psx_decoder, + &ff_adpcm_sbpro_2_decoder, + &ff_adpcm_sbpro_3_decoder, + &ff_adpcm_sbpro_4_decoder, + &ff_adpcm_swf_decoder, + &ff_adpcm_thp_decoder, + &ff_adpcm_thp_le_decoder, + &ff_adpcm_vima_decoder, + &ff_adpcm_xa_decoder, + &ff_adpcm_yamaha_decoder, + &ff_ssa_decoder, + &ff_ass_decoder, + &ff_ccaption_decoder, + &ff_dvbsub_decoder, + &ff_dvdsub_decoder, + &ff_jacosub_decoder, + &ff_microdvd_decoder, + &ff_movtext_decoder, + &ff_mpl2_decoder, + &ff_pgssub_decoder, + &ff_pjs_decoder, + &ff_realtext_decoder, + &ff_sami_decoder, + &ff_srt_decoder, + &ff_stl_decoder, + &ff_subrip_decoder, + &ff_subviewer_decoder, + &ff_subviewer1_decoder, + &ff_text_decoder, + &ff_vplayer_decoder, + &ff_webvtt_decoder, + &ff_xsub_decoder, + &ff_bintext_decoder, + &ff_xbin_decoder, + &ff_idf_decoder, + NULL }; diff --git a/build/ffmpeg/libavcodec/parser_list.c b/build/ffmpeg/libavcodec/parser_list.c new file mode 100644 index 000000000..020cd0969 --- /dev/null +++ b/build/ffmpeg/libavcodec/parser_list.c @@ -0,0 +1,45 @@ +static const AVCodecParser * const parser_list[] = { + &ff_aac_parser, + &ff_aac_latm_parser, + &ff_ac3_parser, + &ff_adx_parser, + &ff_av1_parser, + &ff_avs2_parser, + &ff_bmp_parser, + &ff_cavsvideo_parser, + &ff_cook_parser, + &ff_dca_parser, + &ff_dirac_parser, + &ff_dnxhd_parser, + &ff_dpx_parser, + &ff_dvaudio_parser, + &ff_dvbsub_parser, + &ff_dvdsub_parser, + &ff_dvd_nav_parser, + &ff_flac_parser, + &ff_g729_parser, + &ff_gsm_parser, + &ff_h261_parser, + &ff_h263_parser, + &ff_h264_parser, + &ff_hevc_parser, + &ff_mjpeg_parser, + &ff_mlp_parser, + &ff_mpeg4video_parser, + &ff_mpegaudio_parser, + &ff_mpegvideo_parser, + &ff_opus_parser, + &ff_png_parser, + &ff_pnm_parser, + &ff_rv30_parser, + &ff_rv40_parser, + &ff_sbc_parser, + &ff_sipr_parser, + &ff_tak_parser, + &ff_vc1_parser, + &ff_vorbis_parser, + &ff_vp3_parser, + &ff_vp8_parser, + &ff_vp9_parser, + &ff_xma_parser, + NULL }; diff --git a/build/ffmpeg/libavdevice/indev_list.c b/build/ffmpeg/libavdevice/indev_list.c new file mode 100644 index 000000000..03ffb4036 --- /dev/null +++ b/build/ffmpeg/libavdevice/indev_list.c @@ -0,0 +1,2 @@ +static const AVInputFormat * const indev_list[] = { + NULL }; diff --git a/build/ffmpeg/libavdevice/outdev_list.c b/build/ffmpeg/libavdevice/outdev_list.c new file mode 100644 index 000000000..d1b87ed7b --- /dev/null +++ b/build/ffmpeg/libavdevice/outdev_list.c @@ -0,0 +1,2 @@ +static const AVOutputFormat * const outdev_list[] = { + NULL }; diff --git a/build/ffmpeg/libavformat/demuxer_list.c b/build/ffmpeg/libavformat/demuxer_list.c new file mode 100644 index 000000000..5a2baedbb --- /dev/null +++ b/build/ffmpeg/libavformat/demuxer_list.c @@ -0,0 +1,287 @@ +static const AVInputFormat * const demuxer_list[] = { + &ff_aa_demuxer, + &ff_aac_demuxer, + &ff_ac3_demuxer, + &ff_acm_demuxer, + &ff_act_demuxer, + &ff_adf_demuxer, + &ff_adp_demuxer, + &ff_ads_demuxer, + &ff_adx_demuxer, + &ff_aea_demuxer, + &ff_afc_demuxer, + &ff_aiff_demuxer, + &ff_aix_demuxer, + &ff_amr_demuxer, + &ff_amrnb_demuxer, + &ff_amrwb_demuxer, + &ff_anm_demuxer, + &ff_apc_demuxer, + &ff_ape_demuxer, + &ff_apng_demuxer, + &ff_aptx_demuxer, + &ff_aptx_hd_demuxer, + &ff_aqtitle_demuxer, + &ff_asf_demuxer, + &ff_asf_o_demuxer, + &ff_ass_demuxer, + &ff_ast_demuxer, + &ff_au_demuxer, + &ff_avi_demuxer, + &ff_avr_demuxer, + &ff_avs_demuxer, + &ff_avs2_demuxer, + &ff_bethsoftvid_demuxer, + &ff_bfi_demuxer, + &ff_bintext_demuxer, + &ff_bink_demuxer, + &ff_bit_demuxer, + &ff_bmv_demuxer, + &ff_bfstm_demuxer, + &ff_brstm_demuxer, + &ff_boa_demuxer, + &ff_c93_demuxer, + &ff_caf_demuxer, + &ff_cavsvideo_demuxer, + &ff_cdg_demuxer, + &ff_cdxl_demuxer, + &ff_cine_demuxer, + &ff_codec2_demuxer, + &ff_codec2raw_demuxer, + &ff_concat_demuxer, + &ff_data_demuxer, + &ff_daud_demuxer, + &ff_dcstr_demuxer, + &ff_dfa_demuxer, + &ff_dirac_demuxer, + &ff_dnxhd_demuxer, + &ff_dsf_demuxer, + &ff_dsicin_demuxer, + &ff_dss_demuxer, + &ff_dts_demuxer, + &ff_dtshd_demuxer, + &ff_dv_demuxer, + &ff_dvbsub_demuxer, + &ff_dvbtxt_demuxer, + &ff_dxa_demuxer, + &ff_ea_demuxer, + &ff_ea_cdata_demuxer, + &ff_eac3_demuxer, + &ff_epaf_demuxer, + &ff_ffmetadata_demuxer, + &ff_filmstrip_demuxer, + &ff_fits_demuxer, + &ff_flac_demuxer, + &ff_flic_demuxer, + &ff_flv_demuxer, + &ff_live_flv_demuxer, + &ff_fourxm_demuxer, + &ff_frm_demuxer, + &ff_fsb_demuxer, + &ff_g722_demuxer, + &ff_g723_1_demuxer, + &ff_g726_demuxer, + &ff_g726le_demuxer, + &ff_g729_demuxer, + &ff_gdv_demuxer, + &ff_genh_demuxer, + &ff_gif_demuxer, + &ff_gsm_demuxer, + &ff_gxf_demuxer, + &ff_h261_demuxer, + &ff_h263_demuxer, + &ff_h264_demuxer, + &ff_hevc_demuxer, + &ff_hls_demuxer, + &ff_hnm_demuxer, + &ff_ico_demuxer, + &ff_idcin_demuxer, + &ff_idf_demuxer, + &ff_iff_demuxer, + &ff_ilbc_demuxer, + &ff_image2_demuxer, + &ff_image2pipe_demuxer, + &ff_image2_alias_pix_demuxer, + &ff_image2_brender_pix_demuxer, + &ff_ingenient_demuxer, + &ff_ipmovie_demuxer, + &ff_ircam_demuxer, + &ff_iss_demuxer, + &ff_iv8_demuxer, + &ff_ivf_demuxer, + &ff_ivr_demuxer, + &ff_jacosub_demuxer, + &ff_jv_demuxer, + &ff_lmlm4_demuxer, + &ff_loas_demuxer, + &ff_lrc_demuxer, + &ff_lvf_demuxer, + &ff_lxf_demuxer, + &ff_m4v_demuxer, + &ff_matroska_demuxer, + &ff_mgsts_demuxer, + &ff_microdvd_demuxer, + &ff_mjpeg_demuxer, + &ff_mjpeg_2000_demuxer, + &ff_mlp_demuxer, + &ff_mlv_demuxer, + &ff_mm_demuxer, + &ff_mmf_demuxer, + &ff_mov_demuxer, + &ff_mp3_demuxer, + &ff_mpc_demuxer, + &ff_mpc8_demuxer, + &ff_mpegps_demuxer, + &ff_mpegts_demuxer, + &ff_mpegtsraw_demuxer, + &ff_mpegvideo_demuxer, + &ff_mpjpeg_demuxer, + &ff_mpl2_demuxer, + &ff_mpsub_demuxer, + &ff_msf_demuxer, + &ff_msnwc_tcp_demuxer, + &ff_mtaf_demuxer, + &ff_mtv_demuxer, + &ff_musx_demuxer, + &ff_mv_demuxer, + &ff_mvi_demuxer, + &ff_mxf_demuxer, + &ff_mxg_demuxer, + &ff_nc_demuxer, + &ff_nistsphere_demuxer, + &ff_nsp_demuxer, + &ff_nsv_demuxer, + &ff_nut_demuxer, + &ff_nuv_demuxer, + &ff_ogg_demuxer, + &ff_oma_demuxer, + &ff_paf_demuxer, + &ff_pcm_alaw_demuxer, + &ff_pcm_mulaw_demuxer, + &ff_pcm_vidc_demuxer, + &ff_pcm_f64be_demuxer, + &ff_pcm_f64le_demuxer, + &ff_pcm_f32be_demuxer, + &ff_pcm_f32le_demuxer, + &ff_pcm_s32be_demuxer, + &ff_pcm_s32le_demuxer, + &ff_pcm_s24be_demuxer, + &ff_pcm_s24le_demuxer, + &ff_pcm_s16be_demuxer, + &ff_pcm_s16le_demuxer, + &ff_pcm_s8_demuxer, + &ff_pcm_u32be_demuxer, + &ff_pcm_u32le_demuxer, + &ff_pcm_u24be_demuxer, + &ff_pcm_u24le_demuxer, + &ff_pcm_u16be_demuxer, + &ff_pcm_u16le_demuxer, + &ff_pcm_u8_demuxer, + &ff_pjs_demuxer, + &ff_pmp_demuxer, + &ff_pva_demuxer, + &ff_pvf_demuxer, + &ff_qcp_demuxer, + &ff_r3d_demuxer, + &ff_rawvideo_demuxer, + &ff_realtext_demuxer, + &ff_redspark_demuxer, + &ff_rl2_demuxer, + &ff_rm_demuxer, + &ff_roq_demuxer, + &ff_rpl_demuxer, + &ff_rsd_demuxer, + &ff_rso_demuxer, + &ff_s337m_demuxer, + &ff_sami_demuxer, + &ff_sbc_demuxer, + &ff_sbg_demuxer, + &ff_scc_demuxer, + &ff_sdr2_demuxer, + &ff_sds_demuxer, + &ff_sdx_demuxer, + &ff_segafilm_demuxer, + &ff_ser_demuxer, + &ff_shorten_demuxer, + &ff_siff_demuxer, + &ff_sln_demuxer, + &ff_smacker_demuxer, + &ff_smjpeg_demuxer, + &ff_smush_demuxer, + &ff_sol_demuxer, + &ff_sox_demuxer, + &ff_spdif_demuxer, + &ff_srt_demuxer, + &ff_str_demuxer, + &ff_stl_demuxer, + &ff_subviewer1_demuxer, + &ff_subviewer_demuxer, + &ff_sup_demuxer, + &ff_svag_demuxer, + &ff_swf_demuxer, + &ff_tak_demuxer, + &ff_tedcaptions_demuxer, + &ff_thp_demuxer, + &ff_threedostr_demuxer, + &ff_tiertexseq_demuxer, + &ff_tmv_demuxer, + &ff_truehd_demuxer, + &ff_tta_demuxer, + &ff_txd_demuxer, + &ff_tty_demuxer, + &ff_ty_demuxer, + &ff_v210_demuxer, + &ff_v210x_demuxer, + &ff_vag_demuxer, + &ff_vc1_demuxer, + &ff_vc1t_demuxer, + &ff_vivo_demuxer, + &ff_vmd_demuxer, + &ff_vobsub_demuxer, + &ff_voc_demuxer, + &ff_vpk_demuxer, + &ff_vplayer_demuxer, + &ff_vqf_demuxer, + &ff_w64_demuxer, + &ff_wav_demuxer, + &ff_wc3_demuxer, + &ff_webm_dash_manifest_demuxer, + &ff_webvtt_demuxer, + &ff_wsaud_demuxer, + &ff_wsd_demuxer, + &ff_wsvqa_demuxer, + &ff_wtv_demuxer, + &ff_wve_demuxer, + &ff_wv_demuxer, + &ff_xa_demuxer, + &ff_xbin_demuxer, + &ff_xmv_demuxer, + &ff_xvag_demuxer, + &ff_xwma_demuxer, + &ff_yop_demuxer, + &ff_yuv4mpegpipe_demuxer, + &ff_image_bmp_pipe_demuxer, + &ff_image_dds_pipe_demuxer, + &ff_image_dpx_pipe_demuxer, + &ff_image_exr_pipe_demuxer, + &ff_image_j2k_pipe_demuxer, + &ff_image_jpeg_pipe_demuxer, + &ff_image_jpegls_pipe_demuxer, + &ff_image_pam_pipe_demuxer, + &ff_image_pbm_pipe_demuxer, + &ff_image_pcx_pipe_demuxer, + &ff_image_pgmyuv_pipe_demuxer, + &ff_image_pgm_pipe_demuxer, + &ff_image_pictor_pipe_demuxer, + &ff_image_png_pipe_demuxer, + &ff_image_ppm_pipe_demuxer, + &ff_image_psd_pipe_demuxer, + &ff_image_qdraw_pipe_demuxer, + &ff_image_sgi_pipe_demuxer, + &ff_image_svg_pipe_demuxer, + &ff_image_sunrast_pipe_demuxer, + &ff_image_tiff_pipe_demuxer, + &ff_image_webp_pipe_demuxer, + &ff_image_xpm_pipe_demuxer, + &ff_image_xwd_pipe_demuxer, + NULL }; diff --git a/build/ffmpeg/libavformat/muxer_list.c b/build/ffmpeg/libavformat/muxer_list.c new file mode 100644 index 000000000..f36d9499c --- /dev/null +++ b/build/ffmpeg/libavformat/muxer_list.c @@ -0,0 +1,2 @@ +static const AVOutputFormat * const muxer_list[] = { + NULL }; diff --git a/build/ffmpeg/libavformat/protocol_list.c b/build/ffmpeg/libavformat/protocol_list.c new file mode 100644 index 000000000..b9b925a4b --- /dev/null +++ b/build/ffmpeg/libavformat/protocol_list.c @@ -0,0 +1,14 @@ +static const URLProtocol * const url_protocols[] = { + &ff_async_protocol, + &ff_cache_protocol, + &ff_concat_protocol, + &ff_crypto_protocol, + &ff_data_protocol, + &ff_file_protocol, + &ff_hls_protocol, + &ff_md5_protocol, + &ff_pipe_protocol, + &ff_prompeg_protocol, + &ff_subfile_protocol, + &ff_tee_protocol, + NULL }; diff --git a/build/ffmpeg/libavutil/avconfig.h b/build/ffmpeg/libavutil/avconfig.h index 36a8cd14d..c289fbb55 100644 --- a/build/ffmpeg/libavutil/avconfig.h +++ b/build/ffmpeg/libavutil/avconfig.h @@ -1,7 +1,6 @@ -/* Generated by ffconf */ +/* Generated by ffmpeg configure */ #ifndef AVUTIL_AVCONFIG_H #define AVUTIL_AVCONFIG_H #define AV_HAVE_BIGENDIAN 0 #define AV_HAVE_FAST_UNALIGNED 1 -#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 #endif /* AVUTIL_AVCONFIG_H */ diff --git a/build/ffms2/ffms2.vcxproj b/build/ffms2/ffms2.vcxproj index cb0d0bff7..a8dd49750 100644 --- a/build/ffms2/ffms2.vcxproj +++ b/build/ffms2/ffms2.vcxproj @@ -60,14 +60,10 @@ - - - - @@ -84,7 +80,6 @@ - diff --git a/build/ffms2/ffms2.vcxproj.filters b/build/ffms2/ffms2.vcxproj.filters index 643120b19..6e948bff6 100644 --- a/build/ffms2/ffms2.vcxproj.filters +++ b/build/ffms2/ffms2.vcxproj.filters @@ -27,18 +27,9 @@ Audio - - Audio - Indexing - - Indexing - - - Video - Video @@ -48,9 +39,6 @@ Utils - - Utils - Avisynth @@ -104,9 +92,6 @@ Utils - - Utils - Avisynth diff --git a/src/video_provider_ffmpegsource.cpp b/src/video_provider_ffmpegsource.cpp index a76339659..54516992b 100644 --- a/src/video_provider_ffmpegsource.cpp +++ b/src/video_provider_ffmpegsource.cpp @@ -44,6 +44,23 @@ #include namespace { +typedef enum AGI_ColorSpaces { + AGI_CS_RGB = 0, + AGI_CS_BT709 = 1, + AGI_CS_UNSPECIFIED = 2, + AGI_CS_FCC = 4, + AGI_CS_BT470BG = 5, + AGI_CS_SMPTE170M = 6, + AGI_CS_SMPTE240M = 7, + AGI_CS_YCOCG = 8, + AGI_CS_BT2020_NCL = 9, + AGI_CS_BT2020_CL = 10, + AGI_CS_SMPTE2085 = 11, + AGI_CS_CHROMATICITY_DERIVED_NCL = 12, + AGI_CS_CHROMATICITY_DERIVED_CL = 13, + AGI_CS_ICTCP = 14 +} AGI_ColorSpaces; + /// @class FFmpegSourceVideoProvider /// @brief Implements video loading through the FFMS library. class FFmpegSourceVideoProvider final : public VideoProvider, FFmpegSourceProvider { @@ -78,7 +95,7 @@ public: if (matrix == RealColorSpace) FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), nullptr); else if (matrix == "TV.601") - FFMS_SetInputFormatV(VideoSource, FFMS_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr); + FFMS_SetInputFormatV(VideoSource, AGI_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr); else return; ColorSpace = matrix; @@ -103,16 +120,16 @@ std::string colormatrix_description(int cs, int cr) { std::string str = cr == FFMS_CR_JPEG ? "PC" : "TV"; switch (cs) { - case FFMS_CS_RGB: + case AGI_CS_RGB: return "None"; - case FFMS_CS_BT709: + case AGI_CS_BT709: return str + ".709"; - case FFMS_CS_FCC: + case AGI_CS_FCC: return str + ".FCC"; - case FFMS_CS_BT470BG: - case FFMS_CS_SMPTE170M: + case AGI_CS_BT470BG: + case AGI_CS_SMPTE170M: return str + ".601"; - case FFMS_CS_SMPTE240M: + case AGI_CS_SMPTE240M: return str + ".240M"; default: throw VideoOpenError("Unknown video color space"); @@ -206,8 +223,10 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st // set thread count int Threads = OPT_GET("Provider/Video/FFmpegSource/Decoding Threads")->GetInt(); +#if FFMS_VERSION < ((2 << 24) | (30 << 16) | (0 << 8) | 0) if (FFMS_GetVersion() < ((2 << 24) | (17 << 16) | (2 << 8) | 1) && FFMS_GetSourceType(Index) == FFMS_SOURCE_LAVF) Threads = 1; +#endif // set seekmode // TODO: give this its own option? @@ -238,13 +257,13 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st int VideoCS = CS = TempFrame->ColorSpace; CR = TempFrame->ColorRange; - if (CS == FFMS_CS_UNSPECIFIED) - CS = Width > 1024 || Height >= 600 ? FFMS_CS_BT709 : FFMS_CS_BT470BG; + if (CS == AGI_CS_UNSPECIFIED) + CS = Width > 1024 || Height >= 600 ? AGI_CS_BT709 : AGI_CS_BT470BG; RealColorSpace = ColorSpace = colormatrix_description(CS, CR); #if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (1 << 8) | 0) - if (CS != FFMS_CS_RGB && CS != FFMS_CS_BT470BG && ColorSpace != colormatrix && colormatrix == "TV.601") { - CS = FFMS_CS_BT470BG; + if (CS != AGI_CS_RGB && CS != AGI_CS_BT470BG && ColorSpace != colormatrix && colormatrix == "TV.601") { + CS = AGI_CS_BT470BG; ColorSpace = colormatrix_description(CS, CR); } diff --git a/vendor/ffmpeg b/vendor/ffmpeg index 802e51299..d290bb0c5 160000 --- a/vendor/ffmpeg +++ b/vendor/ffmpeg @@ -1 +1 @@ -Subproject commit 802e51299e6d018f2f54c8d14f2b765c7c750496 +Subproject commit d290bb0c540425e937d11ed88e22c68ab97c57eb diff --git a/vendor/ffms2 b/vendor/ffms2 index 06bcf231c..f3c6b008b 160000 --- a/vendor/ffms2 +++ b/vendor/ffms2 @@ -1 +1 @@ -Subproject commit 06bcf231cab00bfbf28f910c6ec3ca6680957cb6 +Subproject commit f3c6b008b53719dcac032293e3a42a3164c8d7ec From 129e748abd80571550d557c604b0d9367bf2ddc1 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 5 Dec 2018 15:57:30 -0500 Subject: [PATCH 033/185] Update uchardet --- .gitmodules | 2 +- .../universalchardet/universalchardet.vcxproj | 19 ++++++- .../universalchardet.vcxproj.filters | 51 +++++++++++++++++++ vendor/uchardet | 2 +- 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 57e8776ae..e34fcc897 100644 --- a/.gitmodules +++ b/.gitmodules @@ -38,5 +38,5 @@ ignore = dirty [submodule "uchardet"] path = vendor/uchardet - url = https://github.com/BYVoid/uchardet + url = https://gitlab.freedesktop.org/uchardet/uchardet.git ignore = dirty diff --git a/build/universalchardet/universalchardet.vcxproj b/build/universalchardet/universalchardet.vcxproj index 42da68840..4479436d2 100644 --- a/build/universalchardet/universalchardet.vcxproj +++ b/build/universalchardet/universalchardet.vcxproj @@ -39,16 +39,33 @@ + + + + + + + + + + + + + + + + + @@ -70,11 +87,11 @@ + - diff --git a/build/universalchardet/universalchardet.vcxproj.filters b/build/universalchardet/universalchardet.vcxproj.filters index 46af9a952..a3b82a996 100644 --- a/build/universalchardet/universalchardet.vcxproj.filters +++ b/build/universalchardet/universalchardet.vcxproj.filters @@ -78,9 +78,24 @@ Source Files + + Source Files + + + Source Files + + + Source Files + Source Files + + Source Files + + + Source Files + Source Files @@ -96,18 +111,54 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + Source Files + + Source Files + + + Source Files + Source Files + + Source Files + Source Files Source Files + + Source Files + Source Files diff --git a/vendor/uchardet b/vendor/uchardet index 248d6dbd3..bdfd6116a 160000 --- a/vendor/uchardet +++ b/vendor/uchardet @@ -1 +1 @@ -Subproject commit 248d6dbd351c22989090d318128cb38b11a89f98 +Subproject commit bdfd6116a965fd210ef563613763e724424728b7 From 628962559df388dec6cbe67b83d54b9b33757b9f Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 5 Dec 2018 15:50:46 -0500 Subject: [PATCH 034/185] Update strip-icu to python 3 --- tools/strip-icu.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/tools/strip-icu.py b/tools/strip-icu.py index e26e40c17..915a615ed 100644 --- a/tools/strip-icu.py +++ b/tools/strip-icu.py @@ -15,7 +15,7 @@ # Aegisub Project http://www.aegisub.org/ # A script to strip all of the data we don't use out of ICU's data files -# Run from $ICU_ROOT/source/data +# Run from $ICU_ROOT/icu4c/source/data from __future__ import unicode_literals import re @@ -25,10 +25,10 @@ import os def delete_matching(filename, strs): exprs = [re.compile(s) for s in strs] - with open(filename) as f: - lines = [line for line in f if not any(r.match(line.decode('utf-8')) for r in exprs)] + with open(filename, encoding='utf-8') as f: + lines = [line for line in f if not any(r.match(line) for r in exprs)] - with open(filename, 'w') as f: + with open(filename, 'w', encoding='utf-8') as f: for line in lines: f.write(line) @@ -36,7 +36,7 @@ REMOVE_SUBDIRS=['LOCSRCDIR', 'CURRSRCDIR', 'ZONESRCDIR', 'COLSRCDIR', 'RBNFSRCDI delete_matching('Makefile.in', ['^-include .*%s' % s for s in REMOVE_SUBDIRS]) delete_matching('Makefile.in', ['^CNV_FILES']) -with open('misc/misclocal.mk', 'w') as f: +with open('misc/misclocal.mk', 'w', encoding='utf-8') as f: f.write('MISC_SOURCE = supplementalData.txt likelySubtags.txt icuver.txt icustd.txt metadata.txt') # Remove data we don't need from the lang and region files @@ -45,8 +45,7 @@ def parse_txt(filename): cur = root stack = [root] comment = False - for line in open(filename): - line = line.decode('utf-8') + for line in open(filename, encoding='utf-8'): line = line.strip() if len(line) == 0: continue @@ -72,15 +71,13 @@ def parse_txt(filename): continue m = re.match('(.*){"(.*)"}', line) - if not m: - print line - else: + if m: cur[m.group(1)] = m.group(2) return root def remove_sections(root): - for child in root.itervalues(): + for child in root.values(): child.pop('Keys', None) child.pop('LanguagesShort', None) child.pop('Types', None) @@ -91,7 +88,7 @@ def remove_sections(root): child.pop('Scripts%stand-alone', None) def remove_languages(root): - for lang, child in root.iteritems(): + for lang, child in root.items(): # We only care about a language's name in that language lang = lang.split('_')[0] trimmed = {} @@ -103,7 +100,7 @@ def remove_languages(root): # Scripts which are actually used by stuff SCRIPTS = ['Cyrl', 'Latn', 'Arab', 'Vaii', 'Hans', 'Hant'] def remove_scripts(root): - for lang, child in root.iteritems(): + for lang, child in root.items(): v = child.get('Scripts') if not v: continue @@ -121,20 +118,20 @@ def write_dict(name, value, out, indent): child_indent = indent + ' ' out.write(indent) - out.write(name.encode('utf-8')) + out.write(name) out.write('{\n') for k in sorted(value.keys()): v = value[k] if type(v) == dict: write_dict(k, v, out, child_indent) else: - out.write(('%s%s{"%s"}\n' % (child_indent, k, v)).encode('utf-8')) + out.write(('%s%s{"%s"}\n' % (child_indent, k, v))) out.write(indent) out.write('}\n') def write_file(root, filename): - with open(filename, 'w') as f: - for k, v in root.iteritems(): + with open(filename, 'w', encoding='utf-8') as f: + for k, v in root.items(): write_dict(k, v, f, '') def minify_lang(filename): @@ -287,7 +284,7 @@ def gather_regions(): REGIONS = gather_regions() def remove_countries(root): - for lang, child in root.iteritems(): + for lang, child in root.items(): v = child.get('Countries', {}) if not v: continue From 826a360b8de976561b6de9b731f04a232838dfe7 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 12 Dec 2018 21:46:26 -0500 Subject: [PATCH 035/185] Revert to dynamically linking the vc runtime --- build/standard-settings.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/standard-settings.props b/build/standard-settings.props index 04b290fa7..bdd8e7ac6 100644 --- a/build/standard-settings.props +++ b/build/standard-settings.props @@ -55,7 +55,7 @@ - MultiThreaded + MultiThreadedDLL MaxSpeed true true From 5a554a586e448f9b1b505e1f7a817d3726da0520 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Wed, 12 Dec 2018 21:47:05 -0500 Subject: [PATCH 036/185] Excise the hopefully last mention of ASSDraw --- .../win_installer/vendor/ASSDraw/ASSDraw3.chm | Bin 431872 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/win_installer/vendor/ASSDraw/ASSDraw3.chm diff --git a/packages/win_installer/vendor/ASSDraw/ASSDraw3.chm b/packages/win_installer/vendor/ASSDraw/ASSDraw3.chm deleted file mode 100644 index fad2f5edfc00ccb960692dc7f31232babf19e011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431872 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