• zandobersek@gmail.com's avatar
    [GTK] Feature enabling/disabling should be possible through build-webkit · 68b5fe36
    zandobersek@gmail.com authored
    https://bugs.webkit.org/show_bug.cgi?id=99271
    
    Reviewed by Gustavo Noronha Silva.
    
    .: 
    
    The autogen.sh script now calls the Tools/gtk/override-feature-defines script
    before calling autoreconf. This ensures that Source/WebCore/GNUmakefile.features.am
    is present and properly modified if the build-webkit script intends to override
    any feature.
    
    The Source/WebCore/GNUmakefile.features.am file is added to the ignored files list
    so it doesn't pop out as a new, untracked file.
    
    * .gitignore:
    * autogen.sh:
    
    Source/WebCore: 
    
    Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
    The former is then copied from the latter but then appropriately modified if
    the build-webkit script overrides any of the default feature defines.
    
    No new tests - no new testable functionality.
    
    * GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.
    
    Tools: 
    
    Refactor the code in webkitdirs.pm that builds an autotools project to generate
    autogen.sh arguments, make arguments and installation prefix from the passed-in
    parameters rather than generating all of that in build-webkit. The autogen.sh
    arguments now contain only enable/disable flags for options that are actually
    configurable in configure.ac, the flag value actually reflecting whether the feature
    is enabled or disabled in the feature list.
    
    Other features are overridable through modifying the GNUmakefile.features.am file.
    All these features are now stored in the build directory and upon change trigger
    a rerun of the autogen.sh script, pretty much like the autogen.sh arguments do.
    
    The override-feature-defines script is called by autogen.sh, before GNUmakefile.in is
    generated when calling autoreconf. Its task is to copy the GNUmakefile.features.am.in
    into GNUmakefile.features.am and modify it if there's a text file in the build directory
    that contains all the feature defines the build-webkit script has written. If the build
    is not done through build-webkit (and there's no file in build directory listing all the
    feature defines) the script does not advance further from copying.
    
    This approach is taken to overcome the rigidness of the automake system as it's impossible
    to effectively generate and use GNUmakefile.features.am or even GNUmakefile.features file
    after the autoreconf command execution in autogen.sh.
    
    * Scripts/build-jsc:
    (buildMyProject):
    * Scripts/build-webkit:
    * Scripts/webkitdirs.pm:
    (runAutogenForAutotoolsProjectIfNecessary):
    (mustReRunAutogen):
    (buildAutotoolsProject):
    (buildGtkProject):
    * Scripts/webkitperl/FeatureList.pm: Update the features that are currently enabled in
    Source/WebCore/GNUmakefile.features.am.in but aren't in the feature list.
    * Scripts/webkitpy/style/checker.py: Source/WebCore/GNUmakefile.features.am.in is recognized
    as a text file and tabulation errors are reported. Skip the file to suppress them.
    * gtk/override-feature-defines: Added.
    (copy_feature_defines_makefile):
    (adjust_feature_defines_makefile):
    (adjust_feature_defines_makefile.override_feature_define):
    (override_feature_defines):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    68b5fe36
.gitignore 3.61 KB