[Pkg-mono-svn-commits] [mono-tools] 01/09: Imported Upstream version 2.11+git20131009.5b1ef35 (Closes: #577522, #713095)
Jo Shields
directhex at alioth.debian.org
Thu Oct 10 09:11:42 UTC 2013
This is an automated email from the git hooks/post-receive script.
directhex pushed a commit to branch master
in repository mono-tools.
commit fa2192491c3e87db7d9739332b992d025916de38
Author: Jo Shields <directhex at apebox.org>
Date: Thu Oct 10 01:03:13 2013 +0200
Imported Upstream version 2.11+git20131009.5b1ef35 (Closes: #577522, #713095)
---
INSTALL | 207 +-
Makefile.in | 285 +-
Mono.Profiler/Makefile.in | 184 +-
Mono.Profiler/Mono.Profiler.Widgets/Makefile.am | 3 +-
Mono.Profiler/Mono.Profiler.Widgets/Makefile.in | 158 +-
Mono.Profiler/heap-snapshot-explorer/Makefile.am | 3 +-
Mono.Profiler/heap-snapshot-explorer/Makefile.in | 158 +-
Mono.Profiler/heap-snapshot-viewer/Makefile.am | 3 +-
Mono.Profiler/heap-snapshot-viewer/Makefile.in | 313 +-
Mono.Profiler/mprof-gui/Makefile.am | 3 +-
Mono.Profiler/mprof-gui/Makefile.in | 213 +-
Mono.Profiler/profiler-decoder-library/Makefile.am | 3 +-
Mono.Profiler/profiler-decoder-library/Makefile.in | 158 +-
Mono.Profiler/profiler-file-decoder/Makefile.am | 3 +-
Mono.Profiler/profiler-file-decoder/Makefile.in | 313 +-
README | 9 +
aclocal.m4 | 440 +-
asn1view/Makefile.in | 184 +-
asn1view/art/Makefile.in | 87 +-
asn1view/common/Makefile.in | 87 +-
asn1view/gtk/Makefile.in | 200 +-
config.guess | 526 +-
config.sub | 278 +-
configure | 5616 ++++++++------------
configure.in | 4 +-
create-native-map/Makefile.in | 184 +-
create-native-map/bin/Makefile.in | 157 +-
create-native-map/lib/Makefile.in | 184 +-
.../lib/create-native-map/Makefile.in | 87 +-
create-native-map/lib/pkgconfig/Makefile.in | 135 +-
create-native-map/man/Makefile.in | 207 +-
create-native-map/src/Makefile.in | 135 +-
docbrowser/Makefile.am | 3 +-
docbrowser/Makefile.in | 338 +-
docbrowser/browser.cs | 87 +-
docbrowser/editing.cs | 519 ++
docbrowser/monodoc.in | 2 +-
docbrowser/theme-icons/Makefile.in | 88 +-
gendarme/AssemblyInfo.cs | 2 +-
gendarme/AssemblyStaticInfo.cs | 3 +-
gendarme/MIT.X11 | 2 +-
gendarme/Makefile.am | 16 +-
gendarme/Makefile.in | 299 +-
gendarme/console/ConsoleRunner.cs | 138 +-
gendarme/console/Helpers.cs | 2 +-
gendarme/console/IgnoreFileList.cs | 49 +-
gendarme/console/Makefile.am | 2 +-
gendarme/console/Makefile.in | 160 +-
gendarme/console/Settings.cs | 9 +-
gendarme/console/XmlResultWriter.cs | 3 +-
gendarme/console/gendarme.csproj | 56 +-
.../SuppressMessageEngine.cs | 10 +-
.../framework/Gendarme.Framework.Helpers/Log.cs | 16 +-
.../Gendarme.Framework.Helpers/MethodPrinter.cs | 32 +-
.../Gendarme.Framework.Helpers/MethodSignature.cs | 7 +-
.../Gendarme.Framework.Helpers/MethodSignatures.cs | 17 +-
.../Gendarme.Framework.Helpers/OpCodeBitmask.cs | 12 +-
.../StackEntryAnalysis.cs | 40 +-
.../StackEntryUsageResult.cs | 4 +-
.../Gendarme.Framework.Helpers/StreamLineReader.cs | 122 +
.../Gendarme.Framework.Rocks/CecilRocks.cs | 26 +
.../CustomAttributeRocks.cs | 65 +-
.../Gendarme.Framework.Rocks/FieldRocks.cs | 7 +-
.../Gendarme.Framework.Rocks/InstructionRocks.cs | 11 +-
.../Gendarme.Framework.Rocks/MethodRocks.cs | 43 +-
.../Gendarme.Framework.Rocks/ModuleRocks.cs | 55 +-
.../Gendarme.Framework.Rocks/ParameterRocks.cs | 17 +-
.../Gendarme.Framework.Rocks/PropertyRocks.cs | 7 +-
.../Gendarme.Framework.Rocks/TypeRocks.cs | 186 +-
.../VariableDefinitionRocks.cs | 5 +-
gendarme/framework/Gendarme.Framework.csproj | 41 +-
gendarme/framework/Gendarme.Framework/Symbols.cs | 12 +-
.../Gendarme.Framework/ThreadModelAttribute.cs | 7 +-
gendarme/framework/Makefile.am | 7 +-
gendarme/framework/Makefile.in | 318 +-
.../Gendarme.Framework.Rocks/AssemblyRocksTest.cs | 15 +-
.../CustomAttributeRocksTest.cs | 44 +-
.../Gendarme.Framework.Rocks/FieldRocksTest.cs | 15 +-
.../Gendarme.Framework.Rocks/MethodRocksTest.cs | 16 +-
.../Test/Gendarme.Framework.Rocks/RocksTest.cs | 3 +
.../Test/Gendarme.Framework.Rocks/TypeRocksTest.cs | 113 +-
gendarme/framework/Test/Makefile.in | 87 +-
gendarme/man/Makefile.in | 318 +-
gendarme/man/gendarme.1.in | 8 +-
gendarme/mono-options.ignore | 12 +
.../AvoidAssemblyVersionMismatchRule.cs | 30 +-
.../AvoidCallingProblematicMethodsRule.cs | 24 +-
.../AvoidNullCheckWithAsOperatorRule.cs | 141 +
.../AvoidVisibleConstantFieldRule.cs | 9 +-
.../CheckNewExceptionWithoutThrowingRule.cs | 2 +-
.../CheckNewThreadWithoutStartRule.cs | 12 +-
.../CloneMethodShouldNotReturnNullRule.cs | 10 +-
.../ConstructorShouldNotCallVirtualMethodsRule.cs | 11 +-
.../DisableDebuggingCodeRule.cs | 17 +-
.../DoNotDecreaseVisibilityRule.cs | 124 +
.../DoNotForgetNotImplementedMethodsRule.cs | 2 +-
.../DoNotUseEnumIsAssignableFromRule.cs | 7 +-
...DoNotUseGetInterfaceToCheckAssignabilityRule.cs | 2 +-
.../Gendarme.Rules.BadPractice.csproj | 43 +-
.../GetEntryAssemblyMayReturnNullRule.cs | 22 +-
.../rules/Gendarme.Rules.BadPractice/Makefile.am | 6 +-
.../rules/Gendarme.Rules.BadPractice/Makefile.in | 298 +-
.../ObsoleteMessagesShouldNotBeEmptyRule.cs | 10 +-
.../OnlyUseDisposeForIDisposableTypesRule.cs | 4 +-
.../PreferEmptyInstanceOverNullRule.cs | 9 +-
.../PreferParamsArrayForVariableArgumentsRule.cs | 4 +-
.../PreferSafeHandleRule.cs | 13 +-
.../PreferTryParseRule.cs | 4 +-
.../Test/AvoidNullCheckWithAsOperatorTest.cs | 142 +
.../Test/DoNotDecreaseVisibilityTest.cs | 210 +
.../Gendarme.Rules.BadPractice/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.BadPractice.csproj | 43 +-
.../UseFileOpenOnlyWithFileAccessRule.cs | 30 +-
.../DecorateThreadsRule.cs | 66 +-
.../DoNotLockOnThisOrTypesRule.cs | 16 +-
.../DoNotLockOnWeakIdentityObjectsRule.cs | 65 +-
.../DoNotUseThreadStaticWithInstanceFieldsRule.cs | 4 +-
.../DontUseLockedRegionOutsideMethodRule.cs | 21 +-
.../DoubleCheckLockingRule.cs | 6 +-
.../Gendarme.Rules.Concurrency.csproj | 30 +-
.../Gendarme.Rules.Concurrency/LockAnalyzerRule.cs | 16 +-
.../rules/Gendarme.Rules.Concurrency/Makefile.in | 292 +-
.../ProtectCallToEventDelegatesRule.cs | 5 +-
...viewLockUsedOnlyForOperationsOnVariablesRule.cs | 10 +-
.../Test/DoNotLockOnThisOrTypesTest.cs | 9 +
.../Gendarme.Rules.Concurrency/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Concurrency.csproj | 30 +-
.../Gendarme.Rules.Concurrency/ThreadRocks.cs | 2 +-
.../WriteStaticFieldFromInstanceMethodRule.cs | 9 +-
...ributeStringLiteralsShouldParseCorrectlyRule.cs | 45 +-
...voidCodeWithSideEffectsInConditionalCodeRule.cs | 4 +-
.../AvoidConstructorsInStaticTypesRule.cs | 2 +-
.../AvoidFloatingPointEqualityRule.cs | 2 +-
...dMethodsWithSideEffectsInConditionalCodeRule.cs | 16 +-
.../BadRecursiveInvocationRule.cs | 5 +-
.../CheckParametersNullityInVisibleMethodsRule.cs | 16 +-
.../DeclareEventsExplicitlyRule.cs | 96 +
.../DisposableFieldsShouldBeDisposedRule.cs | 18 +-
.../DoNotRoundIntegersRule.cs | 22 +-
.../DontCompareWithNaNRule.cs | 17 +-
.../EnsureLocalDisposalRule.cs | 200 +-
.../FloatComparisonRule.cs | 6 +-
.../Gendarme.Rules.Correctness.csproj | 33 +-
.../rules/Gendarme.Rules.Correctness/Makefile.am | 7 +
.../rules/Gendarme.Rules.Correctness/Makefile.in | 299 +-
.../MethodCanBeMadeStaticRule.cs | 4 +-
...ovideCorrectArgumentsToFormattingMethodsRule.cs | 28 +-
.../ProvideCorrectRegexPatternRule.cs | 36 +-
.../ProvideValidXPathExpressionRule.cs | 20 +-
.../ProvideValidXmlStringRule.cs | 18 +-
.../ReviewDoubleAssignmentRule.cs | 7 +-
.../ReviewInconsistentIdentityRule.cs | 4 +-
.../ReviewSelfAssignmentRule.cs | 12 +-
.../ReviewUseOfInt64BitsToDoubleRule.cs | 23 +-
.../Test/BadRecursiveInvocationTest.cs | 19 +
.../Test/DeclareEventsExplicitlyTest.cs} | 64 +-
.../Test/EnsureLocalDisposalTest.cs | 87 +-
.../Gendarme.Rules.Correctness/Test/Makefile.in | 87 +-
.../Test/Resource.Designer.cs | 6 +-
.../Test/Tests.Rules.Correctness.csproj | 32 +-
...esWithDisposableFieldsShouldBeDisposableTest.cs | 166 +-
.../TypesWithNativeFieldsShouldBeDisposableTest.cs | 145 +-
.../TypesShouldBeDisposableBaseRule.cs} | 104 +-
...esWithDisposableFieldsShouldBeDisposableRule.cs | 96 +-
.../TypesWithNativeFieldsShouldBeDisposableRule.cs | 85 +-
.../UseNoInliningWithGetCallingAssemblyRule.cs | 23 +-
.../UseValueInPropertySetterRule.cs | 2 +-
.../AvoidDeclaringCustomDelegatesRule.cs | 35 +-
.../AvoidExcessiveParametersOnGenericTypesRule.cs | 10 +-
.../AvoidMethodWithUnusedGenericTypeRule.cs | 46 +-
.../DoNotDeclareStaticMembersOnGenericTypesRule.cs | 11 +-
.../DoNotExposeGenericListsRule.cs | 14 +-
.../DoNotExposeNestedGenericSignaturesRule.cs | 20 +-
.../Gendarme.Rules.Design.Generic.csproj | 44 +-
.../GenericsBaseRule.cs} | 33 +-
.../ImplementGenericCollectionInterfacesRule.cs | 28 +-
.../Gendarme.Rules.Design.Generic/Makefile.am | 1 +
.../Gendarme.Rules.Design.Generic/Makefile.in | 293 +-
.../PreferGenericsOverRefObjectRule.cs | 22 +-
.../Gendarme.Rules.Design.Generic/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Design.Generic.csproj | 43 +-
.../UseGenericEventHandlerRule.cs | 26 +-
.../AvoidExtensionMethodOnSystemObjectRule.cs | 11 +-
.../Gendarme.Rules.Design.Linq.csproj | 43 +-
.../rules/Gendarme.Rules.Design.Linq/Makefile.in | 292 +-
.../Gendarme.Rules.Design.Linq/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Design.Linq.csproj | 43 +-
.../AttributeArgumentsShouldHaveAccessorsRule.cs | 22 +-
.../AvoidPublicInstanceFieldsRule.cs | 9 +-
.../AvoidRefAndOutParametersRule.cs | 6 +-
.../AvoidSmallNamespaceRule.cs | 4 +-
.../ConsiderAddingInterfaceRule.cs | 6 +-
.../ConsiderConvertingFieldToNullableRule.cs | 9 +-
.../ConsiderConvertingMethodToPropertyRule.cs | 6 +-
.../ConsiderUsingStaticTypeRule.cs | 56 +-
.../DeclareEventHandlersCorrectlyRule.cs | 28 +-
.../DisposableTypesShouldHaveFinalizerRule.cs | 2 +-
...oNotDeclareSettersOnCollectionPropertiesRule.cs | 124 +
.../EnsureSymmetryForOverloadedOperatorsRule.cs | 3 +-
.../EnumeratorsShouldBeStronglyTypedRule.cs | 27 +-
.../EnumsShouldUseInt32Rule.cs | 36 +-
.../Gendarme.Rules.Design.csproj | 45 +-
.../ImplementEqualsAndGetHashCodeInPairRule.cs | 5 +-
.../ImplementIComparableCorreclyRule.cs | 4 +-
.../ListsAreStronglyTypedRule.cs | 31 +-
gendarme/rules/Gendarme.Rules.Design/Makefile.am | 6 +-
gendarme/rules/Gendarme.Rules.Design/Makefile.in | 298 +-
.../MarkAssemblyWithAttributeRule.cs | 3 +-
.../MarkAssemblyWithCLSCompliantRule.cs | 6 +-
.../MarkAssemblyWithComVisibleRule.cs | 6 +-
.../MissingAttributeUsageOnCustomAttributeRule.cs | 4 +-
.../PreferIntegerOrStringForIndexersRule.cs | 24 +-
.../PreferUriOverStringRule.cs | 11 +-
.../PreferXmlAbstractionsRule.cs | 16 +-
...videAlternativeNamesForOperatorOverloadsRule.cs | 4 +-
.../StronglyTypeICollectionMembersRule.cs | 20 +-
.../Gendarme.Rules.Design/StronglyTypedRule.cs | 28 +-
.../AttributeArgumentsShouldHaveAccessorsTest.cs | 35 +
.../Test/ConsiderUsingStaticTypeTest.cs | 6 +-
...oNotDeclareSettersOnCollectionPropertiesTest.cs | 137 +
.../DoNotDeclareVirtualMethodsInSealedTypeTest.cs | 36 +-
.../rules/Gendarme.Rules.Design/Test/Makefile.in | 87 +-
.../Test/PreferUriOverStringTest.cs | 6 +
.../Test/Tests.Rules.Design.csproj | 46 +-
.../UseCorrectDisposeSignaturesRule.cs | 6 +-
.../Gendarme.Rules.Design/UseFlagsAttributeRule.cs | 5 +-
.../UsingCloneWithoutImplementingICloneableRule.cs | 4 +-
...AvoidArgumentExceptionDefaultConstructorRule.cs | 31 +-
.../AvoidThrowingBasicExceptionsRule.cs | 14 +-
.../DoNotDestroyStackTraceRule.cs | 182 +-
.../DoNotThrowInNonCatchClausesRule.cs | 113 +
.../DoNotThrowInUnexpectedLocationRule.cs | 82 +-
.../DoNotThrowReservedExceptionRule.cs | 23 +-
...allowErrorsCatchingNonspecificExceptionsRule.cs | 16 +-
.../ExceptionShouldBeVisibleRule.cs | 14 +-
.../Gendarme.Rules.Exceptions.csproj | 30 +-
.../InstantiateArgumentExceptionCorrectlyRule.cs | 24 +-
.../rules/Gendarme.Rules.Exceptions/Makefile.am | 2 +
.../rules/Gendarme.Rules.Exceptions/Makefile.in | 294 +-
.../MissingExceptionConstructorsRule.cs | 29 +-
.../Gendarme.Rules.Exceptions/NewExceptionRule.cs | 24 +-
.../Test/DoNotThrowInNonCatchClausesTest.cs | 136 +
.../InstantiateArgumentExceptionCorrectlyTest.cs | 44 +
.../Gendarme.Rules.Exceptions/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Exceptions.csproj | 30 +-
.../UseObjectDisposedExceptionRule.cs | 12 +-
.../DefectsMustBeReportedRule.cs | 8 +-
.../DoNotThrowExceptionRule.cs | 6 +-
.../Gendarme.Rules.Gendarme.csproj | 171 +-
gendarme/rules/Gendarme.Rules.Gendarme/Makefile.in | 292 +-
.../MissingEngineDependencyRule.cs | 31 +-
.../ReviewAttributesOnRulesRule.cs | 34 +-
.../rules/Gendarme.Rules.Gendarme/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Gendarme.csproj | 183 +-
.../UseCorrectSuffixRule.cs | 2 +-
.../AvoidUnusedInternalResourceRule.cs | 19 +-
.../Gendarme.Rules.Globalization.csproj | 43 +-
.../rules/Gendarme.Rules.Globalization/Makefile.am | 5 +
.../rules/Gendarme.Rules.Globalization/Makefile.in | 297 +-
.../PreferIFormatProviderOverrideRule.cs | 111 +
.../PreferOverrideBaseRule.cs | 170 +
.../PreferStringComparisonOverrideRule.cs | 82 +
.../SatelliteResourceMismatchRule.cs | 32 +-
.../Test/InternalResource.Designer.cs | 6 +-
.../Gendarme.Rules.Globalization/Test/Makefile.in | 87 +-
.../Test/PreferIFormatProviderOverrideTest.cs | 219 +
.../Test/PreferStringComparisonOverrideTest.cs | 366 ++
.../Test/PublicResource.Designer.cs | 6 +-
.../Test/Resource.Designer.cs | 6 +-
.../Test/Tests.Rules.Globalization.csproj | 43 +-
.../AutoLayoutTypesShouldNotBeComVisibleRule.cs | 10 +-
.../AvoidInt64ArgumentsInComVisibleMethodsRule.cs | 2 +-
.../AvoidStaticMembersInComVisibleTypesRule.cs | 2 +-
.../ComRocks.cs | 8 +-
.../ComVisibleShouldInheritFromComVisibleRule.cs | 7 +-
.../DoNotUseAutoDualClassInterfaceTypeRule.cs | 5 +-
.../Gendarme.Rules.Interoperability.Com.csproj | 181 +-
.../Makefile.in | 292 +-
.../MarkComSourceInterfacesAsIDispatchRule.cs | 33 +-
.../ReviewComRegistrationMethodsRule.cs | 9 +-
.../AutoLayoutTypesShouldNotBeComVisibleTest.cs | 18 +
.../AvoidStaticMembersInComVisibleTypesTest.cs | 8 +-
.../ComVisibleShouldInheritFromComVisibleTest.cs | 15 +-
.../Test/DoNotUseAutoDualClassInterfaceTypeTest.cs | 12 +-
.../Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Interoperability.Com.csproj | 195 +-
.../CentralizePInvokesIntoNativeMethodsTypeRule.cs | 11 +-
...ToNativeCodeMustIncludeExceptionHandlingRule.cs | 25 +-
.../DoNotCastIntPtrToInt32Rule.cs | 24 +-
.../Gendarme.Rules.Interoperability.csproj | 43 +-
...etLastErrorMustBeCalledRightAfterPInvokeRule.cs | 15 +-
.../Gendarme.Rules.Interoperability/Makefile.in | 292 +-
.../MarshalBooleansInPInvokeDeclarationsRule.cs | 4 +-
.../MarshalStringsInPInvokeDeclarationsRule.cs | 14 +-
.../Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Interoperability.csproj | 43 +-
.../UseManagedAlternativesToPInvokeRule.cs | 6 +-
.../AvoidAlwaysNullFieldRule.cs | 20 +-
.../AvoidComplexMethodsRule.cs | 4 +-
.../AvoidDeepInheritanceTreeRule.cs | 13 +-
.../AvoidLackOfCohesionOfMethodsRule.cs | 4 +-
.../AvoidUnnecessarySpecializationRule.cs | 16 +-
.../ConsiderUsingStopwatchRule.cs | 23 +-
.../Gendarme.Rules.Maintainability.csproj | 43 +-
.../Gendarme.Rules.Maintainability/Makefile.in | 292 +-
.../PreferStringIsNullOrEmptyRule.cs | 11 +-
.../RemoveDependenceOnObsoleteCodeRule.cs | 39 +-
.../ReviewMisleadingFieldNamesRule.cs | 23 +-
.../Test/AvoidAlwaysNullFieldTest.cs | 51 +-
.../Test/AvoidUnnecessarySpecializationTest.cs | 32 +-
.../Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Maintainability.csproj | 43 +-
.../Gendarme.Rules.NUnit.csproj | 169 +-
gendarme/rules/Gendarme.Rules.NUnit/Makefile.in | 292 +-
.../ProvideMessageOnAssertCallsRule.cs | 4 +-
.../rules/Gendarme.Rules.NUnit/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.NUnit.csproj | 43 +-
.../UnitTestsMissingTestFixtureRule.cs | 2 +-
.../AvoidDeepNamespaceHierarchyRule.cs | 12 +-
.../AvoidRedundancyInMethodNameRule.cs | 10 +-
.../AvoidRedundancyInTypeNameRule.cs | 4 +-
.../AvoidTypeInterfaceInconsistencyRule.cs | 6 +-
.../DetectNonAlphaNumericsInTypeNamesRule.cs | 7 +-
.../Gendarme.Rules.Naming.csproj | 43 +-
gendarme/rules/Gendarme.Rules.Naming/Makefile.in | 292 +-
...ParameterNamesShouldMatchOverridenMethodRule.cs | 64 +-
.../rules/Gendarme.Rules.Naming/Test/Makefile.in | 87 +-
...ParameterNamesShouldMatchOverridenMethodTest.cs | 158 +-
.../Test/Tests.Rules.Naming.csproj | 43 +-
.../Test/UseCorrectPrefixTest.cs | 5 +
.../Test/UseCorrectSuffixTest.cs | 61 +-
.../Gendarme.Rules.Naming/UseCorrectCasingRule.cs | 26 +-
.../Gendarme.Rules.Naming/UseCorrectPrefixRule.cs | 18 +-
.../Gendarme.Rules.Naming/UseCorrectSuffixRule.cs | 132 +-
.../Gendarme.Rules.Naming/UsePreferredTermsRule.cs | 3 +-
.../AvoidConcatenatingCharsRule.cs | 36 +-
.../AvoidLargeNumberOfLocalVariablesRule.cs | 6 +-
.../AvoidLargeStructureRule.cs | 33 +-
.../AvoidLocalDataStoreSlotRule.cs | 21 +-
.../AvoidMethodWithLargeMaximumStackSizeRule.cs | 4 +-
.../AvoidRepetitiveCallsToPropertiesRule.cs | 27 +-
.../AvoidRepetitiveCastsRule.cs | 10 +-
.../AvoidTypeGetTypeForConstantStringsRule.cs | 9 +-
.../AvoidUncalledPrivateCodeRule.cs | 30 +-
.../AvoidUninstantiatedInternalClassesRule.cs | 4 +-
.../AvoidUnnecessaryOverridesRule.cs | 3 +-
.../AvoidUnneededCallsOnStringRule.cs | 18 +-
.../AvoidUnneededUnboxingRule.cs | 7 +-
.../AvoidUnsealedUninheritedInternalClassesRule.cs | 9 +-
.../AvoidUnusedParametersRule.cs | 12 +-
.../AvoidUnusedPrivateFieldsRule.cs | 31 +-
.../CompareWithStringEmptyEfficientlyRule.cs | 11 +-
.../DontIgnoreMethodResultRule.cs | 15 +-
.../EmptyDestructorRule.cs | 4 +-
.../Gendarme.Rules.Performance.csproj | 30 +-
...bleWithDestructorWithoutSuppressFinalizeRule.cs | 4 +-
.../ImplementEqualsTypeRule.cs | 7 +-
.../rules/Gendarme.Rules.Performance/Makefile.in | 292 +-
.../MathMinMaxCandidateRule.cs | 27 +-
.../OverrideValueTypeDefaultsRule.cs | 3 +-
.../PreferCharOverloadRule.cs | 13 +-
...tOnGenericParameterForPrimitiveInterfaceRule.cs | 85 +-
.../PreferLiteralOverInitOnlyFieldsRule.cs | 2 +-
.../RemoveUnusedLocalVariablesRule.cs | 5 +-
.../ReviewLinqMethodRule.cs | 19 +-
.../Test/AvoidRepetitiveCallsToPropertiesTest.cs | 4 +-
.../Test/AvoidUnusedPrivateFieldsTest.cs | 41 +
.../Gendarme.Rules.Performance/Test/Makefile.in | 87 +-
...tOnGenericParameterForPrimitiveInterfaceTest.cs | 22 +-
.../Test/Tests.Rules.Performance.csproj | 30 +-
.../UseTypeEmptyTypesRule.cs | 4 +-
.../DoNotHardcodePathsRule.cs | 16 +-
.../ExitCodeIsLimitedOnUnixRule.cs | 10 +-
.../FeatureRequiresRootPrivilegeOnUnixRule.cs | 17 +-
.../Gendarme.Rules.Portability.csproj | 30 +-
.../rules/Gendarme.Rules.Portability/Makefile.in | 292 +-
.../MonoCompatibilityReviewRule.cs | 47 +-
.../NewLineLiteralRule.cs | 3 +-
.../Gendarme.Rules.Portability/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Portability.csproj | 30 +-
.../Gendarme.Rules.Security.Cas.csproj | 43 +-
.../rules/Gendarme.Rules.Security.Cas/Makefile.in | 292 +-
...ReviewSuppressUnmanagedCodeSecurityUsageRule.cs | 12 +-
.../SecureGetObjectDataOverridesRule.cs | 6 +-
.../SecurityDeclarationRocks.cs | 1 +
.../Gendarme.Rules.Security.Cas/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Security.Cas.csproj | 43 +-
.../DoNotShortCircuitCertificateCheckRule.cs | 25 +-
.../Gendarme.Rules.Security.csproj | 30 +-
gendarme/rules/Gendarme.Rules.Security/Makefile.in | 292 +-
.../rules/Gendarme.Rules.Security/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Security.csproj | 30 +-
.../CallBaseMethodsOnISerializableTypesRule.cs | 7 +-
.../DeserializeOptionalFieldRule.cs | 22 +-
.../Gendarme.Rules.Serialization.csproj | 43 +-
.../ImplementISerializableCorrectlyRule.cs | 8 +-
.../rules/Gendarme.Rules.Serialization/Makefile.in | 292 +-
.../MarkAllNonSerializableFieldsRule.cs | 15 +-
...SerializableAttributeOnISerializableTypeRule.cs | 6 +-
.../MissingSerializationConstructorRule.cs | 5 +-
.../Gendarme.Rules.Serialization/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Serialization.csproj | 43 +-
...eCorrectSignatureForSerializationMethodsRule.cs | 41 +-
.../Gendarme.Rules.Smells/AvoidLargeClassesRule.cs | 9 +-
.../Gendarme.Rules.Smells/AvoidLongMethodsRule.cs | 47 +-
.../AvoidLongParameterListsRule.cs | 6 +-
.../AvoidMessageChainsRule.cs | 6 +-
.../AvoidSpeculativeGeneralityRule.cs | 7 +-
.../Gendarme.Rules.Smells/CodeDuplicatedLocator.cs | 7 +-
.../Gendarme.Rules.Smells.csproj | 43 +-
.../Gendarme.Rules.Smells/InstructionMatcher.cs | 4 +-
gendarme/rules/Gendarme.Rules.Smells/Makefile.in | 292 +-
gendarme/rules/Gendarme.Rules.Smells/Pattern.cs | 26 +-
.../Test/AvoidCodeDuplicatedInSameClassTest.cs | 12 +-
.../rules/Gendarme.Rules.Smells/Test/Makefile.in | 87 +-
.../Test/Tests.Rules.Smells.csproj | 43 +-
.../AddMatchingArrangeMeasureOverrideRule.cs | 11 +-
.../Gendarme.Rules.Ui/Gendarme.Rules.Ui.csproj | 246 +-
gendarme/rules/Gendarme.Rules.Ui/Makefile.in | 292 +-
gendarme/rules/Gendarme.Rules.Ui/Test/Makefile.in | 87 +-
.../Gendarme.Rules.Ui/Test/Tests.Rules.Ui.csproj | 31 +-
.../UseSTAThreadAttributeOnSWFEntryPointsRule.cs | 7 +-
gendarme/rules/Makefile.in | 187 +-
gendarme/rules/Test.Rules/Makefile.am | 6 +-
gendarme/rules/Test.Rules/Makefile.in | 193 +-
gendarme/rules/Test.Rules/Test.Rules.csproj | 43 +-
gendarme/rules/common.make | 6 +-
gendarme/self-test.ignore | 41 +-
gendarme/swf-wizard-runner/GuiRunner.cs | 9 +-
gendarme/swf-wizard-runner/Makefile.in | 186 +-
.../Properties/Resources.Designer.cs | 6 +-
.../Properties/Settings.Designer.cs | 4 +-
gendarme/swf-wizard-runner/Wizard.Designer.cs | 2 +-
gendarme/swf-wizard-runner/Wizard.cs | 29 +-
.../swf-wizard-runner/swf-wizard-runner.csproj | 63 +-
gendarme/tools/Makefile.in | 184 +-
gendarme/tools/supported/Makefile.am | 2 +-
gendarme/tools/supported/Makefile.in | 186 +-
gendarme/tools/supported/gd2i/Makefile.am | 2 +-
gendarme/tools/supported/gd2i/Makefile.in | 159 +-
gendarme/tools/supported/gd2i/gd2i.csproj | 145 +-
.../supported/templates/AssemblyRule.cs} | 35 +-
.../supported/templates/AssemblyRule.vstemplate | 24 +
.../supported/templates/AssemblyTest.cs} | 42 +-
.../supported/templates/AssemblyTest.vstemplate | 27 +
gendarme/tools/supported/templates/Makefile.am | 102 +
.../mapper => supported/templates}/Makefile.in | 197 +-
.../supported/templates/MethodRule.cs} | 35 +-
.../supported/templates/MethodRule.vstemplate | 24 +
.../supported/templates/MethodTest.cs} | 42 +-
.../supported/templates/MethodTest.vstemplate | 27 +
gendarme/tools/supported/templates/README | 8 +
gendarme/tools/supported/templates/README.vsnet | 12 +
.../templates/Templates.RuleProject.csproj} | 51 +-
.../templates/Templates.RuleProject.vstemplate | 19 +
.../templates/Templates.TestProject.csproj} | 58 +-
.../templates/Templates.TestProject.vstemplate | 19 +
.../supported/templates/TypeRule.cs} | 33 +-
.../tools/supported/templates/TypeRule.vstemplate | 24 +
.../supported/templates/TypeTest.cs} | 42 +-
.../tools/supported/templates/TypeTest.vstemplate | 27 +
gendarme/tools/unsupported/Makefile.in | 184 +-
.../tools/unsupported/mapper/FxCopMapBuilder.cs | 3 +-
gendarme/tools/unsupported/mapper/Makefile.am | 2 +-
gendarme/tools/unsupported/mapper/Makefile.in | 89 +-
gendarme/tools/unsupported/mapper/fxcop.missing | 8 -
gendarme/tools/unsupported/typeref/Makefile.am | 2 +-
gendarme/tools/unsupported/typeref/Makefile.in | 89 +-
gendarme/tools/unsupported/typeref/typeref.csproj | 43 +-
gendarme/tools/unsupported/xmldoc2wiki/Makefile.am | 2 +-
gendarme/tools/unsupported/xmldoc2wiki/Makefile.in | 89 +-
gendarme/tools/unsupported/xmldoc2wiki/README | 15 +-
.../tools/unsupported/xmldoc2wiki/xmldoc2wiki.cs | 299 +-
.../unsupported/xmldoc2wiki/xmldoc2wiki.csproj | 145 +-
gendarme/wix/Makefile.in | 87 +-
gendarme/wix/Product.wxs | 12 +-
gendarme/wix/license.rtf | 4 +-
gendarme/wix/wix.wixproj | 7 +-
gsharp/Main.cs | 12 +-
gsharp/MainWindow.cs | 4 +-
gsharp/Makefile.in | 213 +-
gsharp/Shell.cs | 32 +-
gsharp/gtk-gui/Mono.CSharp.Gui.DescribeType.cs | 194 +-
gsharp/gtk-gui/Mono.CSharp.Gui.MainWindow.cs | 415 +-
gsharp/gtk-gui/Mono.CSharp.Gui.ProcessSelector.cs | 198 +-
gsharp/gtk-gui/generated.cs | 60 +-
gui-compare/CecilMetadata.cs | 246 +-
gui-compare/CompareContext.cs | 224 +-
gui-compare/InfoManager.cs | 153 +-
gui-compare/Main.cs | 9 +-
gui-compare/MainWindow.cs | 30 +-
gui-compare/Makefile.am | 2 +-
gui-compare/Makefile.in | 188 +-
gui-compare/MasterMetadata.cs | 3 +
gui-compare/Masterinfo.cs | 37 +-
gui-compare/Metadata.cs | 29 +-
gui-compare/gtk-gui/GuiCompare.CustomCompare.cs | 20 +-
gui-compare/gtk-gui/MainWindow.cs | 48 +-
gui-compare/gtk-gui/generated.cs | 21 +-
gui-compare/gtk-gui/gui.stetic | 4 +-
gui-compare/gtk-gui/guicompare.ProviderSelector.cs | 7 +-
gui-compare/gui-compare.in | 2 +
ilcontrast/Makefile.in | 238 +-
install-sh | 32 +-
minvoke/Makefile.in | 186 +-
missing | 94 +-
mkinstalldirs | 161 -
mono-tools.spec.in | 102 +
mperfmon/Makefile.in | 281 +-
po/Makefile.in.in | 20 +-
po/ca.gmo | Bin 1429 -> 4775 bytes
po/ca.po | 401 +-
po/da.gmo | Bin 455 -> 3793 bytes
po/da.po | 407 +-
po/es.gmo | Bin 468 -> 3791 bytes
po/es.po | 401 +-
po/fr.gmo | Bin 395 -> 2670 bytes
po/fr.po | 335 +-
po/mono-tools.pot | 176 +-
po/pt_BR.gmo | Bin 5638 -> 5638 bytes
po/pt_BR.po | 260 +-
webdoc/App_Code/Plugins/Plugin.cs | 144 +
webdoc/Global.asax | 125 +
webdoc/Makefile.am | 201 +-
webdoc/Makefile.in | 335 +-
webdoc/README.md | 41 +
webdoc/api.master | 39 +
webdoc/common.css | 175 -
webdoc/edit.aspx | 62 -
webdoc/header.aspx | 117 -
webdoc/header.html | 65 -
webdoc/images/link.png | Bin 730 -> 0 bytes
webdoc/images/print.png | Bin 585 -> 0 bytes
webdoc/index.aspx | 90 +-
webdoc/index.html | 10 -
webdoc/login.aspx | 68 -
webdoc/logout.aspx | 12 -
webdoc/mono_logo_g.gif | Bin 1655 -> 0 bytes
webdoc/monodoc.ashx | 319 +-
webdoc/monodoc.asmx | 210 -
webdoc/monodoc.css | 1 +
webdoc/oldposts.xml | 3 -
webdoc/plugins.def | 12 +
webdoc/plugins/iframe-plugin/iframe.js | 3 +
.../jquery.iframe-auto-height-plugin.1.9.0.min.js | 7 +
.../plugins/search-plugin/fastsearch/fsearch.css | 45 +
webdoc/plugins/search-plugin/fastsearch/search.js | 133 +
.../plugins/search-plugin/fullsearch/fullsearch.js | 40 +
webdoc/plugins/search-plugin/fullsearch/search.css | 43 +
.../plugins/search-plugin/fullsearch/search.html | 24 +
webdoc/plugins/search-plugin/images/spinner.gif | Bin 0 -> 3208 bytes
.../dependencies/ptree}/searching.gif | Bin 551 -> 551 bytes
.../sidebar-plugin/dependencies}/ptree/tree.css | 24 +-
.../sidebar-plugin/dependencies}/ptree/tree.js | 109 +-
.../dependencies}/xtree/images/I.png | Bin 148 -> 148 bytes
.../dependencies}/xtree/images/L.png | Bin 153 -> 153 bytes
.../dependencies}/xtree/images/Lminus.png | Bin 219 -> 219 bytes
.../dependencies}/xtree/images/Lplus.png | Bin 224 -> 224 bytes
.../dependencies}/xtree/images/T.png | Bin 152 -> 152 bytes
.../dependencies}/xtree/images/Tminus.png | Bin 207 -> 207 bytes
.../dependencies}/xtree/images/Tplus.png | Bin 222 -> 222 bytes
.../dependencies}/xtree/images/blank.png | Bin 144 -> 144 bytes
.../dependencies}/xtree/images/clean/I.gif | Bin 70 -> 70 bytes
.../dependencies}/xtree/images/clean/L.gif | Bin 62 -> 62 bytes
.../dependencies}/xtree/images/clean/Lminus.gif | Bin 337 -> 337 bytes
.../dependencies}/xtree/images/clean/Lplus.gif | Bin 333 -> 333 bytes
.../dependencies}/xtree/images/clean/T.gif | Bin 62 -> 62 bytes
.../dependencies}/xtree/images/clean/Tminus.gif | Bin 337 -> 337 bytes
.../dependencies}/xtree/images/clean/Tplus.gif | Bin 333 -> 333 bytes
.../dependencies}/xtree/images/clean/blank.gif | Bin 56 -> 56 bytes
.../dependencies}/xtree/images/file.png | Bin 251 -> 251 bytes
.../dependencies}/xtree/images/foldericon.png | Bin 229 -> 229 bytes
.../dependencies}/xtree/images/msdn/I.gif | Bin 77 -> 77 bytes
.../dependencies}/xtree/images/msdn/L.gif | Bin 74 -> 74 bytes
.../dependencies}/xtree/images/msdn/Lminus.gif | Bin 345 -> 345 bytes
.../dependencies}/xtree/images/msdn/Lplus.gif | Bin 342 -> 342 bytes
.../dependencies}/xtree/images/msdn/T.gif | Bin 80 -> 80 bytes
.../dependencies}/xtree/images/msdn/Tminus.gif | Bin 349 -> 349 bytes
.../dependencies}/xtree/images/msdn/Tplus.gif | Bin 346 -> 346 bytes
.../dependencies}/xtree/images/msdn/blank.gif | Bin 56 -> 56 bytes
.../dependencies}/xtree/images/msdn/menu_bar.gif | Bin 77 -> 77 bytes
.../xtree/images/msdn/menu_corner.gif | Bin 74 -> 74 bytes
.../xtree/images/msdn/menu_corner_minus.gif | Bin 345 -> 345 bytes
.../xtree/images/msdn/menu_corner_plus.gif | Bin 342 -> 342 bytes
.../dependencies}/xtree/images/msdn/menu_tee.gif | Bin 80 -> 80 bytes
.../xtree/images/msdn/menu_tee_minus.gif | Bin 349 -> 349 bytes
.../xtree/images/msdn/menu_tee_plus.gif | Bin 346 -> 346 bytes
.../dependencies}/xtree/images/msdn2/I.gif | Bin 97 -> 97 bytes
.../dependencies}/xtree/images/msdn2/L.gif | Bin 74 -> 74 bytes
.../dependencies/xtree/images/msdn2/Lminus.gif | Bin 0 -> 1408 bytes
.../dependencies/xtree/images/msdn2/Lplus.gif | Bin 0 -> 1405 bytes
.../dependencies}/xtree/images/msdn2/T.gif | Bin 80 -> 80 bytes
.../dependencies/xtree/images/msdn2/Tminus.gif | Bin 0 -> 1412 bytes
.../dependencies/xtree/images/msdn2/Tplus.gif | Bin 0 -> 1409 bytes
.../dependencies}/xtree/images/msdn2/blank.gif | Bin 56 -> 56 bytes
.../dependencies}/xtree/images/openfoldericon.png | Bin 232 -> 232 bytes
.../dependencies}/xtree/images/xp/I.png | Bin 148 -> 148 bytes
.../dependencies}/xtree/images/xp/L.png | Bin 153 -> 153 bytes
.../dependencies}/xtree/images/xp/Lminus.png | Bin 340 -> 340 bytes
.../dependencies}/xtree/images/xp/Lplus.png | Bin 348 -> 348 bytes
.../dependencies}/xtree/images/xp/T.png | Bin 152 -> 152 bytes
.../dependencies}/xtree/images/xp/Tminus.png | Bin 341 -> 341 bytes
.../dependencies}/xtree/images/xp/Tplus.png | Bin 348 -> 348 bytes
.../dependencies}/xtree/images/xp/file.png | Bin 377 -> 377 bytes
.../dependencies}/xtree/images/xp/folder.png | Bin 413 -> 413 bytes
.../dependencies}/xtree/images/xp/openfolder.png | Bin 474 -> 474 bytes
.../dependencies}/xtree/xloadtree.js | 0
.../dependencies}/xtree/xmlextras.js | 0
.../sidebar-plugin/dependencies}/xtree/xtree.css | 10 -
.../sidebar-plugin/dependencies}/xtree/xtree.js | 36 +-
webdoc/plugins/sidebar-plugin/make-tree.js | 35 +
webdoc/{ => plugins/sidebar-plugin}/sidebar.css | 18 +-
webdoc/{ => plugins/sidebar-plugin}/sidebar.js | 0
webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js | 276 +
webdoc/robots.txt | 2 +
webdoc/server.asmx | 1 -
webdoc/server.cs | 366 --
webdoc/skins/mono-external/common-extension.css | 333 ++
webdoc/skins/mono-external/footer.html | 1 +
webdoc/skins/mono-external/header.html | 13 +
webdoc/skins/mono-external/images/link.png | Bin 0 -> 1635 bytes
.../{ => skins/mono-external}/images/mono-logo.png | Bin 9916 -> 9916 bytes
.../mono-external}/images/mono_logo_g.gif | Bin 1655 -> 1655 bytes
.../mono-external/images/native-browser-icon.png | Bin 0 -> 1736 bytes
webdoc/skins/mono-external/images/print.png | Bin 0 -> 2539 bytes
webdoc/skins/mono-external/images/slide-toggle.png | Bin 0 -> 3034 bytes
webdoc/skins/mono-external/images/spinner.gif | Bin 0 -> 3208 bytes
webdoc/tables.sql | 21 -
webdoc/views/common.css | 38 +
webdoc/views/common.js | 46 +
webdoc/views/images/favicon.ico | Bin 0 -> 1406 bytes
webdoc/views/images/native-browser-icon.png | Bin 0 -> 1736 bytes
webdoc/views/reset.css | 49 +
webdoc/web.config | 19 +-
webdoc/wiki2ecmahelper.xsl | 70 -
webdoc/xtree/images/msdn2/Lminus.gif | Bin 345 -> 0 bytes
webdoc/xtree/images/msdn2/Lplus.gif | Bin 342 -> 0 bytes
webdoc/xtree/images/msdn2/Tminus.gif | Bin 349 -> 0 bytes
webdoc/xtree/images/msdn2/Tplus.gif | Bin 346 -> 0 bytes
639 files changed, 29517 insertions(+), 14636 deletions(-)
diff --git a/INSTALL b/INSTALL
index d3c5b40..a1e89e1 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,19 +1,25 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Inc.
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+ 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 warranty of any kind.
Basic Installation
==================
-Briefly, the shell commands `./configure; make; make install' should
+ Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -42,7 +48,7 @@ may remove or edit it.
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
-The simplest way to compile this package is:
+ The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
@@ -53,12 +59,22 @@ The simplest way to compile this package is:
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
@@ -67,15 +83,22 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
- 6. Often, you can also type `make uninstall' to remove the installed
- files again.
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
Compilers and Options
=====================
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
@@ -88,25 +111,41 @@ is an example:
Compiling For Multiple Architectures
====================================
-You can compile the package for more than one kind of computer at the
+ You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
Installation Names
==================
-By default, `make install' installs the package's commands under
+ By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -117,16 +156,47 @@ Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
+ Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -138,14 +208,58 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
Specifying the System Type
==========================
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -153,7 +267,8 @@ type, such as `sun4', or a canonical name which has the form:
where SYSTEM can have one of these forms:
- OS KERNEL-OS
+ OS
+ KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
@@ -171,9 +286,9 @@ eventually be run) with `--host=TYPE'.
Sharing Defaults
================
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -182,7 +297,7 @@ A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
-Variables not defined in a site shell script can be set in the
+ Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -201,11 +316,19 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:
`configure' Invocation
======================
-`configure' recognizes the following options to control how it operates.
+ `configure' recognizes the following options to control how it
+operates.
`--help'
`-h'
- Print a summary of the options to `configure', and exit.
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
`--version'
`-V'
@@ -232,6 +355,16 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
diff --git a/Makefile.in b/Makefile.in
index ad2b296..e295a62 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -34,17 +53,18 @@ host_triplet = @host@
target_triplet = @target@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
- COPYING.LIB ChangeLog INSTALL NEWS config.guess config.sub \
- install-sh missing mkinstalldirs
+ $(srcdir)/Makefile.in $(srcdir)/mono-tools.spec.in \
+ $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \
+ INSTALL NEWS config.guess config.sub install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES = mono-tools.spec
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -54,8 +74,16 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
@@ -63,12 +91,41 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -130,6 +187,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +201,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -224,21 +285,21 @@ ACLOCAL_AMFLAGS = $(ACLOCAL_FLAGS)
all: all-recursive
.SUFFIXES:
-am--refresh:
+am--refresh: Makefile
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
- cd $(srcdir) && $(AUTOMAKE) --gnu \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -254,9 +315,12 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+mono-tools.spec: $(top_builddir)/config.status $(srcdir)/mono-tools.spec.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -265,7 +329,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -282,7 +346,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -290,7 +354,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -316,16 +380,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -333,14 +397,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -352,7 +416,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -361,36 +425,41 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
- test -d $(distdir) || mkdir $(distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -406,50 +475,72 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
+ || chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
@@ -473,26 +564,33 @@ dist dist-all: distdir
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
- unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
+ chmod -R a-w $(distdir); chmod u+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && cd $(distdir)/_build \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -513,14 +611,24 @@ distcheck: dist
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
- @cd $(distuninstallcheck_dir) \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -551,16 +659,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -580,6 +694,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -588,18 +704,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -622,23 +748,24 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
- dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \
- distclean-generic distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
- tags-recursive uninstall uninstall-am
+ dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-generic distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/Mono.Profiler/Makefile.in b/Mono.Profiler/Makefile.in
index 98f767d..a670e1e 100644
--- a/Mono.Profiler/Makefile.in
+++ b/Mono.Profiler/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -209,14 +266,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -234,6 +291,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -242,7 +300,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -259,7 +317,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -267,7 +325,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -293,16 +351,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -310,14 +368,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -329,7 +387,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -338,29 +396,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -381,29 +444,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -423,16 +498,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -451,6 +532,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -459,18 +542,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -491,8 +584,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -507,6 +600,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/Mono.Profiler.Widgets/Makefile.am b/Mono.Profiler/Mono.Profiler.Widgets/Makefile.am
index 7b91e6b..f0bf1ec 100644
--- a/Mono.Profiler/Mono.Profiler.Widgets/Makefile.am
+++ b/Mono.Profiler/Mono.Profiler.Widgets/Makefile.am
@@ -9,7 +9,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
diff --git a/Mono.Profiler/Mono.Profiler.Widgets/Makefile.in b/Mono.Profiler/Mono.Profiler.Widgets/Makefile.in
index 3e1d0c7..4be09f3 100644
--- a/Mono.Profiler/Mono.Profiler.Widgets/Makefile.in
+++ b/Mono.Profiler/Mono.Profiler.Widgets/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,19 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(programfilesdir)"
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -113,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -126,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -204,7 +253,8 @@ ASSEMBLY = $(BUILDDIR)/Mono.Profiler.Widgets.dll
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -debug -define:DEBUG
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
FILES = \
AllocationsStore.cs \
@@ -250,14 +300,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/Mono.Profiler.Widgets/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/Mono.Profiler.Widgets/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/Mono.Profiler.Widgets/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/Mono.Profiler.Widgets/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -275,23 +325,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-pkglibDATA: $(pkglib_DATA)
+$(am__aclocal_m4_deps):
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -315,13 +370,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -329,7 +388,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -342,10 +401,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -353,6 +417,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -371,26 +436,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am:
+install-data-am: install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-pkglibDATA
+install-dvi-am:
+
+install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -409,7 +486,7 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-pkglibDATA
+uninstall-am: uninstall-programfilesDATA
.MAKE: install-am install-strip
@@ -418,16 +495,17 @@ uninstall-am: uninstall-pkglibDATA
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkglibDATA install-ps \
+ install-pdf install-pdf-am install-programfilesDATA install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
- uninstall-am uninstall-pkglibDATA
+ uninstall-am uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources)
mkdir -p $(BUILDDIR)
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:library $(build_sources) $(build_resources_args) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/heap-snapshot-explorer/Makefile.am b/Mono.Profiler/heap-snapshot-explorer/Makefile.am
index 2bb2401..a9f34a3 100644
--- a/Mono.Profiler/heap-snapshot-explorer/Makefile.am
+++ b/Mono.Profiler/heap-snapshot-explorer/Makefile.am
@@ -9,7 +9,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
diff --git a/Mono.Profiler/heap-snapshot-explorer/Makefile.in b/Mono.Profiler/heap-snapshot-explorer/Makefile.in
index 0aa0f9d..cdfbfd5 100644
--- a/Mono.Profiler/heap-snapshot-explorer/Makefile.in
+++ b/Mono.Profiler/heap-snapshot-explorer/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,19 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(programfilesdir)"
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -113,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -126,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -204,7 +253,8 @@ ASSEMBLY = $(BUILDDIR)/mprof-heap-snapshot-explorer.dll
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+ -debug "-define:DEBUG"
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
FILES = \
AssemblyInfo.cs \
@@ -242,14 +292,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-explorer/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-explorer/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-explorer/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-explorer/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -267,23 +317,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-pkglibDATA: $(pkglib_DATA)
+$(am__aclocal_m4_deps):
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -307,13 +362,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -321,7 +380,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -334,10 +393,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -345,6 +409,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -363,26 +428,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am:
+install-data-am: install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-pkglibDATA
+install-dvi-am:
+
+install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -401,7 +478,7 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-pkglibDATA
+uninstall-am: uninstall-programfilesDATA
.MAKE: install-am install-strip
@@ -410,16 +487,17 @@ uninstall-am: uninstall-pkglibDATA
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkglibDATA install-ps \
+ install-pdf install-pdf-am install-programfilesDATA install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
- uninstall-am uninstall-pkglibDATA
+ uninstall-am uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(PROJECT_REFERENCES)
mkdir -p $(BUILDDIR)
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:library $(build_sources) $(build_resources_args) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/heap-snapshot-viewer/Makefile.am b/Mono.Profiler/heap-snapshot-viewer/Makefile.am
index 3b488be..f7b0888 100644
--- a/Mono.Profiler/heap-snapshot-viewer/Makefile.am
+++ b/Mono.Profiler/heap-snapshot-viewer/Makefile.am
@@ -8,7 +8,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = mprof-heap-viewer
man_MANS=man/man1/mprof-heap-viewer.1
diff --git a/Mono.Profiler/heap-snapshot-viewer/Makefile.in b/Mono.Profiler/heap-snapshot-viewer/Makefile.in
index 654181b..9b351c3 100644
--- a/Mono.Profiler/heap-snapshot-viewer/Makefile.in
+++ b/Mono.Profiler/heap-snapshot-viewer/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,25 +60,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = mprof-heap-viewer
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
- "$(DESTDIR)$(pkglibdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+ "$(DESTDIR)$(programfilesdir)"
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -121,6 +165,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -134,9 +179,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -211,7 +259,8 @@ ASSEMBLY = $(top_builddir)/Mono.Profiler/lib/mprof-heap-viewer.exe
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+ -debug "-define:DEBUG"
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = mprof-heap-viewer
man_MANS = man/man1/mprof-heap-viewer.1
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
@@ -250,14 +299,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-viewer/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-viewer/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-viewer/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/heap-snapshot-viewer/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -275,89 +324,108 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
mprof-heap-viewer: $(top_builddir)/config.status $(srcdir)/mprof-heap-viewer.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-install-man1: $(man1_MANS) $(man_MANS)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-install-pkglibDATA: $(pkglib_DATA)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -366,6 +434,19 @@ CTAGS:
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -381,13 +462,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -395,7 +480,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -408,10 +493,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -419,6 +509,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -437,26 +528,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am: install-man
+install-data-am: install-man install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-binSCRIPTS install-pkglibDATA
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man: install-man1
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -475,7 +578,8 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-binSCRIPTS uninstall-man uninstall-pkglibDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-man \
+ uninstall-programfilesDATA
uninstall-man: uninstall-man1
@@ -487,17 +591,18 @@ uninstall-man: uninstall-man1
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-man1 install-pdf \
- install-pdf-am install-pkglibDATA install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-binSCRIPTS uninstall-man uninstall-man1 \
- uninstall-pkglibDATA
+ install-pdf-am install-programfilesDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-binSCRIPTS uninstall-man uninstall-man1 \
+ uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(PROJECT_REFERENCES)
mkdir -p $(shell dirname $(ASSEMBLY))
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:exe $(build_sources) $(build_resources_args) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/mprof-gui/Makefile.am b/Mono.Profiler/mprof-gui/Makefile.am
index 5b00ea9..0369c2c 100644
--- a/Mono.Profiler/mprof-gui/Makefile.am
+++ b/Mono.Profiler/mprof-gui/Makefile.am
@@ -8,7 +8,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = emveepee
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
diff --git a/Mono.Profiler/mprof-gui/Makefile.in b/Mono.Profiler/mprof-gui/Makefile.in
index 6339d99..9fdc3d5 100644
--- a/Mono.Profiler/mprof-gui/Makefile.in
+++ b/Mono.Profiler/mprof-gui/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,21 +60,46 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = emveepee
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(programfilesdir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -117,6 +161,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -130,9 +175,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -207,7 +255,8 @@ ASSEMBLY = $(top_builddir)/Mono.Profiler/lib/emveepee.exe
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -debug "-define:DEBUG"
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = emveepee
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
FILES = \
@@ -238,14 +287,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/mprof-gui/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/mprof-gui/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/mprof-gui/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/mprof-gui/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -263,44 +312,65 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
emveepee: $(top_builddir)/config.status $(srcdir)/emveepee.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-install-pkglibDATA: $(pkglib_DATA)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -324,13 +394,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -338,7 +412,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(SCRIPTS) $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -351,10 +425,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -362,6 +441,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -380,26 +460,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am:
+install-data-am: install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-binSCRIPTS install-pkglibDATA
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -418,7 +510,7 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-binSCRIPTS uninstall-pkglibDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-programfilesDATA
.MAKE: install-am install-strip
@@ -428,16 +520,17 @@ uninstall-am: uninstall-binSCRIPTS uninstall-pkglibDATA
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
- install-pkglibDATA install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS \
- uninstall-pkglibDATA
+ install-programfilesDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-binSCRIPTS uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(build_resources) $(PROJECT_REFERENCES)
mkdir -p $(shell dirname $(ASSEMBLY))
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:exe $(build_sources) $(build_resources_args) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/profiler-decoder-library/Makefile.am b/Mono.Profiler/profiler-decoder-library/Makefile.am
index 115f1a7..71d49ac 100644
--- a/Mono.Profiler/profiler-decoder-library/Makefile.am
+++ b/Mono.Profiler/profiler-decoder-library/Makefile.am
@@ -9,7 +9,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
diff --git a/Mono.Profiler/profiler-decoder-library/Makefile.in b/Mono.Profiler/profiler-decoder-library/Makefile.in
index fb85e9a..f1be68a 100644
--- a/Mono.Profiler/profiler-decoder-library/Makefile.in
+++ b/Mono.Profiler/profiler-decoder-library/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,19 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(programfilesdir)"
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -113,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -126,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -204,7 +253,8 @@ ASSEMBLY = $(BUILDDIR)/mprof-decoder-library.dll
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
FILES = \
AssemblyInfo.cs \
@@ -227,14 +277,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/profiler-decoder-library/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/profiler-decoder-library/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/profiler-decoder-library/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/profiler-decoder-library/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -252,23 +302,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-pkglibDATA: $(pkglib_DATA)
+$(am__aclocal_m4_deps):
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -292,13 +347,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -306,7 +365,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -319,10 +378,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -330,6 +394,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -348,26 +413,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am:
+install-data-am: install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-pkglibDATA
+install-dvi-am:
+
+install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -386,7 +463,7 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-pkglibDATA
+uninstall-am: uninstall-programfilesDATA
.MAKE: install-am install-strip
@@ -395,16 +472,17 @@ uninstall-am: uninstall-pkglibDATA
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkglibDATA install-ps \
+ install-pdf install-pdf-am install-programfilesDATA install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
- uninstall-am uninstall-pkglibDATA
+ uninstall-am uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources)
mkdir -p $(BUILDDIR)
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:library $(build_sources) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/Mono.Profiler/profiler-file-decoder/Makefile.am b/Mono.Profiler/profiler-file-decoder/Makefile.am
index 285267f..2365dc7 100644
--- a/Mono.Profiler/profiler-file-decoder/Makefile.am
+++ b/Mono.Profiler/profiler-file-decoder/Makefile.am
@@ -9,7 +9,8 @@ CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+
ASSEMBLY_MDB =
endif
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = mprof-decoder
man_MANS = man/man1/mprof-decoder.1
diff --git a/Mono.Profiler/profiler-file-decoder/Makefile.in b/Mono.Profiler/profiler-file-decoder/Makefile.in
index ecabd83..9728818 100644
--- a/Mono.Profiler/profiler-file-decoder/Makefile.in
+++ b/Mono.Profiler/profiler-file-decoder/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,25 +60,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = mprof-decoder
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
- "$(DESTDIR)$(pkglibdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+ "$(DESTDIR)$(programfilesdir)"
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-pkglibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(pkglib_DATA)
+DATA = $(programfiles_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -121,6 +165,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -134,9 +179,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -212,7 +260,8 @@ ASSEMBLY = $(BUILDDIR)/mprof-decoder.exe
@ENABLE_DEBUG_TRUE at CSFLAGS = -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG
@ENABLE_DEBUG_FALSE at ASSEMBLY_MDB =
@ENABLE_DEBUG_TRUE at ASSEMBLY_MDB = $(ASSEMBLY).mdb
-pkglib_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
+programfilesdir = $(pkglibdir)
+programfiles_DATA = $(ASSEMBLY) $(ASSEMBLY_MDB)
bin_SCRIPTS = mprof-decoder
man_MANS = man/man1/mprof-decoder.1
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY_MDB)
@@ -231,14 +280,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/profiler-file-decoder/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Mono.Profiler/profiler-file-decoder/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Mono.Profiler/profiler-file-decoder/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Mono.Profiler/profiler-file-decoder/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -256,89 +305,108 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
mprof-decoder: $(top_builddir)/config.status $(srcdir)/mprof-decoder.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-install-man1: $(man1_MANS) $(man_MANS)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-install-pkglibDATA: $(pkglib_DATA)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-programfilesDATA: $(programfiles_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_DATA)'; for p in $$list; do \
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(programfilesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \
done
-uninstall-pkglibDATA:
+uninstall-programfilesDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkglib_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
+ @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(programfilesdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -347,6 +415,19 @@ CTAGS:
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -362,13 +443,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -376,7 +461,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkglibdir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(programfilesdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -389,10 +474,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -400,6 +490,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -418,26 +509,38 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
-install-data-am: install-man
+install-data-am: install-man install-programfilesDATA
install-dvi: install-dvi-am
-install-exec-am: install-binSCRIPTS install-pkglibDATA
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man: install-man1
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -456,7 +559,8 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-binSCRIPTS uninstall-man uninstall-pkglibDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-man \
+ uninstall-programfilesDATA
uninstall-man: uninstall-man1
@@ -468,17 +572,18 @@ uninstall-man: uninstall-man1
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-man1 install-pdf \
- install-pdf-am install-pkglibDATA install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-binSCRIPTS uninstall-man uninstall-man1 \
- uninstall-pkglibDATA
+ install-pdf-am install-programfilesDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-binSCRIPTS uninstall-man uninstall-man1 \
+ uninstall-programfilesDATA
$(ASSEMBLY) $(ASSEMBLY_MDB): $(build_sources) $(DLL_REFERENCES) $(PROJECT_REFERENCES)
mkdir -p $(shell dirname $(ASSEMBLY))
$(GMCS) $(CSFLAGS) -out:$(ASSEMBLY) -target:exe $(build_sources) $(build_references)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/README b/README
index 3ad3752..a01a518 100644
--- a/README
+++ b/README
@@ -23,3 +23,12 @@ automatically executed):
make
make install
+Building on OSX with homebrew:
+------------------------------
+
+Have the following packages installed:
+autoconf pkg-config readline automake gettext glib intltool libtool
+
+Run autogen like this:
+PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/ ./autogen.sh
+
diff --git a/aclocal.m4 b/aclocal.m4
index 63befff..0c6c8e8 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,8 +14,8 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(AC_AUTOCONF_VERSION, [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -260,6 +261,10 @@ msgstr ""
[CATOBJEXT=.mo
DATADIRNAME=lib])
;;
+ *-*-openbsd*)
+ CATOBJEXT=.mo
+ DATADIRNAME=share
+ ;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
@@ -301,7 +306,7 @@ msgstr ""
dnl These rules are solely for the distribution goal. While doing this
dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
+ dnl in configure.ac.
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
@@ -374,6 +379,18 @@ glib_DEFUN([GLIB_GNU_GETTEXT],
fi
fi
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
dnl Generate list of files to be processed by xgettext which will
dnl be included in po/Makefile.
test -d po || mkdir po
@@ -418,7 +435,7 @@ AC_DEFINE_UNQUOTED($1, "$localedir",
dnl
dnl Now the definitions that aclocal will find
dnl
-ifdef(glib_configure_in,[],[
+ifdef(glib_configure_ac,[],[
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
])dnl
@@ -441,6 +458,7 @@ fi])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
#
@@ -467,8 +485,12 @@ fi])
# ----------------------------------
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
-AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
@@ -481,7 +503,6 @@ if test -n "$PKG_CONFIG"; then
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
-
fi[]dnl
])# PKG_PROG_PKG_CONFIG
@@ -490,21 +511,20 @@ fi[]dnl
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
-#
-# Similar to PKG_CHECK_MODULES, make sure that the first instance of
-# this or PKG_CHECK_MODULES is called, or make sure to call
-# PKG_CHECK_EXISTS manually
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
- m4_ifval([$2], [$2], [:])
+ m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
-
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
m4_define([_PKG_CONFIG],
@@ -512,7 +532,8 @@ m4_define([_PKG_CONFIG],
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
[pkg_failed=yes])
else
pkg_failed=untried
@@ -557,16 +578,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
- ifelse([$4], , [AC_MSG_ERROR(dnl
+ m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@@ -574,44 +596,46 @@ $$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-_PKG_TEXT
-])],
- [AC_MSG_RESULT([no])
- $4])
+_PKG_TEXT])[]dnl
+ ])
elif test $pkg_failed = untried; then
- ifelse([$4], , [AC_MSG_FAILURE(dnl
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
- [$4])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
- ifelse([$3], , :, [$3])
+ $3
fi[]dnl
])# PKG_CHECK_MODULES
-# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.10'
+[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.10.1], [],
+m4_if([$1], [1.11.6], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -625,21 +649,23 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -687,14 +713,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 8
+# serial 9
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
@@ -707,6 +733,7 @@ AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
@@ -720,14 +747,14 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 9
+# serial 12
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -767,6 +794,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -784,6 +812,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
@@ -801,7 +839,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
@@ -811,19 +859,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
break
fi
;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
none) break ;;
esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
@@ -872,65 +924,79 @@ AC_DEFUN([AM_DEP_TRACK],
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-#serial 3
+#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
done
-done
+}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
@@ -950,13 +1016,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008 Free Software Foundation, Inc.
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 13
+# serial 16
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
@@ -973,7 +1039,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.60])dnl
+[AC_PREREQ([2.62])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -1024,8 +1090,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
@@ -1033,24 +1099,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
@@ -1073,18 +1152,28 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
@@ -1111,27 +1200,38 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
+# serial 5
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
(and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
+ AC_SUBST([MAINT])dnl
]
)
@@ -1139,13 +1239,13 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
+# serial 4
# AM_MAKE_INCLUDE()
# -----------------
@@ -1154,7 +1254,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
- @echo done
+ @echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
@@ -1164,24 +1264,24 @@ am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
@@ -1191,14 +1291,14 @@ rm -f confinc confmf
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 5
+# serial 6
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
@@ -1215,7 +1315,14 @@ AC_SUBST($1)])
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
@@ -1225,12 +1332,15 @@ else
fi
])
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
@@ -1253,13 +1363,14 @@ esac
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
+# serial 5
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -1267,16 +1378,16 @@ AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
@@ -1284,12 +1395,14 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_RUN_LOG(COMMAND)
# -------------------
# Run COMMAND, save the exit status in ac_status, and log it.
@@ -1303,14 +1416,14 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
+# serial 5
# AM_SANITY_CHECK
# ---------------
@@ -1319,16 +1432,29 @@ AC_DEFUN([AM_SANITY_CHECK],
# Just in case
sleep 1
echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
+ set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -1353,12 +1479,14 @@ Check your system clock])
fi
AC_MSG_RESULT(yes)])
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
@@ -1381,21 +1509,28 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 3
+
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1417,10 +1552,11 @@ AC_DEFUN([_AM_SUBST_NOTMAKE])
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
diff --git a/asn1view/Makefile.in b/asn1view/Makefile.in
index 6c72fc5..3054bb6 100644
--- a/asn1view/Makefile.in
+++ b/asn1view/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,8 +58,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -50,12 +70,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -116,6 +169,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -129,9 +183,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -209,14 +266,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu asn1view/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu asn1view/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -234,6 +291,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -242,7 +300,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -259,7 +317,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -267,7 +325,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -293,16 +351,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -310,14 +368,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -329,7 +387,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -338,29 +396,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -381,29 +444,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -423,16 +498,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -451,6 +532,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -459,18 +542,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -491,8 +584,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -507,6 +600,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/asn1view/art/Makefile.in b/asn1view/art/Makefile.in
index 38e20f3..152c44b 100644
--- a/asn1view/art/Makefile.in
+++ b/asn1view/art/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -201,14 +230,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/art/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu asn1view/art/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/art/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu asn1view/art/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -226,6 +255,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -249,13 +279,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -273,16 +307,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -301,6 +341,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -309,18 +351,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -353,6 +405,7 @@ uninstall-am:
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/asn1view/common/Makefile.in b/asn1view/common/Makefile.in
index a28f2f0..68a5016 100644
--- a/asn1view/common/Makefile.in
+++ b/asn1view/common/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -201,14 +230,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/common/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu asn1view/common/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/common/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu asn1view/common/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -226,6 +255,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -249,13 +279,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -273,16 +307,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -301,6 +341,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -309,18 +351,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -353,6 +405,7 @@ uninstall-am:
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/asn1view/gtk/Makefile.in b/asn1view/gtk/Makefile.in
index 56f3b7d..70d4fea 100644
--- a/asn1view/gtk/Makefile.in
+++ b/asn1view/gtk/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,14 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(gasnviewdir)" "$(DESTDIR)$(scriptdir)"
-gasnviewSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-scriptSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(gasnview_SCRIPTS) $(script_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -108,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -121,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -240,14 +294,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/gtk/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu asn1view/gtk/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu asn1view/gtk/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu asn1view/gtk/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -265,44 +319,77 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-gasnviewSCRIPTS: $(gasnview_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(gasnviewdir)" || $(MKDIR_P) "$(DESTDIR)$(gasnviewdir)"
- @list='$(gasnview_SCRIPTS)'; for p in $$list; do \
+ @list='$(gasnview_SCRIPTS)'; test -n "$(gasnviewdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gasnviewdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gasnviewdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(gasnviewSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(gasnviewdir)/$$f'"; \
- $(gasnviewSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(gasnviewdir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(gasnviewdir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(gasnviewdir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-gasnviewSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(gasnview_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(gasnviewdir)/$$f'"; \
- rm -f "$(DESTDIR)$(gasnviewdir)/$$f"; \
- done
+ @list='$(gasnview_SCRIPTS)'; test -n "$(gasnviewdir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(gasnviewdir)'; $(am__uninstall_files_from_dir)
install-scriptSCRIPTS: $(script_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(scriptdir)" || $(MKDIR_P) "$(DESTDIR)$(scriptdir)"
- @list='$(script_SCRIPTS)'; for p in $$list; do \
+ @list='$(script_SCRIPTS)'; test -n "$(scriptdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(scriptdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(scriptdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(scriptSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(scriptdir)/$$f'"; \
- $(scriptSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(scriptdir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(scriptdir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(scriptdir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-scriptSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(script_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(scriptdir)/$$f'"; \
- rm -f "$(DESTDIR)$(scriptdir)/$$f"; \
- done
+ @list='$(script_SCRIPTS)'; test -n "$(scriptdir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(scriptdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -326,13 +413,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -353,10 +444,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -364,6 +460,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -382,6 +479,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -390,18 +489,28 @@ install-data-am: install-gasnviewSCRIPTS install-scriptSCRIPTS
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -444,6 +553,7 @@ uninstall-am: uninstall-gasnviewSCRIPTS uninstall-scriptSCRIPTS
@ENABLE_GNOME_TRUE@ $(REWRITE) $(srcdir)/script.in > $@.tmp
@ENABLE_GNOME_TRUE@ mv $@.tmp $@
@ENABLE_GNOME_FALSE at all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/config.guess b/config.guess
index e6b5d5b..d622a44 100755
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
-timestamp='2008-01-08'
+timestamp='2012-02-10'
# 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
@@ -17,9 +17,7 @@ timestamp='2008-01-08'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -27,16 +25,16 @@ timestamp='2008-01-08'
# the same distribution terms that you use for the rest of that program.
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <config-patches at gnu.org> and include a ChangeLog
+# entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# 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
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -56,8 +54,9 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+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."
@@ -139,22 +138,12 @@ 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_MACHINE}" in
- i?86)
- test -z "$VENDOR" && VENDOR=pc
- ;;
- *)
- test -z "$VENDOR" && VENDOR=unknown
- ;;
-esac
-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
-
# 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 tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # 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
@@ -180,7 +169,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -190,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -233,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -279,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# 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'`
- exit ;;
+ # 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
@@ -305,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
+ echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
@@ -334,14 +326,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
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.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 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
@@ -385,23 +396,23 @@ 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}
- exit ;;
+ 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}
- exit ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@@ -471,8 +482,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # 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 ] || \
@@ -485,7 +496,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@@ -542,7 +553,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[456])
+ *: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
@@ -585,52 +596,52 @@ EOF
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" ;;
+ 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
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ 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);
- }
+ 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
@@ -650,7 +661,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -721,22 +732,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@@ -760,14 +771,14 @@ EOF
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 ;;
+ 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}"
+ 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}
@@ -779,13 +790,12 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
@@ -794,19 +804,22 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- *:Interix*:[3456]*)
- case ${UNAME_MACHINE} in
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T | authenticamd)
+ authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@@ -816,6 +829,9 @@ EOF
[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
@@ -845,201 +861,144 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 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="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${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}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
else
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
frv:Linux:*:*)
- echo frv-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- mips:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips
- #undef mipsel
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
- echo or32-${VENDOR}-linux-gnu
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-${VENDOR}-linux-gnu
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
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 ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
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-${VENDOR}-linux-gnu ;;
- PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
- *) echo hppa-${VENDOR}-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-${VENDOR}-linux-gnu
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
x86_64:Linux:*:*)
- echo x86_64-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuaout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-${VENDOR}-linux-gnucoff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuoldld"
- exit ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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
@@ -1047,11 +1006,11 @@ EOF
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,
+ # 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.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@@ -1068,7 +1027,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1083,7 +1042,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@@ -1111,10 +1070,13 @@ EOF
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 i386.
- echo i386-pc-msdosdjgpp
- exit ;;
+ # 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
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@@ -1149,8 +1111,18 @@ EOF
/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; } ;;
+ /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 ;;
@@ -1163,7 +1135,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1183,10 +1155,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel at ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel at ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes at openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -1212,11 +1184,11 @@ EOF
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 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@@ -1226,6 +1198,9 @@ EOF
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 ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1253,6 +1228,16 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ 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
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1268,6 +1253,9 @@ EOF
*: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 ;;
@@ -1313,13 +1301,13 @@ 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/[-(].*//'`
exit ;;
*:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1334,6 +1322,12 @@ EOF
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 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1356,11 +1350,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
@@ -1494,9 +1488,9 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
and
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/config.sub b/config.sub
index 6759825..6205f84 100755
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
-timestamp='2008-01-16'
+timestamp='2012-04-18'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -21,9 +21,7 @@ timestamp='2008-01-16'
# 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -32,13 +30,16 @@ timestamp='2008-01-16'
# Please send patches to <config-patches at gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
#
# 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:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# 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.
@@ -72,8 +73,9 @@ Report bugs and patches to <config-patches at gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+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."
@@ -120,12 +122,18 @@ esac
# 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-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ 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 ]
@@ -148,10 +156,13 @@ case $os in
-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)
+ -apple | -axis | -knuth | -cray | -microblaze)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -166,10 +177,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
@@ -214,6 +225,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -238,24 +255,32 @@ case $basic_machine in
# 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 | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
+ | epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | le32 | le64 \
+ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep \
+ | maxq | mb | microblaze | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
- | mips64vr | mips64vrel \
+ | mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
@@ -268,29 +293,42 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | moxie \
| mt \
| msp430 \
+ | nds32 | nds32le | nds32be \
| nios | nios2 \
| ns16k | ns32k \
+ | open8 \
| or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | rl78 | rx \
| score \
- | sh | sh[1234] | sh[24]a | 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[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -300,6 +338,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ 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.
@@ -314,29 +367,36 @@ case $basic_machine in
# 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-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| 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-* \
| ip2k-* | iq2000-* \
+ | le32-* | le64-* \
+ | lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
+ | mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
@@ -351,27 +411,32 @@ case $basic_machine in
| mmix-* \
| mt-* \
| msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | 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-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
| tron-* \
- | v850-* | v850e-* | vax-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
- | z8k-*)
+ | z8k-* | z80-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
@@ -393,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -439,6 +504,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-bsd
;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -455,10 +524,27 @@ case $basic_machine in
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=-unicos
;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -487,7 +573,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16)
+ cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
@@ -526,6 +612,10 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
@@ -641,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -699,6 +788,9 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
mingw32)
basic_machine=i386-pc
os=-mingw32
@@ -735,10 +827,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
+ msys)
+ basic_machine=i386-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -803,6 +903,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -885,9 +991,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -981,6 +1088,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1037,20 +1147,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
- ;;
tile*)
- basic_machine=tile-unknown
+ basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@@ -1120,6 +1218,9 @@ case $basic_machine in
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
@@ -1128,6 +1229,10 @@ case $basic_machine in
basic_machine=z8k-unknown
os=-sim
;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
none)
basic_machine=none-none
os=-none
@@ -1166,7 +1271,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ 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)
@@ -1213,9 +1318,12 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # 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.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1236,10 +1344,11 @@ case $os in
# 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* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
+ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1248,9 +1357,10 @@ case $os in
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1258,7 +1368,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1297,7 +1407,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1346,7 +1456,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1388,6 +1498,11 @@ case $os in
-zvmoe)
os=-zvmoe
;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
-none)
;;
*)
@@ -1410,10 +1525,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
@@ -1425,8 +1540,20 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1446,14 +1573,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
@@ -1480,7 +1604,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
@@ -1585,7 +1709,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
diff --git a/configure b/configure
index 33575ab..fa0cd59 100755
--- a/configure
+++ b/configure
@@ -1,18 +1,20 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for mono-tools 2.10.
+# Generated by GNU Autoconf 2.69 for mono-tools 2.11.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -20,23 +22,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
esac
-
fi
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
as_nl='
'
export as_nl
@@ -44,7 +38,13 @@ export as_nl
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
@@ -55,7 +55,7 @@ else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
- case $arg in
+ case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -78,13 +78,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
}
fi
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
@@ -94,15 +87,16 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
IFS=$as_save_IFS
;;
@@ -114,12 +108,16 @@ if test "x$as_myself" = x; then
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
+ exit 1
fi
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
@@ -131,7 +129,293 @@ export LC_ALL
LANGUAGE=C
export LANGUAGE
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
@@ -145,8 +429,12 @@ else
as_basename=false
fi
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
-# Name of the executable.
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
@@ -166,437 +454,133 @@ $as_echo X/"$0" |
}
s/.*/./; q'`
-# CDPATH.
-$as_unset CDPATH
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
-if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
-else
- as_have_required=no
-fi
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
- if test $as_have_required = yes && (eval ":
-(as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
}
-exitcode=0
-if as_func_success; then
- :
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
else
- exitcode=1
- echo as_func_success failed.
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
-if as_func_ret_success; then
- :
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
else
- exitcode=1
- echo as_func_ret_success failed.
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
fi
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-test \$exitcode = 0) || { (exit 1); exit 1; }
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-(
- as_lineno_1=\$LINENO
- as_lineno_2=\$LINENO
- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
- :
-else
- as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- case $as_dir in
- /*)
- for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
- done;;
- esac
-done
-IFS=$as_save_IFS
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
- for as_shell in $as_candidate_shells $SHELL; do
- # Try only shells that exist, to save several forks.
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-fi
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
-
-:
-_ASEOF
-}; then
- CONFIG_SHELL=$as_shell
- as_have_required=yes
- if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
- (exit $1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
- break
-fi
-
-fi
-
- done
-
- if test "x$CONFIG_SHELL" != x; then
- for as_var in BASH_ENV ENV
- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- done
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
- if test $as_have_required = no; then
- echo This script requires a shell more modern than all the
- echo shells that I found on your system. Please install a
- echo modern shell, or manually run the script under such a
- echo shell if you do have one.
- { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
- echo No shell found that supports shell functions.
- echo Please tell bug-autoconf at gnu.org about your system,
- echo including any error possibly output before this message.
- echo This can help us improve future autoconf versions.
- echo Configuration will now proceed without shell functions.
-}
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME='mono-tools'
-PACKAGE_TARNAME='mono-tools'
-PACKAGE_VERSION='2.10'
-PACKAGE_STRING='mono-tools 2.10'
-PACKAGE_BUGREPORT=''
+# Identity of this package.
+PACKAGE_NAME='mono-tools'
+PACKAGE_TARNAME='mono-tools'
+PACKAGE_VERSION='2.11'
+PACKAGE_STRING='mono-tools 2.11'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
ac_unique_file="README"
# Factoring default headers for most tests.
@@ -635,11 +619,14 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
LIBOBJS
GENDARME_VERSION
TOOLS_VERSION
GNUNIT_VERSION
+MKINSTALLDIRS
POSUB
POFILES
PO_IN_DATADIR_FALSE
@@ -661,6 +648,7 @@ CPP
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
+am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
@@ -709,6 +697,8 @@ MONODOC_LIBS
MONODOC_CFLAGS
NUNIT_LIBS
NUNIT_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
PKG_CONFIG
RESGEN
DMCS_PRESENT_FALSE
@@ -787,6 +777,7 @@ bindir
program_transform_name
prefix
exec_prefix
+PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
@@ -806,6 +797,8 @@ enable_dependency_tracking
host_alias
target_alias
PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
NUNIT_CFLAGS
NUNIT_LIBS
MONODOC_CFLAGS
@@ -888,8 +881,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -934,8 +928,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -961,8 +954,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1166,8 +1158,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1183,8 +1174,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1214,17 +1204,17 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1233,7 +1223,7 @@ Try \`$0 --help' for more information." >&2
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@@ -1241,15 +1231,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { $as_echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
- { (exit 1); exit 1; }; } ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1272,8 +1260,7 @@ do
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1287,8 +1274,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1303,11 +1288,9 @@ test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- { $as_echo "$as_me: error: working directory cannot be determined" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1346,13 +1329,11 @@ else
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1378,7 +1359,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mono-tools 2.10 to adapt to many kinds of systems.
+\`configure' configures mono-tools 2.11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1392,7 +1373,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1449,7 +1430,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mono-tools 2.10:";;
+ short | recursive ) echo "Configuration of mono-tools 2.11:";;
esac
cat <<\_ACEOF
@@ -1459,13 +1440,17 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
- --enable-debug Use 'DEBUG' Configuration default=YES
- --enable-release Use 'RELEASE' Configuration default=NO
+ --enable-debug Use 'DEBUG' Configuration [default=YES]
+ --enable-release Use 'RELEASE' Configuration [default=NO]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
Some influential environment variables:
PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
NUNIT_CFLAGS
C compiler flags for NUNIT, overriding pkg-config
NUNIT_LIBS linker flags for NUNIT, overriding pkg-config
@@ -1498,13 +1483,14 @@ Some influential environment variables:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
+Report bugs to the package provider.
_ACEOF
ac_status=$?
fi
@@ -1567,59 +1553,410 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mono-tools configure 2.10
-generated by GNU Autoconf 2.63
+mono-tools configure 2.11
+generated by GNU Autoconf 2.69
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mono-tools $as_me 2.10, which was
-generated by GNU Autoconf 2.63. Invocation command line was
- $ $0 $@
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
-_ACEOF
-exec 5>>config.log
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 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`
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+} # ac_fn_c_try_compile
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
-_ASUNAME
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by mono-tools $as_me 2.11, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 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 || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
-done
+ $as_echo "PATH: $as_dir"
+ done
IFS=$as_save_IFS
} >&5
@@ -1656,9 +1993,9 @@ do
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
@@ -1674,13 +2011,13 @@ do
-* ) ac_must_keep_next=true ;;
esac
fi
- ac_configure_args="$ac_configure_args '$ac_arg'"
+ as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
@@ -1692,11 +2029,9 @@ trap 'exit_status=$?
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -1705,13 +2040,13 @@ _ASBOX
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) $as_unset $ac_var ;;
+ *) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
@@ -1730,11 +2065,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -1747,11 +2080,9 @@ _ASBOX
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -1765,11 +2096,9 @@ _ASBOX
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -1783,46 +2112,53 @@ _ASBOX
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
+$as_echo "/* confdefs.h */" > confdefs.h
+
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -1833,19 +2169,23 @@ fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
- if test -r "$ac_site_file"; then
- { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -1853,7 +2193,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -1868,11 +2208,11 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
@@ -1882,17 +2222,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
@@ -1904,43 +2244,20 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -1967,9 +2284,7 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
fi
done
if test -z "$ac_aux_dir"; then
- { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -1983,35 +2298,27 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
- { (exit 1); exit 1; }; };;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -2027,28 +2334,24 @@ IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
- { (exit 1); exit 1; }; };;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -2064,28 +2367,24 @@ IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:$LINENO: checking target system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
$as_echo_n "checking target system type... " >&6; }
-if test "${ac_cv_target+set}" = set; then
+if ${ac_cv_target+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$target_alias" = x; then
ac_cv_target=$ac_cv_host
else
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
- { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
$as_echo "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-$as_echo "$as_me: error: invalid value of canonical target" >&2;}
- { (exit 1); exit 1; }; };;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
@@ -2107,7 +2406,8 @@ test -n "$target_alias" &&
test "$program_prefix$program_suffix$program_transform_name" = \
NONENONEs,x,x, &&
program_prefix=${target_alias}-
-am__api_version='1.10'
+
+am__api_version='1.11'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -2123,10 +2423,10 @@ am__api_version='1.10'
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2134,11 +2434,11 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
@@ -2146,7 +2446,7 @@ case $as_dir/ in
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -2175,7 +2475,7 @@ case $as_dir/ in
;;
esac
-done
+ done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
@@ -2191,7 +2491,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2202,21 +2502,34 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
$as_echo_n "checking whether build environment is sane... " >&6; }
# Just in case
sleep 1
echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
+ set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$*" != "X $srcdir/configure conftest.file" \
@@ -2226,11 +2539,8 @@ if (
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
- { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
fi
test "$2" = conftest.file
@@ -2239,13 +2549,10 @@ then
# Ok.
:
else
- { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
@@ -2260,44 +2567,161 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
- { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
done
+ done
IFS=$as_save_IFS
fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+fi
+
+ test -d ./--version && rmdir ./--version
if test "${ac_cv_path_mkdir+set}" = set; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
@@ -2305,11 +2729,10 @@ fi
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
- test -d ./--version && rmdir ./--version
MKDIR_P="$ac_install_sh -d"
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
$as_echo "$MKDIR_P" >&6; }
mkdir_p="$MKDIR_P"
@@ -2322,9 +2745,9 @@ for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@@ -2335,24 +2758,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2360,11 +2783,11 @@ fi
test -n "$AWK" && break
done
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -2372,7 +2795,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2382,11 +2805,11 @@ esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -2406,9 +2829,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
- { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
@@ -2424,7 +2845,7 @@ fi
# Define the identity of the package.
PACKAGE='mono-tools'
- VERSION='2.10'
+ VERSION='2.11'
cat >>confdefs.h <<_ACEOF
@@ -2452,116 +2873,14 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
-{ $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
$as_echo_n "checking how to create a ustar tar archive... " >&6; }
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar plaintar pax cpio none'
@@ -2634,29 +2953,30 @@ do
done
rm -rf conftest.dir
-if test "${am_cv_prog_tar_ustar+set}" = set; then
+if ${am_cv_prog_tar_ustar+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_prog_tar_ustar=$_am_tool
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
$as_echo "$am_cv_prog_tar_ustar" >&6; }
-{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
# Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
+if test "${enable_maintainer_mode+set}" = set; then :
enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
else
USE_MAINTAINER_MODE=no
fi
- { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
$as_echo "$USE_MAINTAINER_MODE" >&6; }
if test $USE_MAINTAINER_MODE = yes; then
MAINTAINER_MODE_TRUE=
@@ -2670,149 +2990,57 @@ fi
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+
+
+#capture aclocal flags for autoreconf
+
+
+# Extract the first word of "mcs", so it can be a program name with args.
+set dummy mcs; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MCS+:} false; then :
$as_echo_n "(cached) " >&6
else
+ case $MCS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
+ ;;
+ *)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
done
+ done
IFS=$as_save_IFS
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-#capture aclocal flags for autoreconf
-
-
-# Extract the first word of "mcs", so it can be a program name with args.
-set dummy mcs; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MCS+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- case $MCS in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no"
- ;;
-esac
+ test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no"
+ ;;
+esac
fi
MCS=$ac_cv_path_MCS
if test -n "$MCS"; then
- { $as_echo "$as_me:$LINENO: result: $MCS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5
$as_echo "$MCS" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "gmcs", so it can be a program name with args.
set dummy gmcs; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMCS+set}" = set; then
+if ${ac_cv_path_GMCS+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMCS in
@@ -2825,14 +3053,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMCS="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_GMCS" && ac_cv_path_GMCS="no"
@@ -2841,19 +3069,19 @@ esac
fi
GMCS=$ac_cv_path_GMCS
if test -n "$GMCS"; then
- { $as_echo "$as_me:$LINENO: result: $GMCS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMCS" >&5
$as_echo "$GMCS" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "dmcs", so it can be a program name with args.
set dummy dmcs; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_DMCS+set}" = set; then
+if ${ac_cv_path_DMCS+:} false; then :
$as_echo_n "(cached) " >&6
else
case $DMCS in
@@ -2866,14 +3094,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_DMCS="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_DMCS" && ac_cv_path_DMCS="no"
@@ -2882,19 +3110,19 @@ esac
fi
DMCS=$ac_cv_path_DMCS
if test -n "$DMCS"; then
- { $as_echo "$as_me:$LINENO: result: $DMCS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DMCS" >&5
$as_echo "$DMCS" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "mono", so it can be a program name with args.
set dummy mono; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RUNTIME+set}" = set; then
+if ${ac_cv_path_RUNTIME+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RUNTIME in
@@ -2907,14 +3135,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_RUNTIME="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_RUNTIME" && ac_cv_path_RUNTIME="no"
@@ -2923,19 +3151,19 @@ esac
fi
RUNTIME=$ac_cv_path_RUNTIME
if test -n "$RUNTIME"; then
- { $as_echo "$as_me:$LINENO: result: $RUNTIME" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNTIME" >&5
$as_echo "$RUNTIME" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "gacutil", so it can be a program name with args.
set dummy gacutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GACUTIL+set}" = set; then
+if ${ac_cv_path_GACUTIL+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GACUTIL in
@@ -2948,14 +3176,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GACUTIL="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_GACUTIL" && ac_cv_path_GACUTIL="no"
@@ -2964,10 +3192,10 @@ esac
fi
GACUTIL=$ac_cv_path_GACUTIL
if test -n "$GACUTIL"; then
- { $as_echo "$as_me:$LINENO: result: $GACUTIL" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GACUTIL" >&5
$as_echo "$GACUTIL" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2975,9 +3203,7 @@ fi
CS="C#"
if test "x$MCS" = "xno" ; then
- { { $as_echo "$as_me:$LINENO: error: No $CS compiler found" >&5
-$as_echo "$as_me: error: No $CS compiler found" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "No $CS compiler found" "$LINENO" 5
fi
if test ! "x$DMCS" = "xno"; then
@@ -2990,16 +3216,14 @@ fi
if test "x$RUNTIME" = "xno" ; then
- { { $as_echo "$as_me:$LINENO: error: No runtime found" >&5
-$as_echo "$as_me: error: No runtime found" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "No runtime found" "$LINENO" 5
fi
# Extract the first word of "resgen", so it can be a program name with args.
set dummy resgen; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RESGEN+set}" = set; then
+if ${ac_cv_path_RESGEN+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RESGEN in
@@ -3012,14 +3236,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_RESGEN="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_RESGEN" && ac_cv_path_RESGEN="no"
@@ -3028,18 +3252,16 @@ esac
fi
RESGEN=$ac_cv_path_RESGEN
if test -n "$RESGEN"; then
- { $as_echo "$as_me:$LINENO: result: $RESGEN" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RESGEN" >&5
$as_echo "$RESGEN" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$RESGEN" = "xno" ; then
- { { $as_echo "$as_me:$LINENO: error: resgen not found in $PATH" >&5
-$as_echo "$as_me: error: resgen not found in $PATH" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "resgen not found in $PATH" "$LINENO" 5
fi
@@ -3052,13 +3274,18 @@ fi
+
+
+
+
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
@@ -3071,14 +3298,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
;;
@@ -3086,10 +3313,10 @@ esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
$as_echo "$PKG_CONFIG" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -3099,9 +3326,9 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
@@ -3114,14 +3341,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
;;
@@ -3129,10 +3356,10 @@ esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -3141,7 +3368,7 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
@@ -3154,33 +3381,33 @@ fi
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
- { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
PKG_CONFIG=""
fi
-
fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for NUNIT" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5
$as_echo_n "checking for NUNIT... " >&6; }
if test -n "$NUNIT_CFLAGS"; then
pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mono-nunit\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit\""; } >&5
($PKG_CONFIG --exists --print-errors "mono-nunit") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "mono-nunit" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3191,12 +3418,13 @@ if test -n "$NUNIT_LIBS"; then
pkg_cv_NUNIT_LIBS="$NUNIT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mono-nunit\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit\""; } >&5
($PKG_CONFIG --exists --print-errors "mono-nunit") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "mono-nunit" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3207,6 +3435,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3214,25 +3444,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono-nunit" 2>&1`
+ NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono-nunit" 2>&1`
else
- NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono-nunit" 2>&1`
+ NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono-nunit" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$NUNIT_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (mono-nunit) were not met:
-
-$NUNIT_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables NUNIT_CFLAGS
-and NUNIT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (mono-nunit) were not met:
+ as_fn_error $? "Package requirements (mono-nunit) were not met:
$NUNIT_PKG_ERRORS
@@ -3241,23 +3460,13 @@ installed software in a non-standard prefix.
Alternatively, you may set the environment variables NUNIT_CFLAGS
and NUNIT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
+See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables NUNIT_CFLAGS
-and NUNIT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -3266,32 +3475,32 @@ and NUNIT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+See \`config.log' for more details" "$LINENO" 5; }
else
NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS
NUNIT_LIBS=$pkg_cv_NUNIT_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- :
+
fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for MONODOC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONODOC" >&5
$as_echo_n "checking for MONODOC... " >&6; }
if test -n "$MONODOC_CFLAGS"; then
pkg_cv_MONODOC_CFLAGS="$MONODOC_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"monodoc\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"monodoc\""; } >&5
($PKG_CONFIG --exists --print-errors "monodoc") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_MONODOC_CFLAGS=`$PKG_CONFIG --cflags "monodoc" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3302,12 +3511,13 @@ if test -n "$MONODOC_LIBS"; then
pkg_cv_MONODOC_LIBS="$MONODOC_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"monodoc\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"monodoc\""; } >&5
($PKG_CONFIG --exists --print-errors "monodoc") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_MONODOC_LIBS=`$PKG_CONFIG --libs "monodoc" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3318,6 +3528,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3325,25 +3537,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- MONODOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "monodoc" 2>&1`
+ MONODOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "monodoc" 2>&1`
else
- MONODOC_PKG_ERRORS=`$PKG_CONFIG --print-errors "monodoc" 2>&1`
+ MONODOC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "monodoc" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$MONODOC_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (monodoc) were not met:
-
-$MONODOC_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables MONODOC_CFLAGS
-and MONODOC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (monodoc) were not met:
+ as_fn_error $? "Package requirements (monodoc) were not met:
$MONODOC_PKG_ERRORS
@@ -3352,23 +3553,13 @@ installed software in a non-standard prefix.
Alternatively, you may set the environment variables MONODOC_CFLAGS
and MONODOC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
+See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MONODOC_CFLAGS
-and MONODOC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -3377,21 +3568,20 @@ and MONODOC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+See \`config.log' for more details" "$LINENO" 5; }
else
MONODOC_CFLAGS=$pkg_cv_MONODOC_CFLAGS
MONODOC_LIBS=$pkg_cv_MONODOC_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- :
+
fi
# Extract the first word of "mdoc", so it can be a program name with args.
set dummy mdoc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MDOC+set}" = set; then
+if ${ac_cv_path_MDOC+:} false; then :
$as_echo_n "(cached) " >&6
else
case $MDOC in
@@ -3404,14 +3594,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_MDOC="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_MDOC" && ac_cv_path_MDOC="no"
@@ -3420,10 +3610,10 @@ esac
fi
MDOC=$ac_cv_path_MDOC
if test -n "$MDOC"; then
- { $as_echo "$as_me:$LINENO: result: $MDOC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MDOC" >&5
$as_echo "$MDOC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -3432,19 +3622,20 @@ fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GTK_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_SHARP" >&5
$as_echo_n "checking for GTK_SHARP... " >&6; }
if test -n "$GTK_SHARP_CFLAGS"; then
pkg_cv_GTK_SHARP_CFLAGS="$GTK_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 glade-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 glade-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 glade-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTK_SHARP_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0 glade-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3455,12 +3646,13 @@ if test -n "$GTK_SHARP_LIBS"; then
pkg_cv_GTK_SHARP_LIBS="$GTK_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 glade-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 glade-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 glade-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTK_SHARP_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0 glade-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3471,6 +3663,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3478,25 +3672,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0 glade-sharp-2.0" 2>&1`
+ GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0 glade-sharp-2.0" 2>&1`
else
- GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0 glade-sharp-2.0" 2>&1`
+ GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0 glade-sharp-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTK_SHARP_PKG_ERRORS" >&5
- { { $as_echo "$as_me:$LINENO: error: Package requirements (gtk-sharp-2.0 glade-sharp-2.0) were not met:
-
-$GTK_SHARP_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTK_SHARP_CFLAGS
-and GTK_SHARP_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-$as_echo "$as_me: error: Package requirements (gtk-sharp-2.0 glade-sharp-2.0) were not met:
+ as_fn_error $? "Package requirements (gtk-sharp-2.0 glade-sharp-2.0) were not met:
$GTK_SHARP_PKG_ERRORS
@@ -3505,23 +3688,13 @@ installed software in a non-standard prefix.
Alternatively, you may set the environment variables GTK_SHARP_CFLAGS
and GTK_SHARP_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
+See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTK_SHARP_CFLAGS
-and GTK_SHARP_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -3530,14 +3703,13 @@ and GTK_SHARP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+See \`config.log' for more details" "$LINENO" 5; }
else
GTK_SHARP_CFLAGS=$pkg_cv_GTK_SHARP_CFLAGS
GTK_SHARP_LIBS=$pkg_cv_GTK_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- :
+
fi
@@ -3545,19 +3717,20 @@ CSHARP_FLAGS=""
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GNOME_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNOME_SHARP" >&5
$as_echo_n "checking for GNOME_SHARP... " >&6; }
if test -n "$GNOME_SHARP_CFLAGS"; then
pkg_cv_GNOME_SHARP_CFLAGS="$GNOME_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-sharp-2.0 gconf-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-sharp-2.0 gconf-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gnome-sharp-2.0 gconf-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GNOME_SHARP_CFLAGS=`$PKG_CONFIG --cflags "gnome-sharp-2.0 gconf-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3568,12 +3741,13 @@ if test -n "$GNOME_SHARP_LIBS"; then
pkg_cv_GNOME_SHARP_LIBS="$GNOME_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-sharp-2.0 gconf-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-sharp-2.0 gconf-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gnome-sharp-2.0 gconf-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GNOME_SHARP_LIBS=`$PKG_CONFIG --libs "gnome-sharp-2.0 gconf-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3584,6 +3758,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3591,22 +3767,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GNOME_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-sharp-2.0 gconf-sharp-2.0" 2>&1`
+ GNOME_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnome-sharp-2.0 gconf-sharp-2.0" 2>&1`
else
- GNOME_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-sharp-2.0 gconf-sharp-2.0" 2>&1`
+ GNOME_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnome-sharp-2.0 gconf-sharp-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GNOME_SHARP_PKG_ERRORS" >&5
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- enable_gnome=no
+ enable_gnome=no
elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
enable_gnome=no
else
GNOME_SHARP_CFLAGS=$pkg_cv_GNOME_SHARP_CFLAGS
GNOME_SHARP_LIBS=$pkg_cv_GNOME_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_gnome=yes
fi
@@ -3625,19 +3801,20 @@ fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GTKHTML_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKHTML_SHARP" >&5
$as_echo_n "checking for GTKHTML_SHARP... " >&6; }
if test -n "$GTKHTML_SHARP_CFLAGS"; then
pkg_cv_GTKHTML_SHARP_CFLAGS="$GTKHTML_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-3.14\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-3.14\""; } >&5
($PKG_CONFIG --exists --print-errors "gtkhtml-sharp-3.14") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTKHTML_SHARP_CFLAGS=`$PKG_CONFIG --cflags "gtkhtml-sharp-3.14" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3648,12 +3825,13 @@ if test -n "$GTKHTML_SHARP_LIBS"; then
pkg_cv_GTKHTML_SHARP_LIBS="$GTKHTML_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-3.14\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-3.14\""; } >&5
($PKG_CONFIG --exists --print-errors "gtkhtml-sharp-3.14") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTKHTML_SHARP_LIBS=`$PKG_CONFIG --libs "gtkhtml-sharp-3.14" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3664,6 +3842,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3671,22 +3851,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtkhtml-sharp-3.14" 2>&1`
+ GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkhtml-sharp-3.14" 2>&1`
else
- GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtkhtml-sharp-3.14" 2>&1`
+ GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkhtml-sharp-3.14" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTKHTML_SHARP_PKG_ERRORS" >&5
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- enable_gtkhtml=no
+ enable_gtkhtml=no
elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
enable_gtkhtml=no
else
GTKHTML_SHARP_CFLAGS=$pkg_cv_GTKHTML_SHARP_CFLAGS
GTKHTML_SHARP_LIBS=$pkg_cv_GTKHTML_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_gtkhtml=yes
fi
@@ -3695,19 +3875,20 @@ if test "x$enable_gtkhtml" = "xyes"; then
else
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GTKHTML_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKHTML_SHARP" >&5
$as_echo_n "checking for GTKHTML_SHARP... " >&6; }
if test -n "$GTKHTML_SHARP_CFLAGS"; then
pkg_cv_GTKHTML_SHARP_CFLAGS="$GTKHTML_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtkhtml-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTKHTML_SHARP_CFLAGS=`$PKG_CONFIG --cflags "gtkhtml-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3718,12 +3899,13 @@ if test -n "$GTKHTML_SHARP_LIBS"; then
pkg_cv_GTKHTML_SHARP_LIBS="$GTKHTML_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkhtml-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtkhtml-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GTKHTML_SHARP_LIBS=`$PKG_CONFIG --libs "gtkhtml-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3734,6 +3916,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3741,22 +3925,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtkhtml-sharp-2.0" 2>&1`
+ GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkhtml-sharp-2.0" 2>&1`
else
- GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtkhtml-sharp-2.0" 2>&1`
+ GTKHTML_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkhtml-sharp-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTKHTML_SHARP_PKG_ERRORS" >&5
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- enable_gtkhtml=no
+ enable_gtkhtml=no
elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
enable_gtkhtml=no
else
GTKHTML_SHARP_CFLAGS=$pkg_cv_GTKHTML_SHARP_CFLAGS
GTKHTML_SHARP_LIBS=$pkg_cv_GTKHTML_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_gtkhtml=yes
fi
@@ -3775,19 +3959,20 @@ fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for GECKO_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GECKO_SHARP" >&5
$as_echo_n "checking for GECKO_SHARP... " >&6; }
if test -n "$GECKO_SHARP_CFLAGS"; then
pkg_cv_GECKO_SHARP_CFLAGS="$GECKO_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gecko-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gecko-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gecko-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GECKO_SHARP_CFLAGS=`$PKG_CONFIG --cflags "gecko-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3798,12 +3983,13 @@ if test -n "$GECKO_SHARP_LIBS"; then
pkg_cv_GECKO_SHARP_LIBS="$GECKO_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gecko-sharp-2.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gecko-sharp-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gecko-sharp-2.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_GECKO_SHARP_LIBS=`$PKG_CONFIG --libs "gecko-sharp-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3814,6 +4000,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3821,22 +4009,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GECKO_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gecko-sharp-2.0" 2>&1`
+ GECKO_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gecko-sharp-2.0" 2>&1`
else
- GECKO_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gecko-sharp-2.0" 2>&1`
+ GECKO_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gecko-sharp-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GECKO_SHARP_PKG_ERRORS" >&5
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- enable_gecko=no
+ enable_gecko=no
elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
enable_gecko=no
else
GECKO_SHARP_CFLAGS=$pkg_cv_GECKO_SHARP_CFLAGS
GECKO_SHARP_LIBS=$pkg_cv_GECKO_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_gecko=yes
fi
@@ -3858,19 +4046,20 @@ fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for WEBKIT_SHARP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT_SHARP" >&5
$as_echo_n "checking for WEBKIT_SHARP... " >&6; }
if test -n "$WEBKIT_SHARP_CFLAGS"; then
pkg_cv_WEBKIT_SHARP_CFLAGS="$WEBKIT_SHARP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "webkit-sharp-1.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_WEBKIT_SHARP_CFLAGS=`$PKG_CONFIG --cflags "webkit-sharp-1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3881,12 +4070,13 @@ if test -n "$WEBKIT_SHARP_LIBS"; then
pkg_cv_WEBKIT_SHARP_LIBS="$WEBKIT_SHARP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\"") >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "webkit-sharp-1.0") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
pkg_cv_WEBKIT_SHARP_LIBS=`$PKG_CONFIG --libs "webkit-sharp-1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -3897,6 +4087,8 @@ fi
if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -3904,22 +4096,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "webkit-sharp-1.0" 2>&1`
+ WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1`
else
- WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "webkit-sharp-1.0" 2>&1`
+ WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$WEBKIT_SHARP_PKG_ERRORS" >&5
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- enable_webkit=no
+ enable_webkit=no
elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
enable_webkit=no
else
WEBKIT_SHARP_CFLAGS=$pkg_cv_WEBKIT_SHARP_CFLAGS
WEBKIT_SHARP_LIBS=$pkg_cv_WEBKIT_SHARP_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_webkit=yes
fi
@@ -3936,21 +4128,21 @@ fi
# PKG_CHECK_MODULES(MONOWEBBROWSER, mono-webbrowser, enable_monowebbrowser=yes, enable_monowebbrowser=no)
# AC_SUBST(MONOWEBBROWSER_LIBS)
-{ $as_echo "$as_me:$LINENO: checking for Mono.WebBrowser" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mono.WebBrowser" >&5
$as_echo_n "checking for Mono.WebBrowser... " >&6; }
if test "x$GACUTIL" = "xno"
then
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if test "x$enable_monowebbrowser" = "x" ; then enable_monowebbrowser=no ; fi
else
if $GACUTIL -l Mono.WebBrowser | grep -q "Mono.WebBrowser"
then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
enable_monowebbrowser=yes
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
enable_monowebbrowser=no
fi
@@ -3966,13 +4158,11 @@ fi
if test "x$enable_gtkhtml$enable_gecko$enable_monowebbrowser$enable_webkit" = "xnononono" ; then
- { { $as_echo "$as_me:$LINENO: error: no HTML display found. You need either gtkhtml, gecko, WebKit or Mono.WebBrowser" >&5
-$as_echo "$as_me: error: no HTML display found. You need either gtkhtml, gecko, WebKit or Mono.WebBrowser" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "no HTML display found. You need either gtkhtml, gecko, WebKit or Mono.WebBrowser" "$LINENO" 5
fi
# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
+if test "${enable_debug+set}" = set; then :
enableval=$enable_debug; enable_debug=yes
else
enable_debug=no
@@ -3990,7 +4180,7 @@ if test "x$enable_debug" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
# Check whether --enable-release was given.
-if test "${enable_release+set}" = set; then
+if test "${enable_release+set}" = set; then :
enableval=$enable_release; enable_release=yes
else
enable_release=no
@@ -4030,12 +4220,10 @@ fi
if pkg-config --modversion cecil>/dev/null; then
-{ $as_echo "$as_me:$LINENO: result: \"Found cecil.pc\"" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Found cecil.pc\"" >&5
$as_echo "\"Found cecil.pc\"" >&6; }
else
-{ { $as_echo "$as_me:$LINENO: error: You are missing Cecil (cecil.pc for packageconfig) required for gui-compare and minvoke" >&5
-$as_echo "$as_me: error: You are missing Cecil (cecil.pc for packageconfig) required for gui-compare and minvoke" >&2;}
- { (exit 1); exit 1; }; }
+as_fn_error $? "You are missing Cecil (cecil.pc for packageconfig) required for gui-compare and minvoke" "$LINENO" 5
fi
CECIL_ASM=`pkg-config --variable=Libraries cecil`
@@ -4057,50 +4245,51 @@ ac_config_commands="$ac_config_commands depfiles"
am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
- @echo done
+ @echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
$as_echo_n "checking for style of include used by $am_make... " >&6; }
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
fi
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
$as_echo "$_am_result" >&6; }
rm -f confinc confmf
# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
enableval=$enable_dependency_tracking;
fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
@@ -4119,9 +4308,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -4132,24 +4321,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4159,9 +4348,9 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -4172,24 +4361,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4198,7 +4387,7 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
@@ -4212,9 +4401,9 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -4225,24 +4414,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4252,9 +4441,9 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -4266,18 +4455,18 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
@@ -4296,10 +4485,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4311,9 +4500,9 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -4324,24 +4513,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4355,9 +4544,9 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -4368,24 +4557,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -4398,7 +4587,7 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
@@ -4409,57 +4598,37 @@ fi
fi
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler -v >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4475,8 +4644,8 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
@@ -4492,17 +4661,17 @@ do
done
rm -f $ac_rmfiles
-if { (ac_try="$ac_link_default"
+if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
@@ -4519,7 +4688,7 @@ do
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -4538,84 +4707,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
else
ac_file=''
fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
- $as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
- fi
- fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -4630,91 +4756,134 @@ for ac_file in conftest.exe conftest conftest.*; do
esac
done
else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+#include <stdio.h>
int
main ()
{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4728,37 +4897,16 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
+ ac_compiler_gnu=no
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
@@ -4767,20 +4915,16 @@ else
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4791,35 +4935,11 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- CFLAGS=""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4830,36 +4950,12 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
- ac_c_werror_flag=$ac_save_c_werror_flag
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4870,42 +4966,17 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
@@ -4922,23 +4993,18 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4990,32 +5056,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+ if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
fi
-
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
@@ -5026,17 +5069,19 @@ fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
- { $as_echo "$as_me:$LINENO: result: none needed" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -5046,9 +5091,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -5057,6 +5102,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -5074,6 +5120,11 @@ else
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
@@ -5091,7 +5142,17 @@ else
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
@@ -5101,19 +5162,23 @@ else
break
fi
;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
none) break ;;
esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
@@ -5137,7 +5202,7 @@ else
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
@@ -5158,14 +5223,14 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
@@ -5180,11 +5245,7 @@ do
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include <limits.h>
@@ -5193,78 +5254,34 @@ cat >>conftest.$ac_ext <<_ACEOF
#endif
Syntax error
_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
+else
# Broken: fails on valid input.
continue
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
# Passes both tests.
ac_preproc_ok=:
break
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
break
fi
@@ -5276,7 +5293,7 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
@@ -5287,11 +5304,7 @@ do
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include <limits.h>
@@ -5300,87 +5313,40 @@ cat >>conftest.$ac_ext <<_ACEOF
#endif
Syntax error
_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
+else
# Broken: fails on valid input.
continue
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
# Passes both tests.
ac_preproc_ok=:
break
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -5390,9 +5356,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -5403,10 +5369,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
+ for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -5423,7 +5389,7 @@ case `"$ac_path_GREP" --version 2>&1` in
$as_echo 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
@@ -5438,26 +5404,24 @@ esac
$ac_path_GREP_found && break 3
done
done
-done
+ done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
$as_echo "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5471,10 +5435,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
+ for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -5491,7 +5455,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
$as_echo 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
@@ -5506,12 +5470,10 @@ esac
$ac_path_EGREP_found && break 3
done
done
-done
+ done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -5519,21 +5481,17 @@ fi
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdarg.h>
@@ -5548,48 +5506,23 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_header_stdc=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_stdc=no
+ ac_cv_header_stdc=no
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
else
ac_cv_header_stdc=no
fi
@@ -5599,18 +5532,14 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
+ $EGREP "free" >/dev/null 2>&1; then :
+
else
ac_cv_header_stdc=no
fi
@@ -5620,14 +5549,10 @@ fi
if test $ac_cv_header_stdc = yes; then
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
:
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ctype.h>
#include <stdlib.h>
@@ -5654,118 +5579,33 @@ main ()
return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+ ac_cv_header_stdc=no
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -5776,146 +5616,12 @@ done
-
-for ac_header in locale.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ for ac_header in locale.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
+if test "x$ac_cv_header_locale_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_LOCALE_H 1
_ACEOF
fi
@@ -5923,16 +5629,12 @@ fi
done
if test $ac_cv_header_locale_h = yes; then
- { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then
+if ${am_cv_val_LC_MESSAGES+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <locale.h>
int
@@ -5943,46 +5645,19 @@ return LC_MESSAGES
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
am_cv_val_LC_MESSAGES=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- am_cv_val_LC_MESSAGES=no
+ am_cv_val_LC_MESSAGES=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
$as_echo "$am_cv_val_LC_MESSAGES" >&6; }
if test $am_cv_val_LC_MESSAGES = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LC_MESSAGES 1
-_ACEOF
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
fi
fi
@@ -5995,150 +5670,20 @@ _ACEOF
XGETTEXT=:
INTLLIBS=
- if test "${ac_cv_header_libintl_h+set}" = set; then
- { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
-$as_echo_n "checking for libintl.h... " >&6; }
-if test "${ac_cv_header_libintl_h+set}" = set; then
- $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-$as_echo "$ac_cv_header_libintl_h" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5
-$as_echo_n "checking libintl.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <libintl.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5
-$as_echo_n "checking libintl.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
-$as_echo_n "checking for libintl.h... " >&6; }
-if test "${ac_cv_header_libintl_h+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ac_cv_header_libintl_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-$as_echo "$ac_cv_header_libintl_h" >&6; }
-
-fi
-if test "x$ac_cv_header_libintl_h" = x""yes; then
+ ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
gt_cv_func_dgettext_libintl="no"
libintl_extra_libs=""
#
# First check in libc
#
- { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
$as_echo_n "checking for ngettext in libc... " >&6; }
-if test "${gt_cv_func_ngettext_libc+set}" = set; then
+if ${gt_cv_func_ngettext_libc+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
@@ -6151,54 +5696,25 @@ return !ngettext ("","", 1)
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_ngettext_libc=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- gt_cv_func_ngettext_libc=no
+ gt_cv_func_ngettext_libc=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
$as_echo "$gt_cv_func_ngettext_libc" >&6; }
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
- { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
$as_echo_n "checking for dgettext in libc... " >&6; }
-if test "${gt_cv_func_dgettext_libc+set}" = set; then
+if ${gt_cv_func_dgettext_libc+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
@@ -6211,141 +5727,26 @@ return !dgettext ("","")
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_dgettext_libc=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- gt_cv_func_dgettext_libc=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
-$as_echo "$gt_cv_func_dgettext_libc" >&6; }
- fi
-
- if test "$gt_cv_func_ngettext_libc" = "yes" ; then
-
-for ac_func in bind_textdomain_codeset
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
- eval "$as_ac_var=yes"
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
+else
+ gt_cv_func_dgettext_libc=no
fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
+$as_echo "$gt_cv_func_dgettext_libc" >&6; }
+ fi
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ for ac_func in bind_textdomain_codeset
+do :
+ ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
_ACEOF
fi
@@ -6360,18 +5761,14 @@ done
|| test "$gt_cv_func_ngettext_libc" != "yes" \
|| test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
- { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
$as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
+if ${ac_cv_lib_intl_bindtextdomain+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -6389,55 +5786,26 @@ return bindtextdomain ();
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_bindtextdomain=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_intl_bindtextdomain=no
+ ac_cv_lib_intl_bindtextdomain=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
-if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then
- { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
$as_echo_n "checking for ngettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+if ${ac_cv_lib_intl_ngettext+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -6455,55 +5823,26 @@ return ngettext ();
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_ngettext=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_intl_ngettext=no
+ ac_cv_lib_intl_ngettext=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
-if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
- { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
$as_echo_n "checking for dgettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_dgettext+set}" = set; then
+if ${ac_cv_lib_intl_dgettext+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -6521,43 +5860,18 @@ return dgettext ();
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_dgettext=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_intl_dgettext=no
+ ac_cv_lib_intl_dgettext=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
$as_echo "$ac_cv_lib_intl_dgettext" >&6; }
-if test "x$ac_cv_lib_intl_dgettext" = x""yes; then
+if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
gt_cv_func_dgettext_libintl=yes
fi
@@ -6567,22 +5881,18 @@ fi
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
- { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
$as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
- { $as_echo "$as_me:$LINENO: result: " >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
$as_echo "" >&6; }
- { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
$as_echo_n "checking for ngettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+if ${ac_cv_lib_intl_ngettext+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl -liconv $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -6600,55 +5910,26 @@ return ngettext ();
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_ngettext=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_intl_ngettext=no
+ ac_cv_lib_intl_ngettext=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
-if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
- { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
$as_echo_n "checking for dcgettext in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
+if ${ac_cv_lib_intl_dcgettext+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl -liconv $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -6666,43 +5947,18 @@ return dcgettext ();
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_dcgettext=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_intl_dcgettext=no
+ ac_cv_lib_intl_dcgettext=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
$as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
-if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then
+if test "x$ac_cv_lib_intl_dcgettext" = xyes; then :
gt_cv_func_dgettext_libintl=yes
libintl_extra_libs=-liconv
else
@@ -6724,102 +5980,12 @@ fi
glib_save_LIBS="$LIBS"
LIBS="$LIBS -lintl $libintl_extra_libs"
unset ac_cv_func_bind_textdomain_codeset
-
-for ac_func in bind_textdomain_codeset
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
- eval "$as_ac_var=yes"
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ for ac_func in bind_textdomain_codeset
+do :
+ ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
_ACEOF
fi
@@ -6849,15 +6015,13 @@ done
if test "$gt_cv_have_gettext" = "yes"; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
@@ -6882,118 +6046,28 @@ esac
fi
MSGFMT="$ac_cv_path_MSGFMT"
if test "$MSGFMT" != "no"; then
- { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
$as_echo "$MSGFMT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "$MSGFMT" != "no"; then
glib_save_LIBS="$LIBS"
LIBS="$LIBS $INTLLIBS"
-
-for ac_func in dcgettext
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
- eval "$as_ac_var=yes"
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ for ac_func in dcgettext
+do :
+ ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
+if test "x$ac_cv_func_dcgettext" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_DCGETTEXT 1
_ACEOF
fi
done
MSGFMT_OPTS=
- { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
$as_echo_n "checking if msgfmt accepts -c... " >&6; }
cat >conftest.foo <<_ACEOF
@@ -7008,14 +6082,14 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
_ACEOF
-if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5
+if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
($MSGFMT -c -o /dev/null conftest.foo) 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-else { $as_echo "$as_me:$LINENO: result: no" >&5
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
echo "$as_me: failed input was:" >&5
sed 's/^/| /' conftest.foo >&5
@@ -7023,9 +6097,9 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if ${ac_cv_path_GMSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
@@ -7038,14 +6112,14 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -7054,19 +6128,19 @@ esac
fi
GMSGFMT=$ac_cv_path_GMSGFMT
if test -n "$GMSGFMT"; then
- { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
$as_echo "$GMSGFMT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if ${ac_cv_path_XGETTEXT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
@@ -7091,18 +6165,14 @@ esac
fi
XGETTEXT="$ac_cv_path_XGETTEXT"
if test "$XGETTEXT" != ":"; then
- { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
$as_echo "$XGETTEXT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -7114,121 +6184,14 @@ extern int _nl_msg_cat_cntr;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
+if ac_fn_c_try_link "$LINENO"; then :
CATOBJEXT=.gmo
DATADIRNAME=share
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- case $host in
+ case $host in
*-*-solaris*)
- { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
-$as_echo_n "checking for bind_textdomain_codeset... " >&6; }
-if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char bind_textdomain_codeset (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef bind_textdomain_codeset
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char bind_textdomain_codeset ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
-choke me
-#endif
-
-int
-main ()
-{
-return bind_textdomain_codeset ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
- ac_cv_func_bind_textdomain_codeset=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_bind_textdomain_codeset=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
-$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; }
-if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then
+ ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
CATOBJEXT=.gmo
DATADIRNAME=share
else
@@ -7237,16 +6200,18 @@ else
fi
;;
+ *-*-openbsd*)
+ CATOBJEXT=.mo
+ DATADIRNAME=share
+ ;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
;;
esac
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS="$glib_save_LIBS"
INSTOBJEXT=.mo
else
@@ -7260,9 +6225,7 @@ fi
if test "$gt_cv_have_gettext" = "yes" ; then
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
fi
@@ -7270,7 +6233,7 @@ _ACEOF
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
: ;
else
- { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
XGETTEXT=":"
fi
@@ -7303,7 +6266,7 @@ $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
if test "x$ALL_LINGUAS" = "x"; then
LINGUAS=
else
- { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
$as_echo_n "checking for catalogs to be installed... " >&6; }
NEW_LINGUAS=
for presentlang in $ALL_LINGUAS; do
@@ -7328,7 +6291,7 @@ $as_echo_n "checking for catalogs to be installed... " >&6; }
fi
done
LINGUAS=$NEW_LINGUAS
- { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
$as_echo "$LINGUAS" >&6; }
fi
@@ -7337,6 +6300,15 @@ $as_echo "$LINGUAS" >&6; }
fi
fi
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+
+
test -d po || mkdir po
if test "x$srcdir" != "x."; then
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
@@ -7359,9 +6331,9 @@ for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@@ -7372,24 +6344,24 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -7411,7 +6383,7 @@ TOOLS_VERSION=$($AWK 'BEGIN {
GENDARME_VERSION=$TOOLS_VERSION
-ac_config_files="$ac_config_files Makefile gsharp/Makefile gsharp/gsharp gsharp/gsharp.exe.config gui-compare/Makefile gui-compare/gui-compare minvoke/Makefile minvoke/minvoke mperfmon/Makefile mperfmon/mperfmon docbrowser/Makefile docbrowser/theme-icons/Makefile docbrowser/monodoc docbrowser/AssemblyInfo.cs po/Makefile.in asn1view/Makefile asn1view/art/Makefile asn1view/gtk/Makefile asn1view/common/Makefile ilcontrast/Makefile ilcontrast/ilcontrast create-native-map/Makefile create-nati [...]
+ac_config_files="$ac_config_files mono-tools.spec Makefile gsharp/Makefile gsharp/gsharp gsharp/gsharp.exe.config gui-compare/Makefile gui-compare/gui-compare minvoke/Makefile minvoke/minvoke mperfmon/Makefile mperfmon/mperfmon docbrowser/Makefile docbrowser/theme-icons/Makefile docbrowser/monodoc docbrowser/AssemblyInfo.cs po/Makefile.in asn1view/Makefile asn1view/art/Makefile asn1view/gtk/Makefile asn1view/common/Makefile ilcontrast/Makefile ilcontrast/ilcontrast create-native-map/Make [...]
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -7440,13 +6412,13 @@ _ACEOF
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) $as_unset $ac_var ;;
+ *) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
@@ -7454,8 +6426,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -7477,12 +6449,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
- { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
- { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
@@ -7532,112 +6515,86 @@ DEFS=`sed -n "$ac_script" confdefs.h`
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${DMCS_PRESENT_TRUE}" && test -z "${DMCS_PRESENT_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"DMCS_PRESENT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"DMCS_PRESENT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"DMCS_PRESENT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_GNOME_TRUE}" && test -z "${ENABLE_GNOME_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GNOME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_GNOME\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_GNOME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_GTKHTML_TRUE}" && test -z "${ENABLE_GTKHTML_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GTKHTML\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_GTKHTML\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_GTKHTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_GECKO_TRUE}" && test -z "${ENABLE_GECKO_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GECKO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_GECKO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_GECKO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_WEBKIT_TRUE}" && test -z "${ENABLE_WEBKIT_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_WEBKIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_WEBKIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_WEBKIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_MONOWEBBROWSER_TRUE}" && test -z "${ENABLE_MONOWEBBROWSER_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_MONOWEBBROWSER\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_MONOWEBBROWSER\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_MONOWEBBROWSER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_DEBUG_TRUE}" && test -z "${ENABLE_DEBUG_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_DEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_DEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_DEBUG\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_RELEASE_TRUE}" && test -z "${ENABLE_RELEASE_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_RELEASE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_RELEASE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_RELEASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_DEBUG_TRUE}" && test -z "${ENABLE_DEBUG_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_DEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_DEBUG\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"ENABLE_DEBUG\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
@@ -7647,17 +6604,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
debug=false
ac_cs_recheck=false
ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -7665,23 +6623,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
esac
-
fi
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
as_nl='
'
export as_nl
@@ -7689,7 +6639,13 @@ export as_nl
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
@@ -7700,7 +6656,7 @@ else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
- case $arg in
+ case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -7723,13 +6679,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
}
fi
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
@@ -7739,15 +6688,16 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
IFS=$as_save_IFS
;;
@@ -7759,12 +6709,16 @@ if test "x$as_myself" = x; then
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
+ exit 1
fi
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
@@ -7776,7 +6730,89 @@ export LC_ALL
LANGUAGE=C
export LANGUAGE
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
@@ -7790,8 +6826,12 @@ else
as_basename=false
fi
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
-# Name of the executable.
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
@@ -7811,76 +6851,25 @@ $as_echo X/"$0" |
}
s/.*/./; q'`
-# CDPATH.
-$as_unset CDPATH
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
-n*)
- case `echo 'x\c'` in
+ case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
@@ -7895,49 +6884,85 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
+ as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -7947,13 +6972,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mono-tools $as_me 2.10, which was
-generated by GNU Autoconf 2.63. Invocation command line was
+This file was extended by mono-tools $as_me 2.11, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -7981,13 +7012,15 @@ _ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
@@ -8001,16 +7034,17 @@ $config_files
Configuration commands:
$config_commands
-Report bugs to <bug-autoconf at gnu.org>."
+Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mono-tools config.status 2.10
-configured by $0, generated by GNU Autoconf 2.63,
- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+mono-tools config.status 2.11
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -8028,11 +7062,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -8046,14 +7085,17 @@ do
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
- CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h | --help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -8062,11 +7104,10 @@ do
ac_cs_silent=: ;;
# This is an error.
- -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
- *) ac_config_targets="$ac_config_targets $1"
+ *) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
@@ -8083,7 +7124,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -8120,6 +7161,7 @@ do
case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "mono-tools.spec") CONFIG_FILES="$CONFIG_FILES mono-tools.spec" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"gsharp/Makefile") CONFIG_FILES="$CONFIG_FILES gsharp/Makefile" ;;
"gsharp/gsharp") CONFIG_FILES="$CONFIG_FILES gsharp/gsharp" ;;
@@ -8211,6 +7253,7 @@ do
"gendarme/tools/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/Makefile" ;;
"gendarme/tools/supported/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/supported/Makefile" ;;
"gendarme/tools/supported/gd2i/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/supported/gd2i/Makefile" ;;
+ "gendarme/tools/supported/templates/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/supported/templates/Makefile" ;;
"gendarme/tools/unsupported/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/unsupported/Makefile" ;;
"gendarme/tools/unsupported/mapper/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/unsupported/mapper/Makefile" ;;
"gendarme/tools/unsupported/typeref/Makefile") CONFIG_FILES="$CONFIG_FILES gendarme/tools/unsupported/typeref/Makefile" ;;
@@ -8228,9 +7271,7 @@ do
"Mono.Profiler/mprof-gui/emveepee") CONFIG_FILES="$CONFIG_FILES Mono.Profiler/mprof-gui/emveepee" ;;
"webdoc/Makefile") CONFIG_FILES="$CONFIG_FILES webdoc/Makefile" ;;
- *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -8252,26 +7293,24 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
+ trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} ||
-{
- $as_echo "$as_me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -8279,7 +7318,13 @@ $debug ||
if test -n "$CONFIG_FILES"; then
-ac_cr='
'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
@@ -8287,7 +7332,7 @@ else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
@@ -8296,24 +7341,18 @@ _ACEOF
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -8321,7 +7360,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -8335,7 +7374,7 @@ s/'"$ac_delim"'$//
t delim
:nl
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
@@ -8349,7 +7388,7 @@ s/.\{148\}//
t nl
:delim
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
@@ -8369,7 +7408,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
@@ -8401,23 +7440,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
- { (exit 1); exit 1; }; }
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -8435,9 +7480,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
- { (exit 1); exit 1; }; };;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -8456,7 +7499,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@@ -8465,12 +7508,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
- { (exit 1); exit 1; }; };;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- ac_file_inputs="$ac_file_inputs '$ac_f'"
+ as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -8481,7 +7522,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
@@ -8493,10 +7534,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; } ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -8524,47 +7563,7 @@ $as_echo X"$ac_file" |
q
}
s/.*/./; q'`
- { as_dir="$ac_dir"
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
+ as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
@@ -8621,7 +7620,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
-
ac_sed_dataroot='
/datarootdir/ {
p
@@ -8631,12 +7629,11 @@ ac_sed_dataroot='
/@docdir@/p
/@infodir@/p
/@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -8646,7 +7643,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
+ s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
@@ -8674,49 +7671,56 @@ s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
- :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
$as_echo "$as_me: executing $ac_file commands" >&6;}
;;
esac
case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$mf" : 'X\(//\)[^/]' \| \
X"$mf" : 'X\(//\)$' \| \
@@ -8739,28 +7743,28 @@ $as_echo X"$mf" |
q
}
s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$file" : 'X\(//\)[^/]' \| \
X"$file" : 'X\(//\)$' \| \
@@ -8783,51 +7787,12 @@ $as_echo X"$file" |
q
}
s/.*/./; q'`
- { as_dir=$dirpart/$fdir
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
done
-done
+}
;;
"default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
@@ -8837,15 +7802,12 @@ done
done # for ac_tag
-{ (exit 0); exit 0; }
+as_fn_exit 0
_ACEOF
-chmod +x $CONFIG_STATUS
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -8866,10 +7828,10 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
diff --git a/configure.in b/configure.in
index 2a8870f..4771a2e 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([mono-tools], [2.10])
+AC_INIT([mono-tools], [2.11])
AC_CONFIG_SRCDIR([README])
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([tar-ustar -Wno-portability])
@@ -181,6 +181,7 @@ GENDARME_VERSION=$TOOLS_VERSION
AC_SUBST(GENDARME_VERSION)
AC_OUTPUT([
+mono-tools.spec
Makefile
gsharp/Makefile
gsharp/gsharp
@@ -272,6 +273,7 @@ gendarme/swf-wizard-runner/Makefile
gendarme/tools/Makefile
gendarme/tools/supported/Makefile
gendarme/tools/supported/gd2i/Makefile
+gendarme/tools/supported/templates/Makefile
gendarme/tools/unsupported/Makefile
gendarme/tools/unsupported/mapper/Makefile
gendarme/tools/unsupported/typeref/Makefile
diff --git a/create-native-map/Makefile.in b/create-native-map/Makefile.in
index c1a3f3e..8fd07f6 100644
--- a/create-native-map/Makefile.in
+++ b/create-native-map/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -208,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -233,6 +290,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -241,7 +299,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -258,7 +316,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -266,7 +324,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -292,16 +350,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -309,14 +367,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -328,7 +386,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,29 +395,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -380,29 +443,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -422,16 +497,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -450,6 +531,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -458,18 +541,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -490,8 +583,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -506,6 +599,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/bin/Makefile.in b/create-native-map/bin/Makefile.in
index ca3d769..e39f2b6 100644
--- a/create-native-map/bin/Makefile.in
+++ b/create-native-map/bin/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,13 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -107,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -120,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -202,14 +257,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/bin/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/bin/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/bin/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/bin/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -227,25 +282,42 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -269,13 +341,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -296,10 +372,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -307,6 +388,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -325,6 +407,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -333,18 +417,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -382,6 +476,7 @@ uninstall-am: uninstall-binSCRIPTS
create-native-map: create-native-map.in
cp $(srcdir)/$@.in $@
chmod +x $@
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/lib/Makefile.in b/create-native-map/lib/Makefile.in
index ca81da2..9ba5061 100644
--- a/create-native-map/lib/Makefile.in
+++ b/create-native-map/lib/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -208,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/lib/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/lib/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -233,6 +290,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -241,7 +299,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -258,7 +316,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -266,7 +324,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -292,16 +350,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -309,14 +367,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -328,7 +386,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,29 +395,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -380,29 +443,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -422,16 +497,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -450,6 +531,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -458,18 +541,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -490,8 +583,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -506,6 +599,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/lib/create-native-map/Makefile.in b/create-native-map/lib/create-native-map/Makefile.in
index c84365d..789f2d9 100644
--- a/create-native-map/lib/create-native-map/Makefile.in
+++ b/create-native-map/lib/create-native-map/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
# do nothing
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -40,10 +59,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -105,6 +130,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -118,9 +144,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/create-native-map/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/lib/create-native-map/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/create-native-map/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/lib/create-native-map/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -297,6 +337,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -305,18 +347,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -349,6 +401,7 @@ uninstall-am:
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/lib/pkgconfig/Makefile.in b/create-native-map/lib/pkgconfig/Makefile.in
index b479da0..83132e2 100644
--- a/create-native-map/lib/pkgconfig/Makefile.in
+++ b/create-native-map/lib/pkgconfig/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -40,18 +59,44 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = create-native-map.pc
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
-pkgconfigDATA_INSTALL = $(INSTALL_DATA)
DATA = $(pkgconfig_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -114,6 +159,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -127,9 +173,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -210,14 +259,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/pkgconfig/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/lib/pkgconfig/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/lib/pkgconfig/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/lib/pkgconfig/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -235,25 +284,30 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
create-native-map.pc: $(top_builddir)/config.status $(srcdir)/create-native-map.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
- @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
- $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
done
uninstall-pkgconfigDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkgconfig_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
- done
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -277,13 +331,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -304,16 +362,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -333,6 +397,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -341,18 +407,28 @@ install-data-am: install-pkgconfigDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -386,6 +462,7 @@ uninstall-am: uninstall-pkgconfigDATA
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
uninstall-am uninstall-pkgconfigDATA
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/man/Makefile.in b/create-native-map/man/Makefile.in
index d9c6ca0..4c5069f 100644
--- a/create-native-map/man/Makefile.in
+++ b/create-native-map/man/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,43 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
man1dir = $(mandir)/man1
am__installdirs = "$(DESTDIR)$(man1dir)"
NROFF = nroff
@@ -107,6 +159,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -120,9 +173,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -201,14 +257,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/man/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/man/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -226,51 +282,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-man1: $(man1_MANS) $(man_MANS)
+$(am__aclocal_m4_deps):
+install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -279,6 +334,19 @@ CTAGS:
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -294,13 +362,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -321,16 +393,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -349,6 +427,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -357,18 +437,28 @@ install-data-am: install-man
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man: install-man1
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -404,6 +494,7 @@ uninstall-man: uninstall-man1
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
uninstall-am uninstall-man uninstall-man1
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/create-native-map/src/Makefile.in b/create-native-map/src/Makefile.in
index 1332bb4..3f15b9b 100644
--- a/create-native-map/src/Makefile.in
+++ b/create-native-map/src/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,18 +58,44 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(assemblydir)"
-assemblyDATA_INSTALL = $(INSTALL_DATA)
DATA = $(assembly_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -113,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -126,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -222,14 +271,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/src/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu create-native-map/src/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu create-native-map/src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu create-native-map/src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -247,23 +296,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-assemblyDATA: $(assembly_DATA)
@$(NORMAL_INSTALL)
- test -z "$(assemblydir)" || $(MKDIR_P) "$(DESTDIR)$(assemblydir)"
- @list='$(assembly_DATA)'; for p in $$list; do \
+ @list='$(assembly_DATA)'; test -n "$(assemblydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(assemblydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(assemblydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(assemblyDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(assemblydir)/$$f'"; \
- $(assemblyDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(assemblydir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(assemblydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(assemblydir)" || exit $$?; \
done
uninstall-assemblyDATA:
@$(NORMAL_UNINSTALL)
- @list='$(assembly_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(assemblydir)/$$f'"; \
- rm -f "$(DESTDIR)$(assemblydir)/$$f"; \
- done
+ @list='$(assembly_DATA)'; test -n "$(assemblydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(assemblydir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -287,13 +341,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -314,10 +372,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -325,6 +388,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -343,6 +407,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -351,18 +417,28 @@ install-data-am: install-assemblyDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -437,6 +513,7 @@ libtest.so: test.c
test-overflow: test-overflow.c test-overflow.h test.c
gcc -o $@ $< `pkg-config --libs --cflags glib-2.0`
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/docbrowser/Makefile.am b/docbrowser/Makefile.am
index a1a2626..065c430 100644
--- a/docbrowser/Makefile.am
+++ b/docbrowser/Makefile.am
@@ -40,6 +40,7 @@ browser_sources = \
$(srcdir)/list.cs \
$(srcdir)/elabel.cs \
$(srcdir)/history.cs \
+ $(srcdir)/editing.cs \
$(srcdir)/Contributions.cs \
$(srcdir)/XmlNodeWriter.cs \
$(srcdir)/IHtmlRender.cs \
@@ -67,7 +68,7 @@ admin_sources = \
$(srcdir)/admin.cs \
$(srcdir)/Contributions.cs
-browser_assemblies = $(GTK_SHARP_LIBS) $(MONODOC_LIBS) $(GNOME_SHARP_LIBS) -r:System.Web.Services
+browser_assemblies = $(GTK_SHARP_LIBS) $(MONODOC_LIBS) $(GNOME_SHARP_LIBS) -r:System.Web.Services -r:System.Web
# we insert gtkhtml libs if we have them for printing
geckorender_assemblies = $(GTK_SHARP_LIBS) $(GTKHTML_SHARP_LIBS) $(GECKO_SHARP_LIBS) $(GNOME_SHARP_LIBS) $(MONODOC_LIBS) -r:browser.exe
gtkhtmlrender_assemblies = $(GTK_SHARP_LIBS) $(GTKHTML_SHARP_LIBS) $(GNOME_SHARP_LIBS) $(MONODOC_LIBS) -r:browser.exe
diff --git a/docbrowser/Makefile.in b/docbrowser/Makefile.in
index f8ffbf6..1e59542 100644
--- a/docbrowser/Makefile.in
+++ b/docbrowser/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = monodoc AssemblyInfo.cs
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \
"$(DESTDIR)$(monodocdir)" "$(DESTDIR)$(pixmapdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,22 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-desktopDATA_INSTALL = $(INSTALL_DATA)
-monodocDATA_INSTALL = $(INSTALL_DATA)
-pixmapDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(desktop_DATA) $(monodoc_DATA) $(noinst_DATA) $(pixmap_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -132,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -145,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -236,6 +310,7 @@ browser_sources = \
$(srcdir)/list.cs \
$(srcdir)/elabel.cs \
$(srcdir)/history.cs \
+ $(srcdir)/editing.cs \
$(srcdir)/Contributions.cs \
$(srcdir)/XmlNodeWriter.cs \
$(srcdir)/IHtmlRender.cs \
@@ -262,7 +337,7 @@ admin_sources = \
$(srcdir)/admin.cs \
$(srcdir)/Contributions.cs
-browser_assemblies = $(GTK_SHARP_LIBS) $(MONODOC_LIBS) $(GNOME_SHARP_LIBS) -r:System.Web.Services
+browser_assemblies = $(GTK_SHARP_LIBS) $(MONODOC_LIBS) $(GNOME_SHARP_LIBS) -r:System.Web.Services -r:System.Web
# we insert gtkhtml libs if we have them for printing
geckorender_assemblies = $(GTK_SHARP_LIBS) $(GTKHTML_SHARP_LIBS) $(GECKO_SHARP_LIBS) $(GNOME_SHARP_LIBS) $(MONODOC_LIBS) -r:browser.exe
gtkhtmlrender_assemblies = $(GTK_SHARP_LIBS) $(GTKHTML_SHARP_LIBS) $(GNOME_SHARP_LIBS) $(MONODOC_LIBS) -r:browser.exe
@@ -293,14 +368,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docbrowser/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu docbrowser/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docbrowser/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docbrowser/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -318,80 +393,109 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
monodoc: $(top_builddir)/config.status $(srcdir)/monodoc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
AssemblyInfo.cs: $(top_builddir)/config.status $(srcdir)/AssemblyInfo.cs.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-desktopDATA: $(desktop_DATA)
@$(NORMAL_INSTALL)
- test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
- @list='$(desktop_DATA)'; for p in $$list; do \
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \
- $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
done
uninstall-desktopDATA:
@$(NORMAL_UNINSTALL)
- @list='$(desktop_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \
- rm -f "$(DESTDIR)$(desktopdir)/$$f"; \
- done
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
install-monodocDATA: $(monodoc_DATA)
@$(NORMAL_INSTALL)
- test -z "$(monodocdir)" || $(MKDIR_P) "$(DESTDIR)$(monodocdir)"
- @list='$(monodoc_DATA)'; for p in $$list; do \
+ @list='$(monodoc_DATA)'; test -n "$(monodocdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(monodocdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(monodocdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(monodocDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(monodocdir)/$$f'"; \
- $(monodocDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(monodocdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monodocdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(monodocdir)" || exit $$?; \
done
uninstall-monodocDATA:
@$(NORMAL_UNINSTALL)
- @list='$(monodoc_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(monodocdir)/$$f'"; \
- rm -f "$(DESTDIR)$(monodocdir)/$$f"; \
- done
+ @list='$(monodoc_DATA)'; test -n "$(monodocdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(monodocdir)'; $(am__uninstall_files_from_dir)
install-pixmapDATA: $(pixmap_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pixmapdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapdir)"
- @list='$(pixmap_DATA)'; for p in $$list; do \
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pixmapdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pixmapDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapdir)/$$f'"; \
- $(pixmapDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \
done
uninstall-pixmapDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pixmap_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pixmapdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pixmapdir)/$$f"; \
- done
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -400,7 +504,7 @@ uninstall-pixmapDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -417,7 +521,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -425,7 +529,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -451,16 +555,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -468,14 +572,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -487,7 +591,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -496,29 +600,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -539,29 +648,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -584,10 +705,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -595,6 +721,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -614,6 +741,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -623,18 +752,28 @@ install-data-am: install-desktopDATA install-monodocDATA \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -656,8 +795,8 @@ ps-am:
uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \
uninstall-monodocDATA uninstall-pixmapDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -706,6 +845,7 @@ c: admin.exe
monodoc.desktop: monodoc.desktop.in
sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/docbrowser/browser.cs b/docbrowser/browser.cs
index 5cc85e2..b9eb66f 100644
--- a/docbrowser/browser.cs
+++ b/docbrowser/browser.cs
@@ -60,7 +60,7 @@ class Driver {
v => sources.Add (v) },
{ "edit=",
"Edit mdoc(5) XML documentation found within {PATH}.",
- v => RootTree.UncompiledHelpSources.Add (v) },
+ v => RootTree.AddUncompiledSource (v) },
{ "engine=",
"Specify which HTML rendering {ENGINE} to use:\n" +
" " + string.Join ("\n ", engines) + "\n" +
@@ -119,6 +119,9 @@ class Driver {
List<string> topics = p.Parse (args);
+ if (basedir == null)
+ basedir = Directory.GetParent (System.Reflection.Assembly.GetExecutingAssembly ().Location).FullName;
+
if (show_version) {
Console.WriteLine ("Mono Documentation Browser");
Version ver = Assembly.GetExecutingAssembly ().GetName ().Version;
@@ -132,7 +135,7 @@ class Driver {
return r;
}
- if (mergeConfigFile != null) {
+ /*if (mergeConfigFile != null) {
ArrayList targetDirs = new ArrayList ();
for (int i = 0; i < topics.Count; i++)
@@ -145,7 +148,7 @@ class Driver {
e.Merge ();
return 0;
- }
+ }*/
if (r != 0 || !show_gui)
return r;
@@ -257,6 +260,7 @@ public class Browser {
TreeView search_tree;
TreeStore search_store;
SearchableIndex search_index;
+ ArrayList searchResults = new ArrayList (20);
string highlight_text;
[Glade.Widget] VBox search_vbox;
ProgressPanel ppanel;
@@ -578,6 +582,7 @@ public class Browser {
Result r = search_index.Search (term);
if (r == null)
return; //There was a problem with the index
+ searchResults.Add (r);
//insert the results in the tree
TreeIter iter;
@@ -622,7 +627,7 @@ public class Browser {
return;
int i_0 = p.Indices [0];
int i_1 = p.Indices [1];
- Result res = (Result) search_index.Results [i_0];
+ Result res = (Result) searchResults [i_0];
TreeIter parent;
model.IterParent (out parent, iter);
string term = (string) search_store.GetValue (parent, 0);
@@ -648,21 +653,21 @@ public class Browser {
void TextLarger (object obj, EventArgs args)
{
SettingsHandler.Settings.preferred_font_size += 10;
- HelpSource.CssCode = null;
+ //HelpSource.CssCode = null;
Reload ();
SettingsHandler.Save ();
}
void TextSmaller (object obj, EventArgs args)
{
SettingsHandler.Settings.preferred_font_size -= 10;
- HelpSource.CssCode = null;
+ //HelpSource.CssCode = null;
Reload ();
SettingsHandler.Save ();
}
void TextNormal (object obj, EventArgs args)
{
SettingsHandler.Settings.preferred_font_size = 100;
- HelpSource.CssCode = null;
+ //HelpSource.CssCode = null;
Reload ();
SettingsHandler.Save ();
}
@@ -733,6 +738,15 @@ public class Browser {
Node node;
+ /*
+ * The webkit library converts the url titles (N:, T:, etc.) to lower case (n:, t:, etc.)
+ * when clicking on a link. Therefore we need to convert them to upper case, since the
+ * monodoc backend only understands upper case titles (except for root:, afaik).
+ */
+ string[] urlParts = url.Split (':');
+ if (urlParts [0].Length == 1)
+ url = urlParts [0].ToUpper () + url.Substring (1);
+
Console.Error.WriteLine ("Trying: {0}", url);
try {
string res = Browser.GetHtml (url, null, help_tree, out node);
@@ -785,8 +799,8 @@ public class Browser {
//
string tabTitle;
tabTitle = matched_node.Caption; //Normal title
- string[] parts = matched_node.URL.Split('/', '#');
- if(matched_node.URL != null && matched_node.URL.StartsWith("ecma:")) {
+ string[] parts = matched_node.PublicUrl.Split('/', '#');
+ if(matched_node.PublicUrl != null && matched_node.PublicUrl.StartsWith("ecma:")) {
if(parts.Length == 3 && parts[2] != String.Empty) { //List of Members, properties, events, ...
tabTitle = parts[1] + ": " + matched_node.Caption;
} else if(parts.Length >= 4) { //Showing a concrete Member, property, ...
@@ -937,6 +951,7 @@ ExtLoop:
void delete_event_cb (object o, DeleteEventArgs args)
{
Application.Quit ();
+ args.RetVal = true;
}
void on_print_activate (object sender, EventArgs e)
{
@@ -1691,7 +1706,7 @@ ExtLoop:
void OnOkClicked (object sender, EventArgs a)
{
- CommentService service = new CommentService();
+ //CommentService service = new CommentService();
// todo
newcomment.Hide ();
}
@@ -2010,7 +2025,7 @@ public class TreeBrowser {
if (tree_view.Selection.GetSelected (out model, out iter)){
Node n = (Node) iter_to_node [iter];
- string url = n.URL;
+ string url = n.PublicUrl;
Node match;
string s;
@@ -2038,7 +2053,7 @@ public class TreeBrowser {
return;
}
- ((Browser)browser).Render ("<h1>Unhandled URL</h1>" + "<p>Functionality to view the resource <i>" + n.URL + "</i> is not available on your system or has not yet been implemented.</p>", null, url);
+ ((Browser)browser).Render ("<h1>Unhandled URL</h1>" + "<p>Functionality to view the resource <i>" + n.PublicUrl + "</i> is not available on your system or has not yet been implemented.</p>", null, url);
}
}
}
@@ -2702,7 +2717,7 @@ public class Tab : Notebook {
string [] uSplit = EditingUtils.ParseEditUrl (edit_url);
if (uSplit[0].StartsWith ("monodoc:"))
- EditingUtils.SaveChange (edit_url, browser.help_tree, edit_node, EcmaHelpSource.GetNiceUrl (browser.CurrentTab.CurrentNode));
+ EditingUtils.SaveChange (edit_url, browser.help_tree, edit_node, GetNiceUrl (browser.CurrentTab.CurrentNode));
else if (uSplit[0].StartsWith ("file:"))
EditingUtils.SaveChange (edit_url, browser.help_tree, edit_node, String.Empty);
else
@@ -2711,6 +2726,49 @@ public class Tab : Notebook {
history.ActivateCurrent ();
}
+ public static string GetNiceUrl (Node node) {
+ if (node.Element.StartsWith("N:"))
+ return node.Element;
+ string name, full;
+ int bk_pos = node.Caption.IndexOf (' ');
+ // node from an overview
+ if (bk_pos != -1) {
+ name = node.Caption.Substring (0, bk_pos);
+ full = node.Parent.Caption + "." + name.Replace ('.', '+');
+ return "T:" + full;
+ }
+ // node that lists constructors, methods, fields, ...
+ if ((node.Caption == "Constructors") || (node.Caption == "Fields") || (node.Caption == "Events")
+ || (node.Caption == "Members") || (node.Caption == "Properties") || (node.Caption == "Methods")
+ || (node.Caption == "Operators")) {
+ bk_pos = node.Parent.Caption.IndexOf (' ');
+ name = node.Parent.Caption.Substring (0, bk_pos);
+ full = node.Parent.Parent.Caption + "." + name.Replace ('.', '+');
+ return "T:" + full + "/" + node.Element;
+ }
+ int pr_pos = node.Caption.IndexOf ('(');
+ // node from a constructor
+ if (node.Parent.Element == "C") {
+ name = node.Parent.Parent.Parent.Caption;
+ int idx = node.PublicUrl.IndexOf ('/');
+ return node.PublicUrl[idx+1] + ":" + name + "." + node.Caption.Replace ('.', '+');
+ // node from a method with one signature, field, property, operator
+ } else if (pr_pos == -1) {
+ bk_pos = node.Parent.Parent.Caption.IndexOf (' ');
+ name = node.Parent.Parent.Caption.Substring (0, bk_pos);
+ full = node.Parent.Parent.Parent.Caption + "." + name.Replace ('.', '+');
+ int idx = node.PublicUrl.IndexOf ('/');
+ return node.PublicUrl[idx+1] + ":" + full + "." + node.Caption;
+ // node from a method with several signatures
+ } else {
+ bk_pos = node.Parent.Parent.Parent.Caption.IndexOf (' ');
+ name = node.Parent.Parent.Parent.Caption.Substring (0, bk_pos);
+ full = node.Parent.Parent.Parent.Parent.Caption + "." + name.Replace ('.', '+');
+ int idx = node.PublicUrl.IndexOf ('/');
+ return node.PublicUrl[idx+1] + ":" + full + "." + node.Caption;
+ }
+ }
+
void OnCancelEdits (object sender, EventArgs a)
{
SetMode (Mode.Viewer);
@@ -2737,6 +2795,7 @@ public class Tab : Notebook {
StringWriter sw = new StringWriter ();
XmlWriter w = new XmlTextWriter (sw);
+ var converter = new Monodoc.Generators.Html.Ecma2Html ();
try {
edit_node.InnerXml = text_editor.Buffer.Text;
@@ -2750,7 +2809,7 @@ public class Tab : Notebook {
}
browser.statusbar.Pop (browser.context_id);
browser.statusbar.Push (browser.context_id, "XML OK");
- string s = HelpSource.BuildHtml (EcmaHelpSource.css_ecma_code, sw.ToString ());
+ string s = converter.Export (sw.ToString (), new Dictionary<string, string> ());
html_preview.Render(s);
return false;
diff --git a/docbrowser/editing.cs b/docbrowser/editing.cs
new file mode 100644
index 0000000..d7c1e32
--- /dev/null
+++ b/docbrowser/editing.cs
@@ -0,0 +1,519 @@
+//
+// editing.cs
+//
+// Author:
+// Ben Maurer (bmaurer at users.sourceforge.net)
+//
+// (C) 2003 Ben Maurer
+//
+
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.IO;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+using System.Xml.XPath;
+using System.Web;
+
+namespace Monodoc {
+ public class EditingUtils {
+
+ public static string FormatEditUri (string document_identifier, string xpath)
+ {
+ return String.Format ("edit:{0}@{1}", HttpUtility.UrlEncode (document_identifier),
+ HttpUtility.UrlEncode (xpath));
+ }
+
+ public static string GetXPath (XPathNavigator n)
+ {
+ switch (n.NodeType) {
+ case XPathNodeType.Root: return "/";
+ case XPathNodeType.Attribute: {
+ string ret = "@" + n.Name;
+ n.MoveToParent ();
+ string s = GetXPath (n);
+ return s + (s == "/" ? "" : "/") + ret;
+ }
+
+ case XPathNodeType.Element: {
+ string ret = n.Name;
+ int i = 1;
+ while (n.MoveToPrevious ()) {
+ if (n.NodeType == XPathNodeType.Element && n.Name == ret)
+ i++;
+ }
+ ret += "[" + i + "]";
+ if (n.MoveToParent ()) {
+ string s = GetXPath (n);
+ return s + (s == "/" ? "" : "/") + ret;
+ }
+ }
+ break;
+ }
+ throw new Exception ("node type not supported for editing");
+
+ }
+
+ public static XmlNode GetNodeFromUrl (string url, RootTree tree)
+ {
+ Console.WriteLine ("Url is: {0}", url);
+ string [] uSplit = ParseEditUrl (url);
+ Console.WriteLine ("Results are: {0}\n{1}\n{2}", uSplit [0], uSplit [1], uSplit [2]);
+
+ string xp = uSplit [2];
+ string id = uSplit [1];
+
+ XmlDocument d;
+
+ if (uSplit[0].StartsWith("monodoc:///")) {
+ int prov = int.Parse (uSplit [0].Substring("monodoc:///".Length));
+ d = tree.GetHelpSourceFromId (prov).GetHelpXmlWithChanges (id);
+ } else if (uSplit[0].StartsWith("file:")) {
+ d = new XmlDocument();
+ d.PreserveWhitespace = true;
+ d.Load(uSplit[0].Substring(5));
+ } else {
+ throw new NotImplementedException("Don't know how to load " + url);
+ }
+
+ return d.SelectSingleNode (xp);
+
+ }
+
+ public static void SaveChange (string url, RootTree tree, XmlNode node, string node_url)
+ {
+ /*string [] uSplit = ParseEditUrl (url);
+
+ string xp = uSplit [2];
+ string id = uSplit [1];
+
+ if (uSplit[0].StartsWith("monodoc:///")) {
+ int prov = int.Parse (uSplit [0].Substring("monodoc:///".Length));
+ HelpSource hs = tree.GetHelpSourceFromId (prov);
+
+ changes.AddChange (hs.Name, hs.GetRealPath (id), xp, node, node_url);
+ changes.Save ();
+ } else if (uSplit[0].StartsWith("file:")) {
+ uSplit[0] = uSplit[0].Substring(5);
+
+ XmlDocument d = new XmlDocument();
+ d.PreserveWhitespace = true;
+ d.Load(uSplit[0]);
+
+ XmlNode original = d.SelectSingleNode(xp);
+ original.ParentNode.ReplaceChild(d.ImportNode(node, true), original);
+
+ d.Save(uSplit[0]);
+ } else {
+ throw new NotImplementedException("Don't know how to save to " + url);
+ }*/
+ }
+
+ public static void RemoveChange (string url, RootTree tree)
+ {
+ /*string [] uSplit = ParseEditUrl (url);
+
+ string xp = uSplit [2];
+ string id = uSplit [1];
+
+ if (uSplit[0].StartsWith("monodoc:///")) {
+ int prov = int.Parse (uSplit [0].Substring("monodoc:///".Length));
+ HelpSource hs = tree.GetHelpSourceFromId (prov);
+
+ changes.RemoveChange (hs.Name, hs.GetRealPath (id), xp);
+ changes.Save ();
+ } else if (uSplit[0].StartsWith("file:")) {
+ //TODO: Not implemented
+ }*/
+ }
+
+ public static void RenderEditPreview (string url, RootTree tree, XmlNode new_node, XmlWriter w)
+ {
+ string [] uSplit = ParseEditUrl (url);
+
+ if (uSplit[0].StartsWith("monodoc:///")) {
+ int prov = int.Parse (uSplit [0].Substring("monodoc:///".Length));
+ HelpSource hs = tree.GetHelpSourceFromId (prov);
+ hs.RenderPreviewDocs (new_node, w);
+ } else {
+ foreach (HelpSource hs in tree.HelpSources) {
+ if (hs is Monodoc.Providers.EcmaUncompiledHelpSource) {
+ // It doesn't matter which EcmaHelpSource is chosen.
+ hs.RenderPreviewDocs (new_node, w);
+ break;
+ }
+ }
+ }
+ }
+
+ public static string [] ParseEditUrl (string url)
+ {
+ if (!url.StartsWith ("edit:"))
+ throw new Exception ("wtf");
+
+ string [] parts = url.Split ('@');
+ if (parts.Length != 2)
+ throw new Exception (String.Format ("invalid editing url {0}", parts.Length));
+
+ string xp = HttpUtility.UrlDecode (parts [1]);
+ parts = HttpUtility.UrlDecode (parts [0]).Substring ("edit:".Length).Split ('@');
+ if (parts.Length == 1) {
+ string p = parts[0];
+ parts = new string[2];
+ parts[0] = p;
+ parts[1] = "";
+ }
+
+ return new string [] {parts [0], parts [1], xp};
+ }
+
+ public static void AccountForChanges (XmlDocument d, string doc_set, string real_file)
+ {
+ try {
+ FileChangeset fcs = changes.GetChangeset (doc_set, real_file);
+ if (fcs == null)
+ return;
+
+ foreach (Change c in fcs.Changes) {
+ // Filter out old changes
+ if (c.FromVersion != RootTree.MonodocVersion)
+ continue;
+
+ XmlNode old = d.SelectSingleNode (c.XPath);
+ if (old != null)
+ old.ParentNode.ReplaceChild (d.ImportNode (c.NewNode, true), old);
+ }
+ } catch {
+ return;
+ }
+ }
+
+ public static GlobalChangeset changes = GlobalChangeset.Load ();
+
+ static public GlobalChangeset GetChangesFrom (int starting_serial_id)
+ {
+ return changes.GetFrom (starting_serial_id);
+ }
+ }
+
+#region Data Model
+ public class GlobalChangeset {
+
+ public static XmlSerializer serializer = new XmlSerializer (typeof (GlobalChangeset));
+ static string changeset_file = Path.Combine (SettingsHandler.Path, "changeset.xml");
+ static string changeset_backup_file = Path.Combine (SettingsHandler.Path, "changeset.xml~");
+
+ public static GlobalChangeset Load ()
+ {
+ try {
+ if (File.Exists (changeset_file))
+ return LoadFromFile (changeset_file);
+ } catch {}
+
+ return new GlobalChangeset ();
+ }
+
+ public static GlobalChangeset LoadFromFile (string fileName)
+ {
+ using (Stream s = File.OpenRead (fileName)) {
+ return (GlobalChangeset) serializer.Deserialize (s);
+ }
+ }
+
+ public void Save ()
+ {
+ SettingsHandler.EnsureSettingsDirectory ();
+
+ try {
+ if (File.Exists(changeset_file)) // create backup copy
+ File.Copy (changeset_file, changeset_backup_file, true);
+
+ using (FileStream fs = File.Create (changeset_file)){
+ serializer.Serialize (fs, this);
+ }
+ } catch (Exception e) {
+ Console.WriteLine ("Error while saving changes. " + e);
+ if (File.Exists(changeset_backup_file)) // if saving fails then use backup if we have one
+ File.Copy (changeset_backup_file, changeset_file, true);
+ else
+ File.Delete (changeset_file); // if no backup, delete invalid changeset
+ }
+ }
+
+ static void VerifyDirectoryExists (DirectoryInfo d) {
+ if (d.Exists)
+ return;
+
+ VerifyDirectoryExists (d.Parent);
+ d.Create ();
+ }
+
+ [XmlElement ("DocSetChangeset", typeof (DocSetChangeset))]
+ public ArrayList DocSetChangesets = new ArrayList ();
+
+ public FileChangeset GetChangeset (string doc_set, string real_file)
+ {
+ foreach (DocSetChangeset dscs in DocSetChangesets) {
+ if (dscs.DocSet != doc_set)
+ continue;
+
+ foreach (FileChangeset fcs in dscs.FileChangesets) {
+ if (fcs.RealFile == real_file)
+ return fcs;
+ }
+ }
+
+ return null;
+ }
+
+ public int Count {
+ get {
+ int count = 0;
+
+ foreach (DocSetChangeset dscs in DocSetChangesets){
+ foreach (FileChangeset fcs in dscs.FileChangesets){
+ count += fcs.Changes.Count;
+ }
+ }
+
+ return count;
+ }
+ }
+
+ Change NewChange (string xpath, XmlNode new_node, string node_url)
+ {
+ Change new_change = new Change ();
+ new_change.XPath = xpath;
+ new_change.NewNode = new_node;
+ new_change.NodeUrl = node_url;
+
+ Console.WriteLine ("New serial:" + SettingsHandler.Settings.SerialNumber);
+ new_change.Serial = SettingsHandler.Settings.SerialNumber;
+
+ return new_change;
+ }
+
+ public void AddChange (string doc_set, string real_file, string xpath, XmlNode new_node, string node_url)
+ {
+ FileChangeset new_file_change_set;
+ Change new_change = NewChange (xpath, new_node, node_url);
+
+ if (real_file == null)
+ throw new Exception ("Could not find real_file. Please talk to Miguel or Ben about this");
+
+ foreach (DocSetChangeset dscs in DocSetChangesets) {
+ if (dscs.DocSet != doc_set)
+ continue;
+
+ foreach (FileChangeset fcs in dscs.FileChangesets) {
+ if (fcs.RealFile != real_file)
+ continue;
+
+ foreach (Change c in fcs.Changes) {
+ if (c.XPath == xpath) {
+ c.NewNode = new_node;
+ c.Serial = SettingsHandler.Settings.SerialNumber;
+ return;
+ }
+ }
+
+ fcs.Changes.Add (new_change);
+ return;
+
+ }
+
+ new_file_change_set = new FileChangeset ();
+ new_file_change_set.RealFile = real_file;
+ new_file_change_set.Changes.Add (new_change);
+ dscs.FileChangesets.Add (new_file_change_set);
+ return;
+
+ }
+
+ DocSetChangeset new_dcs = new DocSetChangeset ();
+ new_dcs.DocSet = doc_set;
+
+ new_file_change_set = new FileChangeset ();
+ new_file_change_set.RealFile = real_file;
+
+ new_file_change_set.Changes.Add (new_change);
+ new_dcs.FileChangesets.Add (new_file_change_set);
+ DocSetChangesets.Add (new_dcs);
+ }
+
+ public void RemoveChange (string doc_set, string real_file, string xpath)
+ {
+ if (real_file == null)
+ throw new Exception ("Could not find real_file. Please talk to Miguel or Ben about this");
+
+ for (int i = 0; i < DocSetChangesets.Count; i++) {
+ DocSetChangeset dscs = DocSetChangesets [i] as DocSetChangeset;
+ if (dscs.DocSet != doc_set)
+ continue;
+
+ for (int j = 0; j < dscs.FileChangesets.Count; j++) {
+ FileChangeset fcs = dscs.FileChangesets [j] as FileChangeset;
+ if (fcs.RealFile != real_file)
+ continue;
+
+ for (int k = 0; k < fcs.Changes.Count; k++) {
+ Change c = fcs.Changes [k] as Change;
+ if (c.XPath == xpath) {
+ fcs.Changes.Remove (c);
+ break;
+ }
+ }
+ if (fcs.Changes.Count == 0)
+ dscs.FileChangesets.Remove (fcs);
+ }
+
+ if (dscs.FileChangesets.Count == 0)
+ DocSetChangesets.Remove (dscs);
+ }
+ }
+
+ public GlobalChangeset GetFrom (int starting_serial_id)
+ {
+ GlobalChangeset s = null;
+
+ foreach (DocSetChangeset dscs in DocSetChangesets){
+ object o = dscs.GetFrom (starting_serial_id);
+ if (o == null)
+ continue;
+ if (s == null)
+ s = new GlobalChangeset ();
+ s.DocSetChangesets.Add (o);
+ }
+ return s;
+ }
+ }
+
+ public class DocSetChangeset {
+ [XmlAttribute] public string DocSet;
+
+ [XmlElement ("FileChangeset", typeof (FileChangeset))]
+ public ArrayList FileChangesets = new ArrayList ();
+
+ public DocSetChangeset GetFrom (int starting_serial_id)
+ {
+ DocSetChangeset dsc = null;
+
+ foreach (FileChangeset fcs in FileChangesets){
+ object o = fcs.GetFrom (starting_serial_id);
+ if (o == null)
+ continue;
+ if (dsc == null){
+ dsc = new DocSetChangeset ();
+ dsc.DocSet = DocSet;
+ }
+ dsc.FileChangesets.Add (o);
+ }
+ return dsc;
+ }
+ }
+
+ public class FileChangeset {
+ [XmlAttribute] public string RealFile;
+
+ [XmlElement ("Change", typeof (Change))]
+ public ArrayList Changes = new ArrayList ();
+
+ public FileChangeset GetFrom (int starting_serial_id)
+ {
+ FileChangeset fcs = null;
+
+ foreach (Change c in Changes){
+ if (c.Serial < starting_serial_id)
+ continue;
+ if (fcs == null){
+ fcs = new FileChangeset ();
+ fcs.RealFile = RealFile;
+ }
+ fcs.Changes.Add (c);
+ }
+ return fcs;
+ }
+ }
+
+ public class Change {
+ [XmlAttribute] public string XPath;
+ [XmlAttribute] public int FromVersion = RootTree.MonodocVersion;
+ [XmlAttribute] public string NodeUrl;
+
+ public XmlNode NewNode;
+
+ public int Serial;
+
+ bool applied = false;
+
+ //
+ // These are not a property, because we dont want them serialized;
+ // Only used by the Admin Client.
+ //
+ public bool Applied ()
+ {
+ return applied;
+ }
+
+ public void SetApplied (bool value)
+ {
+ applied = value;
+ }
+ }
+#endregion
+
+ public class EditMerger {
+ GlobalChangeset changeset;
+ ArrayList targetDirs;
+
+ public EditMerger (GlobalChangeset changeset, ArrayList targetDirs)
+ {
+ this.changeset = changeset;
+ this.targetDirs = targetDirs;
+ }
+
+ public void Merge ()
+ {
+ foreach (DocSetChangeset dsc in changeset.DocSetChangesets) {
+ bool merged = false;
+ foreach (string path in targetDirs) {
+ if (File.Exists (Path.Combine (path, dsc.DocSet + ".source"))) {
+ Merge (dsc, path);
+ merged = true;
+ break;
+ }
+ }
+ if (!merged) Console.WriteLine ("Could not merge docset {0}", dsc.DocSet);
+ }
+ }
+
+ void Merge (DocSetChangeset dsc, string path)
+ {
+ Console.WriteLine ("Merging changes in {0} ({1})", dsc.DocSet, path);
+
+ foreach (FileChangeset fcs in dsc.FileChangesets) {
+ if (File.Exists (Path.Combine (path, fcs.RealFile)))
+ Merge (fcs, path);
+ else
+ Console.WriteLine ("\tCould not find file {0}", Path.Combine (path, fcs.RealFile));
+ }
+ }
+
+ void Merge (FileChangeset fcs, string path)
+ {
+ XmlDocument d = new XmlDocument ();
+ d.Load (Path.Combine (path, fcs.RealFile));
+
+ foreach (Change c in fcs.Changes) {
+ XmlNode old = d.SelectSingleNode (c.XPath);
+ if (old != null)
+ old.ParentNode.ReplaceChild (d.ImportNode (c.NewNode, true), old);
+ }
+
+ d.Save (Path.Combine (path, fcs.RealFile));
+ }
+ }
+}
+
diff --git a/docbrowser/monodoc.in b/docbrowser/monodoc.in
index a532918..806b163 100644
--- a/docbrowser/monodoc.in
+++ b/docbrowser/monodoc.in
@@ -75,7 +75,7 @@ elif test x at MOZILLA_HOME@ != x; then
if [ -f @MOZILLA_HOME@/chrome/comm.jar ]; then
MOZILLA_HOME=@MOZILLA_HOME@
fi
-elif grep GRE_PATH /etc/gre.d/*.conf > /dev/null ; then
+elif grep -qs GRE_PATH /etc/gre.d/*.conf > /dev/null ; then
MOZILLA_HOME=$(grep -h GRE_PATH= /etc/gre.d/*.conf | cut -d '"' -f 2 -d = | head -n 1)
elif [ $(which xulrunner 2> /dev/null) ] > /dev/null ; then
MOZILLA_FIVE_HOME=`getdirectory xulrunner`
diff --git a/docbrowser/theme-icons/Makefile.in b/docbrowser/theme-icons/Makefile.in
index d24efb1..76667e3 100644
--- a/docbrowser/theme-icons/Makefile.in
+++ b/docbrowser/theme-icons/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -218,14 +247,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docbrowser/theme-icons/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu docbrowser/theme-icons/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docbrowser/theme-icons/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docbrowser/theme-icons/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -243,6 +272,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -266,13 +296,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -290,16 +324,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -318,6 +358,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -326,18 +368,28 @@ install-data-am: install-data-local
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -359,7 +411,6 @@ ps-am:
uninstall-am:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-
.MAKE: install-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic distclean \
@@ -379,6 +430,7 @@ install-data-local:
uninstall-hook:
@-$(install_icon_exec) -u $(theme_icons)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/AssemblyInfo.cs b/gendarme/AssemblyInfo.cs
index 542321e..8ab9cb3 100644
--- a/gendarme/AssemblyInfo.cs
+++ b/gendarme/AssemblyInfo.cs
@@ -9,4 +9,4 @@
using System.Reflection;
-[assembly: AssemblyVersion ("2.10.0.0")]
+[assembly: AssemblyVersion ("2.11.0.0")]
diff --git a/gendarme/AssemblyStaticInfo.cs b/gendarme/AssemblyStaticInfo.cs
index 2ca215e..130eb9d 100644
--- a/gendarme/AssemblyStaticInfo.cs
+++ b/gendarme/AssemblyStaticInfo.cs
@@ -18,10 +18,9 @@ using System.Security.Permissions;
[assembly: AssemblyCopyright ("Copyright (C) 2005-2011 Novell, Inc. and contributors")]
[assembly: AssemblyCompany ("Novell, Inc.")]
-[assembly: PermissionSet (SecurityAction.RequestMinimum, Unrestricted = true)]
[assembly: CLSCompliant (false)]
[assembly: ComVisible (false)]
#if RELEASE
-[assembly: AssemblyVersion ("2.10.0.0")]
+[assembly: AssemblyVersion ("2.11.0.0")]
#endif
diff --git a/gendarme/MIT.X11 b/gendarme/MIT.X11
index 8d90e9d..b3e59de 100644
--- a/gendarme/MIT.X11
+++ b/gendarme/MIT.X11
@@ -1,4 +1,4 @@
-Copyright (c) 2005-2010 Novell, Inc and the individuals listed on the
+Copyright (c) 2005-2011 Novell, Inc and the individuals listed on the
ChangeLog entries.
Permission is hereby granted, free of charge, to any person obtaining
diff --git a/gendarme/Makefile.am b/gendarme/Makefile.am
index 890f0f2..2d96376 100644
--- a/gendarme/Makefile.am
+++ b/gendarme/Makefile.am
@@ -45,7 +45,8 @@ check-test: all bin/gendarme.exe.config test
--ignore=unit-test.ignore --severity=all --confidence=all @unit-test.list
test-regress: all
- mono --debug bin/gendarme.exe --config rules/rules.xml --set self-test --log regress.log testcases/*.dll testcases/*.exe
+ mono --debug bin/gendarme.exe --config rules/rules.xml --set self-test --log regress.log \
+ --severity=all --confidence=all testcases/*.dll testcases/*.exe
TEST1 ?= AvoidVisibleConstantFieldTest
test1_file = $(shell find rules -name "\.svn" -prune -o -name "*$(TEST1)*" -print)
@@ -101,16 +102,3 @@ zip-bin: bin extra-bin
cd ..; \
rm -rf gendarme.$(GENDARME_VERSION);
-instruct.xsd:
- wget http://www.ohloh.net/instruct.xsd
-
-push: instruct.xsd
- xmllint --schema instruct.xsd gendarme.xml
-# scp gendarme-2.8preview1-bin.zip $(USER)@upload.ohloh.net:gendarme/files; \
-# scp gendarme-2.8preview1-win32-setup.zip $(USER)@upload.ohloh.net:gendarme/files; \
-# scp gendarme.xml $(USER)@upload.ohloh.net:gendarme/instructs
-
-pull-log:
- scp $(USER)@upload.ohloh.net:gendarme/logs/upload.log .
- cat upload.log
-
diff --git a/gendarme/Makefile.in b/gendarme/Makefile.in
index 006a5f7..2cddcac 100644
--- a/gendarme/Makefile.in
+++ b/gendarme/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -43,10 +62,37 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = AssemblyInfo.cs gendarme gendarme-wizard gd2i
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pixmapdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -57,20 +103,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-pixmapDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(pixmap_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -131,6 +203,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -144,9 +217,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -238,14 +314,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -263,6 +339,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
AssemblyInfo.cs: $(top_builddir)/config.status $(srcdir)/AssemblyInfo.cs.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gendarme: $(top_builddir)/config.status $(srcdir)/gendarme.in
@@ -273,40 +350,60 @@ gd2i: $(top_builddir)/config.status $(srcdir)/gd2i.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-pixmapDATA: $(pixmap_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pixmapdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapdir)"
- @list='$(pixmap_DATA)'; for p in $$list; do \
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pixmapdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pixmapDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapdir)/$$f'"; \
- $(pixmapDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \
done
uninstall-pixmapDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pixmap_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pixmapdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pixmapdir)/$$f"; \
- done
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -315,7 +412,7 @@ uninstall-pixmapDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -332,7 +429,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -340,7 +437,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -366,16 +463,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -383,14 +480,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -402,7 +499,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -411,29 +508,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -454,29 +556,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -499,10 +613,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -510,6 +629,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -529,6 +649,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -537,18 +659,28 @@ install-data-am: install-pixmapDATA
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -569,8 +701,8 @@ ps-am:
uninstall-am: uninstall-binSCRIPTS uninstall-pixmapDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -618,7 +750,8 @@ check-test: all bin/gendarme.exe.config test
--ignore=unit-test.ignore --severity=all --confidence=all @unit-test.list
test-regress: all
- mono --debug bin/gendarme.exe --config rules/rules.xml --set self-test --log regress.log testcases/*.dll testcases/*.exe
+ mono --debug bin/gendarme.exe --config rules/rules.xml --set self-test --log regress.log \
+ --severity=all --confidence=all testcases/*.dll testcases/*.exe
TEST1 ?= AvoidVisibleConstantFieldTest
@@ -671,18 +804,6 @@ zip-bin: bin extra-bin
cd ..; \
rm -rf gendarme.$(GENDARME_VERSION);
-instruct.xsd:
- wget http://www.ohloh.net/instruct.xsd
-
-push: instruct.xsd
- xmllint --schema instruct.xsd gendarme.xml
-# scp gendarme-2.8preview1-bin.zip $(USER)@upload.ohloh.net:gendarme/files; \
-# scp gendarme-2.8preview1-win32-setup.zip $(USER)@upload.ohloh.net:gendarme/files; \
-# scp gendarme.xml $(USER)@upload.ohloh.net:gendarme/instructs
-
-pull-log:
- scp $(USER)@upload.ohloh.net:gendarme/logs/upload.log .
- cat upload.log
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/console/ConsoleRunner.cs b/gendarme/console/ConsoleRunner.cs
index 97afccb..bf9814c 100644
--- a/gendarme/console/ConsoleRunner.cs
+++ b/gendarme/console/ConsoleRunner.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
@@ -53,21 +54,23 @@ namespace Gendarme {
private string log_file;
private string xml_file;
private string ignore_file;
- private string limit;
- private string severity_filter;
- private string confidence_filter;
private bool help;
private bool quiet;
private bool version;
+ private bool console;
private List<string> assembly_names;
+ static string [] SplitOptions (string value)
+ {
+ return value.ToUpperInvariant ().Split (new char [] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+ }
+
// parse severity filter
// e.g. Audit,High+ == Audit, High and Critical
- void ParseSeverity ()
+ bool ParseSeverity (string filter)
{
SeverityBitmask.ClearAll ();
- string [] options = severity_filter.ToUpperInvariant ().Split (',');
- foreach (string option in options) {
+ foreach (string option in SplitOptions (filter)) {
Severity severity;
switch (option) {
@@ -101,28 +104,26 @@ namespace Gendarme {
SeverityBitmask.SetAll ();
continue;
default:
- continue;
+ string msg = String.Format (CultureInfo.CurrentCulture, "Unknown severity level '{0}'", option);
+ throw new OptionException (msg, "severity");
}
char end = option [option.Length - 1];
if (end == '+') {
SeverityBitmask.SetDown (severity);
- Console.WriteLine ("SetDown {0} -> {1}", severity, SeverityBitmask);
} else if (end == '-') {
SeverityBitmask.SetUp (severity);
- Console.WriteLine ("SetUp {0} -> {1}", severity, SeverityBitmask);
} else {
SeverityBitmask.Set (severity);
- Console.WriteLine ("Set {0} -> {1}", severity, SeverityBitmask);
}
}
+ return true;
}
- void ParseConfidence ()
+ bool ParseConfidence (string filter)
{
ConfidenceBitmask.ClearAll ();
- string [] options = confidence_filter.ToUpperInvariant ().Split (',');
- foreach (string option in options) {
+ foreach (string option in SplitOptions (filter)) {
Confidence confidence;
switch (option) {
@@ -151,7 +152,8 @@ namespace Gendarme {
ConfidenceBitmask.SetAll ();
continue;
default:
- continue;
+ string msg = String.Format (CultureInfo.CurrentCulture, "Unknown confidence level '{0}'", option);
+ throw new OptionException (msg, "confidence");
}
char end = option [option.Length - 1];
@@ -163,48 +165,104 @@ namespace Gendarme {
ConfidenceBitmask.Set (confidence);
}
}
+ return true;
+ }
+
+ static string ValidateInputFile (string option, string file)
+ {
+ if (!File.Exists (file)) {
+ string msg = String.Format (CultureInfo.CurrentCulture, "File '{0}' could not be found", file);
+ throw new OptionException (msg, option);
+ }
+ return file;
+ }
+
+ static string ValidateOutputFile (string option, string file)
+ {
+ string msg = String.Empty;
+ if (file.Length > 0) {
+ string path = Path.GetDirectoryName (file);
+ if (path.Length > 0) {
+ if (path.IndexOfAny (Path.GetInvalidPathChars ()) != -1)
+ msg = String.Format (CultureInfo.CurrentCulture, "Invalid path '{0}'", file);
+ else if (!Directory.Exists (path))
+ msg = String.Format (CultureInfo.CurrentCulture, "Path '{0}' does not exists", file);
+ }
+ }
+
+ string fname = Path.GetFileName (file);
+ if ((fname.Length == 0) || (fname.IndexOfAny (Path.GetInvalidFileNameChars ()) != -1)) {
+ msg = String.Format (CultureInfo.CurrentCulture, "Filename '{0}' is not valid", fname);
+ }
+
+ if (msg.Length > 0)
+ throw new OptionException (msg, option);
+
+ return file;
+ }
+
+ static string ValidateRuleSet (string ruleSet)
+ {
+ if (String.IsNullOrEmpty (ruleSet)) {
+ throw new OptionException ("Missing rule set name", "set");
+ }
+ return ruleSet;
+ }
+
+ static int ValidateLimit (string limit)
+ {
+ int defects_limit;
+ if (String.IsNullOrEmpty (limit) || !Int32.TryParse (limit, out defects_limit)) {
+ string msg = String.Format (CultureInfo.CurrentCulture, "Invalid value '{0}' to limit defects", limit);
+ throw new OptionException (msg, "limit");
+ }
+ return defects_limit;
}
byte Parse (string [] args)
{
+ bool severity = false;
+ bool confidence = false;
+ // if supplied, use the user limit on defects (otherwise 2^31 is used)
+ DefectsLimit = Int32.MaxValue;
+
var p = new OptionSet () {
- { "config=", v => config_file = v },
- { "set=", v => rule_set = v },
- { "log=", v => log_file = v },
- { "xml=", v => xml_file = v },
- { "html=", v => html_file = v },
- { "ignore=", v => ignore_file = v },
- { "limit=", v => limit = v },
- { "severity=", v => severity_filter = v },
- { "confidence=",v => confidence_filter = v },
+ { "config=", v => config_file = ValidateInputFile ("config", v) },
+ { "set=", v => rule_set = ValidateRuleSet (v) },
+ { "log=", v => log_file = ValidateOutputFile ("log", v) },
+ { "xml=", v => xml_file = ValidateOutputFile ("xml", v) },
+ { "html=", v => html_file = ValidateOutputFile ("html", v) },
+ { "ignore=", v => ignore_file = ValidateInputFile ("ignore", v) },
+ { "limit=", v => DefectsLimit = ValidateLimit (v) },
+ { "severity=", v => severity = ParseSeverity (v) },
+ { "confidence=",v => confidence = ParseConfidence (v) },
{ "v|verbose", v => ++VerbosityLevel },
+ { "console", v => console = v != null },
{ "quiet", v => quiet = v != null },
{ "version", v => version = v != null },
{ "h|?|help", v => help = v != null },
};
- assembly_names = p.Parse (args);
- // if supplied, use the user limit on defects (otherwise 2^31 is used)
- int defects_limit;
- if (String.IsNullOrEmpty (limit) || !Int32.TryParse (limit, out defects_limit))
- defects_limit = Int32.MaxValue;
- DefectsLimit = defects_limit;
+ try {
+ assembly_names = p.Parse (args);
+ }
+ catch (OptionException e) {
+ Console.WriteLine ("Error parsing option '{0}' : {1}", e.OptionName, e.Message);
+ Console.WriteLine ();
+ return 1;
+ }
// by default the runner will ignore Audit and Low severity defects
- if (String.IsNullOrEmpty (severity_filter)) {
+ if (!severity) {
SeverityBitmask.SetAll ();
SeverityBitmask.Clear (Severity.Audit);
SeverityBitmask.Clear (Severity.Low);
- } else {
- ParseSeverity ();
}
// by default the runner will ignore Low confidence defects
- if (String.IsNullOrEmpty (confidence_filter)) {
+ if (!confidence) {
ConfidenceBitmask.SetAll ();
ConfidenceBitmask.Clear (Confidence.Low);
- } else {
- ParseConfidence ();
}
return (byte) ((assembly_names.Count > 0) ? 0 : 1);
@@ -281,7 +339,7 @@ namespace Gendarme {
}
// generate text report (default, to console, if xml and html aren't specified)
- if ((log_file != null) || ((xml_file == null) && (html_file == null))) {
+ if (console || (log_file != null) || ((xml_file == null) && (html_file == null))) {
using (TextResultWriter writer = new TextResultWriter (this, log_file)) {
writer.Report ();
}
@@ -380,7 +438,7 @@ namespace Gendarme {
private static string TimeToString (TimeSpan time)
{
if (time >= TimeSpan.FromMilliseconds (100))
- return string.Format ("{0:0.0} seconds", time.TotalSeconds);
+ return String.Format (CultureInfo.CurrentCulture, "{0:0.0} seconds", time.TotalSeconds);
else
return "<0.1 seconds";
}
@@ -441,9 +499,10 @@ namespace Gendarme {
if (null != log_file || null != xml_file || null != html_file) {
List<string> files = new List<string> (new string [] { log_file, xml_file, html_file });
files.RemoveAll (string.IsNullOrEmpty);
- hint = string.Format ("Report{0} written to: {1}.",
+ hint = String.Format (CultureInfo.CurrentCulture, "Report{0} written to: {1}.",
(files.Count > 1) ? "s" : string.Empty,
- string.Join (",", files.Select (file => string.Format ("`{0}'", file)).ToArray ()));
+ string.Join (",", files.Select (file =>
+ String.Format (CultureInfo.CurrentCulture, "`{0}'", file)).ToArray ()));
}
if (Defects.Count == 0)
@@ -519,6 +578,7 @@ namespace Gendarme {
Console.WriteLine (" --confidence [all | [[low | normal | high | total][+|-]],...");
Console.WriteLine ("\t\t\tFilter defects for the specified confidence levels.");
Console.WriteLine ("\t\t\tDefault is 'normal+'");
+ Console.WriteLine (" --console\t\tShow defects on the console even if --log, --xml or --html are specified.");
Console.WriteLine (" --quiet\t\tUsed to disable progress and other information which is normally written to stdout.");
Console.WriteLine (" --v\t\t\tWhen present additional progress information is written to stdout (can be used multiple times).");
Console.WriteLine (" assemblies\t\tSpecify the assemblies to verify.");
diff --git a/gendarme/console/Helpers.cs b/gendarme/console/Helpers.cs
index c399452..3ef8361 100644
--- a/gendarme/console/Helpers.cs
+++ b/gendarme/console/Helpers.cs
@@ -38,7 +38,7 @@ namespace Gendarme {
{
Assembly executing = Assembly.GetExecutingAssembly ();
foreach (string resource in executing.GetManifestResourceNames ()) {
- if (resource.EndsWith (resourceName))
+ if (resource.EndsWith (resourceName, StringComparison.Ordinal))
return executing.GetManifestResourceStream (resource);
}
return null;
diff --git a/gendarme/console/IgnoreFileList.cs b/gendarme/console/IgnoreFileList.cs
index acf0d1d..b714ded 100644
--- a/gendarme/console/IgnoreFileList.cs
+++ b/gendarme/console/IgnoreFileList.cs
@@ -61,13 +61,13 @@ namespace Gendarme {
private void Parse ()
{
+ char [] buffer = new char [4096];
while (files.Count > 0) {
string fileName = files.Pop ();
- using (StreamReader sr = new StreamReader (fileName)) {
- string s = sr.ReadLine ();
- while (s != null) {
- ProcessLine (s);
- s = sr.ReadLine ();
+ using (StreamLineReader sr = new StreamLineReader (fileName)) {
+ while (!sr.EndOfStream) {
+ int length = sr.ReadLine (buffer, 0, buffer.Length);
+ ProcessLine (buffer, length);
}
}
}
@@ -87,19 +87,33 @@ namespace Gendarme {
rules.Add (rule);
}
- private void ProcessLine (string line)
+ static string GetString (char [] buffer, int length)
{
- if (line.Length < 1)
+ // skip the 'type' + ':' characters when looking for whitespace separator(s)
+ int start = 2;
+ while (Char.IsWhiteSpace (buffer [start]) && (start < buffer.Length))
+ start++;
+
+ int end = length;
+ while (Char.IsWhiteSpace (buffer [end]) && (end >= start))
+ end--;
+
+ return new string (buffer, start, end - start);
+ }
+
+ private void ProcessLine (char [] buffer, int length)
+ {
+ if (length < 1)
return;
- switch (line [0]) {
+ switch (buffer [0]) {
case '#': // comment
break;
case 'R': // rule
- current_rule = line.Substring (line.LastIndexOf (' ') + 1);
+ current_rule = GetString (buffer, length);
break;
case 'A': // assembly - we support Name, FullName and *
- string target = line.Substring (2).Trim ();
+ string target = GetString (buffer, length);
if (target == "*") {
foreach (AssemblyDefinition assembly in Runner.Assemblies) {
Add (assemblies, current_rule, assembly.Name.FullName);
@@ -109,19 +123,19 @@ namespace Gendarme {
}
break;
case 'T': // type (no space allowed)
- Add (types, current_rule, line.Substring (line.LastIndexOf (' ') + 1));
+ Add (types, current_rule, GetString (buffer, length));
break;
case 'M': // method
- Add (methods, current_rule, line.Substring (2).Trim ());
+ Add (methods, current_rule, GetString (buffer, length));
break;
case 'N': // namespace - special case (no need to resolve)
- base.Add (current_rule, NamespaceDefinition.GetDefinition (line.Substring (2).Trim ()));
+ base.Add (current_rule, NamespaceDefinition.GetDefinition (GetString (buffer, length)));
break;
case '@': // include file
- files.Push (line.Substring (2).Trim ());
+ files.Push (GetString (buffer, length));
break;
default:
- Console.Error.WriteLine ("Bad ignore entry : '{0}'", line);
+ Console.Error.WriteLine ("Bad ignore entry : '{0}'", new string (buffer));
break;
}
}
@@ -148,14 +162,13 @@ namespace Gendarme {
foreach (ModuleDefinition module in assembly.Modules) {
foreach (TypeDefinition type in module.GetAllTypes ()) {
- if (types.TryGetValue (type.FullName, out rules)) {
+ if (types.TryGetValue (type.GetFullName (), out rules)) {
AddList (type, rules);
}
if (type.HasMethods) {
foreach (MethodDefinition method in type.Methods) {
- // FIXME avoid (allocations in) ToString call
- if (methods.TryGetValue (method.ToString (), out rules)) {
+ if (methods.TryGetValue (method.GetFullName (), out rules)) {
AddList (method, rules);
}
}
diff --git a/gendarme/console/Makefile.am b/gendarme/console/Makefile.am
index f74ab23..43c0a4a 100644
--- a/gendarme/console/Makefile.am
+++ b/gendarme/console/Makefile.am
@@ -30,7 +30,7 @@ gendarme_prefix_resources = $(addprefix $(srcdir)/, $(gendarme_resources))
gendarme_build_resources = $(foreach res,$(gendarme_prefix_resources), $(addprefix -resource:,$(res)),$(notdir $(res)))
../bin/gendarme.exe: $(gendarme_build_sources) $(gendarme_prefix_resources)
- $(GMCS) $(GENDARME_OPTIONS) -r:$(CECIL_ASM) -r:System.Xml.Linq -r:../bin/Gendarme.Framework.dll \
+ $(MCS) $(GENDARME_OPTIONS) -r:$(CECIL_ASM) -r:System.Xml.Linq -r:../bin/Gendarme.Framework.dll \
-out:$@ $(gendarme_build_sources) $(gendarme_build_resources)
self-test: ../bin/gendarme.exe
diff --git a/gendarme/console/Makefile.in b/gendarme/console/Makefile.in
index d41172d..85b2b66 100644
--- a/gendarme/console/Makefile.in
+++ b/gendarme/console/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,13 +60,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = gendarme.exe.config
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(gendarmedir)"
-gendarmeSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(gendarme_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -109,6 +160,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -122,9 +174,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -234,14 +289,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/console/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/console/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/console/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/console/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -251,6 +306,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -259,27 +315,44 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
gendarme.exe.config: $(top_builddir)/config.status $(srcdir)/gendarme.exe.config.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-gendarmeSCRIPTS: $(gendarme_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(gendarmedir)" || $(MKDIR_P) "$(DESTDIR)$(gendarmedir)"
- @list='$(gendarme_SCRIPTS)'; for p in $$list; do \
+ @list='$(gendarme_SCRIPTS)'; test -n "$(gendarmedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gendarmedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gendarmedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(gendarmeSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(gendarmedir)/$$f'"; \
- $(gendarmeSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(gendarmedir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(gendarmedir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(gendarmedir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-gendarmeSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(gendarme_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(gendarmedir)/$$f'"; \
- rm -f "$(DESTDIR)$(gendarmedir)/$$f"; \
- done
+ @list='$(gendarme_SCRIPTS)'; test -n "$(gendarmedir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(gendarmedir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -303,13 +376,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -330,10 +407,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -341,6 +423,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -360,6 +443,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -368,18 +453,28 @@ install-data-am: install-gendarmeSCRIPTS
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -416,11 +511,12 @@ uninstall-am: uninstall-gendarmeSCRIPTS
../bin/gendarme.exe: $(gendarme_build_sources) $(gendarme_prefix_resources)
- $(GMCS) $(GENDARME_OPTIONS) -r:$(CECIL_ASM) -r:System.Xml.Linq -r:../bin/Gendarme.Framework.dll \
+ $(MCS) $(GENDARME_OPTIONS) -r:$(CECIL_ASM) -r:System.Xml.Linq -r:../bin/Gendarme.Framework.dll \
-out:$@ $(gendarme_build_sources) $(gendarme_build_resources)
self-test: ../bin/gendarme.exe
mono --debug ../bin/gendarme.exe ../bin/gendarme.exe
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/console/Settings.cs b/gendarme/console/Settings.cs
index 3ecafec..23b5429 100644
--- a/gendarme/console/Settings.cs
+++ b/gendarme/console/Settings.cs
@@ -4,7 +4,7 @@
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using System.IO;
using System.Reflection;
using System.Collections.Generic;
@@ -150,7 +151,8 @@ namespace Gendarme {
private void OnValidationErrors (object sender, ValidationEventArgs args)
{
- validation_errors.Add (args.Exception.Message.Replace ("XmlSchema error", String.Format ("Error in the configuration file {0}", config_file)));
+ validation_errors.Add (args.Exception.Message.Replace ("XmlSchema error",
+ String.Format (CultureInfo.CurrentCulture, "Error in the configuration file {0}", config_file)));
}
private void ValidateXmlDocument ()
@@ -228,7 +230,8 @@ namespace Gendarme {
static Exception GetException (string message, string ruleName, string propertyName, string value)
{
- return new XmlException (String.Format (message + ". Review your configuration file.", ruleName, propertyName, value));
+ return new XmlException (String.Format (CultureInfo.CurrentCulture,
+ message + ". Review your configuration file.", ruleName, propertyName, value));
}
public bool Load ()
diff --git a/gendarme/console/XmlResultWriter.cs b/gendarme/console/XmlResultWriter.cs
index 3a5e0f4..3dcdff1 100644
--- a/gendarme/console/XmlResultWriter.cs
+++ b/gendarme/console/XmlResultWriter.cs
@@ -31,6 +31,7 @@
//
using System;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
@@ -70,7 +71,7 @@ namespace Gendarme {
{
writer.WriteStartDocument ();
writer.WriteStartElement ("gendarme-output");
- writer.WriteAttributeString ("date", DateTime.UtcNow.ToString ());
+ writer.WriteAttributeString ("date", DateTime.UtcNow.ToString (CultureInfo.InvariantCulture));
}
protected override void Write ()
diff --git a/gendarme/console/gendarme.csproj b/gendarme/console/gendarme.csproj
index 4f70bf5..eefae5e 100755
--- a/gendarme/console/gendarme.csproj
+++ b/gendarme/console/gendarme.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,13 @@
<AssemblyName>gendarme</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <SignAssembly>false</SignAssembly>
+ <AssemblyOriginatorKeyFile>gendarme.snk</AssemblyOriginatorKeyFile>
<PublishUrl>http://localhost/gendarme/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,12 +31,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <SignAssembly>false</SignAssembly>
- <AssemblyOriginatorKeyFile>gendarme.snk</AssemblyOriginatorKeyFile>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -42,6 +43,7 @@
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -50,6 +52,7 @@
<DefineConstants>TRACE;RELEASE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -88,6 +91,10 @@
<Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
<Name>Gendarme.Framework</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\..\cecil\symbols\mdb\Mono.Cecil.Mdb.csproj">
+ <Project>{8559DD7F-A16F-46D0-A05A-9139FAEBA8FD}</Project>
+ <Name>Mono.Cecil.Mdb</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="ChangeLog" />
@@ -95,30 +102,53 @@
<EmbeddedResource Include="gendarme.xsl" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
+ <Target Name="BeforeBuild">
+ </Target>
-->
+ <Target Name="AfterBuild">
+ <Copy
+ SourceFiles="$(TargetDir)..\..\..\rules\rules.xml"
+ DestinationFolder="$(TargetDir)"
+ SkipUnchangedFiles="True"
+ />
+ </Target>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
- <PostBuildEvent>copy "$(TargetDir)..\..\..\rules\rules.xml" "$(TargetDir)"
-copy "$(TargetDir)..\..\..\..\..\cecil\bin\net_3_5_Release\Mono.Cecil.Pdb.*" "$(TargetDir)"
-copy "$(TargetDir)..\..\..\..\..\cecil\bin\net_3_5_Release\Mono.Cecil.Mdb.*" "$(TargetDir)"</PostBuildEvent>
+ <PostBuildEvent>
+ </PostBuildEvent>
</PropertyGroup>
<ProjectExtensions>
<MonoDevelop>
diff --git a/gendarme/framework/Gendarme.Framework.Engines/SuppressMessageEngine.cs b/gendarme/framework/Gendarme.Framework.Engines/SuppressMessageEngine.cs
index a98a6bc..70ef7ba 100644
--- a/gendarme/framework/Gendarme.Framework.Engines/SuppressMessageEngine.cs
+++ b/gendarme/framework/Gendarme.Framework.Engines/SuppressMessageEngine.cs
@@ -71,7 +71,7 @@ namespace Gendarme.Framework.Engines {
{
// we only need to check the custom attributes if [SuppressMessage] is referenced (note: won't work for mscorlib)
AssemblyDefinition assembly = (sender as AssemblyDefinition);
- if (assembly.MainModule.HasTypeReference (SuppressMessage)) {
+ if (assembly.MainModule.AnyTypeReference ((TypeReference tr) => { return tr.IsNamed ("System.Diagnostics.CodeAnalysis", "SuppressMessageAttribute"); })) {
Controller.BuildingCustomAttributes += new EventHandler<EngineEventArgs> (OnCustomAttributes);
} else {
Controller.BuildingCustomAttributes -= new EventHandler<EngineEventArgs> (OnCustomAttributes);
@@ -103,7 +103,7 @@ namespace Gendarme.Framework.Engines {
foreach (CustomAttribute ca in cap.CustomAttributes) {
if (!ca.HasConstructorArguments)
continue;
- if (ca.AttributeType.FullName != SuppressMessage)
+ if (!ca.AttributeType.IsNamed ("System.Diagnostics.CodeAnalysis", "SuppressMessageAttribute"))
continue;
var arguments = ca.ConstructorArguments;
@@ -200,7 +200,7 @@ namespace Gendarme.Framework.Engines {
foreach (ModuleDefinition module in assembly.Modules) {
// TODO ...
foreach (TypeDefinition type in module.GetAllTypes ()) {
- if (targets.TryGetValue (type.FullName, out rules))
+ if (targets.TryGetValue (type.GetFullName (), out rules))
Add (type, rules);
if (type.HasMethods) {
@@ -213,11 +213,11 @@ namespace Gendarme.Framework.Engines {
targets.Clear ();
}
- private void ResolveMethod (IMetadataTokenProvider method)
+ private void ResolveMethod (MemberReference method)
{
HashSet<string> rules;
- string m = method.ToString ();
+ string m = method.GetFullName ();
m = m.Substring (m.IndexOf (' ') + 1);
if (targets.TryGetValue (m, out rules))
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/Log.cs b/gendarme/framework/Gendarme.Framework.Helpers/Log.cs
index 262c7e9..759ba9f 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/Log.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/Log.cs
@@ -30,6 +30,7 @@ using System.Diagnostics;
using System.Collections.Generic;
using Mono.Cecil;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Framework.Helpers {
@@ -83,9 +84,9 @@ namespace Gendarme.Framework.Helpers {
}
[Conditional ("DEBUG")]
- public static void WriteLine<T> (T category, MethodDefinition method)
+ public static void WriteLine<T> (T category, MemberReference member)
{
- WriteLine (typeof (T).Name, method);
+ WriteLine (typeof (T).Name, member);
}
// WriteLine (string)
@@ -104,10 +105,15 @@ namespace Gendarme.Framework.Helpers {
}
[Conditional ("DEBUG")]
- public static void WriteLine (string category, MethodDefinition method)
+ public static void WriteLine (string category, MemberReference member)
{
- if (IsEnabled (category))
- Debug.WriteLine (new MethodPrinter (method).ToString ());
+ if (IsEnabled (category)) {
+ MethodDefinition md = (member as MethodDefinition);
+ if (md != null)
+ Debug.WriteLine (new MethodPrinter (md).ToString ());
+ else
+ Debug.WriteLine (member.GetFullName ());
+ }
}
// Misc
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/MethodPrinter.cs b/gendarme/framework/Gendarme.Framework.Helpers/MethodPrinter.cs
index af3638c..ef40dcc 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/MethodPrinter.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/MethodPrinter.cs
@@ -15,6 +15,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using System.Text;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -60,17 +61,28 @@ namespace Gendarme.Framework.Helpers {
buffer.Append ("* ");
else
buffer.Append (" ");
- buffer.AppendFormat (" {0}: {1}", instr.Offset.ToString ("X4"),
- instr.OpCode.Name);
+
+ buffer.Append (" ");
+ buffer.Append (instr.Offset.ToString ("X4", CultureInfo.InvariantCulture));
+ buffer.Append (": ");
+ buffer.Append (instr.OpCode.Name);
+
int[] targets = BranchTargets (instr);
- if (targets != null)
- foreach (int target in targets)
- buffer.AppendFormat (" {0}", target.ToString ("X4"));
- else if (instr.Operand is string)
- buffer.AppendFormat (" \"{0}\"", instr.Operand.ToString ());
- else if (instr.Operand != null)
- buffer.AppendFormat (" {0}", instr.Operand.ToString ());
- buffer.AppendLine (string.Empty);
+ if (targets != null) {
+ foreach (int target in targets) {
+ buffer.Append (' ');
+ buffer.Append (target.ToString ("X4", CultureInfo.InvariantCulture));
+ }
+ } else if (instr.Operand is string) {
+ buffer.Append (" \"");
+ buffer.Append (instr.Operand);
+ buffer.Append ('"');
+ } else if (instr.Operand != null) {
+ buffer.Append (" ");
+ buffer.Append (instr.Operand);
+ }
+ buffer.AppendLine ();
+
prevInstr = instr;
if (EndsTryRegion (instr) != null)
buffer.AppendLine ("} (Try)");
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/MethodSignature.cs b/gendarme/framework/Gendarme.Framework.Helpers/MethodSignature.cs
index e6fd265..a17ae07 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/MethodSignature.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/MethodSignature.cs
@@ -34,6 +34,7 @@ using System.Collections.Generic;
using System.Text;
using Mono.Cecil;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Framework.Helpers {
@@ -49,7 +50,7 @@ namespace Gendarme.Framework.Helpers {
/// }
/// </code>
/// </example>
- // <seealso cref="Gendarme.Framework.Helpers.MethodSignatures"/>
+ /// <seealso cref="Gendarme.Framework.Helpers.MethodSignatures"/>
public class MethodSignature {
/// <summary>
@@ -121,7 +122,7 @@ namespace Gendarme.Framework.Helpers {
if (Name != null && method.Name != Name)
return false;
- if (ReturnType != null && method.ReturnType.FullName != ReturnType)
+ if (ReturnType != null && !method.ReturnType.IsNamed (ReturnType))
return false;
if (Parameters != null) {
@@ -132,7 +133,7 @@ namespace Gendarme.Framework.Helpers {
for (int i = 0; i < Parameters.Count; i++) {
if (Parameters [i] == null)
continue;//ignore parameter
- if (Parameters [i] != pdc [i].ParameterType.FullName) {
+ if (!pdc [i].ParameterType.IsNamed (Parameters [i])) {
return false;
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/MethodSignatures.cs b/gendarme/framework/Gendarme.Framework.Helpers/MethodSignatures.cs
index 3b8b4ad..27116fa 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/MethodSignatures.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/MethodSignatures.cs
@@ -32,6 +32,7 @@ using System;
using System.Collections.Generic;
using Mono.Cecil;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Framework.Helpers {
@@ -120,19 +121,23 @@ namespace Gendarme.Framework.Helpers {
// TryParse
public static readonly MethodSignature TryParse = new MethodSignature ("TryParse",
delegate (MethodReference method) {
- if (method.ReturnType.FullName != "System.Boolean")
+ if (!method.ReturnType.IsNamed ("System", "Boolean"))
return false;
IList<ParameterDefinition> pdc = method.Parameters;
- if (pdc [0].ParameterType.FullName != "System.String")
+ if (!pdc [0].ParameterType.IsNamed ("System", "String"))
return false;
TypeReference last = pdc [pdc.Count - 1].ParameterType;
if (!last.IsByReference)
return false;
- string pt_name = last.FullName;
- return (String.Compare (pt_name, 0, method.DeclaringType.FullName, 0, pt_name.Length - 1) == 0);
+ TypeReference mtype = method.DeclaringType;
+ if (last.Namespace != mtype.Namespace)
+ return false;
+
+ string pt_name = last.Name;
+ return (String.Compare (pt_name, 0, mtype.Name, 0, pt_name.Length - 1, StringComparison.Ordinal) == 0);
}
);
@@ -141,9 +146,9 @@ namespace Gendarme.Framework.Helpers {
delegate (MethodReference method) {
if (!method.HasParameters)
return false;
- if (method.ReturnType.FullName != method.DeclaringType.FullName)
+ if (!method.ReturnType.IsNamed (method.DeclaringType.Namespace, method.DeclaringType.Name))
return false;
- return (method.Parameters [0].ParameterType.FullName == "System.String");
+ return method.Parameters [0].ParameterType.IsNamed ("System", "String");
}
);
}
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/OpCodeBitmask.cs b/gendarme/framework/Gendarme.Framework.Helpers/OpCodeBitmask.cs
index f7ceeac..6058fbe 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/OpCodeBitmask.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/OpCodeBitmask.cs
@@ -26,6 +26,7 @@
//
using System;
+using System.Globalization;
using System.Text;
using Mono.Cecil.Cil;
@@ -144,12 +145,12 @@ namespace Gendarme.Framework.Helpers {
return Equals (obj as OpCodeBitmask);
}
- public bool Equals (OpCodeBitmask set)
+ public bool Equals (OpCodeBitmask other)
{
- if (set == null)
+ if (other == null)
return false;
- return ((mask [0] == set.mask [0]) || (mask [1] == set.mask [1]) ||
- (mask [2] == set.mask [2]) || (mask [3] == set.mask [3]));
+ return ((mask [0] == other.mask [0]) || (mask [1] == other.mask [1]) ||
+ (mask [2] == other.mask [2]) || (mask [3] == other.mask [3]));
}
public override int GetHashCode ()
@@ -159,7 +160,8 @@ namespace Gendarme.Framework.Helpers {
public override string ToString ()
{
- return String.Format ("0x{0:X}:0x{1:X}:0x{2:X}:0x{3:X}", mask [0], mask [1], mask [2], mask [3]);
+ return String.Format (CultureInfo.InvariantCulture, "0x{0:X}:0x{1:X}:0x{2:X}:0x{3:X}",
+ mask [0], mask [1], mask [2], mask [3]);
}
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/StackEntryAnalysis.cs b/gendarme/framework/Gendarme.Framework.Helpers/StackEntryAnalysis.cs
index 61d5f9b..156aef1 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/StackEntryAnalysis.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/StackEntryAnalysis.cs
@@ -97,9 +97,9 @@ namespace Gendarme.Framework.Helpers {
return this == other;
}
- public bool Equals (StoreSlot storeSlot)
+ public bool Equals (StoreSlot other)
{
- return this == storeSlot;
+ return this == other;
}
public override int GetHashCode ()
@@ -182,40 +182,14 @@ namespace Gendarme.Framework.Helpers {
return false;
}
- public bool Equals (InstructionWithLeave iwl)
+ public bool Equals (InstructionWithLeave other)
{
- if (Instruction != iwl.Instruction)
- return false;
-
- if (LeaveStack == null)
- return (iwl.LeaveStack == null);
-
- if (iwl.LeaveStack == null)
- return false;
-
- if (LeaveStack.Length != iwl.LeaveStack.Length)
- return false;
-
- for (int i = 0; i < LeaveStack.Length; i++) {
- if (LeaveStack [i] != iwl.LeaveStack [i])
- return false;
- }
- return true;
+ return (Instruction == other.Instruction);
}
public override int GetHashCode ()
{
- int hc = 0;
-
- unchecked {
- hc ^= Instruction.GetHashCode ();
- if (LeaveStack != null) {
- foreach (Instruction ins in LeaveStack)
- hc ^= ins.GetHashCode ();
- }
- }
-
- return hc;
+ return Instruction.GetHashCode ();
}
public static bool operator == (InstructionWithLeave left, InstructionWithLeave right)
@@ -527,7 +501,7 @@ namespace Gendarme.Framework.Helpers {
return new StoreSlot (StoreType.Argument, ins.OpCode.Code - Code.Ldarg_0);
case Code.Ldarg_S:
case Code.Ldarg: {
- int sequence = ((ParameterDefinition) ins.Operand).GetSequence ();
+ int sequence = ((ParameterDefinition) ins.Operand).Index + 1;
if (!this.Method.HasThis)
sequence--;
return new StoreSlot (StoreType.Argument, sequence);
@@ -581,7 +555,7 @@ namespace Gendarme.Framework.Helpers {
case Code.Starg_S: //store arg (not ref / out etc)
case Code.Starg: {
- int sequence = ((ParameterDefinition) ins.Operand).GetSequence ();
+ int sequence = ((ParameterDefinition) ins.Operand).Index + 1;
if (!this.Method.HasThis)
sequence--;
return new StoreSlot (StoreType.Argument, sequence);
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/StackEntryUsageResult.cs b/gendarme/framework/Gendarme.Framework.Helpers/StackEntryUsageResult.cs
index 1fa302f..9c69872 100644
--- a/gendarme/framework/Gendarme.Framework.Helpers/StackEntryUsageResult.cs
+++ b/gendarme/framework/Gendarme.Framework.Helpers/StackEntryUsageResult.cs
@@ -61,9 +61,9 @@ namespace Gendarme.Framework.Helpers {
return false;
}
- public bool Equals (StackEntryUsageResult usageResult)
+ public bool Equals (StackEntryUsageResult other)
{
- return (Instruction == usageResult.Instruction) && (StackOffset == usageResult.StackOffset);
+ return (Instruction == other.Instruction) && (StackOffset == other.StackOffset);
}
public override int GetHashCode ()
diff --git a/gendarme/framework/Gendarme.Framework.Helpers/StreamLineReader.cs b/gendarme/framework/Gendarme.Framework.Helpers/StreamLineReader.cs
new file mode 100644
index 0000000..3242474
--- /dev/null
+++ b/gendarme/framework/Gendarme.Framework.Helpers/StreamLineReader.cs
@@ -0,0 +1,122 @@
+//
+// StreamLineReader - A StringReader-like class that avoid creating string
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.IO;
+
+namespace Gendarme.Framework.Helpers {
+
+ // note: inheriting from StreamReader was not possible since we cannot
+ // override EndOfStream and ensure integrity with other Read ops
+ public class StreamLineReader : IDisposable {
+
+ StreamReader sr;
+ char [] buff;
+ int n;
+ int max;
+
+ public StreamLineReader (string fileName)
+ {
+ sr = new StreamReader (fileName);
+ Initialize ();
+ }
+
+ public StreamLineReader (Stream stream)
+ {
+ sr = new StreamReader (stream);
+ Initialize ();
+ }
+
+ void Initialize ()
+ {
+ buff = new char [4096];
+ max = n = buff.Length;
+ }
+
+ public bool EndOfStream {
+ get { return (n == max || max == 0) && sr.EndOfStream; }
+ }
+
+ public int ReadLine (char [] buffer, int index, int count)
+ {
+ if (Disposed)
+ throw new ObjectDisposedException ("StreamLineReader");
+ if (buffer == null)
+ throw new ArgumentNullException ("buffer");
+ if (index < 0)
+ throw new ArgumentOutOfRangeException ("index", "< 0");
+ if (count < 0)
+ throw new ArgumentOutOfRangeException ("count", "< 0");
+ // ordered to avoid possible integer overflow
+ if (index > buffer.Length - count)
+ throw new ArgumentException ("index + count > buffer.Length");
+
+ int len = 0;
+ while (len < count) {
+ if (n == max) {
+ max = sr.ReadBlock (buff, 0, buff.Length);
+ if (max == 0) break;
+ n = 0;
+ }
+ char c = buff [n++];
+ switch (c) {
+ case '\r':
+ continue;
+ case '\n':
+ Array.Clear (buffer, len, buffer.Length - len);
+ return len;
+ default:
+ buffer [index++] = c;
+ len++;
+ break;
+ }
+ }
+ return len;
+ }
+
+ public void Dispose ()
+ {
+ Dispose (true);
+ GC.SuppressFinalize (this);
+ }
+
+ protected virtual void Dispose (bool disposing)
+ {
+ try {
+ if (!Disposed)
+ sr.Dispose ();
+ }
+ finally {
+ Disposed = true;
+ }
+ }
+
+ protected bool Disposed { get; private set; }
+ }
+}
+
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/CecilRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/CecilRocks.cs
index a1b2cfc..12c6345 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/CecilRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/CecilRocks.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Collections.Generic;
using Mono.Cecil;
using Mono.Cecil.Metadata;
@@ -157,5 +158,30 @@ namespace Gendarme.Framework.Rocks {
// compare assemblies tokens (but do not recurse)
return other == null ? false : self_assembly.MetadataToken.Equals (other_assembly.MetadataToken);
}
+
+ static Dictionary<MemberReference, string> full_name_cache = new Dictionary<MemberReference, string> ();
+
+ /// <summary>
+ /// Get the string value of the MemberReference FullName property without the cost
+ /// of allocating a new string for each (or most) calls.
+ /// </summary>
+ /// <param name="self">The MemberReference instance where the method is applied.</param>
+ /// <returns>The cached FullName property of the MemberReference</returns>
+ /// <remarks>Cecil needs to rebuild most of the FullName properties on each call in order to
+ /// be able to write assemblies. However this is a waste of memory when an application, like
+ /// Gendarme, use it for read-only purposes.</remarks>
+ public static string GetFullName (this MemberReference self)
+ {
+ if (self == null)
+ return String.Empty;
+
+ string full_name;
+ if (!full_name_cache.TryGetValue (self, out full_name)) {
+ full_name = self.FullName;
+ full_name_cache.Add (self, full_name);
+ }
+
+ return full_name;
+ }
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/CustomAttributeRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/CustomAttributeRocks.cs
index 26b6401..ebfb1ba 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/CustomAttributeRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/CustomAttributeRocks.cs
@@ -44,51 +44,16 @@ namespace Gendarme.Framework.Rocks {
/// </summary>
public static class CustomAttributeRocks {
- internal static string [] GeneratedCodeAttributes = {
- "System.CodeDom.Compiler.GeneratedCodeAttribute",
- "System.Runtime.CompilerServices.CompilerGeneratedAttribute"
- };
-
- /// <summary>
- /// Check if the custom attribute collection contains an attribute of a specified type.
- /// </summary>
- /// <param name="self">The CustomAttribute enumerable on which the extension method can be called.</param>
- /// <param name="attributeTypeName">Full type name of the attribute class.</param>
- /// <returns>True if the collection contains an attribute of the same name,
- /// False otherwise.</returns>
- public static bool ContainsType (this IEnumerable<CustomAttribute> self, string attributeTypeName)
+ internal static bool HasAnyGeneratedCodeAttribute (this ICustomAttributeProvider self)
{
- if (attributeTypeName == null)
- throw new ArgumentNullException ("attributeTypeName");
- if (self == null)
+ if ((self == null) || !self.HasCustomAttributes)
return false;
- foreach (CustomAttribute ca in self) {
- if (ca.AttributeType.FullName == attributeTypeName)
+ foreach (CustomAttribute ca in self.CustomAttributes) {
+ TypeReference cat = ca.AttributeType;
+ if (cat.IsNamed ("System.CodeDom.Compiler", "GeneratedCodeAttribute") ||
+ cat.IsNamed ("System.Runtime.CompilerServices", "CompilerGeneratedAttribute")) {
return true;
- }
- return false;
- }
-
- /// <summary>
- /// Check if the custom attribute collection contains any of the specified type.
- /// </summary>
- /// <param name="self">The CustomAttribute enumerable on which the extension method can be called.</param>
- /// <param name="attributeTypeNames">A strings array of full type names of the attributes.</param>
- /// <returns>True if the collection contains any attribute matching one specified,
- /// False otherwise.</returns>
- public static bool ContainsAnyType (this IEnumerable<CustomAttribute> self, string[] attributeTypeNames)
- {
- if (attributeTypeNames == null)
- throw new ArgumentNullException ("attributeTypeNames");
- if (self == null)
- return false;
-
- foreach (CustomAttribute ca in self) {
- string fullname = ca.AttributeType.FullName;
- foreach (string attribute_full_name in attributeTypeNames) {
- if (fullname == attribute_full_name)
- return true;
}
}
return false;
@@ -99,17 +64,25 @@ namespace Gendarme.Framework.Rocks {
/// </summary>
/// <param name="self">The ICustomAttributeProvider (e.g. AssemblyDefinition, TypeReference, MethodReference,
/// FieldReference...) on which the extension method can be called.</param>
- /// <param name="attributeName">Full name of the attribute class</param>
+ /// <param name="nameSpace">The namespace of the attribute to be matched</param>
+ /// <param name="name">The name of the attribute to be matched</param>
/// <returns>True if the provider contains an attribute of the same name,
/// False otherwise.</returns>
- public static bool HasAttribute (this ICustomAttributeProvider self, string attributeName)
+ public static bool HasAttribute (this ICustomAttributeProvider self, string nameSpace, string name)
{
- if (attributeName == null)
- throw new ArgumentNullException ("attributeName");
+ if (nameSpace == null)
+ throw new ArgumentNullException ("nameSpace");
+ if (name == null)
+ throw new ArgumentNullException ("name");
if ((self == null) || !self.HasCustomAttributes)
return false;
- return self.CustomAttributes.ContainsType (attributeName);
+
+ foreach (CustomAttribute ca in self.CustomAttributes) {
+ if (ca.AttributeType.IsNamed (nameSpace, name))
+ return true;
+ }
+ return false;
}
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs
index 39641f5..bf3b30b 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/FieldRocks.cs
@@ -49,10 +49,9 @@ namespace Gendarme.Framework.Rocks {
if (field == null)
return false;
- if (field.HasCustomAttributes) {
- if (field.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes))
- return true;
- }
+ if (field.HasAnyGeneratedCodeAttribute ())
+ return true;
+
return field.DeclaringType.IsGeneratedCode ();
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/InstructionRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/InstructionRocks.cs
index 6c8aaf6..aef546a 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/InstructionRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/InstructionRocks.cs
@@ -27,6 +27,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -291,7 +292,7 @@ namespace Gendarme.Framework.Rocks {
case StackBehaviour.Varpop:
switch (self.OpCode.FlowControl) {
case FlowControl.Return:
- return method.ReturnType.FullName == "System.Void" ? 0 : 1;
+ return method.ReturnType.IsNamed ("System", "Void") ? 0 : 1;
case FlowControl.Call:
IMethodSignature calledMethod = (IMethodSignature) self.Operand;
@@ -310,7 +311,8 @@ namespace Gendarme.Framework.Rocks {
case StackBehaviour.PopAll:
return -1;
default:
- string unknown = String.Format ("'{0}' is not a valid value for instruction '{1}'.",
+ string unknown = String.Format (CultureInfo.InvariantCulture,
+ "'{0}' is not a valid value for instruction '{1}'.",
self.OpCode.StackBehaviourPush, self.OpCode);
throw new InvalidOperationException (unknown);
}
@@ -344,11 +346,12 @@ namespace Gendarme.Framework.Rocks {
case StackBehaviour.Varpush:
IMethodSignature calledMethod = (IMethodSignature) self.Operand;
if (calledMethod != null)
- return (calledMethod.ReturnType.FullName == "System.Void") ? 0 : 1;
+ return calledMethod.ReturnType.IsNamed ("System", "Void") ? 0 : 1;
throw new NotImplementedException ("Varpush not supported for this Instruction.");
default:
- string unknown = String.Format ("'{0}' is not a valid value for instruction '{1}'.",
+ string unknown = String.Format (CultureInfo.InvariantCulture,
+ "'{0}' is not a valid value for instruction '{1}'.",
self.OpCode.StackBehaviourPush, self.OpCode);
throw new InvalidOperationException (unknown);
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/MethodRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/MethodRocks.cs
index f4a604c..eace40a 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/MethodRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/MethodRocks.cs
@@ -55,6 +55,15 @@ namespace Gendarme.Framework.Rocks {
/// </summary>
public static class MethodRocks {
+ public static bool IsNamed (this MemberReference self, string nameSpace, string typeName, string methodName)
+ {
+ if (methodName == null)
+ throw new ArgumentNullException ("methodName");
+ if (self == null)
+ return false;
+ return ((self.Name == methodName) && self.DeclaringType.IsNamed (nameSpace, typeName));
+ }
+
/// <summary>
/// Check if the MethodReference is defined as the entry point of it's assembly.
/// </summary>
@@ -76,7 +85,7 @@ namespace Gendarme.Framework.Rocks {
return false;
return (self.HasThis && !self.HasParameters && (self.Name == "Finalize") &&
- (self.ReturnType.FullName == "System.Void"));
+ self.ReturnType.IsNamed ("System", "Void"));
}
/// <summary>
@@ -91,10 +100,9 @@ namespace Gendarme.Framework.Rocks {
return false;
MethodDefinition method = self.Resolve ();
- if ((method != null) && method.HasCustomAttributes) {
- if (method.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes))
- return true;
- }
+ if (method.HasAnyGeneratedCodeAttribute ())
+ return true;
+
return self.DeclaringType.IsGeneratedCode ();
}
@@ -161,27 +169,10 @@ namespace Gendarme.Framework.Rocks {
TypeDefinition parent = declaring.BaseType != null ? declaring.BaseType.Resolve () : null;
while (parent != null) {
string name = method.Name;
- string retval = method.ReturnType.FullName;
- int pcount = method.HasParameters ? method.Parameters.Count : 0;
foreach (MethodDefinition md in parent.Methods) {
if (name != md.Name)
continue;
- if (retval != md.ReturnType.FullName)
- continue;
- if (md.HasParameters && (pcount == 0))
- continue;
- IList<ParameterDefinition> ppdc = md.Parameters;
- if (pcount != ppdc.Count)
- continue;
-
- bool ok = true;
- for (int i = 0; i < pcount; i++) {
- if (method.Parameters [i].ParameterType.FullName != ppdc [i].ParameterType.FullName) {
- ok = false;
- break;
- }
- }
- if (!ok)
+ if (!method.CompareSignature (md))
continue;
return md.IsVirtual;
@@ -246,11 +237,11 @@ namespace Gendarme.Framework.Rocks {
TypeReference type = parameters [1].ParameterType;
GenericParameter gp = (type as GenericParameter);
if (gp == null)
- return type.Inherits ("System.EventArgs");
+ return type.Inherits ("System", "EventArgs");
if (gp.HasConstraints) {
IList<TypeReference> cc = gp.Constraints;
- return ((cc.Count == 1) && (cc [0].FullName == "System.EventArgs"));
+ return ((cc.Count == 1) && cc [0].IsNamed ("System", "EventArgs"));
}
return false;
@@ -283,7 +274,7 @@ namespace Gendarme.Framework.Rocks {
private static bool AreSameElementTypes (TypeReference a, TypeReference b)
{
- return a.GetElementType ().FullName == b.GetElementType ().FullName;
+ return a.IsGenericParameter || b.IsGenericParameter || b.IsNamed (a.Namespace, a.Name);
}
/// <summary>
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/ModuleRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/ModuleRocks.cs
index 06a946c..3aad117 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/ModuleRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/ModuleRocks.cs
@@ -4,7 +4,7 @@
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -155,19 +155,58 @@ namespace Gendarme.Framework.Rocks {
yield return type;
}
- public static bool HasAnyTypeReference (this ModuleDefinition self, string [] typeNames)
+ static Dictionary<ModuleDefinition, IEnumerable<MemberReference>> member_ref_cache = new Dictionary<ModuleDefinition, IEnumerable<MemberReference>> ();
+
+ /// <summary>
+ /// Check if any MemberReference, referenced by the current ModuleDefinition, satisfies the
+ /// specified predicate.
+ /// </summary>
+ /// <param name="self">The ModuleDefinition on which the extension method can be called.</param>
+ /// <param name="predicate">The condition to execute on a provided MemberReference</param>
+ /// <returns>True if 'predicate' returns true for any MemberReference in the module's referenced types.</returns>
+ /// <remarks>Cecil's GetMemberReferences method will allocate a new array each time it is called.
+ /// This extension method will cache the IEnumerable, on the first use, to reduce memory consumption.</remarks>
+ public static bool AnyMemberReference (this ModuleDefinition self, Func<MemberReference, bool> predicate)
{
if (self == null)
return false;
- if (typeNames == null)
- throw new ArgumentNullException ("typeNames");
+ // since ModuleDefinition.GetMemberReferences allocates an array (always identical if the
+ // assembly is opened "read-only", like Gendarme does) we'll cache and retrieve the array
+ IEnumerable<MemberReference> refs;
+ if (!member_ref_cache.TryGetValue (self, out refs)) {
+ refs = self.GetMemberReferences ();
+ member_ref_cache.Add (self, refs);
+ }
+
+ return refs.Any (predicate);
+ }
+
+ static Dictionary<ModuleDefinition, IEnumerable<TypeReference>> type_ref_cache = new Dictionary<ModuleDefinition, IEnumerable<TypeReference>> ();
- foreach (var typeName in typeNames)
- if (self.HasTypeReference (typeName))
- return true;
+ /// <summary>
+ /// Check if any TypeReference, referenced by the current ModuleDefinition, satisfies the
+ /// specified predicate.
+ /// </summary>
+ /// <param name="self">The ModuleDefinition on which the extension method can be called.</param>
+ /// <param name="predicate">The condition to execute on a provided TypeReference</param>
+ /// <returns>True if 'predicate' returns true for any TypeReference in the module's referenced types.</returns>
+ /// <remarks>Cecil's GetTypeReferences method will allocate a new array each time it is called.
+ /// This extension method will cache the IEnumerable, on the first use, to reduce memory consumption.</remarks>
+ public static bool AnyTypeReference (this ModuleDefinition self, Func<TypeReference, bool> predicate)
+ {
+ if (self == null)
+ return false;
+
+ // since ModuleDefinition.GetTypeReferences allocates an array (always identical if the
+ // assembly is opened "read-only", like Gendarme does) we'll cache and retrieve the array
+ IEnumerable<TypeReference> refs;
+ if (!type_ref_cache.TryGetValue (self, out refs)) {
+ refs = self.GetTypeReferences ();
+ type_ref_cache.Add (self, refs);
+ }
- return false;
+ return refs.Any (predicate);
}
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/ParameterRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/ParameterRocks.cs
index cfc87ca..7a41c01 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/ParameterRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/ParameterRocks.cs
@@ -39,22 +39,7 @@ namespace Gendarme.Framework.Rocks {
/// <returns>True if the parameter represents a list of parameters, false otherwise.</returns>
public static bool IsParams (this ParameterDefinition self)
{
- if (self == null || !self.HasCustomAttributes)
- return false;
- return self.CustomAttributes.ContainsType ("System.ParamArrayAttribute");
- }
-
- /// <summary>
- /// Returns the sequence number as found in the metadata
- /// </summary>
- /// <param name="self">The ParameterDefinition on which the extension method can be called.</param>
- /// <returns>The integer value of the sequence number of the parameter.</returns>
- public static int GetSequence (this ParameterReference self)
- {
- if (self == null)
- return -1;
-
- return self.Index + 1;
+ return self.HasAttribute ("System", "ParamArrayAttribute");
}
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/PropertyRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/PropertyRocks.cs
index 293f9db..112d323 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/PropertyRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/PropertyRocks.cs
@@ -59,10 +59,9 @@ namespace Gendarme.Framework.Rocks {
if (self == null)
return false;
- if (self.HasCustomAttributes) {
- if (self.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes))
- return true;
- }
+ if (self.HasAnyGeneratedCodeAttribute ())
+ return true;
+
return self.DeclaringType.IsGeneratedCode ();
}
}
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
index d549c63..efdcc0f 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/TypeRocks.cs
@@ -84,51 +84,6 @@ namespace Gendarme.Framework.Rocks {
}
/// <summary>
- /// Check if a type reference collection contains a type of a specific name.
- /// </summary>
- /// <param name="self">The TypeReferenceCollection on which the extension method can be called.</param>
- /// <param name="typeName">Full name of the type.</param>
- /// <returns>True if the collection contains an type of the same name,
- /// False otherwise.</returns>
- public static bool ContainsType (this IEnumerable<TypeReference> self, string typeName)
- {
- if (typeName == null)
- throw new ArgumentNullException ("typeName");
- if (self == null)
- return false;
-
- foreach (TypeReference type in self) {
- if (type.FullName == typeName)
- return true;
- }
- return false;
- }
-
- /// <summary>
- /// Check if a type reference collection contains any of the specified type names.
- /// </summary>
- /// <param name="self">The TypeReferenceCollection on which the extension method can be called.</param>
- /// <param name="typeNames">A string array of full type names.</param>
- /// <returns>True if the collection contains any types matching one specified,
- /// False otherwise.</returns>
- public static bool ContainsAnyType (this IEnumerable<TypeReference> self, string [] typeNames)
- {
- if (typeNames == null)
- throw new ArgumentNullException ("typeNames");
- if (self == null)
- return false;
-
- foreach (TypeReference type in self) {
- string fullname = type.FullName;
- foreach (string type_full_name in typeNames) {
- if (fullname == type_full_name)
- return true;
- }
- }
- return false;
- }
-
- /// <summary>
/// Returns the first MethodDefinition that satisfies a given MethodSignature.
/// </summary>
/// <param name="self">The TypeReference on which the extension method can be called.</param>
@@ -177,7 +132,7 @@ namespace Gendarme.Framework.Rocks {
continue;
if ((method.Attributes & attributes) != attributes)
continue;
- if (returnType != null && method.ReturnType.FullName != returnType)
+ if (returnType != null && !method.ReturnType.IsNamed (returnType))
continue;
if (parameters != null) {
if (method.HasParameters) {
@@ -188,7 +143,7 @@ namespace Gendarme.Framework.Rocks {
for (int i = 0; i < parameters.Length; i++) {
if (parameters [i] == null)
continue;//ignore parameter
- if (parameters [i] != pdc [i].ParameterType.GetElementType ().FullName) {
+ if (!pdc [i].ParameterType.GetElementType ().IsNamed (parameters [i])) {
parameterError = true;
break;
}
@@ -284,13 +239,16 @@ namespace Gendarme.Framework.Rocks {
/// where the information resides could be unavailable. False is returned in this case.
/// </summary>
/// <param name="self">The TypeDefinition on which the extension method can be called.</param>
- /// <param name="interfaceName">Full name of the interface</param>
+ /// <param name="nameSpace">The namespace of the interface to be matched</param>
+ /// <param name="name">The name of the interface to be matched</param>
/// <returns>True if we found that the type implements the interface, False otherwise (either it
/// does not implement it, or we could not find where it does).</returns>
- public static bool Implements (this TypeReference self, string interfaceName)
+ public static bool Implements (this TypeReference self, string nameSpace, string name)
{
- if (interfaceName == null)
- throw new ArgumentNullException ("interfaceName");
+ if (nameSpace == null)
+ throw new ArgumentNullException ("nameSpace");
+ if (name == null)
+ throw new ArgumentNullException ("name");
if (self == null)
return false;
@@ -299,23 +257,22 @@ namespace Gendarme.Framework.Rocks {
return false; // not enough information available
// special case, check if we implement ourselves
- if (type.IsInterface && (type.FullName == interfaceName))
+ if (type.IsInterface && type.IsNamed (nameSpace, name))
return true;
- return Implements (type, interfaceName, (interfaceName.IndexOf ('`') >= 0));
+ return Implements (type, nameSpace, name);
}
- private static bool Implements (TypeDefinition type, string interfaceName, bool generic)
+ private static bool Implements (TypeDefinition type, string nameSpace, string iname)
{
while (type != null) {
// does the type implements it itself
if (type.HasInterfaces) {
foreach (TypeReference iface in type.Interfaces) {
- string fullname = (generic) ? iface.GetElementType ().FullName : iface.FullName;
- if (fullname == interfaceName)
+ if (iface.IsNamed (nameSpace, iname))
return true;
//if not, then maybe one of its parent interfaces does
- if (Implements (iface.Resolve (), interfaceName, generic))
+ if (Implements (iface.Resolve (), nameSpace, iname))
return true;
}
}
@@ -331,21 +288,23 @@ namespace Gendarme.Framework.Rocks {
/// where the information resides could be unavailable.
/// </summary>
/// <param name="self">The TypeReference on which the extension method can be called.</param>
- /// <param name="className">Full name of the base class</param>
+ /// <param name="nameSpace">The namespace of the base class to be matched</param>
+ /// <param name="name">The name of the base class to be matched</param>
/// <returns>True if the type inherits from specified class, False otherwise</returns>
- public static bool Inherits (this TypeReference self, string className)
+ public static bool Inherits (this TypeReference self, string nameSpace, string name)
{
- if (className == null)
- throw new ArgumentNullException ("className");
+ if (nameSpace == null)
+ throw new ArgumentNullException ("nameSpace");
+ if (name == null)
+ throw new ArgumentNullException ("name");
if (self == null)
return false;
TypeReference current = self.Resolve ();
while (current != null) {
- string fullname = current.FullName;
- if (fullname == className)
+ if (current.IsNamed (nameSpace, name))
return true;
- if (fullname == "System.Object")
+ if (current.IsNamed ("System", "Object"))
return false;
TypeDefinition td = current.Resolve ();
@@ -357,6 +316,70 @@ namespace Gendarme.Framework.Rocks {
}
/// <summary>
+ /// Check if the type and its namespace are named like the provided parameters.
+ /// This is preferred to checking the FullName property since the later can allocate (string) memory.
+ /// </summary>
+ /// <param name="self">The TypeReference on which the extension method can be called.</param>
+ /// <param name="nameSpace">The namespace to be matched</param>
+ /// <param name="name">The type name to be matched</param>
+ /// <returns>True if the type is namespace and name match the arguments, False otherwise</returns>
+ public static bool IsNamed (this TypeReference self, string nameSpace, string name)
+ {
+ if (nameSpace == null)
+ throw new ArgumentNullException ("nameSpace");
+ if (name == null)
+ throw new ArgumentNullException ("name");
+ if (self == null)
+ return false;
+
+ if (self.IsNested) {
+ int spos = name.LastIndexOf ('/');
+ if (spos == -1)
+ return false;
+ // GetFullName could be optimized away but it's a fairly uncommon case
+ return (nameSpace + "." + name == self.GetFullName ());
+ }
+
+ return ((self.Namespace == nameSpace) && (self.Name == name));
+ }
+
+ /// <summary>
+ /// Check if the type full name match the provided parameter.
+ /// Note: prefer the overload where the namespace and type name can be supplied individually
+ /// </summary>
+ /// <param name="self">The TypeReference on which the extension method can be called.</param>
+ /// <param name="fullName">The full name to be matched</param>
+ /// <returns>True if the type is namespace and name match the arguments, False otherwise</returns>
+ public static bool IsNamed (this TypeReference self, string fullName)
+ {
+ if (fullName == null)
+ throw new ArgumentNullException ("fullName");
+ if (self == null)
+ return false;
+
+ if (self.IsNested) {
+ int spos = fullName.LastIndexOf ('/');
+ if (spos == -1)
+ return false;
+ // FIXME: GetFullName could be optimized away but it's a fairly uncommon case
+ return (fullName == self.GetFullName ());
+ }
+
+ int dpos = fullName.LastIndexOf ('.');
+ string nspace = self.Namespace;
+ if (dpos != nspace.Length)
+ return false;
+
+ if (String.CompareOrdinal (nspace, 0, fullName, 0, dpos) != 0)
+ return false;
+
+ string name = self.Name;
+ if (fullName.Length - dpos - 1 != name.Length)
+ return false;
+ return (String.CompareOrdinal (name, 0, fullName, dpos + 1, fullName.Length - dpos - 1) == 0);
+ }
+
+ /// <summary>
/// Checks if type is attribute. Note that it is possible that
/// we might now be able to know all inheritance since the assembly where
/// the information resides could be unavailable.
@@ -369,7 +392,7 @@ namespace Gendarme.Framework.Rocks {
if (self == null)
return false;
- return self.Inherits ("System.Attribute");
+ return self.Inherits ("System", "Attribute");
}
/// <summary>
@@ -387,13 +410,11 @@ namespace Gendarme.Framework.Rocks {
if (null == type || type.BaseType == null)
return false;
- switch (type.BaseType.FullName) {
- case "System.Delegate":
- case "System.MulticastDelegate":
- return true;
- default:
+ if (type.BaseType.Namespace != "System")
return false;
- }
+
+ string name = type.BaseType.Name;
+ return ((name == "Delegate") || (name == "MulticastDelegate"));
}
/// <summary>
@@ -410,7 +431,7 @@ namespace Gendarme.Framework.Rocks {
if ((type == null) || !type.IsEnum || !type.HasCustomAttributes)
return false;
- return type.HasAttribute ("System.FlagsAttribute");
+ return type.HasAttribute ("System", "FlagsAttribute");
}
/// <summary>
@@ -423,9 +444,11 @@ namespace Gendarme.Framework.Rocks {
if (self == null)
return false;
- string full_name = self.FullName;
- return ((full_name == "System.Single") ||
- (full_name == "System.Double"));
+ if (self.Namespace != "System")
+ return false;
+
+ string name = self.Name;
+ return ((name == "Single") || (name == "Double"));
}
/// <summary>
@@ -443,7 +466,7 @@ namespace Gendarme.Framework.Rocks {
TypeDefinition type = self.Resolve ();
// both helpful attributes only exists in 2.0 and more recent frameworks
if (type.Module.Runtime >= TargetRuntime.Net_2_0) {
- if (type.CustomAttributes.ContainsAnyType (CustomAttributeRocks.GeneratedCodeAttributes))
+ if (type.HasAnyGeneratedCodeAttribute ())
return true;
}
}
@@ -471,14 +494,11 @@ namespace Gendarme.Framework.Rocks {
if (self == null)
return false;
- switch (self.FullName) {
- case "System.IntPtr":
- case "System.UIntPtr":
- case "System.Runtime.InteropServices.HandleRef":
- return true;
- default:
- return false;
+ if (self.Namespace == "System") {
+ string name = self.Name;
+ return ((name == "IntPtr") || (name == "UIntPtr"));
}
+ return self.IsNamed ("System.Runtime.InteropServices", "HandleRef");
}
/// <summary>
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs
index 6749ebd..73e03e4 100644
--- a/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs
+++ b/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs
@@ -24,8 +24,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
-using Mono.Cecil.Cil;
using System;
+using System.Globalization;
+using Mono.Cecil.Cil;
namespace Gendarme.Framework.Rocks {
@@ -53,7 +54,7 @@ namespace Gendarme.Framework.Rocks {
{
if (self == null)
return String.Empty;
- return !string.IsNullOrEmpty (self.Name) ? self.Name : "V_" + self.Index.ToString ();
+ return !string.IsNullOrEmpty (self.Name) ? self.Name : "V_" + self.Index.ToString (CultureInfo.InvariantCulture);
}
}
}
diff --git a/gendarme/framework/Gendarme.Framework.csproj b/gendarme/framework/Gendarme.Framework.csproj
index f9976af..ff5851b 100755
--- a/gendarme/framework/Gendarme.Framework.csproj
+++ b/gendarme/framework/Gendarme.Framework.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Framework</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Framework/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -41,6 +42,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>3</WarningLevel>
<StartupObject />
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -50,6 +52,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartupObject />
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -58,12 +61,17 @@
</Reference>
</ItemGroup>
<ItemGroup>
+ <ProjectReference Include="..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyStaticInfo.cs" />
<Compile Include="Gendarme.Framework.Engines\SuppressMessageEngine.cs" />
<Compile Include="Gendarme.Framework.Helpers\Log.cs" />
<Compile Include="Gendarme.Framework.Helpers\MethodPrinter.cs" />
+ <Compile Include="Gendarme.Framework.Helpers\StreamLineReader.cs" />
<Compile Include="Gendarme.Framework.Rocks\ParameterRocks.cs" />
<Compile Include="Gendarme.Framework.Rocks\PropertyRocks.cs" />
<Compile Include="Gendarme.Framework.Rocks\VariableDefinitionRocks.cs" />
@@ -118,21 +126,34 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
diff --git a/gendarme/framework/Gendarme.Framework/Symbols.cs b/gendarme/framework/Gendarme.Framework/Symbols.cs
index 5e76c20..f572643 100644
--- a/gendarme/framework/Gendarme.Framework/Symbols.cs
+++ b/gendarme/framework/Gendarme.Framework/Symbols.cs
@@ -39,7 +39,7 @@ namespace Gendarme.Framework {
// http://blogs.msdn.com/jmstall/archive/2005/06/19/FeeFee_SequencePoints.aspx
private const int PdbHiddenLine = 0xFEEFEE;
- private static string AlmostEqualTo = new string (new char [] { '\u2248' });
+ private const string AlmostEqualTo = "\u2248";
private static Instruction ExtractFirst (TypeDefinition type)
{
@@ -55,7 +55,7 @@ namespace Gendarme.Framework {
private static Instruction ExtractFirst (MethodDefinition method)
{
- if ((method == null) || !method.HasBody)
+ if ((method == null) || !method.HasBody || method.Body.Instructions.Count == 0)
return null;
Instruction ins = method.Body.Instructions [0];
// note that the first instruction often does not have a sequence point
@@ -69,11 +69,11 @@ namespace Gendarme.Framework {
{
MethodDefinition method = (location as MethodDefinition);
if (method != null)
- return (method.DeclaringType as TypeDefinition);
+ return method.DeclaringType;
FieldDefinition field = (location as FieldDefinition);
if (field != null)
- return (field.DeclaringType as TypeDefinition);
+ return field.DeclaringType;
ParameterDefinition parameter = (location as ParameterDefinition);
if (parameter != null)
@@ -112,7 +112,7 @@ namespace Gendarme.Framework {
// include line and column.
private static string FormatSequencePoint (string document, int line, int column, bool exact)
{
- string sline = (line == PdbHiddenLine) ? "unavailable" : line.ToString ();
+ string sline = (line == PdbHiddenLine) ? "unavailable" : line.ToString (CultureInfo.InvariantCulture);
// MDB (mono symbols) does not provide any column information (so we don't show any)
// there's also no point in showing a column number if we're not totally sure about the line
@@ -177,7 +177,7 @@ namespace Gendarme.Framework {
return FormatSource (candidate);
// we may still be lucky to find the (a) source file for the type itself
- type = (method.DeclaringType as TypeDefinition);
+ type = method.DeclaringType;
}
// TypeDefinition, FieldDefinition
diff --git a/gendarme/framework/Gendarme.Framework/ThreadModelAttribute.cs b/gendarme/framework/Gendarme.Framework/ThreadModelAttribute.cs
index e40e34c..4c76f63 100644
--- a/gendarme/framework/Gendarme.Framework/ThreadModelAttribute.cs
+++ b/gendarme/framework/Gendarme.Framework/ThreadModelAttribute.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
// Note that these types are extended version of what we recommend
// that users use. See DecorateThreadsRule documentation for a smaller version
@@ -82,7 +83,7 @@ namespace Gendarme.Framework {
public override string ToString ()
{
if (AllowsEveryCaller)
- return string.Format ("{0} | AllowEveryCaller", Model);
+ return String.Format (CultureInfo.InvariantCulture, "{0} | AllowEveryCaller", Model);
return Model.ToString ();
}
@@ -96,9 +97,9 @@ namespace Gendarme.Framework {
return this == rhs;
}
- public bool Equals (ThreadModelAttribute rhs)
+ public bool Equals (ThreadModelAttribute other)
{
- return this == rhs;
+ return this == other;
}
public static bool operator== (ThreadModelAttribute lhs, ThreadModelAttribute rhs)
diff --git a/gendarme/framework/Makefile.am b/gendarme/framework/Makefile.am
index afbf5d9..13cbf9e 100644
--- a/gendarme/framework/Makefile.am
+++ b/gendarme/framework/Makefile.am
@@ -40,6 +40,7 @@ framework_sources = \
Gendarme.Framework.Helpers/PrimitiveReferences.cs \
Gendarme.Framework.Helpers/StackEntryAnalysis.cs \
Gendarme.Framework.Helpers/StackEntryUsageResult.cs \
+ Gendarme.Framework.Helpers/StreamLineReader.cs \
Gendarme.Framework.Rocks/AssemblyRocks.cs \
Gendarme.Framework.Rocks/CecilRocks.cs \
Gendarme.Framework.Rocks/CommonRocks.cs \
@@ -86,7 +87,7 @@ framework_build_sources += $(framework_generated_sources)
../bin/Gendarme.Framework.dll: $(framework_build_sources) $(CECIL_ASM)
test -d ../bin || mkdir ../bin
- $(GMCS) $(GENDARME_OPTIONS) -target:library -doc:$(framework_SCRIPTS).doc -r:$(CECIL_ASM) \
+ $(MCS) $(GENDARME_OPTIONS) -target:library -doc:$(framework_SCRIPTS).doc -r:$(CECIL_ASM) \
-out:$@ $(framework_build_sources)
framework_test_sources = \
@@ -108,14 +109,14 @@ framework_test_sources = \
framework_test_build_sources = $(addprefix $(srcdir)/Test/, $(framework_test_sources))
Test.Framework.dll: $(framework_test_build_sources) $(framework_rules_SCRIPTS) ../bin/Gendarme.Framework.dll $(CECIL_ASM)
- $(GMCS) $(TESTS_OPTIONS) -target:library -d:CODE_ANALYSIS -pkg:mono-nunit \
+ $(MCS) $(TESTS_OPTIONS) -target:library -d:CODE_ANALYSIS -pkg:mono-nunit \
-r:$(CECIL_ASM) -r:../bin/Gendarme.Framework.dll -r:../rules/Test.Rules/Test.Rules.dll \
-out:$@ $(framework_test_build_sources)
test: Test.Framework.dll
run-test: test
- MONO_PATH=../bin/:../rules/Test.Rules/:$(MONO_PATH) nunit-console2 -noshadow Test.Framework.dll
+ MONO_PATH=../bin/:../rules/Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe Test.Framework.dll
self-test: $(framework_SCRIPTS)
mono --debug ../bin/gendarme.exe $(framework_SCRIPTS)
diff --git a/gendarme/framework/Makefile.in b/gendarme/framework/Makefile.in
index 34ac465..7f5c901 100644
--- a/gendarme/framework/Makefile.in
+++ b/gendarme/framework/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -42,12 +61,39 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = gendarme-framework.pc
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(frameworkdir)" \
"$(DESTDIR)$(framework_documentationdir)" \
"$(DESTDIR)$(pkgconfigdir)"
-frameworkSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(framework_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -58,21 +104,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-framework_documentationDATA_INSTALL = $(INSTALL_DATA)
-pkgconfigDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(framework_documentation_DATA) $(pkgconfig_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -133,6 +204,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -146,9 +218,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -258,6 +333,7 @@ framework_sources = \
Gendarme.Framework.Helpers/PrimitiveReferences.cs \
Gendarme.Framework.Helpers/StackEntryAnalysis.cs \
Gendarme.Framework.Helpers/StackEntryUsageResult.cs \
+ Gendarme.Framework.Helpers/StreamLineReader.cs \
Gendarme.Framework.Rocks/AssemblyRocks.cs \
Gendarme.Framework.Rocks/CecilRocks.cs \
Gendarme.Framework.Rocks/CommonRocks.cs \
@@ -326,14 +402,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/framework/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/framework/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/framework/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/framework/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -343,6 +419,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -351,61 +428,86 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
gendarme-framework.pc: $(top_builddir)/config.status $(srcdir)/gendarme-framework.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-frameworkSCRIPTS: $(framework_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(frameworkdir)" || $(MKDIR_P) "$(DESTDIR)$(frameworkdir)"
- @list='$(framework_SCRIPTS)'; for p in $$list; do \
+ @list='$(framework_SCRIPTS)'; test -n "$(frameworkdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(frameworkdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(frameworkdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(frameworkSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(frameworkdir)/$$f'"; \
- $(frameworkSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(frameworkdir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(frameworkdir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(frameworkdir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-frameworkSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(framework_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(frameworkdir)/$$f'"; \
- rm -f "$(DESTDIR)$(frameworkdir)/$$f"; \
- done
+ @list='$(framework_SCRIPTS)'; test -n "$(frameworkdir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(frameworkdir)'; $(am__uninstall_files_from_dir)
install-framework_documentationDATA: $(framework_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(framework_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(framework_documentationdir)"
- @list='$(framework_documentation_DATA)'; for p in $$list; do \
+ @list='$(framework_documentation_DATA)'; test -n "$(framework_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(framework_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(framework_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(framework_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(framework_documentationdir)/$$f'"; \
- $(framework_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(framework_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(framework_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(framework_documentationdir)" || exit $$?; \
done
uninstall-framework_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(framework_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(framework_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(framework_documentationdir)/$$f"; \
- done
+ @list='$(framework_documentation_DATA)'; test -n "$(framework_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(framework_documentationdir)'; $(am__uninstall_files_from_dir)
install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
- @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
- $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
done
uninstall-pkgconfigDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkgconfig_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
- done
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -414,7 +516,7 @@ uninstall-pkgconfigDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -431,7 +533,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -439,7 +541,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -465,16 +567,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -482,14 +584,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -501,7 +603,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -510,29 +612,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -553,29 +660,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -598,10 +717,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -609,6 +733,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -628,6 +753,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -637,18 +764,28 @@ install-data-am: install-frameworkSCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -670,8 +807,8 @@ ps-am:
uninstall-am: uninstall-frameworkSCRIPTS \
uninstall-framework_documentationDATA uninstall-pkgconfigDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -692,18 +829,18 @@ uninstall-am: uninstall-frameworkSCRIPTS \
../bin/Gendarme.Framework.dll: $(framework_build_sources) $(CECIL_ASM)
test -d ../bin || mkdir ../bin
- $(GMCS) $(GENDARME_OPTIONS) -target:library -doc:$(framework_SCRIPTS).doc -r:$(CECIL_ASM) \
+ $(MCS) $(GENDARME_OPTIONS) -target:library -doc:$(framework_SCRIPTS).doc -r:$(CECIL_ASM) \
-out:$@ $(framework_build_sources)
Test.Framework.dll: $(framework_test_build_sources) $(framework_rules_SCRIPTS) ../bin/Gendarme.Framework.dll $(CECIL_ASM)
- $(GMCS) $(TESTS_OPTIONS) -target:library -d:CODE_ANALYSIS -pkg:mono-nunit \
+ $(MCS) $(TESTS_OPTIONS) -target:library -d:CODE_ANALYSIS -pkg:mono-nunit \
-r:$(CECIL_ASM) -r:../bin/Gendarme.Framework.dll -r:../rules/Test.Rules/Test.Rules.dll \
-out:$@ $(framework_test_build_sources)
test: Test.Framework.dll
run-test: test
- MONO_PATH=../bin/:../rules/Test.Rules/:$(MONO_PATH) nunit-console2 -noshadow Test.Framework.dll
+ MONO_PATH=../bin/:../rules/Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe Test.Framework.dll
self-test: $(framework_SCRIPTS)
mono --debug ../bin/gendarme.exe $(framework_SCRIPTS)
@@ -723,6 +860,7 @@ $(framework_doc_source):
clean-local:
rm -fr doc/
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
index c4bbafd..061bccd 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
@@ -49,16 +49,23 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void HasAttribute_Namespace_Null ()
{
- assembly.HasAttribute (null);
+ assembly.HasAttribute (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void HasAttribute_Name_Null ()
+ {
+ assembly.HasAttribute ("a", null);
}
[Test]
public void HasAttribute ()
{
- Assert.IsTrue (assembly.HasAttribute ("System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"), "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute");
- Assert.IsFalse (assembly.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TestFixtureAttribute");
+ Assert.IsTrue (assembly.HasAttribute ("System.Runtime.CompilerServices", "RuntimeCompatibilityAttribute"), "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute");
+ Assert.IsFalse (assembly.HasAttribute ("NUnit.Framework", "TestFixtureAttribute"), "TestFixtureAttribute");
}
}
}
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/CustomAttributeRocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/CustomAttributeRocksTest.cs
index 65a868e..78c6f81 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/CustomAttributeRocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/CustomAttributeRocksTest.cs
@@ -50,59 +50,29 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void Contains_Null ()
- {
- Collection<CustomAttribute> cac = new Collection<CustomAttribute> ();
- cac.ContainsType ((string) null);
- }
-
- [Test]
- public void Contains ()
- {
- TypeDefinition type = assembly.MainModule.GetType ("Test.Framework.Rocks.CustomAttributeRocksTest");
- Collection<CustomAttribute> cac = type.CustomAttributes;
- Assert.IsTrue (cac.ContainsType ("NUnit.Framework.TestFixtureAttribute"), "NUnit.Framework.TestFixtureAttribute");
- Assert.IsFalse (cac.ContainsType ("NUnit.Framework.TestFixture"), "NUnit.Framework.TestFixture");
- }
-
- [Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void ContainsAny_Null ()
- {
- Collection<CustomAttribute> cac = new Collection<CustomAttribute> ();
- cac.ContainsAnyType (null);
- }
-
- [Test]
- public void ContainsAny ()
+ public void HasAttribute_Namespace_Null ()
{
TypeDefinition type = assembly.MainModule.GetType ("Test.Framework.Rocks.CustomAttributeRocksTest");
- Collection<CustomAttribute> cac = type.CustomAttributes;
- Assert.IsTrue (cac.ContainsAnyType (new string[] {
- "NUnit.Framework.TestFixtureAttribute",
- null,
- "System.ICloneable"
- }), "NUnit.Framework.TestFixtureAttribute");
- Assert.IsFalse (cac.ContainsAnyType (new string[] {}), "NUnit.Framework.TestFixture");
+ type.HasAttribute (null, "a");
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void HasAttribute_Name_Null ()
{
TypeDefinition type = assembly.MainModule.GetType ("Test.Framework.Rocks.CustomAttributeRocksTest");
- type.HasAttribute (null);
+ type.HasAttribute ("a", null);
}
[Test]
public void HasAttribute ()
{
TypeDefinition type = null;
- Assert.IsFalse (type.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "null-type");
+ Assert.IsFalse (type.HasAttribute ("NUnit.Framework", "TestFixtureAttribute"), "null-type");
type = assembly.MainModule.GetType ("Test.Framework.Rocks.CustomAttributeRocksTest");
- Assert.IsTrue (type.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "true");
- Assert.IsFalse (type.HasAttribute ("NUnit.Framework.TestAttribute"), "false");
+ Assert.IsTrue (type.HasAttribute ("NUnit.Framework", "TestFixtureAttribute"), "true");
+ Assert.IsFalse (type.HasAttribute ("NUnit.Framework", "TestAttribute"), "false");
}
}
}
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/FieldRocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/FieldRocksTest.cs
index a790ed2..69ea851 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/FieldRocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/FieldRocksTest.cs
@@ -74,16 +74,23 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void HasAttribute_Namespace_Null ()
{
- GetField ("assembly").HasAttribute (null);
+ GetField ("assembly").HasAttribute (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void HasAttribute_Name_Null ()
+ {
+ GetField ("assembly").HasAttribute ("a", null);
}
[Test]
public void HasAttribute ()
{
- Assert.IsTrue (GetField ("cga").HasAttribute ("System.Runtime.CompilerServices.CompilerGeneratedAttribute"), "CompilerGeneratedAttribute");
- Assert.IsFalse (GetField ("cga").HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TestFixtureAttribute");
+ Assert.IsTrue (GetField ("cga").HasAttribute ("System.Runtime.CompilerServices", "CompilerGeneratedAttribute"), "CompilerGeneratedAttribute");
+ Assert.IsFalse (GetField ("cga").HasAttribute ("NUnit.Framework", "TestFixtureAttribute"), "TestFixtureAttribute");
}
[Test]
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/MethodRocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/MethodRocksTest.cs
index c43d680..3202358 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/MethodRocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/MethodRocksTest.cs
@@ -112,18 +112,26 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void HasAttribute_Namespace_Null ()
{
MethodDefinition method = GetMethod ("FixtureSetUp");
- method.HasAttribute ((string) null);
+ method.HasAttribute (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void HasAttribute_Name_Null ()
+ {
+ MethodDefinition method = GetMethod ("FixtureSetUp");
+ method.HasAttribute ("a", null);
}
[Test]
public void HasAttribute ()
{
MethodDefinition method = GetMethod ("FixtureSetUp");
- Assert.IsTrue (method.HasAttribute ("NUnit.Framework.TestFixtureSetUpAttribute"), "NUnit.Framework.TestFixtureSetUpAttribute");
- Assert.IsFalse (method.HasAttribute ("NUnit.Framework.TestFixtureSetUp"), "NUnit.Framework.TestFixtureSetUp");
+ Assert.IsTrue (method.HasAttribute ("NUnit.Framework", "TestFixtureSetUpAttribute"), "NUnit.Framework.TestFixtureSetUpAttribute");
+ Assert.IsFalse (method.HasAttribute ("NUnit.Framework", "TestFixtureSetUp"), "NUnit.Framework.TestFixtureSetUp");
}
[Test]
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/RocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/RocksTest.cs
index ed62b9c..4c746fa 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/RocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/RocksTest.cs
@@ -49,6 +49,9 @@ namespace Test.Framework.Rocks {
public abstract void PublicMethod ();
protected abstract void ProtectedMethod ();
private void PrivateMethod () { }
+
+ public abstract class NestedNestedPublicType {
+ }
}
protected abstract class NestedProtectedType {
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/TypeRocksTest.cs b/gendarme/framework/Test/Gendarme.Framework.Rocks/TypeRocksTest.cs
index 51f782f..99366be 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/TypeRocksTest.cs
+++ b/gendarme/framework/Test/Gendarme.Framework.Rocks/TypeRocksTest.cs
@@ -179,20 +179,27 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void HasAttribute_Namespace_Null ()
{
- GetType (String.Empty).HasAttribute (null);
+ GetType (String.Empty).HasAttribute (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void HasAttribute_Name_Null ()
+ {
+ GetType (String.Empty).HasAttribute ("a", null);
}
[Test]
public void HasAttribute ()
{
- Assert.IsTrue (GetType (String.Empty).HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TypeRocksTest");
- Assert.IsFalse (GetType ("/Enum").HasAttribute ("System.FlagsAttribute"), "Enum/System.FlagsAttribute");
- Assert.IsTrue (GetType ("/Flags").HasAttribute ("System.FlagsAttribute"), "Flags/System.FlagsAttribute");
+ Assert.IsTrue (GetType (String.Empty).HasAttribute ("NUnit.Framework", "TestFixtureAttribute"), "TypeRocksTest");
+ Assert.IsFalse (GetType ("/Enum").HasAttribute ("System", "FlagsAttribute"), "Enum/System.FlagsAttribute");
+ Assert.IsTrue (GetType ("/Flags").HasAttribute ("System", "FlagsAttribute"), "Flags/System.FlagsAttribute");
// fullname is required
- Assert.IsFalse (GetType ("/Flags").HasAttribute ("System.Flags"), "Flags/System.Flags");
- Assert.IsFalse (GetType ("/Flags").HasAttribute ("FlagsAttribute"), "Flags/FlagsAttribute");
+ Assert.IsFalse (GetType ("/Flags").HasAttribute ("System", "Flags"), "Flags/System.Flags");
+ Assert.IsFalse (GetType ("/Flags").HasAttribute ("", "FlagsAttribute"), "Flags/FlagsAttribute");
}
[Test]
@@ -204,51 +211,65 @@ namespace Test.Framework.Rocks {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void Implements_Null ()
+ public void Implements_Namespace_Null ()
+ {
+ GetType (String.Empty).Implements (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Implements_Name_Null ()
{
- GetType (String.Empty).Implements (null);
+ GetType (String.Empty).Implements ("a", null);
}
[Test]
public void Implements ()
{
- Assert.IsFalse (GetType (String.Empty).Implements ("System.ICloneable"), "ICloneable");
- Assert.IsTrue (GetType ("/IDeepCloneable").Implements ("Test.Framework.Rocks.TypeRocksTest/IDeepCloneable"), "itself");
- Assert.IsTrue (GetType ("/IDeepCloneable").Implements ("System.ICloneable"), "interface inheritance");
- Assert.IsTrue (GetType ("/Deep").Implements ("Test.Framework.Rocks.TypeRocksTest/IDeepCloneable"), "IDeepCloneable");
- Assert.IsTrue (GetType ("/Deep").Implements ("System.ICloneable"), "second-level ICloneable");
- Assert.IsTrue (GetType ("/Mixin").Implements ("Test.Framework.Rocks.TypeRocksTest/IDeepCloneable"), "parent interface inheritance");
+ Assert.IsFalse (GetType (String.Empty).Implements ("System", "ICloneable"), "ICloneable");
+ Assert.IsTrue (GetType ("/IDeepCloneable").Implements ("Test.Framework.Rocks", "TypeRocksTest/IDeepCloneable"), "itself");
+ Assert.IsTrue (GetType ("/IDeepCloneable").Implements ("System", "ICloneable"), "interface inheritance");
+ Assert.IsTrue (GetType ("/Deep").Implements ("Test.Framework.Rocks", "TypeRocksTest/IDeepCloneable"), "IDeepCloneable");
+ Assert.IsTrue (GetType ("/Deep").Implements ("System", "ICloneable"), "second-level ICloneable");
+ Assert.IsTrue (GetType ("/Mixin").Implements ("Test.Framework.Rocks", "TypeRocksTest/IDeepCloneable"), "parent interface inheritance");
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
- public void Inherits_Null ()
+ public void Inherits_Namespace_Null ()
{
- GetType (String.Empty).Inherits (null);
+ GetType (String.Empty).Inherits (null, "a");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Inherits_Name_Null ()
+ {
+ GetType (String.Empty).Inherits ("a", null);
}
[Test]
public void Inherits ()
{
- Assert.IsFalse (GetType ("/NotAttribute").Inherits ("System.Attribute"), "NotAttribute");
- Assert.IsTrue (GetType ("/AnAttribute").Inherits ("System.Attribute"), "AnAttribute");
- Assert.IsFalse (GetType ("/ClassInheritsNotAttribute").Inherits ("System.Attribute"), "ClassInheritsNotAttribute");
- Assert.IsTrue (GetType ("/AttributeInheritsAnAttribute").Inherits ("System.Attribute"), "AttributeInheritsAnAttribute");
+ Assert.IsFalse (GetType ("/NotAttribute").Inherits ("System", "Attribute"), "NotAttribute");
+ Assert.IsTrue (GetType ("/AnAttribute").Inherits ("System", "Attribute"), "AnAttribute");
+ Assert.IsFalse (GetType ("/ClassInheritsNotAttribute").Inherits ("System", "Attribute"), "ClassInheritsNotAttribute");
+ Assert.IsTrue (GetType ("/AttributeInheritsAnAttribute").Inherits ("System", "Attribute"), "AttributeInheritsAnAttribute");
}
[Test]
public void Inherits_FromAnotherAssembly ()
{
// we can't be sure here so to avoid false positives return false
- Assert.IsTrue (GetType ("/AttributeInheritsOuterAttribute").Inherits ("System.Attribute"), "AttributeInheritsOuterAttribute");
- Assert.IsTrue (GetType ("/AttributeInheritsOuterAttributeDerivingAttribute").Inherits ("System.Attribute"), "AttributeInheritsOuterAttributeDerivingAttribute");
+ Assert.IsTrue (GetType ("/AttributeInheritsOuterAttribute").Inherits ("System", "Attribute"), "AttributeInheritsOuterAttribute");
+ Assert.IsTrue (GetType ("/AttributeInheritsOuterAttributeDerivingAttribute").Inherits ("System", "Attribute"), "AttributeInheritsOuterAttributeDerivingAttribute");
}
[Test]
public void Inherits_Itself ()
{
TypeDefinition type = GetType (String.Empty);
- Assert.IsTrue (type.Inherits (type.FullName), "itself");
+ Assert.IsTrue (type.Inherits (type.Namespace, type.Name), "itself");
}
[Test]
@@ -322,6 +343,50 @@ namespace Test.Framework.Rocks {
}
[Test]
+ public void IsNamed ()
+ {
+ string name = "Test.Framework.Rocks.PublicType";
+ TypeDefinition type = assembly.MainModule.GetType (name);
+
+ Assert.IsTrue (type.IsNamed ( "Test.Framework.Rocks.PublicType"));
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks.P"));//Missing Text
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks.PublicTypeExtraText"));
+
+ Assert.IsTrue (type.IsNamed ("Test.Framework.Rocks", "PublicType"));
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks", "P"));//Missing Text
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks", "PublicTypeExtraText"));
+ }
+
+ [Test]
+ public void IsNamedNestedType ()
+ {
+ string name = "Test.Framework.Rocks.PublicType/NestedPublicType";
+ TypeDefinition type = assembly.MainModule.GetType (name);
+
+ Assert.IsTrue (type.IsNamed ("Test.Framework.Rocks.PublicType/NestedPublicType"));
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks.PublicType/N"));//Missing Text
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks.PublicType/NestedPublicTypeExtaStuff"));
+
+ Assert.IsTrue (type.IsNamed ("Test.Framework.Rocks", "PublicType/NestedPublicType"));
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks", "PublicType/N"));//Missing Text
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks", "PublicType/NestedPublicTypeExtraText"));
+
+ Assert.IsFalse (type.IsNamed ("Test.Framework.Rocks", "NestedPublicType"));
+ Assert.IsFalse (type.IsNamed ("", "NestedPublicType"));
+ }
+
+ [Test]
+ public void IsNamedDoubleNestedType ()
+ {
+ string name = "Test.Framework.Rocks.PublicType/NestedPublicType/NestedNestedPublicType";
+ TypeDefinition type = assembly.MainModule.GetType (name);
+
+ Assert.IsTrue (type.IsNamed ("Test.Framework.Rocks.PublicType/NestedPublicType/NestedNestedPublicType"));
+
+ Assert.IsTrue (type.IsNamed ("Test.Framework.Rocks", "PublicType/NestedPublicType/NestedNestedPublicType"));
+ }
+
+ [Test]
public void IsVisible ()
{
string name = "Test.Framework.Rocks.PublicType";
diff --git a/gendarme/framework/Test/Makefile.in b/gendarme/framework/Test/Makefile.in
index 7a3413f..eebc133 100644
--- a/gendarme/framework/Test/Makefile.in
+++ b/gendarme/framework/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -196,14 +225,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/framework/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/framework/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/framework/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/framework/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -221,6 +250,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -244,13 +274,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -268,16 +302,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -297,6 +337,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -305,18 +347,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -351,6 +403,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/man/Makefile.in b/gendarme/man/Makefile.in
index ee55615..7e6c436 100644
--- a/gendarme/man/Makefile.in
+++ b/gendarme/man/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,23 +60,49 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = gendarme.1 gendarme.5 gd2i.1
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
man1dir = $(mandir)/man1
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
"$(DESTDIR)$(rules_documentationdir)"
man5dir = $(mandir)/man5
NROFF = nroff
MANS = $(man_MANS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
DATA = $(rules_documentation_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -120,6 +165,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -133,9 +179,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -218,14 +267,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/man/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/man/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -243,119 +292,120 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
gendarme.1: $(top_builddir)/config.status $(srcdir)/gendarme.1.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gendarme.5: $(top_builddir)/config.status $(srcdir)/gendarme.5.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gd2i.1: $(top_builddir)/config.status $(srcdir)/gd2i.1.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-install-man5: $(man5_MANS) $(man_MANS)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-man5: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
- @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.5*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man5dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.5[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 5*) ;; \
- *) ext='5' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
+ done; }
+
uninstall-man5:
@$(NORMAL_UNINSTALL)
- @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.5*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 5*) ;; \
- *) ext='5' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
- done
+ @list=''; test -n "$(man5dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.5[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -364,6 +414,19 @@ CTAGS:
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -379,13 +442,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -406,10 +473,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -417,6 +489,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -436,6 +509,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -444,18 +519,28 @@ install-data-am: install-man install-rules_documentationDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man: install-man1 install-man5
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -499,6 +584,7 @@ all: gendarme.tree gendarme.zip
gendarme.zip : gendarme.tree
gendarme.tree: gendarme.config Makefile
mdoc assemble -o gendarme -f man $<
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/man/gendarme.1.in b/gendarme/man/gendarme.1.in
index 0389780..cc1989f 100644
--- a/gendarme/man/gendarme.1.in
+++ b/gendarme/man/gendarme.1.in
@@ -33,8 +33,7 @@ Specify the rule sets and rule settings. Default is 'rules.xml'.
Specify a rule set from configfile. Defaults to 'default'.
.TP
.I "--log file"
-Save the report to the specified file. If none of --log, --xml, or --html are used
-then the report is written to stdout.
+Save the report, as a text file, to the specified file.
.TP
.I "--xml file"
Save the report, formatted as XML, to the specified file.
@@ -42,6 +41,11 @@ Save the report, formatted as XML, to the specified file.
.I "--html file"
Save the report, formatted as HTML, to the specified file.
.TP
+.I "--console"
+Write the defects on stdout. This is the default (implicit) behavior if none of
+--log, --xml, or --html options are specified. If (explicitely) specified then
+the defects will be shown on both stdout and inside text/xml/html report(s).
+.TP
.I "--ignore ignore-file"
Do not report defects listed in the specified file.
.TP
diff --git a/gendarme/mono-options.ignore b/gendarme/mono-options.ignore
index c48ca1a..aa1799a 100644
--- a/gendarme/mono-options.ignore
+++ b/gendarme/mono-options.ignore
@@ -67,3 +67,15 @@ T: NDesk.Options.OptionSet
R: Gendarme.Rules.Smells.AvoidCodeDuplicatedInSameClassRule
T: NDesk.Options.OptionSet
+R: Gendarme.Rules.Globalization.PreferStringComparisonOverrideRule
+M: System.String NDesk.Options.OptionSet::GetArgumentName(System.Int32,System.Int32,System.String)
+
+R: Gendarme.Rules.Globalization.PreferIFormatProviderOverrideRule
+M: System.Void NDesk.Options.Option::AddSeparators(System.String,System.Int32,System.Collections.Generic.ICollection`1<System.String>)
+M: System.Boolean NDesk.Options.OptionSet::ParseBundledValue(System.String,System.String,NDesk.Options.OptionContext)
+M: System.Void NDesk.Options.OptionValueCollection::AssertValid(System.Int32)
+M: System.Void NDesk.Options.Option::.ctor(System.String,System.String,System.Int32)
+M: NDesk.Options.OptionValueType NDesk.Options.Option::ParsePrototype()
+M: T NDesk.Options.Option::Parse(System.String,NDesk.Options.OptionContext)
+M: System.Void NDesk.Options.OptionSet::ParseValue(System.String,NDesk.Options.OptionContext)
+
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidAssemblyVersionMismatchRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidAssemblyVersionMismatchRule.cs
index 3b2ba33..dc43d09 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidAssemblyVersionMismatchRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidAssemblyVersionMismatchRule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -61,26 +62,6 @@ namespace Gendarme.Rules.BadPractice {
[Solution ("This situation can be confusing once deployed. Make sure both version are identical.")]
public class AvoidAssemblyVersionMismatchRule : Rule, IAssemblyRule {
- static bool VersionTryParse (string input, out Version result)
- {
- result = null;
- if (String.IsNullOrEmpty (input))
- return false;
-
- try {
- result = new Version (input);
- return true;
- }
- catch (ArgumentException) {
- // also cover ArgumentOutOfRangeException
- }
- catch (FormatException) {
- }
- catch (OverflowException) {
- }
- return false;
- }
-
public RuleResult CheckAssembly (AssemblyDefinition assembly)
{
if (!assembly.HasCustomAttributes)
@@ -100,11 +81,10 @@ namespace Gendarme.Rules.BadPractice {
// any attribute without arguments can be skipped
if (!ca.HasConstructorArguments)
continue;
- if (ca.AttributeType.FullName != "System.Reflection.AssemblyFileVersionAttribute")
+ if (!ca.AttributeType.IsNamed ("System.Reflection", "AssemblyFileVersionAttribute"))
continue;
- // FIXME: replace with Version.TryParse once we upgrade to FX4.0
- VersionTryParse (ca.ConstructorArguments [0].Value as string, out file_version);
+ Version.TryParse (ca.ConstructorArguments [0].Value as string, out file_version);
break;
}
@@ -127,9 +107,11 @@ namespace Gendarme.Rules.BadPractice {
else if (assembly_version.Revision == file_version.Revision)
return RuleResult.Success;
- string msg = String.Format ("Assembly version is '{0}' while file version is '{1}'.", assembly_version, file_version);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Assembly version is '{0}' while file version is '{1}'.", assembly_version, file_version);
Runner.Report (assembly, s, Confidence.High, msg);
return RuleResult.Failure;
}
}
}
+
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidCallingProblematicMethodsRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidCallingProblematicMethodsRule.cs
index 777cc02..87d00c2 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidCallingProblematicMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidCallingProblematicMethodsRule.cs
@@ -27,8 +27,9 @@
//
using System;
-using System.Reflection;
+using System.Globalization;
using System.Collections.Generic;
+using System.Reflection;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -100,22 +101,22 @@ namespace Gendarme.Rules.BadPractice {
public AvoidCallingProblematicMethodsRule ()
{
problematicMethods.Add ("Collect", (m, i) =>
- (m.DeclaringType.FullName == "System.GC") ? Severity.Critical : (Severity?) null);
+ m.DeclaringType.IsNamed ("System", "GC") ? Severity.Critical : (Severity?) null);
problematicMethods.Add ("Suspend", (m, i) =>
- (m.DeclaringType.FullName == "System.Threading.Thread") ? Severity.Medium : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Threading", "Thread") ? Severity.Medium : (Severity?) null);
problematicMethods.Add ("Resume", (m, i) =>
- (m.DeclaringType.FullName == "System.Threading.Thread") ? Severity.Medium : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Threading", "Thread") ? Severity.Medium : (Severity?) null);
problematicMethods.Add ("DangerousGetHandle", (m, i) =>
- (m.DeclaringType.FullName == "System.Runtime.InteropServices.SafeHandle") ? Severity.Critical : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Runtime.InteropServices", "SafeHandle") ? Severity.Critical : (Severity?) null);
problematicMethods.Add ("LoadFrom", (m, i) =>
- (m.DeclaringType.FullName == "System.Reflection.Assembly") ? Severity.High : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Reflection", "Assembly") ? Severity.High : (Severity?) null);
problematicMethods.Add ("LoadFile", (m, i) =>
- (m.DeclaringType.FullName == "System.Reflection.Assembly") ? Severity.High : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Reflection", "Assembly") ? Severity.High : (Severity?) null);
problematicMethods.Add ("LoadWithPartialName", (m, i) =>
- (m.DeclaringType.FullName == "System.Reflection.Assembly") ? Severity.High : (Severity?) null);
+ m.DeclaringType.IsNamed ("System.Reflection", "Assembly") ? Severity.High : (Severity?) null);
problematicMethods.Add ("InvokeMember", (m, i) =>
- (m.DeclaringType.FullName != "System.Type") ? (Severity?) null :
- IsAccessingWithNonPublicModifiers (i) ? Severity.Critical : (Severity?) null);
+ !m.DeclaringType.IsNamed ("System", "Type") ? (Severity?) null :
+ IsAccessingWithNonPublicModifiers (i) ? Severity.Critical : (Severity?) null);
}
private static bool OperandIsNonPublic (BindingFlags operand)
@@ -166,7 +167,8 @@ namespace Gendarme.Rules.BadPractice {
Severity? severity = IsProblematicCall (instruction);
if (severity.HasValue) {
- string msg = String.Format ("You are calling to {0}, which is a potentially problematic method",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "You are calling to {0}, which is a potentially problematic method",
instruction.Operand);
Runner.Report (method, instruction, severity.Value, Confidence.High, msg);
}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidNullCheckWithAsOperatorRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidNullCheckWithAsOperatorRule.cs
new file mode 100644
index 0000000..26394d9
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidNullCheckWithAsOperatorRule.cs
@@ -0,0 +1,141 @@
+//
+// Gendarme.Rules.BadPractice.AvoidNullCheckWithAsOperatorRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+
+using Gendarme.Framework;
+using Gendarme.Framework.Engines;
+using Gendarme.Framework.Helpers;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.BadPractice {
+
+ /// <summary>
+ /// The rule will detect if a null check is done before using the <c>as</c> operator.
+ /// This null check is not needed, a <c>null</c> instance will return <c>null</c>,
+ /// and the code will need to deal with <c>as</c> returning a null value anyway.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public string AsString (object obj)
+ /// {
+ /// return (o == null) ? null : o as string;
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// public string AsString (object obj)
+ /// {
+ /// return (o as string);
+ /// }
+ /// </code>
+ /// </example>
+ // as suggested in https://bugzilla.novell.com/show_bug.cgi?id=651305
+ [Problem ("An unneeded null check is done before using the 'as' operator.")]
+ [Solution ("Remove the extraneous null check")]
+ [EngineDependency (typeof (OpCodeEngine))]
+ public class AvoidNullCheckWithAsOperatorRule : Rule, IMethodRule {
+
+ OpCodeBitmask mask = new OpCodeBitmask (0x100000, 0x10000000000000, 0x0, 0x0);
+
+ static bool CheckFalseBranch (Instruction ins)
+ {
+ Instruction next = ins.Next;
+ if (!next.Is (ins.Previous.OpCode.Code))
+ return false;
+
+ if (!(ins.Operand as Instruction).Is (Code.Ldnull))
+ return false;
+
+ return CheckIsinst (next.Next);
+ }
+
+ static bool CheckTrueBranch (Instruction ins)
+ {
+ if (!ins.Next.Is (Code.Ldnull))
+ return false;
+
+ Instruction br = (ins.Operand as Instruction);
+ if (ins.Previous.OpCode.Code != br.OpCode.Code)
+ return false;
+
+ return CheckIsinst (br.Next);
+ }
+
+ static bool CheckIsinst (Instruction ins)
+ {
+ if (!ins.Is (Code.Isinst))
+ return false;
+ return (ins.Next.OpCode.FlowControl != FlowControl.Cond_Branch);
+ }
+
+ public RuleResult CheckMethod (MethodDefinition method)
+ {
+ // rule only applies to methods with IL...
+ if (!method.HasBody)
+ return RuleResult.DoesNotApply;
+
+ // and when the IL contains both a isinst and ldnull
+ if (!mask.IsSubsetOf (OpCodeEngine.GetBitmask (method)))
+ return RuleResult.DoesNotApply;
+
+ foreach (Instruction ins in method.Body.Instructions) {
+ bool detected = false;
+ switch (ins.OpCode.Code) {
+ case Code.Brfalse_S:
+ case Code.Brfalse:
+ detected = CheckFalseBranch (ins);
+ break;
+ case Code.Brtrue_S:
+ case Code.Brtrue:
+ detected = CheckTrueBranch (ins);
+ break;
+ }
+ if (detected)
+ Runner.Report (method, ins, Severity.Medium, Confidence.Normal);
+ }
+
+ return Runner.CurrentRuleResult;
+ }
+#if false
+ public void Bitmask ()
+ {
+ OpCodeBitmask mask = new OpCodeBitmask ();
+ mask.Set (Code.Isinst);
+ mask.Set (Code.Ldnull);
+ Console.WriteLine (mask);
+ }
+#endif
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidVisibleConstantFieldRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidVisibleConstantFieldRule.cs
index 0831682..c18be47 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/AvoidVisibleConstantFieldRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/AvoidVisibleConstantFieldRule.cs
@@ -24,6 +24,8 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using System.Globalization;
+
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -80,11 +82,12 @@ namespace Gendarme.Rules.BadPractice {
// we let null constant for all reference types (since they can't be changed to anything else)
// except for strings (which can be modified later)
- string type_name = field.FieldType.FullName;
- if (!field.FieldType.IsValueType && (type_name != "System.String"))
+ TypeReference ftype = field.FieldType;
+ if (!ftype.IsValueType && !ftype.IsNamed ("System", "String"))
continue;
- string msg = string.Format ("'{0}' of type {1}.", field.Name, type_name);
+ string msg = string.Format (CultureInfo.InvariantCulture, "'{0}' of type {1}.",
+ field.Name, ftype.GetFullName ());
Runner.Report (field, Severity.High, Confidence.High, msg);
}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewExceptionWithoutThrowingRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewExceptionWithoutThrowingRule.cs
index e40aed6..183a18c 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewExceptionWithoutThrowingRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewExceptionWithoutThrowingRule.cs
@@ -96,7 +96,7 @@ namespace Gendarme.Rules.BadPractice {
MethodReference constructor = (MethodReference) ins.Operand;
- if (!constructor.DeclaringType.Inherits ("System.Exception"))
+ if (!constructor.DeclaringType.Inherits ("System", "Exception"))
continue;
// quick check to save resources
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewThreadWithoutStartRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewThreadWithoutStartRule.cs
index 3f01bb1..ac0c146 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewThreadWithoutStartRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewThreadWithoutStartRule.cs
@@ -110,8 +110,6 @@ namespace Gendarme.Rules.BadPractice {
return false;
}
- private const string Thread = "System.Threading.Thread";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -119,8 +117,10 @@ namespace Gendarme.Rules.BadPractice {
// if the module does not reference (sealed) System.Threading.Thread
// then no code inside the module will instanciate it
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference (Thread);
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Threading", "Thread");
+ }));
};
}
@@ -141,11 +141,11 @@ namespace Gendarme.Rules.BadPractice {
MethodReference constructor = (MethodReference) ins.Operand;
- if (constructor.DeclaringType.FullName != Thread)
+ if (!constructor.DeclaringType.IsNamed ("System.Threading", "Thread"))
continue;
if (ins.Next != null && (ins.Next.OpCode.Code == Code.Call || ins.Next.OpCode.Code == Code.Callvirt)) { //quick check to safe resources
MethodReference calledMethod = (MethodReference) ins.Next.Operand;
- if ((calledMethod.DeclaringType.FullName == Thread) && (calledMethod.Name == "Start"))
+ if (calledMethod.IsNamed ("System.Threading", "Thread", "Start"))
continue;
}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
index eff7ae0..e740a02 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
@@ -69,8 +69,6 @@ namespace Gendarme.Rules.BadPractice {
[Solution ("Return an appropriate object instead of returning null.")]
public class CloneMethodShouldNotReturnNullRule : ReturnNullRule, IMethodRule {
- private const string ICloneable = "System.ICloneable";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -78,8 +76,10 @@ namespace Gendarme.Rules.BadPractice {
// if the module does not reference System.ICloneable then
// no type inside will be implementing it
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference (ICloneable);
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "ICloneable");
+ }));
};
}
@@ -90,7 +90,7 @@ namespace Gendarme.Rules.BadPractice {
return RuleResult.DoesNotApply;
// where the type implements ICloneable
- if (!method.DeclaringType.Implements (ICloneable))
+ if (!method.DeclaringType.Implements ("System", "ICloneable"))
return RuleResult.DoesNotApply;
// call base class to detect if the method can return null
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/ConstructorShouldNotCallVirtualMethodsRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/ConstructorShouldNotCallVirtualMethodsRule.cs
index d3758bb..7f47cf5 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/ConstructorShouldNotCallVirtualMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/ConstructorShouldNotCallVirtualMethodsRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using Mono.Cecil;
@@ -177,7 +178,7 @@ namespace Gendarme.Rules.BadPractice {
if (mr.HasThis)
parameters++;
parameters += mr.Parameters.Count;
- if (mr.ReturnType.FullName != "System.Void")
+ if (!mr.ReturnType.IsNamed ("System", "Void"))
parameters--;
}
break;
@@ -196,7 +197,7 @@ namespace Gendarme.Rules.BadPractice {
if (!OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
return;
- string method_name = method.ToString ();
+ string method_name = method.GetFullName ();
// check to avoid constructors calling recursive methods
if (stack.Contains (method_name))
return;
@@ -216,12 +217,14 @@ namespace Gendarme.Rules.BadPractice {
continue;
// check that we're not calling the method on another object
- if (!IsCallFromInstance (current.Previous, md.Parameters.Count))
+ int n = md.HasParameters ? md.Parameters.Count : 0;
+ if (!IsCallFromInstance (current.Previous, n))
continue;
if (md.IsVirtual && !md.IsFinal) {
string s = stack.Count == 0 ? method_name : stack.Aggregate ((a1, a2) => a1 + ", " + Environment.NewLine + a2);
- s = String.Format ("Calling a virtual method, '{0}' from {1}.", md, s);
+ s = String.Format (CultureInfo.InvariantCulture,
+ "Calling a virtual method, '{0}' from {1}.", md, s);
Runner.Report (method, current, Severity.High, Confidence.High, s);
} else {
stack.Push (method_name);
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/DisableDebuggingCodeRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/DisableDebuggingCodeRule.cs
index f1c6049..9534ca5 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/DisableDebuggingCodeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/DisableDebuggingCodeRule.cs
@@ -89,9 +89,6 @@ namespace Gendarme.Rules.BadPractice {
[EngineDependency (typeof (OpCodeEngine))]
public class DisableDebuggingCodeRule : Rule, IMethodRule {
- private const string ConditionalAttribute = "System.Diagnostics.ConditionalAttribute";
- private const string Console = "System.Console";
-
// note: there can be multiple [Conditional] attribute on a method
private static bool HasConditionalAttributeForDebugging (IList<CustomAttribute> cac)
{
@@ -101,7 +98,7 @@ namespace Gendarme.Rules.BadPractice {
// any attribute without arguments can be skipped
if (!ca.HasConstructorArguments)
continue;
- if (ca.AttributeType.FullName == ConditionalAttribute) {
+ if (ca.AttributeType.IsNamed ("System.Diagnostics", "ConditionalAttribute")) {
switch (ca.ConstructorArguments [0].Value as string) {
case "DEBUG":
case "TRACE":
@@ -126,7 +123,9 @@ namespace Gendarme.Rules.BadPractice {
// if the module does not reference System.Console then no
// method inside it will be calling any Console.write* methods
(e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference (Console));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "Console");
+ }));
};
}
@@ -152,8 +151,12 @@ namespace Gendarme.Rules.BadPractice {
continue;
// ... to System.Console ...
- MethodReference mr = (ins.Operand as MethodReference);
- if (mr.DeclaringType.FullName != Console)
+ MethodReference mr = ins.Operand as MethodReference;
+
+ if (mr == null)
+ continue;
+
+ if (!mr.DeclaringType.IsNamed ("System", "Console"))
continue;
// ... Write* methods
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotDecreaseVisibilityRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotDecreaseVisibilityRule.cs
new file mode 100644
index 0000000..4b387df
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotDecreaseVisibilityRule.cs
@@ -0,0 +1,124 @@
+//
+// Gendarme.Rules.BadPractice.DoNotDecreaseVisibilityRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using Mono.Cecil;
+
+using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.BadPractice {
+
+ /// <summary>
+ /// The rule detect when a method visibility is decreased in an inherited type.
+ /// Decreasing visibility does not prevent calling the base class method unless
+ /// the type is <c>sealed</c>. Note that some language (but not C#) will allow
+ /// you to seal, e.g. <c>final</c>, the method without an <c>override</c>.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public class Base {
+ /// public void Public ()
+ /// {
+ /// }
+ /// }
+ ///
+ /// public class BadInheritor : Base {
+ /// private new void Public ()
+ /// {
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example (do not hide):
+ /// <code>
+ /// public class Inheritor : Base {
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example (sealed type):
+ /// <code>
+ /// public sealed class Inheritor : Base {
+ /// private new void Public ()
+ /// {
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ [Problem ("A private method is hiding a visible method from a base type")]
+ [Solution ("Either seal the inherited type or rename/remove the private method.")]
+ [FxCopCompatibility ("Microsoft.Usage", "CA2222:DoNotDecreaseInheritedMemberVisibility")]
+ public class DoNotDecreaseVisibilityRule : Rule, IMethodRule {
+
+ static bool IsHiding (MethodDefinition method, TypeReference type)
+ {
+ if (type == null)
+ return false;
+
+ TypeDefinition td = type.Resolve ();
+ if ((td != null) && td.HasMethods) {
+ string name = method.Name;
+ foreach (MethodDefinition md in td.Methods) {
+ if (!md.IsPublic && !md.IsFamily)
+ continue;
+ if (name != md.Name)
+ continue;
+ if (method.CompareSignature (md))
+ return true;
+ }
+ }
+
+ return IsHiding (method, type.DeclaringType);
+ }
+
+ public RuleResult CheckMethod (MethodDefinition method)
+ {
+ if (!method.IsPrivate || method.IsFinal)
+ return RuleResult.DoesNotApply;
+
+ TypeDefinition type = method.DeclaringType;
+ if (type.IsSealed)
+ return RuleResult.DoesNotApply;
+
+ // we got a private, non-final, method in an unsealed type
+
+ // note: unlike CSC, MCS does not mark .cctor with hidebysig
+ // this also covers a private default ctor inheriting from System.Object
+ if (method.IsConstructor && !method.HasParameters)
+ return RuleResult.Success;
+
+ // are we're hiding something ?
+ if (method.IsHideBySig && !IsHiding (method, type.BaseType))
+ return RuleResult.Success;
+
+ Runner.Report (method, Severity.High, Confidence.Normal);
+ return RuleResult.Failure;
+ }
+ }
+}
+
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotForgetNotImplementedMethodsRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotForgetNotImplementedMethodsRule.cs
index d90a8b3..c4ce839 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotForgetNotImplementedMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotForgetNotImplementedMethodsRule.cs
@@ -93,7 +93,7 @@ namespace Gendarme.Rules.BadPractice {
if (inst.OpCode.Code != Code.Newobj)
continue;
MethodReference ctor = (MethodReference) inst.Operand;
- if ("System.NotImplementedException" != ctor.DeclaringType.FullName)
+ if (!ctor.DeclaringType.IsNamed ("System", "NotImplementedException"))
continue;
if (inst.Next.OpCode.Code != Code.Throw)
continue;
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseEnumIsAssignableFromRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseEnumIsAssignableFromRule.cs
index dd6280e..5fd5d90 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseEnumIsAssignableFromRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseEnumIsAssignableFromRule.cs
@@ -99,7 +99,7 @@ namespace Gendarme.Rules.BadPractice {
if (type == null)
return false;
- return type.FullName == "System.Enum";
+ return type.IsNamed ("System", "Enum");
}
static bool IsCallToTypeIsAssignableFrom (Instruction instruction)
@@ -124,10 +124,7 @@ namespace Gendarme.Rules.BadPractice {
if (operand.Name != name)
return false;
- if (operand.DeclaringType.FullName != "System.Type")
- return false;
-
- return true;
+ return operand.DeclaringType.IsNamed ("System", "Type");
}
static bool IsCall (OpCode opcode)
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseGetInterfaceToCheckAssignabilityRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseGetInterfaceToCheckAssignabilityRule.cs
index 05edf49..a94bf42 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseGetInterfaceToCheckAssignabilityRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/DoNotUseGetInterfaceToCheckAssignabilityRule.cs
@@ -86,7 +86,7 @@ namespace Gendarme.Rules.BadPractice {
MethodReference call = (ins.Operand as MethodReference);
if (call.Name != "GetInterface")
continue;
- if (!call.DeclaringType.Inherits ("System.Type")) // not a sealed type
+ if (!call.DeclaringType.Inherits ("System", "Type")) // not a sealed type
continue;
// check for a null compare
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Gendarme.Rules.BadPractice.csproj b/gendarme/rules/Gendarme.Rules.BadPractice/Gendarme.Rules.BadPractice.csproj
index 0b595dc..2841537 100755
--- a/gendarme/rules/Gendarme.Rules.BadPractice/Gendarme.Rules.BadPractice.csproj
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Gendarme.Rules.BadPractice.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.BadPractice</RootNamespace>
<AssemblyName>Gendarme.Rules.BadPractice</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.BadPractice.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.BadPractice.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -80,6 +102,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/GetEntryAssemblyMayReturnNullRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/GetEntryAssemblyMayReturnNullRule.cs
index 3719234..5dc1626 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/GetEntryAssemblyMayReturnNullRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/GetEntryAssemblyMayReturnNullRule.cs
@@ -70,8 +70,6 @@ namespace Gendarme.Rules.BadPractice {
[EngineDependency (typeof (OpCodeEngine))]
public class GetEntryAssemblyMayReturnNullRule : Rule, IMethodRule {
- private const string Assembly = "System.Reflection.Assembly";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -81,13 +79,20 @@ namespace Gendarme.Rules.BadPractice {
// GetEntryAssembly will work inside executables
e.CurrentAssembly.EntryPoint == null &&
- // if the module does not reference System.Reflection.Assembly
- // then no method inside it will be calling GetEntryAssembly
+ // if the module does not reference System.Reflection.Assembly.GetEntryAssembly
+ // then there's no point in enabling the rule
(e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference (Assembly));
+ e.CurrentModule.AnyMemberReference ((MemberReference mr) => {
+ return IsGetEntryAssembly (mr);
+ }));
};
}
+ static bool IsGetEntryAssembly (MemberReference method)
+ {
+ return method.IsNamed ("System.Reflection", "Assembly", "GetEntryAssembly");
+ }
+
public RuleResult CheckMethod (MethodDefinition method)
{
// rule doesn't not apply to methods without code (e.g. p/invokes)
@@ -108,11 +113,8 @@ namespace Gendarme.Rules.BadPractice {
switch (current.OpCode.Code) {
case Code.Call:
case Code.Callvirt:
- MethodReference mr = (current.Operand as MethodReference);
- if ((mr != null) && (mr.Name == "GetEntryAssembly")
- && (mr.DeclaringType.FullName == Assembly)) {
- Runner.Report (method, current, Severity.Medium, Confidence.Total, String.Empty);
- }
+ if (IsGetEntryAssembly (current.Operand as MethodReference))
+ Runner.Report (method, current, Severity.Medium, Confidence.Total);
break;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.am b/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.am
index 5dc3f47..5237708 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.am
@@ -3,12 +3,14 @@ include ../common.make
rules_sources = \
AvoidAssemblyVersionMismatchRule.cs \
AvoidCallingProblematicMethodsRule.cs \
+ AvoidNullCheckWithAsOperatorRule.cs \
AvoidVisibleConstantFieldRule.cs \
CheckNewExceptionWithoutThrowingRule.cs \
CheckNewThreadWithoutStartRule.cs \
CloneMethodShouldNotReturnNullRule.cs \
ConstructorShouldNotCallVirtualMethodsRule.cs \
DisableDebuggingCodeRule.cs \
+ DoNotDecreaseVisibilityRule.cs \
DoNotForgetNotImplementedMethodsRule.cs \
DoNotUseEnumIsAssignableFromRule.cs \
DoNotUseGetInterfaceToCheckAssignabilityRule.cs \
@@ -27,12 +29,14 @@ rules_sources = \
tests_sources = \
AvoidAssemblyVersionMismatchTest.cs \
- AvoidVisibleConstantFieldTest.cs \
AvoidCallingProblematicMethodsTest.cs \
+ AvoidNullCheckWithAsOperatorTest.cs \
+ AvoidVisibleConstantFieldTest.cs \
CheckNewExceptionWithoutThrowingTest.cs \
CheckNewThreadWithoutStartTest.cs \
CloneMethodShouldNotReturnNullTest.cs \
ConstructorShouldNotCallVirtualMethodsTest.cs \
+ DoNotDecreaseVisibilityTest.cs \
DoNotForgetNotImplementedMethodsTest.cs \
DoNotUseEnumIsAssignableFromTest.cs \
DoNotUseGetInterfaceToCheckAssignabilityTest.cs \
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.in b/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.in
index 4a70043..9c13948 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -253,12 +329,14 @@ tests_build_sources = $(addprefix $(srcdir)/Test/, $(tests_sources))
rules_sources = \
AvoidAssemblyVersionMismatchRule.cs \
AvoidCallingProblematicMethodsRule.cs \
+ AvoidNullCheckWithAsOperatorRule.cs \
AvoidVisibleConstantFieldRule.cs \
CheckNewExceptionWithoutThrowingRule.cs \
CheckNewThreadWithoutStartRule.cs \
CloneMethodShouldNotReturnNullRule.cs \
ConstructorShouldNotCallVirtualMethodsRule.cs \
DisableDebuggingCodeRule.cs \
+ DoNotDecreaseVisibilityRule.cs \
DoNotForgetNotImplementedMethodsRule.cs \
DoNotUseEnumIsAssignableFromRule.cs \
DoNotUseGetInterfaceToCheckAssignabilityRule.cs \
@@ -277,12 +355,14 @@ rules_sources = \
tests_sources = \
AvoidAssemblyVersionMismatchTest.cs \
- AvoidVisibleConstantFieldTest.cs \
AvoidCallingProblematicMethodsTest.cs \
+ AvoidNullCheckWithAsOperatorTest.cs \
+ AvoidVisibleConstantFieldTest.cs \
CheckNewExceptionWithoutThrowingTest.cs \
CheckNewThreadWithoutStartTest.cs \
CloneMethodShouldNotReturnNullTest.cs \
ConstructorShouldNotCallVirtualMethodsTest.cs \
+ DoNotDecreaseVisibilityTest.cs \
DoNotForgetNotImplementedMethodsTest.cs \
DoNotUseEnumIsAssignableFromTest.cs \
DoNotUseGetInterfaceToCheckAssignabilityTest.cs \
@@ -306,14 +386,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -323,6 +403,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -331,42 +412,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -375,7 +477,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -392,7 +494,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -400,7 +502,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -426,16 +528,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -443,14 +545,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -462,7 +564,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -471,29 +573,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -514,29 +621,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -559,10 +678,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -570,6 +694,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -589,6 +714,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -598,18 +725,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -631,8 +768,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -652,11 +789,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -665,7 +802,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -685,6 +822,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/ObsoleteMessagesShouldNotBeEmptyRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/ObsoleteMessagesShouldNotBeEmptyRule.cs
index da0fdd5..33e5802 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/ObsoleteMessagesShouldNotBeEmptyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/ObsoleteMessagesShouldNotBeEmptyRule.cs
@@ -70,8 +70,6 @@ namespace Gendarme.Rules.BadPractice {
[FxCopCompatibility ("Microsoft.Design", "CA1041:ProvideObsoleteAttributeMessage")]
public class ObsoleteMessagesShouldNotBeEmptyRule : Rule, ITypeRule {
- private const string ObsoleteAttribute = "System.ObsoleteAttribute";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -79,8 +77,10 @@ namespace Gendarme.Rules.BadPractice {
// if the module does not have a reference to System.ObsoleteAttribute
// then nothing will be marked as obsolete inside it
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference (ObsoleteAttribute);
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "ObsoleteAttribute");
+ }));
};
}
@@ -92,7 +92,7 @@ namespace Gendarme.Rules.BadPractice {
foreach (CustomAttribute ca in cap.CustomAttributes) {
// ObsoleteAttribute has a three (3) ctors, including a default (parameter-less) ctor
// http://msdn.microsoft.com/en-us/library/68k270ch.aspx
- if (ca.AttributeType.FullName != ObsoleteAttribute)
+ if (!ca.AttributeType.IsNamed ("System", "ObsoleteAttribute"))
continue;
// note: we don't have to check fields since they cannot be used
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/OnlyUseDisposeForIDisposableTypesRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/OnlyUseDisposeForIDisposableTypesRule.cs
index 0425323..9647199 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/OnlyUseDisposeForIDisposableTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/OnlyUseDisposeForIDisposableTypesRule.cs
@@ -94,9 +94,9 @@ namespace Gendarme.Rules.BadPractice {
Log.WriteLine (this);
Log.WriteLine (this, "----------------------------------");
- Log.WriteLine (this, type.FullName);
+ Log.WriteLine (this, type);
- if (!type.Implements ("System.IDisposable")) {
+ if (!type.Implements ("System", "IDisposable")) {
Log.WriteLine (this, "type does not implement IDisposable");
foreach (MethodDefinition method in type.Methods.Where (m => m.Name == "Dispose"))
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/PreferEmptyInstanceOverNullRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/PreferEmptyInstanceOverNullRule.cs
index 5c16da9..c6cbebc 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/PreferEmptyInstanceOverNullRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/PreferEmptyInstanceOverNullRule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -146,9 +147,9 @@ namespace Gendarme.Rules.BadPractice {
//only apply to methods returning string, array, or IEnumerable-impl
return_type = method.ReturnType;
- string_return_type = (return_type.FullName == "System.String");
+ string_return_type = return_type.IsNamed ("System", "String");
array_return_type = return_type.IsArray;
- ienumerable_return_type = return_type.Implements ("System.Collections.IEnumerable");
+ ienumerable_return_type = return_type.Implements ("System.Collections", "IEnumerable");
if (!string_return_type && !array_return_type && !ienumerable_return_type)
return RuleResult.DoesNotApply;
@@ -158,7 +159,7 @@ namespace Gendarme.Rules.BadPractice {
protected override void Report (MethodDefinition method, Instruction ins)
{
- string msg = string.Format ("Replace null with {0}.", SuggestReturnType ());
+ string msg = String.Format (CultureInfo.InvariantCulture, "Replace null with {0}.", SuggestReturnType ());
Runner.Report (method, ins, method.IsVisible () ? Severity.Medium : Severity.Low, Confidence.Normal, msg);
}
@@ -167,7 +168,7 @@ namespace Gendarme.Rules.BadPractice {
if (string_return_type)
return "string.Empty";
else if (array_return_type)
- return string.Format ("an empty {0} array", return_type.Name);
+ return String.Format (CultureInfo.InvariantCulture, "an empty {0} array", return_type.Name);
else if (ienumerable_return_type)
return "yield break (or equivalent)";
return "an empty collection";
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/PreferParamsArrayForVariableArgumentsRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/PreferParamsArrayForVariableArgumentsRule.cs
index 10751fd..c048420 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/PreferParamsArrayForVariableArgumentsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/PreferParamsArrayForVariableArgumentsRule.cs
@@ -83,7 +83,9 @@ namespace Gendarme.Rules.BadPractice {
Runner.AnalyzeModule += (object o, RunnerEventArgs e) => {
Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference ("System.ArgIterator"));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "ArgIterator");
+ }));
};
}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/PreferSafeHandleRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/PreferSafeHandleRule.cs
index f87ac97..6d93dcc 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/PreferSafeHandleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/PreferSafeHandleRule.cs
@@ -186,9 +186,12 @@ namespace Gendarme.Rules.BadPractice {
static FieldDefinition FindIntPtr (TypeDefinition type)
{
foreach (FieldDefinition field in type.Fields) {
- string name = field.FieldType.FullName;
- if (name == "System.IntPtr" || name == "System.UIntPtr")
- return field;
+ TypeReference ftype = field.FieldType;
+ if (ftype.Namespace == "System") {
+ string name = ftype.Name;
+ if ((name == "IntPtr") || (name == "UIntPtr"))
+ return field;
+ }
}
return null;
@@ -212,7 +215,7 @@ namespace Gendarme.Rules.BadPractice {
Log.WriteLine (this);
Log.WriteLine (this, "----------------------------------");
- Log.WriteLine (this, type.FullName);
+ Log.WriteLine (this, type);
FieldDefinition field = FindIntPtr (type);
if (field != null) {
@@ -222,7 +225,7 @@ namespace Gendarme.Rules.BadPractice {
if (finalizer != null)
confidence = (Confidence) ((int) confidence - 1); // lower numbers have higher confidence
- if (type.Implements ("System.IDisposable"))
+ if (type.Implements ("System", "IDisposable"))
confidence = (Confidence) ((int) confidence - 1);
Log.WriteLine (this, "'{0}' is an IntPtr.", field.Name);
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/PreferTryParseRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/PreferTryParseRule.cs
index 432c9ba..7856cdb 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/PreferTryParseRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/PreferTryParseRule.cs
@@ -118,6 +118,7 @@ namespace Gendarme.Rules.BadPractice {
static bool HasTryParseMethod (TypeDefinition type)
{
bool present = false;
+
if (!has_try_parse.TryGetValue (type, out present)) {
foreach (MethodReference method in type.Methods) {
if (MethodSignatures.TryParse.Matches (method)) {
@@ -162,7 +163,8 @@ namespace Gendarme.Rules.BadPractice {
if (!MethodSignatures.Parse.Matches (mr))
continue;
- if (!HasTryParseMethod (mr.DeclaringType.Resolve ()))
+ TypeDefinition declaringType = mr.DeclaringType.Resolve();
+ if (declaringType != null && !HasTryParseMethod(declaringType))
continue;
// if inside a try (catch/finally) block then...
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Test/AvoidNullCheckWithAsOperatorTest.cs b/gendarme/rules/Gendarme.Rules.BadPractice/Test/AvoidNullCheckWithAsOperatorTest.cs
new file mode 100644
index 0000000..65f9d50
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Test/AvoidNullCheckWithAsOperatorTest.cs
@@ -0,0 +1,142 @@
+//
+// Unit Tests for AvoidNullCheckWithAsOperatorRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Gendarme.Rules.BadPractice;
+
+using NUnit.Framework;
+using Test.Rules.Definitions;
+using Test.Rules.Fixtures;
+
+namespace Test.Rules.BadPractice {
+
+ [TestFixture]
+ public class AvoidNullCheckWithAsOperatorTest : MethodRuleTestFixture<AvoidNullCheckWithAsOperatorRule> {
+
+ string AsString_Bad1a (object obj)
+ {
+ return obj == null ? null : obj as string;
+ }
+
+ string AsString_Bad1b (object obj)
+ {
+ if (obj != null)
+ return obj as string;
+ return null;
+ }
+
+ string AsString_Bad2a (object obj)
+ {
+ return obj != null ? obj as string : null;
+ }
+
+ string AsString_Bad2b (object obj)
+ {
+ if (obj == null)
+ return null;
+ return obj as string;
+ }
+
+ string AsString_Good (object obj)
+ {
+ return obj as string;
+ }
+
+ string AsString_Good2 (string message, object obj)
+ {
+ if (message == null)
+ throw new ArgumentNullException ("message");
+ Console.WriteLine (message);
+ return obj as string;
+ }
+
+ string AsString_Good3 (string message, object obj)
+ {
+ if (message == null)
+ return null;
+ Console.WriteLine (message);
+ return obj as string;
+ }
+
+ void LocalsBad1a ()
+ {
+ object o = null;
+ string a = o == null ? null : o as string;
+ Console.WriteLine (a);
+ }
+
+ void LocalsBad2a ()
+ {
+ object o = null;
+ string a = o != null ? o as string : null;
+ Console.WriteLine (a);
+ }
+
+ // extracted from: moon/class/System.Windows/Mono.Xaml/XamlPropertySetter.cs
+ // no 'as' has been harmed by this test
+ object ConvertValue (object value)
+ {
+ if (value == null)
+ return null;
+
+ if (value is Type || value is SimpleMethods)
+ return value;
+
+ return value.ToString ();
+ }
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ AssertRuleDoesNotApply (SimpleMethods.ExternalMethod);
+ AssertRuleDoesNotApply (SimpleMethods.EmptyMethod);
+ // no ldnull instruction
+ AssertRuleDoesNotApply<AvoidNullCheckWithAsOperatorTest> ("AsString_Good");
+ AssertRuleDoesNotApply<AvoidNullCheckWithAsOperatorTest> ("AsString_Good2");
+ }
+
+ [Test]
+ public void Success ()
+ {
+ AssertRuleSuccess<AvoidNullCheckWithAsOperatorTest> ("AsString_Good3");
+ AssertRuleSuccess<AvoidNullCheckWithAsOperatorTest> ("ConvertValue");
+ }
+
+ [Test]
+ public void Failure ()
+ {
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("AsString_Bad1a");
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("AsString_Bad1b");
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("AsString_Bad2a");
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("AsString_Bad2b");
+
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("LocalsBad1a");
+ AssertRuleFailure<AvoidNullCheckWithAsOperatorTest> ("LocalsBad2a");
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Test/DoNotDecreaseVisibilityTest.cs b/gendarme/rules/Gendarme.Rules.BadPractice/Test/DoNotDecreaseVisibilityTest.cs
new file mode 100644
index 0000000..9bafda7
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Test/DoNotDecreaseVisibilityTest.cs
@@ -0,0 +1,210 @@
+//
+// Tests.Rules.BadPractice.DoNotDecreaseVisibilityTest
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+using Mono.Cecil;
+using Gendarme.Rules.BadPractice ;
+
+using NUnit.Framework;
+using Test.Rules.Fixtures;
+using Test.Rules.Helpers;
+using Test.Rules.Definitions;
+
+namespace Test.Rules.BadPractice {
+
+ [TestFixture]
+ public class DoNotDecreaseVisibilityTest : MethodRuleTestFixture<DoNotDecreaseVisibilityRule> {
+
+ public class TestCase {
+
+ public class Base {
+ public void Public ()
+ {
+ }
+
+ protected bool Protected (int x)
+ {
+ return x == 0;
+ }
+
+ internal int Internal ()
+ {
+ return -1;
+ }
+
+ private float Private (float f)
+ {
+ return f;
+ }
+ }
+
+ public class BadInheritor : Base {
+ private new void Public ()
+ {
+ }
+
+ private new bool Protected (int x)
+ {
+ return x == 1;
+ }
+
+ private new int Internal ()
+ {
+ return -1;
+ }
+
+ private new float Private (float f)
+ {
+ return -f;
+ }
+ }
+
+ public class NoInheritance {
+ private new void Public ()
+ {
+ }
+
+ private new bool Protected (int x)
+ {
+ return x == 1;
+ }
+
+ private new int Internal ()
+ {
+ return -1;
+ }
+
+ private new float Private (float f)
+ {
+ return -f;
+ }
+ }
+
+ // c# cannot seal the method without making it an override
+ // and an override cannot change visibility
+#if false
+ public class FinalInheritor : Base {
+ private new sealed void Public ()
+ {
+ }
+
+ private new sealed bool Protected (int x)
+ {
+ return x == 1;
+ }
+
+ private new sealed int Internal ()
+ {
+ return -1;
+ }
+
+ private new float Private (float f)
+ {
+ return -f;
+ }
+ }
+#endif
+ public sealed class Sealed : Base {
+ private new void Public ()
+ {
+ }
+
+ private new bool Protected (int x)
+ {
+ return x == 1;
+ }
+
+ private new int Internal ()
+ {
+ return -1;
+ }
+
+ private new float Private (float f)
+ {
+ return -f;
+ }
+ }
+
+ public class StaticCtor {
+ static StaticCtor ()
+ {
+ }
+ }
+
+ public class StaticCtorInheritor : StaticCtor {
+ static StaticCtorInheritor ()
+ {
+ }
+ }
+ }
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ // not private
+ AssertRuleDoesNotApply<TestCase.Base> ("Public");
+ AssertRuleDoesNotApply<TestCase.Base> ("Protected");
+ AssertRuleDoesNotApply<TestCase.Base> ("Internal");
+#if false
+ // method is sealed (final)
+ AssertRuleDoesNotApply<TestCase.FinalInheritor> ("Public");
+ AssertRuleDoesNotApply<TestCase.FinalInheritor> ("Protected");
+ AssertRuleDoesNotApply<TestCase.FinalInheritor> ("Internal");
+ AssertRuleDoesNotApply<TestCase.FinalInheritor> ("Private");
+#endif
+ // type is sealed
+ AssertRuleDoesNotApply<TestCase.Sealed> ("Public");
+ AssertRuleDoesNotApply<TestCase.Sealed> ("Protected");
+ AssertRuleDoesNotApply<TestCase.Sealed> ("Internal");
+ AssertRuleDoesNotApply<TestCase.Sealed> ("Private");
+ }
+
+ [Test]
+ public void Good ()
+ {
+ AssertRuleSuccess<TestCase.Base> ("Private");
+
+ AssertRuleSuccess<TestCase.NoInheritance> ("Public");
+ AssertRuleSuccess<TestCase.NoInheritance> ("Protected");
+ AssertRuleSuccess<TestCase.NoInheritance> ("Internal");
+ AssertRuleSuccess<TestCase.NoInheritance> ("Private");
+
+ AssertRuleSuccess<TestCase.BadInheritor> ("Internal");
+ AssertRuleSuccess<TestCase.BadInheritor> ("Private");
+
+ AssertRuleSuccess<TestCase.StaticCtor> (".cctor");
+ AssertRuleSuccess<TestCase.StaticCtorInheritor> (".cctor");
+ }
+
+ [Test]
+ public void Bad ()
+ {
+ AssertRuleFailure<TestCase.BadInheritor> ("Public");
+ AssertRuleFailure<TestCase.BadInheritor> ("Protected");
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile.in
index 77ad8e7..03fce0f 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.BadPractice/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/Test/Tests.Rules.BadPractice.csproj b/gendarme/rules/Gendarme.Rules.BadPractice/Test/Tests.Rules.BadPractice.csproj
index 0693fa8..ec4cf33 100755
--- a/gendarme/rules/Gendarme.Rules.BadPractice/Test/Tests.Rules.BadPractice.csproj
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/Test/Tests.Rules.BadPractice.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.BadPractice</RootNamespace>
<AssemblyName>Tests.Rules.BadPractice</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -85,6 +107,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.BadPractice/UseFileOpenOnlyWithFileAccessRule.cs b/gendarme/rules/Gendarme.Rules.BadPractice/UseFileOpenOnlyWithFileAccessRule.cs
index 655298f..2c8be6f 100644
--- a/gendarme/rules/Gendarme.Rules.BadPractice/UseFileOpenOnlyWithFileAccessRule.cs
+++ b/gendarme/rules/Gendarme.Rules.BadPractice/UseFileOpenOnlyWithFileAccessRule.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -68,9 +69,19 @@ namespace Gendarme.Rules.BadPractice {
[EngineDependency (typeof (OpCodeEngine))]
public class UseFileOpenOnlyWithFileAccessRule : Rule, IMethodRule {
- const string fileMode = "System.IO.FileMode";
- const string fileAccess = "System.IO.FileAccess";
- const string fileSystemRights = "System.Security.AccessControl.FileSystemRights";
+ public override void Initialize (IRunner runner)
+ {
+ base.Initialize (runner);
+
+ // if the module does not reference System.IO.FileMode
+ // then no code inside the module will be using it
+ Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.IO", "FileMode");
+ }));
+ };
+ }
// System.IO.File::Open
// System.IO.FileInfo::Open
@@ -115,16 +126,17 @@ namespace Gendarme.Rules.BadPractice {
bool foundFileMode = false;
bool foundFileAccess = false;
foreach (ParameterDefinition parameter in m.Parameters) {
- string ptname = parameter.ParameterType.FullName;
- if (!foundFileMode && ptname == fileMode)
+ TypeReference ptype = parameter.ParameterType;
+ if (!foundFileMode && ptype.IsNamed ("System.IO", "FileMode"))
foundFileMode = true;
- if (!foundFileAccess && (ptname == fileAccess || ptname == fileSystemRights))
+ if (!foundFileAccess && (ptype.IsNamed ("System.IO", "FileAccess") || ptype.IsNamed ("System.Security.AccessControl", "FileSystemRights")))
foundFileAccess = true;
}
if (foundFileMode && !foundFileAccess) {
- Runner.Report (method, instruction, Severity.Medium, Confidence.Normal,
- String.Format("{0}::{1} being called with FileMode parameter but without FileAccess.",
- m.DeclaringType.FullName, m.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "{0}::{1} being called with FileMode parameter but without FileAccess.",
+ m.DeclaringType.GetFullName (), m.Name);
+ Runner.Report (method, instruction, Severity.Medium, Confidence.Normal, msg);
}
}
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DecorateThreadsRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DecorateThreadsRule.cs
index feead4a..c7b243a 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DecorateThreadsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DecorateThreadsRule.cs
@@ -37,6 +37,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
+using System.Globalization;
using System.Linq;
namespace Gendarme.Rules.Concurrency {
@@ -268,7 +269,8 @@ namespace Gendarme.Rules.Concurrency {
if (delegateType != null && !ThreadRocks.ThreadedNamespace (delegateType.Namespace)) {
ThreadModel delegateModel = delegateType.ThreadingModel ();
if (model != delegateModel && !delegateModel.AllowsEveryCaller ()) {
- string mesg = string.Format ("{0} event must match {1} delegate.", model, delegateModel);
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} event must match {1} delegate.", model, delegateModel);
ReportDefect (method, Severity.High, Confidence.High, mesg);
}
}
@@ -281,15 +283,17 @@ namespace Gendarme.Rules.Concurrency {
bool new_slot = method.IsNewSlot;
superTypes = from s in superTypes where (s.IsInterface == new_slot) select s;
string [] parameters = pdc != null
- ? (from p in pdc.Cast<ParameterDefinition> () select p.ParameterType.FullName).ToArray ()
+ ? (from p in pdc.Cast<ParameterDefinition> () select p.ParameterType.GetFullName ()).ToArray ()
: null;
+ string return_type_name = method.ReturnType.GetFullName ();
foreach (TypeDefinition type in superTypes) {
- MethodDefinition superMethod = type.GetMethod (name, method.ReturnType.FullName, parameters);
+ MethodDefinition superMethod = type.GetMethod (name, return_type_name, parameters);
if (superMethod != null && !ThreadRocks.ThreadedNamespace (superMethod.DeclaringType.Namespace)) {
ThreadModel superModel = superMethod.ThreadingModel ();
if (model != superModel) {
- string mesg = string.Format ("{0} {1} must match {2} {3} method.", model, name, superModel,
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} {1} must match {2} {3} method.", model, name, superModel,
new_slot ? "interface" : "base");
ReportDefect (method, Severity.High, Confidence.High, mesg);
}
@@ -299,7 +303,7 @@ namespace Gendarme.Rules.Concurrency {
// Serializable cannot be applied to static methods, but can be applied to
// operators because they're just sugar for normal calls.
- if (method.IsStatic && model.Is (ThreadModel.Serializable) && !name.StartsWith ("op_")) {
+ if (method.IsStatic && model.Is (ThreadModel.Serializable) && !name.StartsWith ("op_", StringComparison.Ordinal)) {
string mesg = "Static members cannot be decorated with Serializable.";
ReportDefect (method, Severity.High, Confidence.High, mesg);
}
@@ -315,21 +319,23 @@ namespace Gendarme.Rules.Concurrency {
foreach (MethodDefinition caller in anonymous_entry_points) {
foreach (Instruction ins in caller.Body.Instructions) {
switch (ins.OpCode.Code) {
- case Code.Call:
- case Code.Callvirt:
- MethodDefinition target = ((MethodReference) ins.Operand).Resolve ();
- if (target != null) {
- ThreadModel targetModel = target.ThreadingModel ();
- if (targetModel == ThreadModel.MainThread) {
- string mesg = string.Format ("An anonymous thread entry point cannot call MainThread {0}.", target.Name);
-
- ++DefectCount;
- Log.WriteLine (this, "Defect: {0}", mesg);
- Defect defect = new Defect (this, caller, caller, ins, Severity.High, Confidence.High, mesg);
- Runner.Report (defect);
- }
+ case Code.Call:
+ case Code.Callvirt:
+ MethodDefinition target = ((MethodReference) ins.Operand).Resolve ();
+ if (target != null) {
+ ThreadModel targetModel = target.ThreadingModel ();
+ if (targetModel == ThreadModel.MainThread) {
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "An anonymous thread entry point cannot call MainThread {0}.",
+ target.Name);
+
+ ++DefectCount;
+ Log.WriteLine (this, "Defect: {0}", mesg);
+ Defect defect = new Defect (this, caller, caller, ins, Severity.High, Confidence.High, mesg);
+ Runner.Report (defect);
}
- break;
+ }
+ break;
}
}
}
@@ -385,8 +391,9 @@ namespace Gendarme.Rules.Concurrency {
if (!target.IsGeneratedCode () || target.IsProperty ()) {
ThreadModel targetModel = target.ThreadingModel ();
if (!IsValidCall (callerModel, targetModel)) {
- string mesg = string.Format ("{0} delegate cannot be bound to {1} {2} method.", callerModel, targetModel, target.Name);
-
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} delegate cannot be bound to {1} {2} method.",
+ callerModel, targetModel, target.Name);
++DefectCount;
Log.WriteLine (this, "Defect: {0}", mesg);
Defect defect = new Defect (this, method, method, ins, Severity.High, Confidence.High, mesg);
@@ -431,7 +438,7 @@ namespace Gendarme.Rules.Concurrency {
methods.AddIfNew ((MethodReference) ins.Previous.Previous.Operand);
// Misc threaded events.
- } else if (call_type.FullName == "System.ComponentModel.BackgroundWorker") {
+ } else if (call_type.IsNamed ("System.ComponentModel", "BackgroundWorker")) {
if (call.Name == "add_DoWork") {
candidate = (MethodReference) ins.Previous.Previous.Operand;
}
@@ -465,7 +472,9 @@ namespace Gendarme.Rules.Concurrency {
if (target != null) {
ThreadModel targetModel = target.ThreadingModel ();
if (!IsValidCall (method_model.Value, targetModel)) {
- string mesg = string.Format ("{0} {1} cannot be bound to {2} {3} method.", method_model, entry.Key, targetModel, target.Name);
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} {1} cannot be bound to {2} {3} method.",
+ method_model, entry.Key, targetModel, target.Name);
ReportDefect (method, Severity.High, Confidence.High, mesg);
}
}
@@ -490,9 +499,8 @@ namespace Gendarme.Rules.Concurrency {
// but mono doesn't.
case "add_ErrorDataReceived":
case "add_OutputDataReceived":
- TypeReference type = method.DeclaringType;
- if (type.Name == "Process")
- return (type.Namespace == "System.Diagnostics");
+ if (method.DeclaringType.IsNamed ("System.Diagnostics", "Process"))
+ return true;
break;
}
return false;
@@ -523,7 +531,8 @@ namespace Gendarme.Rules.Concurrency {
anonymous_entry_points.Add (method);
} else if (model == ThreadModel.MainThread) {
- string mesg = string.Format ("{0} is a thread entry point and so cannot be MainThread.", method.Name);
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} is a thread entry point and so cannot be MainThread.", method.Name);
ReportDefect (method, Severity.High, Confidence.High, mesg);
}
}
@@ -537,7 +546,8 @@ namespace Gendarme.Rules.Concurrency {
ThreadModel callerModel = caller.ThreadingModel ();
ThreadModel targetModel = target.ThreadingModel ();
if (!IsValidCall (callerModel, targetModel)) {
- string mesg = string.Format ("{0} {1} cannot call {2} {3}.", callerModel, caller.Name, targetModel, target.Name);
+ string mesg = String.Format (CultureInfo.InvariantCulture, "{0} {1} cannot call {2} {3}.",
+ callerModel, caller.Name, targetModel, target.Name);
++DefectCount;
Log.WriteLine (this, "Defect: {0}", mesg);
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnThisOrTypesRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnThisOrTypesRule.cs
index 2ddb7ac..7c91ad5 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnThisOrTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnThisOrTypesRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -108,23 +109,26 @@ namespace Gendarme.Rules.Concurrency {
switch (ins.OpCode.Code) {
case Code.Ldarg_0:
- msg = LockThis;
+ if (!method.IsStatic)
+ msg = LockThis;
break;
case Code.Ldarg:
case Code.Ldarg_S:
- ParameterDefinition pd = (ins.Operand as ParameterDefinition);
- if ((pd == null) || (pd.GetSequence () != 0))
- msg = LockThis;
+ if (!method.IsStatic) {
+ ParameterDefinition pd = (ins.Operand as ParameterDefinition);
+ if ((pd == null) || (pd.Index == 0))
+ msg = LockThis;
+ }
break;
case Code.Call:
case Code.Callvirt:
MethodReference mr = (ins.Operand as MethodReference);
- if (mr.ReturnType.FullName != "System.Type")
+ if (!mr.ReturnType.IsNamed ("System", "Type"))
return String.Empty;
if ((mr.Name == "GetTypeFromHandle") && (mr.DeclaringType.Name == "Type")) {
// ldtoken
- msg = String.Format (LockType, (ins.Previous.Operand as TypeReference).Name);
+ msg = String.Format (CultureInfo.InvariantCulture, LockType, (ins.Previous.Operand as TypeReference).Name);
} else {
msg = mr.ToString ();
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnWeakIdentityObjectsRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnWeakIdentityObjectsRule.cs
index fe730aa..57c3b84 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnWeakIdentityObjectsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotLockOnWeakIdentityObjectsRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -99,12 +100,26 @@ namespace Gendarme.Rules.Concurrency {
[FxCopCompatibility ("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity")]
public class DoNotLockOnWeakIdentityObjectsRule : LockAnalyzerRule {
- private static string [] unsealed_types = new string[] {
- "System.MarshalByRefObject",
- "System.OutOfMemoryException",
- "System.Reflection.MemberInfo",
- "System.Reflection.ParameterInfo"
- };
+ static bool IsWeakSealedType (TypeReference type)
+ {
+ switch (type.Namespace) {
+ case "System":
+ string name = type.Name;
+ return ((name == "String") || (name == "ExecutionEngineException") || (name == "StackOverflowException"));
+ case "System.Threading":
+ return (type.Name == "Thread");
+ default:
+ return false;
+ }
+ }
+
+ static string InheritFromWeakType (TypeReference type, string nameSpace, string name)
+ {
+ if (!type.Inherits (nameSpace, name))
+ return String.Empty;
+ return String.Format (CultureInfo.InvariantCulture, "'{0}' inherits from '{1}.{2}'.",
+ type.GetFullName (), nameSpace, name);
+ }
public override void Analyze (MethodDefinition method, MethodReference enter, Instruction ins)
{
@@ -119,7 +134,7 @@ namespace Gendarme.Rules.Concurrency {
if (first.OpCode.Code == Code.Dup)
first = first.Previous;
type = first.GetOperandType (method);
- if (type.FullName == "System.Object") {
+ if (type.IsNamed ("System", "Object")) {
// newer GMCS use a temporary local that hides the real type
Instruction prev = first.Previous;
if (first.IsLoadLocal () && prev.IsStoreLocal ()) {
@@ -131,24 +146,28 @@ namespace Gendarme.Rules.Concurrency {
if (type == null)
return;
- // fast check for sealed types
- string full_name = type.FullName;
- switch (full_name) {
- case "System.ExecutionEngineException":
- case "System.StackOverflowException":
- case "System.String":
- case "System.Threading.Thread":
- Runner.Report (method, call, Severity.High, Confidence.Normal, full_name);
- break;
- default:
- foreach (string unsealed in unsealed_types) {
- if (!type.Inherits (unsealed))
- continue;
-
- string msg = String.Format ("'{0}' inherits from '{1}'.", full_name, unsealed);
+ if (IsWeakSealedType (type)) {
+ Runner.Report (method, call, Severity.High, Confidence.Normal, type.GetFullName ());
+ } else {
+ string msg = InheritFromWeakType (type, "System", "MarshalByRefObject");
+ if (msg.Length > 0) {
+ Runner.Report (method, call, Severity.High, Confidence.Normal, msg);
+ return;
+ }
+ msg = InheritFromWeakType (type, "System", "OutOfMemoryException");
+ if (msg.Length > 0) {
+ Runner.Report (method, call, Severity.High, Confidence.Normal, msg);
+ return;
+ }
+ msg = InheritFromWeakType (type, "System.Reflection", "MemberInfo");
+ if (msg.Length > 0) {
+ Runner.Report (method, call, Severity.High, Confidence.Normal, msg);
+ return;
+ }
+ msg = InheritFromWeakType (type, "System.Reflection", "ParameterInfo");
+ if (msg.Length > 0) {
Runner.Report (method, call, Severity.High, Confidence.Normal, msg);
}
- break;
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotUseThreadStaticWithInstanceFieldsRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotUseThreadStaticWithInstanceFieldsRule.cs
index af1beeb..c949329 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DoNotUseThreadStaticWithInstanceFieldsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DoNotUseThreadStaticWithInstanceFieldsRule.cs
@@ -84,15 +84,13 @@ namespace Gendarme.Rules.Concurrency {
[Solution ("ThreadStaticAttribute will only make static fields thread safe. To make an instance field thread safe you need to use techniques like locking or System.Threading.Thread.Thread::AllocateNamedDataSlot.")]
public sealed class DoNotUseThreadStaticWithInstanceFieldsRule : Rule, ITypeRule {
- private const string ThreadStaticAttribute = "System.ThreadStaticAttribute";
-
public RuleResult CheckType (TypeDefinition type)
{
if (!type.HasFields || type.IsEnum)
return RuleResult.DoesNotApply;
foreach (FieldDefinition field in type.Fields) {
- if (!field.IsStatic && field.CustomAttributes.ContainsType (ThreadStaticAttribute)) {
+ if (!field.IsStatic && field.HasAttribute ("System", "ThreadStaticAttribute")) {
Runner.Report (field, Severity.Critical, Confidence.Total);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DontUseLockedRegionOutsideMethodRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DontUseLockedRegionOutsideMethodRule.cs
index 9b2a53b..4cc40d6 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DontUseLockedRegionOutsideMethodRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DontUseLockedRegionOutsideMethodRule.cs
@@ -100,7 +100,8 @@ namespace Gendarme.Rules.Concurrency {
/// Monitor.Enter (mutex);
/// try {
/// producer++;
- /// } finally {
+ /// }
+ /// finally {
/// Monitor.Exit (mutex);
/// }
/// }
@@ -131,8 +132,10 @@ namespace Gendarme.Rules.Concurrency {
// if not then this rule does not need to be executed for the module
// note: mscorlib.dll is an exception since it defines, not refer, System.Threading.Monitor
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference ("System.Threading.Monitor");
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Threading", "Monitor");
+ }));
};
}
@@ -157,9 +160,9 @@ namespace Gendarme.Rules.Concurrency {
if (m == null)
continue;
- if (IsMonitorMethod (m, "Enter")) {
+ if (m.IsNamed ("System.Threading", "Monitor", "Enter")) {
enter++;
- } else if (IsMonitorMethod (m, "Exit")) {
+ } else if (m.IsNamed ("System.Threading", "Monitor", "Exit")) {
exit++;
}
}
@@ -170,13 +173,5 @@ namespace Gendarme.Rules.Concurrency {
Runner.Report (method, Severity.High, Confidence.Normal);
return RuleResult.Failure;
}
-
- //FIXME: copied from DoubleCheckLockingRule, we need to share this
- private static bool IsMonitorMethod (MemberReference method, string methodName)
- {
- if (method.Name != methodName)
- return false;
- return (method.DeclaringType.FullName == "System.Threading.Monitor");
- }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/DoubleCheckLockingRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/DoubleCheckLockingRule.cs
index 8595046..d1227a2 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/DoubleCheckLockingRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/DoubleCheckLockingRule.cs
@@ -154,7 +154,9 @@ namespace Gendarme.Rules.Concurrency {
// if not then this rule does not need to be executed for the module
// note: mscorlib.dll is an exception since it defines, not refer, System.Threading.Monitor
(e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference ("System.Threading.Monitor"));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Threading", "Monitor");
+ }));
};
}
@@ -213,7 +215,7 @@ namespace Gendarme.Rules.Concurrency {
{
if (method.Name != methodName)
return false;
- if (method.DeclaringType.FullName != "System.Threading.Monitor")
+ if (!method.DeclaringType.IsNamed ("System.Threading", "Monitor"))
return false;
// exclude Monitor.Enter(object, ref bool) since the comparison would be made
// againt the 'lockTaken' parameter and would report failures for every cases.
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/Gendarme.Rules.Concurrency.csproj b/gendarme/rules/Gendarme.Rules.Concurrency/Gendarme.Rules.Concurrency.csproj
index 8224fee..e9f89be 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/Gendarme.Rules.Concurrency.csproj
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/Gendarme.Rules.Concurrency.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Concurrency</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Concurrency/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Concurrency.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Concurrency.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -93,14 +96,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/LockAnalyzerRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/LockAnalyzerRule.cs
index 04424af..fd7bc61 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/LockAnalyzerRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/LockAnalyzerRule.cs
@@ -49,8 +49,10 @@ namespace Gendarme.Rules.Concurrency {
// if not then this rule does not need to be executed for the module
// note: mscorlib.dll is an exception since it defines, not refer, System.Threading.Monitor
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference ("System.Threading.Monitor");
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Threading", "Monitor");
+ }));
};
}
@@ -68,14 +70,8 @@ namespace Gendarme.Rules.Concurrency {
foreach (Instruction ins in method.Body.Instructions) {
MethodReference mr = ins.GetMethod ();
- if (mr == null)
- continue;
- if (mr.DeclaringType.FullName != "System.Threading.Monitor")
- continue;
- if (mr.Name != "Enter")
- continue;
-
- Analyze (method, mr, ins);
+ if (mr.IsNamed ("System.Threading", "Monitor", "Enter"))
+ Analyze (method, mr, ins);
}
return Runner.CurrentRuleResult;
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/Makefile.in b/gendarme/rules/Gendarme.Rules.Concurrency/Makefile.in
index 31638d8..2d341ca 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -285,14 +361,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -302,6 +378,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -310,42 +387,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -354,7 +452,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -371,7 +469,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -379,7 +477,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -405,16 +503,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -422,14 +520,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -441,7 +539,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -450,29 +548,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -493,29 +596,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -538,10 +653,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -549,6 +669,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -568,6 +689,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -577,18 +700,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -610,8 +743,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -631,11 +764,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -644,7 +777,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -664,6 +797,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs
index e614973..843c9b8 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -164,13 +165,13 @@ namespace Gendarme.Rules.Concurrency {
Instruction caller = ins.TraceBack (method);
FieldDefinition field = caller.GetField ();
if (field != null) {
- string msg = String.Format ("Possible race condition since field '{0}' is accessed directly.", field.Name);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Possible race condition since field '{0}' is accessed directly.", field.Name);
Runner.Report (method, ins, Severity.High, Confidence.High, msg);
} else {
// look for the variable, if it's not then stop analysis
VariableDefinition load = caller.GetVariable (method);
if ((load != null) && !CheckVariable (method, caller, load)) {
- string msg = String.Format ("Variable '{0}' does not seems to be checked against null.", load.Name);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Variable '{0}' does not seems to be checked against null.", load.Name);
Runner.Report (method, ins, Severity.High, Confidence.Normal, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/ReviewLockUsedOnlyForOperationsOnVariablesRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/ReviewLockUsedOnlyForOperationsOnVariablesRule.cs
index af249bd..621e362 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/ReviewLockUsedOnlyForOperationsOnVariablesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/ReviewLockUsedOnlyForOperationsOnVariablesRule.cs
@@ -93,8 +93,10 @@ namespace Gendarme.Rules.Concurrency {
// if not then this rule does not need to be executed for the module
// note: mscorlib.dll is an exception since it defines, not refer, System.Threading.Monitor
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference ("System.Threading.Monitor");
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Threading", "Monitor");
+ }));
};
}
@@ -154,9 +156,7 @@ namespace Gendarme.Rules.Concurrency {
return false;
MethodReference method = (ins.Operand as MethodReference);
- if (method == null)
- return false;
- if ((method.Name != "Enter") || (method.DeclaringType.FullName != "System.Threading.Monitor"))
+ if (!method.IsNamed ("System.Threading", "Monitor", "Enter"))
return false;
return (parametersCount == method.Parameters.Count);
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/Test/DoNotLockOnThisOrTypesTest.cs b/gendarme/rules/Gendarme.Rules.Concurrency/Test/DoNotLockOnThisOrTypesTest.cs
index 707a537..4db0096 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/Test/DoNotLockOnThisOrTypesTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/Test/DoNotLockOnThisOrTypesTest.cs
@@ -103,11 +103,20 @@ namespace Test.Rules.Concurrency {
}
}
+ static bool TryEnter (object obj)
+ {
+ lock (obj) {
+ Console.WriteLine ();
+ }
+ return true;
+ }
+
[Test]
public void StaticType ()
{
AssertRuleFailure<DoNotLockOnThisOrTypesTest> ("StaticLockType", 1);
AssertRuleFailure<DoNotLockOnThisOrTypesTest> ("StaticLockTypes", 2);
+ AssertRuleSuccess<DoNotLockOnThisOrTypesTest> ("TryEnter");
}
object instance_locker = new object ();
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile.in
index 1507b37..e479a1b 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Concurrency/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/Test/Tests.Rules.Concurrency.csproj b/gendarme/rules/Gendarme.Rules.Concurrency/Test/Tests.Rules.Concurrency.csproj
index e272dcc..292cdd3 100755
--- a/gendarme/rules/Gendarme.Rules.Concurrency/Test/Tests.Rules.Concurrency.csproj
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/Test/Tests.Rules.Concurrency.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Concurrency</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Concurrency/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -93,14 +96,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/ThreadRocks.cs b/gendarme/rules/Gendarme.Rules.Concurrency/ThreadRocks.cs
index e89969b..95fb166 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/ThreadRocks.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/ThreadRocks.cs
@@ -119,7 +119,7 @@ namespace Gendarme.Rules.Concurrency {
}
} else if (method.IsStatic) {
- if (model == ThreadModel.Serializable && !method.Name.StartsWith ("op_")) {
+ if (model == ThreadModel.Serializable && !method.Name.StartsWith ("op_", StringComparison.Ordinal)) {
return ThreadModel.MainThread;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/WriteStaticFieldFromInstanceMethodRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/WriteStaticFieldFromInstanceMethodRule.cs
index 686855d..9fa400f 100644
--- a/gendarme/rules/Gendarme.Rules.Concurrency/WriteStaticFieldFromInstanceMethodRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Concurrency/WriteStaticFieldFromInstanceMethodRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -76,8 +77,6 @@ namespace Gendarme.Rules.Concurrency {
[EngineDependency (typeof (OpCodeEngine))]
public class WriteStaticFieldFromInstanceMethodRule : Rule, IMethodRule {
- private const string ThreadStaticAttribute = "System.ThreadStaticAttribute";
-
static bool CheckField (FieldReference field)
{
// skip instance fields and generated static field (likely by the compiler)
@@ -92,7 +91,7 @@ namespace Gendarme.Rules.Concurrency {
// skip fields decorated with [ThreadStatic] (the runtime will use
// thread local storage for these so they are thread safe)
if (fd.HasCustomAttributes) {
- if (fd.CustomAttributes.ContainsType (ThreadStaticAttribute))
+ if (fd.HasAttribute ("System", "ThreadStaticAttribute"))
return false;
}
return true;
@@ -118,7 +117,9 @@ namespace Gendarme.Rules.Concurrency {
if (ins.OpCode.Code == Code.Stsfld) {
FieldReference fr = (ins.Operand as FieldReference);
if (CheckField (fr)) {
- string text = String.Format ("The static field '{0}', of type '{1}'. is being set in an instance method.", fr.Name, fr.FieldType);
+ string text = String.Format (CultureInfo.InvariantCulture,
+ "The static field '{0}', of type '{1}'. is being set in an instance method.",
+ fr.Name, fr.FieldType);
Runner.Report (method, ins, Severity.Medium, Confidence.High, text);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AttributeStringLiteralsShouldParseCorrectlyRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AttributeStringLiteralsShouldParseCorrectlyRule.cs
index d13758b..d75246e 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/AttributeStringLiteralsShouldParseCorrectlyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/AttributeStringLiteralsShouldParseCorrectlyRule.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Globalization;
using Gendarme.Framework;
using Gendarme.Framework.Rocks;
@@ -80,42 +81,16 @@ namespace Gendarme.Rules.Correctness {
return original.IndexOf (value, 0, StringComparison.OrdinalIgnoreCase) != -1;
}
- // FIXME : FX4 Version.TryParse @ http://msdn.microsoft.com/en-us/library/system.version.tryparse.aspx
- static bool TryParseVersion (string version)
- {
- try {
- new Version (version);
- return true;
- }
- catch (FormatException) {
- return false;
- }
- catch (ArgumentException) {
- return false;
- }
- }
-
- // FIXME : FX4 Guid.TryParse @ http://msdn.microsoft.com/en-us/library/system.guid.tryparse.aspx
- static bool TryParseGuid (string guid)
- {
- try {
- new Guid (guid);
- return true;
- }
- catch (FormatException) {
- return false;
- }
- }
-
void CheckParametersAndValues (IMetadataTokenProvider provider, IMethodSignature constructor, IList<CustomAttributeArgument> arguments)
{
for (int index = 0; index < arguments.Count; index++) {
ParameterDefinition parameter = constructor.Parameters[index];
- if (String.Compare (parameter.ParameterType.FullName, "System.String") == 0) {
+ if (parameter.ParameterType.IsNamed ("System", "String")) {
string value = (string) arguments [index].Value;
- if (Contains (parameter.Name, "version")) {
- if (!TryParseVersion (value)) {
- string msg = String.Format ("The value passed: {0} can't be parsed to a valid Version.", value);
+ if (Contains (parameter.Name, "version")) {
+ Version v = null;
+ if (!Version.TryParse (value, out v)) {
+ string msg = String.Format (CultureInfo.InvariantCulture, "The value passed: {0} can't be parsed to a valid Version.", value);
Runner.Report (provider, Severity.High, Confidence.High, msg);
}
continue;
@@ -125,14 +100,15 @@ namespace Gendarme.Rules.Correctness {
Contains (parameter.Name, "urn")) {
Uri parsed = null;
if (!Uri.TryCreate (value, UriKind.Absolute, out parsed)) {
- string msg = String.Format ("The valued passed {0} can't be parsed to a valid Uri.", value);
+ string msg = String.Format (CultureInfo.InvariantCulture, "The valued passed {0} can't be parsed to a valid Uri.", value);
Runner.Report (provider, Severity.High, Confidence.High, msg);
}
continue;
}
if (Contains (parameter.Name, "guid")) {
- if (!TryParseGuid (value)) {
- string msg = String.Format ("The valued passed {0} can't be parsed to a valid Guid.", value);
+ Guid g;
+ if (!Guid.TryParse (value, out g)) {
+ string msg = String.Format (CultureInfo.InvariantCulture, "The valued passed {0} can't be parsed to a valid Guid.", value);
Runner.Report (provider, Severity.High, Confidence.High, msg);
}
continue;
@@ -203,3 +179,4 @@ namespace Gendarme.Rules.Correctness {
}
}
}
+
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs
index 7a4a569..8d96766 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs
@@ -34,6 +34,7 @@ using Mono.Cecil;
using Mono.Cecil.Cil;
using System;
using System.Collections.Generic;
+using System.Globalization;
namespace Gendarme.Rules.Correctness {
@@ -114,7 +115,8 @@ namespace Gendarme.Rules.Correctness {
string name = Mutates (method, ins);
if (name != null) {
- string mesg = string.Format ("{0}::{1} is conditionally compiled on {2} but mutates {3}",
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0}::{1} is conditionally compiled on {2} but mutates {3}",
target.DeclaringType.Name, target.Name, define, name);
Log.WriteLine (this, mesg);
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AvoidConstructorsInStaticTypesRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AvoidConstructorsInStaticTypesRule.cs
index a4eac8b..fe51ad6 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/AvoidConstructorsInStaticTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/AvoidConstructorsInStaticTypesRule.cs
@@ -106,7 +106,7 @@ namespace Gendarme.Rules.Correctness {
}
}
- if (type.BaseType.FullName == "System.Object")
+ if (type.BaseType.IsNamed ("System", "Object"))
return true;
return IsAllStatic (type.BaseType.Resolve ());
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AvoidFloatingPointEqualityRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AvoidFloatingPointEqualityRule.cs
index 4c41820..7877367 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/AvoidFloatingPointEqualityRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/AvoidFloatingPointEqualityRule.cs
@@ -179,7 +179,7 @@ namespace Gendarme.Rules.Correctness {
case Code.Call:
case Code.Callvirt:
MemberReference member = instruction.Operand as MemberReference;
- if ((member != null) && member.Name.Equals ("Equals") && member.DeclaringType.IsFloatingPoint ()) {
+ if ((member != null) && (member.Name == "Equals") && member.DeclaringType.IsFloatingPoint ()) {
Runner.Report (method, instruction, Severity.High, Confidence.Total, EqualsMessage);
}
break;
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AvoidMethodsWithSideEffectsInConditionalCodeRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AvoidMethodsWithSideEffectsInConditionalCodeRule.cs
index 264d8ff..8e84621 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/AvoidMethodsWithSideEffectsInConditionalCodeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/AvoidMethodsWithSideEffectsInConditionalCodeRule.cs
@@ -34,6 +34,7 @@ using Mono.Cecil;
using Mono.Cecil.Cil;
using System;
using System.Collections.Generic;
+using System.Globalization;
namespace Gendarme.Rules.Correctness {
@@ -157,7 +158,8 @@ namespace Gendarme.Rules.Correctness {
MethodReference impure = FindImpurity (method, ins);
if (impure != null) {
- string mesg = string.Format ("{0}::{1} is conditionally compiled on {2} but uses the impure {3}::{4}",
+ string mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0}::{1} is conditionally compiled on {2} but uses the impure {3}::{4}",
target.DeclaringType.Name, target.Name, define, impure.DeclaringType.Name, impure.Name);
Log.WriteLine (this, mesg);
@@ -207,7 +209,7 @@ namespace Gendarme.Rules.Correctness {
if (!attr.HasConstructorArguments)
continue;
if (StringConstructor.Matches (attr.Constructor)) {
- if (attr.AttributeType.FullName == "System.Diagnostics.ConditionalAttribute") {
+ if (attr.AttributeType.IsNamed ("System.Diagnostics", "ConditionalAttribute")) {
return (string) attr.ConstructorArguments [0].Value;
}
}
@@ -258,7 +260,7 @@ namespace Gendarme.Rules.Correctness {
if (method != null) {
TypeDefinition type = method.DeclaringType;
- string type_name = type.FullName;
+ string type_name = type.GetFullName ();
string method_name = method.Name;
// getters
@@ -274,7 +276,7 @@ namespace Gendarme.Rules.Correctness {
return true;
// operators
- if (method_name.StartsWith ("op_") && method_name != "op_Implicit" && method_name != "op_Explicit")
+ if (method_name.StartsWith ("op_", StringComparison.Ordinal) && method_name != "op_Implicit" && method_name != "op_Explicit")
return true;
// Contract methods (skip namespace)
@@ -282,10 +284,10 @@ namespace Gendarme.Rules.Correctness {
return true;
// System.Predicate<T> and System.Comparison<T>
- if (type_name.StartsWith ("System.Predicate`1"))
+ if (type_name.StartsWith ("System.Predicate`1", StringComparison.Ordinal))
return true;
- if (type_name.StartsWith ("System.Comparison`1"))
+ if (type_name.StartsWith ("System.Comparison`1", StringComparison.Ordinal))
return true;
// delegate invocation
@@ -317,7 +319,7 @@ namespace Gendarme.Rules.Correctness {
static bool HasPureAttribute (IList<CustomAttribute> attrs)
{
foreach (CustomAttribute attr in attrs) {
- if (attr.AttributeType.FullName.Contains ("PureAttribute")) {
+ if (attr.AttributeType.Name == "PureAttribute") {
return true;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/BadRecursiveInvocationRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/BadRecursiveInvocationRule.cs
index 6593f04..356d11a 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/BadRecursiveInvocationRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/BadRecursiveInvocationRule.cs
@@ -99,10 +99,9 @@ namespace Gendarme.Rules.Correctness {
if (!explicit_interface && (t2r != null) && !t2r.IsInterface)
return true;
- string t2name = t2.FullName;
// we're calling into an interface and this could be us!
foreach (MethodReference mr in method1.Resolve ().Overrides) {
- if (t2name == mr.DeclaringType.FullName)
+ if (mr.DeclaringType.IsNamed (t2.Namespace, t2.Name))
return true;
}
return false;
@@ -134,7 +133,7 @@ namespace Gendarme.Rules.Correctness {
ParameterDefinition param = (ParameterDefinition) insn.Operand;
if (method.IsStatic)
paramNum++;
- return (param.GetSequence () == paramNum);
+ return (param.Index == paramNum - 1);
case Code.Ldarg_0:
case Code.Ldarg_1:
case Code.Ldarg_2:
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/CheckParametersNullityInVisibleMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/CheckParametersNullityInVisibleMethodsRule.cs
index c5e0e64..506a9c0 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/CheckParametersNullityInVisibleMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/CheckParametersNullityInVisibleMethodsRule.cs
@@ -106,9 +106,9 @@ namespace Gendarme.Rules.Correctness {
if (parameter.IsOut)
return;
- int sequence = parameter.GetSequence ();
+ int sequence = parameter.Index;
// ldarg this - 'this' cannot be null
- if (sequence == 0)
+ if (sequence == -1)
return;
// was there a null check done before ?
@@ -146,7 +146,7 @@ namespace Gendarme.Rules.Correctness {
return;
// avoid checking parameters where a null check was already found
- if (has_null_check.Get (parameter.GetSequence ()))
+ if (has_null_check.Get (parameter.Index))
return;
Instruction next = ins.Next;
@@ -158,21 +158,21 @@ namespace Gendarme.Rules.Correctness {
nc = next.OpCode.Code;
break;
case Code.Isinst:
- has_null_check.Set (parameter.GetSequence ());
+ has_null_check.Set (parameter.Index);
return;
}
if (null_compare.Get (nc)) {
- has_null_check.Set (parameter.GetSequence ());
+ has_null_check.Set (parameter.Index);
} else {
// compare with null (next or previous to current instruction)
// followed by a CEQ instruction
if (nc == Code.Ldnull) {
if (next.Next.OpCode.Code == Code.Ceq)
- has_null_check.Set (parameter.GetSequence ());
+ has_null_check.Set (parameter.Index);
} else if (nc == Code.Ceq) {
if (ins.Previous.OpCode.Code == Code.Ldnull)
- has_null_check.Set (parameter.GetSequence ());
+ has_null_check.Set (parameter.Index);
}
}
}
@@ -204,7 +204,7 @@ namespace Gendarme.Rules.Correctness {
pi = pi.Previous;
ParameterDefinition p = pi.GetParameter (method);
if (p != null)
- has_null_check.Set (p.GetSequence ());
+ has_null_check.Set (p.Index);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/DeclareEventsExplicitlyRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/DeclareEventsExplicitlyRule.cs
new file mode 100644
index 0000000..442572e
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Correctness/DeclareEventsExplicitlyRule.cs
@@ -0,0 +1,96 @@
+//
+// Gendarme.Rules.Correctness.DeclareEventsExplicitlyRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using Mono.Cecil;
+
+using Gendarme.Framework;
+
+namespace Gendarme.Rules.Correctness {
+
+ /// <summary>
+ /// This rule detect is an event handler was declared without the <c>event</c>
+ /// keyword, making the declaration a simple field in its type. Such occurances
+ /// are likely a typo and should be fixed.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public class EventLess {
+ /// public static EventHandler<EventArgs> MyEvent;
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// public class Event {
+ /// public static event EventHandler<EventArgs> MyEvent;
+ /// }
+ /// </code>
+ /// </example>
+ // suggested in https://bugzilla.novell.com/show_bug.cgi?id=669192
+ [Problem ("An event handler was declared without the 'event' keyword")]
+ [Solution ("Add the missing 'event' keyword to your event handler declaration")]
+ public class DeclareEventsExplicitlyRule : Rule, ITypeRule {
+
+ static bool LookForEvent (MemberReference field, TypeDefinition type)
+ {
+ string fname = field.Name;
+ foreach (EventDefinition evnt in type.Events) {
+ if (fname == evnt.Name)
+ return true;
+ }
+ return false;
+ }
+
+ public RuleResult CheckType (TypeDefinition type)
+ {
+ if (!type.HasFields || type.IsEnum)
+ return RuleResult.DoesNotApply;
+
+ // allow to short-circuit LookForEvent if the type has no event
+ bool has_events = type.HasEvents;
+ foreach (FieldDefinition field in type.Fields) {
+ TypeReference ftype = field.FieldType;
+ if (ftype.Namespace != "System")
+ continue;
+
+ switch (ftype.Name) {
+ case "EventHandler":
+ case "EventHandler`1":
+ // is there (any?) event matching the field name ?
+ if (!has_events || !LookForEvent (field, type))
+ Runner.Report (field, Severity.High, Confidence.High);
+ break;
+ }
+ }
+
+ return Runner.CurrentRuleResult;
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/DisposableFieldsShouldBeDisposedRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/DisposableFieldsShouldBeDisposedRule.cs
index 576fff2..7152176 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/DisposableFieldsShouldBeDisposedRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/DisposableFieldsShouldBeDisposedRule.cs
@@ -30,6 +30,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -116,7 +117,7 @@ namespace Gendarme.Rules.Correctness {
// note: other rule will complain if there are disposable or native fields
// in a type that doesn't implement IDisposable, so we don't bother here
- if (!type.Implements ("System.IDisposable"))
+ if (!type.Implements ("System", "IDisposable"))
return RuleResult.DoesNotApply;
MethodDefinition implicitDisposeMethod = GetNonAbstractMethod (type, MethodSignatures.Dispose);
@@ -148,7 +149,7 @@ namespace Gendarme.Rules.Correctness {
TypeDefinition fieldType = field.FieldType.Resolve ();
if (fieldType == null)
continue;
- if (fieldType.Implements ("System.IDisposable"))
+ if (fieldType.Implements ("System", "IDisposable"))
disposeableFields.Add (field);
}
@@ -177,10 +178,10 @@ namespace Gendarme.Rules.Correctness {
private void CheckBaseDispose (TypeDefinition type, MethodDefinition implicitDisposeMethod, MethodDefinition explicitDisposeMethod)
{
TypeDefinition baseType = type;
- while (baseType.BaseType.FullName != "System.Object") {
+ while (!baseType.BaseType.IsNamed ("System", "Object")) {
baseType = baseType.BaseType.Resolve ();
// also checks parents, so no need to search further
- if ((baseType == null) || !baseType.Implements ("System.IDisposable"))
+ if ((baseType == null) || !baseType.Implements ("System", "IDisposable"))
break;
//we just check for Dispose() here
@@ -196,7 +197,7 @@ namespace Gendarme.Rules.Correctness {
}
}
- private void CheckIfBaseDisposeIsCalled (MethodDefinition method, MethodDefinition baseMethod)
+ private void CheckIfBaseDisposeIsCalled (MethodDefinition method, MemberReference baseMethod)
{
bool found = false;
@@ -215,7 +216,7 @@ namespace Gendarme.Rules.Correctness {
if (call.OpCode.Code != Code.Call && call.OpCode.Code != Code.Callvirt)
continue;
MethodReference calledMethod = (MethodReference) call.Operand;
- if (calledMethod.ToString () != baseMethod.ToString ())
+ if (calledMethod.GetFullName () != baseMethod.GetFullName ())
continue;
found = true;
}
@@ -223,7 +224,7 @@ namespace Gendarme.Rules.Correctness {
}
if (!found) {
- string s = String.Format ("{0} should call base.Dispose().", method.ToString ());
+ string s = String.Format (CultureInfo.InvariantCulture, "{0} should call base.Dispose().", method.GetFullName ());
Runner.Report (method, Severity.Medium, Confidence.High, s);
}
}
@@ -256,7 +257,8 @@ namespace Gendarme.Rules.Correctness {
return;
foreach (FieldDefinition field in fields) {
- string s = string.Format ("Since {0} is Disposable {1}() should call {0}.Dispose()", field.Name, method.Name);
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Since {0} is Disposable {1}() should call {0}.Dispose()", field.Name, method.Name);
Runner.Report (field, Severity.High, Confidence.High, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/DoNotRoundIntegersRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/DoNotRoundIntegersRule.cs
index a788d00..64172e6 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/DoNotRoundIntegersRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/DoNotRoundIntegersRule.cs
@@ -27,11 +27,14 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
using Gendarme.Framework;
+using Gendarme.Framework.Engines;
+using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Correctness {
@@ -41,8 +44,8 @@ namespace Gendarme.Rules.Correctness {
// ICAST: int value cast to float and then passed to Math.round (ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND)
/// <summary>
- /// This rule check for attempts to call <c>Round</c>, <c>Ceiling</c>, <c>Floor</c> or
- /// <c>Truncate</c> on an integral type. This often indicate a typo in the source code
+ /// This rule check for attempts to call <c>System.Math.Round</c>, <c>System.Math.Ceiling</c>, <c>System.Math.Floor</c> or
+ /// <c>System.Math.Truncate</c> on an integral type. This often indicate a typo in the source code
/// (e.g. wrong variable) or an unnecessary operation.
/// </summary>
/// <example>
@@ -63,10 +66,10 @@ namespace Gendarme.Rules.Correctness {
/// }
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.0</remarks>
[Problem ("This method calls round/ceil/floor/truncate with an integer value.")]
[Solution ("Verify the code logic. This could be a typo (wrong variable) or an unnecessary operation.")]
+ [EngineDependency (typeof (OpCodeEngine))]
public class DoNotRoundIntegersRule : Rule, IMethodRule {
static TypeReference GetType (Instruction ins, MethodDefinition method)
@@ -105,8 +108,8 @@ namespace Gendarme.Rules.Correctness {
if (rv.IsFloatingPoint ())
return null;
// but convertion into decimals are not...
- if (rv.FullName == "System.Decimal") {
- if (mr.DeclaringType.FullName != "System.Decimal")
+ if (rv.IsNamed ("System", "Decimal")) {
+ if (!mr.DeclaringType.IsNamed ("System", "Decimal"))
return null;
// ... unless it's a convertion from a FP value
@@ -137,9 +140,13 @@ namespace Gendarme.Rules.Correctness {
if (!method.HasBody)
return RuleResult.DoesNotApply;
+ // exclude methods that don't have calls
+ if (!OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
+ return RuleResult.DoesNotApply;
+
foreach (Instruction ins in method.Body.Instructions) {
MethodReference mr = ins.GetMethod ();
- if ((mr == null) || (mr.DeclaringType.FullName != "System.Math"))
+ if ((mr == null) || !mr.DeclaringType.IsNamed ("System", "Math"))
continue;
Instruction value = null;
@@ -171,7 +178,8 @@ namespace Gendarme.Rules.Correctness {
if (type == null)
continue;
- string msg = string.Format ("Math.{0} called on a {1}.", name, type.FullName);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Math.{0} called on a {1}.",
+ name, type.GetFullName ());
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/DontCompareWithNaNRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/DontCompareWithNaNRule.cs
index ffa5a6b..0de96ec 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/DontCompareWithNaNRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/DontCompareWithNaNRule.cs
@@ -74,21 +74,6 @@ namespace Gendarme.Rules.Correctness {
private const string EqualityMessage = "A floating point value is compared (== or !=) with [Single|Double].NaN.";
private const string EqualsMessage = "[Single|Double].Equals is called using NaN.";
- private static string[] FloatingPointTypes = { "System.Single", "System.Double" };
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we want to avoid checking all methods if the module doesn't refer to either
- // System.Single or System.Double (big performance difference)
- // note: mscorlib.dll is an exception since it defines, not refer, System.Single and Double
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasAnyTypeReference (FloatingPointTypes);
- };
- }
-
private static bool CheckPrevious (IList<Instruction> il, int index)
{
for (int i = index; i >= 0; i--) {
@@ -143,7 +128,7 @@ namespace Gendarme.Rules.Correctness {
case Code.Call:
case Code.Callvirt:
MemberReference callee = ins.Operand as MemberReference;
- if ((callee != null) && callee.Name.Equals ("Equals") && callee.DeclaringType.IsFloatingPoint ()) {
+ if ((callee != null) && (callee.Name == "Equals") && callee.DeclaringType.IsFloatingPoint ()) {
if (!CheckPrevious (il, i - 1)) {
Runner.Report (method, ins, Severity.Critical, Confidence.Total, EqualsMessage);
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs
index 14c0c33..6d1c73d 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs
@@ -3,8 +3,10 @@
//
// Authors:
// Cedric Vivier <cedricv at neonux.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// Copyright (C) 2008 Cedric Vivier
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -26,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -115,7 +118,7 @@ namespace Gendarme.Rules.Correctness {
public sealed class EnsureLocalDisposalRule : Rule, IMethodRule {
OpCodeBitmask callsAndNewobjBitmask = BuildCallsAndNewobjOpCodeBitmask ();
- HashSet<Instruction> suspectLocals = new HashSet<Instruction> ();
+ Bitmask<ulong> locals = new Bitmask<ulong> ();
static bool IsDispose (MethodReference call)
{
@@ -134,57 +137,109 @@ namespace Gendarme.Rules.Correctness {
if (method.IsConstructor) {
if (method.DeclaringType.IsGeneratedCode ())
return false; //eg. generators
- return method.DeclaringType.Implements ("System.IDisposable");
+ return method.DeclaringType.Implements ("System", "IDisposable");
}
- return method.ReturnType.Implements ("System.IDisposable");
+ return method.ReturnType.Implements ("System", "IDisposable");
}
- static bool AreBothInstructionsInSameTryFinallyBlock (MethodBody body, Instruction a, Instruction b)
+ static bool IsSetter (MethodReference m)
{
+ if (m == null)
+ return false;
+ MethodDefinition md = m.Resolve ();
+ if (md == null)
+ return m.Name.StartsWith ("set_", StringComparison.Ordinal);
+ return md.IsSetter;
+ }
+
+ static bool IsInsideFinallyBlock (MethodDefinition method, Instruction ins)
+ {
+ MethodBody body = method.Body;
+ if (!body.HasExceptionHandlers)
+ return false;
+
foreach (ExceptionHandler eh in body.ExceptionHandlers) {
if (eh.HandlerType != ExceptionHandlerType.Finally)
continue;
- if (eh.TryStart.Offset <= a.Next.Offset && eh.TryEnd.Offset >= a.Offset
- && eh.HandlerStart.Offset <= b.Offset && eh.HandlerEnd.Offset >= b.Offset)
+ if (ins.Offset >= eh.HandlerStart.Offset || ins.Offset < eh.HandlerEnd.Offset)
return true;
}
return false;
}
- static Instruction LocalTraceBack (IMethodSignature method, Instruction ins)
+ void Clear (MethodDefinition method, Instruction ins)
{
- ins = ins.TraceBack (method);
- while (ins != null) {
- if (ins.IsLoadLocal () || ins.IsStoreLocal ())
- return ins;
- ins = ins.TraceBack (method);
+ VariableDefinition v = ins.GetVariable (method);
+ if (v != null)
+ locals.Clear ((ulong) v.Index);
+ }
+
+ void CheckForReturn (MethodDefinition method, Instruction ins)
+ {
+ if (ins.IsLoadLocal ())
+ Clear (method, ins);
+ }
+
+ void CheckForOutParameters (MethodDefinition method, Instruction ins)
+ {
+ Instruction iref = ins.TraceBack (method);
+ if (iref == null)
+ return;
+ ParameterDefinition p = iref.GetParameter (method);
+ if ((p != null) && p.IsOut) {
+ ins = ins.Previous;
+ if (ins.IsLoadLocal ())
+ Clear (method, ins);
}
- return null;
}
- Instruction FindRelatedSuspectLocal (MethodDefinition method, Instruction ins)
+ void CheckDisposeCalls (MethodDefinition method, Instruction ins)
{
- ins = LocalTraceBack (method, ins);
- if (null == ins)
- return null;
-
- int index = ins.GetVariable (method).Index;
- foreach (var local in suspectLocals) {
- if (local.GetVariable (method).Index == index)
- return local;
+ Instruction instance = ins.TraceBack (method);
+ if (instance == null)
+ return;
+
+ VariableDefinition v = instance.GetVariable (method);
+ ulong index = v == null ? UInt64.MaxValue : (ulong) v.Index;
+ if (v != null && locals.Get (index)) {
+ if (!IsInsideFinallyBlock (method, ins)) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Local {0}is not guaranteed to be disposed of.",
+ GetFriendlyNameOrEmpty (v));
+ Runner.Report (method, Severity.Medium, Confidence.Normal, msg);
+ }
+ locals.Clear (index);
}
- return null;
}
- static bool IsSetter (MethodReference m)
+ bool CheckCallsToOtherInstances (MethodDefinition method, Instruction ins, MethodReference call)
{
- if (m == null)
+ Instruction p = ins.TraceBack (method, 0);
+ if (p.Is (Code.Ldarg_0))
return false;
- MethodDefinition md = m.Resolve ();
- if (md == null)
- return m.Name.StartsWith ("set_", StringComparison.Ordinal);
- return md.IsSetter;
+
+ if (call.HasParameters) {
+ for (int i = 1; i <= call.Parameters.Count; i++) {
+ p = ins.TraceBack (method, -i);
+ Clear (method, p);
+ }
+ }
+ return true;
+ }
+
+ void CheckReassignment (MethodDefinition method, Instruction ins)
+ {
+ VariableDefinition v = ins.GetVariable (method);
+ ulong index = (ulong) v.Index;
+ if (locals.Get (index)) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Local {0}is not disposed before being re-assigned.",
+ GetFriendlyNameOrEmpty (v));
+ Runner.Report (method, ins, Severity.High, Confidence.Normal, msg);
+ } else {
+ locals.Set (index);
+ }
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -193,36 +248,42 @@ namespace Gendarme.Rules.Correctness {
return RuleResult.DoesNotApply;
//is there any potential IDisposable-getting opcode in the method?
- OpCodeBitmask methodBitmask = OpCodeEngine.GetBitmask (method);
- if (!callsAndNewobjBitmask.Intersect (methodBitmask))
+ if (!callsAndNewobjBitmask.Intersect (OpCodeEngine.GetBitmask (method)))
return RuleResult.DoesNotApply;
- //we ignore methods/constructors that returns IDisposable themselves
- //where local(s) are most likely used for disposable object construction
- if (DoesReturnDisposable (method))
- return RuleResult.DoesNotApply;
+ // we will not report IDiposable locals that are returned from a method
+ bool return_idisposable = DoesReturnDisposable (method);
- suspectLocals.Clear ();
+ locals.ClearAll ();
- MethodBody body = method.Body;
- foreach (Instruction ins in body.Instructions) {
- if (!callsAndNewobjBitmask.Get (ins.OpCode.Code))
+ foreach (Instruction ins in method.Body.Instructions) {
+ Code code = ins.OpCode.Code;
+ switch (code) {
+ case Code.Ret:
+ if (return_idisposable)
+ CheckForReturn (method, ins.Previous);
continue;
+ case Code.Stind_Ref:
+ CheckForOutParameters (method, ins);
+ continue;
+ default:
+ if (!callsAndNewobjBitmask.Get (code))
+ continue;
+ break;
+ }
MethodReference call = (MethodReference) ins.Operand;
if (IsDispose (call)) {
- Instruction local = FindRelatedSuspectLocal (method, ins);
- if (local != null) {
- if (!AreBothInstructionsInSameTryFinallyBlock (body, local, ins)) {
- string msg = string.Format ("Local {0}is not guaranteed to be disposed of.", GetFriendlyNameOrEmpty (local.GetVariable (method)));
- Runner.Report (method, local, Severity.Medium, Confidence.Normal, msg);
- }
- suspectLocals.Remove (local);
- }
+ CheckDisposeCalls (method, ins);
continue;
}
+ if (call.HasThis && (code != Code.Newobj)) {
+ if (!CheckCallsToOtherInstances (method, ins, call))
+ continue;
+ }
+
if (!DoesReturnDisposable (call))
continue;
@@ -233,40 +294,47 @@ namespace Gendarme.Rules.Correctness {
Code nextCode = nextInstruction.OpCode.Code;
if (nextCode == Code.Pop || OpCodeBitmask.Calls.Get (nextCode)) {
// We ignore setter because it is an obvious share of the IDisposable
- if (IsSetter (nextInstruction.Operand as MethodReference))
- continue;
-
- ReportCall (method, ins, call);
- continue;
+ if (!IsSetter (nextInstruction.Operand as MethodReference))
+ ReportCall (method, ins, call);
+ } else if (nextInstruction.IsStoreLocal ()) {
+ // make sure we're not re-assigning over a non-disposed IDisposable
+ CheckReassignment (method, nextInstruction);
}
-
- //even if an IDisposable, it isn't stored in a local
- if (nextInstruction.IsStoreLocal ())
- suspectLocals.Add (nextInstruction);
}
- foreach (var local in suspectLocals) {
- string msg = string.Format ("Local {0}is not disposed of (at least not locally).", GetFriendlyNameOrEmpty (local.GetVariable (method)));
- Runner.Report (method, local, Severity.High, Confidence.Normal, msg);
- }
+ ReportNonDisposedLocals (method);
return Runner.CurrentRuleResult;
}
+ void ReportNonDisposedLocals (MethodDefinition method)
+ {
+ for (ulong i = 0; i < 64; i++) {
+ if (!locals.Get (i))
+ continue;
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Local {0}is not disposed of (at least not locally).",
+ GetFriendlyNameOrEmpty (method.Body.Variables [(int) i]));
+ Runner.Report (method, Severity.High, Confidence.Normal, msg);
+ }
+ }
+
static bool IsFluentLike (MethodReference method)
{
- string rtype = method.ReturnType.FullName;
+ TypeReference rtype = method.ReturnType;
+ string nspace = rtype.Namespace;
+ string name = rtype.Name;
// StringBuilder StringBuilder.Append (...)
- if (rtype == method.DeclaringType.FullName)
+ if (method.DeclaringType.IsNamed (nspace, name))
return true;
- return (method.HasParameters && rtype == method.Parameters [0].ParameterType.FullName);
+ return (method.HasParameters && method.Parameters [0].ParameterType.IsNamed (nspace, name));
}
void ReportCall (MethodDefinition method, Instruction ins, MethodReference call)
{
TypeReference type = ins.Is (Code.Newobj) ? call.DeclaringType : call.ReturnType;
bool fluent = IsFluentLike (call);
- string msg = string.Format ("Local of type '{0}' is not disposed of ({1}).",
+ string msg = String.Format (CultureInfo.InvariantCulture, "Local of type '{0}' is not disposed of ({1}).",
type.Name, fluent ? "is this a fluent-like API ?" : "at least not locally");
Runner.Report (method, ins, Severity.High, fluent ? Confidence.Normal : Confidence.High, msg);
}
@@ -275,8 +343,8 @@ namespace Gendarme.Rules.Correctness {
{
string tname = variable.VariableType.Name;
if (variable.IsGeneratedName ())
- return string.Format ("of type '{0}' ", tname);
- return string.Format ("'{0}' of type '{1}' ", variable.Name, tname);
+ return String.Format (CultureInfo.InvariantCulture, "of type '{0}' ", tname);
+ return String.Format (CultureInfo.InvariantCulture, "'{0}' of type '{1}' ", variable.Name, tname);
}
static OpCodeBitmask BuildCallsAndNewobjOpCodeBitmask ()
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/FloatComparisonRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/FloatComparisonRule.cs
index 39f8fe7..51d5806 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/FloatComparisonRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/FloatComparisonRule.cs
@@ -41,8 +41,6 @@ namespace Gendarme.Rules.Correctness {
[EngineDependency (typeof (OpCodeEngine))]
abstract public class FloatingComparisonRule : Rule {
- private static string[] FloatingPointTypes = { "System.Single", "System.Double" };
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -52,7 +50,9 @@ namespace Gendarme.Rules.Correctness {
// note: mscorlib.dll is an exception since it defines, not refer, System.Single and Double
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasAnyTypeReference (FloatingPointTypes);
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsFloatingPoint ();
+ });
};
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Gendarme.Rules.Correctness.csproj b/gendarme/rules/Gendarme.Rules.Correctness/Gendarme.Rules.Correctness.csproj
index 505ef8f..4258d86 100755
--- a/gendarme/rules/Gendarme.Rules.Correctness/Gendarme.Rules.Correctness.csproj
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Gendarme.Rules.Correctness.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Correctness</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Correctness/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Correctness.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Correctness.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -107,6 +110,9 @@
<Compile Include="ReviewUseOfInt64BitsToDoubleRule.cs" />
<Compile Include="ReviewUselessControlFlowRule.cs" />
<Compile Include="ReviewUseOfModuloOneOnIntegersRule.cs" />
+ <Compile Include="TypesShouldBeDisposableBaseRule.cs" />
+ <Compile Include="TypesWithDisposableFieldsShouldBeDisposableRule.cs" />
+ <Compile Include="TypesWithNativeFieldsShouldBeDisposableRule.cs" />
<Compile Include="UseNoInliningWithGetCallingAssemblyRule.cs" />
<Compile Include="UseValueInPropertySetterRule.cs" />
<None Include="ChangeLog" />
@@ -129,14 +135,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Makefile.am b/gendarme/rules/Gendarme.Rules.Correctness/Makefile.am
index 9dabf5f..a338289 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Makefile.am
@@ -6,6 +6,7 @@ rules_sources = \
AvoidConstructorsInStaticTypesRule.cs \
AvoidFloatingPointEqualityRule.cs \
AvoidMethodsWithSideEffectsInConditionalCodeRule.cs \
+ DeclareEventsExplicitlyRule.cs \
DoNotRecurseInEqualityRule.cs \
BadRecursiveInvocationRule.cs \
CallingEqualsWithNullArgRule.cs \
@@ -29,6 +30,9 @@ rules_sources = \
ReviewUselessControlFlowRule.cs \
ReviewUseOfInt64BitsToDoubleRule.cs \
ReviewUseOfModuloOneOnIntegersRule.cs \
+ TypesShouldBeDisposableBaseRule.cs \
+ TypesWithDisposableFieldsShouldBeDisposableRule.cs \
+ TypesWithNativeFieldsShouldBeDisposableRule.cs \
UseNoInliningWithGetCallingAssemblyRule.cs \
UseValueInPropertySetterRule.cs
@@ -50,6 +54,7 @@ tests_sources = \
AvoidConstructorsInStaticTypesTest.cs \
AvoidFloatingPointEqualityTest.cs \
AvoidMethodsWithSideEffectsInConditionalCodeTest.cs \
+ DeclareEventsExplicitlyTest.cs \
DoNotRecurseInEqualityTest.cs \
BadRecursiveInvocationTest.cs \
CallingEqualsWithNullArgTest.cs \
@@ -73,5 +78,7 @@ tests_sources = \
ReviewUselessControlFlowTest.cs \
ReviewUseOfInt64BitsToDoubleTest.cs \
ReviewUseOfModuloOneOnIntegersTest.cs \
+ TypesWithDisposableFieldsShouldBeDisposableTest.cs \
+ TypesWithNativeFieldsShouldBeDisposableTest.cs \
UseNoInliningWithGetCallingAssemblyTest.cs \
UseValueInPropertySetterTest.cs
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Makefile.in b/gendarme/rules/Gendarme.Rules.Correctness/Makefile.in
index f39111c..0b9c96d 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -259,6 +335,7 @@ rules_sources = \
AvoidConstructorsInStaticTypesRule.cs \
AvoidFloatingPointEqualityRule.cs \
AvoidMethodsWithSideEffectsInConditionalCodeRule.cs \
+ DeclareEventsExplicitlyRule.cs \
DoNotRecurseInEqualityRule.cs \
BadRecursiveInvocationRule.cs \
CallingEqualsWithNullArgRule.cs \
@@ -282,6 +359,9 @@ rules_sources = \
ReviewUselessControlFlowRule.cs \
ReviewUseOfInt64BitsToDoubleRule.cs \
ReviewUseOfModuloOneOnIntegersRule.cs \
+ TypesShouldBeDisposableBaseRule.cs \
+ TypesWithDisposableFieldsShouldBeDisposableRule.cs \
+ TypesWithNativeFieldsShouldBeDisposableRule.cs \
UseNoInliningWithGetCallingAssemblyRule.cs \
UseValueInPropertySetterRule.cs
@@ -294,6 +374,7 @@ tests_sources = \
AvoidConstructorsInStaticTypesTest.cs \
AvoidFloatingPointEqualityTest.cs \
AvoidMethodsWithSideEffectsInConditionalCodeTest.cs \
+ DeclareEventsExplicitlyTest.cs \
DoNotRecurseInEqualityTest.cs \
BadRecursiveInvocationTest.cs \
CallingEqualsWithNullArgTest.cs \
@@ -317,6 +398,8 @@ tests_sources = \
ReviewUselessControlFlowTest.cs \
ReviewUseOfInt64BitsToDoubleTest.cs \
ReviewUseOfModuloOneOnIntegersTest.cs \
+ TypesWithDisposableFieldsShouldBeDisposableTest.cs \
+ TypesWithNativeFieldsShouldBeDisposableTest.cs \
UseNoInliningWithGetCallingAssemblyTest.cs \
UseValueInPropertySetterTest.cs
@@ -327,14 +410,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -344,6 +427,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -352,42 +436,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -396,7 +501,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -413,7 +518,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -421,7 +526,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -447,16 +552,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -464,14 +569,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -483,7 +588,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -492,29 +597,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -535,29 +645,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -580,10 +702,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -591,6 +718,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -610,6 +738,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -619,18 +749,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -652,8 +792,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -673,11 +813,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -686,7 +826,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -709,6 +849,7 @@ clean-local:
Test/Resources.resources: $(tests_resource_resx)
resgen2 -usesourcepath -compile $(tests_resource_resx),Test/Resources.resources;
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/MethodCanBeMadeStaticRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/MethodCanBeMadeStaticRule.cs
index bab18df..b760958 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/MethodCanBeMadeStaticRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/MethodCanBeMadeStaticRule.cs
@@ -114,7 +114,7 @@ namespace Gendarme.Rules.Correctness {
// methods with [Conditional] can be empty (not using 'this') IL-wise but not source-wise, ignore them
if (method.HasCustomAttributes) {
- if (method.CustomAttributes.ContainsType ("System.Diagnostics.ConditionalAttribute"))
+ if (method.HasAttribute ("System.Diagnostics", "ConditionalAttribute"))
return RuleResult.DoesNotApply;
}
@@ -130,7 +130,7 @@ namespace Gendarme.Rules.Correctness {
foreach (Instruction instr in method.Body.Instructions) {
if (instr.OpCode.Code == Code.Ldarg) {
ParameterDefinition pd = (instr.Operand as ParameterDefinition);
- if (pd.GetSequence () == 0)
+ if (pd.Index == -1)
return RuleResult.Success;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectArgumentsToFormattingMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectArgumentsToFormattingMethodsRule.cs
index f545495..92b5753 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectArgumentsToFormattingMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectArgumentsToFormattingMethodsRule.cs
@@ -28,10 +28,11 @@
//
using System;
-using System.IO;
-using System.Resources;
using System.Collections;
using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Resources;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -115,7 +116,7 @@ namespace Gendarme.Rules.Correctness {
{
IList<Resource> resources = ad.MainModule.Resources;
foreach (EmbeddedResource resource in resources)
- if (resourceClassName.Equals (resource.Name))
+ if (resourceClassName == resource.Name)
return resource;
return null;
}
@@ -131,7 +132,7 @@ namespace Gendarme.Rules.Correctness {
return null;
AssemblyDefinition ad = md.GetAssembly ();
- string resourceClassName = md.DeclaringType.FullName + ".resources";
+ string resourceClassName = md.DeclaringType.GetFullName () + ".resources";
EmbeddedResource resource = GetEmbeddedResource (ad, resourceClassName);
if (resource == null)
return null;
@@ -242,13 +243,13 @@ namespace Gendarme.Rules.Correctness {
// String.Format (string, object, object, object) -> elementsPushed = 3
// String.Format (string, object[]) -> compute
// String.Format (IFormatProvider, string, object[]) -> compute
- if (pdc [nbParameters - 1].ParameterType.FullName != "System.Object") {
+ if (!pdc [nbParameters - 1].ParameterType.IsNamed ("System", "Object")) {
// If we cannot determine the array size, we succeed (well we don't fail/report)
if (!TryComputeArraySize (call, method, nbParameters - 1, out elementsPushed))
return;
// String.Format (IFormatProvider, string, object[]) -> formatPosition = 1
- if (pdc [0].ParameterType.FullName != "System.String")
+ if (!pdc [0].ParameterType.IsNamed ("System", "String"))
formatPosition = 1;
}
@@ -266,12 +267,19 @@ namespace Gendarme.Rules.Correctness {
}
if (expectedParameters < elementsPushed) {
- Runner.Report (method, call, Severity.Medium, Confidence.Normal, String.Format ("Extra parameters are provided to String.Format, {0} provided but only {1} expected", elementsPushed, expectedParameters));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Extra parameters are provided to String.Format, {0} provided but only {1} expected",
+ elementsPushed, expectedParameters);
+ Runner.Report (method, call, Severity.Medium, Confidence.Normal, msg);
return;
}
- if (elementsPushed < expectedParameters)
- Runner.Report (method, call, Severity.Critical, Confidence.Normal, String.Format ("The String.Format method is expecting {0} parameters, but only {1} are found.", expectedParameters, elementsPushed));
+ if (elementsPushed < expectedParameters) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The String.Format method is expecting {0} parameters, but only {1} are found.",
+ expectedParameters, elementsPushed);
+ Runner.Report (method, call, Severity.Critical, Confidence.Normal, msg);
+ }
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -289,7 +297,7 @@ namespace Gendarme.Rules.Correctness {
continue;
MethodReference mr = (instruction.Operand as MethodReference);
- if (formatSignature.Matches (mr) && (mr.DeclaringType.FullName == "System.String"))
+ if (formatSignature.Matches (mr) && mr.DeclaringType.IsNamed ("System", "String"))
CheckCallToFormatter (instruction, method);
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectRegexPatternRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectRegexPatternRule.cs
index 89eb1e8..ebaa25e 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectRegexPatternRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ProvideCorrectRegexPatternRule.cs
@@ -27,6 +27,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -91,20 +92,23 @@ namespace Gendarme.Rules.Correctness {
static OpCodeBitmask callsAndNewobjBitmask = BuildCallsAndNewobjOpCodeBitmask ();
- const string RegexClass = "System.Text.RegularExpressions.Regex";
- const string ValidatorClass = "System.Configuration.RegexStringValidator";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- bool usingRegexClass = e.CurrentAssembly.Name.Name == "System"
- || e.CurrentModule.HasTypeReference (RegexClass);
- bool usingValidatorClass = e.CurrentModule.Runtime >= TargetRuntime.Net_2_0
- && (e.CurrentAssembly.Name.Name == "System.Configuration"
- || e.CurrentModule.HasTypeReference (ValidatorClass));
- Active = usingRegexClass | usingValidatorClass;
+ string assembly_name = e.CurrentAssembly.Name.Name;
+ bool usingRegexClass = (assembly_name == "System");
+ bool usingValidatorClass = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0) && (assembly_name == "System.Configuration");
+ // if we're not analyzing System.dll or System.Configuration.dll then check if we're using them
+ if (!usingRegexClass && !usingValidatorClass) {
+ Active = e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Text.RegularExpressions", "Regex") ||
+ tr.IsNamed ("System.Configuration", "RegexStringValidator");
+ });
+ } else {
+ Active = true;
+ }
};
}
@@ -127,7 +131,7 @@ namespace Gendarme.Rules.Correctness {
return CheckPattern (method, ins, (string) ld.Operand, confidence);
case Code.Ldsfld:
FieldReference f = (FieldReference) ld.Operand;
- if (f.Name != "Empty" || f.DeclaringType.FullName != "System.String")
+ if (f.Name != "Empty" || !f.DeclaringType.IsNamed ("System", "String"))
return false;
return CheckPattern (method, ins, null, confidence);
case Code.Ldnull:
@@ -149,7 +153,8 @@ namespace Gendarme.Rules.Correctness {
} catch (Exception e) {
/* potential set of exceptions is not well documented and potentially changes with regarts to
different runtime and/or runtime version. */
- string msg = string.Format ("Pattern '{0}' is invalid. Reason: {1}", pattern, e.Message);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Pattern '{0}' is invalid. Reason: {1}", pattern, e.Message);
Runner.Report (method, ins, Severity.High, confidence, msg);
return false;
}
@@ -161,8 +166,9 @@ namespace Gendarme.Rules.Correctness {
return;
if (!call.HasParameters)
return;
- string tname = call.DeclaringType.FullName;
- if (tname != RegexClass && tname != ValidatorClass)
+
+ TypeReference type = call.DeclaringType;
+ if (!type.IsNamed ("System.Text.RegularExpressions", "Regex") && !type.IsNamed ("System.Configuration", "RegexStringValidator"))
return;
MethodDefinition mdef = call.Resolve ();
@@ -174,8 +180,8 @@ namespace Gendarme.Rules.Correctness {
foreach (ParameterDefinition p in mdef.Parameters) {
string pname = p.Name;
- if ((pname == "pattern" || pname == "regex") && p.ParameterType.FullName == "System.String") {
- Instruction ld = ins.TraceBack (method, -(call.HasThis ? 0 : -1 + p.GetSequence ()));
+ if ((pname == "pattern" || pname == "regex") && p.ParameterType.IsNamed ("System", "String")) {
+ Instruction ld = ins.TraceBack (method, -(call.HasThis ? 0 : p.Index));
if (ld != null)
CheckArguments (method, ins, ld);
return;
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXPathExpressionRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXPathExpressionRule.cs
index 68d4cb4..770e78d 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXPathExpressionRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXPathExpressionRule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using System.Xml;
using System.Xml.XPath;
@@ -74,10 +75,6 @@ namespace Gendarme.Rules.Correctness {
[EngineDependency (typeof (OpCodeEngine))]
public sealed class ProvideValidXPathExpressionRule : Rule, IMethodRule {
- const string XmlNodeClass = "System.Xml.XmlNode";
- const string XPathNavigatorClass = "System.Xml.XPath.XPathNavigator";
- const string XPathExpressionClass = "System.Xml.XPath.XPathExpression";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -105,7 +102,7 @@ namespace Gendarme.Rules.Correctness {
break;
case Code.Ldsfld:
FieldReference f = (FieldReference) ld.Operand;
- if (f.Name == "Empty" && f.DeclaringType.FullName == "System.String")
+ if (f.Name == "Empty" && f.DeclaringType.IsNamed ("System", "String"))
CheckString (method, ins, null);
break;
case Code.Ldnull:
@@ -124,7 +121,8 @@ namespace Gendarme.Rules.Correctness {
try {
XPathExpression.Compile (expression);
} catch (XPathException e) {
- string msg = string.Format ("Expression '{0}' is invalid. Details: {1}", expression, e.Message);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Expression '{0}' is invalid. Details: {1}", expression, e.Message);
Runner.Report (method, ins, Severity.High, Confidence.High, msg);
}
}
@@ -137,11 +135,11 @@ namespace Gendarme.Rules.Correctness {
switch (mref.Name) {
case "Compile":
TypeReference tr = mref.DeclaringType;
- if (tr.FullName == XPathExpressionClass || tr.Inherits (XPathNavigatorClass))
+ if (tr.IsNamed ("System.Xml.XPath", "XPathExpression") || tr.Inherits ("System.Xml.XPath", "XPathNavigator"))
CheckString (method, ins, GetFirstArgumentOffset (mref));
break;
case "SelectNodes":
- if (mref.DeclaringType.FullName == XmlNodeClass)
+ if (mref.DeclaringType.IsNamed ("System.Xml", "XmlNode"))
CheckString (method, ins, -1);
break;
case "Evaluate":
@@ -150,7 +148,7 @@ namespace Gendarme.Rules.Correctness {
break;
case "SelectSingleNode":
CheckXPathNavigatorString (method, ins, mref);
- if (mref.DeclaringType.FullName == XmlNodeClass)
+ if (mref.DeclaringType.IsNamed ("System.Xml", "XmlNode"))
CheckString (method, ins, -1);
break;
}
@@ -158,8 +156,8 @@ namespace Gendarme.Rules.Correctness {
void CheckXPathNavigatorString (MethodDefinition method, Instruction ins, MethodReference mref)
{
- if (mref.Parameters [0].ParameterType.FullName == "System.String") {
- if (mref.DeclaringType.Inherits (XPathNavigatorClass))
+ if (mref.Parameters [0].ParameterType.IsNamed ("System", "String")) {
+ if (mref.DeclaringType.Inherits ("System.Xml.XPath", "XPathNavigator"))
CheckString (method, ins, -1);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXmlStringRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXmlStringRule.cs
index 921e71a..36e7c64 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXmlStringRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ProvideValidXmlStringRule.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Xml;
using System.Xml.XPath;
@@ -77,10 +78,6 @@ namespace Gendarme.Rules.Correctness {
[EngineDependency (typeof (OpCodeEngine))]
public sealed class ProvideValidXmlStringRule : Rule, IMethodRule {
- const string XmlDocumentClass = "System.Xml.XmlDocument";
- const string XmlNodeClass = "System.Xml.XmlNode";
- const string XPathNavigatorClass = "System.Xml.XPath.XPathNavigator";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -108,7 +105,7 @@ namespace Gendarme.Rules.Correctness {
break;
case Code.Ldsfld:
FieldReference f = (FieldReference) ld.Operand;
- if (f.Name == "Empty" && f.DeclaringType.FullName == "System.String")
+ if (f.Name == "Empty" && f.DeclaringType.IsNamed ("System", "String"))
CheckString (method, ins, null);
break;
case Code.Ldnull:
@@ -127,7 +124,8 @@ namespace Gendarme.Rules.Correctness {
try {
(new XmlDocument ()).LoadXml (xml);
} catch (XmlException e) {
- string msg = string.Format ("XML string '{0}' is invalid. Details: {1}", xml, e.Message);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "XML string '{0}' is invalid. Details: {1}", xml, e.Message);
Runner.Report (method, ins, Severity.High, Confidence.High, msg);
}
}
@@ -139,13 +137,13 @@ namespace Gendarme.Rules.Correctness {
switch (mref.Name) {
case "LoadXml":
- if (mref.DeclaringType.FullName == XmlDocumentClass)
+ if (mref.DeclaringType.IsNamed ("System.Xml", "XmlDocument"))
CheckString (method, ins, -1);
break;
case "set_InnerXml":
case "set_OuterXml":
TypeReference tr = mref.DeclaringType;
- if (tr.Inherits (XmlNodeClass) || tr.Inherits (XPathNavigatorClass))
+ if (tr.Inherits ("System.Xml", "XmlNode") || tr.Inherits ("System.Xml.XPath", "XPathNavigator"))
CheckString (method, ins, -1);
break;
case "AppendChild":
@@ -154,8 +152,8 @@ namespace Gendarme.Rules.Correctness {
case "InsertBefore":
IList<ParameterDefinition> pdc = mref.Parameters;
if (pdc.Count == 1
- && pdc [0].ParameterType.FullName == "System.String"
- && mref.DeclaringType.Inherits (XPathNavigatorClass))
+ && pdc [0].ParameterType.IsNamed ("System", "String")
+ && mref.DeclaringType.Inherits ("System.Xml.XPath", "XPathNavigator"))
CheckString (method, ins, -1);
break;
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs
index 79b290b..272f86e 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -113,7 +114,7 @@ namespace Gendarme.Rules.Correctness {
if (stfld.TraceBack (method).GetOperand (method) != next.TraceBack (method).GetOperand (method))
return String.Empty;
- return String.Format ("Instance field '{0}' on same variable '{1}'.", fd1.Name, vd1.Name);
+ return String.Format (CultureInfo.InvariantCulture, "Instance field '{0}' on same variable '{1}'.", fd1.Name, vd1.Name);
}
static string CheckDoubleAssignement (MethodDefinition method, Instruction ins, Instruction next)
@@ -130,7 +131,7 @@ namespace Gendarme.Rules.Correctness {
if (fd1.MetadataToken.RID != fd2.MetadataToken.RID)
return String.Empty;
- return String.Format ("Static field '{0}'.", fd1.Name);
+ return String.Format (CultureInfo.InvariantCulture, "Static field '{0}'.", fd1.Name);
} else if (ins.IsStoreLocal ()) {
// for a local variable the pattern is
// DUP, STLOC, STLOC
@@ -141,7 +142,7 @@ namespace Gendarme.Rules.Correctness {
if (vd1.Index != vd2.Index)
return String.Empty;
- return String.Format ("Local variable '{0}'.", vd1.Name);
+ return String.Format (CultureInfo.InvariantCulture, "Local variable '{0}'.", vd1.Name);
} else if (next.OpCode.Code == Code.Stfld) {
// instance fields are a bit more complex...
return CheckDoubleAssignementOnInstanceFields (method, ins, next);
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ReviewInconsistentIdentityRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ReviewInconsistentIdentityRule.cs
index a79b354..67b4fc6 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ReviewInconsistentIdentityRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ReviewInconsistentIdentityRule.cs
@@ -125,7 +125,7 @@ namespace Gendarme.Rules.Correctness {
private void GetMethods (TypeReference type)
{
- string full_name = type.FullName;
+ string full_name = type.GetFullName ();
args1 [0] = full_name;
AddMethod (type.GetMethod (MethodSignatures.Equals));
AddMethod (type.GetMethod ("Equals", "System.Boolean", args1));
@@ -349,7 +349,7 @@ namespace Gendarme.Rules.Correctness {
Log.WriteLine (this);
Log.WriteLine (this, "------------------------------------");
- Log.WriteLine (this, type.FullName);
+ Log.WriteLine (this, type);
GetMethods (type);
if (methods.Count > 0) {
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ReviewSelfAssignmentRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ReviewSelfAssignmentRule.cs
index 5d359cc..127d7c7 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ReviewSelfAssignmentRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ReviewSelfAssignmentRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -122,8 +123,8 @@ namespace Gendarme.Rules.Correctness {
if ((field != null) && (field == next.GetField ())) {
// instance fields need extra comparison using method
if (isStatic || Compare (next, ins, method)) {
- string msg = String.Format ("{0} field '{1}' of type '{2}'.",
- isStatic ? "Static" : "Instance", field.Name, field.FieldType.FullName);
+ string msg = String.Format (CultureInfo.InvariantCulture, "{0} field '{1}' of type '{2}'.",
+ isStatic ? "Static" : "Instance", field.Name, field.FieldType.GetFullName ());
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
}
@@ -158,14 +159,15 @@ namespace Gendarme.Rules.Correctness {
if (variable == ins.GetVariable (method)) {
// the compiler often introduce it's own variable
if (!variable.Name.StartsWith ("V_"))
- msg = String.Format ("Variable '{0}' of type '{1}'.", variable.Name, variable.VariableType.FullName);
+ msg = String.Format ("Variable '{0}' of type '{1}'.", variable.Name, variable.VariableType.GetFullName ());
}
#endif
} else if (ins.IsLoadArgument () && next.IsStoreArgument ()) {
ParameterDefinition parameter = next.GetParameter (method);
if (parameter == ins.GetParameter (method)) {
- string msg = String.Format ("Parameter '{0}' of type '{1}'.",
- parameter.Name, parameter.ParameterType.FullName);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Parameter '{0}' of type '{1}'.",
+ parameter.Name, parameter.ParameterType.GetFullName ());
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ReviewUseOfInt64BitsToDoubleRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ReviewUseOfInt64BitsToDoubleRule.cs
index 18dbae1..11656ca 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/ReviewUseOfInt64BitsToDoubleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/ReviewUseOfInt64BitsToDoubleRule.cs
@@ -75,20 +75,26 @@ namespace Gendarme.Rules.Correctness {
// Conv_I8, Conv_U8, Conv_Ovf_I8, Conv_Ovf_I8_Un, Conv_Ovf_U8, Conv_Ovf_U8_Un
private static OpCodeBitmask Convert8 = new OpCodeBitmask (0x0, 0x220000000000, 0x60000000044, 0x0);
- private const string BitConverter = "System.BitConverter";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
- // if the module does not reference System.BitConverter then no
- // method inside it will be calling any BitConverter.Int64BitsToDouble method
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference (BitConverter);
+ // if the module does not reference System.BitConverter.Int64BitsToDouble then no
+ // then there's no point in enabling the rule
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyMemberReference ((MemberReference mr) => {
+ return IsInt64BitsToDouble (mr);
+ })
+ );
};
}
+ static bool IsInt64BitsToDouble (MemberReference method)
+ {
+ return method.IsNamed ("System", "BitConverter", "Int64BitsToDouble");
+ }
+
public RuleResult CheckMethod (MethodDefinition method)
{
if (!method.HasBody)
@@ -106,10 +112,7 @@ namespace Gendarme.Rules.Correctness {
if (ins.OpCode.FlowControl != FlowControl.Call)
continue;
- MethodReference mr = (ins.Operand as MethodReference);
- if (mr.Name != "Int64BitsToDouble")
- continue;
- if (mr.DeclaringType.FullName != BitConverter)
+ if (!IsInt64BitsToDouble (ins.Operand as MethodReference))
continue;
// if the previous call convert a value into a long (int64)
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Test/BadRecursiveInvocationTest.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/BadRecursiveInvocationTest.cs
index 74cd0c4..e7fcd69 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Test/BadRecursiveInvocationTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/BadRecursiveInvocationTest.cs
@@ -374,5 +374,24 @@ namespace Test.Rules.Correctness {
{
AssertRuleSuccess<BadRec> ("StaticGoodOverload", new Type [] { typeof (object) });
}
+
+ class Array {
+
+ public virtual void SetProperty (string name, object value)
+ {
+ Console.WriteLine ("{0}: {1}", name, value);
+ }
+
+ internal virtual void SetProperty (string name, object [] args)
+ {
+ SetProperty (name, args [0]);
+ }
+ }
+
+ [Test]
+ public void ArrayOverload ()
+ {
+ AssertRuleSuccess<Array> ("SetProperty", new Type [] { typeof (string), typeof (object[]) });
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/DeclareEventsExplicitlyTest.cs
similarity index 53%
copy from gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs
copy to gendarme/rules/Gendarme.Rules.Correctness/Test/DeclareEventsExplicitlyTest.cs
index 4613f87..8de18ab 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/DeclareEventsExplicitlyTest.cs
@@ -1,10 +1,10 @@
//
-// ComVisibleShouldInheritFromComVisibleTest.cs
+// Unit tests for DeclareEventsExplicitlyRule
//
// Authors:
-// Yuri Stuken <stuken.yuri at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2010 Yuri Stuken
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -13,10 +13,10 @@
// 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
@@ -27,60 +27,56 @@
//
using System;
-using System.Runtime.InteropServices;
-
-using Mono.Cecil;
-using Mono.Cecil.Cil;
-
-using Gendarme.Framework;
-using Gendarme.Rules.Interoperability.Com;
+using Gendarme.Rules.Correctness;
using NUnit.Framework;
-using Test.Rules.Fixtures;
-using Test.Rules.Helpers;
+
using Test.Rules.Definitions;
+using Test.Rules.Fixtures;
-namespace Test.Rules.Interoperability.Com {
+namespace Tests.Rules.Correctness {
[TestFixture]
- public class ComVisibleShouldInheritFromComVisibleTest : TypeRuleTestFixture<ComVisibleShouldInheritFromComVisibleRule> {
+ public class DeclareEventsExplicitlyTest : TypeRuleTestFixture<DeclareEventsExplicitlyRule> {
- [ComVisible (false)]
- public class ComInvisibleClass {
+ struct StructInstanceCorrect {
+ public event EventHandler<EventArgs> MyEvent;
}
- [ComVisible (true)]
- public class ComVisibleClass {
+ struct StructInstanceIncorrect {
+ public EventHandler<EventArgs> MyEvent;
}
- [ComVisible (true)]
- public class ComVisibleInheritsFromInvisibleClass : ComInvisibleClass {
+ class GenericClassStaticCorrect {
+ public static event EventHandler<EventArgs> MyEvent;
}
- [ComVisible (false)]
- public class ComInvisibleInheritsFromVisibleClass : ComVisibleClass {
+ class GenericClassStaticIncorect {
+ public static EventHandler<EventArgs> MyEvent;
+ public event EventHandler<EventArgs> MyEvent2;
}
[Test]
- public void Good ()
+ public void DoesNotApply ()
{
- // no ComVisible attributes in inheritance chain
- AssertRuleSuccess (SimpleTypes.Class);
-
- AssertRuleSuccess<ComVisibleClass> ();
+ AssertRuleDoesNotApply (SimpleTypes.Class);
+ AssertRuleDoesNotApply (SimpleTypes.Enum);
+ // interface cannot define fields
+ AssertRuleDoesNotApply (SimpleTypes.Interface);
}
[Test]
- public void Bad ()
+ public void Success ()
{
- AssertRuleFailure<ComVisibleInheritsFromInvisibleClass> ();
+ AssertRuleSuccess<StructInstanceCorrect> ();
+ AssertRuleSuccess<GenericClassStaticCorrect> ();
}
[Test]
- public void DoesNotApply ()
+ public void Failure ()
{
- AssertRuleDoesNotApply<ComInvisibleClass> ();
- AssertRuleDoesNotApply<ComInvisibleInheritsFromVisibleClass> ();
+ AssertRuleFailure<StructInstanceIncorrect> (1);
+ AssertRuleFailure<GenericClassStaticIncorect> (1);
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Test/EnsureLocalDisposalTest.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/EnsureLocalDisposalTest.cs
index ebb9a01..e375d1d 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Test/EnsureLocalDisposalTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/EnsureLocalDisposalTest.cs
@@ -45,15 +45,12 @@ namespace Test.Rules.Correctness {
StreamReader StreamReader { get; set; }
- string DoesNotApply1 () { //no call/newobj/stloc
+ string DoesNotApply1 ()
+ {
+ //no call/newobj/stloc
return foo;
}
- StreamReader DoesNotApply2 () { //returns IDisposable
- var sr = new StreamReader ("bar.xml");
- return sr;
- }
-
string Success0 () {
var o = new object ();
return o.ToString ();
@@ -214,12 +211,6 @@ namespace Test.Rules.Correctness {
}
[Test]
- public void DoesNotApply2 ()
- {
- AssertRuleDoesNotApply<DisposalCases> ("DoesNotApply2");
- }
-
- [Test]
public void Success0 ()
{
AssertRuleSuccess<DisposalCases> ("Success0");
@@ -300,7 +291,7 @@ namespace Test.Rules.Correctness {
[Test]
public void Failure3 ()
{
- AssertRuleFailure<DisposalCases> ("Failure3", 2);
+ AssertRuleFailure<DisposalCases> ("Failure3", 1);
}
[Test]
@@ -382,11 +373,71 @@ namespace Test.Rules.Correctness {
[Test]
public void FluentApi ()
{
- AssertRuleFailure<EnsureLocalDisposalTest> ("FluentTestCase", 3);
- // confidence is lower (normal instead of high) for fluent-like API
- Assert.AreEqual (Confidence.Normal, Runner.Defects [0].Confidence, "0");
- Assert.AreEqual (Confidence.Normal, Runner.Defects [1].Confidence, "1");
- Assert.AreEqual (Confidence.Normal, Runner.Defects [2].Confidence, "2");
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("FluentTestCase");
+ }
+
+ // adapted (without locals variants) from https://bugzilla.novell.com/show_bug.cgi?id=666403
+
+ void OutParameter1 (out StreamReader stream)
+ {
+ var new_stream = new StreamReader ("baz.xml"); //out param
+ stream = new_stream;
+ }
+
+ bool OutParameter2 (out StreamReader stream)
+ {
+ stream = new StreamReader ("baz.xml"); //out param, no locals
+ return true;
+ }
+
+ [Test]
+ public void OutParameters ()
+ {
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("OutParameter1");
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("OutParameter2");
+ }
+
+ class SomeClassThatContainsADisposableProperty {
+ public StreamReader Reader { get; set; }
+ }
+
+ void OtherInstanceProperty1 (SomeClassThatContainsADisposableProperty someObj)
+ {
+ var reader = new StreamReader ("foobaz.xml");
+ someObj.Reader = reader; //property in param
+ }
+
+ void OtherInstanceProperty2 (SomeClassThatContainsADisposableProperty someObj)
+ {
+ someObj.Reader = new StreamReader ("foobaz.xml"); //property in param, no locals
+ }
+
+ [Test]
+ public void OtherInstance ()
+ {
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("OtherInstanceProperty1");
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("OtherInstanceProperty2");
+ }
+
+ StreamReader ReturnIDisposable1 ()
+ {
+ var ret = new StreamReader ("baz.xml"); //return value
+ return ret;
+ }
+
+ StreamReader ReturnIDisposable2 ()
+ {
+ return new StreamReader ("baz.xml"); //return value, no locals
+ }
+
+ [Test]
+ public void ReturnValue ()
+ {
+ // csc 10 (without /o optimize) will fail this as it introduce extra compiler generated locals
+#if __MonoCS__
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("ReturnIDisposable1");
+#endif
+ AssertRuleSuccess<EnsureLocalDisposalTest> ("ReturnIDisposable2");
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile.in
index 8d14c7b..76c3f0f 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Correctness/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Test/Resource.Designer.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/Resource.Designer.cs
index ec1d9e5..e55ddeb 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/Test/Resource.Designer.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/Resource.Designer.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.4927
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace Tests.Rules.Correctness {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resource {
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/Test/Tests.Rules.Correctness.csproj b/gendarme/rules/Gendarme.Rules.Correctness/Test/Tests.Rules.Correctness.csproj
index d5e9ea2..d3e97ec 100755
--- a/gendarme/rules/Gendarme.Rules.Correctness/Test/Tests.Rules.Correctness.csproj
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/Tests.Rules.Correctness.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Correctness</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Correctness/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -97,6 +100,8 @@
<Compile Include="ReviewUselessControlFlowTest.cs" />
<Compile Include="ReviewUseOfInt64BitsToDoubleTest.cs" />
<Compile Include="ReviewUseOfModuloOneOnIntegersTest.cs" />
+ <Compile Include="TypesWithDisposableFieldsShouldBeDisposableTest.cs" />
+ <Compile Include="TypesWithNativeFieldsShouldBeDisposableTest.cs" />
<Compile Include="UseNoInliningWithGetCallingAssemblyTest.cs" />
<Compile Include="UseValueInPropertySetterTest.cs" />
</ItemGroup>
@@ -119,14 +124,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs
similarity index 53%
rename from gendarme/rules/Gendarme.Rules.Design/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs
rename to gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs
index 811ba7e..077889c 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithDisposableFieldsShouldBeDisposableTest.cs
@@ -6,7 +6,7 @@
// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -30,13 +30,13 @@
using System;
-using Gendarme.Rules.Design;
+using Gendarme.Rules.Correctness;
using NUnit.Framework;
using Test.Rules.Definitions;
using Test.Rules.Fixtures;
-namespace Test.Rules.Design {
+namespace Test.Rules.Correctness {
class Disposable : IDisposable {
public void Dispose ()
@@ -54,12 +54,32 @@ namespace Test.Rules.Design {
object A;
Disposable B;
+ public DisposeableFieldsImplementsIDisposeable ()
+ {
+ B = new Disposable ();
+ }
+
public void Dispose ()
{
throw new NotImplementedException ();
}
}
+ class DisposeableFieldsImplementsIDisposeableCorrectly : IDisposable {
+ object A;
+ Disposable B;
+
+ public DisposeableFieldsImplementsIDisposeableCorrectly ()
+ {
+ B = new Disposable ();
+ }
+
+ public void Dispose ()
+ {
+ B.Dispose (); // not really correct but Dispose is called :)
+ }
+ }
+
class DisposeableFieldsExplicit : IDisposable {
object A;
Disposable B;
@@ -77,10 +97,70 @@ namespace Test.Rules.Design {
public abstract void Dispose ();
}
- class DisposeableFields : ICloneable {
+ abstract class DisposeableFieldsImplementsIDisposeableAbstractAssigned : IDisposable {
+ object A;
+ Disposable B;
+
+ protected DisposeableFieldsImplementsIDisposeableAbstractAssigned ()
+ {
+ B = new Disposable ();
+ }
+
+ public abstract void Dispose ();
+ }
+
+ public class DisposeableFieldsNeverAssigned : ICloneable {
+ object A;
+ Disposable B;
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public class DisposeableFieldsNullAssigned : ICloneable {
+ object A;
+ Disposable B;
+
+ public DisposeableFieldsNullAssigned ()
+ {
+ A = null;
+ B = null;
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public class DisposeableFieldsAssigned : ICloneable {
object A;
Disposable B;
+ public DisposeableFieldsAssigned ()
+ {
+ A = null;
+ B = new Disposable ();
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class DisposeableFieldsReferenced : ICloneable {
+ object A;
+ Disposable B;
+
+ public DisposeableFieldsReferenced (Disposable instance)
+ {
+ A = null;
+ B = instance;
+ }
+
public object Clone ()
{
throw new NotImplementedException ();
@@ -97,16 +177,75 @@ namespace Test.Rules.Design {
}
}
+ class DisposeableFieldsArrayAssigned : ICloneable {
+ object A;
+ Disposable [] B;
+
+ public object Clone ()
+ {
+ // the array itself is not not IDisposable
+ B = new Disposable [10];
+ A = B;
+ return A;
+ }
+ }
+
+ class DisposeableFieldsArrayMembers : ICloneable {
+ object A;
+ Disposable [] B;
+
+ public object Clone ()
+ {
+ B = new Disposable [1];
+ // assignation (newobj+stfld) does not need to to be inside ctor
+ // note: fxcop does not catch this one
+ B [0] = new Disposable ();
+ A = B;
+ return A;
+ }
+ }
+
struct StructWithDisposeableFields {
Disposable a;
object b;
+
+ public StructWithDisposeableFields (object obj)
+ {
+ b = obj;
+ a = new Disposable ();
+ }
}
class DisposeableStaticFieldsArray {
object A;
static Disposable [] B;
+
+ static DisposeableStaticFieldsArray ()
+ {
+ B = new Disposable [1];
+ B [0] = new Disposable ();
+ }
+ }
+
+ // test case from https://bugzilla.novell.com/show_bug.cgi?id=671029
+
+ interface ISession : IDisposable {
+ void Query (string s);
}
+ class SomeRepository {
+ ISession session;
+ public SomeRepository (ISession session)
+ {
+ this.session = session;
+ }
+ public void DoSomeQuery ()
+ {
+ session.Query ("whatever");
+ }
+ }
+
+
[TestFixture]
public class TypesWithDisposableFieldsShouldBeDisposableTest : TypeRuleTestFixture<TypesWithDisposableFieldsShouldBeDisposableRule> {
@@ -129,6 +268,7 @@ namespace Test.Rules.Design {
public void TestDisposeableFieldsImplementsIDisposeable ()
{
AssertRuleSuccess<DisposeableFieldsImplementsIDisposeable> ();
+ AssertRuleSuccess<DisposeableFieldsImplementsIDisposeableCorrectly> ();
}
[Test]
@@ -140,19 +280,25 @@ namespace Test.Rules.Design {
[Test]
public void TestDisposeableFieldsImplementsIDisposeableAbstract ()
{
- AssertRuleFailure<DisposeableFieldsImplementsIDisposeableAbstract> (2);
+ AssertRuleFailure<DisposeableFieldsImplementsIDisposeableAbstract> (1);
+ AssertRuleFailure<DisposeableFieldsImplementsIDisposeableAbstractAssigned> (2);
}
[Test]
public void TestDisposeableFields ()
{
- AssertRuleFailure<DisposeableFields> (1);
+ AssertRuleSuccess<DisposeableFieldsNeverAssigned> ();
+ AssertRuleSuccess<DisposeableFieldsNullAssigned> ();
+ AssertRuleSuccess<DisposeableFieldsReferenced> ();
+ AssertRuleFailure<DisposeableFieldsAssigned> (1);
}
[Test]
public void TestDisposeableFieldsArray ()
{
- AssertRuleFailure<DisposeableFieldsArray> (1);
+ AssertRuleSuccess<DisposeableFieldsArray> ();
+ AssertRuleSuccess<DisposeableFieldsArrayAssigned> ();
+ AssertRuleFailure<DisposeableFieldsArrayMembers> (1);
}
[Test]
@@ -166,5 +312,11 @@ namespace Test.Rules.Design {
{
AssertRuleSuccess<DisposeableStaticFieldsArray> ();
}
+
+ [Test]
+ public void Bug671029 ()
+ {
+ AssertRuleSuccess<SomeRepository> ();
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs b/gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs
similarity index 61%
rename from gendarme/rules/Gendarme.Rules.Design/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs
rename to gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs
index 75216df..b66fcbf 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/Test/TypesWithNativeFieldsShouldBeDisposableTest.cs
@@ -31,7 +31,7 @@
using System;
using System.Runtime.InteropServices;
-using Gendarme.Rules.Design;
+using Gendarme.Rules.Correctness;
using NUnit.Framework;
using Test.Rules.Definitions;
@@ -75,6 +75,36 @@ namespace Test.Rules.Design {
}
}
+ class NativeFieldsIntPtrAssigned : ICloneable {
+ object A;
+ IntPtr B;
+
+ public NativeFieldsIntPtrAssigned ()
+ {
+ B = IntPtr.Zero;
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class NativeFieldsIntPtrAllocated : ICloneable {
+ object A;
+ IntPtr B;
+
+ public NativeFieldsIntPtrAllocated ()
+ {
+ B = Marshal.AllocCoTaskMem (1);
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
class NativeFieldsUIntPtr : ICloneable {
object A;
UIntPtr B;
@@ -85,9 +115,79 @@ namespace Test.Rules.Design {
}
}
+ class NativeFieldsUIntPtrAssigned : ICloneable {
+ object A;
+ UIntPtr B;
+
+ public NativeFieldsUIntPtrAssigned ()
+ {
+ B = (UIntPtr) 0x1f00;
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class NativeFieldsUIntPtrAllocated : ICloneable {
+ object A;
+ UIntPtr B;
+
+ [DllImport ("liberty")]
+ extern static UIntPtr Alloc (int x);
+
+ public NativeFieldsUIntPtrAllocated ()
+ {
+ B = Alloc (1);
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
class NativeFieldsHandleRef : ICloneable {
object A;
- System.Runtime.InteropServices.HandleRef B;
+ HandleRef B;
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class NativeFieldsHandleRefAssigned : ICloneable {
+ object A;
+ HandleRef B;
+
+ public NativeFieldsHandleRefAssigned ()
+ {
+ GCHandle handle = GCHandle.Alloc (A, GCHandleType.Pinned);
+ B = new HandleRef (handle, handle.AddrOfPinnedObject ());
+ }
+
+ public object Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class NativeFieldsHandleRefAllocatedElsewhere: ICloneable {
+ object A;
+ HandleRef B;
+
+ HandleRef GetHandleReference ()
+ {
+ return new HandleRef (A, IntPtr.Zero);
+ }
+
+ public NativeFieldsHandleRefAllocatedElsewhere ()
+ {
+ // fxcop does not trigger on this (or similar cases)
+ B = GetHandleReference ();
+ }
public object Clone ()
{
@@ -97,14 +197,14 @@ namespace Test.Rules.Design {
abstract class AbstractNativeFields : IDisposable {
object A;
- System.Runtime.InteropServices.HandleRef B;
+ HandleRef B;
public abstract void Dispose ();
}
abstract class AbstractNativeFields2 : IDisposable {
object A;
- System.Runtime.InteropServices.HandleRef B;
+ HandleRef B;
public abstract void Dispose ();
@@ -117,18 +217,23 @@ namespace Test.Rules.Design {
class NativeFieldsArray : ICloneable {
object A;
- UIntPtr [] B;
+ IntPtr [] B;
public object Clone ()
{
- throw new NotImplementedException ();
+ B = new IntPtr [1];
+ // assignation (newobj+stfld) does not need to to be inside ctor
+ // note: fxcop does not catch this one
+ B [0] = Marshal.AllocCoTaskMem (1);
+ A = B;
+ return A;
}
}
struct StructWithNativeFields {
- IntPtr a;
- UIntPtr b;
- HandleRef c;
+ public IntPtr a;
+ public UIntPtr b;
+ public HandleRef c;
}
class NativeStaticFieldsArray {
@@ -169,31 +274,32 @@ namespace Test.Rules.Design {
[Test]
public void TestNativeFieldsIntPtr ()
{
- AssertRuleFailure<NativeFieldsIntPtr> (1);
+ AssertRuleSuccess<NativeFieldsIntPtr> ();
+ AssertRuleSuccess<NativeFieldsIntPtrAssigned> ();
+ AssertRuleFailure<NativeFieldsIntPtrAllocated> (1);
}
[Test]
public void TestNativeFieldsUIntPtr ()
{
- AssertRuleFailure<NativeFieldsUIntPtr> (1);
+ AssertRuleSuccess<NativeFieldsUIntPtr> ();
+ AssertRuleSuccess<NativeFieldsUIntPtrAssigned> ();
+ AssertRuleFailure<NativeFieldsUIntPtrAllocated> (1);
}
[Test]
public void TestNativeFieldsHandleRef ()
{
- AssertRuleFailure<NativeFieldsHandleRef> (1);
+ AssertRuleSuccess<NativeFieldsHandleRef> ();
+ AssertRuleSuccess<NativeFieldsHandleRefAssigned> ();
+ AssertRuleFailure<NativeFieldsHandleRefAllocatedElsewhere> (1);
}
[Test]
public void TestAbstractNativeFields ()
{
- AssertRuleFailure<AbstractNativeFields> (2);
- }
-
- [Test]
- public void TestAbstractNativeFields2 ()
- {
- AssertRuleFailure<AbstractNativeFields2> (2);
+ AssertRuleFailure<AbstractNativeFields> (1);
+ AssertRuleFailure<AbstractNativeFields2> (1);
}
[Test]
@@ -215,3 +321,4 @@ namespace Test.Rules.Design {
}
}
}
+
diff --git a/gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/TypesShouldBeDisposableBaseRule.cs
similarity index 55%
copy from gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs
copy to gendarme/rules/Gendarme.Rules.Correctness/TypesShouldBeDisposableBaseRule.cs
index 113a5dd..247d01a 100644
--- a/gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/TypesShouldBeDisposableBaseRule.cs
@@ -1,10 +1,12 @@
//
-// Gendarme.Rules.Design.TypesWithNativeFieldsShouldBeDisposableRule
+// Gendarme.Rules.Correctness.TypesShouldBeDisposableBaseRule
//
// Authors:
// Andreas Noever <andreas.noever at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -26,65 +28,46 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
+using System.Collections.Generic;
+
using Mono.Cecil;
+
using Gendarme.Framework;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design {
-
- /// <summary>
- /// This rule will fire if a type contains <c>IntPtr</c>, <c>UIntPtr</c>, or
- /// <c>HandleRef</c> fields but does not implement <c>System.IDisposable</c>.
- /// </summary>
- /// <example>
- /// Bad examples:
- /// <code>
- /// public class DoesNotImplementIDisposable {
- /// IntPtr field;
- /// }
- ///
- /// abstract public class AbstractDispose : IDisposable {
- /// IntPtr field;
- ///
- /// // the field should be disposed in the type that declares it
- /// public abstract void Dispose ();
- /// }
- /// </code>
- /// </example>
- /// <example>
- /// Good example:
- /// <code>
- /// public class Dispose : IDisposable {
- /// IDisposable field;
- ///
- /// public void Dispose ()
- /// {
- /// UnmanagedFree (field);
- /// }
- /// }
- /// </code>
- /// </example>
-
- [Problem ("This type contains native field(s) but doesn't implement IDisposable.")]
- [Solution ("Implement IDisposable and free the native field(s) in the Dispose method.")]
- [FxCopCompatibility ("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable")]
- public class TypesWithNativeFieldsShouldBeDisposableRule : Rule, ITypeRule {
-
- private const string AbstractTypeMessage = "Field is native. Type should implement a non-abstract Dispose() method";
- private const string TypeMessage = "Field is native. Type should implement a Dispose() method";
- private const string AbstractDisposeMessage = "Some fields are native pointers. Making this method abstract shifts the reponsability of disposing those fields to the inheritors of this class.";
+namespace Gendarme.Rules.Correctness {
+
+ public abstract class TypesShouldBeDisposableBaseRule : Rule, ITypeRule {
+
+ protected TypesShouldBeDisposableBaseRule ()
+ {
+ FieldCandidates = new HashSet<FieldDefinition> ();
+ }
+
+ protected HashSet<FieldDefinition> FieldCandidates { get; private set; }
+
+ protected abstract string AbstractTypeMessage { get; }
+ protected abstract string TypeMessage { get; }
+ protected abstract string AbstractDisposeMessage { get; }
static bool IsAbstract (MethodDefinition method)
{
return ((method != null) && (method.IsAbstract));
}
+ protected abstract void CheckMethod (MethodDefinition method, bool abstractWarning);
+
+ protected abstract bool FieldTypeIsCandidate (TypeDefinition type);
+
public RuleResult CheckType (TypeDefinition type)
{
+ // that will cover interfaces, delegates too
+ if (!type.HasFields)
+ return RuleResult.DoesNotApply;
+
// rule doesn't apply to enums, interfaces, structs, delegates or generated code
- if (type.IsEnum || type.IsInterface || type.IsValueType || type.IsDelegate () || type.IsGeneratedCode ())
+ if (type.IsEnum || type.IsValueType || type.IsGeneratedCode ())
return RuleResult.DoesNotApply;
MethodDefinition explicitDisposeMethod = null;
@@ -92,7 +75,7 @@ namespace Gendarme.Rules.Design {
bool abstractWarning = false;
- if (type.Implements ("System.IDisposable")) {
+ if (type.Implements ("System", "IDisposable")) {
implicitDisposeMethod = type.GetMethod (MethodSignatures.Dispose);
explicitDisposeMethod = type.GetMethod (MethodSignatures.DisposeExplicit);
@@ -103,13 +86,24 @@ namespace Gendarme.Rules.Design {
}
}
+ FieldCandidates.Clear ();
+
foreach (FieldDefinition field in type.Fields) {
// we can't dispose static fields in IDisposable
if (field.IsStatic)
continue;
- if (field.FieldType.GetElementType ().IsNative ()) {
- Runner.Report (field, Severity.High, Confidence.High,
- abstractWarning ? AbstractTypeMessage : TypeMessage);
+ TypeDefinition fieldType = field.FieldType.GetElementType ().Resolve ();
+ if (fieldType == null)
+ continue;
+ if (FieldTypeIsCandidate (fieldType))
+ FieldCandidates.Add (field);
+ }
+
+ // if there are fields types that implements IDisposable
+ if (type.HasMethods && (FieldCandidates.Count > 0)) {
+ // check if we're assigning new object to them
+ foreach (MethodDefinition method in type.Methods) {
+ CheckMethod (method, abstractWarning);
}
}
@@ -119,5 +113,15 @@ namespace Gendarme.Rules.Design {
return Runner.CurrentRuleResult;
}
+#if false
+ public void Bitmask ()
+ {
+ OpCodeBitmask mask = new OpCodeBitmask ();
+ mask.Set (Code.Stfld);
+ mask.Set (Code.Stelem_Ref);
+ Console.WriteLine (mask);
+ }
+#endif
}
}
+
diff --git a/gendarme/rules/Gendarme.Rules.Design/TypesWithDisposableFieldsShouldBeDisposableRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/TypesWithDisposableFieldsShouldBeDisposableRule.cs
similarity index 50%
rename from gendarme/rules/Gendarme.Rules.Design/TypesWithDisposableFieldsShouldBeDisposableRule.cs
rename to gendarme/rules/Gendarme.Rules.Correctness/TypesWithDisposableFieldsShouldBeDisposableRule.cs
index b1d6f85..1731951 100644
--- a/gendarme/rules/Gendarme.Rules.Design/TypesWithDisposableFieldsShouldBeDisposableRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/TypesWithDisposableFieldsShouldBeDisposableRule.cs
@@ -1,10 +1,12 @@
//
-// Gendarme.Rules.Design.TypesWithDisposableFieldsShouldBeDisposableRule
+// Gendarme.Rules.Correctness.TypesWithDisposableFieldsShouldBeDisposableRule
//
// Authors:
// Andreas Noever <andreas.noever at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -26,23 +28,20 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
-using System.Text;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-
using Mono.Cecil;
using Mono.Cecil.Cil;
+
using Gendarme.Framework;
+using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design {
+namespace Gendarme.Rules.Correctness {
/// <summary>
- /// This rule will fire if a type contains disposable fields but does not implement
- /// <c>System.IDisposable</c>.
+ /// This rule will fire if a type contains disposable fields, i.e. fields whose types implements
+ /// <c>System.IDisposable</c>, but where the type itself does not implement <c>System.IDisposable</c>.
+ /// The rule will not report types that are not assigning themselves new instances to the fields.
/// </summary>
/// <example>
/// Bad examples:
@@ -76,60 +75,61 @@ namespace Gendarme.Rules.Design {
[Problem ("This type contains disposable field(s) but doesn't implement IDisposable.")]
[Solution ("Implement IDisposable and free the disposable field(s) in the Dispose method.")]
[FxCopCompatibility ("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable")]
- public class TypesWithDisposableFieldsShouldBeDisposableRule : Rule, ITypeRule {
+ [EngineDependency (typeof (OpCodeEngine))]
+ public class TypesWithDisposableFieldsShouldBeDisposableRule : TypesShouldBeDisposableBaseRule {
- private const string AbstractTypeMessage = "Field implement IDisposable. Type should implement a non-abstract Dispose() method";
- private const string TypeMessage = "Field implement IDisposable. Type should implement a Dispose() method";
- private const string AbstractDisposeMessage = "Some field(s) implement IDisposable. Making this method abstract shifts the reponsability of disposing those fields to the inheritors of this class.";
+ static OpCodeBitmask StoreFieldBitmask = new OpCodeBitmask (0x0, 0x400000000000000, 0x80000000, 0x0);
- static bool IsAbstract (MethodDefinition method)
- {
- return ((method != null) && (method.IsAbstract));
+ protected override string AbstractTypeMessage {
+ get { return "Field implement IDisposable. Type should implement a non-abstract Dispose() method"; }
}
- public RuleResult CheckType (TypeDefinition type)
- {
- // rule doesn't apply to enums, interfaces, structs, delegates or generated code
- if (type.IsEnum || type.IsInterface || type.IsValueType || type.IsDelegate () || type.IsGeneratedCode ())
- return RuleResult.DoesNotApply;
+ protected override string TypeMessage {
+ get { return "Field implement IDisposable. Type should implement a Dispose() method"; }
+ }
- MethodDefinition explicitDisposeMethod = null;
- MethodDefinition implicitDisposeMethod = null;
+ protected override string AbstractDisposeMessage {
+ get { return "Some field(s) implement IDisposable. Making this method abstract shifts the reponsability of disposing those fields to the inheritors of this class."; }
+ }
- bool abstractWarning = false;
+ protected override void CheckMethod (MethodDefinition method, bool abstractWarning)
+ {
+ if ((method == null) || !method.HasBody)
+ return;
- if (type.Implements ("System.IDisposable")) {
- implicitDisposeMethod = type.GetMethod (MethodSignatures.Dispose);
- explicitDisposeMethod = type.GetMethod (MethodSignatures.DisposeExplicit);
+ OpCodeBitmask bitmask = OpCodeEngine.GetBitmask (method);
+ // method must have a NEWOBJ and either STFLD or STELEM_REF
+ if (!bitmask.Get (Code.Newobj) || !bitmask.Intersect (StoreFieldBitmask))
+ return;
- if (IsAbstract (implicitDisposeMethod) || IsAbstract (explicitDisposeMethod)) {
- abstractWarning = true;
- } else {
- return RuleResult.Success;
+ foreach (Instruction ins in method.Body.Instructions) {
+ if (!ins.Is (Code.Newobj))
+ continue;
+
+ FieldDefinition field = null;
+ Instruction next = ins.Next;
+ if (next.Is (Code.Stfld)) {
+ field = next.Operand as FieldDefinition;
+ } else if (next.Is (Code.Stelem_Ref)) {
+ Instruction origin = next.TraceBack (method);
+ if (origin != null)
+ field = origin.Operand as FieldDefinition;
}
- }
- foreach (FieldDefinition field in type.Fields) {
- // we can't dispose static fields in IDisposable
- if (field.IsStatic)
- continue;
- TypeDefinition fieldType = field.FieldType.GetElementType ().Resolve ();
- if (fieldType == null)
- continue;
- // enums and primitives don't implement IDisposable
- if (fieldType.IsEnum || fieldType.IsPrimitive)
- continue;
- if (fieldType.Implements ("System.IDisposable")) {
+ if (field != null && FieldCandidates.Contains (field)) {
Runner.Report (field, Severity.High, Confidence.High,
abstractWarning ? AbstractTypeMessage : TypeMessage);
}
}
+ }
- // Warn about possible confusion if the Dispose methods are abstract
- if (IsAbstract (implicitDisposeMethod))
- Runner.Report (implicitDisposeMethod, Severity.Medium, Confidence.High, AbstractDisposeMessage);
+ protected override bool FieldTypeIsCandidate (TypeDefinition type)
+ {
+ // enums and primitives don't implement IDisposable
+ if ((type == null) || type.IsEnum || type.IsPrimitive)
+ return false;
- return Runner.CurrentRuleResult;
+ return type.Implements ("System", "IDisposable");
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/TypesWithNativeFieldsShouldBeDisposableRule.cs
similarity index 52%
rename from gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs
rename to gendarme/rules/Gendarme.Rules.Correctness/TypesWithNativeFieldsShouldBeDisposableRule.cs
index 113a5dd..1273a75 100644
--- a/gendarme/rules/Gendarme.Rules.Design/TypesWithNativeFieldsShouldBeDisposableRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/TypesWithNativeFieldsShouldBeDisposableRule.cs
@@ -1,10 +1,12 @@
//
-// Gendarme.Rules.Design.TypesWithNativeFieldsShouldBeDisposableRule
+// Gendarme.Rules.Correctness.TypesWithNativeFieldsShouldBeDisposableRule
//
// Authors:
// Andreas Noever <andreas.noever at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -26,13 +28,15 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
using Mono.Cecil;
+using Mono.Cecil.Cil;
+
using Gendarme.Framework;
+using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design {
+namespace Gendarme.Rules.Correctness {
/// <summary>
/// This rule will fire if a type contains <c>IntPtr</c>, <c>UIntPtr</c>, or
@@ -70,54 +74,61 @@ namespace Gendarme.Rules.Design {
[Problem ("This type contains native field(s) but doesn't implement IDisposable.")]
[Solution ("Implement IDisposable and free the native field(s) in the Dispose method.")]
[FxCopCompatibility ("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable")]
- public class TypesWithNativeFieldsShouldBeDisposableRule : Rule, ITypeRule {
+ [EngineDependency (typeof (OpCodeEngine))]
+ public class TypesWithNativeFieldsShouldBeDisposableRule : TypesShouldBeDisposableBaseRule {
- private const string AbstractTypeMessage = "Field is native. Type should implement a non-abstract Dispose() method";
- private const string TypeMessage = "Field is native. Type should implement a Dispose() method";
- private const string AbstractDisposeMessage = "Some fields are native pointers. Making this method abstract shifts the reponsability of disposing those fields to the inheritors of this class.";
+ static OpCodeBitmask StoreFieldBitmask = new OpCodeBitmask (0x0, 0x400000000000000, 0x80000000, 0x0);
- static bool IsAbstract (MethodDefinition method)
- {
- return ((method != null) && (method.IsAbstract));
+ protected override string AbstractTypeMessage {
+ get { return "Field is native. Type should implement a non-abstract Dispose() method"; }
}
- public RuleResult CheckType (TypeDefinition type)
- {
- // rule doesn't apply to enums, interfaces, structs, delegates or generated code
- if (type.IsEnum || type.IsInterface || type.IsValueType || type.IsDelegate () || type.IsGeneratedCode ())
- return RuleResult.DoesNotApply;
+ protected override string TypeMessage {
+ get { return "Field is native. Type should implement a Dispose() method"; }
+ }
- MethodDefinition explicitDisposeMethod = null;
- MethodDefinition implicitDisposeMethod = null;
+ protected override string AbstractDisposeMessage {
+ get { return "Some fields are native pointers. Making this method abstract shifts the reponsability of disposing those fields to the inheritors of this class."; }
+ }
- bool abstractWarning = false;
+ protected override void CheckMethod (MethodDefinition method, bool abstractWarning)
+ {
+ if ((method == null) || !method.HasBody)
+ return;
- if (type.Implements ("System.IDisposable")) {
- implicitDisposeMethod = type.GetMethod (MethodSignatures.Dispose);
- explicitDisposeMethod = type.GetMethod (MethodSignatures.DisposeExplicit);
+ OpCodeBitmask bitmask = OpCodeEngine.GetBitmask (method);
+ // method must have a CALL[VIRT] and either STFLD or STELEM_REF
+ if (!bitmask.Intersect (OpCodeBitmask.Calls) || !bitmask.Intersect (StoreFieldBitmask))
+ return;
- if (IsAbstract (implicitDisposeMethod) || IsAbstract (explicitDisposeMethod)) {
- abstractWarning = true;
- } else {
- return RuleResult.Success;
+ foreach (Instruction ins in method.Body.Instructions) {
+ MethodReference mr = (ins.Operand as MethodReference);
+ if (mr == null || mr.DeclaringType.IsNative ())
+ continue;
+
+ FieldDefinition field = null;
+ Instruction next = ins.Next;
+ if (next.Is (Code.Stfld)) {
+ field = next.Operand as FieldDefinition;
+ } else if (next.Is (Code.Stobj) || next.Is (Code.Stind_I)) {
+ Instruction origin = next.TraceBack (method);
+ if (origin.Is (Code.Ldelema)) {
+ origin = origin.TraceBack (method);
+ if (origin != null)
+ field = origin.Operand as FieldDefinition;
+ }
}
- }
- foreach (FieldDefinition field in type.Fields) {
- // we can't dispose static fields in IDisposable
- if (field.IsStatic)
- continue;
- if (field.FieldType.GetElementType ().IsNative ()) {
- Runner.Report (field, Severity.High, Confidence.High,
+ if (field != null && FieldCandidates.Contains (field)) {
+ Runner.Report (field, Severity.High, Confidence.High,
abstractWarning ? AbstractTypeMessage : TypeMessage);
}
}
+ }
- // Warn about possible confusion if the Dispose methods are abstract
- if (IsAbstract (implicitDisposeMethod))
- Runner.Report (implicitDisposeMethod, Severity.Medium, Confidence.High, AbstractDisposeMessage);
-
- return Runner.CurrentRuleResult;
+ protected override bool FieldTypeIsCandidate (TypeDefinition type)
+ {
+ return ((type != null) && type.IsNative ());
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/UseNoInliningWithGetCallingAssemblyRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/UseNoInliningWithGetCallingAssemblyRule.cs
index 0026e04..702ab6b 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/UseNoInliningWithGetCallingAssemblyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/UseNoInliningWithGetCallingAssemblyRule.cs
@@ -71,32 +71,33 @@ namespace Gendarme.Rules.Correctness {
[EngineDependency (typeof (OpCodeEngine))]
public class UseNoInliningWithGetCallingAssemblyRule : Rule, IMethodRule {
- private const string Assembly = "System.Reflection.Assembly";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- // if the module does not reference System.Reflection.Assembly
- // then no method inside it will be calling GetCallingAssembly
+ // if the module does not reference System.Reflection.Assembly.GetCallingAssembly
+ // then there's no point in enabling the rule
Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference (Assembly));
+ e.CurrentModule.AnyMemberReference ((MemberReference mr) => {
+ return IsGetCallingAssembly (mr);
+ })
+ );
};
}
+ static bool IsGetCallingAssembly (MemberReference method)
+ {
+ return method.IsNamed ("System.Reflection", "Assembly", "GetCallingAssembly");
+ }
+
static bool IsCallToGetCallingAssembly (Instruction instruction)
{
var code = instruction.OpCode.Code;
if (code != Code.Call && code != Code.Callvirt)
return false;
- var method = instruction.Operand as MethodReference;
- if (method == null)
- return false;
-
- return method.Name == "GetCallingAssembly"
- && method.DeclaringType.FullName == Assembly;
+ return IsGetCallingAssembly (instruction.GetMethod ());
}
public RuleResult CheckMethod (MethodDefinition method)
diff --git a/gendarme/rules/Gendarme.Rules.Correctness/UseValueInPropertySetterRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/UseValueInPropertySetterRule.cs
index 0e55cbc..c97e3ee 100644
--- a/gendarme/rules/Gendarme.Rules.Correctness/UseValueInPropertySetterRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Correctness/UseValueInPropertySetterRule.cs
@@ -103,7 +103,7 @@ namespace Gendarme.Rules.Correctness {
ParameterDefinition pd = instruction.GetParameter (method);
if (pd != null) {
empty = false;
- if (pd.GetSequence () == 1) // value
+ if (pd.Index == 0) // value
return RuleResult.Success;
continue;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidDeclaringCustomDelegatesRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidDeclaringCustomDelegatesRule.cs
index 467157a..9156493 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidDeclaringCustomDelegatesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidDeclaringCustomDelegatesRule.cs
@@ -38,9 +38,8 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// This rule will fire if custom delegates are defined when either pre-defined
- /// <code>Action</code>, <code>Action<T[,...]></code> or <code>Func<[Tx,...]TResult></code>
- /// could have been used. This rule applies only to code using the framework version 2.0 (or later).
+ /// This rule will fire if custom delegates are defined when either pre-defined <code>System.Action</code>,
+ /// <code>Action<T[,...]></code> or <code>Func<[Tx,...]TResult></code> could have been used.
/// </summary>
/// <example>
/// Bad example (without return value):
@@ -68,32 +67,10 @@ namespace Gendarme.Rules.Design.Generic {
/// private Func<int,string,int> func_delegate;
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.8</remarks>
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("This delegate could be replaced with an existing framework delegate.")]
[Solution ("Prefer the use of Action, Action<T...> and Func<...,TResult> types.")]
- public class AvoidDeclaringCustomDelegatesRule : Rule, ITypeRule {
-
- private int MaxParameter = 4; // NET_2_0
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- TargetRuntime runtime = e.CurrentModule.Runtime;
- if (runtime >= TargetRuntime.Net_4_0) {
- MaxParameter = 16;
- Active = true;
- } else if (runtime >= TargetRuntime.Net_2_0) {
- MaxParameter = 4;
- Active = true;
- } else {
- Active = false;
- }
- };
- }
+ public class AvoidDeclaringCustomDelegatesRule : GenericsBaseRule, ITypeRule {
static string[] ActionMessage = {
"Replace with Action()",
@@ -157,7 +134,7 @@ namespace Gendarme.Rules.Design.Generic {
n = pdc.Count;
// too many parameters to directly use Action/Func
// so we lower severity and suggest grouping them
- if (n > MaxParameter) {
+ if (n > ((type.Module.Runtime >= TargetRuntime.Net_4_0) ? 16 : 4)) {
severity = Severity.Low;
n = 1;
use_structure = true;
@@ -170,7 +147,7 @@ namespace Gendarme.Rules.Design.Generic {
}
}
- string msg = (invoke.ReturnType.FullName == "System.Void") ? ActionMessage [n] : FuncMessage [n];
+ string msg = invoke.ReturnType.IsNamed ("System", "Void") ? ActionMessage [n] : FuncMessage [n];
if (use_structure)
msg += " and use a structure to hold all your parameters into <T>.";
Runner.Report (type, severity, Confidence.High, msg);
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
index e5a8353..d4d02d0 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
@@ -37,7 +37,8 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// A type should not have more than two generic parameters.
+ /// A visible type should not have more than two generic parameters. This makes it
+ /// hard for consumers to remember what each parameter is required for.
/// </summary>
/// <example>
/// Bad example:
@@ -53,11 +54,12 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
-
- [Problem ("A type has more than two generic parameters.")]
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
+ [Problem ("A visible type has more than two generic parameters.")]
[Solution ("Redesign the type so it doesn't take more than two generic parameters.")]
[FxCopCompatibility ("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
- public class AvoidExcessiveParametersOnGenericTypesRule : Rule, ITypeRule {
+ public class AvoidExcessiveParametersOnGenericTypesRule : GenericsBaseRule, ITypeRule {
+
public RuleResult CheckType (TypeDefinition type)
{
if (!type.IsClass || !type.HasGenericParameters || !type.IsVisible ())
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidMethodWithUnusedGenericTypeRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidMethodWithUnusedGenericTypeRule.cs
index b369332..18d21eb 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidMethodWithUnusedGenericTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidMethodWithUnusedGenericTypeRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -75,50 +76,37 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.2</remarks>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("One or more generic type parameters are not used in the formal parameter list.")]
[Solution ("This prevents the compiler from inferring types when the method is used which results in hard to use API definitions.")]
[FxCopCompatibility ("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
- public class AvoidMethodWithUnusedGenericTypeRule : Rule, IMethodRule {
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
+ public class AvoidMethodWithUnusedGenericTypeRule : GenericsBaseRule, IMethodRule {
- static bool FindGenericType (IGenericInstance git, string fullname)
+ static bool FindGenericType (IGenericInstance git, string nameSpace, string name)
{
foreach (object o in git.GenericArguments) {
- if (IsGenericParameter (o, fullname))
+ if (IsGenericParameter (o, nameSpace, name))
return true;
GenericInstanceType inner = (o as GenericInstanceType);
- if ((inner != null) && (FindGenericType (inner, fullname)))
+ if ((inner != null) && (FindGenericType (inner, nameSpace, name)))
return true;
}
return false;
}
- static bool IsGenericParameter (object obj, string fullname)
+ static bool IsGenericParameter (object obj, string nameSpace, string name)
{
- GenericParameter gp = (obj as GenericParameter);
- return ((gp != null) && (gp.FullName == fullname));
+ return (obj as GenericParameter).IsNamed (nameSpace, name);
}
- static bool IsGenericType (MemberReference type, string fullname)
+ static bool IsGenericType (TypeReference type, string nspace, string name)
{
- if (type.FullName == fullname)
+ if (type.IsNamed (nspace, name))
return true;
var type_spec = type as TypeSpecification;
- if (type_spec != null && type_spec.ElementType.FullName == fullname)
+ if (type_spec != null && type_spec.ElementType.IsNamed (nspace, name))
return true;
// handle things like ICollection<T>
@@ -126,7 +114,7 @@ namespace Gendarme.Rules.Design.Generic {
if (git == null)
return false;
- return FindGenericType (git, fullname);
+ return FindGenericType (git, nspace, name);
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -139,21 +127,23 @@ namespace Gendarme.Rules.Design.Generic {
foreach (GenericParameter gp in method.GenericParameters) {
Severity severity = Severity.Medium;
bool found = false;
- string gp_fullname = gp.FullName;
+ string nspace = gp.Namespace;
+ string name = gp.Name;
// ... is being used by the method parameters
foreach (ParameterDefinition pd in method.Parameters) {
- if (IsGenericType (pd.ParameterType, gp_fullname)) {
+ if (IsGenericType (pd.ParameterType, nspace, name)) {
found = true;
break;
}
}
if (!found) {
// it's a defect when used only for the return value - but we reduce its severity
- if (IsGenericType (method.ReturnType, gp_fullname))
+ if (IsGenericType (method.ReturnType, nspace, name))
severity = Severity.Low;
}
if (!found) {
- string msg = String.Format ("Generic parameter '{0}' is not used by the method parameters.", gp_fullname);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Generic parameter '{0}.{1}' is not used by the method parameters.", nspace, name);
Runner.Report (method, severity, Confidence.High, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotDeclareStaticMembersOnGenericTypesRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotDeclareStaticMembersOnGenericTypesRule.cs
index 00badaa..bc77797 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotDeclareStaticMembersOnGenericTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotDeclareStaticMembersOnGenericTypesRule.cs
@@ -33,13 +33,14 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// This rule checks for generic types that contain static members.
+ /// This rule checks for generic types that contain static members. Such members requires the type argument
+ /// to be specified when consumed, leading to harder to use or confusing API.
/// </summary>
/// <example>
/// Bad example:
/// <code>
/// public class BadClass<T> {
- /// public static string member () {
+ /// public static string Member () {
/// }
/// }
/// </code>
@@ -48,16 +49,16 @@ namespace Gendarme.Rules.Design.Generic {
/// Good example:
/// <code>
/// public class GoodClass<T> {
- /// public string member () {
+ /// public string Member () {
/// }
/// }
/// </code>
/// </example>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("An externally visible generic type has a static member.")]
[Solution ("Remove the static member or change it to an instance member.")]
[FxCopCompatibility ("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes")]
- public class DoNotDeclareStaticMembersOnGenericTypesRule : Rule, ITypeRule {
+ public class DoNotDeclareStaticMembersOnGenericTypesRule : GenericsBaseRule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
{
if (!type.IsClass || !type.HasGenericParameters || !type.IsVisible ())
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeGenericListsRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeGenericListsRule.cs
index c8712ad..37f3904 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeGenericListsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeGenericListsRule.cs
@@ -37,8 +37,8 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// A type has an externally visible member that is, returns, or has a signature containing a
- /// System.Collections.Generic.List<T>.
+ /// A type has an externally visible member that is, returns or has a signature containing a
+ /// <c>System.Collections.Generic.List<T></c>.
/// </summary>
/// <example>
/// Bad example:
@@ -56,17 +56,17 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("The type exposes System.Collections.Generic.List<T>.")]
[Solution ("Use a type such as System.Collections.ObjectModel.Collection<T> instead.")]
[FxCopCompatibility ("Microsoft.Design", "CA1002:DoNotExposeGenericLists")]
- public class DoNotExposeGenericListsRule : Rule, ITypeRule {
+ public class DoNotExposeGenericListsRule : GenericsBaseRule, ITypeRule {
private const string List = "List`1";
private static bool IsList (TypeReference type)
{
return type.Namespace == "System.Collections.Generic" &&
- type.Name.StartsWith (List);
+ type.Name.StartsWith (List, StringComparison.Ordinal);
}
private void CheckField (FieldReference field)
@@ -80,9 +80,7 @@ namespace Gendarme.Rules.Design.Generic {
if (!IsList (property.PropertyType))
return;
- MethodDefinition getm = property.GetMethod;
- MethodDefinition setm = property.SetMethod;
- if (((getm != null) && getm.IsVisible ()) || ((setm != null) && setm.IsVisible ()))
+ if (property.GetMethod.IsVisible () || property.SetMethod.IsVisible ())
Runner.Report (property, Severity.Medium, Confidence.Total);
}
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeNestedGenericSignaturesRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeNestedGenericSignaturesRule.cs
index 40450bc..d8c5f01 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeNestedGenericSignaturesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/DoNotExposeNestedGenericSignaturesRule.cs
@@ -41,7 +41,7 @@ namespace Gendarme.Rules.Design.Generic {
/// <c>List<List<int>></c>. Such types are hard to construct and should
/// be avoided because simpler alternatives generally exist.
/// Since some language, like C#, have direct support for nullable types, i.e.
- /// <c>Nullable<T></c> this specific case is ignored by the rule.
+ /// <c>System.Nullable<T></c> this specific case is ignored by the rule.
/// </summary>
/// <example>
/// Bad example:
@@ -63,23 +63,11 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.4</remarks>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("This method exposes a nested generic type in its signature.")]
[Solution ("Remove the nested generics to keep the visible API simple to use.")]
[FxCopCompatibility ("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
- public class DoNotExposeNestedGenericSignaturesRule : Rule, IMethodRule {
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
+ public class DoNotExposeNestedGenericSignaturesRule : GenericsBaseRule, IMethodRule {
static Severity? Check (TypeReference type)
{
@@ -91,7 +79,7 @@ namespace Gendarme.Rules.Design.Generic {
// nullable are an exception because there is syntaxic sugar (at
// least in some language like C#) to make them easier to use
// note: FxCop does not ignore them
- if (git.ElementType.FullName == "System.Nullable`1")
+ if (git.ElementType.IsNamed ("System", "Nullable`1"))
return null;
// FIXME: we should look at ignoring LINQ queries too, because it
// too pretty much hides the complexity of nested generics
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/Gendarme.Rules.Design.Generic.csproj b/gendarme/rules/Gendarme.Rules.Design.Generic/Gendarme.Rules.Design.Generic.csproj
index 9ab2871..17731ea 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/Gendarme.Rules.Design.Generic.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/Gendarme.Rules.Design.Generic.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Design.Generic</RootNamespace>
<AssemblyName>Gendarme.Rules.Design.Generic</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Design.Generic.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Design.Generic.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -52,6 +74,7 @@
<Compile Include="DoNotDeclareStaticMembersOnGenericTypesRule.cs" />
<Compile Include="DoNotExposeGenericListsRule.cs" />
<Compile Include="DoNotExposeNestedGenericSignaturesRule.cs" />
+ <Compile Include="GenericsBaseRule.cs" />
<Compile Include="ImplementGenericCollectionInterfacesRule.cs" />
<Compile Include="UseGenericEventHandlerRule.cs" />
<Compile Include="PreferGenericsOverRefObjectRule.cs" />
@@ -66,6 +89,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/console/Helpers.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/GenericsBaseRule.cs
similarity index 66%
copy from gendarme/console/Helpers.cs
copy to gendarme/rules/Gendarme.Rules.Design.Generic/GenericsBaseRule.cs
index c399452..12be75c 100644
--- a/gendarme/console/Helpers.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/GenericsBaseRule.cs
@@ -1,10 +1,10 @@
//
-// Gendarme Console Settings
+// Gendarme.Rules.Design.Generic.GenericBaseRule
//
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -13,10 +13,10 @@
// 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
@@ -27,21 +27,24 @@
//
using System;
-using System.IO;
-using System.Reflection;
+using Mono.Cecil;
+
+using Gendarme.Framework;
-namespace Gendarme {
+namespace Gendarme.Rules.Design.Generic {
- static class Helpers {
+ public abstract class GenericsBaseRule : Rule {
- public static Stream GetStreamFromResource (string resourceName)
+ public override void Initialize (IRunner runner)
{
- Assembly executing = Assembly.GetExecutingAssembly ();
- foreach (string resource in executing.GetManifestResourceNames ()) {
- if (resource.EndsWith (resourceName))
- return executing.GetManifestResourceStream (resource);
- }
- return null;
+ base.Initialize (runner);
+
+ // we only want to run Design.Generic.* rules on assemblies that
+ // use 2.0 or later since generics were not available before
+ Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
+ Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
+ };
}
}
}
+
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/ImplementGenericCollectionInterfacesRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/ImplementGenericCollectionInterfacesRule.cs
index 87391eb..c2d2c32 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/ImplementGenericCollectionInterfacesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/ImplementGenericCollectionInterfacesRule.cs
@@ -36,9 +36,9 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// This rule checks for types which implement the non-generic IEnumerable interface but
- /// not the IEnumerable<T> interface. Implementing the generic version
- /// of IEnumerable avoids casts, and possibly boxing, when iterating the collection.
+ /// This rule checks for types which implement the non-generic <code>System.IEnumerable</code> interface but
+ /// not the <code>System.IEnumerable<T></code> interface. Implementing the generic version
+ /// of <code>System.IEnumerable</code> avoids casts, and possibly boxing, when iterating the collection.
/// </summary>
/// <example>
/// Bad example:
@@ -64,23 +64,11 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
- /// <remarks>Before Gendarme 2.2 this rule was part of Gendarme.Rules.Design assembly.</remarks>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("This type implements the non-generic IEnumerable interface but not IEnumerable<T> which would make your collection type-safe.")]
[Solution ("Implement one of generic collection interfaces such as IEnumerable<T>, ICollection<T> or IList<T>.")]
[FxCopCompatibility ("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
- public class ImplementGenericCollectionInterfacesRule : Rule, ITypeRule {
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
+ public class ImplementGenericCollectionInterfacesRule : GenericsBaseRule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
{
@@ -93,15 +81,15 @@ namespace Gendarme.Rules.Design.Generic {
return RuleResult.DoesNotApply;
// rule only applies if the type implements IEnumerable
- if (!type.Implements ("System.Collections.IEnumerable"))
+ if (!type.Implements ("System.Collections", "IEnumerable"))
return RuleResult.DoesNotApply;
// rule does not apply to the types implementing IDictionary
- if (type.Implements ("System.Collections.IDictionary"))
+ if (type.Implements ("System.Collections", "IDictionary"))
return RuleResult.DoesNotApply;
// the type should implement IEnumerable<T> too
- if (!type.Implements ("System.Collections.Generic.IEnumerable`1"))
+ if (!type.Implements ("System.Collections.Generic", "IEnumerable`1"))
Runner.Report (type, Severity.Medium, Confidence.High);
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.am b/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.am
index 4e50027..701ad0e 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.am
@@ -7,6 +7,7 @@ rules_sources = \
DoNotDeclareStaticMembersOnGenericTypesRule.cs \
DoNotExposeGenericListsRule.cs \
DoNotExposeNestedGenericSignaturesRule.cs \
+ GenericsBaseRule.cs \
ImplementGenericCollectionInterfacesRule.cs \
PreferGenericsOverRefObjectRule.cs \
UseGenericEventHandlerRule.cs
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.in b/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.in
index 6d2d276..b22972d 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -258,6 +334,7 @@ rules_sources = \
DoNotDeclareStaticMembersOnGenericTypesRule.cs \
DoNotExposeGenericListsRule.cs \
DoNotExposeNestedGenericSignaturesRule.cs \
+ GenericsBaseRule.cs \
ImplementGenericCollectionInterfacesRule.cs \
PreferGenericsOverRefObjectRule.cs \
UseGenericEventHandlerRule.cs
@@ -280,14 +357,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -297,6 +374,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -305,42 +383,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -349,7 +448,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -366,7 +465,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -374,7 +473,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -400,16 +499,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -417,14 +516,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -436,7 +535,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -445,29 +544,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -488,29 +592,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -533,10 +649,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -544,6 +665,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -563,6 +685,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -572,18 +696,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -605,8 +739,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -626,11 +760,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -639,7 +773,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -659,6 +793,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/PreferGenericsOverRefObjectRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/PreferGenericsOverRefObjectRule.cs
index 56f67a4..fe94e7f 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/PreferGenericsOverRefObjectRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/PreferGenericsOverRefObjectRule.cs
@@ -38,7 +38,7 @@ namespace Gendarme.Rules.Design.Generic {
/// <summary>
/// This rule fires if a method has a reference argument (<c>ref</c> or
- /// <c>out</c> in C#) to System.Object. These methods can generally be
+ /// <c>out</c> in C#) to <c>System.Object</c>. These methods can generally be
/// rewritten in .NET 2.0 using generics which provides type safety, eliminates
/// casts, and makes the API easier to consume.
/// </summary>
@@ -61,23 +61,11 @@ namespace Gendarme.Rules.Design.Generic {
/// }
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.2</remarks>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("This method contains a reference parameter to System.Object which is often an indication that the code is not type safe.")]
[Solution ("Change the parameter to use a generic type where the caller will provide the type.")]
[FxCopCompatibility ("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate")]
- public class PreferGenericsOverRefObjectRule : Rule, IMethodRule {
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
+ public class PreferGenericsOverRefObjectRule : GenericsBaseRule, IMethodRule {
public RuleResult CheckMethod (MethodDefinition method)
{
@@ -86,11 +74,11 @@ namespace Gendarme.Rules.Design.Generic {
return RuleResult.DoesNotApply;
// exclude the "bool Try* (ref)" pattern from the rule
- if (method.Name.StartsWith ("Try", StringComparison.Ordinal) && (method.ReturnType.FullName == "System.Boolean"))
+ if (method.Name.StartsWith ("Try", StringComparison.Ordinal) && method.ReturnType.IsNamed ("System", "Boolean"))
return RuleResult.DoesNotApply;
foreach (ParameterDefinition parameter in method.Parameters) {
- if (parameter.ParameterType.FullName != "System.Object&")
+ if (!parameter.ParameterType.IsNamed ("System", "Object&"))
continue;
// suggest using generics
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile.in
index 701cef0..c3c537b 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Generic/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Tests.Rules.Design.Generic.csproj b/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Tests.Rules.Design.Generic.csproj
index ca2b70d..5eb62ff 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Tests.Rules.Design.Generic.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/Test/Tests.Rules.Design.Generic.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Design.Generic</RootNamespace>
<AssemblyName>Tests.Rules.Design.Generic</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -76,6 +98,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/UseGenericEventHandlerRule.cs b/gendarme/rules/Gendarme.Rules.Design.Generic/UseGenericEventHandlerRule.cs
index 9535a2a..71083fd 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/UseGenericEventHandlerRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Generic/UseGenericEventHandlerRule.cs
@@ -38,8 +38,8 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Design.Generic {
/// <summary>
- /// This rule fires if an assembly targets .NET 2.0 or later and defines a delegate
- /// which can be replaced by <c>System.EventHandler<TEventArgs></c>.
+ /// This rule fires if an assembly defines a delegate which can be
+ /// replaced by <c>System.EventHandler<TEventArgs></c>.
/// </summary>
/// <example>
/// Bad example:
@@ -57,23 +57,11 @@ namespace Gendarme.Rules.Design.Generic {
/// public event EventHandler<AuthenticityEventArgs> CheckedAuthenticity;
/// </code>
/// </example>
- /// <remarks>This rule is available since Gendarme 2.2</remarks>
-
+ /// <remarks>This rule applies only to assemblies targeting .NET 2.0 and later.</remarks>
[Problem ("This delegate definition is not needed with .NET 2.0 and later runtimes.")]
[Solution ("Replace the delegate with System.EventHandler<TEventArgs>.")]
[FxCopCompatibility ("Microsoft.Design", "CA1003:UseGenericEventHandlerInstances")]
- public class UseGenericEventHandlerRule : Rule, ITypeRule {
-
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // we only want to run this on assemblies that use 2.0 or later
- // since generics were not available before
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
+ public class UseGenericEventHandlerRule : GenericsBaseRule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
{
@@ -86,7 +74,7 @@ namespace Gendarme.Rules.Design.Generic {
if (invoke == null)
return RuleResult.DoesNotApply;
- if (invoke.ReturnType.FullName != "System.Void")
+ if (!invoke.ReturnType.IsNamed ("System", "Void"))
return RuleResult.Success;
if (!invoke.HasParameters)
@@ -95,9 +83,9 @@ namespace Gendarme.Rules.Design.Generic {
IList<ParameterDefinition> pdc = invoke.Parameters;
if (pdc.Count != 2)
return RuleResult.Success;
- if (pdc [0].ParameterType.FullName != "System.Object")
+ if (!pdc [0].ParameterType.IsNamed ("System", "Object"))
return RuleResult.Success;
- if (!pdc [1].ParameterType.Inherits ("System.EventArgs"))
+ if (!pdc [1].ParameterType.Inherits ("System", "EventArgs"))
return RuleResult.Success;
Runner.Report (type, Severity.Medium, Confidence.High);
diff --git a/gendarme/rules/Gendarme.Rules.Design.Linq/AvoidExtensionMethodOnSystemObjectRule.cs b/gendarme/rules/Gendarme.Rules.Design.Linq/AvoidExtensionMethodOnSystemObjectRule.cs
index a5935e0..a2f1308 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Linq/AvoidExtensionMethodOnSystemObjectRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design.Linq/AvoidExtensionMethodOnSystemObjectRule.cs
@@ -77,8 +77,11 @@ namespace Gendarme.Rules.Design.Linq {
// extension methods are only available in FX3.5
// check runtime >= NET2_0 (fast) then check if [ExtensionAttribute] is referenced
Runner.AnalyzeModule += (object o, RunnerEventArgs e) => {
- Active = e.CurrentModule.Runtime >= TargetRuntime.Net_2_0 &&
- e.CurrentModule.HasTypeReference ("System.Runtime.CompilerServices.ExtensionAttribute");
+ Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0 &&
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Runtime.CompilerServices", "ExtensionAttribute");
+ })
+ );
};
}
@@ -92,7 +95,7 @@ namespace Gendarme.Rules.Design.Linq {
if (!method.HasParameters)
return false;
- return method.HasAttribute ("System.Runtime.CompilerServices.ExtensionAttribute");
+ return method.HasAttribute ("System.Runtime.CompilerServices", "ExtensionAttribute");
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -100,7 +103,7 @@ namespace Gendarme.Rules.Design.Linq {
if (!IsExtension (method))
return RuleResult.DoesNotApply;
- if (method.Parameters [0].ParameterType.FullName != "System.Object")
+ if (!method.Parameters [0].ParameterType.IsNamed ("System", "Object"))
return RuleResult.Success;
Runner.Report (method, Severity.High, Confidence.High);
diff --git a/gendarme/rules/Gendarme.Rules.Design.Linq/Gendarme.Rules.Design.Linq.csproj b/gendarme/rules/Gendarme.Rules.Design.Linq/Gendarme.Rules.Design.Linq.csproj
index 6a09a06..135c620 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Linq/Gendarme.Rules.Design.Linq.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design.Linq/Gendarme.Rules.Design.Linq.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Design.Linq</RootNamespace>
<AssemblyName>Gendarme.Rules.Design.Linq</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Design.Linq.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Design.Linq.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -58,6 +80,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Design.Linq/Makefile.in b/gendarme/rules/Gendarme.Rules.Design.Linq/Makefile.in
index 6606b60..27704b9 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Linq/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design.Linq/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -261,14 +337,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -278,6 +354,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -286,42 +363,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -330,7 +428,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -347,7 +445,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -355,7 +453,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -381,16 +479,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -398,14 +496,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -417,7 +515,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -426,29 +524,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -469,29 +572,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -514,10 +629,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -525,6 +645,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -544,6 +665,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -553,18 +676,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -586,8 +719,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -607,11 +740,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -620,7 +753,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -640,6 +773,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile.in
index 47ec18c..8ccbf13 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design.Linq/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Tests.Rules.Design.Linq.csproj b/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Tests.Rules.Design.Linq.csproj
index 2a013ee..10db1dc 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Tests.Rules.Design.Linq.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design.Linq/Test/Tests.Rules.Design.Linq.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Design.Linq</RootNamespace>
<AssemblyName>Tests.Rules.Design.Linq</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -68,6 +90,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Design/AttributeArgumentsShouldHaveAccessorsRule.cs b/gendarme/rules/Gendarme.Rules.Design/AttributeArgumentsShouldHaveAccessorsRule.cs
index df472de..cc037aa 100644
--- a/gendarme/rules/Gendarme.Rules.Design/AttributeArgumentsShouldHaveAccessorsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/AttributeArgumentsShouldHaveAccessorsRule.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -106,11 +107,18 @@ namespace Gendarme.Rules.Design {
// look through getters
allProperties.Clear ();
- foreach (PropertyDefinition property in type.Properties) {
- if (property.GetMethod != null) {
- allProperties.Add (property.Name);
+
+ TypeDefinition t = type;
+ // Walk up the inheritance tree so that inherited properties are counted
+ do
+ {
+ foreach (PropertyDefinition property in t.Properties) {
+ if (property.GetMethod != null) {
+ allProperties.Add (property.Name);
+ }
}
- }
+ t = t.BaseType != null ? t.BaseType.Resolve () : null;
+ } while (t != null && !t.IsNamed ("System", "Attribute"));
// look through parameters
foreach (MethodDefinition constructor in type.Methods) {
@@ -119,9 +127,11 @@ namespace Gendarme.Rules.Design {
foreach (ParameterDefinition param in constructor.Parameters) {
// pascal case it
- string correspondingPropertyName = Char.ToUpper (param.Name [0]).ToString () + param.Name.Substring (1);
+ string correspondingPropertyName = Char.ToUpper (param.Name [0], CultureInfo.InvariantCulture).ToString (CultureInfo.InvariantCulture) +
+ param.Name.Substring (1);
if (!allProperties.Contains (correspondingPropertyName)) {
- string s = String.Format ("Add '{0}' property to the attribute class.", correspondingPropertyName);
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Add '{0}' property to the attribute class.", correspondingPropertyName);
Runner.Report (param, Severity.Medium, Confidence.High, s);
allProperties.Add (correspondingPropertyName); // to avoid double catching same property (e.g. from different constructors)
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/AvoidPublicInstanceFieldsRule.cs b/gendarme/rules/Gendarme.Rules.Design/AvoidPublicInstanceFieldsRule.cs
index 0641913..9932c47 100644
--- a/gendarme/rules/Gendarme.Rules.Design/AvoidPublicInstanceFieldsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/AvoidPublicInstanceFieldsRule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -89,11 +90,13 @@ namespace Gendarme.Rules.Design {
string name = fd.Name;
if (fd.FieldType.IsArray) {
- string s = String.Format ("Consider changing the field '{0}' to a private or internal field and add a 'Set{1}{2}' method.",
- name, Char.ToUpper (name [0]).ToString (), name.Substring (1));
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Consider changing the field '{0}' to a private or internal field and add a 'Set{1}{2}' method.",
+ name, Char.ToUpper (name [0], CultureInfo.InvariantCulture).ToString (CultureInfo.InvariantCulture), name.Substring (1));
Runner.Report (fd, Severity.Medium, Confidence.Total, s);
} else {
- string s = String.Format ("Field '{0}' should be private or internal and its value accessed through a property.", name);
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Field '{0}' should be private or internal and its value accessed through a property.", name);
Runner.Report (fd, Severity.Medium, Confidence.Total, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/AvoidRefAndOutParametersRule.cs b/gendarme/rules/Gendarme.Rules.Design/AvoidRefAndOutParametersRule.cs
index 2e86234..b8828e9 100644
--- a/gendarme/rules/Gendarme.Rules.Design/AvoidRefAndOutParametersRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/AvoidRefAndOutParametersRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Gendarme.Framework;
@@ -139,7 +140,7 @@ namespace Gendarme.Rules.Design {
string how = null;
if (parameter.IsOut) {
// out is permitted for the "bool Try* (...)" pattern
- if ((method.ReturnType.FullName == "System.Boolean") &&
+ if (method.ReturnType.IsNamed ("System", "Boolean") &&
method.Name.StartsWith ("Try", StringComparison.Ordinal)) {
continue;
}
@@ -153,7 +154,8 @@ namespace Gendarme.Rules.Design {
if ((how != null) && !IsSignatureDictatedByInterface (method)) {
// goal is to keep the API as simple as possible so this is more severe for public than protected methods
Severity severity = method.IsPublic ? Severity.Medium : Severity.Low;
- string msg = String.Format ("Parameter '{0}' passed by reference ({1}).", parameter.Name, how);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Parameter '{0}' passed by reference ({1}).", parameter.Name, how);
Runner.Report (parameter, severity, Confidence.Total, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/AvoidSmallNamespaceRule.cs b/gendarme/rules/Gendarme.Rules.Design/AvoidSmallNamespaceRule.cs
index 138b556..76f590a 100644
--- a/gendarme/rules/Gendarme.Rules.Design/AvoidSmallNamespaceRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/AvoidSmallNamespaceRule.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
@@ -164,7 +165,8 @@ namespace Gendarme.Rules.Design {
// e.g. VS.NET adds a .Properties namespace to SWF apps
if ((count > 0) && (count < Minimum)) {
NamespaceDefinition n = NamespaceDefinition.GetDefinition (ns);
- string msg = String.Format ("Only {0} visible types are defined inside this namespace.", count);
+ string msg = String.Format (CultureInfo.CurrentCulture,
+ "Only {0} visible types are defined inside this namespace.", count);
// overloads of Report cannot be used here since the 'target' has been lost in the runner
Runner.Report (new Defect (this, n, n, Severity.Low, Confidence.Total, msg));
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/ConsiderAddingInterfaceRule.cs b/gendarme/rules/Gendarme.Rules.Design/ConsiderAddingInterfaceRule.cs
index 342218f..ddcb92a 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ConsiderAddingInterfaceRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ConsiderAddingInterfaceRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using Mono.Cecil;
@@ -143,7 +144,8 @@ namespace Gendarme.Rules.Design {
if (HasConstraints (type))
continue;
if (DoesTypeStealthilyImplementInterface (type, iface)) {
- string msg = string.Format ("Type implements '{0}' interface but does not declare it.", iface);
+ string msg = string.Format (CultureInfo.InvariantCulture,
+ "Type implements '{0}' interface but does not declare it.", iface);
// use our own Defect since the *real* target (of analysis) is 'type' not 'iface'
Runner.Report (new Defect (this, type, type, Severity.Medium, Confidence.High, msg));
}
@@ -165,7 +167,7 @@ namespace Gendarme.Rules.Design {
return false;
//type already publicly says it implements the interface
- if (type.Implements (iface.FullName))
+ if (type.Implements (iface.Namespace, iface.Name))
return false;
foreach (MethodDefinition m in mdc) {
diff --git a/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingFieldToNullableRule.cs b/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingFieldToNullableRule.cs
index 453fc23..e5ffcfc 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingFieldToNullableRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingFieldToNullableRule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -75,7 +76,7 @@ namespace Gendarme.Rules.Design {
static bool IsHasField (FieldReference fd, ref string prefix, ref string suffix)
{
- if (fd.FieldType.FullName != "System.Boolean")
+ if (!fd.FieldType.IsNamed ("System", "Boolean"))
return false;
string name = fd.Name;
@@ -122,7 +123,9 @@ namespace Gendarme.Rules.Design {
&& HasValueTypeField(type, string.Concat(prefix,suffix)) ) {
//TODO: check if they are both used in the same method? does the complexity worth it?
string s = (Runner.VerbosityLevel > 0)
- ? String.Format ("Field '{0}' should probably be a nullable if '{1}' purpose is to inform if '{0}' has been set.", fd.Name, suffix)
+ ? String.Format (CultureInfo.InvariantCulture,
+ "Field '{0}' should probably be a nullable if '{1}' purpose is to inform if '{0}' has been set.",
+ fd.Name, suffix)
: string.Empty;
Runner.Report (fd, Severity.Low, Confidence.Low, s);
}
@@ -140,7 +143,7 @@ namespace Gendarme.Rules.Design {
{
foreach (FieldDefinition field in type.Fields) {
if (field.FieldType.IsValueType
- && "System.Nullable`1" != field.FieldType.GetElementType().FullName
+ && !field.FieldType.GetElementType ().IsNamed ("System", "Nullable`1")
&& 0 == string.Compare(name, field.Name, StringComparison.OrdinalIgnoreCase))
return field;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingMethodToPropertyRule.cs b/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingMethodToPropertyRule.cs
index 9d4ebbe..01622f4 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingMethodToPropertyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ConsiderConvertingMethodToPropertyRule.cs
@@ -90,9 +90,9 @@ namespace Gendarme.Rules.Design {
string ReportAssociatedSetter (MethodDefinition getter)
{
string name = "Set" + getter.Name.Substring (3);
- parameter [0] = getter.ReturnType.FullName;
+ parameter [0] = getter.ReturnType.GetFullName ();
MethodDefinition setter = getter.DeclaringType.GetMethod (name, Void, parameter);
- return setter == null ? String.Empty : setter.ToString ();
+ return setter == null ? String.Empty : setter.GetFullName ();
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -130,7 +130,7 @@ namespace Gendarme.Rules.Design {
bool get = name.StartsWith ("get", StringComparison.OrdinalIgnoreCase);
bool isp = name.StartsWith ("is", StringComparison.OrdinalIgnoreCase);
bool has = name.StartsWith ("has", StringComparison.OrdinalIgnoreCase);
- if ((get || isp || has) && (method.Parameters.Count == 0) && (return_type.FullName != Void)) {
+ if ((get || isp || has) && !method.HasParameters && !return_type.IsNamed ("System", "Void")) {
// if it's a getter then look for a setter (to complete the report)
string msg = get ? ReportAssociatedSetter (method) : String.Empty;
Runner.Report (method, Severity.Low, Confidence.Normal, msg);
diff --git a/gendarme/rules/Gendarme.Rules.Design/ConsiderUsingStaticTypeRule.cs b/gendarme/rules/Gendarme.Rules.Design/ConsiderUsingStaticTypeRule.cs
index d6a5691..d024c20 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ConsiderUsingStaticTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ConsiderUsingStaticTypeRule.cs
@@ -4,7 +4,7 @@
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -37,8 +37,8 @@ namespace Gendarme.Rules.Design {
/// <summary>
/// This rule checks for types that contain only static members and, if the assembly
- /// targets the CLR version 2.0 or later, suggests that the type be made <c>static</c>.
- /// The rule will ignore assemblies targeting earlier versions of the CLR.
+ /// targets the CLR version 2.0 or later, suggests that the type be made <c>static</c>
+ /// or, for earlier versions, that the type be made <c>sealed</c>.
/// </summary>
/// <example>
/// Bad example:
@@ -51,7 +51,7 @@ namespace Gendarme.Rules.Design {
/// </code>
/// </example>
/// <example>
- /// Good example:
+ /// Good example (targetting CLR 2.0 and later):
/// <code>
/// public static class Class {
/// public static void Method ()
@@ -60,22 +60,22 @@ namespace Gendarme.Rules.Design {
/// }
/// </code>
/// </example>
+ /// <example>
+ /// Good example (targetting CLR 1.x):
+ /// <code>
+ /// public sealed class Class {
+ /// public static void Method ()
+ /// {
+ /// }
+ /// }
+ /// </code>
+ /// </example>
[Problem ("This type contains only static fields and methods and should be static.")]
- [Solution ("Change this type into a static type to gain clarity and better error reporting.")]
+ [Solution ("Change this type into a static (or sealed for 1.x) type gain clarity and better error reporting.")]
+ [FxCopCompatibility ("Microsoft.Design", "CA1052:StaticHolderTypesShouldBeSealed")]
public class ConsiderUsingStaticTypeRule : Rule, ITypeRule {
- public override void Initialize (IRunner runner)
- {
- base.Initialize (runner);
-
- // Static type exists only since 2.0 so there's no point to execute this
- // rule on every type if the assembly target runtime is earlier than 2.0
- Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0);
- };
- }
-
static bool IsAllStatic (TypeDefinition type)
{
if (type.HasMethods) {
@@ -99,31 +99,15 @@ namespace Gendarme.Rules.Design {
return true;
}
- static int GetMethodCount (TypeDefinition type)
- {
- if (!type.HasMethods)
- return 0;
-
- int methods = 0;
-
- foreach (var method in type.Methods) {
- if (!method.IsConstructor)
- methods++;
- }
-
- return methods;
- }
-
public RuleResult CheckType (TypeDefinition type)
{
// rule applies only if the type isn't: an enum, an interface, a struct, a delegate or compiler generated
- if (type.IsEnum || type.IsInterface || type.IsValueType || !type.HasFields && GetMethodCount (type) == 0
- || type.IsDelegate () || type.IsGeneratedCode ()
- || type.BaseType != null && type.BaseType.FullName != "System.Object")
+ if (type.IsEnum || type.IsInterface || type.IsValueType || type.IsDelegate () || type.IsGeneratedCode ()
+ || type.BaseType != null && !type.BaseType.IsNamed ("System", "Object"))
return RuleResult.DoesNotApply;
- // success if the type is already static
- if (type.IsStatic ())
+ // success if the type is already static or, before 2.0, is it's sealed
+ if ((type.Module.Runtime >= TargetRuntime.Net_2_0) ? type.IsStatic () : type.IsSealed)
return RuleResult.Success;
if (IsAllStatic (type)) {
diff --git a/gendarme/rules/Gendarme.Rules.Design/DeclareEventHandlersCorrectlyRule.cs b/gendarme/rules/Gendarme.Rules.Design/DeclareEventHandlersCorrectlyRule.cs
index 82386a2..d6cf62b 100644
--- a/gendarme/rules/Gendarme.Rules.Design/DeclareEventHandlersCorrectlyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/DeclareEventHandlersCorrectlyRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Gendarme.Framework;
using Gendarme.Framework.Rocks;
using Gendarme.Framework.Helpers;
@@ -85,11 +86,12 @@ namespace Gendarme.Rules.Design {
private bool CheckReturnVoid (IMetadataTokenProvider eventType, IMethodSignature invoke)
{
- string full_name = invoke.ReturnType.FullName;
- if (String.Compare (full_name, "System.Void") == 0)
+ TypeReference rtype = invoke.ReturnType;
+ if (rtype.IsNamed ("System", "Void"))
return true;
- string msg = String.Format ("The delegate should return void, not {0}", full_name);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The delegate should return void, not {0}", rtype.GetFullName ());
Runner.Report (eventType, Severity.Medium, Confidence.High, msg);
return false;
}
@@ -112,14 +114,16 @@ namespace Gendarme.Rules.Design {
IList<ParameterDefinition> pdc = invoke.Parameters;
int count = pdc.Count;
if (count >= 1) {
- string type_name = pdc [0].ParameterType.FullName;
- if (String.Compare (type_name, "System.Object") != 0) {
- Runner.Report (eventType, Severity.Medium, Confidence.High, String.Format ("The first parameter should have an object, not {0}", type_name));
+ TypeReference ptype = pdc [0].ParameterType;
+ if (!ptype.IsNamed ("System", "Object")) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The first parameter should have an object, not {0}", ptype.GetFullName ());
+ Runner.Report (eventType, Severity.Medium, Confidence.High, msg);
ok = false;
}
}
if (count >= 2) {
- if (!pdc [1].ParameterType.Inherits ("System.EventArgs")) {
+ if (!pdc [1].ParameterType.Inherits ("System", "EventArgs")) {
Runner.Report (eventType, Severity.Medium, Confidence.High, "The second parameter should be a subclass of System.EventArgs");
ok = false;
}
@@ -129,10 +133,12 @@ namespace Gendarme.Rules.Design {
private bool CheckParameterName (IMetadataTokenProvider eventType, ParameterReference invokeParameter, string expectedName)
{
- if (String.Compare (invokeParameter.Name, expectedName) == 0)
+ if (invokeParameter.Name == expectedName)
return true;
- Runner.Report (eventType, Severity.Low, Confidence.High, String.Format ("The expected name is {0}, not {1}", expectedName, invokeParameter.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture, "The expected name is {0}, not {1}",
+ expectedName, invokeParameter.Name);
+ Runner.Report (eventType, Severity.Low, Confidence.High, msg);
return false;
}
@@ -189,9 +195,9 @@ namespace Gendarme.Rules.Design {
return valid;
}
- private bool CheckGenericDelegate (MemberReference type)
+ private bool CheckGenericDelegate (TypeReference type)
{
- if (type.FullName == "System.EventHandler`1")
+ if (type.IsNamed ("System", "EventHandler`1"))
return true;
Runner.Report (type, Severity.Medium, Confidence.High, "Generic delegates should use EventHandler<TEventArgs>");
diff --git a/gendarme/rules/Gendarme.Rules.Design/DisposableTypesShouldHaveFinalizerRule.cs b/gendarme/rules/Gendarme.Rules.Design/DisposableTypesShouldHaveFinalizerRule.cs
index 56133c9..dff2b48 100644
--- a/gendarme/rules/Gendarme.Rules.Design/DisposableTypesShouldHaveFinalizerRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/DisposableTypesShouldHaveFinalizerRule.cs
@@ -75,7 +75,7 @@ namespace Gendarme.Rules.Design {
return RuleResult.DoesNotApply;
// rule onyly applies to type that implements IDisposable
- if (!type.Implements ("System.IDisposable"))
+ if (!type.Implements ("System", "IDisposable"))
return RuleResult.DoesNotApply;
// no problem is a finalizer is found
diff --git a/gendarme/rules/Gendarme.Rules.Design/DoNotDeclareSettersOnCollectionPropertiesRule.cs b/gendarme/rules/Gendarme.Rules.Design/DoNotDeclareSettersOnCollectionPropertiesRule.cs
new file mode 100644
index 0000000..37c7b8c
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Design/DoNotDeclareSettersOnCollectionPropertiesRule.cs
@@ -0,0 +1,124 @@
+//
+// Gendarme.Rules.Design.DoNotDeclareSettersOnCollectionPropertiesRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using Mono.Cecil;
+
+using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.Design {
+
+ /// <summary>
+ /// The rule detect <c>System.Collections.ICollection</c> and
+ /// <c>System.Collections.Generic.ICollection<T></c> properties that declare a visible setter.
+ /// There is rarely a need to be able to replace the collection (e.g. most collections provide a <c>Clear</c>
+ /// method) and having a getter only does not prevent the consumer from adding and removing items in the collection.
+ /// Also read-only properties have special support for binary and XML serialization, making your code more useful.
+ /// A special exception is made for <c>System.Security.PermissionSet</c> and types that derives from it.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public class Holder {
+ /// public string Name { get; set; }
+ /// public ICollection<string> List { get; set; }
+ /// }
+ ///
+ /// public static Holder Copy (Holder h)
+ /// {
+ /// Holder copy = new Holder ();
+ /// copy.Name = h.Name;
+ /// // bad, same list would be shared between instances
+ /// copy.List = h.List;
+ /// copy.List.AddRange (h.List);
+ /// return copy;
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// public class Holder {
+ /// List<string> list;
+ ///
+ /// public Holder ()
+ /// {
+ /// list = new List<string> ();
+ /// }
+ ///
+ /// public string Name { get; set; }
+ ///
+ /// public ICollection<string> List {
+ /// get { return list; }
+ /// }
+ /// }
+ ///
+ /// public static Holder Copy (Holder h)
+ /// {
+ /// Holder copy = new Holder ();
+ /// copy.Name = h.Name;
+ /// copy.List.AddRange (h.List);
+ /// return copy;
+ /// }
+ /// </code>
+ /// </example>
+ [Problem ("A visible setter is declared for an ICollection (or derived) property")]
+ [Solution ("Replace the setter with a method or decrease the setter visibility")]
+ [FxCopCompatibility ("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public class DoNotDeclareSettersOnCollectionPropertiesRule : Rule, ITypeRule {
+
+ static bool IsICollection (TypeReference type)
+ {
+ if (type.Implements ("System.Collections", "ICollection"))
+ return true;
+
+ return type.Implements ("System.Collections.Generic", "ICollection`1");
+ }
+
+ static bool IsSpecialCase (TypeReference type)
+ {
+ return type.Inherits ("System.Security", "PermissionSet");
+ }
+
+ public RuleResult CheckType (TypeDefinition type)
+ {
+ if (!type.HasProperties || !type.IsVisible ())
+ return RuleResult.DoesNotApply;
+
+ bool is_interface = type.IsInterface;
+ foreach (PropertyDefinition pd in type.Properties) {
+ MethodDefinition setter = pd.SetMethod;
+ if ((setter == null) || (!is_interface && !setter.IsVisible ()))
+ continue;
+
+ TypeReference ptype = pd.PropertyType;
+ if (IsICollection (ptype) && !IsSpecialCase (ptype))
+ Runner.Report (setter, Severity.Medium, Confidence.High);
+ }
+ return Runner.CurrentRuleResult;
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Design/EnsureSymmetryForOverloadedOperatorsRule.cs b/gendarme/rules/Gendarme.Rules.Design/EnsureSymmetryForOverloadedOperatorsRule.cs
index 7f45898..33d8fce 100644
--- a/gendarme/rules/Gendarme.Rules.Design/EnsureSymmetryForOverloadedOperatorsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/EnsureSymmetryForOverloadedOperatorsRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Gendarme.Framework;
@@ -124,7 +125,7 @@ namespace Gendarme.Rules.Design {
return; //both are defined
}
- string s = string.Format (Message, pair.Key.Name, pair.Value.Name);
+ string s = string.Format (CultureInfo.InvariantCulture, Message, pair.Key.Name, pair.Value.Name);
Runner.Report (op, severity, Confidence.Total, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/EnumeratorsShouldBeStronglyTypedRule.cs b/gendarme/rules/Gendarme.Rules.Design/EnumeratorsShouldBeStronglyTypedRule.cs
index 815b329..a3bc8e4 100644
--- a/gendarme/rules/Gendarme.Rules.Design/EnumeratorsShouldBeStronglyTypedRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/EnumeratorsShouldBeStronglyTypedRule.cs
@@ -78,29 +78,40 @@ namespace Gendarme.Rules.Design {
[FxCopCompatibility ("Microsoft.Design", "CA1038:EnumeratorsShouldBeStronglyTyped")]
public class EnumeratorsShouldBeStronglyTypedRule : StronglyTypedRule, ITypeRule {
+ private MethodSignature [] Empty = { };
+ private static string [] Current = { "Current" };
+
protected override MethodSignature [] GetMethods ()
{
- return new MethodSignature [] { };
+ return Empty;
}
protected override string [] GetProperties ()
{
- return new string [] { "Current" };
+ return Current;
}
protected override string InterfaceName {
- get { return "System.Collections.IEnumerator"; }
+ get { return "IEnumerator"; }
+ }
+
+ protected override string InterfaceNamespace {
+ get { return "System.Collections"; }
}
override public RuleResult CheckType (TypeDefinition type)
{
TypeReference baseType = type;
while (baseType != null) {
- string name = baseType.FullName;
- if (name == "System.Collections.CollectionBase" ||
- name == "System.Collections.DictionaryBase" ||
- name == "System.Collections.ReadOnlyCollectionBase")
- return RuleResult.DoesNotApply;
+ if (baseType.Namespace == "System.Collections") {
+ switch (baseType.Name) {
+ case "CollectionBase":
+ case "DictionaryBase":
+ case "ReadOnlyCollectionBase":
+ return RuleResult.DoesNotApply;
+ }
+ }
+
TypeDefinition td = baseType.Resolve ();
if (td != null)
baseType = td.BaseType;
diff --git a/gendarme/rules/Gendarme.Rules.Design/EnumsShouldUseInt32Rule.cs b/gendarme/rules/Gendarme.Rules.Design/EnumsShouldUseInt32Rule.cs
index 13460c2..3d2da47 100644
--- a/gendarme/rules/Gendarme.Rules.Design/EnumsShouldUseInt32Rule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/EnumsShouldUseInt32Rule.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -89,33 +90,36 @@ namespace Gendarme.Rules.Design {
// rule applies!
- string value_type = null;
+ TypeReference ftype = null;
foreach (FieldDefinition field in type.Fields) {
// we looking for the special value__
if (!field.IsStatic) {
- value_type = field.FieldType.FullName;
+ ftype = field.FieldType;
break;
}
}
- Severity severity;
- switch (value_type) {
- case "System.Int32":
- return RuleResult.Success;
- // some are bad choice (when possible) but usable by all CLS compliant languages
- case "System.Byte":
- case "System.Int16":
- case "System.Int64":
+ Severity severity = Severity.Critical;
+ if ((ftype != null) && (ftype.Namespace == "System")) {
+ switch (ftype.Name) {
+ case "Int32":
+ return RuleResult.Success;
+ // some are bad choice (when possible) but usable by all CLS compliant languages
+ case "Byte":
+ case "Int16":
+ case "Int64":
severity = Severity.High;
- break;
- // while others are not usable in non-CLS compliant languages
- default: // System.SByte, System.UInt16, System.UInt32, System.UInt64
- severity = Severity.Critical;
- break;
+ break;
+ // while others are not usable in non-CLS compliant languages
+ default: // System.SByte, System.UInt16, System.UInt32, System.UInt64
+ severity = Severity.Critical;
+ break;
+ }
}
- string text = String.Format ("Enums should use System.Int32 instead of '{0}'.", value_type);
+ string text = String.Format (CultureInfo.InvariantCulture,
+ "Enums should use System.Int32 instead of '{0}'.", ftype.GetFullName ());
Runner.Report (type, severity, Confidence.Total, text);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Gendarme.Rules.Design.csproj b/gendarme/rules/Gendarme.Rules.Design/Gendarme.Rules.Design.csproj
index c9f8ed4..9f6ad7c 100755
--- a/gendarme/rules/Gendarme.Rules.Design/Gendarme.Rules.Design.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design/Gendarme.Rules.Design.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Design</RootNamespace>
<AssemblyName>Gendarme.Rules.Design</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Design.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Design.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -90,8 +112,6 @@
<Compile Include="ProvideTryParseAlternativeRule.cs" />
<Compile Include="StronglyTypedRule.cs" />
<Compile Include="TypesShouldBeInsideNamespacesRule.cs" />
- <Compile Include="TypesWithDisposableFieldsShouldBeDisposableRule.cs" />
- <Compile Include="TypesWithNativeFieldsShouldBeDisposableRule.cs" />
<Compile Include="UseCorrectDisposeSignaturesRule.cs" />
<Compile Include="UseFlagsAttributeRule.cs" />
<Compile Include="UsingCloneWithoutImplementingICloneableRule.cs" />
@@ -107,6 +127,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Design/ImplementEqualsAndGetHashCodeInPairRule.cs b/gendarme/rules/Gendarme.Rules.Design/ImplementEqualsAndGetHashCodeInPairRule.cs
index 14e555f..c1e01c5 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ImplementEqualsAndGetHashCodeInPairRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ImplementEqualsAndGetHashCodeInPairRule.cs
@@ -27,6 +27,7 @@
// THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -99,13 +100,13 @@ namespace Gendarme.Rules.Design {
// if we have Equals but no GetHashCode method
if (equals && !getHashCode) {
- string text = String.Format (Message, MethodSignatures.Equals, MethodSignatures.GetHashCode);
+ string text = String.Format (CultureInfo.InvariantCulture, Message, MethodSignatures.Equals, MethodSignatures.GetHashCode);
Runner.Report (type, Severity.Critical, Confidence.High, text);
}
// if we have GetHashCode but no Equals method
if (!equals && getHashCode) {
- string text = String.Format (Message, MethodSignatures.GetHashCode, MethodSignatures.Equals);
+ string text = String.Format (CultureInfo.InvariantCulture, Message, MethodSignatures.GetHashCode, MethodSignatures.Equals);
Runner.Report (type, Severity.Medium, Confidence.High, text);
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/ImplementIComparableCorreclyRule.cs b/gendarme/rules/Gendarme.Rules.Design/ImplementIComparableCorreclyRule.cs
index a214f80..11c45aa 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ImplementIComparableCorreclyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ImplementIComparableCorreclyRule.cs
@@ -110,8 +110,10 @@ namespace Gendarme.Rules.Design {
// Note: we do not use Implements rock because we do not want a recursive answer
bool icomparable = false;
foreach (TypeReference iface in type.Interfaces) {
+ if (iface.Namespace != "System")
+ continue;
// catch both System.IComparable and System.IComparable`1<X>
- if (iface.FullName.StartsWith ("System.IComparable", StringComparison.Ordinal)) {
+ if (iface.Name.StartsWith ("IComparable", StringComparison.Ordinal)) {
icomparable = true;
break;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/ListsAreStronglyTypedRule.cs b/gendarme/rules/Gendarme.Rules.Design/ListsAreStronglyTypedRule.cs
index f669c6a..9595df1 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ListsAreStronglyTypedRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ListsAreStronglyTypedRule.cs
@@ -74,8 +74,9 @@ namespace Gendarme.Rules.Design {
[Problem ("Types that implement IList should have strongly typed versions of IList.Item, IList.Add, IList.Contains, IList.IndexOf, IList.Insert and IList.Remove")]
[Solution ("Explicitly implement IList members and provide strongly typed alternatives to them.")]
[FxCopCompatibility ("Microsoft.Design", "CA1039:ListsAreStronglyTyped")]
- public class ListsAreStronglyTypedRule : StronglyTypedRule, ITypeRule
- {
+ public class ListsAreStronglyTypedRule : StronglyTypedRule, ITypeRule {
+
+ private static string [] Item = new string [] { "Item" };
private static string[] SystemObject = new string[] {"System.Object"};
private static MethodSignature Add = new MethodSignature ("Add", "System.Int32", SystemObject);
@@ -83,25 +84,31 @@ namespace Gendarme.Rules.Design {
private static MethodSignature IndexOf = new MethodSignature ("IndexOf", "System.Int32", SystemObject);
private static MethodSignature Insert = new MethodSignature ("Insert", "System.Void", new string [] { "System.Int32", "System.Object" });
private static MethodSignature Remove = new MethodSignature ("Remove", "System.Void", SystemObject);
-
+
+ private static MethodSignature [] Signatures = {
+ Add,
+ Contains,
+ IndexOf,
+ Insert,
+ Remove,
+ };
+
protected override MethodSignature [] GetMethods ()
{
- return new MethodSignature[] {
- Add,
- Contains,
- IndexOf,
- Insert,
- Remove,
- };
+ return Signatures;
}
protected override string [] GetProperties ()
{
- return new string [] { "Item" };
+ return Item;
}
protected override string InterfaceName {
- get { return "System.Collections.IList"; }
+ get { return "IList"; }
+ }
+
+ protected override string InterfaceNamespace {
+ get { return "System.Collections"; }
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Makefile.am b/gendarme/rules/Gendarme.Rules.Design/Makefile.am
index d6c861d..e9545b3 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.Design/Makefile.am
@@ -17,6 +17,7 @@ rules_sources = \
DeclareEventHandlersCorrectlyRule.cs \
DefineAZeroValueRule.cs \
DisposableTypesShouldHaveFinalizerRule.cs \
+ DoNotDeclareSettersOnCollectionPropertiesRule.cs \
DoNotDeclareVirtualMethodsInSealedTypeRule.cs \
DontDeclareProtectedFieldsInSealedClassRule.cs \
EnsureSymmetryForOverloadedOperatorsRule.cs \
@@ -46,8 +47,6 @@ rules_sources = \
StronglyTypedRule.cs \
StronglyTypeICollectionMembersRule.cs \
TypesShouldBeInsideNamespacesRule.cs \
- TypesWithDisposableFieldsShouldBeDisposableRule.cs \
- TypesWithNativeFieldsShouldBeDisposableRule.cs \
UseFlagsAttributeRule.cs \
UseCorrectDisposeSignaturesRule.cs \
UsingCloneWithoutImplementingICloneableRule.cs
@@ -70,6 +69,7 @@ tests_sources = \
ConsiderUsingStaticTypeTest.cs \
DeclareEventHandlersCorrectlyTest.cs \
DisposableTypesShouldHaveFinalizerTest.cs \
+ DoNotDeclareSettersOnCollectionPropertiesTest.cs \
DoNotDeclareVirtualMethodsInSealedTypeTest.cs \
DontDeclareProtectedFieldsInSealedClassTest.cs \
EnsureSymmetryForOverloadedOperatorsTest.cs \
@@ -98,8 +98,6 @@ tests_sources = \
ProvideAlternativeNamesForOperatorOverloadsTest.cs \
StronglyTypeICollectionMembersTest.cs \
TypesShouldBeInsideNamespacesTest.cs \
- TypesWithDisposableFieldsShouldBeDisposableTest.cs \
- TypesWithNativeFieldsShouldBeDisposableTest.cs \
UseFlagsAttributeTest.cs \
UseCorrectDisposeSignaturesTest.cs \
UsingCloneWithoutImplementingICloneableTest.cs
diff --git a/gendarme/rules/Gendarme.Rules.Design/Makefile.in b/gendarme/rules/Gendarme.Rules.Design/Makefile.in
index 95ae583..598d350 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -267,6 +343,7 @@ rules_sources = \
DeclareEventHandlersCorrectlyRule.cs \
DefineAZeroValueRule.cs \
DisposableTypesShouldHaveFinalizerRule.cs \
+ DoNotDeclareSettersOnCollectionPropertiesRule.cs \
DoNotDeclareVirtualMethodsInSealedTypeRule.cs \
DontDeclareProtectedFieldsInSealedClassRule.cs \
EnsureSymmetryForOverloadedOperatorsRule.cs \
@@ -296,8 +373,6 @@ rules_sources = \
StronglyTypedRule.cs \
StronglyTypeICollectionMembersRule.cs \
TypesShouldBeInsideNamespacesRule.cs \
- TypesWithDisposableFieldsShouldBeDisposableRule.cs \
- TypesWithNativeFieldsShouldBeDisposableRule.cs \
UseFlagsAttributeRule.cs \
UseCorrectDisposeSignaturesRule.cs \
UsingCloneWithoutImplementingICloneableRule.cs
@@ -318,6 +393,7 @@ tests_sources = \
ConsiderUsingStaticTypeTest.cs \
DeclareEventHandlersCorrectlyTest.cs \
DisposableTypesShouldHaveFinalizerTest.cs \
+ DoNotDeclareSettersOnCollectionPropertiesTest.cs \
DoNotDeclareVirtualMethodsInSealedTypeTest.cs \
DontDeclareProtectedFieldsInSealedClassTest.cs \
EnsureSymmetryForOverloadedOperatorsTest.cs \
@@ -346,8 +422,6 @@ tests_sources = \
ProvideAlternativeNamesForOperatorOverloadsTest.cs \
StronglyTypeICollectionMembersTest.cs \
TypesShouldBeInsideNamespacesTest.cs \
- TypesWithDisposableFieldsShouldBeDisposableTest.cs \
- TypesWithNativeFieldsShouldBeDisposableTest.cs \
UseFlagsAttributeTest.cs \
UseCorrectDisposeSignaturesTest.cs \
UsingCloneWithoutImplementingICloneableTest.cs
@@ -359,14 +433,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -376,6 +450,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -384,42 +459,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -428,7 +524,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -445,7 +541,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -453,7 +549,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -479,16 +575,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -496,14 +592,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -515,7 +611,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -524,29 +620,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -567,29 +668,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -612,10 +725,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -623,6 +741,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -642,6 +761,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -651,18 +772,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -684,8 +815,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -705,11 +836,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -718,7 +849,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -738,6 +869,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithAttributeRule.cs b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithAttributeRule.cs
index 031667a..f9dc4af 100644
--- a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithAttributeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithAttributeRule.cs
@@ -38,6 +38,7 @@ namespace Gendarme.Rules.Design {
abstract public class MarkAssemblyWithAttributeRule : Rule, IAssemblyRule {
+ abstract protected string AttributeNamespace { get; }
abstract protected string AttributeName { get; }
abstract protected Severity Severity { get; }
@@ -47,7 +48,7 @@ namespace Gendarme.Rules.Design {
if (!assembly.HasCustomAttributes)
return RuleResult.DoesNotApply;
- if (assembly.HasAttribute (AttributeName))
+ if (assembly.HasAttribute (AttributeNamespace, AttributeName))
return RuleResult.Success;
Runner.Report (assembly, Severity, Confidence.Total);
diff --git a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithCLSCompliantRule.cs b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithCLSCompliantRule.cs
index a2594c8..c686d4b 100644
--- a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithCLSCompliantRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithCLSCompliantRule.cs
@@ -56,8 +56,12 @@ namespace Gendarme.Rules.Design {
[FxCopCompatibility ("Microsoft.Design", "CA1014:MarkAssembliesWithClsCompliant")]
public class MarkAssemblyWithCLSCompliantRule : MarkAssemblyWithAttributeRule {
+ protected override string AttributeNamespace {
+ get { return "System"; }
+ }
+
protected override string AttributeName {
- get { return "System.CLSCompliantAttribute"; }
+ get { return "CLSCompliantAttribute"; }
}
protected override Severity Severity {
diff --git a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithComVisibleRule.cs b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithComVisibleRule.cs
index ca2dcc4..59dfac8 100644
--- a/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithComVisibleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/MarkAssemblyWithComVisibleRule.cs
@@ -55,8 +55,12 @@ namespace Gendarme.Rules.Design {
[FxCopCompatibility ("Microsoft.Design", "CA1017:MarkAssembliesWithComVisible")]
public class MarkAssemblyWithComVisibleRule : MarkAssemblyWithAttributeRule {
+ protected override string AttributeNamespace {
+ get { return "System.Runtime.InteropServices"; }
+ }
+
protected override string AttributeName {
- get { return "System.Runtime.InteropServices.ComVisibleAttribute"; }
+ get { return "ComVisibleAttribute"; }
}
protected override Severity Severity {
diff --git a/gendarme/rules/Gendarme.Rules.Design/MissingAttributeUsageOnCustomAttributeRule.cs b/gendarme/rules/Gendarme.Rules.Design/MissingAttributeUsageOnCustomAttributeRule.cs
index addc0d5..e0e5135 100644
--- a/gendarme/rules/Gendarme.Rules.Design/MissingAttributeUsageOnCustomAttributeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/MissingAttributeUsageOnCustomAttributeRule.cs
@@ -66,15 +66,13 @@ namespace Gendarme.Rules.Design {
[FxCopCompatibility ("Microsoft.Design", "CA1018:MarkAttributesWithAttributeUsage")]
public class MissingAttributeUsageOnCustomAttributeRule : Rule, ITypeRule {
- private const string AttributeUsageAttribute = "System.AttributeUsageAttribute";
-
public RuleResult CheckType (TypeDefinition type)
{
// rule applies only to attributes
if (!type.IsAttribute ())
return RuleResult.DoesNotApply;
- if (type.HasAttribute (AttributeUsageAttribute)) // it's ok
+ if (type.HasAttribute ("System", "AttributeUsageAttribute")) // it's ok
return RuleResult.Success;
Runner.Report (type, Severity.High, Confidence.Total);
diff --git a/gendarme/rules/Gendarme.Rules.Design/PreferIntegerOrStringForIndexersRule.cs b/gendarme/rules/Gendarme.Rules.Design/PreferIntegerOrStringForIndexersRule.cs
index ff8f07b..8da1533 100644
--- a/gendarme/rules/Gendarme.Rules.Design/PreferIntegerOrStringForIndexersRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/PreferIntegerOrStringForIndexersRule.cs
@@ -80,16 +80,22 @@ namespace Gendarme.Rules.Design {
return RuleResult.Success;
foreach (ParameterDefinition parameter in method.Parameters) {
- switch (parameter.ParameterType.FullName) {
- case "System.Int32":
- case "System.Int64":
- case "System.String":
- case "System.Object": // tolerable in some circumstances
- break;
- default:
- Runner.Report (parameter, Severity.Medium, Confidence.Total);
- break;
+ TypeReference ptype = parameter.ParameterType;
+ bool ok = (ptype.Namespace == "System");
+ if (ok) {
+ switch (ptype.Name) {
+ case "Int32":
+ case "Int64":
+ case "String":
+ case "Object": // tolerable in some circumstances
+ break;
+ default:
+ ok = false;
+ break;
+ }
}
+ if (!ok)
+ Runner.Report (parameter, Severity.Medium, Confidence.Total);
}
return Runner.CurrentRuleResult;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/PreferUriOverStringRule.cs b/gendarme/rules/Gendarme.Rules.Design/PreferUriOverStringRule.cs
index cc15916..8143bda 100644
--- a/gendarme/rules/Gendarme.Rules.Design/PreferUriOverStringRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/PreferUriOverStringRule.cs
@@ -34,6 +34,7 @@ using Gendarme.Framework.Rocks;
using System;
using System.Linq;
using System.Collections.Generic;
+using System.Globalization;
namespace Gendarme.Rules.Design {
@@ -100,7 +101,7 @@ namespace Gendarme.Rules.Design {
// We assume the name is pascal- or camel- cased: to prevent false-positives (such as the urn in return),
// the position is only returned if the character is the first in the string, or is an uppercase letter.
while ((index = memberName.IndexOf (token, index, StringComparison.OrdinalIgnoreCase)) != -1) {
- if (index == 0 || char.IsUpper (memberName [index]))
+ if (index == 0 || Char.IsUpper (memberName [index]))
break;
index += token.Length;
}
@@ -110,10 +111,10 @@ namespace Gendarme.Rules.Design {
private static bool IsUri (string memberName)
{
int index = 0;
- while ((index = FindTokenStart (memberName, "ur", index)) != -1) {
- if (memberName.Length < index + 2)
+ while ((index = FindTokenStart(memberName, "ur", index)) != -1){
+ if (memberName.Length <= index + 2)
break;
- if (url_enders.Contains (char.ToLower (memberName [index + 2])))
+ if (url_enders.Contains(Char.ToLower(memberName[index + 2], CultureInfo.InvariantCulture)))
return true;
index += 2;
}
@@ -159,7 +160,7 @@ namespace Gendarme.Rules.Design {
{
// attributes are a special case where Uri cannot be used and has it's own
// rule to cover this: Gendarme.Rules.Correctness.AttributeStringLiteralShouldParseCorrectlyRule
- if (method.IsConstructor && method.DeclaringType.Inherits ("System.Attribute"))
+ if (method.IsConstructor && method.DeclaringType.Inherits ("System", "Attribute"))
return;
var methodParams = method.Parameters;
diff --git a/gendarme/rules/Gendarme.Rules.Design/PreferXmlAbstractionsRule.cs b/gendarme/rules/Gendarme.Rules.Design/PreferXmlAbstractionsRule.cs
index 32bc46f..6ce3fdc 100644
--- a/gendarme/rules/Gendarme.Rules.Design/PreferXmlAbstractionsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/PreferXmlAbstractionsRule.cs
@@ -94,10 +94,6 @@ namespace Gendarme.Rules.Design {
[FxCopCompatibility ("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes")]
public class PreferXmlAbstractionsRule : Rule, IMethodRule {
- const string XmlDocumentClass = "System.Xml.XmlDocument";
- const string XPathDocumentClass = "System.Xml.XPath.XPathDocument";
- const string XmlNodeClass = "System.Xml.XmlNode";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -119,7 +115,7 @@ namespace Gendarme.Rules.Design {
return RuleResult.DoesNotApply;
MethodReturnType mrt = method.MethodReturnType;
- if (IsSpecificXmlType (mrt.ReturnType.FullName))
+ if (IsSpecificXmlType (mrt.ReturnType))
Runner.Report (mrt, GetSeverity (method), Confidence.High);
if (method.HasParameters) {
@@ -127,7 +123,7 @@ namespace Gendarme.Rules.Design {
if (parameter.IsOut)
continue; //out params already have their rule
- if (IsSpecificXmlType (parameter.ParameterType.FullName))
+ if (IsSpecificXmlType (parameter.ParameterType))
Runner.Report (parameter, GetSeverity (method), Confidence.High);
}
}
@@ -135,9 +131,13 @@ namespace Gendarme.Rules.Design {
return Runner.CurrentRuleResult;
}
- static bool IsSpecificXmlType (string name)
+ static bool IsSpecificXmlType (TypeReference type)
{
- return name == XmlDocumentClass || name == XPathDocumentClass || name == XmlNodeClass;
+ if (type.Namespace == "System.Xml") {
+ string name = type.Name;
+ return ((name == "XmlDocument") || (name == "XmlNode"));
+ }
+ return type.IsNamed ("System.Xml.XPath", "XPathDocument");
}
static Severity GetSeverity (MethodDefinition method)
diff --git a/gendarme/rules/Gendarme.Rules.Design/ProvideAlternativeNamesForOperatorOverloadsRule.cs b/gendarme/rules/Gendarme.Rules.Design/ProvideAlternativeNamesForOperatorOverloadsRule.cs
index 1e1347e..e2197c5 100644
--- a/gendarme/rules/Gendarme.Rules.Design/ProvideAlternativeNamesForOperatorOverloadsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/ProvideAlternativeNamesForOperatorOverloadsRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Gendarme.Framework;
@@ -171,7 +172,8 @@ namespace Gendarme.Rules.Design {
}
if (!alternativeDefined) {
- string s = String.Format ("This type implements the '{0}' operator. Some languages do not support overloaded operators so an alternative '{1}' method should be provided.",
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "This type implements the '{0}' operator. Some languages do not support overloaded operators so an alternative '{1}' method should be provided.",
kv.Key.Name, kv.Value.Name);
Runner.Report (op, Severity.Medium, Confidence.High, s);
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/StronglyTypeICollectionMembersRule.cs b/gendarme/rules/Gendarme.Rules.Design/StronglyTypeICollectionMembersRule.cs
index 637e9e8..75605a1 100644
--- a/gendarme/rules/Gendarme.Rules.Design/StronglyTypeICollectionMembersRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/StronglyTypeICollectionMembersRule.cs
@@ -72,24 +72,30 @@ namespace Gendarme.Rules.Design {
[Problem ("Types that implement ICollection interface should have strongly typed version of ICollection.CopyTo method")]
[Solution ("Explicitly implement ICollection.CopyTo and add strongly typed alternative to it")]
[FxCopCompatibility ("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers")]
- public class StronglyTypeICollectionMembersRule : StronglyTypedRule, ITypeRule
- {
+ public class StronglyTypeICollectionMembersRule : StronglyTypedRule, ITypeRule {
- private static MethodSignature CopyTo = new MethodSignature("CopyTo", "System.Void",
- new string[] {"System.Array", "System.Int32"});
+ private static string [] Empty = new string [] { };
+
+ private static MethodSignature [] CopyTo = new MethodSignature [] {
+ new MethodSignature ("CopyTo", "System.Void", new string [] { "System.Array", "System.Int32" })
+ };
protected override MethodSignature [] GetMethods ()
{
- return new MethodSignature [] { CopyTo };
+ return CopyTo;
}
protected override string [] GetProperties ()
{
- return new string [] { };
+ return Empty;
}
protected override string InterfaceName {
- get { return "System.Collections.ICollection"; }
+ get { return "ICollection"; }
+ }
+
+ protected override string InterfaceNamespace {
+ get { return "System.Collections"; }
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/StronglyTypedRule.cs b/gendarme/rules/Gendarme.Rules.Design/StronglyTypedRule.cs
index f38fecc..b60feae 100644
--- a/gendarme/rules/Gendarme.Rules.Design/StronglyTypedRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/StronglyTypedRule.cs
@@ -42,12 +42,7 @@ namespace Gendarme.Rules.Design {
abstract protected MethodSignature [] GetMethods ();
abstract protected string [] GetProperties ();
abstract protected string InterfaceName { get; }
-
- HashSet<string> weakTypes = new HashSet<string> {
- "System.Object",
- "System.Array",
- "System.Object[]",
- };
+ abstract protected string InterfaceNamespace { get; }
MethodSignature [] signatures;
string [] propertyNames;
@@ -55,7 +50,7 @@ namespace Gendarme.Rules.Design {
virtual public RuleResult CheckType (TypeDefinition type)
{
- if (type.IsAbstract || type.IsGeneratedCode () || !type.Implements (InterfaceName))
+ if (type.IsAbstract || type.IsGeneratedCode () || !type.Implements (InterfaceNamespace, InterfaceName))
return RuleResult.DoesNotApply;
signatures = GetMethods ();
@@ -106,13 +101,26 @@ namespace Gendarme.Rules.Design {
ProcessProperties (baseType);
}
+ static bool IsWeak (TypeReference type)
+ {
+ if (type.Namespace != "System")
+ return false;
+ string name = type.Name;
+ return ((name == "Object") || (name == "Array") || (name == "Object[]"));
+ }
+
+ static bool IsWeak (string typeName)
+ {
+ return ((typeName == "System.Object") || (typeName == "System.Array") || (typeName == "System.Object[]"));
+ }
+
private void ProcessProperties (TypeDefinition baseType)
{
foreach (PropertyDefinition property in baseType.Properties) {
for (int i = 0; i < propertyNames.Length; i++) {
if (propertyNames [i] == null || propertyNames [i] != property.Name)
continue;
- if (!weakTypes.Contains (property.PropertyType.FullName)) {
+ if (!IsWeak (property.PropertyType)) {
propertiesLeft--;
propertyNames [i] = null;
}
@@ -133,9 +141,9 @@ namespace Gendarme.Rules.Design {
bool foundStrong = true;
for (int j = 0; j < methodParameters.Count; j++) {
- if (!weakTypes.Contains (signatures [i].Parameters [j]))
+ if (!IsWeak (signatures [i].Parameters [j]))
continue;
- if (weakTypes.Contains (methodParameters [j].ParameterType.FullName))
+ if (IsWeak (methodParameters [j].ParameterType))
foundStrong = false;
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/AttributeArgumentsShouldHaveAccessorsTest.cs b/gendarme/rules/Gendarme.Rules.Design/Test/AttributeArgumentsShouldHaveAccessorsTest.cs
index 0640805..02c92a0 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/AttributeArgumentsShouldHaveAccessorsTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/AttributeArgumentsShouldHaveAccessorsTest.cs
@@ -196,6 +196,35 @@ namespace Test.Rules.Design {
}
}
+ internal abstract class FooAttribute : Attribute
+ {
+ protected FooAttribute (string foo)
+ {
+ this.Foo = foo;
+ }
+
+ public string Foo
+ {
+ get;
+ private set;
+ }
+ }
+
+ internal class FooBarAttribute : FooAttribute
+ {
+ protected FooBarAttribute (string foo, string bar) : base (foo)
+ {
+ this.Bar = bar;
+ }
+
+ public string Bar
+ {
+ get;
+ private set;
+ }
+ }
+
+
[TestFixture]
public class AttributeArgumentsShouldHaveAccessorsTest : TypeRuleTestFixture<AttributeArgumentsShouldHaveAccessorsRule> {
@@ -252,5 +281,11 @@ namespace Test.Rules.Design {
{
AssertRuleFailure<TwoAccessorsMissingAttribute> (2);
}
+
+ [Test]
+ public void TestInheritedPropertiesAttribute ()
+ {
+ AssertRuleSuccess<FooBarAttribute> ();
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/ConsiderUsingStaticTypeTest.cs b/gendarme/rules/Gendarme.Rules.Design/Test/ConsiderUsingStaticTypeTest.cs
index 9e9c707..8e55722 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/ConsiderUsingStaticTypeTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/ConsiderUsingStaticTypeTest.cs
@@ -4,7 +4,7 @@
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -84,9 +84,9 @@ namespace Test.Rules.Design {
}
[Test]
- public void SkipOnEmptyClassTest ()
+ public void EmptyClassHasDefaultPublicInstanceCtor ()
{
- AssertRuleDoesNotApply<EmptyClass> ();
+ AssertRuleFailure<EmptyClass> ();
}
//You cannot do this class static
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareSettersOnCollectionPropertiesTest.cs b/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareSettersOnCollectionPropertiesTest.cs
new file mode 100644
index 0000000..4e22ddd
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareSettersOnCollectionPropertiesTest.cs
@@ -0,0 +1,137 @@
+//
+// Unit tests for DoNotDeclareSettersOnCollectionPropertiesRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Security;
+
+using Gendarme.Rules.Design;
+
+using NUnit.Framework;
+using Test.Rules.Fixtures;
+using Test.Rules.Definitions;
+
+namespace Test.Rules.Design {
+
+ [TestFixture]
+ public class DoNotDeclareSettersOnCollectionPropertiesTest : TypeRuleTestFixture<DoNotDeclareSettersOnCollectionPropertiesRule> {
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ AssertRuleDoesNotApply (SimpleTypes.Class);
+ AssertRuleDoesNotApply (SimpleTypes.Delegate);
+ AssertRuleDoesNotApply (SimpleTypes.Enum);
+ AssertRuleDoesNotApply (SimpleTypes.GeneratedType);
+ AssertRuleDoesNotApply (SimpleTypes.Interface);
+ AssertRuleDoesNotApply (SimpleTypes.Structure);
+ }
+
+ public interface IGoodInterface {
+ ICollection Collection { get; }
+ ICollection<string> GenericCollection { get; }
+ }
+
+ public class TypeImplementingGoodInterface : IGoodInterface {
+ public ICollection Collection { get; private set; }
+ public ICollection<string> GenericCollection { get; private set; }
+ }
+
+ public struct GoodStruct {
+ private ArrayList list;
+
+ public IDictionary Dictionary { get; private set; }
+ public ArrayList List {
+ get { return list; }
+ }
+ }
+
+ [Test]
+ public void Good ()
+ {
+ AssertRuleSuccess<IGoodInterface> ();
+ AssertRuleSuccess<TypeImplementingGoodInterface> ();
+ AssertRuleSuccess<GoodStruct> ();
+ }
+
+ // interface members are not "declared" as public - but they force a type to do so!
+ public interface IBadInterface {
+ ICollection Collection { get; set; }
+ ICollection<string> GenericCollection { get; set; }
+ }
+
+ public class TypeImplementingBadInterface : IBadInterface {
+ public ICollection Collection { get; set; }
+ public ICollection<string> GenericCollection { get; set; }
+ }
+
+ public struct BadStruct {
+ public IDictionary Dictionary { private get; set; }
+ public ArrayList List { get; set; }
+ }
+
+ [Test]
+ public void Bad ()
+ {
+ AssertRuleFailure<IBadInterface> (2);
+ AssertRuleFailure<TypeImplementingBadInterface> (2);
+ AssertRuleFailure<BadStruct> (2);
+ }
+
+ public class SecurityPermissions {
+ public PermissionSet Permissions { get; set; }
+ public NamedPermissionSet NamedPermissions { get; set; }
+ }
+
+ public class Indexers {
+ int [] array;
+
+ public int this [int index] {
+ get { return array [index]; }
+ set { array [index] = value; }
+ }
+
+ public int this [int x, int y] {
+ get { return array [x]; }
+ set { array [y] = value; }
+ }
+ }
+
+ public class Arrays {
+
+ public Array Array { get; set; }
+ }
+
+ [Test]
+ public void SpecialCases ()
+ {
+ AssertRuleSuccess<SecurityPermissions> ();
+ AssertRuleSuccess<Indexers> ();
+ AssertRuleFailure<Arrays> (1);
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareVirtualMethodsInSealedTypeTest.cs b/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareVirtualMethodsInSealedTypeTest.cs
index f495193..c5ae0ef 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareVirtualMethodsInSealedTypeTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/DoNotDeclareVirtualMethodsInSealedTypeTest.cs
@@ -4,7 +4,7 @@
// Authors:
// Sebastien Pouliot <sebastien at ximian.com>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008,2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.Collections.Generic;
using Mono.Cecil;
using Gendarme.Rules.Design;
@@ -103,7 +104,7 @@ namespace Test.Rules.Design {
}
public abstract class AbstractClass {
- public abstract string GetIt ();
+ public abstract string GetZit ();
}
public sealed class SealedClass : AbstractClass {
@@ -113,7 +114,7 @@ namespace Test.Rules.Design {
return 42;
}
- public override string GetIt ()
+ public override string GetZit ()
{
return String.Empty;
}
@@ -130,5 +131,34 @@ namespace Test.Rules.Design {
AssertRuleDoesNotApply<AbstractClass> ();
AssertRuleSuccess<SealedClass> ();
}
+
+ // extracted from mono/mcs/class/corlib/System.Collections.Generic/EqualityComparer.cs
+ // they override 'T', not string, base methods
+ sealed class InternalStringComparer : EqualityComparer<string> {
+
+ public override int GetHashCode (string obj)
+ {
+ if (obj == null)
+ return 0;
+ return obj.GetHashCode ();
+ }
+
+ public override bool Equals (string x, string y)
+ {
+ if (x == null)
+ return y == null;
+
+ if ((object) x == (object) y)
+ return true;
+
+ return x.Equals (y);
+ }
+ }
+
+ [Test]
+ public void Generic ()
+ {
+ AssertRuleSuccess<InternalStringComparer> ();
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Design/Test/Makefile.in
index 1be53f2..badee8f 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Design/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/PreferUriOverStringTest.cs b/gendarme/rules/Gendarme.Rules.Design/Test/PreferUriOverStringTest.cs
index ed460fd..ff975fd 100644
--- a/gendarme/rules/Gendarme.Rules.Design/Test/PreferUriOverStringTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/PreferUriOverStringTest.cs
@@ -52,6 +52,11 @@ namespace Test.Rules.Design {
get;
set;
}
+ public string CUR
+ {
+ get;
+ set;
+ }
public Uri GetUri ()
{
@@ -117,6 +122,7 @@ namespace Test.Rules.Design {
{
AssertRuleSuccess (SimpleMethods.EmptyMethod);
AssertRuleSuccess<GoodUris> ("GetUri");
+ AssertRuleSuccess<GoodUris>("get_CUR");
AssertRuleSuccess<GoodUris> ("GetNewLink");
AssertRuleSuccess<GoodUris> ("OverloadedMethod", new Type [] { typeof (string) });
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/Test/Tests.Rules.Design.csproj b/gendarme/rules/Gendarme.Rules.Design/Test/Tests.Rules.Design.csproj
index cf19ae8..c59cc09 100755
--- a/gendarme/rules/Gendarme.Rules.Design/Test/Tests.Rules.Design.csproj
+++ b/gendarme/rules/Gendarme.Rules.Design/Test/Tests.Rules.Design.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test</RootNamespace>
<AssemblyName>Tests.Rules.Design</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,8 @@
<DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +51,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -85,8 +108,6 @@
<Compile Include="ProvideAlternativeNamesForOperatorOverloadsTest.cs" />
<Compile Include="ProvideTryParseAlternativeTest.cs" />
<Compile Include="TypesShouldBeInsideNamespacesTest.cs" />
- <Compile Include="TypesWithDisposableFieldsShouldBeDisposableTest.cs" />
- <Compile Include="TypesWithNativeFieldsShouldBeDisposableTest.cs" />
<Compile Include="UseCorrectDisposeSignaturesTest.cs" />
<Compile Include="UseFlagsAttributeTest.cs" />
<Compile Include="UsingCloneWithoutImplementingICloneableTest.cs" />
@@ -112,6 +133,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Design/UseCorrectDisposeSignaturesRule.cs b/gendarme/rules/Gendarme.Rules.Design/UseCorrectDisposeSignaturesRule.cs
index 6041eb4..697c61b 100644
--- a/gendarme/rules/Gendarme.Rules.Design/UseCorrectDisposeSignaturesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/UseCorrectDisposeSignaturesRule.cs
@@ -141,10 +141,10 @@ namespace Gendarme.Rules.Design {
if (type.IsInterface || type.IsEnum || type.IsDelegate ())
return RuleResult.DoesNotApply;
- if (type.Implements ("System.IDisposable")) {
+ if (type.Implements ("System", "IDisposable")) {
Log.WriteLine (this);
Log.WriteLine (this, "----------------------------------");
- Log.WriteLine (this, type.FullName);
+ Log.WriteLine (this, type);
MethodDefinition dispose0 = null;
MethodDefinition dispose1 = null;
@@ -236,7 +236,7 @@ namespace Gendarme.Rules.Design {
{
if (type.HasInterfaces) {
foreach (TypeReference candidate in type.Interfaces) {
- if (candidate.FullName == "System.IDisposable")
+ if (candidate.IsNamed ("System", "IDisposable"))
return true;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Design/UseFlagsAttributeRule.cs b/gendarme/rules/Gendarme.Rules.Design/UseFlagsAttributeRule.cs
index 79671d8..c6adf87 100644
--- a/gendarme/rules/Gendarme.Rules.Design/UseFlagsAttributeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/UseFlagsAttributeRule.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using System.Linq;
using Mono.Cecil;
@@ -94,7 +95,7 @@ namespace Gendarme.Rules.Design {
values.Add (value);
} else {
- long v = Convert.ToInt64 (o);
+ long v = Convert.ToInt64 (o, CultureInfo.InvariantCulture);
if (v > 0) {
value = (ulong) v;
@@ -159,7 +160,7 @@ namespace Gendarme.Rules.Design {
#if DEBUG
Log.WriteLine (this);
Log.WriteLine (this, "------------------------------------");
- Log.WriteLine (this, type.FullName);
+ Log.WriteLine (this, type);
Log.WriteLine (this, "values: {0}", string.Join (" ", (from x in values select x.ToString ("X4")).ToArray ()));
#endif
diff --git a/gendarme/rules/Gendarme.Rules.Design/UsingCloneWithoutImplementingICloneableRule.cs b/gendarme/rules/Gendarme.Rules.Design/UsingCloneWithoutImplementingICloneableRule.cs
index f33e66f..3184afc 100644
--- a/gendarme/rules/Gendarme.Rules.Design/UsingCloneWithoutImplementingICloneableRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Design/UsingCloneWithoutImplementingICloneableRule.cs
@@ -95,7 +95,7 @@ namespace Gendarme.Rules.Design {
public RuleResult CheckType (TypeDefinition type)
{
// rule applies to type that doesn't implement System.IClonable
- if (type.Implements ("System.ICloneable"))
+ if (type.Implements ("System", "ICloneable"))
return RuleResult.DoesNotApply;
foreach (MethodDefinition method in type.Methods) {
@@ -110,7 +110,7 @@ namespace Gendarme.Rules.Design {
// that return System.Object, e.g. public object Clone()
// or the current type, e.g. public <type> Clone()
- if (method.ReturnType.FullName == "System.Object")
+ if (method.ReturnType.IsNamed ("System", "Object"))
Runner.Report (method, Severity.Low, Confidence.High);
}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/AvoidArgumentExceptionDefaultConstructorRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/AvoidArgumentExceptionDefaultConstructorRule.cs
index 6ddab93..44b14df 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/AvoidArgumentExceptionDefaultConstructorRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/AvoidArgumentExceptionDefaultConstructorRule.cs
@@ -96,21 +96,22 @@ namespace Gendarme.Rules.Exceptions {
continue;
TypeReference type = ctor.DeclaringType;
- string name = type.FullName;
- switch (name) {
- // most common cases
- case "System.ArgumentException":
- case "System.ArgumentNullException":
- case "System.ArgumentOutOfRangeException":
- case "System.DuplicateWaitObjectException":
- Runner.Report (method, ins, Severity.Medium, Confidence.Total, name);
- break;
- default:
- if (!name.EndsWith ("Exception", StringComparison.Ordinal))
- break;
- if (type.Inherits ("System.ArgumentException"))
- Runner.Report (method, ins, Severity.Medium, Confidence.Total, name);
- break;
+ string name = type.Name;
+ if (type.Namespace == "System") {
+ // most common cases
+ switch (name) {
+ case "ArgumentException":
+ case "ArgumentNullException":
+ case "ArgumentOutOfRangeException":
+ case "DuplicateWaitObjectException":
+ Runner.Report (method, ins, Severity.Medium, Confidence.Total, type.GetFullName ());
+ continue;
+ }
+ }
+
+ if (name.EndsWith ("Exception", StringComparison.Ordinal)) {
+ if (type.Inherits ("System", "ArgumentException"))
+ Runner.Report (method, ins, Severity.Medium, Confidence.Total, type.GetFullName ());
}
}
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/AvoidThrowingBasicExceptionsRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/AvoidThrowingBasicExceptionsRule.cs
index a43d01c..0ac510d 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/AvoidThrowingBasicExceptionsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/AvoidThrowingBasicExceptionsRule.cs
@@ -26,6 +26,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using Mono.Cecil;
using Gendarme.Framework;
namespace Gendarme.Rules.Exceptions {
@@ -67,15 +68,12 @@ namespace Gendarme.Rules.Exceptions {
[FxCopCompatibility ("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes")]
public class AvoidThrowingBasicExceptionsRule : NewExceptionsRule {
- static string [] BasicExceptions = {
- "System.Exception",
- "System.ApplicationException",
- "System.SystemException"
- };
-
- protected override string [] GetExceptionTypes ()
+ protected override bool CheckException (TypeReference type)
{
- return BasicExceptions;
+ if ((type == null) || (type.Namespace != "System"))
+ return false;
+ string name = type.Name;
+ return ((name == "Exception") || (name == "ApplicationException") || (name == "SystemException"));
}
protected override Severity Severity {
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotDestroyStackTraceRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotDestroyStackTraceRule.cs
index b1587d7..661b53f 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotDestroyStackTraceRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotDestroyStackTraceRule.cs
@@ -1,7 +1,7 @@
//
// DoNotDestroyStackTraceRule
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -23,7 +23,6 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
using System.Collections.Generic;
using Mono.Cecil;
@@ -31,6 +30,7 @@ using Mono.Cecil.Cil;
using Gendarme.Framework;
using Gendarme.Framework.Engines;
+using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
using Gendarme.Rules.Exceptions.Impl;
@@ -74,39 +74,116 @@ namespace Gendarme.Rules.Exceptions {
[FxCopCompatibility ("Microsoft.Usage", "CA2200:RethrowToPreserveStackDetails")]
public class DoNotDestroyStackTraceRule : Rule, IMethodRule {
+ // all branches instructions except leave[_s]
+ static OpCodeBitmask branches = new OpCodeBitmask (0xFFFFFC0000000000, 0xF, 0x0, 0x0);
+
private List<int> warned_offsets_in_method = new List<int> ();
public RuleResult CheckMethod (MethodDefinition method)
{
// rule only applies to methods with IL and exceptions handlers
- if (!method.HasBody)
- return RuleResult.DoesNotApply;
-
- MethodBody body = method.Body;
- if (!body.HasExceptionHandlers)
+ if (!method.HasBody || !method.Body.HasExceptionHandlers)
return RuleResult.DoesNotApply;
// and when the IL contains a Throw instruction (Rethrow is fine)
- if (!OpCodeEngine.GetBitmask (method).Get (Code.Throw))
+ OpCodeBitmask mask = OpCodeEngine.GetBitmask (method);
+ if (!mask.Get (Code.Throw))
return RuleResult.DoesNotApply;
+ // we can use a faster code path when no branches are present in the method
+ if (mask.Intersect (branches)) {
+ Branches (method);
+ } else {
+ Branchless (method);
+ }
+
warned_offsets_in_method.Clear ();
+
+ return Runner.CurrentRuleResult;
+ }
+
+ private void Branchless (MethodDefinition method)
+ {
+ // Current stack position: 0 = top of stack
+ int exStackPos = 0;
+ // Local variable position: -1 = not stored in local variable
+ int localVarPos = -1;
+
+ foreach (ExceptionHandler eh in method.Body.ExceptionHandlers) {
+ if (eh.HandlerType != ExceptionHandlerType.Catch)
+ continue;
+
+ ProcessCatchBlock (eh.HandlerStart, eh.HandlerEnd, method, ref exStackPos, ref localVarPos);
+ }
+ }
+
+ private void ProcessCatchBlock (Instruction first, Instruction last, MethodDefinition method, ref int exStackPos, ref int localVarPos)
+ {
+ Instruction cur = null;
+
+ while (cur != last) {
+ if (cur == null)
+ cur = first;
+ else
+ cur = cur.Next;
+
+ // Rethrown exception - no problem!
+ if (cur.Is (Code.Rethrow))
+ return;
+
+ if (cur.IsStoreLocal ()) {
+ int varIndex = cur.GetVariable (method).Index;
+ if (exStackPos == 0) {
+ // Storing argument on top of stack in local variable reference
+ localVarPos = varIndex;
+ exStackPos = -1;
+ } else if (localVarPos != -1 && varIndex == localVarPos)
+ // Writing over orignal exception...
+ localVarPos = -1;
+ } else if (localVarPos != -1 && cur.IsLoadLocal ()) {
+ int varIndex = cur.GetVariable (method).Index;
+ if (varIndex == localVarPos)
+ // Loading exception from local var back onto stack
+ exStackPos = 0;
+ } else if (cur.Is (Code.Throw) && exStackPos == 0) {
+ // If our original exception is on top of the stack,
+ // we're rethrowing it.This is deemed naughty...
+ if (!warned_offsets_in_method.Contains (cur.Offset)) {
+ Runner.Report (method, cur, Severity.Critical, Confidence.High);
+ warned_offsets_in_method.Add (cur.Offset);
+ }
+ return;
+ } else if (exStackPos != -1) {
+ // If we're still on the stack, track our position after
+ // this instruction
+ int numPops = cur.GetPopCount (method);
+ if (exStackPos < numPops) {
+ // Popped ex off of stack
+ exStackPos = -1;
+ } else {
+ int numPushes = cur.GetPushCount ();
+ exStackPos += numPushes - numPops;
+ }
+ }
+ }
+ }
+
+ private void Branches (MethodDefinition method)
+ {
ExecutionPathFactory epf = new ExecutionPathFactory ();
- foreach (ExceptionHandler eh in body.ExceptionHandlers) {
+ foreach (ExceptionHandler eh in method.Body.ExceptionHandlers) {
if (eh.HandlerType != ExceptionHandlerType.Catch)
continue;
var list = epf.CreatePaths (eh.HandlerStart, eh.HandlerEnd);
if (list.Count == 0) {
Runner.Report (method, eh.HandlerStart, Severity.Medium, Confidence.Normal, "Handler too complex for analysis");
- } else {
+ } else {
foreach (ExecutionPathCollection catchPath in list)
ProcessCatchPath (catchPath, method);
}
}
-
- return Runner.CurrentRuleResult;
}
private void ProcessCatchPath (IEnumerable<ExecutionBlock> catchPath, MethodDefinition method)
@@ -120,54 +197,41 @@ namespace Gendarme.Rules.Exceptions {
int localVarPos = -1;
foreach (ExecutionBlock block in catchPath) {
- Instruction cur = null;
-
- while (cur != block.Last) {
- if (cur == null)
- cur = block.First;
- else
- cur = cur.Next;
-
- if (cur.OpCode == OpCodes.Rethrow)
- // Rethrown exception - no problem!
- return;
-
- if (cur.IsStoreLocal ()) {
- int varIndex = cur.GetVariable (method).Index;
- if (exStackPos == 0) {
- // Storing argument on top of stack in local variable reference
- localVarPos = varIndex;
- exStackPos = -1;
- } else if (localVarPos != -1 && varIndex == localVarPos)
- // Writing over orignal exception...
- localVarPos = -1;
- } else if (localVarPos != -1 && cur.IsLoadLocal ()) {
- int varIndex = cur.GetVariable (method).Index;
- if (varIndex == localVarPos)
- // Loading exception from local var back onto stack
- exStackPos = 0;
- } else if (cur.OpCode == OpCodes.Throw && exStackPos == 0) {
- // If our original exception is on top of the stack,
- // we're rethrowing it.This is deemed naughty...
- if (!warned_offsets_in_method.Contains (cur.Offset)) {
- Runner.Report (method, cur, Severity.Critical, Confidence.High);
- warned_offsets_in_method.Add (cur.Offset);
- }
- return;
- } else if (exStackPos != -1) {
- // If we're still on the stack, track our position after
- // this instruction
- int numPops = cur.GetPopCount (method);
- if (exStackPos < numPops) {
- // Popped ex off of stack
- exStackPos = -1;
- } else {
- int numPushes = cur.GetPushCount ();
- exStackPos += numPushes - numPops;
- }
- }
- }
+ ProcessCatchBlock (block.First, block.Last, method, ref exStackPos, ref localVarPos);
}
}
+#if false
+ public void Bitmask ()
+ {
+ OpCodeBitmask branches = new OpCodeBitmask ();
+ branches.Set (Code.Beq);
+ branches.Set (Code.Beq_S);
+ branches.Set (Code.Bge);
+ branches.Set (Code.Bge_S);
+ branches.Set (Code.Bge_Un);
+ branches.Set (Code.Bge_Un_S);
+ branches.Set (Code.Bgt);
+ branches.Set (Code.Bgt_S);
+ branches.Set (Code.Bgt_Un);
+ branches.Set (Code.Bgt_Un_S);
+ branches.Set (Code.Ble);
+ branches.Set (Code.Ble_S);
+ branches.Set (Code.Ble_Un);
+ branches.Set (Code.Ble_Un_S);
+ branches.Set (Code.Blt);
+ branches.Set (Code.Blt_S);
+ branches.Set (Code.Blt_Un);
+ branches.Set (Code.Blt_Un_S);
+ branches.Set (Code.Bne_Un);
+ branches.Set (Code.Bne_Un_S);
+ branches.Set (Code.Br);
+ branches.Set (Code.Br_S);
+ branches.Set (Code.Brfalse);
+ branches.Set (Code.Brfalse_S);
+ branches.Set (Code.Brtrue);
+ branches.Set (Code.Brtrue_S);
+ Console.WriteLine (branches);
+ }
+#endif
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInNonCatchClausesRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInNonCatchClausesRule.cs
new file mode 100644
index 0000000..f237349
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInNonCatchClausesRule.cs
@@ -0,0 +1,113 @@
+//
+// Gendarme.Rules.Exceptions.DoNotThrowInNonCatchClausesRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+
+using Gendarme.Framework;
+using Gendarme.Framework.Engines;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.Exceptions {
+
+ /// <summary>
+ /// This rule detects exceptions that are throw in <c>fault</c>, <c>filter</c> or
+ /// <c>finally</c> clauses. Such exceptions will make it much harder to debug your
+ /// applications since it will hide the original exception.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// int err = 0;
+ /// try {
+ /// err = Initialize ();
+ /// }
+ /// finally {
+ /// Cleanup ();
+ /// if (err != 0)
+ /// throw new NotSupportedException ();
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// try {
+ /// if (Initialize () != 0)
+ /// throw new NotSupportedException ();
+ /// }
+ /// finally {
+ /// Cleanup ();
+ /// }
+ /// </code>
+ /// </example>
+ [Problem ("An exception is thrown in a fault, filter or finally clause.")]
+ [Solution ("Remove the exception or move it inside the try or catch clause.")]
+ [FxCopCompatibility ("Microsoft.Usage", "CA2219:DoNotRaiseExceptionsInExceptionClauses")]
+ [EngineDependency (typeof (OpCodeEngine))]
+ public class DoNotThrowInNonCatchClausesRule : Rule, IMethodRule {
+
+ void CheckBlock (MethodDefinition method, Instruction start, Instruction end)
+ {
+ Instruction ins = start;
+ while (ins != end) {
+ if (ins.Is (Code.Throw))
+ Runner.Report (method, ins, Severity.High, Confidence.High);
+ ins = ins.Next;
+ }
+ }
+
+ public RuleResult CheckMethod (MethodDefinition method)
+ {
+ // rule only applies to methods with IL...
+ if (!method.HasBody)
+ return RuleResult.DoesNotApply;
+
+ // ... and exceptions handlers
+ MethodBody body = method.Body;
+ if (!body.HasExceptionHandlers)
+ return RuleResult.DoesNotApply;
+
+ // and when the IL contains a Throw instruction (Rethrow is fine)
+ if (!OpCodeEngine.GetBitmask (method).Get (Code.Throw))
+ return RuleResult.DoesNotApply;
+
+ foreach (ExceptionHandler eh in body.ExceptionHandlers) {
+ // throwing in catch handler is fine
+ if (eh.HandlerType == ExceptionHandlerType.Catch)
+ continue;
+
+ CheckBlock (method, eh.HandlerStart, eh.HandlerEnd);
+ if (eh.FilterStart != null)
+ CheckBlock (method, eh.FilterStart, eh.HandlerStart);
+ }
+
+ return Runner.CurrentRuleResult;
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInUnexpectedLocationRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInUnexpectedLocationRule.cs
index 88e4379..cd7ad5b 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInUnexpectedLocationRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowInUnexpectedLocationRule.cs
@@ -28,6 +28,9 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+using System.Globalization;
+using System.Text;
+
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -160,10 +163,27 @@ namespace Gendarme.Rules.Exceptions {
private static readonly OpCodeBitmask OverflowThrowers = new OpCodeBitmask (0x0, 0x8000000000000000, 0x3FC07F8000001FF, 0x0);
private static readonly OpCodeBitmask Casts = new OpCodeBitmask (0x0, 0x48000000000000, 0x400000000, 0x0);
- private static readonly string [] GetterExceptions = new string [] {"System.InvalidOperationException", "System.NotSupportedException"};
- private static readonly string [] IndexerExceptions = new string [] {"System.InvalidOperationException", "System.NotSupportedException", "System.ArgumentException", "System.Collections.Generic.KeyNotFoundException"};
- private static readonly string [] EventExceptions = new string [] {"System.InvalidOperationException", "System.NotSupportedException", "System.ArgumentException"};
- private static readonly string [] HashCodeExceptions = new string [] {"System.ArgumentException"};
+ private static readonly string [][] GetterExceptions = new string [][] {
+ new string [] { "System", "InvalidOperationException" },
+ new string [] { "System", "NotSupportedException"}
+ };
+
+ private static readonly string [][] IndexerExceptions = new string [][] {
+ new string [] { "System", "InvalidOperationException" },
+ new string [] { "System", "NotSupportedException" },
+ new string [] { "System", "ArgumentException" },
+ new string [] { "System.Collections.Generic", "KeyNotFoundException" }
+ };
+
+ private static readonly string [][] EventExceptions = new string [][] {
+ new string [] { "System", "InvalidOperationException" },
+ new string [] { "System", "NotSupportedException" },
+ new string [] { "System", "ArgumentException" }
+ };
+
+ private static readonly string [][] HashCodeExceptions = new string [][] {
+ new string [] { "System", "ArgumentException" }
+ };
private static bool CheckAttributes (MethodReference method, MethodAttributes attrs)
{
@@ -180,7 +200,7 @@ namespace Gendarme.Rules.Exceptions {
private MethodSignature equals_signature;
private MethodSignature hashcode_signature;
- private string [] allowedExceptions;
+ private string [][] allowedExceptions;
private Severity severity;
private bool is_equals;
@@ -189,7 +209,7 @@ namespace Gendarme.Rules.Exceptions {
base.Initialize (runner);
Runner.AnalyzeType += delegate (object sender, RunnerEventArgs e) {
- if (e.CurrentType.Implements ("System.Collections.Generic.IEqualityComparer`1")) {
+ if (e.CurrentType.Implements ("System.Collections.Generic", "IEqualityComparer`1")) {
equals_signature = EqualityComparer_Equals;
hashcode_signature = EqualityComparer_GetHashCode;
} else {
@@ -220,7 +240,7 @@ namespace Gendarme.Rules.Exceptions {
return PreflightVirtualMethod (method);
} else if (method.HasParameters && (method.Name == "Dispose")) {
IList<ParameterDefinition> pdc = method.Parameters;
- if ((pdc.Count == 1) && (pdc [0].ParameterType.FullName == "System.Boolean"))
+ if ((pdc.Count == 1) && pdc [0].ParameterType.IsNamed ("System", "Boolean"))
return "Dispose (bool)";
} else if (MethodSignatures.TryParse.Matches (method)) {
return "TryParse";
@@ -269,7 +289,7 @@ namespace Gendarme.Rules.Exceptions {
} else if (MethodSignatures.Finalize.Matches (method)) {
return "Finalizers";
} else if (MethodSignatures.Dispose.Matches (method) || MethodSignatures.DisposeExplicit.Matches (method)) {
- if (method.DeclaringType.Implements ("System.IDisposable"))
+ if (method.DeclaringType.Implements ("System", "IDisposable"))
return "IDisposable.Dispose";
} else if (equals_signature != null && equals_signature.Matches (method)) {
return "IEqualityComparer<T>.Equals";
@@ -288,14 +308,16 @@ namespace Gendarme.Rules.Exceptions {
{
switch (ins.OpCode.Code) {
case Code.Castclass:
- return string.Format (" (cast to {0})", ((TypeReference) ins.Operand).Name);
+ return String.Format (CultureInfo.InvariantCulture, " (cast to {0})",
+ ((TypeReference) ins.Operand).Name);
case Code.Throw: // this one is obvious
return string.Empty;
case Code.Unbox:
case Code.Unbox_Any:
- return string.Format (" (unbox from {0})", ((TypeReference) ins.Operand).Name);
+ return String.Format (CultureInfo.InvariantCulture, " (unbox from {0})",
+ ((TypeReference) ins.Operand).Name);
case Code.Ckfinite:
return " (the expression will throw if the value is a NAN or an infinity)";
@@ -360,7 +382,7 @@ namespace Gendarme.Rules.Exceptions {
if (ins.Previous.Is (Code.Newobj)) {
MethodReference mr = (MethodReference) ins.Previous.Operand;
TypeReference tr = mr.DeclaringType;
- if (tr.FullName == "System.NotImplementedException" || tr.Inherits ("System.NotImplementedException"))
+ if (tr.IsNamed ("System", "NotImplementedException") || tr.Inherits ("System", "NotImplementedException"))
continue;
}
@@ -372,13 +394,22 @@ namespace Gendarme.Rules.Exceptions {
// If the throw does not one of the enumerated exceptions (or
// a subclass) then we have a problem.
else if (ins.Previous.Is (Code.Newobj)) {
- MethodReference mr = (MethodReference) ins.Previous.Operand;
- string name = mr.DeclaringType.FullName;
- if (Array.IndexOf (allowedExceptions, name) < 0) {
- if (!allowedExceptions.Any (e => mr.DeclaringType.Inherits (e))) {
- Report (method, ins, methodLabel);
+ TypeReference type = (ins.Previous.Operand as MethodReference ).DeclaringType;
+ bool allowed = false;
+ foreach (string[] entry in allowedExceptions) {
+ if (type.IsNamed (entry [0], entry [1]))
+ allowed = true;
+ }
+ if (!allowed) {
+ foreach (string [] entry in allowedExceptions) {
+ if (type.Inherits (entry [0], entry [1])) {
+ allowed = true;
+ break;
+ }
}
}
+ if (!allowed)
+ Report (method, ins, methodLabel);
}
}
}
@@ -388,10 +419,21 @@ namespace Gendarme.Rules.Exceptions {
private void Report (MethodDefinition method, Instruction ins, string methodLabel)
{
string mesg;
- if (allowedExceptions == null)
- mesg = string.Format ("{0} should not throw{1}.", methodLabel, ExplainThrow (ins));
- else
- mesg = string.Format ("{0} should only throw {1} or a subclass{2}.", methodLabel, string.Join (", ", allowedExceptions), ExplainThrow (ins));
+ if (allowedExceptions == null) {
+ mesg = String.Format (CultureInfo.InvariantCulture,
+ "{0} should not throw{1}.", methodLabel, ExplainThrow (ins));
+ } else {
+ StringBuilder sb = new StringBuilder ();
+ sb.Append (methodLabel).Append (" should only throw ");
+ for (int i = 0; i < allowedExceptions.Length; i++) {
+ string [] entry = allowedExceptions [i];
+ sb.Append (entry [0]).Append ('.').Append (entry [1]);
+ if (i < allowedExceptions.Length - 1)
+ sb.Append (", ");
+ }
+ sb.Append (" or a subclass").Append (ExplainThrow (ins)).Append ('.');
+ mesg = sb.ToString ();
+ }
Log.WriteLine (this, "{0:X4}: {1}", ins.Offset, mesg);
Runner.Report (method, ins, severity, Confidence.High, mesg);
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowReservedExceptionRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowReservedExceptionRule.cs
index c69fc7c..a7d989b 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowReservedExceptionRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/DoNotThrowReservedExceptionRule.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using Mono.Cecil;
using Gendarme.Framework;
namespace Gendarme.Rules.Exceptions {
@@ -65,16 +66,20 @@ namespace Gendarme.Rules.Exceptions {
[FxCopCompatibility ("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes")]
public class DoNotThrowReservedExceptionRule : NewExceptionsRule {
- static string [] ReservedExceptions = {
- "System.ExecutionEngineException",
- "System.IndexOutOfRangeException",
- "System.NullReferenceException",
- "System.OutOfMemoryException"
- };
-
- protected override string [] GetExceptionTypes ()
+ protected override bool CheckException (TypeReference type)
{
- return ReservedExceptions;
+ if (type == null)
+ return false;
+
+ switch (type.Name) {
+ case "ExecutionEngineException":
+ case "IndexOutOfRangeException":
+ case "NullReferenceException":
+ case "OutOfMemoryException":
+ return (type.Namespace == "System");
+ default:
+ return false;
+ }
}
protected override Severity Severity {
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/DontSwallowErrorsCatchingNonspecificExceptionsRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/DontSwallowErrorsCatchingNonspecificExceptionsRule.cs
index fce1269..903f5a6 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/DontSwallowErrorsCatchingNonspecificExceptionsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/DontSwallowErrorsCatchingNonspecificExceptionsRule.cs
@@ -91,16 +91,13 @@ namespace Gendarme.Rules.Exceptions {
//}
//catch {
//}
- private static bool IsForbiddenTypeInCatches (string typeName)
+ private static bool IsForbiddenTypeInCatches (TypeReference type)
{
- switch (typeName) {
- case "System.Exception":
- case "System.SystemException":
- case "System.Object":
- return true;
- default:
+ if (type.Namespace != "System")
return false;
- }
+
+ string name = type.Name;
+ return ((name == "Exception") || (name == "SystemException") || (name == "Object"));
}
// will always return exceptionHandler.HandlerStart if there's no 'rethrow' inside the method
@@ -127,8 +124,7 @@ namespace Gendarme.Rules.Exceptions {
bool has_rethrow = OpCodeEngine.GetBitmask (method).Get (Code.Rethrow);
foreach (ExceptionHandler exceptionHandler in body.ExceptionHandlers) {
if (exceptionHandler.HandlerType == ExceptionHandlerType.Catch) {
- string catchTypeName = exceptionHandler.CatchType.FullName;
- if (IsForbiddenTypeInCatches (catchTypeName)) {
+ if (IsForbiddenTypeInCatches (exceptionHandler.CatchType)) {
// quickly find 'throw_instruction' if there's no 'rethrow' used in this method
Instruction throw_instruction = has_rethrow ?
ThrowsGeneralException (exceptionHandler) :
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/ExceptionShouldBeVisibleRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/ExceptionShouldBeVisibleRule.cs
index 284e5e7..1cce0b2 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/ExceptionShouldBeVisibleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/ExceptionShouldBeVisibleRule.cs
@@ -74,18 +74,16 @@ namespace Gendarme.Rules.Exceptions {
public RuleResult CheckType (TypeDefinition type)
{
- if (type.BaseType == null)
+ TypeReference btype = type.BaseType;
+ if (btype == null)
return RuleResult.DoesNotApply;
// rule apply only to type that inherits from the base exceptions
- switch (type.BaseType.FullName) {
- case "System.Exception":
- case "System.SystemException":
- case "System.ApplicationException":
- break;
- default:
+ if (btype.Namespace != "System")
+ return RuleResult.DoesNotApply;
+ string name = btype.Name;
+ if ((name != "Exception") && (name != "SystemException") && (name != "ApplicationException"))
return RuleResult.DoesNotApply;
- }
if (type.IsAbstract || type.IsVisible ())
return RuleResult.Success;
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Gendarme.Rules.Exceptions.csproj b/gendarme/rules/Gendarme.Rules.Exceptions/Gendarme.Rules.Exceptions.csproj
index 179882b..db66ede 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Gendarme.Rules.Exceptions.csproj
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Gendarme.Rules.Exceptions.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Exceptions</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Exceptions/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Exceptions.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Exceptions.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -96,14 +99,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/InstantiateArgumentExceptionCorrectlyRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/InstantiateArgumentExceptionCorrectlyRule.cs
index b9b5dab..b085345 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/InstantiateArgumentExceptionCorrectlyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/InstantiateArgumentExceptionCorrectlyRule.cs
@@ -130,7 +130,7 @@ namespace Gendarme.Rules.Exceptions {
return;
// OK public ArgumentException (string message, Exception innerException)
- if (pdc [1].ParameterType.FullName != "System.String")
+ if (!pdc [1].ParameterType.IsNamed ("System", "String"))
return;
// CHECK public ArgumentException (string message, string paramName)
@@ -153,12 +153,17 @@ namespace Gendarme.Rules.Exceptions {
// OK protected ArgumentNullException (SerializationInfo info, StreamingContext context)
// OK public ArgumentNullException (string message, Exception innerException)
IList<ParameterDefinition> pdc = constructor.Parameters;
- if ((pdc.Count == 2) && (pdc [1].ParameterType.FullName != "System.String"))
+ if ((pdc.Count == 2) && !pdc [1].ParameterType.IsNamed ("System", "String"))
return;
// CHECK public ArgumentNullException (string paramName)
// CHECK public ArgumentNullException (string paramName, string message)
Instruction call = ins.TraceBack (method, 0);
+
+ // call will be null if there is branching logic in the selection of a message - just fon't check in this case
+ if (call == null)
+ return;
+
string name = call.Operand as string;
if (MatchesAnyParameter (method, name))
return;
@@ -187,18 +192,19 @@ namespace Gendarme.Rules.Exceptions {
continue;
MethodReference ctor = (current.Operand as MethodReference);
+ TypeReference type = ctor.DeclaringType;
+ if (type.Namespace != "System")
+ continue;
- switch (ctor.DeclaringType.FullName) {
- case "System.ArgumentException":
+ switch (type.Name) {
+ case "ArgumentException":
CheckArgumentException (ctor, current, method);
break;
- case "System.ArgumentNullException":
- case "System.ArgumentOutOfRangeException":
- case "System.DuplicateWaitObjectException":
+ case "ArgumentNullException":
+ case "ArgumentOutOfRangeException":
+ case "DuplicateWaitObjectException":
CheckOtherExceptions (ctor, current, method);
break;
- default:
- continue;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.am b/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.am
index 071342b..30c2b74 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.am
@@ -4,6 +4,7 @@ rules_sources = \
AvoidArgumentExceptionDefaultConstructorRule.cs \
AvoidThrowingBasicExceptionsRule.cs \
DoNotDestroyStackTraceRule.cs \
+ DoNotThrowInNonCatchClausesRule.cs \
DoNotThrowInUnexpectedLocationRule.cs \
DoNotThrowReservedExceptionRule.cs \
DontSwallowErrorsCatchingNonspecificExceptionsRule.cs \
@@ -19,6 +20,7 @@ rules_sources = \
tests_sources = \
AvoidArgumentExceptionDefaultConstructorTest.cs \
AvoidThrowingBasicExceptionsTest.cs \
+ DoNotThrowInNonCatchClausesTest.cs \
DoNotThrowInUnexpectedLocationTest.cs \
DontDestroyStackTraceTest.cs \
DontSwallowErrorsCatchingNonspecificExceptionsTest.cs \
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.in b/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.in
index 707eb4c..8872432 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -254,6 +330,7 @@ rules_sources = \
AvoidArgumentExceptionDefaultConstructorRule.cs \
AvoidThrowingBasicExceptionsRule.cs \
DoNotDestroyStackTraceRule.cs \
+ DoNotThrowInNonCatchClausesRule.cs \
DoNotThrowInUnexpectedLocationRule.cs \
DoNotThrowReservedExceptionRule.cs \
DontSwallowErrorsCatchingNonspecificExceptionsRule.cs \
@@ -269,6 +346,7 @@ rules_sources = \
tests_sources = \
AvoidArgumentExceptionDefaultConstructorTest.cs \
AvoidThrowingBasicExceptionsTest.cs \
+ DoNotThrowInNonCatchClausesTest.cs \
DoNotThrowInUnexpectedLocationTest.cs \
DontDestroyStackTraceTest.cs \
DontSwallowErrorsCatchingNonspecificExceptionsTest.cs \
@@ -285,14 +363,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -302,6 +380,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -310,42 +389,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -354,7 +454,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -371,7 +471,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -379,7 +479,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -405,16 +505,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -422,14 +522,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -441,7 +541,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -450,29 +550,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -493,29 +598,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -538,10 +655,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -549,6 +671,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -568,6 +691,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -577,18 +702,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -610,8 +745,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -631,11 +766,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -644,7 +779,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -664,6 +799,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/MissingExceptionConstructorsRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/MissingExceptionConstructorsRule.cs
index 32663e5..d4d86af 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/MissingExceptionConstructorsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/MissingExceptionConstructorsRule.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -86,9 +87,6 @@ namespace Gendarme.Rules.Exceptions {
[FxCopCompatibility ("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")]
public class MissingExceptionConstructorsRule : Rule, ITypeRule {
- // non-localizable
- private const string Exception = "System.Exception";
-
// localizable
private const string MissingConstructor = "Exception is missing '{0} {1}{2}' constructor.";
@@ -97,15 +95,15 @@ namespace Gendarme.Rules.Exceptions {
if (!ctor.IsPublic)
return false;
- return (ctor.Parameters [0].ParameterType.FullName == "System.String");
+ return (ctor.Parameters [0].ParameterType.IsNamed ("System", "String"));
}
private static bool CheckForInnerExceptionConstructor (IMethodSignature ctor)
{
IList<ParameterDefinition> pdc = ctor.Parameters;
- string first = pdc [0].ParameterType.FullName;
- string last = pdc [pdc.Count - 1].ParameterType.FullName;
- return ((first == "System.String") && (last == Exception));
+ if (!pdc [0].ParameterType.IsNamed ("System", "String"))
+ return false;
+ return pdc [pdc.Count - 1].ParameterType.IsNamed ("System", "Exception");
}
private static bool CheckForSerializationConstructor (MethodDefinition ctor)
@@ -119,7 +117,7 @@ namespace Gendarme.Rules.Exceptions {
public RuleResult CheckType (TypeDefinition type)
{
// rule apply only to type that inherits from System.Exception
- if (!type.Inherits (Exception))
+ if (!type.Inherits ("System", "Exception"))
return RuleResult.DoesNotApply;
// rule applies, only Success or Failure from the point on
@@ -166,21 +164,24 @@ namespace Gendarme.Rules.Exceptions {
}
if (!empty_ctor) {
- string s = String.Format (MissingConstructor, "public", type.Name, "()");
+ string s = String.Format (CultureInfo.InvariantCulture, MissingConstructor, "public",
+ type.Name, "()");
Runner.Report (type, Severity.High, Confidence.Total, s);
}
if (!string_ctor) {
- string s = String.Format (MissingConstructor, "public", type.Name, "(string message)");
+ string s = String.Format (CultureInfo.InvariantCulture, MissingConstructor, "public",
+ type.Name, "(string message)");
Runner.Report (type, Severity.High, Confidence.Total, s);
}
if (!inner_exception_ctor) {
- string s = String.Format (MissingConstructor, "public", type.Name,
- "(string message, Exception innerException)");
+ string s = String.Format (CultureInfo.InvariantCulture, MissingConstructor, "public",
+ type.Name, "(string message, Exception innerException)");
Runner.Report (type, Severity.High, Confidence.Total, s);
}
if (!serialization_ctor) {
- string s = String.Format (MissingConstructor, (type.IsSealed) ? "private" : "protected",
- type.Name, "(SerializationInfo info, StreamingContext context)");
+ string s = String.Format (CultureInfo.InvariantCulture, MissingConstructor,
+ (type.IsSealed) ? "private" : "protected", type.Name,
+ "(SerializationInfo info, StreamingContext context)");
Runner.Report (type, Severity.High, Confidence.Total, s);
}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/NewExceptionRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/NewExceptionRule.cs
index f2d3f75..22605f2 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/NewExceptionRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/NewExceptionRule.cs
@@ -46,12 +46,14 @@ namespace Gendarme.Rules.Exceptions {
// if the module does not reference any of these types, don't analyze it
// (unless this is corlib itself since they're defined in it :-)
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasAnyTypeReference (GetExceptionTypes ());
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return CheckException (tr);
+ }));
};
}
- abstract protected string [] GetExceptionTypes ();
+ abstract protected bool CheckException (TypeReference type);
abstract protected Severity Severity { get; }
public RuleResult CheckMethod (MethodDefinition method)
@@ -69,18 +71,12 @@ namespace Gendarme.Rules.Exceptions {
if (ins.OpCode.Code != Code.Newobj)
continue;
- // obtain a reference to constructor
- MethodReference ctor = (ins.Operand as MethodReference);
+ // obtain a reference to the constructor's type
+ TypeReference ctype = (ins.Operand as MethodReference).DeclaringType;
- // what type is it?
- string name = ctor.DeclaringType.FullName;
- foreach (string exception_type in GetExceptionTypes ()) {
- if (name == exception_type) {
- // report a defect including the offending exception type found
- Runner.Report (method, ins, Severity, Confidence.High, name);
- break;
- }
- }
+ // report a defect if an offending exception type is found
+ if (CheckException (ctype))
+ Runner.Report (method, ins, Severity, Confidence.High, ctype.Name);
}
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Test/DoNotThrowInNonCatchClausesTest.cs b/gendarme/rules/Gendarme.Rules.Exceptions/Test/DoNotThrowInNonCatchClausesTest.cs
new file mode 100644
index 0000000..9bb6ddd
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Test/DoNotThrowInNonCatchClausesTest.cs
@@ -0,0 +1,136 @@
+//
+// Unit Tests for DoNotThrowInNonCatchClausesRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Gendarme.Rules.Exceptions;
+
+using NUnit.Framework;
+using Test.Rules.Definitions;
+using Test.Rules.Fixtures;
+
+namespace Test.Rules.Exceptions {
+
+ [TestFixture]
+ public class DoNotThrowInNonCatchClausesTest : MethodRuleTestFixture<DoNotThrowInNonCatchClausesRule> {
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ AssertRuleDoesNotApply (SimpleMethods.ExternalMethod);
+ AssertRuleDoesNotApply (SimpleMethods.EmptyMethod);
+ }
+
+ void ThrowInTry ()
+ {
+ try {
+ throw new NotImplementedException ("no luck");
+ }
+ finally {
+ Console.WriteLine ();
+ }
+ }
+
+ void ThrowInCatch ()
+ {
+ try {
+ Console.WriteLine ();
+ }
+ catch (Exception e) {
+ throw new NotImplementedException ("no luck", e);
+ }
+ }
+
+ // copied from DontDestroyStackTraceTest since CSC compiles the HandlerEnd as past the method offset
+ void ThrowCatchThrowNew ()
+ {
+ try {
+ throw new NotImplementedException ();
+ }
+ catch (Exception) {
+ throw new NotImplementedException ();
+ }
+ }
+
+ [Test]
+ public void Success ()
+ {
+ AssertRuleSuccess<DoNotThrowInNonCatchClausesTest> ("ThrowInTry");
+ AssertRuleSuccess<DoNotThrowInNonCatchClausesTest> ("ThrowInCatch");
+ AssertRuleSuccess<DoNotThrowInNonCatchClausesTest> ("ThrowCatchThrowNew");
+ }
+
+ void RethrowInCatch ()
+ {
+ try {
+ Console.WriteLine ();
+ }
+ catch (Exception) {
+ throw; // rethrow in IL which is seen only in catch clauses
+ }
+ }
+
+ [Test]
+ public void Rethrow ()
+ {
+ AssertRuleDoesNotApply<DoNotThrowInNonCatchClausesTest> ("RethrowInCatch");
+ }
+
+ void ThrowInFinally ()
+ {
+ try {
+ Console.WriteLine ();
+ }
+ finally {
+ throw new NotImplementedException ("no luck");
+ }
+ }
+
+ void ThrowInFinallyToo ()
+ {
+ try {
+ throw new NotImplementedException ("no luck");
+ }
+ catch (Exception e) {
+ throw new NotImplementedException ("no more luck", e);
+ }
+ finally {
+ if (GetType ().IsSealed)
+ throw new NotImplementedException ("never any luck");
+ else
+ throw new NotSupportedException ("stop playing cards");
+ }
+ }
+
+ [Test]
+ public void Failure ()
+ {
+ AssertRuleFailure<DoNotThrowInNonCatchClausesTest> ("ThrowInFinally", 1);
+ AssertRuleFailure<DoNotThrowInNonCatchClausesTest> ("ThrowInFinallyToo", 2);
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Test/InstantiateArgumentExceptionCorrectlyTest.cs b/gendarme/rules/Gendarme.Rules.Exceptions/Test/InstantiateArgumentExceptionCorrectlyTest.cs
index 8727b8b..d53501d 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Test/InstantiateArgumentExceptionCorrectlyTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Test/InstantiateArgumentExceptionCorrectlyTest.cs
@@ -777,5 +777,49 @@ namespace Test.Rules.Exceptions {
AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest> ("get_Item");
AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest> ("set_Item");
}
+
+ public void ArgumentNullExceptionWithBranchInMessageSelectionAndIncorrectParameterName(int parameter)
+ {
+ throw new ArgumentNullException("asdf", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ public void ArgumentOutOfRangeExceptionWithBranchInMessageSelectionAndIncorrectParameterName(int parameter)
+ {
+ throw new ArgumentOutOfRangeException("asdf", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ public void DuplicateWaitObjectExceptionWithBranchInMessageSelectionAndIncorrectParameterName(int parameter)
+ {
+ throw new DuplicateWaitObjectException("asdf", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ public void ArgumentNullExceptionWithBranchInMessageSelectionAndCorrectParameterName(int parameter)
+ {
+ throw new ArgumentNullException("parameter", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ public void ArgumentOutOfRangeExceptionWithBranchInMessageSelectionAndCorrectParameterName(int parameter)
+ {
+ throw new ArgumentOutOfRangeException("parameter", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ public void DuplicateWaitObjectExceptionWithBranchInMessageSelectionAndCorrectParameterName(int parameter)
+ {
+ throw new DuplicateWaitObjectException("parameter", parameter > 0 ? "little parameter " : "big parameter");
+ }
+
+ [Test]
+ public void ArgumentExceptionsWithBranchInMessageSelectionDoesNotThrow()
+ {
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("ArgumentNullExceptionWithBranchInMessageSelectionAndCorrectParameterName");
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("ArgumentOutOfRangeExceptionWithBranchInMessageSelectionAndCorrectParameterName");
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("DuplicateWaitObjectExceptionWithBranchInMessageSelectionAndCorrectParameterName");
+
+ //Ideally the rules below would be AssertRuleFailure - but better to incorrectly pass than to throw an unhandled exception
+ // If the handling code is changed a better resolution here may be possible
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("ArgumentNullExceptionWithBranchInMessageSelectionAndIncorrectParameterName");
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("ArgumentOutOfRangeExceptionWithBranchInMessageSelectionAndIncorrectParameterName");
+ AssertRuleSuccess<InstantiateArgumentExceptionCorrectlyTest>("DuplicateWaitObjectExceptionWithBranchInMessageSelectionAndIncorrectParameterName");
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile.in
index 05d7e15..8a0c6e1 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Exceptions/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/Test/Tests.Rules.Exceptions.csproj b/gendarme/rules/Gendarme.Rules.Exceptions/Test/Tests.Rules.Exceptions.csproj
index d37db89..2e31f25 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/Test/Tests.Rules.Exceptions.csproj
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/Test/Tests.Rules.Exceptions.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Exceptions</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Exceptions/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -95,14 +98,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Exceptions/UseObjectDisposedExceptionRule.cs b/gendarme/rules/Gendarme.Rules.Exceptions/UseObjectDisposedExceptionRule.cs
index fbb1f0f..8636091 100644
--- a/gendarme/rules/Gendarme.Rules.Exceptions/UseObjectDisposedExceptionRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Exceptions/UseObjectDisposedExceptionRule.cs
@@ -150,7 +150,9 @@ namespace Gendarme.Rules.Exceptions {
private void CheckBody (MethodDefinition method)
{
- string fullname = method.DeclaringType.FullName;
+ TypeReference type = method.DeclaringType;
+ string nspace = type.Namespace;
+ string name = type.Name;
foreach (Instruction ins in method.Body.Instructions) {
switch (ins.OpCode.Code) {
case Code.Call:
@@ -160,7 +162,7 @@ namespace Gendarme.Rules.Exceptions {
MethodDefinition callee = target.Resolve ();
if (callee != null) {
if (!callee.IsPublic && !callee.IsStatic) {
- if (callee.DeclaringType.FullName == fullname) {
+ if (callee.DeclaringType.IsNamed (nspace, name)) {
Instruction instance = ins.TraceBack (method);
if (instance != null && instance.OpCode.Code == Code.Ldarg_0) {
Log.WriteLine (this, "found non-public this call at {0:X4}", ins.Offset);
@@ -187,7 +189,7 @@ namespace Gendarme.Rules.Exceptions {
case Code.Ldflda:
if (!field_access_using_this) {
FieldReference field = (FieldReference) ins.Operand;
- if (field.DeclaringType.FullName == fullname) {
+ if (field.DeclaringType.IsNamed (nspace, name)) {
Instruction instance = ins.TraceBack (method);
if (instance != null && instance.OpCode.Code == Code.Ldarg_0) {
Log.WriteLine (this, "found field access at {0:X4}", ins.Offset);
@@ -200,7 +202,7 @@ namespace Gendarme.Rules.Exceptions {
case Code.Newobj:
if (!creates_exception) {
MethodReference ctor = (MethodReference) ins.Operand;
- if (ctor.DeclaringType.FullName == "System.ObjectDisposedException") {
+ if (ctor.DeclaringType.IsNamed ("System", "ObjectDisposedException")) {
Log.WriteLine (this, "creates exception at {0:X4}", ins.Offset);
creates_exception = true;
}
@@ -220,7 +222,7 @@ namespace Gendarme.Rules.Exceptions {
if (method.IsPublic) {
if (OpCodeEngine.GetBitmask (method).Intersect (CallsAndFields)) {
- if (method.DeclaringType.Implements ("System.IDisposable")) {
+ if (method.DeclaringType.Implements ("System", "IDisposable")) {
if (AllowedToThrow (method)) {
needs = true;
}
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/DefectsMustBeReportedRule.cs b/gendarme/rules/Gendarme.Rules.Gendarme/DefectsMustBeReportedRule.cs
index ab02b90..9376fc6 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/DefectsMustBeReportedRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/DefectsMustBeReportedRule.cs
@@ -75,11 +75,11 @@ namespace Gendarme.Rules.Gendarme {
public class DefectsMustBeReportedRule : GendarmeRule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
{
- if (type.IsAbstract || !type.Implements ("Gendarme.Framework.IRule") || !type.HasMethods)
+ if (type.IsAbstract || !type.HasMethods || !type.Implements ("Gendarme.Framework", "IRule"))
return RuleResult.DoesNotApply;
foreach (MethodDefinition method in type.Methods) {
- if (!method.HasBody || !OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)) || method.IsConstructor)
+ if (method.IsConstructor || !method.HasBody || !OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
continue;
foreach (Instruction instruction in method.Body.Instructions) {
@@ -87,9 +87,9 @@ namespace Gendarme.Rules.Gendarme {
continue;
MethodReference m = (instruction.Operand as MethodReference);
- if (m == null || m.DeclaringType.FullName != "Gendarme.Framework.IRunner")
+ if (m == null || (m.Name != "Report"))
continue;
- if (m.Name == "Report")
+ if (m.DeclaringType.IsNamed ("Gendarme.Framework", "IRunner"))
return RuleResult.Success;
}
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/DoNotThrowExceptionRule.cs b/gendarme/rules/Gendarme.Rules.Gendarme/DoNotThrowExceptionRule.cs
index 271e793..78ae7a7 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/DoNotThrowExceptionRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/DoNotThrowExceptionRule.cs
@@ -74,7 +74,7 @@ namespace Gendarme.Rules.Gendarme {
Runner.AnalyzeType += (object sender, RunnerEventArgs e) =>
{
- Active = e.CurrentType.Implements ("Gendarme.Framework.IRule");
+ Active = e.CurrentType.Implements ("Gendarme.Framework", "IRule");
};
}
@@ -89,7 +89,7 @@ namespace Gendarme.Rules.Gendarme {
if (method.IsSetter && method.IsPublic) {
PropertyDefinition property = method.GetPropertyByAccessor ();
- if (property != null && property.HasCustomAttributes && property.HasAttribute ("System.ComponentModel.DescriptionAttribute"))
+ if (property.HasAttribute ("System.ComponentModel", "DescriptionAttribute"))
return RuleResult.Success;
}
@@ -105,7 +105,7 @@ namespace Gendarme.Rules.Gendarme {
continue;
TypeReference type = m.DeclaringType;
- if (type.FullName != "System.NotImplementedException" && !type.Inherits ("System.NotImplementedException"))
+ if (type.Inherits ("System", "Exception"))
Runner.Report (method, instruction, Severity.Medium, Confidence.High);
}
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/Gendarme.Rules.Gendarme.csproj b/gendarme/rules/Gendarme.Rules.Gendarme/Gendarme.Rules.Gendarme.csproj
index 0201472..77396b1 100755
--- a/gendarme/rules/Gendarme.Rules.Gendarme/Gendarme.Rules.Gendarme.csproj
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/Gendarme.Rules.Gendarme.csproj
@@ -1,73 +1,112 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{619CDBD4-D89E-47E1-9A82-0F194A665D48}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Gendarme.Rules.Gendarme</RootNamespace>
- <AssemblyName>Gendarme.Rules.Gendarme</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\console\bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Gendarme.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\console\bin\Release\</OutputPath>
- <DefineConstants>TRACE;RELEASE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Gendarme.xml</DocumentationFile>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="DefectsMustBeReportedRule.cs" />
- <Compile Include="DoNotThrowExceptionRule.cs" />
- <Compile Include="GendarmeRule.cs" />
- <Compile Include="MissingEngineDependencyRule.cs" />
- <Compile Include="ReviewAttributesOnRulesRule.cs" />
- <Compile Include="UseCorrectSuffixRule.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{619CDBD4-D89E-47E1-9A82-0F194A665D48}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Gendarme.Rules.Gendarme</RootNamespace>
+ <AssemblyName>Gendarme.Rules.Gendarme</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\console\bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Gendarme.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\console\bin\Release\</OutputPath>
+ <DefineConstants>TRACE;RELEASE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Gendarme.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="DefectsMustBeReportedRule.cs" />
+ <Compile Include="DoNotThrowExceptionRule.cs" />
+ <Compile Include="GendarmeRule.cs" />
+ <Compile Include="MissingEngineDependencyRule.cs" />
+ <Compile Include="ReviewAttributesOnRulesRule.cs" />
+ <Compile Include="UseCorrectSuffixRule.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/Makefile.in b/gendarme/rules/Gendarme.Rules.Gendarme/Makefile.in
index a37122b..4b8af7c 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -272,14 +348,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -289,6 +365,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -297,42 +374,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -341,7 +439,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -358,7 +456,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -366,7 +464,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -392,16 +490,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -409,14 +507,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -428,7 +526,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -437,29 +535,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -480,29 +583,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -525,10 +640,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -536,6 +656,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -555,6 +676,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -564,18 +687,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -597,8 +730,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -618,11 +751,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -631,7 +764,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -651,6 +784,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/MissingEngineDependencyRule.cs b/gendarme/rules/Gendarme.Rules.Gendarme/MissingEngineDependencyRule.cs
index 7024d4f..07fb46a 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/MissingEngineDependencyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/MissingEngineDependencyRule.cs
@@ -80,12 +80,14 @@ namespace Gendarme.Rules.Gendarme {
"Gendarme.Framework.Engines.NamespaceEngine"
};
+ private HashSet<string> declaredEngines = new HashSet<string> ();
+
public RuleResult CheckType (TypeDefinition type)
{
if (!type.HasMethods)
return RuleResult.DoesNotApply;
- HashSet<string> declaredEngines = GetEngineDependencyValue (type);
+ GetEngineDependencyValue (type);
foreach (MethodDefinition method in type.Methods) {
if (!method.HasBody || !OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
@@ -95,8 +97,14 @@ namespace Gendarme.Rules.Gendarme {
MethodReference m = (instruction.Operand as MethodReference);
if (m == null)
continue;
- string declaringType = m.DeclaringType.FullName;
- if (!engines.Contains (declaringType) || declaredEngines.Contains(declaringType))
+
+ TypeReference dtype = m.DeclaringType;
+ // short-cut to avoid FullName - will work as long as all Engines comes from the same namespace (otherwise remove it)
+ if (dtype.Namespace != "Gendarme.Framework.Engines")
+ continue;
+
+ string declaringType = dtype.GetFullName ();
+ if (!engines.Contains (declaringType) || declaredEngines.Contains (declaringType))
continue;
Runner.Report (method, instruction, Severity.High, Confidence.High,
"An engine " + declaringType + " is being used without type being subscribed to it with EngineDependency attribute.");
@@ -107,27 +115,28 @@ namespace Gendarme.Rules.Gendarme {
return Runner.CurrentRuleResult;
}
- private HashSet<string> GetEngineDependencyValue (TypeDefinition type)
+ private void GetEngineDependencyValue (TypeDefinition type)
{
- HashSet<string> retval = new HashSet<string> ();
+ declaredEngines.Clear ();
TypeDefinition td = type;
- while (retval.Count < engines.Count) {
+ while (declaredEngines.Count < engines.Count) {
if (td.HasCustomAttributes)
foreach (CustomAttribute attribute in td.CustomAttributes) {
if (!attribute.HasConstructorArguments ||
- attribute.AttributeType.FullName != "Gendarme.Framework.EngineDependencyAttribute")
+ !attribute.AttributeType.IsNamed ("Gendarme.Framework", "EngineDependencyAttribute"))
continue;
- // ToString for both constuctors (Type and String) will return the type name we need
- retval.Add (attribute.ConstructorArguments [0].Value.ToString ());
+
+ object value = attribute.ConstructorArguments [0].Value;
+ MemberReference mr = (value as MemberReference);
+ declaredEngines.Add (mr == null ? value.ToString () : mr.GetFullName ());
}
if (td.BaseType == null)
break;
- TypeDefinition baseType = td.BaseType.Resolve();
+ TypeDefinition baseType = td.BaseType.Resolve ();
if (baseType == null)
break;
td = baseType;
}
- return retval;
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/ReviewAttributesOnRulesRule.cs b/gendarme/rules/Gendarme.Rules.Gendarme/ReviewAttributesOnRulesRule.cs
index 7bb8b35..3a15245 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/ReviewAttributesOnRulesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/ReviewAttributesOnRulesRule.cs
@@ -122,10 +122,14 @@ namespace Gendarme.Rules.Gendarme {
while (!foundSolution || !foundProblem) {
if (td.HasCustomAttributes)
foreach (CustomAttribute attribute in td.CustomAttributes) {
- var attributeTypeName = attribute.AttributeType.FullName;
- if (attributeTypeName == "Gendarme.Framework.SolutionAttribute")
+ TypeReference atype = attribute.AttributeType;
+ if (atype.Namespace != "Gendarme.Framework")
+ continue;
+
+ string name = atype.Name;
+ if (name == "SolutionAttribute")
foundSolution = true;
- if (attributeTypeName == "Gendarme.Framework.ProblemAttribute")
+ else if (name == "ProblemAttribute")
foundProblem = true;
}
@@ -149,19 +153,19 @@ namespace Gendarme.Rules.Gendarme {
return;
foreach (CustomAttribute attribute in provider.CustomAttributes) {
- var attributeTypeName = attribute.AttributeType.FullName;
+ var attributeTypeName = attribute.AttributeType.GetFullName ();
Action<CustomAttribute, ICustomAttributeProvider> f;
- if (attributes.TryGetValue(attributeTypeName, out f))
+ if (attributes.TryGetValue (attributeTypeName, out f))
f (attribute, provider);
}
}
private bool IsRule (TypeReference type)
{
- var typeName = type.FullName;
+ var typeName = type.GetFullName ();
bool result;
if (!typeIsRule.TryGetValue (typeName, out result)) {
- result = type.Implements ("Gendarme.Framework.IRule");
+ result = type.Implements ("Gendarme.Framework", "IRule");
typeIsRule [typeName] = result;
}
return result;
@@ -182,7 +186,7 @@ namespace Gendarme.Rules.Gendarme {
// check if second argument has correct format
if (!attribute.HasConstructorArguments)
return;
- var attributeTypeName = attribute.AttributeType.FullName;
+ var attributeTypeName = attribute.AttributeType.GetFullName ();
var argumentValue = attribute.ConstructorArguments [1].Value.ToString ();
var length = argumentValue.Length;
if (!((length == 6 || (length > 8 && argumentValue [6] == ':')) &&
@@ -199,7 +203,7 @@ namespace Gendarme.Rules.Gendarme {
private void CheckEngineDependencyAttribute (CustomAttribute attribute, ICustomAttributeProvider provider)
{
TypeDefinition td = (provider as TypeDefinition);
- if (td == null || !(IsRule (td) || td.Implements ("Gendarme.Framework.IRunner")))
+ if (td == null || !(IsRule (td) || td.Implements ("Gendarme.Framework", "IRunner")))
Runner.Report (td, Severity.Medium, Confidence.High, "[EngineDependency] can only be used on rules and runners");
CheckIfStringArgumentsAreNotNullOrEmpty (attribute, provider);
@@ -209,9 +213,9 @@ namespace Gendarme.Rules.Gendarme {
var argument = attribute.ConstructorArguments [0];
// if possible, check if argument type implements IEngine
- if (argument.Type.FullName == "System.Type") {
+ if (argument.Type.IsNamed ("System", "Type")) {
TypeReference tr = (argument.Value as TypeReference);
- if (tr == null || !tr.Inherits ("Gendarme.Framework.Engine")) // IEngine does not exist yet
+ if (tr == null || !tr.Inherits ("Gendarme.Framework", "Engine")) // IEngine does not exist yet
Runner.Report (provider, Severity.Medium, Confidence.High,
"EngineDependency attribute argument should implement IEngine interface");
@@ -229,7 +233,7 @@ namespace Gendarme.Rules.Gendarme {
TypeDefinition td = (provider as TypeDefinition);
if (td == null || !IsRule (td))
Runner.Report (td, Severity.Medium, Confidence.High,
- attribute.AttributeType.FullName + " can be used on rules only");
+ attribute.AttributeType.GetFullName () + " can be used on rules only");
}
private void CheckIfAttributeUsedOnRulesProperty (ICustomAttribute attribute, ICustomAttributeProvider provider)
@@ -238,7 +242,7 @@ namespace Gendarme.Rules.Gendarme {
if (property == null || !IsRule (property.DeclaringType) ||
!property.GetMethod.IsPublic || !property.SetMethod.IsPublic)
Runner.Report (provider, Severity.High, Confidence.High,
- attribute.AttributeType.FullName + " should be used only on rules' public properties");
+ attribute.AttributeType.GetFullName () + " should be used only on rules' public properties");
}
// returns true when all arguments are fine, false otherwise
@@ -247,11 +251,11 @@ namespace Gendarme.Rules.Gendarme {
if (!attribute.HasConstructorArguments)
return true;
foreach (CustomAttributeArgument argument in attribute.ConstructorArguments) {
- if (argument.Type.FullName != "System.String")
+ if (!argument.Type.IsNamed ("System", "String"))
continue;
if (String.IsNullOrEmpty ((string) argument.Value)) {
Runner.Report (provider, Severity.Medium, Confidence.High,
- attribute.AttributeType.FullName + " argument cannot be null or empty");
+ attribute.AttributeType.GetFullName () + " argument cannot be null or empty");
return false;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile.in
index 0e7c1e0..2814832 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Gendarme/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/Test/Tests.Rules.Gendarme.csproj b/gendarme/rules/Gendarme.Rules.Gendarme/Test/Tests.Rules.Gendarme.csproj
index fd9873f..877d2b7 100755
--- a/gendarme/rules/Gendarme.Rules.Gendarme/Test/Tests.Rules.Gendarme.csproj
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/Test/Tests.Rules.Gendarme.csproj
@@ -1,79 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{C329FF89-4C07-4D72-AF5B-70B10670CB36}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Tests.Rules.Gendarme</RootNamespace>
- <AssemblyName>Tests.Rules.Gendarme</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\..\..\cecil\Test\libs\nunit-2.4.8\nunit.framework.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="DefectsMustBeReportedTest.cs" />
- <Compile Include="DoNotThrowExceptionTest.cs" />
- <Compile Include="MissingEngineDependencyTest.cs" />
- <Compile Include="ReviewAttributesOnRulesTest.cs" />
- <Compile Include="UseCorrectSuffixTest.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Test.Rules\Test.Rules.csproj">
- <Project>{069148AF-86AB-4EE3-BFB9-429AE722461F}</Project>
- <Name>Test.Rules</Name>
- </ProjectReference>
- <ProjectReference Include="..\Gendarme.Rules.Gendarme.csproj">
- <Project>{619CDBD4-D89E-47E1-9A82-0F194A665D48}</Project>
- <Name>Gendarme.Rules.Gendarme</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{C329FF89-4C07-4D72-AF5B-70B10670CB36}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Tests.Rules.Gendarme</RootNamespace>
+ <AssemblyName>Tests.Rules.Gendarme</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\cecil\Test\libs\nunit-2.4.8\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="DefectsMustBeReportedTest.cs" />
+ <Compile Include="DoNotThrowExceptionTest.cs" />
+ <Compile Include="MissingEngineDependencyTest.cs" />
+ <Compile Include="ReviewAttributesOnRulesTest.cs" />
+ <Compile Include="UseCorrectSuffixTest.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Test.Rules\Test.Rules.csproj">
+ <Project>{069148AF-86AB-4EE3-BFB9-429AE722461F}</Project>
+ <Name>Test.Rules</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Gendarme.Rules.Gendarme.csproj">
+ <Project>{619CDBD4-D89E-47E1-9A82-0F194A665D48}</Project>
+ <Name>Gendarme.Rules.Gendarme</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Gendarme/UseCorrectSuffixRule.cs b/gendarme/rules/Gendarme.Rules.Gendarme/UseCorrectSuffixRule.cs
index 18da8c3..5c4bf7d 100644
--- a/gendarme/rules/Gendarme.Rules.Gendarme/UseCorrectSuffixRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Gendarme/UseCorrectSuffixRule.cs
@@ -71,7 +71,7 @@ namespace Gendarme.Rules.Gendarme {
public RuleResult CheckType (TypeDefinition type)
{
bool endsWithRule = type.Name.EndsWith ("Rule", StringComparison.Ordinal);
- bool implementsIRule = type.Implements ("Gendarme.Framework.IRule");
+ bool implementsIRule = type.Implements ("Gendarme.Framework", "IRule");
if (implementsIRule && !endsWithRule)
Runner.Report (type, Severity.Medium, Confidence.High, "Type implements IRule but does not end with the 'Rule'");
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/AvoidUnusedInternalResourceRule.cs b/gendarme/rules/Gendarme.Rules.Globalization/AvoidUnusedInternalResourceRule.cs
index 937be0b..b29cbdc 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/AvoidUnusedInternalResourceRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Globalization/AvoidUnusedInternalResourceRule.cs
@@ -44,12 +44,6 @@ namespace Gendarme.Rules.Globalization {
[Solution ("Remove the unused resource or add code to call it.")]
public class AvoidUnusedInternalResourceRule : Rule, IMethodRule {
- private static readonly string [] resXAttributes = {
- "System.CodeDom.Compiler.GeneratedCodeAttribute",
- "System.Diagnostics.DebuggerNonUserCodeAttribute",
- "System.Runtime.CompilerServices.CompilerGeneratedAttribute"
- };
-
static private bool Applicable (MethodDefinition method)
{
// only internal resources
@@ -71,11 +65,14 @@ namespace Gendarme.Rules.Globalization {
if (!typeDefinition.HasCustomAttributes)
return false;
- var attributes = typeDefinition.CustomAttributes;
- if (!resXAttributes.All (a => attributes.ContainsType (a)))
- return false;
+ if (typeDefinition.HasAttribute ("System.CodeDom.Compiler", "GeneratedCodeAttribute"))
+ return true;
+ if (typeDefinition.HasAttribute ("System.Diagnostics", "DebuggerNonUserCodeAttribute"))
+ return true;
+ if (typeDefinition.HasAttribute ("System.Runtime.CompilerServices", "CompilerGeneratedAttribute"))
+ return true;
- return true;
+ return false;
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -167,7 +164,7 @@ namespace Gendarme.Rules.Globalization {
continue;
TypeReference type = mr.DeclaringType;
- if (!(type is ArrayType)) {
+ if (!type.IsArray) {
// if (type.GetElementType ().HasGenericParameters)
// the simpler ^^^ does not work under Mono but works on MS
type = type.Resolve ();
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Gendarme.Rules.Globalization.csproj b/gendarme/rules/Gendarme.Rules.Globalization/Gendarme.Rules.Globalization.csproj
index 55a74d3..f99c3b8 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Gendarme.Rules.Globalization.csproj
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Gendarme.Rules.Globalization.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Globalization</RootNamespace>
<AssemblyName>Gendarme.Rules.Globalization</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -22,6 +42,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Globalization.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -31,6 +52,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Globalization.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -58,6 +80,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Makefile.am b/gendarme/rules/Gendarme.Rules.Globalization/Makefile.am
index 18c47d0..d1c1daa 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Makefile.am
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Makefile.am
@@ -2,6 +2,9 @@ include ../common.make
rules_sources = \
AvoidUnusedInternalResourceRule.cs \
+ PreferIFormatProviderOverrideRule.cs \
+ PreferOverrideBaseRule.cs \
+ PreferStringComparisonOverrideRule.cs \
SatelliteResourceMismatchRule.cs
EXTRA_TESTS_OPTIONS += -r:System.Drawing -d:DEBUG -resource:Test/Resource.resources -resource:Test/InternalResource.resources \
@@ -50,6 +53,8 @@ EXTRA_TESTS_DEPS = Test/Resource.resources Test/InternalResource.resources Test/
tests_sources = \
AvoidUnusedInternalResourceTest.cs \
+ PreferIFormatProviderOverrideTest.cs \
+ PreferStringComparisonOverrideTest.cs \
SatelliteResourceMismatchTest.cs \
Resource.Designer.cs \
InternalResource.Designer.cs \
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Makefile.in b/gendarme/rules/Gendarme.Rules.Globalization/Makefile.in
index 602fe67..ea98f5f 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -259,6 +335,9 @@ generated_doc = doc/generated/index.xml
tests_build_sources = $(addprefix $(srcdir)/Test/, $(tests_sources))
rules_sources = \
AvoidUnusedInternalResourceRule.cs \
+ PreferIFormatProviderOverrideRule.cs \
+ PreferOverrideBaseRule.cs \
+ PreferStringComparisonOverrideRule.cs \
SatelliteResourceMismatchRule.cs
tests_resource_resx = Test/Resource.resx
@@ -276,6 +355,8 @@ tests_resource_missing_xmlnotresx_fr = Test/Resources/XMLFileNotInResXOnlyInFren
EXTRA_TESTS_DEPS = Test/Resource.resources Test/InternalResource.resources Test/PublicResource.resources Test/Resources/XMLFileNotInResX.xml fr/Test.Rules.Globalization.resources.dll
tests_sources = \
AvoidUnusedInternalResourceTest.cs \
+ PreferIFormatProviderOverrideTest.cs \
+ PreferStringComparisonOverrideTest.cs \
SatelliteResourceMismatchTest.cs \
Resource.Designer.cs \
InternalResource.Designer.cs \
@@ -288,14 +369,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -305,6 +386,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -313,42 +395,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -357,7 +460,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -374,7 +477,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -382,7 +485,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -408,16 +511,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -425,14 +528,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -444,7 +547,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -453,29 +556,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -496,29 +604,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -541,10 +661,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -552,6 +677,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -571,6 +697,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -580,18 +708,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -613,8 +751,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -634,11 +772,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -647,7 +785,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -686,6 +824,7 @@ Test/PublicResource.resources: $(tests_publicresource_resx)
fr/Test.Rules.Globalization.resources.dll: Test/Resource.fr.resources Test/MainResourceMissing.fr.resources $(tests_resource_xmlnotresx_fr) $(tests_resource_missing_xmlnotresx_fr)
mkdir -p fr
al -culture:fr -embed:Test/MainResourceMissing.fr.resources -embed:Test/Resource.fr.resources -embed:$(tests_resource_xmlnotresx_fr) -embed:$(tests_resource_missing_xmlnotresx_fr) -out:fr/Test.Rules.Globalization.resources.dll
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/PreferIFormatProviderOverrideRule.cs b/gendarme/rules/Gendarme.Rules.Globalization/PreferIFormatProviderOverrideRule.cs
new file mode 100644
index 0000000..6a63c4f
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Globalization/PreferIFormatProviderOverrideRule.cs
@@ -0,0 +1,111 @@
+//
+// Gendarme.Rules.Globalization.PreferIFormatProviderOverrideRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Globalization;
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.Globalization {
+
+ /// <summary>
+ /// This rule detects calls to method that could be changed to call an <c>override</c> accepting an
+ /// extra <c>System.IFormatProvider</c> or <c>System.Globalization.CultureInfo</c> parameter (the
+ /// later implements <c>System.IFormatProvider</c>).
+ /// Generally data displayed to the end user should be using
+ /// <c>System.Globalization.CultureInfo.CurrentCulture</c> while other data (e.g. used internally,
+ /// stored in files/databases) should use <c>System.Globalization.CultureInfo.InvariantCulture</c>.
+ /// The rule will ignore the following special methods:
+ /// <list>
+ /// <item><c>System.Activator.CreateInstance</c></item>
+ /// <item><c>System.Resources.ResourceManager.GetObject</c></item>
+ /// <item><c>System.Resources.ResourceManager.GetString</c></item>
+ /// </list>
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public bool Confirm (double amount)
+ /// {
+ /// string msg = String.Format ("Accept payment of {0} ?", amount);
+ /// Transaction.Log ("{0} {1}", DateTime.Now, amount);
+ /// return Prompt (msg);
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// public bool Confirm (double amount)
+ /// {
+ /// string msg = String.Format (CultureInfo.CurrentCulture, "Accept payment of {0} ?", amount);
+ /// Transaction.Log (CultureInfo.InvariantCulture, "{0} {1}", DateTime.Now, amount);
+ /// return Prompt (msg);
+ /// }
+ /// </code>
+ /// </example>
+ [Problem ("A call is made to a method for which an override, accepting an extra IFormatProvider or CultureInfo, is available")]
+ [Solution ("Specify how the string should be compared by adding the right IFormatProvider/CultureInfo value to the call")]
+ [FxCopCompatibility ("Microsoft.Globalization", "CA1304:SpecifyCultureInfo")]
+ [FxCopCompatibility ("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider")]
+ public class PreferIFormatProviderOverrideRule : PreferOverrideBaseRule {
+
+ protected override bool CheckFirstParameter
+ {
+ get { return true; }
+ }
+
+ protected override bool IsPrefered (TypeReference type)
+ {
+ return (type.IsNamed ("System", "IFormatProvider") || type.IsNamed ("System.Globalization", "CultureInfo"));
+ }
+
+ protected override bool IsSpecialCase (MethodReference method)
+ {
+ if ((method == null) || method.IsNamed ("System", "Activator", "CreateInstance"))
+ return true;
+
+ TypeReference type = method.DeclaringType;
+ if (!type.IsNamed ("System.Resources", "ResourceManager"))
+ return false;
+
+ string name = method.Name;
+ return (name == "GetObject" || name == "GetString");
+ }
+
+ protected override void Report (MethodDefinition method, Instruction instruction, MethodReference prefered)
+ {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Consider using the perfered '{0}' override.", prefered.GetFullName ());
+ Runner.Report (method, instruction, Severity.Medium, Confidence.High, msg);
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/PreferOverrideBaseRule.cs b/gendarme/rules/Gendarme.Rules.Globalization/PreferOverrideBaseRule.cs
new file mode 100644
index 0000000..020e0e4
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Globalization/PreferOverrideBaseRule.cs
@@ -0,0 +1,170 @@
+//
+// Gendarme.Rules.Globalization.PreferOverrideBaseRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using Mono.Collections.Generic;
+
+using Gendarme.Framework;
+using Gendarme.Framework.Engines;
+using Gendarme.Framework.Helpers;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.Globalization {
+
+ [EngineDependency (typeof (OpCodeEngine))]
+ public abstract class PreferOverrideBaseRule : Rule, IMethodRule {
+
+ protected virtual bool CheckFirstParameter {
+ get { return false; }
+ }
+
+ protected abstract bool IsPrefered (TypeReference type);
+
+ protected virtual bool IsSpecialCase (MethodReference method)
+ {
+ return (method == null);
+ }
+
+ protected abstract void Report (MethodDefinition method, Instruction instruction, MethodReference prefered);
+
+ static bool MatchParameters (Collection<ParameterDefinition> pmethod, Collection<ParameterDefinition> candidate, int offset)
+ {
+ int ccount = candidate.Count - offset;
+ int count = Math.Min (pmethod.Count, ccount - offset);
+ for (int i = 0; i < count; i++) {
+ ParameterDefinition pd = candidate [i + offset];
+ if (pd.IsParams ())
+ return true;
+ TypeReference ptype = pd.ParameterType;
+ if (!pmethod [i].ParameterType.IsNamed (ptype.Namespace, ptype.Name))
+ return false;
+ }
+ return (ccount - count <= 1);
+ }
+
+ // look for a signature identical to ours but that accept an extra parameter
+ MethodReference LookForPreferredOverride (MethodReference method)
+ {
+ TypeDefinition type = method.DeclaringType.Resolve ();
+ if (type == null)
+ return null;
+
+ var methods = type.Methods;
+ // we already know that, if resolved, there's at least one method (the caller)
+ // so there's no need to call HasMethods
+ if (methods.Count == 1)
+ return null;
+
+ string name = method.Name;
+ int pcount = 0;
+ Collection<ParameterDefinition> mparams = null;
+ if (method.HasParameters) {
+ mparams = method.Parameters;
+ pcount = mparams.Count;
+ }
+
+ foreach (MethodDefinition md in methods) {
+ // has one more parameter, so non-zero
+ if (!md.HasParameters)
+ continue;
+
+ Collection<ParameterDefinition> pdc = md.Parameters;
+ if (name != md.Name)
+ continue;
+
+ // compare parameters and return value
+ TypeReference rtype = md.ReturnType;
+ if (!method.ReturnType.IsNamed (rtype.Namespace, rtype.Name))
+ continue;
+
+ // last parameter could be our "prefered" type
+ if (IsPrefered (pdc [pdc.Count - 1].ParameterType)) {
+ // special case where the method has no parameter, override has only one (the prefered)
+ if ((pcount == 0) && (mparams == null))
+ return md;
+ if (MatchParameters (mparams, pdc, 0))
+ return md;
+ } else if (CheckFirstParameter && IsPrefered (pdc [0].ParameterType)) {
+ if (MatchParameters (mparams, pdc, 1))
+ return md;
+ }
+ }
+ return null;
+ }
+
+ Dictionary<MethodReference, MethodReference> prefered_overloads = new Dictionary<MethodReference, MethodReference> ();
+
+ MethodReference GetPreferedOverride (MethodReference method)
+ {
+ MethodReference prefered = null;
+ if (!prefered_overloads.TryGetValue (method, out prefered)) {
+ prefered = LookForPreferredOverride (method);
+ prefered_overloads.Add (method, prefered);
+ }
+ return prefered;
+ }
+
+ public RuleResult CheckMethod (MethodDefinition method)
+ {
+ if (!method.HasBody)
+ return RuleResult.DoesNotApply;
+
+ // exclude methods that don't have calls
+ if (!OpCodeBitmask.Calls.Intersect (OpCodeEngine.GetBitmask (method)))
+ return RuleResult.DoesNotApply;
+
+ foreach (Instruction ins in method.Body.Instructions) {
+ MethodReference mr = ins.GetMethod ();
+ // some inheritors have special cases to deal with
+ if (IsSpecialCase (mr))
+ continue;
+
+ // check if the call starts or ends with our 'prefered' override
+ if (mr.HasParameters) {
+ Collection<ParameterDefinition> pdc = mr.Parameters;
+ if (CheckFirstParameter && IsPrefered (pdc [0].ParameterType))
+ continue;
+ if (IsPrefered (pdc [pdc.Count - 1].ParameterType))
+ continue;
+ }
+
+ // if not check if such a 'prefered' override exists to replace the called method
+ MethodReference prefered = GetPreferedOverride (mr);
+ if (prefered != null)
+ Report (method, ins, prefered);
+ }
+
+ return Runner.CurrentRuleResult;
+ }
+ }
+}
+
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/PreferStringComparisonOverrideRule.cs b/gendarme/rules/Gendarme.Rules.Globalization/PreferStringComparisonOverrideRule.cs
new file mode 100644
index 0000000..3ed3dfa
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Globalization/PreferStringComparisonOverrideRule.cs
@@ -0,0 +1,82 @@
+//
+// Gendarme.Rules.Globalization.PreferStringComparisonOverrideRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Globalization;
+
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
+
+namespace Gendarme.Rules.Globalization {
+
+ /// <summary>
+ /// This rule detects calls to method that could be changed to call an <c>override</c> accepting an
+ /// extra <c>System.StringComparison</c> parameter. Using the <c>override</c> makes the code easier
+ /// to maintain since it makes the intent clear on how the string needs to be compared.
+ /// It is even more important since the default string comparison rules have changed between
+ /// .NET 2.0 and .NET 4.0.
+ /// </summary>
+ /// <example>
+ /// Bad example:
+ /// <code>
+ /// public bool Check (string name)
+ /// {
+ /// // it's not clear if the string comparison should be culture sensitive or not
+ /// return (String.Compare (name, "Software") == 0);
+ /// }
+ /// </code>
+ /// </example>
+ /// <example>
+ /// Good example:
+ /// <code>
+ /// public bool Check (string name)
+ /// {
+ /// return (String.Compare (name, "Software", StringComparison.CurrentCulture) == 0);
+ /// }
+ /// </code>
+ /// </example>
+ [Problem ("A call is made to a method for which an override, accepting an extra StringComparison, is available")]
+ [Solution ("Specify how the string should be compared by adding the right StringComparison value to the call")]
+ [FxCopCompatibility ("Microsoft.Globalization", "CA1307:SpecifyStringComparison")]
+ public class PreferStringComparisonOverrideRule : PreferOverrideBaseRule {
+
+ protected override bool IsPrefered (TypeReference type)
+ {
+ return type.IsNamed ("System", "StringComparison");
+ }
+
+ protected override void Report (MethodDefinition method, Instruction instruction, MethodReference prefered)
+ {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Consider using the perfered '{0}' override.", prefered.GetFullName ());
+ Runner.Report (method, instruction, Severity.Medium, Confidence.High, msg);
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/SatelliteResourceMismatchRule.cs b/gendarme/rules/Gendarme.Rules.Globalization/SatelliteResourceMismatchRule.cs
index 86af3a4..5829b97 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/SatelliteResourceMismatchRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Globalization/SatelliteResourceMismatchRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using System.IO;
using System.Text;
using System.Resources;
@@ -81,8 +82,10 @@ namespace Gendarme.Rules.Globalization {
EmbeddedResource mainResource;
string resourceName = GetNameInSatellite (resource, culture);
if (!mainAssemblyResourceCache.TryGetMainResourceFile (resourceName, out mainResource)) {
- Runner.Report (satellite, Severity.Low, Confidence.High,
- String.Format ("The resource file {0} exist in the satellite assembly but not in the main assembly", resource.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The resource file {0} exist in the satellite assembly but not in the main assembly",
+ resource.Name);
+ Runner.Report (satellite, Severity.Low, Confidence.High, msg);
continue;
}
@@ -102,16 +105,20 @@ namespace Gendarme.Rules.Globalization {
object satelliteValue = entry.Value;
object mainValue;
if (!mainAssemblyResourceCache.TryGetMainResource (mainResource, resourceName, out mainValue)) {
- Runner.Report (satelliteAssembly, Severity.Low, Confidence.High,
- String.Format ("The resource {0} in the file {1} exist in the satellite assembly but not in the main assembly", resourceName, satelliteResource.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The resource {0} in the file {1} exist in the satellite assembly but not in the main assembly",
+ resourceName, satelliteResource.Name);
+ Runner.Report (satelliteAssembly, Severity.Low, Confidence.High, msg);
continue;
}
Type satelliteType = satelliteValue.GetType ();
Type mainType = mainValue.GetType ();
if (!satelliteType.Equals (mainType)) {
- Runner.Report (satelliteAssembly, Severity.High, Confidence.High,
- String.Format ("The resource {0} in the file {1} is of type {2} in the satellite assembly but of type {3} in the main assembly", resourceName, satelliteResource.Name, satelliteType, mainType));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The resource {0} in the file {1} is of type {2} in the satellite assembly but of type {3} in the main assembly",
+ resourceName, satelliteResource.Name, satelliteType, mainType);
+ Runner.Report (satelliteAssembly, Severity.High, Confidence.High, msg);
continue;
}
@@ -119,9 +126,12 @@ namespace Gendarme.Rules.Globalization {
Bitmask<int> mainParameters = GetStringFormatExpectedParameters ((string) mainValue);
Bitmask<int> satelliteParameters = GetStringFormatExpectedParameters ((string) satelliteValue);
- if (!mainParameters.Equals (satelliteParameters))
- Runner.Report (satelliteAssembly, Severity.High, Confidence.Normal,
- String.Format ("The string resource {0} in the file {1} does not use the same string format parameters in the satellite and main assemblies", resourceName, satelliteResource.Name));
+ if (!mainParameters.Equals (satelliteParameters)) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The string resource {0} in the file {1} does not use the same string format parameters in the satellite and main assemblies",
+ resourceName, satelliteResource.Name);
+ Runner.Report (satelliteAssembly, Severity.High, Confidence.Normal, msg);
+ }
}
}
}
@@ -203,7 +213,7 @@ namespace Gendarme.Rules.Globalization {
string cultureExtension = "." + culture;
- if (!nameWithoutExtension.EndsWith (cultureExtension))
+ if (!nameWithoutExtension.EndsWith (cultureExtension, StringComparison.Ordinal))
return name;
string nameWithoutCulture = Path.GetFileNameWithoutExtension (nameWithoutExtension);
@@ -212,7 +222,7 @@ namespace Gendarme.Rules.Globalization {
private static bool IsResXResources (Resource resource)
{
- return resource.Name.EndsWith (resXResourcesExtension);
+ return resource.Name.EndsWith (resXResourcesExtension, StringComparison.Ordinal);
}
private sealed class AssemblyResourceCache {
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/InternalResource.Designer.cs b/gendarme/rules/Gendarme.Rules.Globalization/Test/InternalResource.Designer.cs
index d99d5fe..fb95375 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Test/InternalResource.Designer.cs
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/InternalResource.Designer.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.4952
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace Tests.Rules.Globalization {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class InternalResource {
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile.in
index a2eb74d..f5586e5 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Globalization/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferIFormatProviderOverrideTest.cs b/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferIFormatProviderOverrideTest.cs
new file mode 100644
index 0000000..83fa855
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferIFormatProviderOverrideTest.cs
@@ -0,0 +1,219 @@
+//
+// Unit tests for PreferIFormatProviderOverrideRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Globalization;
+using System.Reflection;
+using System.Resources;
+
+using Gendarme.Rules.Globalization;
+using NUnit.Framework;
+
+using Test.Rules.Definitions;
+using Test.Rules.Fixtures;
+
+namespace Tests.Rules.Globalization {
+
+ class IFormatProviderTestCases {
+
+ public void Empty ()
+ {
+ }
+
+ public void Empty (IFormatProvider format)
+ {
+ }
+
+ public void BadEmpty ()
+ {
+ Empty ();
+ }
+
+ public void CorrectEmpty ()
+ {
+ Empty (null);
+ }
+
+ public void First (object obj)
+ {
+ }
+
+ public void First (IFormatProvider format, object obj)
+ {
+ }
+
+ public void BadFirst ()
+ {
+ First (null);
+ }
+
+ public void CorrectFirst ()
+ {
+ First (null, null);
+ }
+
+ public void Last (object obj)
+ {
+ }
+
+ public void Last (object obj, IFormatProvider format)
+ {
+ }
+
+ public void BadLast ()
+ {
+ Last (null);
+ }
+
+ public void CorrectLast ()
+ {
+ Last (null, null);
+ }
+ }
+
+ class CultureInfoTestCases {
+
+ public void Empty ()
+ {
+ }
+
+ public void Empty (CultureInfo info)
+ {
+ }
+
+ public void BadEmpty ()
+ {
+ Empty ();
+ }
+
+ public void CorrectEmpty ()
+ {
+ Empty (null);
+ }
+
+ public void First (object obj)
+ {
+ }
+
+ public void First (CultureInfo info, object obj)
+ {
+ }
+
+ public void BadFirst ()
+ {
+ First (null);
+ }
+
+ public void CorrectFirst ()
+ {
+ First (null, null);
+ }
+
+ public void Last (object obj)
+ {
+ }
+
+ public void Last (object obj, CultureInfo info)
+ {
+ }
+
+ public void BadLast ()
+ {
+ Last (null);
+ }
+
+ public void CorrectLast ()
+ {
+ Last (null, null);
+ }
+ }
+
+ [TestFixture]
+ public class PreferIFormatProviderOverrideTest : MethodRuleTestFixture<PreferIFormatProviderOverrideRule> {
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ AssertRuleDoesNotApply (SimpleMethods.EmptyMethod);
+ AssertRuleDoesNotApply (SimpleMethods.ExternalMethod);
+ }
+
+ [Test]
+ public void Success ()
+ {
+ AssertRuleSuccess<IFormatProviderTestCases> ("CorrectEmpty");
+ AssertRuleSuccess<IFormatProviderTestCases> ("CorrectFirst");
+ AssertRuleSuccess<IFormatProviderTestCases> ("CorrectLast");
+
+ AssertRuleSuccess<CultureInfoTestCases> ("CorrectEmpty");
+ AssertRuleSuccess<CultureInfoTestCases> ("CorrectFirst");
+ AssertRuleSuccess<CultureInfoTestCases> ("CorrectLast");
+ }
+
+ [Test]
+ public void Failure ()
+ {
+ AssertRuleFailure<IFormatProviderTestCases> ("BadEmpty", 1);
+ AssertRuleFailure<IFormatProviderTestCases> ("BadFirst", 1);
+ AssertRuleFailure<IFormatProviderTestCases> ("BadLast", 1);
+
+ AssertRuleFailure<CultureInfoTestCases> ("BadEmpty", 1);
+ AssertRuleFailure<CultureInfoTestCases> ("BadFirst", 1);
+ AssertRuleFailure<CultureInfoTestCases> ("BadLast", 1);
+ }
+
+ void Ignored (ResourceManager rm)
+ {
+ rm.GetObject ("a");
+ rm.GetObject ("a", CultureInfo.CurrentCulture);
+ rm.GetString ("b");
+ rm.GetString ("b", CultureInfo.InvariantCulture);
+ }
+
+ string Params ()
+ {
+ // the overload to use is: Format(IFormatProvider, string, params object []);
+ return String.Format ("{0} {1} {2}", 1, 2, 3);
+ }
+
+ void NoSimpleOverload (FieldInfo fi)
+ {
+ // the overload with a CultureInfo is SetValue (object, object, BindingFlags, Binder, CultureInfo);
+ // and is not simply an "extra" parameter
+ fi.SetValue (new object (), 1);
+ }
+
+ [Test]
+ public void SpecialCases ()
+ {
+ AssertRuleSuccess<PreferIFormatProviderOverrideTest> ("Ignored");
+ AssertRuleFailure<PreferIFormatProviderOverrideTest> ("Params", 1);
+ AssertRuleSuccess<PreferIFormatProviderOverrideTest> ("NoSimpleOverload");
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferStringComparisonOverrideTest.cs b/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferStringComparisonOverrideTest.cs
new file mode 100644
index 0000000..722ff32
--- /dev/null
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/PreferStringComparisonOverrideTest.cs
@@ -0,0 +1,366 @@
+//
+// Unit tests for PreferStringComparisonOverrideRule
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+//
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
+//
+// 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 AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+using Gendarme.Rules.Globalization;
+using NUnit.Framework;
+
+using Test.Rules.Definitions;
+using Test.Rules.Fixtures;
+
+namespace Tests.Rules.Globalization {
+
+ [TestFixture]
+ public class PreferStringComparisonOverrideTest : MethodRuleTestFixture<PreferStringComparisonOverrideRule> {
+
+ [Test]
+ public void DoesNotApply ()
+ {
+ AssertRuleDoesNotApply (SimpleMethods.EmptyMethod);
+ AssertRuleDoesNotApply (SimpleMethods.ExternalMethod);
+ }
+
+ public class InstanceWithoutOverride {
+
+ public bool Compare (string s1, string s2)
+ {
+ return false;
+ }
+
+ public void Test ()
+ {
+ if (Compare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class Base {
+
+ public bool Compare (string s1, string s2)
+ {
+ return false;
+ }
+
+ public void TestBase ()
+ {
+ if (Compare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class Inherited : Base {
+ public bool Compare (string s1, string s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ public void TestInherited ()
+ {
+ // from IL this is a call to Base.Compare so the override is not seen
+ // note: fxcop also miss this one
+ if (Compare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class StaticHelperWithoutOverride {
+
+ // no alternative
+ public static bool StaticCompare (string s1, string s2)
+ {
+ return false;
+ }
+
+ public void Test ()
+ {
+ if (StaticCompare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class StaticHelperWithExtraParameterInOverride {
+
+ public static bool StaticCompare (string s1, string s2)
+ {
+ return false;
+ }
+
+ // the extra parameter disqualify the override
+ public static bool StaticCompare (string s1, string s2, bool value, StringComparison comparison)
+ {
+ return value;
+ }
+
+ // the extra parameter disqualify the override
+ public static bool StaticCompare (string s1, string s2, StringComparison comparison, bool value)
+ {
+ return value;
+ }
+
+ public void Test ()
+ {
+ if (StaticCompare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class Weird {
+ public bool Compare (StringComparison a, StringComparison b)
+ {
+ return (a == b);
+ }
+
+ public void Test ()
+ {
+ if (Compare (StringComparison.CurrentCulture, StringComparison.CurrentCultureIgnoreCase))
+ Console.WriteLine ();
+ }
+ }
+
+ [Test]
+ public void Success ()
+ {
+ AssertRuleSuccess<InstanceWithoutOverride> ("Test");
+
+ AssertRuleSuccess<Base> ("TestBase");
+ AssertRuleSuccess<Inherited> ("TestInherited");
+
+ AssertRuleSuccess<StaticHelperWithoutOverride> ("Test");
+ AssertRuleSuccess<StaticHelperWithExtraParameterInOverride> ("Test");
+
+ AssertRuleSuccess<Weird> ("Test");
+ }
+
+ public class InstanceWithOverride {
+
+ public bool Compare (string s1, string s2)
+ {
+ return false;
+ }
+
+ public bool Compare (string s1, string s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void Test ()
+ {
+ if (Compare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class StaticHelper {
+
+ public static bool StaticCompare (string s1, string s2)
+ {
+ return false;
+ }
+
+ // we have an alternative
+ public static bool StaticCompare (string s1, string s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void Test ()
+ {
+ if (StaticHelper.StaticCompare ("a", "b"))
+ Console.WriteLine ();
+ }
+ }
+
+ public class NonString {
+
+ public bool Kompare (char [] s1, char [] s2)
+ {
+ return false;
+ }
+
+ public bool Kompare (char [] s1, char [] s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestCharArray ()
+ {
+ if (Kompare (new char [] { }, new char [] { }))
+ Console.WriteLine ();
+ }
+
+ public bool KomparInt (int a, int b)
+ {
+ return false;
+ }
+
+ public bool KomparInt (int a, int b, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestInt ()
+ {
+ if (KomparInt (0, 0))
+ Console.WriteLine ();
+ }
+ }
+
+ public class ExtraParameters {
+
+ public bool Kompare (int level, string s1, string s2)
+ {
+ return false;
+ }
+
+ public bool Kompare (int level, string s1, string s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestExtraFirst ()
+ {
+ if (Kompare (0, "a", "B"))
+ Console.WriteLine ();
+ }
+
+ public bool Kompar (string s1, int start, string s2)
+ {
+ return false;
+ }
+
+ public bool Kompar (string s1, int start, string s2, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestExtraMid ()
+ {
+ if (Kompar ("a", 0, "B"))
+ Console.WriteLine ();
+ }
+
+ public bool Komparz (string s1, string s2, int end)
+ {
+ return false;
+ }
+
+ // note: parameter name mismatch
+ public bool Komparz (string s1, string s2, int start, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestExtraEnd ()
+ {
+ if (Komparz ("a", "B", 0))
+ Console.WriteLine ();
+ }
+ }
+
+ public class FewParameters {
+
+ public bool Compare ()
+ {
+ return false;
+ }
+
+ public bool Compare (StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestNone ()
+ {
+ if (Compare ())
+ Console.WriteLine ();
+ }
+
+ public bool Compare (object o)
+ {
+ return (o == null);
+ }
+
+ public bool Compare (object o, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestSingle ()
+ {
+ if (Compare (null))
+ Console.WriteLine ();
+ }
+
+ public bool Compare (short a, long b)
+ {
+ return (a == b);
+ }
+
+ public bool Compare (short a, long b, StringComparison comparison)
+ {
+ return true;
+ }
+
+ // bad
+ public void TestDifferent ()
+ {
+ if (Compare (1, 1))
+ Console.WriteLine ();
+ }
+ }
+
+ [Test]
+ public void Failure ()
+ {
+ AssertRuleFailure<InstanceWithOverride> ("Test");
+
+ AssertRuleFailure<StaticHelper> ("Test");
+
+ AssertRuleFailure<NonString> ("TestCharArray");
+ AssertRuleFailure<NonString> ("TestInt");
+
+ AssertRuleFailure<ExtraParameters> ("TestExtraFirst");
+ AssertRuleFailure<ExtraParameters> ("TestExtraMid");
+ AssertRuleFailure<ExtraParameters> ("TestExtraEnd");
+
+ AssertRuleFailure<FewParameters> ("TestNone");
+ AssertRuleFailure<FewParameters> ("TestSingle");
+ AssertRuleFailure<FewParameters> ("TestDifferent");
+ }
+ }
+}
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/PublicResource.Designer.cs b/gendarme/rules/Gendarme.Rules.Globalization/Test/PublicResource.Designer.cs
index 435893c..369bf20 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Test/PublicResource.Designer.cs
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/PublicResource.Designer.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.4952
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace Tests.Rules.Globalization {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class PublicResource {
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/Resource.Designer.cs b/gendarme/rules/Gendarme.Rules.Globalization/Test/Resource.Designer.cs
index 2edd1e0..8847e59 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Test/Resource.Designer.cs
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/Resource.Designer.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.4952
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace Tests.Rules.Globalization {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resource {
diff --git a/gendarme/rules/Gendarme.Rules.Globalization/Test/Tests.Rules.Globalization.csproj b/gendarme/rules/Gendarme.Rules.Globalization/Test/Tests.Rules.Globalization.csproj
index 063810d..d1c6107 100644
--- a/gendarme/rules/Gendarme.Rules.Globalization/Test/Tests.Rules.Globalization.csproj
+++ b/gendarme/rules/Gendarme.Rules.Globalization/Test/Tests.Rules.Globalization.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Globalization</RootNamespace>
<AssemblyName>Tests.Rules.Globalization</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -128,6 +150,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AutoLayoutTypesShouldNotBeComVisibleRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AutoLayoutTypesShouldNotBeComVisibleRule.cs
index 5de0801..e6ae04b 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AutoLayoutTypesShouldNotBeComVisibleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AutoLayoutTypesShouldNotBeComVisibleRule.cs
@@ -37,9 +37,11 @@ using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Interoperability.Com {
/// <summary>
- /// This rule checks for ComVisible value types which have StructLayout
- /// attribute set to LayoutKind.Auto because auto layout can change
- /// between Mono and .NET or even between releases of the .NET/Mono frameworks
+ /// This rule checks for <c>[System.Runtime.InteropServices.ComVisible]</c> decorated value
+ /// types which have <c>[System.Runtime.InteropServices.StructLayout]</c> attribute set to
+ /// <c>System.Runtime.InteropServices.LayoutKind</c>.<c>Auto</c> because auto layout can
+ /// change between Mono and .NET or even between releases of the .NET/Mono frameworks.
+ /// Note that this does not affect <c>System.Enum</c>-based types.
/// </summary>
/// <example>
/// Bad example:
@@ -80,7 +82,7 @@ namespace Gendarme.Rules.Interoperability.Com {
public RuleResult CheckType (TypeDefinition type)
{
- if (!type.IsValueType || !type.HasCustomAttributes ||
+ if (type.IsEnum || !type.IsValueType || !type.HasCustomAttributes ||
(!type.IsPublic && !type.IsNestedPublic) || type.HasGenericParameters)
return RuleResult.DoesNotApply;
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidInt64ArgumentsInComVisibleMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidInt64ArgumentsInComVisibleMethodsRule.cs
index 5c13b94..5ef8900 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidInt64ArgumentsInComVisibleMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidInt64ArgumentsInComVisibleMethodsRule.cs
@@ -106,7 +106,7 @@ namespace Gendarme.Rules.Interoperability.Com {
return RuleResult.DoesNotApply;
foreach (ParameterDefinition parameter in method.Parameters) {
- if (parameter.ParameterType.FullName == "System.Int64")
+ if (parameter.ParameterType.IsNamed ("System", "Int64"))
Runner.Report (parameter, Severity.Medium, Confidence.Total);
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidStaticMembersInComVisibleTypesRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidStaticMembersInComVisibleTypesRule.cs
index 9a22d1b..be412d2 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidStaticMembersInComVisibleTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/AvoidStaticMembersInComVisibleTypesRule.cs
@@ -118,7 +118,7 @@ namespace Gendarme.Rules.Interoperability.Com {
{
return !(!method.IsStatic || !method.IsPublic || method.HasGenericParameters ||
method.IsAddOn || method.IsRemoveOn || method.IsGetter || method.IsSetter ||
- ((method.Attributes & MethodAttributes.SpecialName) != 0 && method.Name.StartsWith ("op_")) ||
+ ((method.Attributes & MethodAttributes.SpecialName) != 0 && method.Name.StartsWith ("op_", StringComparison.Ordinal)) ||
method.DeclaringType.HasGenericParameters || method.DeclaringType.IsEnum ||
method.DeclaringType.IsInterface);
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComRocks.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComRocks.cs
index e25404c..5c1de40 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComRocks.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComRocks.cs
@@ -32,6 +32,8 @@
using Mono.Cecil;
+using Gendarme.Framework.Rocks;
+
namespace Gendarme.Rules.Interoperability.Com {
/// <summary>
@@ -56,7 +58,7 @@ namespace Gendarme.Rules.Interoperability.Com {
// any attribute without arguments can be skipped
if (!attribute.HasConstructorArguments)
continue;
- if (attribute.Constructor.DeclaringType.FullName != "System.Runtime.InteropServices.ComVisibleAttribute")
+ if (!attribute.Constructor.DeclaringType.IsNamed ("System.Runtime.InteropServices", "ComVisibleAttribute"))
continue;
return (bool) attribute.ConstructorArguments[0].Value;
}
@@ -74,6 +76,10 @@ namespace Gendarme.Rules.Interoperability.Com {
// considering nested types, assemblies attributes and default values
public static bool IsTypeComVisible (this TypeDefinition self)
{
+ // [ComVisible] attribute will be ignored on non-visible types
+ if (!self.IsVisible ())
+ return false;
+
return (self.IsComVisible () ?? self.Module.Assembly.IsComVisible () ?? true);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComVisibleShouldInheritFromComVisibleRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComVisibleShouldInheritFromComVisibleRule.cs
index 8e46c99..46291d5 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComVisibleShouldInheritFromComVisibleRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ComVisibleShouldInheritFromComVisibleRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using System.Runtime.InteropServices;
using Mono.Cecil;
@@ -101,9 +102,9 @@ namespace Gendarme.Rules.Interoperability.Com {
TypeDefinition baseType = type.BaseType.Resolve ();
if ((baseType != null) && !baseType.IsTypeComVisible ()) {
- Runner.Report (type, Severity.High, Confidence.Total,
- String.Format ("Type is derived from invisible from COM type {0}",
- baseType.FullName));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Type is derived from invisible from COM type {0}", baseType.GetFullName ());
+ Runner.Report (type, Severity.High, Confidence.Total, msg);
}
return Runner.CurrentRuleResult;
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/DoNotUseAutoDualClassInterfaceTypeRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/DoNotUseAutoDualClassInterfaceTypeRule.cs
index 2272ad1..31e43a0 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/DoNotUseAutoDualClassInterfaceTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/DoNotUseAutoDualClassInterfaceTypeRule.cs
@@ -111,15 +111,14 @@ namespace Gendarme.Rules.Interoperability.Com {
private static ClassInterfaceType? GetClassInterfaceAttributeValue (ICustomAttributeProvider obj)
{
foreach (CustomAttribute attribute in obj.CustomAttributes) {
- // ClassInterfaceAttribute has a two ctors each taking an argument (ClassInterfaceType or short)
// http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.classinterfaceattribute.aspx
// any attribute without arguments can be skipped
if (!attribute.HasConstructorArguments)
continue;
- if (attribute.AttributeType.FullName != "System.Runtime.InteropServices.ClassInterfaceAttribute")
+ if (!attribute.AttributeType.IsNamed ("System.Runtime.InteropServices", "ClassInterfaceAttribute"))
continue;
var ctorArgs = attribute.ConstructorArguments;
- if (ctorArgs [0].Type.FullName == "System.Int16")
+ if (ctorArgs [0].Type.IsNamed ("System", "Int16"))
return (ClassInterfaceType)(short)ctorArgs [0].Value;
return (ClassInterfaceType)(int)ctorArgs [0].Value;
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Gendarme.Rules.Interoperability.Com.csproj b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Gendarme.Rules.Interoperability.Com.csproj
index d39ca71..b0fbc53 100755
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Gendarme.Rules.Interoperability.Com.csproj
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Gendarme.Rules.Interoperability.Com.csproj
@@ -1,78 +1,117 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{468F7043-C0D5-480F-88A1-A262EC324E5E}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Gendarme.Rules.Interoperability.Com</RootNamespace>
- <AssemblyName>Gendarme.Rules.Interoperability.Com</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\console\bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Interoperability.Com.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\console\bin\Release\</OutputPath>
- <DefineConstants>TRACE;RELEASE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Interoperability.Com.xml</DocumentationFile>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="AutoLayoutTypesShouldNotBeComVisibleRule.cs" />
- <Compile Include="AvoidInt64ArgumentsInComVisibleMethodsRule.cs" />
- <Compile Include="AvoidNonPublicFieldsInComVisibleValueTypesRule.cs" />
- <Compile Include="AvoidOverloadsInComVisibleInterfacesRule.cs" />
- <Compile Include="AvoidStaticMembersInComVisibleTypesRule.cs" />
- <Compile Include="ComRocks.cs" />
- <Compile Include="ComVisibleShouldInheritFromComVisibleRule.cs" />
- <Compile Include="ComVisibleTypesShouldBeCreatableRule.cs" />
- <Compile Include="DoNotUseAutoDualClassInterfaceTypeRule.cs" />
- <Compile Include="MarkComSourceInterfacesAsIDispatchRule.cs" />
- <Compile Include="ReviewComRegistrationMethodsRule.cs" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{468F7043-C0D5-480F-88A1-A262EC324E5E}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Gendarme.Rules.Interoperability.Com</RootNamespace>
+ <AssemblyName>Gendarme.Rules.Interoperability.Com</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\console\bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Interoperability.Com.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\console\bin\Release\</OutputPath>
+ <DefineConstants>TRACE;RELEASE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Interoperability.Com.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="AutoLayoutTypesShouldNotBeComVisibleRule.cs" />
+ <Compile Include="AvoidInt64ArgumentsInComVisibleMethodsRule.cs" />
+ <Compile Include="AvoidNonPublicFieldsInComVisibleValueTypesRule.cs" />
+ <Compile Include="AvoidOverloadsInComVisibleInterfacesRule.cs" />
+ <Compile Include="AvoidStaticMembersInComVisibleTypesRule.cs" />
+ <Compile Include="ComRocks.cs" />
+ <Compile Include="ComVisibleShouldInheritFromComVisibleRule.cs" />
+ <Compile Include="ComVisibleTypesShouldBeCreatableRule.cs" />
+ <Compile Include="DoNotUseAutoDualClassInterfaceTypeRule.cs" />
+ <Compile Include="MarkComSourceInterfacesAsIDispatchRule.cs" />
+ <Compile Include="ReviewComRegistrationMethodsRule.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile.in b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile.in
index d9cd743..073d8db 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -283,14 +359,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -300,6 +376,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -308,42 +385,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -352,7 +450,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -369,7 +467,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -377,7 +475,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -403,16 +501,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -420,14 +518,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -439,7 +537,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -448,29 +546,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -491,29 +594,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -536,10 +651,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -547,6 +667,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -566,6 +687,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -575,18 +698,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -608,8 +741,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -629,11 +762,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -642,7 +775,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -662,6 +795,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/MarkComSourceInterfacesAsIDispatchRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/MarkComSourceInterfacesAsIDispatchRule.cs
index 8bfc88f..46d932a 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/MarkComSourceInterfacesAsIDispatchRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/MarkComSourceInterfacesAsIDispatchRule.cs
@@ -63,7 +63,7 @@ namespace Gendarme.Rules.Interoperability.Com {
[Solution ("Add an InterfaceTypeAttribute set to InterfaceIsIDispatch for all specified interfaces.")]
[FxCopCompatibility ("Microsoft.Interoperability", "CA1412:MarkComSourceInterfacesAsIDispatch")]
public class MarkComSourceInterfacesAsIDispatchRule : Rule, ITypeRule {
- private List<TypeDefinition> interfaces = new List<TypeDefinition> ();
+ private SortedDictionary<string, TypeDefinition> interfaces = new SortedDictionary<string, TypeDefinition> ();
// Iterate through all assemblies and add the interfaces found to a list.
private void FindInterfaces ()
@@ -73,33 +73,17 @@ namespace Gendarme.Rules.Interoperability.Com {
foreach (TypeDefinition type in module.GetAllTypes ()) {
if (!type.IsInterface)
continue;
- interfaces.Add (type);
+ interfaces.Add (type.GetFullName (), type);
}
}
}
}
- // Find a TypeDefinition for an interface with the given name.
- private TypeDefinition FindInterfaceDefinition (string fullName)
- {
- foreach (var def in interfaces)
- if (fullName == def.FullName)
- return def;
- return null;
- }
-
// Finds a CustomAttribute on a type from the given name.
- private static CustomAttribute FindComAttribute (ICustomAttributeProvider type, string name)
+ private static CustomAttribute FindCustomAttribute (ICustomAttributeProvider type, string nameSpace, string name)
{
foreach (var attribute in type.CustomAttributes) {
- if (!attribute.HasConstructorArguments)
- continue;
-
- TypeReference atype = attribute.AttributeType;
- if (atype.Namespace != "System.Runtime.InteropServices")
- continue;
-
- if (atype.Name == name)
+ if (attribute.AttributeType.IsNamed (nameSpace, name))
return attribute;
}
return null;
@@ -115,7 +99,8 @@ namespace Gendarme.Rules.Interoperability.Com {
Runner.Report (def, Severity.High, Confidence.Total, "No attributes are present on a specified interface");
return;
}
- var attribute = FindComAttribute (def, "InterfaceTypeAttribute");
+
+ var attribute = FindCustomAttribute (def, "System.Runtime.InteropServices", "InterfaceTypeAttribute");
if (attribute == null) {
Runner.Report (def, Severity.High, Confidence.Total, "No [InterfaceType] attribute is present on a specified interface");
return;
@@ -129,7 +114,9 @@ namespace Gendarme.Rules.Interoperability.Com {
private void CheckInterface (string interface_name)
{
- CheckInterface (FindInterfaceDefinition (interface_name));
+ TypeDefinition td;
+ if (interfaces.TryGetValue (interface_name, out td))
+ CheckInterface (td);
}
public override void Initialize (IRunner runner)
@@ -145,7 +132,7 @@ namespace Gendarme.Rules.Interoperability.Com {
if (!type.IsClass || !type.HasCustomAttributes)
return RuleResult.DoesNotApply;
- var attribute = FindComAttribute (type, "ComSourceInterfacesAttribute");
+ var attribute = FindCustomAttribute (type, "System.Runtime.InteropServices", "ComSourceInterfacesAttribute");
if (attribute == null)
return RuleResult.DoesNotApply;
// The attribute's paramemters may be a single null-delimited string, or up to four System.Types.
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ReviewComRegistrationMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ReviewComRegistrationMethodsRule.cs
index b46b390..2a5679d 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/ReviewComRegistrationMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/ReviewComRegistrationMethodsRule.cs
@@ -94,9 +94,6 @@ namespace Gendarme.Rules.Interoperability.Com {
[FxCopCompatibility ("Microsoft.Interoperability", "CA1411:ComRegistrationMethodsShouldNotBeVisible")]
public class ReviewComRegistrationMethodsRule : Rule, ITypeRule {
- const string comRegister = "System.Runtime.InteropServices.ComRegisterFunctionAttribute";
- const string comUnregister = "System.Runtime.InteropServices.ComUnregisterFunctionAttribute";
-
public RuleResult CheckType (TypeDefinition type)
{
if (type.HasGenericParameters || !type.IsVisible () || !type.IsTypeComVisible ())
@@ -111,12 +108,12 @@ namespace Gendarme.Rules.Interoperability.Com {
bool foundRegisterUnregisterMethod = false; // method level variable
foreach (CustomAttribute attribute in method.CustomAttributes) {
- var name = attribute.AttributeType.FullName;
- if (!foundRegister && name == comRegister) {
+ TypeReference atype = attribute.AttributeType;
+ if (!foundRegister && atype.IsNamed ("System.Runtime.InteropServices", "ComRegisterFunctionAttribute")) {
foundRegister = true;
foundRegisterUnregisterMethod = true;
}
- if (!foundUnregister && name == comUnregister) {
+ if (!foundUnregister && atype.IsNamed ("System.Runtime.InteropServices", "ComUnregisterFunctionAttribute")) {
foundUnregister = true;
foundRegisterUnregisterMethod = true;
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AutoLayoutTypesShouldNotBeComVisibleTest.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AutoLayoutTypesShouldNotBeComVisibleTest.cs
index 5cf9e05..3e8e282 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AutoLayoutTypesShouldNotBeComVisibleTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AutoLayoutTypesShouldNotBeComVisibleTest.cs
@@ -137,5 +137,23 @@ namespace Test.Rules.Interoperability.Com {
AssertRuleDoesNotApply (SimpleTypes.Structure);
}
+
+ [ComVisible (true)]
+ public enum Enum {
+ Zero = 0
+ }
+
+ [Flags]
+ [ComVisible (true)]
+ public enum Flags {
+ One = 1
+ }
+
+ [Test]
+ public void SpecialCases ()
+ {
+ AssertRuleDoesNotApply<Enum> ();
+ AssertRuleDoesNotApply<Flags> ();
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AvoidStaticMembersInComVisibleTypesTest.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AvoidStaticMembersInComVisibleTypesTest.cs
index 191eb2a..a4dbbc2 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AvoidStaticMembersInComVisibleTypesTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/AvoidStaticMembersInComVisibleTypesTest.cs
@@ -42,7 +42,7 @@ namespace Test.Rules.Interoperability.Com {
public class AvoidStaticMembersInComVisibleTypesTest : MethodRuleTestFixture<AvoidStaticMembersInComVisibleTypesRule> {
[ComVisible (true)]
- class ComVisibleClass {
+ public class ComVisibleClass {
public static void Bad ()
{
}
@@ -103,20 +103,20 @@ namespace Test.Rules.Interoperability.Com {
}
[ComVisible (false)]
- class ComInvisibleClass {
+ public class ComInvisibleClass {
public static void DoesNotApply ()
{
}
}
- class NoAttributesClass {
+ public class NoAttributesClass {
public static void DoesNotApply ()
{
}
}
[ComVisible (true)]
- interface Interface {
+ public interface Interface {
void DoesNotApply ();
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs
index 4613f87..ec721ad 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/ComVisibleShouldInheritFromComVisibleTest.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Collections;
using System.Runtime.InteropServices;
using Mono.Cecil;
@@ -57,6 +58,10 @@ namespace Test.Rules.Interoperability.Com {
public class ComVisibleInheritsFromInvisibleClass : ComInvisibleClass {
}
+ [ComVisible (true)]
+ class NotReallyComVisibleInheritsFromInvisibleClass : ComInvisibleClass {
+ }
+
[ComVisible (false)]
public class ComInvisibleInheritsFromVisibleClass : ComVisibleClass {
}
@@ -64,9 +69,6 @@ namespace Test.Rules.Interoperability.Com {
[Test]
public void Good ()
{
- // no ComVisible attributes in inheritance chain
- AssertRuleSuccess (SimpleTypes.Class);
-
AssertRuleSuccess<ComVisibleClass> ();
}
@@ -79,8 +81,15 @@ namespace Test.Rules.Interoperability.Com {
[Test]
public void DoesNotApply ()
{
+ // BaseType is null
+ AssertRuleDoesNotApply<ICollection> ();
+
+ // not visible / no ComVisible attributes in inheritance chain
+ AssertRuleDoesNotApply (SimpleTypes.Class);
+
AssertRuleDoesNotApply<ComInvisibleClass> ();
AssertRuleDoesNotApply<ComInvisibleInheritsFromVisibleClass> ();
+ AssertRuleDoesNotApply<NotReallyComVisibleInheritsFromInvisibleClass> ();
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/DoNotUseAutoDualClassInterfaceTypeTest.cs b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/DoNotUseAutoDualClassInterfaceTypeTest.cs
index ad6b8f3..b68c36a 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/DoNotUseAutoDualClassInterfaceTypeTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/DoNotUseAutoDualClassInterfaceTypeTest.cs
@@ -43,30 +43,30 @@ namespace Test.Rules.Interoperability.Com {
[ComVisible (true)]
[ClassInterface (ClassInterfaceType.AutoDual)]
- class BadClass {
+ public class BadClass {
// do something
}
[ComVisible (true)]
[ClassInterface (2)]
- class BadClassShortConstuctor {
+ public class BadClassShortConstuctor {
// do something
}
[ComVisible (false)]
[ClassInterface (ClassInterfaceType.AutoDual)]
- class DoesNotApplyInvisible {
+ public class DoesNotApplyInvisible {
// do something
}
[ComVisible (true)]
- class GoodNoInterfaceAttribute {
+ public class GoodNoInterfaceAttribute {
// do something
}
[ComVisible (true)]
[ClassInterface (ClassInterfaceType.None)]
- class GoodClassNone : ICloneable {
+ public class GoodClassNone : ICloneable {
public object Clone ()
{
return new object ();
@@ -75,7 +75,7 @@ namespace Test.Rules.Interoperability.Com {
[ComVisible (true)]
[ClassInterface ((short)0)]
- class GoodClassNoneShortConstructor : ICloneable {
+ public class GoodClassNoneShortConstructor : ICloneable {
public object Clone ()
{
return new object ();
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile.in
index dee6bfa..26894f5 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Tests.Rules.Interoperability.Com.csproj b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Tests.Rules.Interoperability.Com.csproj
index 0b77953..7f21629 100755
--- a/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Tests.Rules.Interoperability.Com.csproj
+++ b/gendarme/rules/Gendarme.Rules.Interoperability.Com/Test/Tests.Rules.Interoperability.Com.csproj
@@ -1,85 +1,124 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{393FCDDA-6AAF-4DBA-BB75-6BD85DAC84EE}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Tests.Rules.Interoperability.Com</RootNamespace>
- <AssemblyName>Tests.Rules.Interoperability.Com</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\..\..\cecil\Test\libs\nunit-2.4.8\nunit.framework.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Test.Rules\Test.Rules.csproj">
- <Project>{069148AF-86AB-4EE3-BFB9-429AE722461F}</Project>
- <Name>Test.Rules</Name>
- </ProjectReference>
- <ProjectReference Include="..\Gendarme.Rules.Interoperability.Com.csproj">
- <Project>{468F7043-C0D5-480F-88A1-A262EC324E5E}</Project>
- <Name>Gendarme.Rules.Interoperability.Com</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="AutoLayoutTypesShouldNotBeComVisibleTest.cs" />
- <Compile Include="AvoidInt64ArgumentsInComVisibleMethodsTest.cs" />
- <Compile Include="AvoidNonPublicFieldsInComVisibleValueTypesTest.cs" />
- <Compile Include="AvoidOverloadsInComVisibleInterfacesTest.cs" />
- <Compile Include="AvoidStaticMembersInComVisibleTypesTest.cs" />
- <Compile Include="ComRocksTest.cs" />
- <Compile Include="ComVisibleShouldInheritFromComVisibleTest.cs" />
- <Compile Include="ComVisibleTypesShouldBeCreatableTest.cs" />
- <Compile Include="DoNotUseAutoDualClassInterfaceTypeTest.cs" />
- <Compile Include="MarkComSourceInterfacesAsIDispatchTest.cs" />
- <Compile Include="ReviewComRegistrationMethodsTest.cs" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{393FCDDA-6AAF-4DBA-BB75-6BD85DAC84EE}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Tests.Rules.Interoperability.Com</RootNamespace>
+ <AssemblyName>Tests.Rules.Interoperability.Com</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\cecil\Test\libs\nunit-2.4.8\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Test.Rules\Test.Rules.csproj">
+ <Project>{069148AF-86AB-4EE3-BFB9-429AE722461F}</Project>
+ <Name>Test.Rules</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Gendarme.Rules.Interoperability.Com.csproj">
+ <Project>{468F7043-C0D5-480F-88A1-A262EC324E5E}</Project>
+ <Name>Gendarme.Rules.Interoperability.Com</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AutoLayoutTypesShouldNotBeComVisibleTest.cs" />
+ <Compile Include="AvoidInt64ArgumentsInComVisibleMethodsTest.cs" />
+ <Compile Include="AvoidNonPublicFieldsInComVisibleValueTypesTest.cs" />
+ <Compile Include="AvoidOverloadsInComVisibleInterfacesTest.cs" />
+ <Compile Include="AvoidStaticMembersInComVisibleTypesTest.cs" />
+ <Compile Include="ComRocksTest.cs" />
+ <Compile Include="ComVisibleShouldInheritFromComVisibleTest.cs" />
+ <Compile Include="ComVisibleTypesShouldBeCreatableTest.cs" />
+ <Compile Include="DoNotUseAutoDualClassInterfaceTypeTest.cs" />
+ <Compile Include="MarkComSourceInterfacesAsIDispatchTest.cs" />
+ <Compile Include="ReviewComRegistrationMethodsTest.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/CentralizePInvokesIntoNativeMethodsTypeRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/CentralizePInvokesIntoNativeMethodsTypeRule.cs
index fbadfc9..26d1dca 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/CentralizePInvokesIntoNativeMethodsTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/CentralizePInvokesIntoNativeMethodsTypeRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -91,20 +92,22 @@ namespace Gendarme.Rules.Interoperability {
{
// *NativeMethods types should never be visible outside the assembly
if (type.IsVisible ()) {
- string msg = String.Format ("'{0}' should not be visible outside the assembly.", type);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "'{0}' should not be visible outside the assembly.", type.GetFullName ());
Runner.Report (type, Severity.High, Confidence.Total, msg);
}
if (CanInstantiateType (type)) {
- string msg = String.Format ("'{0}' should not be static or sealed with no visible constructor.", type);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "'{0}' should not be static or sealed with no visible constructor.", type.GetFullName ());
Runner.Report (type, Severity.High, Confidence.Total, msg);
}
}
- private void CheckSuppressUnmanagedCodeSecurity (TypeDefinition type, bool required)
+ private void CheckSuppressUnmanagedCodeSecurity (ICustomAttributeProvider type, bool required)
{
string msg = null;
- if (type.HasCustomAttributes && type.CustomAttributes.ContainsType ("System.Security.SuppressUnmanagedCodeSecurityAttribute")) {
+ if (type.HasAttribute ("System.Security", "SuppressUnmanagedCodeSecurityAttribute")) {
if (!required)
msg = "Remove [SuppressUnmanagedCodeSecurity] attribute on the type declaration.";
} else {
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule.cs
index a407980..72b8ffc 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule.cs
@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -259,7 +260,7 @@ namespace Gendarme.Rules.Interoperability {
// Pending implementation of "analysis warnings", as mentioned here (post #21):
// http://groups.google.com/group/gendarme/browse_frm/thread/c37d157ae0c9682/57f89f3abf14f2fd?tvc=1&q=Gendarme+2.6+Preview+1+is+ready+for+download#57f89f3abf14f2fd
Runner.Report (method, Severity.Low, Confidence.Low,
- string.Format ("An exception occurred while verifying this method. " +
+ String.Format (CultureInfo.CurrentCulture, "An exception occurred while verifying this method. " +
"This failure can probably be ignored, it's most likely due to an " +
"uncommon code sequence in the method the rule didn't understand. {0}", ex.Message));
return RuleResult.Failure;
@@ -271,14 +272,14 @@ namespace Gendarme.Rules.Interoperability {
locals.Clear ();
stack.Clear ();
- Log.WriteLine (this, "\n\nChecking method: {0} on type: {1}", method.Name, method.DeclaringType.FullName);
+ Log.WriteLine (this, "\n\nChecking method: {0} on type: {1}", method.Name, method.DeclaringType.GetFullName ());
Log.WriteLine (this, method);
MethodBody body = method.Body;
#if DEBUG
foreach (ExceptionHandler e in body.ExceptionHandlers)
- Log.WriteLine (this, " HandlerType: {7}, TryStart: {4:X}, TryEnd: {5:X}, HandlerStart: {0:X}, HandlerEnd: {1:X}, FilterStart: {2:X}, FilterEnd: {3:X}, CatchType: {6}",
- e.HandlerStart.GetOffset (), e.HandlerEnd.GetOffset (), e.FilterStart.GetOffset (), e.FilterEnd.GetOffset (),
+ Log.WriteLine (this, " HandlerType: {6}, TryStart: {3:X}, TryEnd: {4:X}, HandlerStart: {0:X}, HandlerEnd: {1:X}, FilterStart: {2:X}, CatchType: {5}",
+ e.HandlerStart.GetOffset (), e.HandlerEnd.GetOffset (), e.FilterStart.GetOffset (),
e.TryStart.GetOffset (), e.TryEnd.GetOffset (), e.CatchType, e.HandlerType);
#endif
@@ -493,12 +494,12 @@ namespace Gendarme.Rules.Interoperability {
continue;
// no 'Catch ... When <condition>' clause. C# doesn't support it, VB does
- if (eh.FilterStart != null || eh.FilterEnd != null)
+ if (eh.FilterStart != null)
continue;
// check for catch all clauses
- string exception_typename = eh.CatchType == null ? null : eh.CatchType.FullName;
- if (!(exception_typename == null || exception_typename == "System.Object" || exception_typename == "System.Exception"))
+ TypeReference ctype = eh.CatchType;
+ if (!(ctype == null || ctype.IsNamed ("System", "Object") || ctype.IsNamed ("System", "Exception")))
continue;
// Mark the code this exception handler handles as safe.
@@ -521,8 +522,8 @@ namespace Gendarme.Rules.Interoperability {
// Console.ResetColor ();
}
foreach (ExceptionHandler e in body.ExceptionHandlers)
- Log.WriteLine (this, " HandlerType: {7}, TryStart: {4}, TryEnd: {5}, HandlerStart: {0}, HandlerEnd: {1}, FilterStart: {2}, FilterEnd: {3}, CatchType: {6}",
- e.HandlerStart.GetOffset (), e.HandlerEnd.GetOffset (), e.FilterStart.GetOffset (), e.FilterEnd.GetOffset (),
+ Log.WriteLine (this, " HandlerType: {6}, TryStart: {3}, TryEnd: {4}, HandlerStart: {0}, HandlerEnd: {1}, FilterStart: {2}, CatchType: {5}",
+ e.HandlerStart.GetOffset (), e.HandlerEnd.GetOffset (), e.FilterStart.GetOffset (),
e.TryStart.GetOffset (), e.TryEnd.GetOffset (), e.CatchType, e.HandlerType);
#endif
@@ -665,7 +666,8 @@ namespace Gendarme.Rules.Interoperability {
case Code.Ldloca_S:
case Code.Ldloc_S: return ((VariableDefinition) ins.Operand).Index;
default:
- throw new ArgumentException (string.Format ("Invalid opcode: {0}", ins.OpCode.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture, "Invalid opcode: {0}", ins.OpCode.Name);
+ throw new ArgumentException (msg);
}
}
@@ -681,7 +683,8 @@ namespace Gendarme.Rules.Interoperability {
case Code.Stloc: // Untested for stloc
case Code.Stloc_S: return ((VariableDefinition) ins.Operand).Index;
default:
- throw new ArgumentException (string.Format ("Invalid opcode: {0}", ins.OpCode.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture, "Invalid opcode: {0}", ins.OpCode.Name);
+ throw new ArgumentException (msg);
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/DoNotCastIntPtrToInt32Rule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/DoNotCastIntPtrToInt32Rule.cs
index 908fb83..6e2f0d6 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/DoNotCastIntPtrToInt32Rule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/DoNotCastIntPtrToInt32Rule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -87,7 +88,7 @@ namespace Gendarme.Rules.Interoperability {
private void Report (MethodDefinition method, Instruction ins, string typeName)
{
- string msg = String.Format ("Type cast to '{0}'.", typeName);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Type cast to '{0}'.", typeName);
Runner.Report (method, ins, Severity.High, Confidence.Normal, msg);
}
@@ -130,7 +131,7 @@ namespace Gendarme.Rules.Interoperability {
} else if (uintptr && (name == "ToUInt32")) {
Runner.Report (method, ins, Severity.High, Confidence.Normal, "Call to 'UIntPtr.ToUInt32()'.");
} else if (name == "op_Explicit") {
- string rtfullname = mr.ReturnType.FullName;
+ string rtfullname = mr.ReturnType.GetFullName ();
switch (rtfullname) {
case "System.Int64":
case "System.UInt64":
@@ -165,8 +166,9 @@ namespace Gendarme.Rules.Interoperability {
if (m.Name != "op_Explicit")
return;
- string msg = String.Format ("A '{0}' value is casted into an '{1}' when reading marshalled memory.",
- mr.ReturnType.FullName, m.Parameters [0].ParameterType.FullName);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "A '{0}' value is casted into an '{1}' when reading marshalled memory.",
+ mr.ReturnType.GetFullName (), m.Parameters [0].ParameterType.GetFullName ());
Runner.Report (method, ins, Severity.High, Confidence.Normal, msg);
}
}
@@ -190,12 +192,14 @@ namespace Gendarme.Rules.Interoperability {
continue;
// look for both IntPtr and the (less known) UIntPtr
- string type = mr.DeclaringType.FullName;
- bool intptr = (type == "System.IntPtr");
- bool uintptr = (type == "System.UIntPtr");
- if (intptr || uintptr) {
- CheckCastOnIntPtr (method, ins, mr, intptr, uintptr);
- } else if (type == "System.Runtime.InteropServices.Marshal") {
+ TypeReference type = mr.DeclaringType;
+ if (type.Namespace == "System") {
+ string name = type.Name;
+ bool intptr = (name == "IntPtr");
+ bool uintptr = (name == "UIntPtr");
+ if (intptr || uintptr)
+ CheckCastOnIntPtr (method, ins, mr, intptr, uintptr);
+ } else if (type.IsNamed ("System.Runtime.InteropServices", "Marshal")) {
CheckCastOnMarshal (method, ins, mr);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/Gendarme.Rules.Interoperability.csproj b/gendarme/rules/Gendarme.Rules.Interoperability/Gendarme.Rules.Interoperability.csproj
index 04cd1c6..1b0a126 100755
--- a/gendarme/rules/Gendarme.Rules.Interoperability/Gendarme.Rules.Interoperability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/Gendarme.Rules.Interoperability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Interoperability</RootNamespace>
<AssemblyName>Gendarme.Rules.Interoperability</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Interoperability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Interoperability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -65,6 +87,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/GetLastErrorMustBeCalledRightAfterPInvokeRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/GetLastErrorMustBeCalledRightAfterPInvokeRule.cs
index 39cb63f..37b5dad 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/GetLastErrorMustBeCalledRightAfterPInvokeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/GetLastErrorMustBeCalledRightAfterPInvokeRule.cs
@@ -98,9 +98,9 @@ namespace Gendarme.Rules.Interoperability {
return false;
}
- public bool Equals (Branch branch)
+ public bool Equals (Branch other)
{
- return (Instruction == branch.Instruction) && (DirtyMethodCalled == branch.DirtyMethodCalled);
+ return (Instruction == other.Instruction) && (DirtyMethodCalled == other.DirtyMethodCalled);
}
public override int GetHashCode ()
@@ -135,13 +135,18 @@ namespace Gendarme.Rules.Interoperability {
//check if a method is called
if (ins.OpCode.FlowControl == FlowControl.Call) {
+ MethodReference mRef = ins.Operand as MethodReference;
- MethodDefinition mDef = (ins.Operand as MethodReference).Resolve ();
+ if (mRef == null) {
+ continue;
+ }
+
+ MethodDefinition mDef = mRef.Resolve();
if (mDef != null && mDef.IsPInvokeImpl) { //check if another pinvoke method is called, this counts as "GetLastError not called"
break;
}
-
- string s = (mDef == null) ? String.Empty : mDef.DeclaringType.FullName;
+
+ string s = (mDef == null) ? String.Empty : mDef.DeclaringType.GetFullName ();
switch (s) {
case "System.Runtime.InteropServices.Marshal":
getLastErrorFound = (mDef.Name == "GetLastWin32Error");
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/Makefile.in b/gendarme/rules/Gendarme.Rules.Interoperability/Makefile.in
index 1f32a21..40bc960 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -277,14 +353,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -294,6 +370,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -302,42 +379,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -346,7 +444,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -363,7 +461,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -371,7 +469,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -397,16 +495,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -414,14 +512,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -433,7 +531,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -442,29 +540,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -485,29 +588,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -530,10 +645,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -541,6 +661,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -560,6 +681,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -569,18 +692,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -602,8 +735,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -623,11 +756,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -636,7 +769,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -656,6 +789,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/MarshalBooleansInPInvokeDeclarationsRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/MarshalBooleansInPInvokeDeclarationsRule.cs
index 588748a..acf7156 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/MarshalBooleansInPInvokeDeclarationsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/MarshalBooleansInPInvokeDeclarationsRule.cs
@@ -64,13 +64,13 @@ namespace Gendarme.Rules.Interoperability {
[FxCopCompatibility ("Microsoft.Interoperability", "CA1414:MarkBooleanPInvokeArgumentsWithMarshalAs")]
public class MarshalBooleansInPInvokeDeclarationsRule : Rule, IMethodRule {
- static bool CheckBooleanMarshalling (IMarshalInfoProvider spec, MemberReference type)
+ static bool CheckBooleanMarshalling (IMarshalInfoProvider spec, TypeReference type)
{
// is marshalling information provided
if (spec.MarshalInfo != null)
return true;
// using StartsWith to catch references (ref)
- return !type.FullName.StartsWith ("System.Boolean", StringComparison.Ordinal);
+ return !(type.Namespace == "System" && type.Name.StartsWith ("Boolean", StringComparison.Ordinal));
}
public RuleResult CheckMethod (MethodDefinition method)
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/MarshalStringsInPInvokeDeclarationsRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/MarshalStringsInPInvokeDeclarationsRule.cs
index 442dd74..7edf597 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/MarshalStringsInPInvokeDeclarationsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/MarshalStringsInPInvokeDeclarationsRule.cs
@@ -27,9 +27,11 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Interoperability {
@@ -69,13 +71,8 @@ namespace Gendarme.Rules.Interoperability {
private static bool IsStringOrSBuilder (TypeReference reference)
{
- switch (reference.GetElementType ().FullName) {
- case "System.String":
- case "System.Text.StringBuilder":
- return true;
- default:
- return false;
- }
+ TypeReference type = reference.GetElementType ();
+ return (type.IsNamed ("System", "String") || type.IsNamed ("System.Text", "StringBuilder"));
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -93,7 +90,8 @@ namespace Gendarme.Rules.Interoperability {
foreach (ParameterDefinition parameter in method.Parameters) {
if (IsStringOrSBuilder (parameter.ParameterType) && (parameter.MarshalInfo == null)) {
- string text = string.Format ("Parameter '{0}', of type '{1}', does not have [MarshalAs] attribute, yet no [DllImport CharSet=] is set for the method '{2}'.",
+ string text = String.Format (CultureInfo.InvariantCulture,
+ "Parameter '{0}', of type '{1}', does not have [MarshalAs] attribute, yet no [DllImport CharSet=] is set for the method '{2}'.",
parameter.Name, parameter.ParameterType.Name, method.Name);
Runner.Report (parameter, Severity.High, Confidence.Total, text);
}
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile.in
index de1b73c..3e96574 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Interoperability/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/Test/Tests.Rules.Interoperability.csproj b/gendarme/rules/Gendarme.Rules.Interoperability/Test/Tests.Rules.Interoperability.csproj
index 8f6896b..ce293e7 100755
--- a/gendarme/rules/Gendarme.Rules.Interoperability/Test/Tests.Rules.Interoperability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/Test/Tests.Rules.Interoperability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Interoperability</RootNamespace>
<AssemblyName>Tests.Rules.Interoperability</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -22,6 +42,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -31,6 +52,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -73,6 +95,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Interoperability/UseManagedAlternativesToPInvokeRule.cs b/gendarme/rules/Gendarme.Rules.Interoperability/UseManagedAlternativesToPInvokeRule.cs
index 4f502cb..27c7d8f 100644
--- a/gendarme/rules/Gendarme.Rules.Interoperability/UseManagedAlternativesToPInvokeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Interoperability/UseManagedAlternativesToPInvokeRule.cs
@@ -29,8 +29,9 @@
//
using System;
-using System.Linq;
using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
using Gendarme.Framework;
using Mono.Cecil;
@@ -129,7 +130,8 @@ namespace Gendarme.Rules.Interoperability {
if (alternatives == null)
return RuleResult.Success;
- string message = string.Format ("Try to replace the platform-dependent call '{0}' by (one of) the following alternative(s): {1}.",
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "Try to replace the platform-dependent call '{0}' by (one of) the following alternative(s): {1}.",
method.Name, alternatives.Alternatives);
Runner.Report (method, Severity.Low, Confidence.High, message);
return RuleResult.Failure;
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidAlwaysNullFieldRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidAlwaysNullFieldRule.cs
index 8fa7eb1..ac27858 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidAlwaysNullFieldRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidAlwaysNullFieldRule.cs
@@ -166,6 +166,16 @@ namespace Gendarme.Rules.Maintainability {
}
};
}
+
+ void CheckMethods (TypeDefinition type)
+ {
+ if (!type.HasMethods)
+ return;
+
+ IList<MethodDefinition> mc = type.Methods;
+ for (int i = 0; i < mc.Count && nullFields.Count > 0; ++i)
+ CheckMethod (mc [i]);
+ }
public RuleResult CheckType (TypeDefinition type)
{
@@ -175,7 +185,7 @@ namespace Gendarme.Rules.Maintainability {
Log.WriteLine (this);
Log.WriteLine (this, "----------------------------------");
- bool isWinFormControl = usesWinForms && type.Inherits("System.Windows.Forms.Control");
+ bool isWinFormControl = usesWinForms && type.Inherits ("System.Windows.Forms", "Control");
// All fields start out as always null and unused.
foreach (FieldDefinition field in type.Fields) {
@@ -184,10 +194,10 @@ namespace Gendarme.Rules.Maintainability {
nullFields.Add (field);
}
- if (type.HasMethods) {
- IList<MethodDefinition> mc = type.Methods;
- for (int i = 0; i < mc.Count && nullFields.Count > 0; ++i)
- CheckMethod (mc [i]);
+ CheckMethods (type);
+ if (type.HasNestedTypes) {
+ foreach (TypeDefinition nested in type.NestedTypes)
+ CheckMethods (nested);
}
// Report a defect if:
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidComplexMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidComplexMethodsRule.cs
index 46200ab..59d780d 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidComplexMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidComplexMethodsRule.cs
@@ -31,6 +31,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -127,7 +128,8 @@ namespace Gendarme.Rules.Maintainability {
//how's severity?
Severity sev = GetCyclomaticComplexitySeverity(cc);
- Runner.Report (method, sev, Confidence.High, String.Format ("Method's cyclomatic complexity : {0}.", cc));
+ string msg = String.Format (CultureInfo.CurrentCulture, "Method's cyclomatic complexity : {0}.", cc);
+ Runner.Report (method, sev, Confidence.High, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidDeepInheritanceTreeRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidDeepInheritanceTreeRule.cs
index a0e2af8..010ac00 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidDeepInheritanceTreeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidDeepInheritanceTreeRule.cs
@@ -28,6 +28,7 @@
using System;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
@@ -84,11 +85,12 @@ namespace Gendarme.Rules.Maintainability {
return RuleResult.DoesNotApply;
int depth = 0;
- while (type.BaseType != null) {
- type = type.BaseType.Resolve ();
- if (type == null)
+ TypeDefinition temp = type;
+ while (temp.BaseType != null) {
+ temp = temp.BaseType.Resolve();
+ if (temp == null)
break;
- if (countExternalDepth || Runner.Assemblies.Contains (type.Module.Assembly))
+ if (countExternalDepth || Runner.Assemblies.Contains(temp.Module.Assembly))
depth++;
}
@@ -99,7 +101,8 @@ namespace Gendarme.Rules.Maintainability {
// where it's possible we can't resolve up to System.Object
Confidence confidence = countExternalDepth ? Confidence.High : Confidence.Total;
// Severity is based on the depth
- Runner.Report (type, GetSeverity (depth), confidence, String.Format ("Inheritance tree depth : {0}.", depth));
+ string msg = String.Format (CultureInfo.CurrentCulture, "Inheritance tree depth : {0}.", depth);
+ Runner.Report (type, GetSeverity (depth), confidence, msg);
return RuleResult.Failure;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidLackOfCohesionOfMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidLackOfCohesionOfMethodsRule.cs
index 4a428f0..44df73b 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidLackOfCohesionOfMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidLackOfCohesionOfMethodsRule.cs
@@ -31,6 +31,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -88,7 +89,8 @@ namespace Gendarme.Rules.Maintainability {
//how's severity?
Severity sev = GetCohesivenessSeverity(coh);
- Runner.Report (type, sev, Confidence.Normal, String.Format ("Type cohesiveness : {0}%", (int) (coh * 100)));
+ string msg = String.Format (CultureInfo.CurrentCulture, "Type cohesiveness : {0}%", (int) (coh * 100));
+ Runner.Report (type, sev, Confidence.Normal, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidUnnecessarySpecializationRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidUnnecessarySpecializationRule.cs
index c16bfbf..a906ebd 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/AvoidUnnecessarySpecializationRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/AvoidUnnecessarySpecializationRule.cs
@@ -215,7 +215,7 @@ namespace Gendarme.Rules.Maintainability {
if (pType is GenericParameter)
parameters [i] = null; //TODO: constructed mapping?
else
- parameters [i] = pType.FullName;
+ parameters [i] = pType.GetFullName ();
}
return new MethodSignature (name, rtype, parameters);
}
@@ -225,7 +225,7 @@ namespace Gendarme.Rules.Maintainability {
//special exception
if (!method.HasParameters && (method.Name == "GetEnumerator"))
return null;
- return method.ReturnType.FullName;
+ return method.ReturnType.GetFullName ();
}
private static bool IsSystemObjectMethod (MethodReference method)
@@ -250,7 +250,7 @@ namespace Gendarme.Rules.Maintainability {
//HACK: BOO:
case "EqualityOperator" :
return (method.HasParameters && (method.Parameters.Count == 2) &&
- (method.DeclaringType.FullName == "Boo.Lang.Runtime.RuntimeServices"));
+ (method.DeclaringType.IsNamed ("Boo.Lang.Runtime", "RuntimeServices")));
}
return false;
}
@@ -262,7 +262,7 @@ namespace Gendarme.Rules.Maintainability {
private static bool IsIgnoredSuggestionType (TypeReference type)
{
- return ((type.FullName == "System.Object") || IsFromNonGenericCollectionNamespace (type.Namespace));
+ return (type.IsNamed ("System", "Object") || IsFromNonGenericCollectionNamespace (type.Namespace));
}
private static List<MethodSignature> GetSignatures (IEnumerable<StackEntryUsageResult> usageResults)
@@ -285,7 +285,7 @@ namespace Gendarme.Rules.Maintainability {
private void UpdateParameterLeastType (ParameterReference parameter, IEnumerable<StackEntryUsageResult> usageResults)
{
- int pIndex = parameter.GetSequence () - 1;
+ int pIndex = parameter.Index;
int parameterDepth = GetActualTypeDepth (parameter.ParameterType);
int currentLeastDepth = 0;
@@ -366,7 +366,7 @@ namespace Gendarme.Rules.Maintainability {
ParameterDefinition parameter = ins.GetParameter (method);
// this is `this`, we do not care
- if ((parameter == null) || (parameter.GetSequence () == 0))
+ if ((parameter == null) || (parameter.Index == -1))
continue;
// is parameter already known ?
@@ -474,7 +474,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (ParameterDefinition parameter in method.Parameters){
- int i = parameter.GetSequence () - 1;
+ int i = parameter.Index;
if (null == types_least [i])
continue; //argument is not used
@@ -540,7 +540,7 @@ namespace Gendarme.Rules.Maintainability {
else
nRemoveTrail = 3;
- string fullname = type.FullName;
+ string fullname = type.GetFullName ();
sb.Append (fullname.Substring (0, fullname.Length - nRemoveTrail));
if (count > 0) {
int n = 0;
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/ConsiderUsingStopwatchRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/ConsiderUsingStopwatchRule.cs
index 17a448f..79353c1 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/ConsiderUsingStopwatchRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/ConsiderUsingStopwatchRule.cs
@@ -77,9 +77,6 @@ namespace Gendarme.Rules.Maintainability {
[EngineDependency (typeof (OpCodeEngine))]
public class ConsiderUsingStopwatchRule : Rule, IMethodRule {
- private const string DateTime = "System.DateTime";
- private const string GetNow = "get_Now";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -90,8 +87,11 @@ namespace Gendarme.Rules.Maintainability {
// did not exist back then.
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
Active = (e.CurrentModule.Runtime >= TargetRuntime.Net_2_0
- && (e.CurrentAssembly.Name.Name == "mscorlib"
- || e.CurrentModule.HasTypeReference (DateTime)));
+ && (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "DateTime");
+ }
+ )));
};
}
@@ -106,7 +106,7 @@ namespace Gendarme.Rules.Maintainability {
return false;
MethodReference calledMethod = (MethodReference) ins.Operand;
- return calledMethod.DeclaringType.FullName == DateTime && calledMethod.Name == GetNow;
+ return calledMethod.IsNamed ("System", "DateTime", "get_Now");
}
private static bool CheckParameters (MethodDefinition method, Instruction ins)
@@ -125,14 +125,14 @@ namespace Gendarme.Rules.Maintainability {
ParameterDefinition p = prev.GetParameter (method);
if (p == null)
return false;
- int arg = p.GetSequence ();
+ int arg = p.Index;
prev = prev.Previous;
while (null != prev) {
// look for a STOBJ instruction and compare the objects
if (prev.OpCode.Code == Code.Stobj) {
prev = prev.TraceBack (method);
p = prev.GetParameter (method);
- return (p == null) ? false : (arg == p.GetSequence ());
+ return (p == null) ? false : (arg == p.Index);
}
prev = prev.Previous;
}
@@ -161,11 +161,10 @@ namespace Gendarme.Rules.Maintainability {
return RuleResult.DoesNotApply;
foreach (Instruction ins in method.Body.Instructions) {
- if (!calls.Get (ins.OpCode.Code))
+ MethodReference calledMethod = ins.GetMethod ();
+ if (calledMethod == null)
continue;
-
- MethodReference calledMethod = (MethodReference) ins.Operand;
- if (calledMethod.DeclaringType.FullName != DateTime)
+ if (!calledMethod.DeclaringType.IsNamed ("System", "DateTime"))
continue;
if (!MethodSignatures.op_Subtraction.Matches (calledMethod))
continue;
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Gendarme.Rules.Maintainability.csproj b/gendarme/rules/Gendarme.Rules.Maintainability/Gendarme.Rules.Maintainability.csproj
index 3a4fd96..261474c 100755
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Gendarme.Rules.Maintainability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Gendarme.Rules.Maintainability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Maintainability</RootNamespace>
<AssemblyName>Gendarme.Rules.Maintainability</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Maintainability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Maintainability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -67,6 +89,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Makefile.in b/gendarme/rules/Gendarme.Rules.Maintainability/Makefile.in
index a61e12a..7b9ba3a 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -282,14 +358,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -299,6 +375,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -307,42 +384,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -351,7 +449,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -368,7 +466,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -376,7 +474,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -402,16 +500,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -419,14 +517,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -438,7 +536,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -447,29 +545,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -490,29 +593,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -535,10 +650,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -546,6 +666,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -565,6 +686,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -574,18 +697,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -607,8 +740,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -628,11 +761,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -641,7 +774,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -661,6 +794,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs
index fc5d1f8..efe4653 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs
@@ -116,7 +116,14 @@ namespace Gendarme.Rules.Maintainability {
case Code.Ldloc_S:
return (ins.Operand as VariableDefinition).Name;
default:
- return (ins.Operand == null) ? String.Empty : ins.Operand.ToString ();
+ object o = ins.Operand;
+ MemberReference mr = (o as MemberReference);
+ if (mr != null)
+ return mr.GetFullName ();
+ else if (o != null)
+ return o.ToString ();
+ else
+ return String.Empty;
}
}
@@ -196,7 +203,7 @@ namespace Gendarme.Rules.Maintainability {
continue;
MethodReference mr = (current.Operand as MethodReference);
- if ((mr.Name == "get_Length") && (mr.DeclaringType.FullName == "System.String")) {
+ if (mr.IsNamed ("System", "String", "get_Length")) {
// now that we found it we check that
// 1 - we previously did a check null on the same value (that we already know is a string)
Instruction branch = PreLengthCheck (method, current.Previous);
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/RemoveDependenceOnObsoleteCodeRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/RemoveDependenceOnObsoleteCodeRule.cs
index 7686b8e..31868ea 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/RemoveDependenceOnObsoleteCodeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/RemoveDependenceOnObsoleteCodeRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -101,8 +102,6 @@ namespace Gendarme.Rules.Maintainability {
[EngineDependency (typeof (OpCodeEngine))]
public class RemoveDependenceOnObsoleteCodeRule : Rule, ITypeRule, IMethodRule {
- const string Obsolete = "System.ObsoleteAttribute";
-
static Dictionary<TypeReference, bool> types = new Dictionary<TypeReference, bool> ();
static Dictionary<MethodReference, bool> methods = new Dictionary<MethodReference, bool> ();
static Dictionary<FieldReference, bool> fields = new Dictionary<FieldReference, bool> ();
@@ -115,7 +114,7 @@ namespace Gendarme.Rules.Maintainability {
bool obsolete = false;
if (!types.TryGetValue (type, out obsolete)) {
TypeDefinition t = type.Resolve ();
- obsolete = t == null ? false : t.HasAttribute (Obsolete);
+ obsolete = t.HasAttribute ("System", "ObsoleteAttribute");
types.Add (type, obsolete);
}
return obsolete;
@@ -129,7 +128,7 @@ namespace Gendarme.Rules.Maintainability {
bool obsolete = false;
if (!methods.TryGetValue (method, out obsolete)) {
MethodDefinition md = method.Resolve ();
- obsolete = (md == null) ? false : md.HasAttribute (Obsolete);
+ obsolete = md.HasAttribute ("System", "ObsoleteAttribute");
methods.Add (method, obsolete);
}
return obsolete;
@@ -143,7 +142,7 @@ namespace Gendarme.Rules.Maintainability {
bool obsolete = false;
if (!fields.TryGetValue (field, out obsolete)) {
FieldDefinition fd = field.Resolve ();
- obsolete = (fd == null) ? false : fd.HasAttribute (Obsolete);
+ obsolete = fd.HasAttribute ("System", "ObsoleteAttribute");
fields.Add (field, obsolete);
}
return obsolete;
@@ -154,7 +153,7 @@ namespace Gendarme.Rules.Maintainability {
if (!IsObsolete (type.BaseType))
return;
- string msg = String.Format ("Inherit from obsolete type '{0}'.", type.BaseType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Inherit from obsolete type '{0}'.", type.BaseType);
Runner.Report (type, type.IsVisible () ? Severity.High : Severity.Medium, Confidence.Total, msg);
}
@@ -162,7 +161,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (TypeReference intf in type.Interfaces) {
if (IsObsolete (intf)) {
- string msg = String.Format ("Implement obsolete interface '{0}'.", intf);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Implement obsolete interface '{0}'.", intf);
Runner.Report (type, type.IsVisible () ? Severity.Medium : Severity.Low, Confidence.Total, msg);
}
}
@@ -172,7 +171,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (FieldDefinition field in type.Fields) {
if (IsObsolete (field.FieldType)) {
- string msg = String.Format ("Field type '{0}' is obsolete.", field.FieldType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Field type '{0}' is obsolete.", field.FieldType);
Runner.Report (field, field.IsVisible () ? Severity.Medium : Severity.Low, Confidence.Total, msg);
}
}
@@ -183,7 +182,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (PropertyDefinition property in type.Properties) {
if (IsObsolete (property.PropertyType)) {
- string msg = String.Format ("Property type '{0}' is obsolete.", property.PropertyType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Property type '{0}' is obsolete.", property.PropertyType);
bool visible = (IsVisible (property.GetMethod) || IsVisible (property.SetMethod));
Runner.Report (property, visible ? Severity.High : Severity.Medium, Confidence.Total, msg);
}
@@ -194,7 +193,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (EventDefinition evnt in type.Events) {
if (IsObsolete (evnt.EventType)) {
- string msg = String.Format ("Event type '{0}' is obsolete.", evnt.EventType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Event type '{0}' is obsolete.", evnt.EventType);
bool visible = (IsVisible (evnt.AddMethod) || IsVisible (evnt.RemoveMethod) ||
IsVisible (evnt.InvokeMethod));
Runner.Report (evnt, visible ? Severity.High : Severity.Medium, Confidence.Total, msg);
@@ -220,7 +219,7 @@ namespace Gendarme.Rules.Maintainability {
public RuleResult CheckType (TypeDefinition type)
{
// we're not interested in the details of [Obsolete] types
- if (type.HasAttribute (Obsolete))
+ if (type.HasAttribute ("System", "ObsoleteAttribute"))
return RuleResult.DoesNotApply;
// check if we inherit from an [Obsolete] class / struct / enum
@@ -249,7 +248,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (ParameterDefinition p in method.Parameters) {
if (IsObsolete (p.ParameterType)) {
- string msg = String.Format ("Parameter type '{0}' is obsolete.", p.ParameterType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Parameter type '{0}' is obsolete.", p.ParameterType);
Runner.Report (p, method.IsVisible () ? Severity.High : Severity.Medium, Confidence.Total, msg);
}
}
@@ -261,7 +260,7 @@ namespace Gendarme.Rules.Maintainability {
if (!IsObsolete (rt))
return;
- string msg = String.Format ("Return type '{0}' is obsolete.", rt);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Return type '{0}' is obsolete.", rt);
Runner.Report (method, method.IsVisible () ? Severity.High : Severity.Medium, Confidence.Total, msg);
}
@@ -269,7 +268,7 @@ namespace Gendarme.Rules.Maintainability {
{
foreach (VariableDefinition v in method.Body.Variables) {
if (IsObsolete (v.VariableType)) {
- string msg = String.Format ("Variable type '{0}' is obsolete.", v.VariableType);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Variable type '{0}' is obsolete.", v.VariableType);
Runner.Report (method, Severity.Low, Confidence.High, msg);
}
}
@@ -280,7 +279,7 @@ namespace Gendarme.Rules.Maintainability {
if (!IsObsolete (type))
return;
- string msg = String.Format ("Type '{0}' is obsolete.", type);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Type '{0}' is obsolete.", type);
Severity severity = type.IsVisible () ? Severity.Medium : Severity.Low;
Runner.Report (method, ins, severity, Confidence.High, msg);
}
@@ -292,11 +291,11 @@ namespace Gendarme.Rules.Maintainability {
string msg = null;
if (IsObsolete (call)) {
- msg = String.Format ("Method '{0}' is obsolete.", call);
+ msg = String.Format (CultureInfo.InvariantCulture, "Method '{0}' is obsolete.", call);
} else {
TypeReference type = call.DeclaringType;
if (IsObsolete (type))
- msg = String.Format ("Type '{0}' is obsolete.", type);
+ msg = String.Format (CultureInfo.InvariantCulture, "Type '{0}' is obsolete.", type);
}
if (msg != null) {
@@ -312,9 +311,9 @@ namespace Gendarme.Rules.Maintainability {
string msg = null;
if (IsObsolete (field)) {
- msg = String.Format ("Field '{0}' is obsolete.", field.Name);
+ msg = String.Format (CultureInfo.InvariantCulture, "Field '{0}' is obsolete.", field.Name);
} else if (IsObsolete (field.DeclaringType)) {
- msg = String.Format ("Field type '{0}' is obsolete.", field.FieldType);
+ msg = String.Format (CultureInfo.InvariantCulture, "Field type '{0}' is obsolete.", field.FieldType);
} else {
return;
}
@@ -339,7 +338,7 @@ namespace Gendarme.Rules.Maintainability {
return RuleResult.DoesNotApply;
// if the method is obsolete (directly or because it's type is)
- if (method.HasAttribute (Obsolete) || method.DeclaringType.HasAttribute (Obsolete))
+ if (method.HasAttribute ("System", "ObsoleteAttribute") || method.DeclaringType.HasAttribute ("System", "ObsoleteAttribute"))
return RuleResult.DoesNotApply;
// check method signature (parameters, return value)
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/ReviewMisleadingFieldNamesRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/ReviewMisleadingFieldNamesRule.cs
index 12999b3..6855c77 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/ReviewMisleadingFieldNamesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/ReviewMisleadingFieldNamesRule.cs
@@ -26,32 +26,32 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-
+using System;
using Mono.Cecil;
-
using Gendarme.Framework;
namespace Gendarme.Rules.Maintainability {
/// <summary>
/// This rule checks for fields which have misleading names, e.g. instance fields beginning with "s_"
+ /// or static fields beginning with "m_", since they can be confusing when reading source code.
/// </summary>
/// <example>
/// Bad example:
/// <code>
- /// public class Bad {
- /// public int s_Value;
- /// public static int m_OtherValue;
- /// }
+ /// public class Bad {
+ /// int s_value;
+ /// static int m_other_value;
+ /// }
/// </code>
/// </example>
/// <example>
/// Good example:
/// <code>
- /// public class Good {
- /// public int m_Value;
- /// public static int s_OtherValue;
- /// }
+ /// public class Good {
+ /// int value;
+ /// static int other_value;
+ /// }
/// </code>
/// </example>
@@ -68,7 +68,8 @@ namespace Gendarme.Rules.Maintainability {
foreach (FieldDefinition field in type.Fields) {
string name = field.Name;
- if (field.IsStatic ? name.StartsWith ("m_") : name.StartsWith ("s_"))
+ string prefix = field.IsStatic ? "m_" : "s_";
+ if (name.StartsWith (prefix, StringComparison.Ordinal))
Runner.Report (field, Severity.Low, Confidence.Total);
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidAlwaysNullFieldTest.cs b/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidAlwaysNullFieldTest.cs
index 95ac856..4307c2f 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidAlwaysNullFieldTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidAlwaysNullFieldTest.cs
@@ -3,8 +3,10 @@
//
// Authors:
// Jesse Jones <jesjones at mindspring.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// Copyright (C) 2008 Jesse Jones
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -29,8 +31,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
+using System.Threading;
using Gendarme.Rules.Maintainability;
@@ -231,5 +232,51 @@ namespace Test.Rules.Maintainability {
AssertRuleSuccess<Bug667692a> ();
AssertRuleSuccess<Bug667692b> ();
}
+
+ // this will create an anonymous method
+ class AnonymousDelegatesAllFields {
+
+ string file;
+
+ void Parse ()
+ {
+ ThreadPool.QueueUserWorkItem (delegate {
+ file = "";
+ });
+ }
+
+ void Show ()
+ {
+ Console.WriteLine (file);
+ }
+ }
+
+ // this will create a nested type with the anonymous method
+ class AnonymousDelegatesFieldsAndLocals {
+
+ string file;
+
+ void Parse ()
+ {
+ string local;
+
+ ThreadPool.QueueUserWorkItem (delegate {
+ file = "";
+ local = file;
+ });
+ }
+
+ void Show ()
+ {
+ Console.WriteLine (file);
+ }
+ }
+
+ [Test]
+ public void AnonymousDelegates ()
+ {
+ AssertRuleSuccess<AnonymousDelegatesAllFields> ();
+ AssertRuleSuccess<AnonymousDelegatesFieldsAndLocals> ();
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidUnnecessarySpecializationTest.cs b/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidUnnecessarySpecializationTest.cs
index c974504..1ae36c4 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidUnnecessarySpecializationTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Test/AvoidUnnecessarySpecializationTest.cs
@@ -25,9 +25,10 @@
// THE SOFTWARE.
using System;
-using System.Reflection;
using System.Collections;
using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
using Mono.Cecil;
@@ -631,5 +632,34 @@ namespace Test.Rules.Maintainability {
AssertRuleSuccess<GeneralizedClass> ("OverloadNotSupportedByInterface");
AssertRuleFailure<SpecializedClass> ("OverloadNotSupportedByInterface", 1);
}
+
+ class TestCase690057 {
+ public class nauczyciel {
+ public Guid Oid;
+ public List<object> NoweGrupies = new List<object> ();
+ }
+ public List<nauczyciel> nauczyciele = new List<nauczyciel> ();
+ public void WyslijMaile (List<Guid> ListIdJ, Guid idRok)
+ {
+
+ var cmd = from c in nauczyciele
+ where ListIdJ.Contains (c.Oid)
+ select c;
+ foreach (var s in cmd) {
+ try {
+ foreach (var grp in s.NoweGrupies)
+ ;
+ }
+ catch (Exception ex) {
+ }
+ }
+ }
+ }
+
+ [Test]
+ public void Bug690057 ()
+ {
+ AssertRuleSuccess<TestCase690057> ("WyslijMaile");
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile.in
index a82ac6c..67153c5 100644
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Maintainability/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/Test/Tests.Rules.Maintainability.csproj b/gendarme/rules/Gendarme.Rules.Maintainability/Test/Tests.Rules.Maintainability.csproj
index f72d459..5f08e85 100755
--- a/gendarme/rules/Gendarme.Rules.Maintainability/Test/Tests.Rules.Maintainability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Maintainability/Test/Tests.Rules.Maintainability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Maintainability</RootNamespace>
<AssemblyName>Tests.Rules.Maintainability</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -76,6 +98,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/Gendarme.Rules.NUnit.csproj b/gendarme/rules/Gendarme.Rules.NUnit/Gendarme.Rules.NUnit.csproj
index b621be2..6ce2d1d 100755
--- a/gendarme/rules/Gendarme.Rules.NUnit/Gendarme.Rules.NUnit.csproj
+++ b/gendarme/rules/Gendarme.Rules.NUnit/Gendarme.Rules.NUnit.csproj
@@ -1,72 +1,111 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{54625746-D966-4BC2-A465-8F0928A767E6}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Gendarme.Rules.NUnit</RootNamespace>
- <AssemblyName>Gendarme.Rules.NUnit</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\console\bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.NUnit.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\console\bin\Release\</OutputPath>
- <DefineConstants>TRACE;RELEASE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.NUnit.xml</DocumentationFile>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="NUnitRocks.cs" />
- <Compile Include="NUnitRule.cs" />
- <Compile Include="ProvideMessageOnAssertCallsRule.cs" />
- <Compile Include="TestMethodsMustBePublicRule.cs" />
- <Compile Include="UnitTestsMissingTestFixtureRule.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{54625746-D966-4BC2-A465-8F0928A767E6}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Gendarme.Rules.NUnit</RootNamespace>
+ <AssemblyName>Gendarme.Rules.NUnit</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\console\bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.NUnit.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\console\bin\Release\</OutputPath>
+ <DefineConstants>TRACE;RELEASE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.NUnit.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="NUnitRocks.cs" />
+ <Compile Include="NUnitRule.cs" />
+ <Compile Include="ProvideMessageOnAssertCallsRule.cs" />
+ <Compile Include="TestMethodsMustBePublicRule.cs" />
+ <Compile Include="UnitTestsMissingTestFixtureRule.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/Makefile.in b/gendarme/rules/Gendarme.Rules.NUnit/Makefile.in
index 7a4c71c..6c3aeb4 100644
--- a/gendarme/rules/Gendarme.Rules.NUnit/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.NUnit/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -271,14 +347,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -288,6 +364,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -296,42 +373,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -340,7 +438,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -357,7 +455,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -365,7 +463,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -391,16 +489,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -408,14 +506,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -427,7 +525,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -436,29 +534,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -479,29 +582,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -524,10 +639,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -535,6 +655,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -554,6 +675,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -563,18 +686,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -596,8 +729,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -617,11 +750,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -630,7 +763,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -650,6 +783,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/ProvideMessageOnAssertCallsRule.cs b/gendarme/rules/Gendarme.Rules.NUnit/ProvideMessageOnAssertCallsRule.cs
index 4c58065..1e01a2b 100644
--- a/gendarme/rules/Gendarme.Rules.NUnit/ProvideMessageOnAssertCallsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.NUnit/ProvideMessageOnAssertCallsRule.cs
@@ -95,7 +95,7 @@ namespace Gendarme.Rules.NUnit {
continue;
MethodReference m = (instruction.Operand as MethodReference);
- if (m == null || m.DeclaringType.FullName != "NUnit.Framework.Assert" ||
+ if (m == null || !m.DeclaringType.IsNamed ("NUnit.Framework", "Assert") ||
exceptions.Contains (m.Name))
continue;
@@ -105,7 +105,7 @@ namespace Gendarme.Rules.NUnit {
if (resolvedMethod == null)
continue;
foreach (ParameterDefinition parameter in resolvedMethod.Parameters) {
- if (parameter.ParameterType.FullName == "System.String" &&
+ if (parameter.ParameterType.IsNamed ("System", "String") &&
parameter.Name == "message") {
foundMessage = true;
break;
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile.in
index 318459e..2b1bb26 100644
--- a/gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.NUnit/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/Test/Tests.Rules.NUnit.csproj b/gendarme/rules/Gendarme.Rules.NUnit/Test/Tests.Rules.NUnit.csproj
index 411ce56..7fc3ffe 100755
--- a/gendarme/rules/Gendarme.Rules.NUnit/Test/Tests.Rules.NUnit.csproj
+++ b/gendarme/rules/Gendarme.Rules.NUnit/Test/Tests.Rules.NUnit.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.NUnit</RootNamespace>
<AssemblyName>Tests.Rules.NUnit</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -68,6 +90,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.NUnit/UnitTestsMissingTestFixtureRule.cs b/gendarme/rules/Gendarme.Rules.NUnit/UnitTestsMissingTestFixtureRule.cs
index 4b0164c..daa4721 100644
--- a/gendarme/rules/Gendarme.Rules.NUnit/UnitTestsMissingTestFixtureRule.cs
+++ b/gendarme/rules/Gendarme.Rules.NUnit/UnitTestsMissingTestFixtureRule.cs
@@ -81,7 +81,7 @@ namespace Gendarme.Rules.NUnit {
// check if TestFixture is applied to any type in the hierarchy
TypeDefinition testingType = type;
while (testingType != null) {
- if (testingType.HasAttribute ("NUnit.Framework.TestFixtureAttribute"))
+ if (testingType.HasAttribute ("NUnit.Framework", "TestFixtureAttribute"))
return RuleResult.Success;
if (testingType.BaseType != null)
testingType = testingType.BaseType.Resolve ();
diff --git a/gendarme/rules/Gendarme.Rules.Naming/AvoidDeepNamespaceHierarchyRule.cs b/gendarme/rules/Gendarme.Rules.Naming/AvoidDeepNamespaceHierarchyRule.cs
index a8f2afa..f9d2783 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/AvoidDeepNamespaceHierarchyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/AvoidDeepNamespaceHierarchyRule.cs
@@ -96,7 +96,9 @@ namespace Gendarme.Rules.Naming {
[DefaultValue (DefaultMaxDepth)]
[Description ("The depth at which namespaces may be nested without triggering a defect.")]
public int MaxDepth {
- get { return max_depth; }
+ get {
+ return max_depth;
+ }
set {
if (value < 1)
throw new ArgumentOutOfRangeException ("MaxDepth", "Minimum: 1");
@@ -139,7 +141,7 @@ namespace Gendarme.Rules.Naming {
if (levels == MaxDepth + 1) {
if (NamespaceDefinition.IsSpecialized (ns)) {
continue;
- } else if (ns.EndsWith (".Internal") || ns.EndsWith (".Impl")) {
+ } else if (ns.EndsWith (".Internal", StringComparison.Ordinal) || ns.EndsWith (".Impl", StringComparison.Ordinal)) {
continue;
}
}
@@ -149,5 +151,11 @@ namespace Gendarme.Rules.Naming {
}
return Runner.CurrentRuleResult;
}
+
+ public override string Solution {
+ get {
+ return string.Format("Try to keep the depth below {0}, with an additional one for specialization (e.g. Design, Interop, Permissions).", MaxDepth);
+ }
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInMethodNameRule.cs b/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInMethodNameRule.cs
index 305f23b..2bff9a0 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInMethodNameRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInMethodNameRule.cs
@@ -26,6 +26,7 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -138,7 +139,7 @@ namespace Gendarme.Rules.Naming {
if (method_name.StartsWith (name, StringComparison.Ordinal))
return RuleResult.Success;
- int pos = method_name.LastIndexOf (name);
+ int pos = method_name.LastIndexOf (name, StringComparison.Ordinal);
if (-1 == pos)
return RuleResult.Success;
@@ -159,10 +160,11 @@ namespace Gendarme.Rules.Naming {
string msg;
if (method.IsStatic) { //we already have a rule that checks if the method should be static
string memberKind = GetSuggestionMemberKind (method);
- msg = String.Format ("Consider renaming method to '{2}', or extracting method to type '{0}' as {1} '{2}', or making an extension method of that type.",
+ msg = String.Format (CultureInfo.InvariantCulture,
+ "Consider renaming method to '{2}', or extracting method to type '{0}' as {1} '{2}', or making an extension method of that type.",
p0.ParameterType, memberKind, suggestion);
} else {
- msg = String.Format ("Consider renaming method to '{0}'.", suggestion);
+ msg = String.Format (CultureInfo.InvariantCulture, "Consider renaming method to '{0}'.", suggestion);
}
Runner.Report (method, severity, confidence, msg);
@@ -184,7 +186,7 @@ namespace Gendarme.Rules.Naming {
private static string GetSuggestionMemberKind (IMethodSignature method)
{
- if (method.Parameters.Count == 1 && method.ReturnType.FullName != "System.Void")
+ if (method.Parameters.Count == 1 && !method.ReturnType.IsNamed ("System", "Void"))
return "property";
return "method";
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInTypeNameRule.cs b/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInTypeNameRule.cs
index b050cb5..7a36180 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInTypeNameRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/AvoidRedundancyInTypeNameRule.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -94,6 +95,7 @@ namespace Gendarme.Rules.Naming {
[Problem ("This type name is prefixed with the last component of its enclosing namespace. This usually makes an API more verbose and less autocompletion-friendly than necessary.")]
[Solution ("Remove the prefix from the type or replace it with a more meaningful term in the context of the namespace.")]
[EngineDependency (typeof (NamespaceEngine))]
+ [FxCopCompatibility ("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces")]
public class AvoidRedundancyInTypeNameRule : Rule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
@@ -153,7 +155,7 @@ namespace Gendarme.Rules.Naming {
//main goal is to keep the API as simple as possible so this is more severe for visible types
Severity severity = type.IsVisible () ? Severity.Medium : Severity.Low;
- string msg = String.Format ("Consider renaming type to '{0}'.", suggestion);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Consider renaming type to '{0}'.", suggestion);
Runner.Report (type, severity, Confidence.Normal, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/AvoidTypeInterfaceInconsistencyRule.cs b/gendarme/rules/Gendarme.Rules.Naming/AvoidTypeInterfaceInconsistencyRule.cs
index 0570b72..0d47376 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/AvoidTypeInterfaceInconsistencyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/AvoidTypeInterfaceInconsistencyRule.cs
@@ -92,11 +92,11 @@ namespace Gendarme.Rules.Naming {
if (name [0] != 'I')
return RuleResult.DoesNotApply;
- string candidate_name = String.Concat (type.Namespace, ".", name.Substring (1));
- TypeDefinition candidate = type.Module.GetType (candidate_name);
+ string nspace = type.Namespace;
+ TypeDefinition candidate = type.Module.GetType (nspace, name.Substring (1));
if (candidate != null) {
// does Foo implement IFoo ?
- if (!candidate.Implements (type.FullName)) {
+ if (!candidate.Implements (nspace, name)) {
Runner.Report (candidate, Severity.High, Confidence.High);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/DetectNonAlphaNumericsInTypeNamesRule.cs b/gendarme/rules/Gendarme.Rules.Naming/DetectNonAlphaNumericsInTypeNamesRule.cs
index 9bb8063..972d031 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/DetectNonAlphaNumericsInTypeNamesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/DetectNonAlphaNumericsInTypeNamesRule.cs
@@ -98,9 +98,6 @@ namespace Gendarme.Rules.Naming {
[FxCopCompatibility ("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
public class AvoidNonAlphanumericIdentifierRule : Rule, IAssemblyRule, IMethodRule, ITypeRule {
- private const string GuidAttribute = "System.Runtime.InteropServices.GuidAttribute";
- private const string InterfaceTypeAttribute = "System.Runtime.InteropServices.InterfaceTypeAttribute";
-
// Compiler generates an error for any other non alpha-numerics than underscore ('_'),
// so we just need to check the presence of underscore in method names
private static bool CheckName (string name, bool special)
@@ -111,8 +108,8 @@ namespace Gendarme.Rules.Naming {
private static bool UsedForComInterop (TypeDefinition type)
{
- return (type.IsInterface && type.HasAttribute (GuidAttribute) &&
- type.HasAttribute (InterfaceTypeAttribute));
+ return (type.IsInterface && type.HasAttribute ("System.Runtime.InteropServices", "GuidAttribute") &&
+ type.HasAttribute ("System.Runtime.InteropServices", "InterfaceTypeAttribute"));
}
public RuleResult CheckAssembly (AssemblyDefinition assembly)
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Gendarme.Rules.Naming.csproj b/gendarme/rules/Gendarme.Rules.Naming/Gendarme.Rules.Naming.csproj
index bfb1fbe..8de71e4 100755
--- a/gendarme/rules/Gendarme.Rules.Naming/Gendarme.Rules.Naming.csproj
+++ b/gendarme/rules/Gendarme.Rules.Naming/Gendarme.Rules.Naming.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Naming</RootNamespace>
<AssemblyName>Gendarme.Rules.Naming</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Naming.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Naming.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\AssemblyStaticInfo.cs">
@@ -72,6 +94,23 @@
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Makefile.in b/gendarme/rules/Gendarme.Rules.Naming/Makefile.in
index 50b4f7c..1241702 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Naming/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -291,14 +367,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -308,6 +384,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -316,42 +393,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -360,7 +458,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -377,7 +475,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -385,7 +483,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -411,16 +509,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -428,14 +526,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -447,7 +545,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -456,29 +554,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -499,29 +602,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -544,10 +659,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -555,6 +675,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -574,6 +695,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -583,18 +706,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -616,8 +749,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -637,11 +770,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -650,7 +783,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -670,6 +803,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Naming/ParameterNamesShouldMatchOverridenMethodRule.cs b/gendarme/rules/Gendarme.Rules.Naming/ParameterNamesShouldMatchOverridenMethodRule.cs
index 95a3e46..7e4a8db 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/ParameterNamesShouldMatchOverridenMethodRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/ParameterNamesShouldMatchOverridenMethodRule.cs
@@ -3,8 +3,10 @@
//
// Authors:
// Andreas Noever <andreas.noever at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -84,8 +86,10 @@ namespace Gendarme.Rules.Naming {
base.Initialize (runner);
//check if this is a Boo assembly using macros
- Runner.AnalyzeAssembly += delegate (object o, RunnerEventArgs e) {
- IsBooAssemblyUsingMacro = (e.CurrentAssembly.MainModule.HasTypeReference (BooMacroStatement));
+ Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
+ IsBooAssemblyUsingMacro = (e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("Boo.Lang.Compiler.Ast", "MacroStatement");
+ }));
};
}
@@ -97,29 +101,26 @@ namespace Gendarme.Rules.Naming {
if (name != base_name) {
if (!explicitInterfaceCheck)
return false;
- string full_name = baseMethod.DeclaringType.FullName;
- if (!name.StartsWith (full_name, StringComparison.Ordinal))
+
+ TypeReference btype = baseMethod.DeclaringType;
+ string bnspace = btype.Namespace;
+ if (!name.StartsWith (bnspace, StringComparison.Ordinal))
return false;
- if (name [full_name.Length] != '.')
+ if (name [bnspace.Length] != '.')
return false;
- if (name.LastIndexOf (base_name, StringComparison.Ordinal) != full_name.Length + 1)
+
+ string bname = btype.Name;
+ if (String.CompareOrdinal (bname, 0, name, bnspace.Length + 1, bname.Length) != 0)
return false;
- }
- if (method.ReturnType.FullName != baseMethod.ReturnType.FullName)
- return false;
- if (method.HasParameters != baseMethod.HasParameters)
- return false;
- IList<ParameterDefinition> pdc = method.Parameters;
- IList<ParameterDefinition> base_pdc = baseMethod.Parameters;
- if (pdc.Count != base_pdc.Count)
- return false;
+ int dot = bnspace.Length + bname.Length + 1;
+ if (name [dot] != '.')
+ return false;
- for (int i = 0; i < pdc.Count; i++) {
- if (pdc [i].ParameterType != base_pdc [i].ParameterType)
+ if (name.LastIndexOf (base_name, StringComparison.Ordinal) != dot + 1)
return false;
}
- return true;
+ return method.CompareSignature (baseMethod);
}
private static MethodDefinition GetBaseMethod (MethodDefinition method)
@@ -130,7 +131,7 @@ namespace Gendarme.Rules.Naming {
while ((baseType.BaseType != null) && (baseType != baseType.BaseType)) {
baseType = baseType.BaseType.Resolve ();
- if (baseType == null)
+ if ((baseType == null) || !baseType.HasMethods)
return null; // could not resolve
foreach (MethodDefinition baseMethodCandidate in baseType.Methods) {
@@ -143,11 +144,15 @@ namespace Gendarme.Rules.Naming {
private static MethodDefinition GetInterfaceMethod (MethodDefinition method)
{
- TypeDefinition type = (TypeDefinition) method.DeclaringType;
+ TypeDefinition type = (method.DeclaringType as TypeDefinition);
+ if (!type.HasInterfaces)
+ return null;
+
foreach (TypeReference interfaceReference in type.Interfaces) {
TypeDefinition interfaceCandidate = interfaceReference.Resolve ();
- if (interfaceCandidate == null)
+ if ((interfaceCandidate == null) || !interfaceCandidate.HasMethods)
continue;
+
foreach (MethodDefinition interfaceMethodCandidate in interfaceCandidate.Methods) {
if (SignatureMatches (method, interfaceMethodCandidate, true))
return interfaceMethodCandidate;
@@ -177,7 +182,8 @@ namespace Gendarme.Rules.Naming {
IList<ParameterDefinition> pdc = method.Parameters;
for (int i = 0; i < pdc.Count; i++) {
if (pdc [i].Name != base_pdc [i].Name) {
- string s = string.Format ("The name of parameter #{0} ({1}) does not match the name of the parameter in the overriden method ({2}).",
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "The name of parameter #{0} ({1}) does not match the name of the parameter in the overriden method ({2}).",
i + 1, pdc [i].Name, base_pdc [i].Name);
Runner.Report (method, Severity.Medium, Confidence.High, s);
}
@@ -185,21 +191,11 @@ namespace Gendarme.Rules.Naming {
return Runner.CurrentRuleResult;
}
- private const string BooMacroStatement = "Boo.Lang.Compiler.Ast.MacroStatement";
-
- private bool IsBooAssemblyUsingMacro {
- get {
- return isBooAssemblyUsingMacro;
- }
- set {
- isBooAssemblyUsingMacro = value;
- }
- }
- private bool isBooAssemblyUsingMacro;
+ private bool IsBooAssemblyUsingMacro { get; set; }
private static bool IsBooMacroParameter (ParameterReference p)
{
- return p.Name == "macro" && p.ParameterType.FullName == BooMacroStatement;
+ return p.Name == "macro" && p.ParameterType.IsNamed ("Boo.Lang.Compiler.Ast", "MacroStatement");
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Naming/Test/Makefile.in
index f0bc79c..30cc584 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Naming/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Naming/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/ParameterNamesShouldMatchOverridenMethodTest.cs b/gendarme/rules/Gendarme.Rules.Naming/Test/ParameterNamesShouldMatchOverridenMethodTest.cs
index ff5fc3a..7baa37f 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/Test/ParameterNamesShouldMatchOverridenMethodTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/Test/ParameterNamesShouldMatchOverridenMethodTest.cs
@@ -3,8 +3,10 @@
//
// Authors:
// Andreas Noever <andreas.noever at gmail.com>
+// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2008 Andreas Noever
+// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -27,15 +29,12 @@
//
using System;
-using System.Reflection;
-using Gendarme.Framework;
+using Gendarme.Framework.Helpers;
using Gendarme.Rules.Naming;
-using Gendarme.Framework.Rocks;
-using Mono.Cecil;
using NUnit.Framework;
-using Test.Rules.Helpers;
+using Test.Rules.Fixtures;
namespace Test.Rules.Naming {
@@ -75,141 +74,94 @@ namespace Test.Rules.Naming {
}
[TestFixture]
- public class ParameterNamesShouldMatchOverridenMethodTest : BaseClass, ISomeInterface, ISomeInterface2 {
+ public class ParameterNamesShouldMatchOverridenMethodTest : MethodRuleTestFixture<ParameterNamesShouldMatchOverriddenMethodRule> {
- private ParameterNamesShouldMatchOverriddenMethodRule rule;
- private AssemblyDefinition assembly;
- private TypeDefinition type;
- private TestRunner runner;
+ class TestCase : BaseClass, ISomeInterface, ISomeInterface2, IEquatable<string> {
+ protected override void VirtualCorrect (int vc1, int vc2)
+ {
+ }
- [TestFixtureSetUp]
- public void FixtureSetUp ()
- {
- string unit = Assembly.GetExecutingAssembly ().Location;
- assembly = AssemblyDefinition.ReadAssembly (unit);
- type = assembly.MainModule.GetType ("Test.Rules.Naming.ParameterNamesShouldMatchOverridenMethodTest");
- rule = new ParameterNamesShouldMatchOverriddenMethodRule ();
- runner = new TestRunner (rule);
- }
+ protected override void VirtualIncorrect (int vi1, int vi2a)
+ {
+ }
- private MethodDefinition GetTest (string name)
- {
- foreach (MethodDefinition method in type.Methods) {
- if (method.Name == name)
- return method;
+ protected override void VirtualSuperIncorrect (int vsi1, bool vsi2_)
+ {
}
- return null;
- }
- protected override void VirtualCorrect (int vc1, int vc2)
- {
- }
+ protected override void AbstractCorrect (int ac1, int ac2)
+ {
+ throw new NotImplementedException ();
+ }
- [Test]
- public void TestVirtualCorrect ()
- {
- MethodDefinition method = GetTest ("VirtualCorrect");
- Assert.AreEqual (RuleResult.Success, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (0, runner.Defects.Count, "Count");
- }
+ protected override void AbstractIncorrect (int ai1, int ai2_)
+ {
+ throw new NotImplementedException ();
+ }
- protected override void VirtualIncorrect (int vi1, int vi2a)
- {
- }
+ protected virtual void NoOverwrite (int a, int bb)
+ {
+ }
- [Test]
- public void TestVirtualIncorrect ()
- {
- MethodDefinition method = GetTest ("VirtualIncorrect");
- Assert.AreEqual (RuleResult.Failure, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (1, runner.Defects.Count, "Count");
- }
+ public bool InterfaceMethod (int im_)
+ {
+ return false;
+ }
- protected override void VirtualSuperIncorrect (int vsi1, bool vsi2_)
- {
- }
+ bool ISomeInterface2.InterfaceMethod2 (int im_)
+ {
+ return false;
+ }
- [Test]
- public void TestVirtualSuperIncorrect ()
- {
- MethodDefinition method = GetTest ("VirtualSuperIncorrect");
- Assert.AreEqual (RuleResult.Failure, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (1, runner.Defects.Count, "Count");
- }
+ void NoParameter ()
+ {
+ }
- protected override void AbstractCorrect (int ac1, int ac2)
- {
- throw new NotImplementedException ();
+ public bool Equals (string s)
+ {
+ throw new NotImplementedException ();
+ }
}
[Test]
- public void TestAbstractCorrect ()
+ public void TestVirtual ()
{
- MethodDefinition method = GetTest ("AbstractCorrect");
- Assert.AreEqual (RuleResult.Success, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (0, runner.Defects.Count, "Count");
- }
-
- protected override void AbstractIncorrect (int ai1, int ai2_)
- {
- throw new NotImplementedException ();
+ AssertRuleSuccess<TestCase> ("VirtualCorrect");
+ AssertRuleFailure<TestCase> ("VirtualIncorrect", 1);
+ AssertRuleFailure<TestCase> ("VirtualSuperIncorrect", 1);
}
[Test]
- public void TestAbstractIncorrect ()
- {
- MethodDefinition method = GetTest ("AbstractIncorrect");
- Assert.AreEqual (RuleResult.Failure, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (1, runner.Defects.Count, "Count");
- }
-
- protected virtual void NoOverwrite (int a, int bb)
+ public void TestAbstract ()
{
+ AssertRuleSuccess<TestCase> ("AbstractCorrect");
+ AssertRuleFailure<TestCase> ("AbstractIncorrect", 1);
}
[Test]
public void TestNoOverwrite ()
{
- MethodDefinition method = GetTest ("NoOverwrite");
- Assert.AreEqual (RuleResult.Success, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (0, runner.Defects.Count, "Count");
- }
-
- public bool InterfaceMethod (int im_)
- {
- return false;
+ AssertRuleSuccess<TestCase> ("NoOverwrite");
}
[Test]
public void TestInterfaceMethod ()
{
- MethodDefinition method = GetTest ("InterfaceMethod");
- Assert.AreEqual (RuleResult.Failure, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (1, runner.Defects.Count, "Count");
- }
-
- bool ISomeInterface2.InterfaceMethod2 (int im_)
- {
- return false;
+ AssertRuleFailure<TestCase> ("InterfaceMethod", 1);
+ AssertRuleFailure<TestCase> ("Test.Rules.Naming.ISomeInterface2.InterfaceMethod2", 1);
}
[Test]
- public void TestInterfaceMethod2 ()
- {
- MethodDefinition method = GetTest ("Test.Rules.Naming.ISomeInterface2.InterfaceMethod2");
- Assert.AreEqual (RuleResult.Failure, runner.CheckMethod (method), "RuleResult");
- Assert.AreEqual (1, runner.Defects.Count, "Count");
- }
-
- void NoParameter ()
+ public void TestDoesNotApply ()
{
+ AssertRuleDoesNotApply<TestCase> ("NoParameter");
}
[Test]
- public void TestDoesNotApply ()
+ public void GenericInterface ()
{
- MethodDefinition method = GetTest ("NoParameter");
- Assert.AreEqual (RuleResult.DoesNotApply, runner.CheckMethod (method), "RuleResult");
+ AssertRuleSuccess<OpCodeBitmask> ("Equals", new Type [] { typeof (OpCodeBitmask) });
+ AssertRuleFailure<TestCase> ("Equals", 1);
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/Tests.Rules.Naming.csproj b/gendarme/rules/Gendarme.Rules.Naming/Test/Tests.Rules.Naming.csproj
index 549c8b8..549dc4d 100755
--- a/gendarme/rules/Gendarme.Rules.Naming/Test/Tests.Rules.Naming.csproj
+++ b/gendarme/rules/Gendarme.Rules.Naming/Test/Tests.Rules.Naming.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Naming</RootNamespace>
<AssemblyName>Tests.Rules.Naming</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -76,6 +98,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs
index 7ac6880..7000340 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectPrefixTest.cs
@@ -54,6 +54,10 @@ namespace Test.Rules.Naming {
public class ILRange {
}
+ public class InMemoryDoohicky
+ {
+ }
+
public interface I {
}
@@ -102,6 +106,7 @@ namespace Test.Rules.Naming {
AssertRuleFailure<CIncorrectClass> (1);
AssertRuleFailure<INcorrectClass> (1);
AssertRuleSuccess<ILRange> ();
+ AssertRuleSuccess<InMemoryDoohicky> ();
}
[Test]
diff --git a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectSuffixTest.cs b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectSuffixTest.cs
index adb15fa..0fc5205 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectSuffixTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/Test/UseCorrectSuffixTest.cs
@@ -176,13 +176,8 @@ namespace Test.Rules.Naming {
}
}
- public class DerivingClassImplementingInterfaces : EventArgs, IEnumerable, IPermission {
+ public class DerivingClassImplementingInterfaces : EventArgs, IPermission {
- public IEnumerator GetEnumerator ()
- {
- throw new NotImplementedException();
- }
-
public void FromXml (SecurityElement e)
{
throw new NotImplementedException();
@@ -246,16 +241,27 @@ namespace Test.Rules.Naming {
public class DictionaryIncorrectDerived<T, V> : DictionaryIncorrect<T, V> {
}
+ // test case from https://github.com/Iristyle/mono-tools/commit/40bfb2260511cfe4171e9153c3c434fedd8a4d4a.diff
+
+ public class CorrectCollectionAndDictionary<T, V> : Dictionary<T, V>, ICollection<V> {
+ public void Add(V item) { throw new NotImplementedException(); }
+ public bool Contains(V item) { throw new NotImplementedException(); }
+ public void CopyTo(V[] array, int arrayIndex) { throw new NotImplementedException(); }
+ public bool IsReadOnly { get { throw new NotImplementedException(); } }
+ public bool Remove(V item) { throw new NotImplementedException(); }
+ public new IEnumerator<V> GetEnumerator() { throw new NotImplementedException(); }
+ }
+
[TestFixture]
public class UseCorrectSuffixTest : TypeRuleTestFixture<UseCorrectSuffixRule> {
- void AssertRuleFailureWithHighConfidence<T>()
+ void AssertRuleFailureWithHighConfidence<T> (int num)
{
- AssertRuleFailure<T> (1);
+ AssertRuleFailure<T> (num);
Assert.AreEqual (Confidence.High, Runner.Defects [0].Confidence, typeof (T).Name);
}
- void AssertRuleFailureWithLowConfidence<T>()
+ void AssertRuleFailureWithLowConfidence<T> ()
{
AssertRuleFailure<T> (1);
Assert.AreEqual (Confidence.Low, Runner.Defects [0].Confidence, typeof (T).Name);
@@ -270,7 +276,7 @@ namespace Test.Rules.Naming {
[Test]
public void TestOneLevelInheritanceIncorrectName ()
{
- AssertRuleFailureWithHighConfidence<IncorrectAttr> ();
+ AssertRuleFailureWithHighConfidence<IncorrectAttr> (1);
}
[Test]
@@ -288,7 +294,7 @@ namespace Test.Rules.Naming {
[Test]
public void TestVariousLevelInheritanceIncorrectName ()
{
- AssertRuleFailureWithHighConfidence<OtherAttr> ();
+ AssertRuleFailureWithHighConfidence<OtherAttr> (1);
}
[Test]
@@ -326,7 +332,7 @@ namespace Test.Rules.Naming {
[Test]
public void TestMultipleInterfaceImplementerIncorrectName ()
{
- AssertRuleFailureWithHighConfidence<MultipleInterfaceImplementer> ();
+ AssertRuleFailureWithHighConfidence<MultipleInterfaceImplementer> (1);
}
[Test]
@@ -342,7 +348,7 @@ namespace Test.Rules.Naming {
{
//this type derives from an incorrect base type, but also introduce its own defect
//hence it has high confidence
- AssertRuleFailureWithHighConfidence<IncorrectICollectionImplementer> ();
+ AssertRuleFailureWithHighConfidence<IncorrectICollectionImplementer> (1);
}
[Test]
@@ -360,23 +366,24 @@ namespace Test.Rules.Naming {
[Test]
public void TestDerivingClassImplementingInterfacesAnotherIncorrectName ()
{
- //this type derives from an incorrect base type, *without* introducing its own defect
- //hence it has low confidence
- AssertRuleFailureWithLowConfidence<IncorrectDerivingClassImplementingInterfacesCollection> ();
+ //this type derives from an incorrect base type
+ AssertRuleFailureWithHighConfidence<IncorrectDerivingClassImplementingInterfacesCollection> (2);
}
[Test]
public void GenericCollection ()
{
AssertRuleSuccess<CorrectCollection<int>> ();
- AssertRuleFailureWithHighConfidence<CollectionIncorrect<int>> ();
+ AssertRuleFailureWithHighConfidence<CollectionIncorrect<int>> (1);
}
[Test]
public void GenericDictionary ()
{
AssertRuleSuccess<CorrectDictionary<int,int>> ();
- AssertRuleFailureWithHighConfidence<DictionaryIncorrect<int,int>> ();
+ // to be consistent with FxCop, a class implementing IDictionary and ICollection should end in Dictionary
+ AssertRuleSuccess<CorrectCollectionAndDictionary<int, int>> ();
+ AssertRuleFailureWithHighConfidence<DictionaryIncorrect<int, int>> (1);
}
[Test]
@@ -410,11 +417,11 @@ namespace Test.Rules.Naming {
public void CheckShouldNeverBeUsedSuffixes ()
{
AssertRuleSuccess<My> ();
- AssertRuleFailureWithHighConfidence<MyDelegate> ();
- AssertRuleFailureWithHighConfidence<MyEnum> ();
- AssertRuleFailureWithHighConfidence<MyFlags> ();
- AssertRuleFailureWithHighConfidence<MyEx> ();
- AssertRuleFailureWithHighConfidence<MyImpl> ();
+ AssertRuleFailureWithHighConfidence<MyDelegate> (1);
+ AssertRuleFailureWithHighConfidence<MyEnum> (1);
+ AssertRuleFailureWithHighConfidence<MyFlags> (1);
+ AssertRuleFailureWithHighConfidence<MyEx> (1);
+ AssertRuleFailureWithHighConfidence<MyImpl> (1);
}
class MyCollection : EventArgs {
@@ -467,16 +474,16 @@ namespace Test.Rules.Naming {
public void EnumName ()
{
AssertRuleSuccess<ReturnValue> ();
- AssertRuleFailureWithHighConfidence<ReturnValueEnum> ();
- AssertRuleFailureWithHighConfidence<returnvalueenum> ();
+ AssertRuleFailureWithHighConfidence<ReturnValueEnum> (1);
+ AssertRuleFailureWithHighConfidence<returnvalueenum> (1);
}
[Test]
public void FlagsName ()
{
AssertRuleSuccess<ReturnValues> ();
- AssertRuleFailureWithHighConfidence<ReturnValuesFlags> ();
- AssertRuleFailureWithHighConfidence<returnvaluesflags> ();
+ AssertRuleFailureWithHighConfidence<ReturnValuesFlags> (1);
+ AssertRuleFailureWithHighConfidence<returnvaluesflags> (1);
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectCasingRule.cs b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectCasingRule.cs
index 32cec08..6a6252b 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectCasingRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectCasingRule.cs
@@ -30,6 +30,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using Mono.Cecil;
@@ -96,7 +97,7 @@ namespace Gendarme.Rules.Naming {
return name.ToUpperInvariant ();
int index = IndexOfFirstCorrectChar (name);
- return Char.ToUpperInvariant (name [index]).ToString () + name.Substring (index + 1);
+ return Char.ToUpperInvariant (name [index]).ToString (CultureInfo.InvariantCulture) + name.Substring (index + 1);
}
// check if name is camelCased
@@ -118,7 +119,7 @@ namespace Gendarme.Rules.Naming {
return name.ToLowerInvariant ();
int index = IndexOfFirstCorrectChar (name);
- return Char.ToLowerInvariant (name [index]).ToString () + name.Substring (index + 1);
+ return Char.ToLowerInvariant (name [index]).ToString (CultureInfo.InvariantCulture) + name.Substring (index + 1);
}
private static int IndexOfFirstCorrectChar (string s)
@@ -144,14 +145,15 @@ namespace Gendarme.Rules.Naming {
foreach (string ns in nspace.Split ('.')) {
switch (ns.Length) {
case 1:
- ReportCasingError (nd, string.Format (
+ ReportCasingError (nd, String.Format (CultureInfo.InvariantCulture,
"Use of single character namespace is discouraged. Rename namespace {0}", ns));
break;
case 2:
// if the subnamespace is made of 2 chars, each letter have to be uppercase
if (ns.Any (c => Char.IsLetter (c) && Char.IsLower (c))) {
- string msg = String.Format ("In namespaces made of two characters, both characters should uppercase. Rename namespace '{0}' to '{1}'",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "In namespaces made of two characters, both characters should uppercase. Rename namespace '{0}' to '{1}'",
ns, ns.ToUpperInvariant ());
ReportCasingError (nd, msg);
}
@@ -159,11 +161,13 @@ namespace Gendarme.Rules.Naming {
default:
// if the sub namespace is made of 3 or more chars, make sure they're not all uppercase
if (ns.All (c => Char.IsLetter (c) && Char.IsUpper (c))) {
- string msg = String.Format ("Namespaces longer than two characters should not be all uppercase. Rename namespace '{0}' to '{1}{2}'",
- ns, ns [0].ToString (), ns.Substring (1).ToLowerInvariant ());
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Namespaces longer than two characters should not be all uppercase. Rename namespace '{0}' to '{1}{2}'",
+ ns, ns [0].ToString (CultureInfo.InvariantCulture), ns.Substring (1).ToLowerInvariant ());
ReportCasingError (nd, msg);
} else if (!IsPascalCase (ns)) {
- string msg = String.Format ("Namespaces longer than two characters should be pascal cased. Rename namespace '{0}' to '{1}'",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Namespaces longer than two characters should be pascal cased. Rename namespace '{0}' to '{1}'",
ns, PascalCase (ns));
ReportCasingError (nd, msg);
}
@@ -189,7 +193,7 @@ namespace Gendarme.Rules.Naming {
// types should all be PascalCased
string name = type.Name;
if (!IsPascalCase (name)) {
- ReportCasingError (type, string.Format (
+ ReportCasingError (type, String.Format (CultureInfo.InvariantCulture,
"Type names should all be pascal-cased. Rename '{0}' type to '{1}'.",
name, PascalCase (name)));
}
@@ -222,7 +226,8 @@ namespace Gendarme.Rules.Naming {
// like types, methods/props should all be PascalCased, too
if (!IsPascalCase (name)) {
- string errorMessage = String.Format ("By existing naming conventions, all the method and property names should all be pascal-cased (e.g. MyOperation). Rename '{0}' to '{1}'.",
+ string errorMessage = String.Format (CultureInfo.InvariantCulture,
+ "By existing naming conventions, all the method and property names should all be pascal-cased (e.g. MyOperation). Rename '{0}' to '{1}'.",
name, PascalCase (name));
Runner.Report (method, Severity.Medium, Confidence.High, errorMessage);
}
@@ -232,7 +237,8 @@ namespace Gendarme.Rules.Naming {
foreach (ParameterDefinition param in method.Parameters) {
// params should all be camelCased
if (!IsCamelCase (param.Name)) {
- string errorMessage = String.Format ("By existing naming conventions, the parameter names should all be camel-cased (e.g. myParameter). Rename '{0}' parameter to '{1}'.",
+ string errorMessage = String.Format (CultureInfo.InvariantCulture,
+ "By existing naming conventions, the parameter names should all be camel-cased (e.g. myParameter). Rename '{0}' parameter to '{1}'.",
param, CamelCase (param.Name));
Runner.Report (method, Severity.Medium, Confidence.High, errorMessage);
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs
index 68de78a..03ff58c 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectPrefixRule.cs
@@ -29,6 +29,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Gendarme.Framework;
@@ -89,9 +90,9 @@ namespace Gendarme.Rules.Naming {
return true;
switch (name [0]) {
- case 'C': // MFC like CMyClass - but works for CLSCompliant
- case 'I': // interface-like
- return Char.IsLower (name [1]) == Char.IsLower (name [2]);
+ case 'C': // MFC like CMyClass should fail - but works for CLSCompliant
+ case 'I': // interface-like - Classes beginning with In or Is etc should pass, e.g. InMemoryDoohicky
+ return Char.IsLower (name [1]) ? true : Char.IsUpper (name [2]);
default:
return true;
}
@@ -118,13 +119,16 @@ namespace Gendarme.Rules.Naming {
if (type.IsInterface) {
// interfaces should look like 'ISomething'
if (!IsCorrectInterfaceName (name)) {
- string s = String.Format ("The '{0}' interface name doesn't have the required 'I' prefix. Acoording to existing naming conventions, all interface names should begin with the 'I' letter followed by another capital letter.", name);
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "The '{0}' interface name doesn't have the required 'I' prefix. Acoording to existing naming conventions, all interface names should begin with the 'I' letter followed by another capital letter.",
+ name);
Runner.Report (type, Severity.Critical, Confidence.High, s);
}
} else {
// class should _not_ look like 'CSomething" or like an interface 'IOops'
if (!IsCorrectTypeName (name)) {
- string s = String.Format ("The '{0}' type name starts with '{1}' prefix but, according to existing naming conventions, type names should not have any specific prefix.",
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "The '{0}' type name starts with '{1}' prefix but, according to existing naming conventions, type names should not have any specific prefix.",
name, name [0]);
Runner.Report (type, Severity.Medium, Confidence.High, s);
}
@@ -137,7 +141,9 @@ namespace Gendarme.Rules.Naming {
foreach (GenericParameter parameter in type.GenericParameters) {
string param_name = parameter.Name;
if (IsCorrectGenericParameterName (param_name)) {
- string s = String.Format ("The generic parameter '{0}' should be prefixed with 'T' or be a single, uppercased letter.", param_name);
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "The generic parameter '{0}' should be prefixed with 'T' or be a single, uppercased letter.",
+ param_name);
Runner.Report (type, Severity.High, Confidence.High, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectSuffixRule.cs b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectSuffixRule.cs
index cad641b..671d842 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/UseCorrectSuffixRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/UseCorrectSuffixRule.cs
@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Text;
using Mono.Cecil;
@@ -83,29 +84,30 @@ namespace Gendarme.Rules.Naming {
public class UseCorrectSuffixRule : Rule, ITypeRule {
static Dictionary<string, HashSet<string>> definedSuffixes = new Dictionary<string, HashSet<string>> ();
+ static Dictionary<string, string> namespaces = new Dictionary<string, string> ();
static SortedDictionary<string, Func<TypeDefinition, string>> reservedSuffixes = new SortedDictionary<string, Func<TypeDefinition, string>> ();
static UseCorrectSuffixRule ()
{
- Add ("Attribute", "System.Attribute", true);
- Add ("Collection", "System.Collections.ICollection", false);
- Add ("Collection", "System.Collections.IEnumerable", false);
- Add ("Collection", "System.Collections.Queue", false);
- Add ("Collection", "System.Collections.Stack", false);
- Add ("Collection", "System.Collections.Generic.ICollection`1", false);
- Add ("Collection", "System.Data.DataSet", false);
- Add ("Collection", "System.Data.DataTable", false);
- Add ("Condition", "System.Security.Policy.IMembershipCondition", true);
- Add ("DataSet", "System.Data.DataSet", true);
- Add ("DataTable", "System.Data.DataTable", true);
- Add ("Dictionary", "System.Collections.IDictionary", false);
- Add ("Dictionary", "System.Collections.IDictionary`2", false);
- Add ("EventArgs", "System.EventArgs", true);
- Add ("Exception", "System.Exception", true);
- Add ("Permission", "System.Security.IPermission", true);
- Add ("Queue", "System.Collections.Queue", true);
- Add ("Stack", "System.Collections.Stack", true);
- Add ("Stream", "System.IO.Stream", true);
+ Add ("Attribute", "System", "Attribute", true);
+ Add ("Collection", "System.Collections", "ICollection", false);
+ Add ("Collection", "System.Collections", "IEnumerable", false);
+ Add ("Collection", "System.Collections", "Queue", false);
+ Add ("Collection", "System.Collections", "Stack", false);
+ Add ("Collection", "System.Collections.Generic", "ICollection`1", false);
+ Add ("Collection", "System.Data", "DataSet", false);
+ Add ("Collection", "System.Data", "DataTable", false);
+ Add ("Condition", "System.Security.Policy", "IMembershipCondition", true);
+ Add ("DataSet", "System.Data", "DataSet", true);
+ Add ("DataTable", "System.Data", "DataTable", true);
+ Add ("Dictionary", "System.Collections", "IDictionary", false);
+ Add ("Dictionary", "System.Collections", "IDictionary`2", false);
+ Add ("EventArgs", "System", "EventArgs", true);
+ Add ("Exception", "System", "Exception", true);
+ Add ("Permission", "System.Security", "IPermission", true);
+ Add ("Queue", "System.Collections", "Queue", true);
+ Add ("Stack", "System.Collections", "Stack", true);
+ Add ("Stream", "System.IO", "Stream", true);
// special cases
reservedSuffixes.Add ("Collection", message => CheckCollection (message));
@@ -119,36 +121,40 @@ namespace Gendarme.Rules.Naming {
reservedSuffixes.Add ("Impl", message => "Use the 'Core' prefix instead of 'Impl'.");
}
- static void Add (string suffix, string type, bool reserved)
+ static void Add (string suffix, string nameSpace, string name, bool reserved)
{
if (reserved) {
- reservedSuffixes.Add (suffix, message => InheritsOrImplements (message, type));
+ reservedSuffixes.Add (suffix, message => InheritsOrImplements (message, nameSpace, name));
}
HashSet<string> set;
- if (!definedSuffixes.TryGetValue (type, out set)) {
+ if (!definedSuffixes.TryGetValue (name, out set)) {
set = new HashSet<string> ();
- definedSuffixes.Add (type, set);
+ definedSuffixes.Add (name, set);
+ namespaces.Add (name, nameSpace);
}
set.Add (suffix);
}
- static string InheritsOrImplements (TypeReference type, string subtype)
+ static string InheritsOrImplements (TypeReference type, string nameSpace, string name)
{
- if (type.Inherits (subtype) || type.Implements (subtype))
+ if (type.Inherits (nameSpace, name) || type.Implements (nameSpace, name))
return String.Empty;
- return String.Format ("'{0}' should only be used for types that inherits or implements {1}.", type.Name, subtype);
+
+ return String.Format (CultureInfo.InvariantCulture,
+ "'{0}' should only be used for types that inherits or implements '{1}.{2}'.",
+ type.Name, nameSpace, name);
}
static string CheckCollection (TypeReference type)
{
- if (type.Implements ("System.Collections.ICollection") ||
- type.Implements ("System.Collections.IEnumerable") ||
- type.Implements ("System.Collections.Generic.ICollection`1"))
+ if (type.Implements ("System.Collections", "ICollection") ||
+ type.Implements ("System.Collections", "IEnumerable") ||
+ type.Implements ("System.Collections.Generic", "ICollection`1"))
return String.Empty;
- if (type.Inherits ("System.Collections.Queue") || type.Inherits ("System.Collections.Stack") ||
- type.Inherits ("System.Data.DataSet") || type.Inherits ("System.Data.DataTable"))
+ if (type.Inherits ("System.Collections", "Queue") || type.Inherits ("System.Collections", "Stack") ||
+ type.Inherits ("System.Data", "DataSet") || type.Inherits ("System.Data", "DataTable"))
return String.Empty;
return "'Collection' should only be used for implementing ICollection or IEnumerable or inheriting from Queue, Stack, DataSet and DataTable.";
@@ -156,7 +162,7 @@ namespace Gendarme.Rules.Naming {
static string CheckDictionary (TypeReference type)
{
- if (type.Implements ("System.Collections.IDictionary") || type.Implements ("System.Collections.Generic.IDictionary`2"))
+ if (type.Implements ("System.Collections", "IDictionary") || type.Implements ("System.Collections.Generic", "IDictionary`2"))
return String.Empty;
return "'Dictionary' should only be used for types implementing IDictionary and IDictionary<TKey,TValue>.";
}
@@ -168,16 +174,24 @@ namespace Gendarme.Rules.Naming {
return "'EventHandler' should only be used for event handler delegates.";
}
- // handle types using generics
- private static string GetFullName (TypeReference type)
+ static bool TryGetCandidates (TypeReference type, out HashSet<string> candidates)
{
- string name = type.FullName;
- // handle types using generics
+ string name = type.Name;
if ((type is GenericInstanceType) || type.HasGenericParameters) {
int pos = name.IndexOf ('`');
- name = name.Substring (0, pos);
+ if (pos != -1)
+ name = name.Substring (0, pos);
+ }
+
+ if (definedSuffixes.TryGetValue (name, out candidates)) {
+ string nspace;
+ if (namespaces.TryGetValue (name, out nspace)) {
+ if (nspace == type.Namespace)
+ return true;
+ }
}
- return name;
+ candidates = null;
+ return false;
}
// checks if type name ends with an approriate suffix
@@ -189,18 +203,15 @@ namespace Gendarme.Rules.Naming {
currentTypeSuffix = false;
while (current != null && current.BaseType != null) {
- string base_name = GetFullName (current.BaseType);
-
HashSet<string> candidates;
- if (definedSuffixes.TryGetValue (base_name, out candidates)) {
+ if (TryGetCandidates (current.BaseType, out candidates)) {
suffixes.AddRangeIfNew (candidates);
if (current == type)
currentTypeSuffix = true;
} else {
// if no suffix for base type is found, we start looking through interfaces
foreach (TypeReference iface in current.Interfaces) {
- string interface_name = GetFullName (iface);
- if (definedSuffixes.TryGetValue (interface_name, out candidates)) {
+ if (TryGetCandidates (iface, out candidates)) {
suffixes.AddRangeIfNew (candidates);
if (current == type)
currentTypeSuffix = true;
@@ -210,8 +221,9 @@ namespace Gendarme.Rules.Naming {
if (suffixes.Count > 0) {
// if any suffixes found
// check whether type name ends with any of these suffixes
+ string tname = type.Name;
return suffixes.Exists (delegate (string suffix) {
- return GetFullName (type).EndsWith (suffix, StringComparison.Ordinal);
+ return HasSuffix (tname, suffix);
});
} else {
// inspect base type
@@ -224,8 +236,11 @@ namespace Gendarme.Rules.Naming {
private static string ComposeMessage (List<string> candidates)
{
- if (candidates.Count == 1)
- return String.Format ("The type name does not end with '{0}' suffix. Append it to the type name.", candidates [0]);
+ if (candidates.Count == 1) {
+ return String.Format (CultureInfo.InvariantCulture,
+ "The type name does not end with '{0}' suffix. Append it to the type name.",
+ candidates [0]);
+ }
StringBuilder sb = new StringBuilder ("The type name does not end with one of the following suffixes: ");
sb.Append (candidates [0]);
@@ -239,6 +254,21 @@ namespace Gendarme.Rules.Naming {
private List<string> proposedSuffixes = new List<string> ();
+ static bool HasSuffix (string typeName, string suffix)
+ {
+ if (suffix.Length > typeName.Length)
+ return false;
+
+ // generic aware
+ int gpos = typeName.LastIndexOf ('`');
+ if (gpos == -1)
+ gpos = typeName.Length;
+ else if (suffix.Length > gpos)
+ return false;
+
+ return (String.Compare (suffix, 0, typeName, gpos - suffix.Length, suffix.Length, StringComparison.OrdinalIgnoreCase) == 0);
+ }
+
public RuleResult CheckType (TypeDefinition type)
{
// rule does not apply to generated code (outside developer's control)
@@ -247,15 +277,19 @@ namespace Gendarme.Rules.Naming {
// ok, rule applies
+ string tname = type.Name;
// first check if the current suffix is correct
// e.g. MyAttribute where the type does not inherit from Attribute
foreach (string suffix in reservedSuffixes.Keys) {
- if (type.Name.EndsWith (suffix, StringComparison.OrdinalIgnoreCase)) {
+ if (HasSuffix (tname, suffix)) {
Func<TypeDefinition, string> f;
if (reservedSuffixes.TryGetValue (suffix, out f)) {
string msg = f (type);
- if (!String.IsNullOrEmpty (msg))
- Runner.Report (type, Severity.Medium, Confidence.High, msg);
+ // if this is a valid suffix then there's not need to check for invalid later
+ if (String.IsNullOrEmpty (msg))
+ return RuleResult.Success;
+
+ Runner.Report (type, Severity.Medium, Confidence.High, msg);
}
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Naming/UsePreferredTermsRule.cs b/gendarme/rules/Gendarme.Rules.Naming/UsePreferredTermsRule.cs
index 59ede41..d2367c5 100644
--- a/gendarme/rules/Gendarme.Rules.Naming/UsePreferredTermsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Naming/UsePreferredTermsRule.cs
@@ -30,6 +30,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -140,7 +141,7 @@ namespace Gendarme.Rules.Naming {
continue;
if (index > 0 && char.IsLetter (name, index - 1) && char.IsLower (name, index))
continue; //term is part of a larger word
- string s = String.Format (Message, pair.Key, pair.Value);
+ string s = String.Format (CultureInfo.InvariantCulture, Message, pair.Key, pair.Value);
Runner.Report (identifier, severity, Confidence.High, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidConcatenatingCharsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidConcatenatingCharsRule.cs
index e753a0d..44ba1e6 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidConcatenatingCharsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidConcatenatingCharsRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -74,26 +75,20 @@ namespace Gendarme.Rules.Performance {
[EngineDependency (typeof (OpCodeEngine))]
public class AvoidConcatenatingCharsRule : Rule, IMethodRule {
- static bool IsStringConcat (MemberReference member)
- {
- if (member == null || (member.Name != "Concat"))
- return false;
-
- return (member.DeclaringType.FullName == "System.String");
- }
-
static bool HasReferenceToStringConcatObject (ModuleDefinition module)
{
foreach (MemberReference mr in module.GetMemberReferences ()) {
- if (IsStringConcat (mr)) {
+ if (mr.IsNamed ("System", "String", "Concat")) {
MethodReference method = (mr as MethodReference);
// catch both System.Object and System.Object[]
if (!method.HasParameters)
continue;
- switch (method.Parameters [0].ParameterType.FullName) {
- case "System.Object":
- case "System.Object[]":
- return true;
+
+ TypeReference ptype = method.Parameters [0].ParameterType;
+ switch (ptype.Name) {
+ case "Object":
+ case "Object[]":
+ return (ptype.Namespace == "System");
}
}
}
@@ -113,7 +108,8 @@ namespace Gendarme.Rules.Performance {
private void ReportBoxing (MethodDefinition method, Instruction ins, Confidence confidence)
{
- string msg = String.Format ("Type '{0}' is being boxed.", (ins.Operand as TypeReference).FullName);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Type '{0}' is being boxed.", (ins.Operand as TypeReference).GetFullName ());
Runner.Report (method, ins, Severity.High, confidence, msg);
}
@@ -159,14 +155,18 @@ namespace Gendarme.Rules.Performance {
// look for String.Concat overloads using System.Object
MethodReference mr = (ins.Operand as MethodReference);
- if (!IsStringConcat (mr) || !mr.HasParameters)
+ if (!mr.HasParameters || !mr.IsNamed ("System", "String", "Concat"))
continue;
- switch (mr.Parameters [0].ParameterType.FullName) {
- case "System.Object":
+ TypeReference ptype = mr.Parameters [0].ParameterType;
+ if (ptype.Namespace != "System")
+ continue; // very unlikely
+
+ switch (ptype.Name) {
+ case "Object":
CheckParameters (mr, method, ins);
break;
- case "System.Object[]":
+ case "Object[]":
if ((ins.Previous.OpCode.Code == Code.Stelem_Ref) || ins.Previous.IsLoadLocal ())
ScanArray (method, ins.Previous);
break;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeNumberOfLocalVariablesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeNumberOfLocalVariablesRule.cs
index a1bd50f..698867c 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeNumberOfLocalVariablesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeNumberOfLocalVariablesRule.cs
@@ -28,6 +28,7 @@
using System;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -70,7 +71,7 @@ namespace Gendarme.Rules.Performance {
// special case for System.Windows.Forms since it's designer does not
// mark this code as generated :-(
if (method.Name == "InitializeComponent") {
- if (method.DeclaringType.Inherits ("System.Windows.Forms.Form"))
+ if (method.DeclaringType.Inherits ("System.Windows.Forms", "Form"))
return RuleResult.DoesNotApply;
}
@@ -78,7 +79,8 @@ namespace Gendarme.Rules.Performance {
if (num <= MaximumVariables)
return RuleResult.Success;
- string msg = String.Format ("Found {0} local variables (maximum {1}).", num, MaximumVariables);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Found {0} local variables (maximum {1}).", num, MaximumVariables);
Runner.Report (method, Severity.High, Confidence.High, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeStructureRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeStructureRule.cs
index 99ecb4f..2ce5e3f 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeStructureRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidLargeStructureRule.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using Mono.Cecil;
@@ -75,20 +76,20 @@ namespace Gendarme.Rules.Performance {
private const int ReferenceSize = 4;
static Dictionary<string, int> Primitives = new Dictionary<string, int> (14) {
- { "System.Byte", 1 },
- { "System.SByte", 1 },
- { "System.Boolean", 1 },
- { "System.Int16", 2 },
- { "System.UInt16", 2 },
- { "System.Char", 2 },
- { "System.Int32", 4 },
- { "System.UInt32", 4 },
- { "System.Single", 4 },
- { "System.Int64", 8 },
- { "System.UInt64", 8 },
- { "System.Double", 8 },
- { "System.IntPtr", ReferenceSize }, // so rule return the same results
- { "System.UIntPtr", ReferenceSize }, // on 32 and 64 bits architectures
+ { "Byte", 1 },
+ { "SByte", 1 },
+ { "Boolean", 1 },
+ { "Int16", 2 },
+ { "UInt16", 2 },
+ { "Char", 2 },
+ { "Int32", 4 },
+ { "UInt32", 4 },
+ { "Single", 4 },
+ { "Int64", 8 },
+ { "UInt64", 8 },
+ { "Double", 8 },
+ { "IntPtr", ReferenceSize }, // so rule return the same results
+ { "UIntPtr", ReferenceSize }, // on 32 and 64 bits architectures
};
private int max_size = MaximumRecommendedSize;
@@ -179,7 +180,7 @@ namespace Gendarme.Rules.Performance {
// list based on Type.IsPrimitive
if (type.Namespace == "System") {
int size;
- if (Primitives.TryGetValue (type.FullName, out size))
+ if (Primitives.TryGetValue (type.Name, out size))
return (long) size;
}
@@ -216,7 +217,7 @@ namespace Gendarme.Rules.Performance {
else if (size > medium_severity_limit)
severity = Severity.Medium;
- string text = String.Format ("Structure size is {0} bytes.", size);
+ string text = String.Format (CultureInfo.CurrentCulture, "Structure size is {0} bytes.", size);
Runner.Report (type, severity, Confidence.High, text);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidLocalDataStoreSlotRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidLocalDataStoreSlotRule.cs
index a039d6a..b881c09 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidLocalDataStoreSlotRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidLocalDataStoreSlotRule.cs
@@ -89,8 +89,6 @@ namespace Gendarme.Rules.Performance {
[EngineDependency (typeof (OpCodeEngine))]
public class AvoidLocalDataStoreSlotRule : Rule, IMethodRule {
- private const string LocalDataStoreSlot = "System.LocalDataStoreSlot";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -99,7 +97,9 @@ namespace Gendarme.Rules.Performance {
// if the module does not reference System.LocalDataStoreSlot
// then no method inside it will be using it
Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference (LocalDataStoreSlot));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "LocalDataStoreSlot");
+ }));
};
}
@@ -119,9 +119,18 @@ namespace Gendarme.Rules.Performance {
if (mr == null)
continue;
- switch (mr.DeclaringType.FullName) {
- case "System.Threading.Thread":
- case "System.Runtime.Remoting.Contexts.Context":
+ TypeReference type = mr.DeclaringType;
+ switch (type.Namespace) {
+ case "System.Threading":
+ case "System.Runtime.Remoting.Contexts":
+ break;
+ default:
+ continue;
+ }
+
+ switch (type.Name) {
+ case "Thread":
+ case "Context":
break;
default:
continue;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidMethodWithLargeMaximumStackSizeRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidMethodWithLargeMaximumStackSizeRule.cs
index 5fbc09d..576e211 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidMethodWithLargeMaximumStackSizeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidMethodWithLargeMaximumStackSizeRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -64,7 +65,8 @@ namespace Gendarme.Rules.Performance {
if (num <= MaximumStackSize)
return RuleResult.Success;
- string msg = String.Format ("Found {0} maximum stack size (maximum {1}).", num, MaximumStackSize);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Found {0} maximum stack size (maximum {1}).", num, MaximumStackSize);
Runner.Report (method, Severity.High, Confidence.High, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCallsToPropertiesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCallsToPropertiesRule.cs
index a470e55..7e1bc64 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCallsToPropertiesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCallsToPropertiesRule.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using System.Text;
using Mono.Cecil;
@@ -107,14 +108,19 @@ namespace Gendarme.Rules.Performance {
static string GetKey (MethodDefinition caller, MethodDefinition callee, Instruction ins)
{
if (callee.IsStatic)
- return callee.ToString ();
+ return callee.GetFullName ();
IMetadataTokenProvider chain = callee;
Instruction instance = ins.TraceBack (caller);
StringBuilder sb = new StringBuilder ();
while (instance != null) {
- sb.Append (chain.ToString () ?? "null").Append ('.');
+ MemberReference mr = (chain as MemberReference);
+ if (mr == null)
+ sb.Append (chain.ToString ()); // ?? "null")
+ else
+ sb.Append (mr.GetFullName ());
+ sb.Append ('.');
chain = (instance.Operand as IMetadataTokenProvider);
if (chain == null) {
sb.Append (instance.GetOperand (caller));
@@ -151,16 +157,15 @@ namespace Gendarme.Rules.Performance {
static bool Filter (MethodDefinition method)
{
- switch (method.DeclaringType.FullName) {
+ TypeReference type = method.DeclaringType;
// Elapsed* and IsRunning
- case "System.Diagnostics.Stopwatch":
+ if (type.IsNamed ("System.Diagnostics", "Stopwatch"))
return true;
// Now and UtcNow
- case "System.DateTime":
+ else if (type.IsNamed ("System", "DateTime"))
return method.IsStatic;
- default:
- return false;
- }
+
+ return false;
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -218,13 +223,15 @@ namespace Gendarme.Rules.Performance {
MethodDefinition md = kvp.Value.Key;
if (md.IsVirtual && !md.IsFinal) {
// virtual calls are expensive, so the code better cache the value
- string msg = String.Format ("Multiple ({0}) calls to virtual property '{1}'.", count, md.ToString ());
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Multiple ({0}) calls to virtual property '{1}'.", count, md.ToString ());
Runner.Report (method, GetSeverity (count, true), Confidence.Normal, msg);
} else if (!IsInliningCandidate (md)) {
// non-virtual calls might be inlined
// otherwise caching the value is again a good idea
int size = md.HasBody ? md.Body.CodeSize : 0;
- string msg = String.Format ("Multiple ({0}) calls to non-virtual property '{1}', likely non-inlined due to size ({2} >= {3}).",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Multiple ({0}) calls to non-virtual property '{1}', likely non-inlined due to size ({2} >= {3}).",
count, md.ToString (), size, InlineLimit);
Runner.Report (method, GetSeverity (count, false), Confidence.Normal, msg);
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCastsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCastsRule.cs
index 5680c14..5a4a10e 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCastsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidRepetitiveCastsRule.cs
@@ -29,6 +29,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -237,7 +238,7 @@ namespace Gendarme.Rules.Performance {
return match;
}
- private int FindDuplicates (MethodDefinition method, string type, Instruction origin)
+ private int FindDuplicates (MethodDefinition method, TypeReference type, Instruction origin)
{
// we already had our first cast if we got here
int count = 1;
@@ -245,7 +246,7 @@ namespace Gendarme.Rules.Performance {
// don't check 0 since it's the one we compare with
for (int i = 1; i < casts.Count; i++) {
Instruction ins = casts [i];
- if (type != (ins.Operand as TypeReference).FullName)
+ if (!(ins.Operand as TypeReference).IsNamed (type.Namespace, type.Name))
continue;
if (!OriginsMatch(method, origin, GetOrigin (ins)))
continue;
@@ -287,7 +288,7 @@ namespace Gendarme.Rules.Performance {
// if there's only one then it can't be a duplicate cast
while (casts.Count > 1) {
Instruction ins = casts [0];
- string type = (ins.Operand as TypeReference).FullName;
+ TypeReference type = (ins.Operand as TypeReference);
Instruction origin = GetOrigin (ins);
int count = FindDuplicates (method, type, origin);
@@ -296,7 +297,8 @@ namespace Gendarme.Rules.Performance {
// rare, but it's possible to cast a null value (ldnull)
object name = origin.GetOperand (method) ?? "Null";
- string msg = String.Format ("'{0}' is casted {1} times for type '{2}'.", name, count, type);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "'{0}' is casted {1} times for type '{2}'.", name, count, type.GetFullName ());
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
casts.RemoveAt (0);
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidTypeGetTypeForConstantStringsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidTypeGetTypeForConstantStringsRule.cs
index 23da450..e2d9ed1 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidTypeGetTypeForConstantStringsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidTypeGetTypeForConstantStringsRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -34,6 +35,7 @@ using Mono.Cecil.Cil;
using Gendarme.Framework;
using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Performance {
@@ -84,9 +86,9 @@ namespace Gendarme.Rules.Performance {
// look for calls to: static Type System.Type.GetType(string...)
MethodReference mr = (ins.Operand as MethodReference);
- if ((mr == null) || !mr.HasParameters || (mr.Name != "GetType"))
+ if ((mr == null) || !mr.HasParameters)
continue;
- if (mr.DeclaringType.FullName != "System.Type")
+ if (!mr.IsNamed ("System", "Type", "GetType"))
continue;
if (ins.Previous.OpCode.Code != Code.Ldstr)
@@ -100,7 +102,8 @@ namespace Gendarme.Rules.Performance {
if (type_name == "Mono.Runtime")
continue;
- string msg = string.Format ("Replace call to Type.GetType(\"{0}\") into typeof({0}).", type_name);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Replace call to Type.GetType(\"{0}\") into typeof({0}).", type_name);
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
return Runner.CurrentRuleResult;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUncalledPrivateCodeRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUncalledPrivateCodeRule.cs
index 529657a..37d0478 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUncalledPrivateCodeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUncalledPrivateCodeRule.cs
@@ -93,11 +93,21 @@ namespace Gendarme.Rules.Performance {
[FxCopCompatibility ("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public class AvoidUncalledPrivateCodeRule : Rule, IMethodRule {
- static string [] SpecialAttributes = new string[] {
- "System.Runtime.InteropServices.ComRegisterFunctionAttribute",
- "System.Runtime.InteropServices.ComUnregisterFunctionAttribute",
- "System.Diagnostics.ConditionalAttribute"
- };
+ static bool HasAnySpecialAttribute (ICustomAttributeProvider method)
+ {
+ if (!method.HasCustomAttributes)
+ return false;
+
+ foreach (CustomAttribute ca in method.CustomAttributes) {
+ TypeReference cat = ca.AttributeType;
+ string name = cat.Name;
+ if ((cat.IsNamed ("System.Diagnostics", name)) || (cat.Namespace == "System.Runtime.InteropServices" &&
+ (name == "ComRegisterFunctionAttribute" || name == "ComUnregisterFunctionAttribute"))) {
+ return true;
+ }
+ }
+ return false;
+ }
static private bool Applicable (MethodDefinition method)
{
@@ -119,10 +129,8 @@ namespace Gendarme.Rules.Performance {
// does not apply if the method is used to register/unregister COM objects
// or it is decorated with a [Conditional("x")] attribute
- if (method.HasCustomAttributes) {
- if (method.CustomAttributes.ContainsAnyType (SpecialAttributes))
- return false;
- }
+ if (HasAnySpecialAttribute (method))
+ return false;
return true;
}
@@ -301,7 +309,7 @@ namespace Gendarme.Rules.Performance {
return methods;
}
- private static void BuildMethodUsage (HashSet<ulong> methods, MethodDefinition method)
+ private static void BuildMethodUsage (ISet<ulong> methods, MethodDefinition method)
{
foreach (Instruction ins in method.Body.Instructions) {
MethodReference mr = (ins.Operand as MethodReference);
@@ -310,7 +318,7 @@ namespace Gendarme.Rules.Performance {
continue;
TypeReference type = mr.DeclaringType;
- if (!(type is ArrayType)) {
+ if (!type.IsArray) {
// if (type.GetElementType ().HasGenericParameters)
// the simpler ^^^ does not work under Mono but works on MS
type = type.Resolve ();
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUninstantiatedInternalClassesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUninstantiatedInternalClassesRule.cs
index 518a451..2406244 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUninstantiatedInternalClassesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUninstantiatedInternalClassesRule.cs
@@ -101,7 +101,7 @@ namespace Gendarme.Rules.Performance {
cache.Add (assembly, typeset);
}
- static void AddType (HashSet<TypeReference> typeset, TypeReference type)
+ static void AddType (ISet<TypeReference> typeset, TypeReference type)
{
// we're interested in the array element type, not the array itself
if (type.IsArray)
@@ -240,7 +240,7 @@ namespace Gendarme.Rules.Performance {
// if we can't find the non-public type being used in the assembly then the rule fails
if (typeset == null || !typeset.Contains (type)) {
// base confidence on whether the internals are visible or not
- Confidence c = assembly.HasAttribute ("System.Runtime.CompilerServices.InternalsVisibleToAttribute") ?
+ Confidence c = assembly.HasAttribute ("System.Runtime.CompilerServices", "InternalsVisibleToAttribute") ?
Confidence.Low : Confidence.Normal;
Runner.Report (type, Severity.High, c);
return RuleResult.Failure;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnnecessaryOverridesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnnecessaryOverridesRule.cs
index 5dac506..f1c9d8b 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnnecessaryOverridesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnnecessaryOverridesRule.cs
@@ -80,8 +80,9 @@ namespace Gendarme.Rules.Performance {
if (!mr.CompareSignature (method))
return false;
+ TypeReference type = mr.DeclaringType;
foreach (TypeDefinition baseType in method.DeclaringType.AllSuperTypes ()) {
- if (mr.DeclaringType.FullName == baseType.FullName)
+ if (baseType.IsNamed (type.Namespace, type.Name))
return true;
}
return false;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededCallsOnStringRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededCallsOnStringRule.cs
index 212892a..08a051b 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededCallsOnStringRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededCallsOnStringRule.cs
@@ -29,6 +29,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -126,15 +127,15 @@ namespace Gendarme.Rules.Performance {
if (call.HasParameters)
return String.Empty;
- if (!IsSystemString (ins.Previous.GetOperandType (method)))
+ if (!ins.Previous.GetOperandType (method).IsNamed ("System", "String"))
return String.Empty;
- return String.Format (MessageString, call.Name, String.Empty);
+ return String.Format (CultureInfo.InvariantCulture, MessageString, call.Name, String.Empty);
}
private static string CheckSubstring (MethodReference call, Instruction ins)
{
- if (!IsSystemString (call.DeclaringType))
+ if (!call.DeclaringType.IsNamed ("System", "String"))
return String.Empty;
// ensure it's System.String::Substring(System.Int32) and that it's given 0 as a parameter
@@ -143,24 +144,19 @@ namespace Gendarme.Rules.Performance {
if (!ins.Previous.IsOperandZero ())
return String.Empty;
- return String.Format (MessageString, call.Name, "0");
+ return String.Format (CultureInfo.InvariantCulture, MessageString, call.Name, "0");
}
private static string CheckToString (MethodReference call, Instruction ins, MethodDefinition method)
{
- if (IsSystemString (call.DeclaringType)) {
+ if (call.DeclaringType.IsNamed ("System", "String")) {
// most probably ToString(IFormatProvider), possibly ToString()
- return String.Format (MessageString, call.Name,
+ return String.Format (CultureInfo.InvariantCulture, MessageString, call.Name,
(call.HasParameters && (call.Parameters.Count > 1)) ? "IFormatProvider" : String.Empty);
} else {
// signature for Clone is identical (well close enough) to share code
return CheckClone (call, ins, method);
}
}
-
- private static bool IsSystemString (MemberReference type)
- {
- return (type == null) ? false : (type.FullName == "System.String");
- }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededUnboxingRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededUnboxingRule.cs
index 06bbc3b..1b5e6d7 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededUnboxingRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnneededUnboxingRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -95,7 +96,6 @@ namespace Gendarme.Rules.Performance {
private static string Previous (MethodDefinition method, Instruction ins)
{
string kind, name;
- string type = (ins.Operand as TypeReference).FullName;
ins = ins.Previous;
Code previous_op_code = ins.OpCode.Code;
@@ -139,7 +139,8 @@ namespace Gendarme.Rules.Performance {
default:
return String.Empty;
}
- return String.Format ("{0} '{1}' unboxed to type '{2}' {{0}} times.", kind, name, type);
+ return String.Format (CultureInfo.InvariantCulture, "{0} '{1}' unboxed to type '{2}' {{0}} times.",
+ kind, name, (ins.Operand as TypeReference).GetFullName ());
}
// unboxing is never critical - but a high amount can be a sign of other problems too
@@ -189,7 +190,7 @@ namespace Gendarme.Rules.Performance {
// we can't (always) avoid unboxing one time
if (kvp.Value < 2)
continue;
- string s = String.Format (kvp.Key, kvp.Value);
+ string s = String.Format (CultureInfo.InvariantCulture, kvp.Key, kvp.Value);
Runner.Report (method, GetSeverityFromCount (kvp.Value), Confidence.Normal, s);
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnsealedUninheritedInternalClassesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnsealedUninheritedInternalClassesRule.cs
index c5f53ac..d7489c3 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnsealedUninheritedInternalClassesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnsealedUninheritedInternalClassesRule.cs
@@ -74,16 +74,17 @@ namespace Gendarme.Rules.Performance {
return RuleResult.Success;
ModuleDefinition module = type.Module;
- string type_name = type.FullName;
+ string name = type.Name;
+ string nspace = type.Namespace;
foreach (TypeDefinition type_definition in module.GetAllTypes ()) {
// skip ourself
- if (type_definition.FullName == type_name)
+ if (type_definition.IsNamed (nspace, name))
continue;
- if (type_definition.Inherits (type_name))
+ if (type_definition.Inherits (nspace, name))
return RuleResult.Success;
}
- Confidence c = module.Assembly.HasAttribute ("System.Runtime.CompilerServices.InternalsVisibleToAttribute") ?
+ Confidence c = module.Assembly.HasAttribute ("System.Runtime.CompilerServices", "InternalsVisibleToAttribute") ?
Confidence.High : Confidence.Total;
Runner.Report (type, Severity.Medium, c);
return RuleResult.Failure;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedParametersRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedParametersRule.cs
index 75a6448..8df328f 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedParametersRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedParametersRule.cs
@@ -30,6 +30,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -132,10 +133,8 @@ namespace Gendarme.Rules.Performance {
return RuleResult.DoesNotApply;
// methods with [Conditional] can be empty (not using any parameter) IL-wise but not source-wise, ignore them
- if (method.HasCustomAttributes) {
- if (method.CustomAttributes.ContainsType ("System.Diagnostics.ConditionalAttribute"))
- return RuleResult.DoesNotApply;
- }
+ if (method.HasAttribute ("System.Diagnostics", "ConditionalAttribute"))
+ return RuleResult.DoesNotApply;
// rule applies
@@ -151,7 +150,7 @@ namespace Gendarme.Rules.Performance {
ParameterDefinition parameter = ins.GetParameter (method);
if (parameter == null)
continue;
- mask |= ((ulong)1 << (parameter.GetSequence () - 1));
+ mask |= ((ulong)1 << parameter.Index);
}
// quick out based on value - i.e. every parameter is being used
@@ -162,7 +161,8 @@ namespace Gendarme.Rules.Performance {
for (int i = 0; i < pcount; i++) {
if ((mask & ((ulong) 1 << i)) == 0) {
ParameterDefinition parameter = pdc [i];
- string text = String.Format ("Parameter '{0}' of type '{1}' is never used in the method.",
+ string text = String.Format (CultureInfo.InvariantCulture,
+ "Parameter '{0}' of type '{1}' is never used in the method.",
parameter.Name, parameter.ParameterType);
Runner.Report (parameter, Severity.Medium, Confidence.Normal, text);
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedPrivateFieldsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedPrivateFieldsRule.cs
index bc8c0e5..72a548c 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedPrivateFieldsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/AvoidUnusedPrivateFieldsRule.cs
@@ -105,13 +105,32 @@ namespace Gendarme.Rules.Performance {
// copy all fields into an hashset
fields.Clear ();
foreach (FieldDefinition field in type.Fields) {
- if (!field.IsPrivate || field.IsLiteral)
+ if (!field.IsPrivate || field.IsLiteral || field.IsGeneratedCode ())
continue;
fields.Add (field);
}
// scan all methods, including constructors, to find if the field is used
+ if (fields.Count > 0) {
+ CheckFieldsUsageInType (type);
+
+ // scan nested types becuase they also have access to private fields of their parent
+ if (type.HasNestedTypes) {
+ foreach (TypeDefinition nested in type.NestedTypes)
+ CheckFieldsUsageInType (nested);
+ }
+
+ // check remaining (private) fields in the set
+ foreach (FieldDefinition field in fields) {
+ Runner.Report (field, Severity.Medium, Confidence.Normal);
+ }
+ }
+ return Runner.CurrentRuleResult;
+ }
+
+ private void CheckFieldsUsageInType (TypeDefinition type)
+ {
foreach (MethodDefinition method in type.Methods) {
if (!method.HasBody)
continue;
@@ -127,14 +146,12 @@ namespace Gendarme.Rules.Performance {
fields.Remove (fd);
}
+
+ if (fields.Count == 0)
+ break;
}
-
- // check remaining (private) fields in the set
- foreach (FieldDefinition field in fields) {
- Runner.Report (field, Severity.Medium, Confidence.Normal);
- }
- return Runner.CurrentRuleResult;
}
+
#if false
public void Bitmask ()
{
diff --git a/gendarme/rules/Gendarme.Rules.Performance/CompareWithStringEmptyEfficientlyRule.cs b/gendarme/rules/Gendarme.Rules.Performance/CompareWithStringEmptyEfficientlyRule.cs
index 61fdee9..47f6e1e 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/CompareWithStringEmptyEfficientlyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/CompareWithStringEmptyEfficientlyRule.cs
@@ -94,13 +94,16 @@ namespace Gendarme.Rules.Performance {
case "Equals":
if (mref.Parameters.Count > 1)
continue;
- string tname = mref.DeclaringType.FullName;
- if ((tname != "System.String") && (tname != "System.Object"))
+ TypeReference type = mref.DeclaringType;
+ if (type.Namespace != "System")
+ continue;
+ string name = type.Name;
+ if ((name != "String") && (name != "Object"))
continue;
break;
case "op_Equality":
case "op_Inequality":
- if (mref.DeclaringType.FullName != "System.String")
+ if (!mref.DeclaringType.IsNamed ("System", "String"))
continue;
break;
default:
@@ -115,7 +118,7 @@ namespace Gendarme.Rules.Performance {
break;
case Code.Ldsfld:
FieldReference field = (prev.Operand as FieldReference);
- if (field.DeclaringType.FullName != "System.String")
+ if (!field.DeclaringType.IsNamed ("System", "String"))
continue;
// unlikely to be anything else (at least with released fx)
if (field.Name != "Empty")
diff --git a/gendarme/rules/Gendarme.Rules.Performance/DontIgnoreMethodResultRule.cs b/gendarme/rules/Gendarme.Rules.Performance/DontIgnoreMethodResultRule.cs
index aadb867..fbd1931 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/DontIgnoreMethodResultRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/DontIgnoreMethodResultRule.cs
@@ -29,6 +29,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -99,17 +100,17 @@ namespace Gendarme.Rules.Performance {
private static bool IsCallException (MethodReference method)
{
- switch (method.DeclaringType.FullName) {
+ switch (method.DeclaringType.GetFullName ()) {
case "System.String":
// Since strings are immutable, calling System.String methods that returns strings
// better be assigned to something
- return (method.ReturnType.FullName != "System.String");
+ return !method.ReturnType.IsNamed ("System", "String");
case "System.IO.DirectoryInfo":
// GetDirectories overloads don't apply to the instance
return (method.Name != "GetDirectories");
case "System.Security.PermissionSet":
// Intersection and Union returns a new PermissionSet (it does not change the instance)
- return (method.ReturnType.FullName != "System.Security.PermissionSet");
+ return !method.ReturnType.IsNamed ("System.Security", "PermissionSet");
default:
// this is useless anytime, if unassigned, more in cases like a StringBuilder
return (method.Name != "ToString");
@@ -118,7 +119,7 @@ namespace Gendarme.Rules.Performance {
private static bool IsNewException (MemberReference method)
{
- switch (method.ToString ()) {
+ switch (method.GetFullName ()) {
// supplying a callback is enough to make the Timer creation worthwhile
case "System.Void System.Threading.Timer::.ctor(System.Threading.TimerCallback,System.Object,System.Int32,System.Int32)":
return true;
@@ -132,7 +133,8 @@ namespace Gendarme.Rules.Performance {
if ((instruction.OpCode.Code == Code.Newobj || instruction.OpCode.Code == Code.Newarr)) {
MemberReference member = (instruction.Operand as MemberReference);
if ((member != null) && !IsNewException (member)) {
- string s = String.Format ("Unused object of type '{0}' created.", member.ToString ());
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Unused object of type '{0}' created.", member.GetFullName ());
Runner.Report (method, instruction, Severity.High, Confidence.Normal, s);
}
}
@@ -142,7 +144,8 @@ namespace Gendarme.Rules.Performance {
if (callee != null && !callee.ReturnType.IsValueType) {
// check for some common exceptions (to reduce false positive)
if (!IsCallException (callee)) {
- string s = String.Format ("Do not ignore method results from call to '{0}'.", callee.ToString ());
+ string s = String.Format (CultureInfo.InvariantCulture,
+ "Do not ignore method results from call to '{0}'.", callee.GetFullName ());
Runner.Report (method, instruction, Severity.Medium, Confidence.Normal, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/EmptyDestructorRule.cs b/gendarme/rules/Gendarme.Rules.Performance/EmptyDestructorRule.cs
index a6b3bb3..4971448 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/EmptyDestructorRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/EmptyDestructorRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -131,7 +132,8 @@ namespace Gendarme.Rules.Performance {
// finalizer is empty (bad / useless)
string msg = nullify_fields == 0 ? String.Empty :
- String.Format ("Contains {0} fields being nullified needlessly", nullify_fields);
+ String.Format (CultureInfo.InvariantCulture,
+ "Contains {0} fields being nullified needlessly", nullify_fields);
Runner.Report (type, Severity.Medium, Confidence.Normal, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Gendarme.Rules.Performance.csproj b/gendarme/rules/Gendarme.Rules.Performance/Gendarme.Rules.Performance.csproj
index f9a5521..e8266ab 100755
--- a/gendarme/rules/Gendarme.Rules.Performance/Gendarme.Rules.Performance.csproj
+++ b/gendarme/rules/Gendarme.Rules.Performance/Gendarme.Rules.Performance.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Performance</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Performance/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Performance.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Performance.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -117,14 +120,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Performance/IDisposableWithDestructorWithoutSuppressFinalizeRule.cs b/gendarme/rules/Gendarme.Rules.Performance/IDisposableWithDestructorWithoutSuppressFinalizeRule.cs
index 7d81391..d02c1c0 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/IDisposableWithDestructorWithoutSuppressFinalizeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/IDisposableWithDestructorWithoutSuppressFinalizeRule.cs
@@ -128,7 +128,7 @@ namespace Gendarme.Rules.Performance {
case Code.Callvirt:
// are we calling GC.SuppressFinalize ?
MethodReference callee = (ins.Operand as MethodReference);
- if ((callee.Name == "SuppressFinalize") && (callee.DeclaringType.FullName == "System.GC")) {
+ if (callee.IsNamed ("System", "GC", "SuppressFinalize")) {
return true;
} else if (level < 3) {
if (Recurse (callee.Resolve (), level + 1))
@@ -154,7 +154,7 @@ namespace Gendarme.Rules.Performance {
return RuleResult.DoesNotApply;
// rule applies to types that implements System.IDisposable
- if (!type.Implements ("System.IDisposable"))
+ if (!type.Implements ("System", "IDisposable"))
return RuleResult.DoesNotApply;
// and provide a finalizer
diff --git a/gendarme/rules/Gendarme.Rules.Performance/ImplementEqualsTypeRule.cs b/gendarme/rules/Gendarme.Rules.Performance/ImplementEqualsTypeRule.cs
index 528a7cf..76240b4 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/ImplementEqualsTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/ImplementEqualsTypeRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -107,20 +108,20 @@ namespace Gendarme.Rules.Performance {
// * the assembly targets the 2.0 (or later) runtime
// * and it does not already implement it
if (type.Module.Runtime >= TargetRuntime.Net_2_0) {
- if (!type.Implements ("System.IEquatable`1")) {
+ if (!type.Implements ("System", "IEquatable`1")) {
Runner.Report (type, Severity.Medium, Confidence.Total, "Implement System.IEquatable<T>");
}
return Runner.CurrentRuleResult;
}
- parameters [0] = type.FullName;
+ parameters [0] = type.GetFullName ();
if (type.GetMethod (MethodAttributes.Public, "Equals", "System.Boolean", parameters) != null)
return RuleResult.Success;
// we consider this a step more severe for value types since it will need
// boxing/unboxing with Equals(object)
Severity severity = type.IsValueType ? Severity.Medium : Severity.Low;
- string msg = String.Format ("Implement 'bool Equals({0})'", type.Name);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Implement 'bool Equals({0})'", type.Name);
Runner.Report (type, severity, Confidence.High, msg);
return RuleResult.Failure;
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Makefile.in b/gendarme/rules/Gendarme.Rules.Performance/Makefile.in
index a841116..7668a90 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Performance/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -334,14 +410,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -351,6 +427,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -359,42 +436,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -403,7 +501,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -420,7 +518,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -428,7 +526,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -454,16 +552,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -471,14 +569,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -490,7 +588,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -499,29 +597,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -542,29 +645,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -587,10 +702,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -598,6 +718,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -617,6 +738,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -626,18 +749,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -659,8 +792,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -680,11 +813,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -693,7 +826,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -713,6 +846,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Performance/MathMinMaxCandidateRule.cs b/gendarme/rules/Gendarme.Rules.Performance/MathMinMaxCandidateRule.cs
index 37bca4c..b87866f 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/MathMinMaxCandidateRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/MathMinMaxCandidateRule.cs
@@ -83,18 +83,21 @@ namespace Gendarme.Rules.Performance {
// unlikely than any JIT inlines it
private static bool IsSupported (TypeReference type)
{
- // GetOriginalType will remove the '&' for references
- switch (type.GetElementType ().FullName) {
- case "System.Byte":
- case "System.Double":
- case "System.Int16":
- case "System.Int32":
- case "System.Int64":
- case "System.SByte":
- case "System.Single":
- case "System.UInt16":
- case "System.UInt32":
- case "System.UInt64":
+ if (type.Namespace != "System")
+ return false;
+ // GetElementType will remove the '&' for references
+ TypeReference tr = type.GetElementType ();
+ switch (tr.Name) {
+ case "Byte":
+ case "Double":
+ case "Int16":
+ case "Int32":
+ case "Int64":
+ case "SByte":
+ case "Single":
+ case "UInt16":
+ case "UInt32":
+ case "UInt64":
return true;
default:
return false;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/OverrideValueTypeDefaultsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/OverrideValueTypeDefaultsRule.cs
index 5ab9c1c..169ced5 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/OverrideValueTypeDefaultsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/OverrideValueTypeDefaultsRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Mono.Cecil;
@@ -118,7 +119,7 @@ namespace Gendarme.Rules.Performance {
// drop severity one level if only operators are missing (since overloading them
// is not available in every language)
Severity severity = (equals || gethashcode) ? Severity.Medium : Severity.Low;
- string msg = String.Format (MissingImplementationMessage,
+ string msg = String.Format (CultureInfo.InvariantCulture, MissingImplementationMessage,
!equals && !gethashcode ? "Equals(object)' and 'GetHashCode()" : equals ? "GetHashCode()" : "Equals(object)",
operators ? String.Empty : MissingOperatorsMessage);
diff --git a/gendarme/rules/Gendarme.Rules.Performance/PreferCharOverloadRule.cs b/gendarme/rules/Gendarme.Rules.Performance/PreferCharOverloadRule.cs
index a81b773..84c84aa 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/PreferCharOverloadRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/PreferCharOverloadRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -93,7 +94,8 @@ namespace Gendarme.Rules.Performance {
void Report (MethodDefinition method, Instruction ins, Confidence confidence, MemberReference call, string parameter)
{
- string msg = String.Format ("Prefer the use of: {0}('{1}'...);", call.Name, parameter);
+ string msg = String.Format (CultureInfo.InvariantCulture, "Prefer the use of: {0}('{1}'...);",
+ call.Name, parameter);
Runner.Report (method, ins, Severity.Medium, confidence, msg);
}
@@ -106,7 +108,7 @@ namespace Gendarme.Rules.Performance {
IList<ParameterDefinition> pdc = call.Parameters;
int last = pdc.Count;
- if (pdc [last - 1].ParameterType.FullName != "System.StringComparison") {
+ if (!pdc [last - 1].ParameterType.IsNamed ("System", "StringComparison")) {
// confidence is normal because it's possible that the code expects a
// culture sensitive comparison (but that will break in .NET 4).
Report (method, ins, Confidence.Normal, call, p1);
@@ -140,14 +142,15 @@ namespace Gendarme.Rules.Performance {
if (p2.Length != 1)
return;
- string msg = String.Format ("Prefer the use of: Replace('{0}','{1}');", p1, p2);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Prefer the use of: Replace('{0}','{1}');", p1, p2);
// confidence is higher since there's no StringComparison to consider
Runner.Report (method, ins, Severity.Medium, Confidence.High, msg);
}
static bool CheckFirstParameterIsString (IMethodSignature method)
{
- return (method.HasParameters && (method.Parameters [0].ParameterType.FullName == "System.String"));
+ return (method.HasParameters && method.Parameters [0].ParameterType.IsNamed ("System", "String"));
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -165,7 +168,7 @@ namespace Gendarme.Rules.Performance {
continue;
MethodReference call = (ins.Operand as MethodReference);
- if (call.DeclaringType.FullName != "System.String")
+ if (!call.DeclaringType.IsNamed ("System", "String"))
continue;
switch (call.Name) {
diff --git a/gendarme/rules/Gendarme.Rules.Performance/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule.cs b/gendarme/rules/Gendarme.Rules.Performance/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule.cs
index 2567025..6dac441 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule.cs
@@ -28,7 +28,10 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
+
using Gendarme.Framework;
+using Gendarme.Framework.Rocks;
using Mono.Cecil;
namespace Gendarme.Rules.Performance {
@@ -61,41 +64,49 @@ namespace Gendarme.Rules.Performance {
[Solution("Replace the interface parameter with interface constraint on generic type parameter.")]
public class PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule : Rule, IMethodRule {
- private readonly HashSet<string> primitiveTypeInterfaces = new HashSet<string> ();
+ static bool CheckGenericArgument (GenericInstanceType git)
+ {
+ if ((git == null) || !git.HasGenericArguments)
+ return false; // should not happen with the '`1' but...
+
+ TypeReference arg = git.GenericArguments [0];
+ switch (arg.MetadataType) {
+ case MetadataType.MVar:
+ return (arg.IsGenericParameter && arg.IsNamed (String.Empty, "T"));
+ case MetadataType.ValueType:
+ return arg.IsNamed ("System", "Decimal");
+ case MetadataType.Boolean:
+ case MetadataType.Byte:
+ case MetadataType.Char:
+ case MetadataType.Double:
+ case MetadataType.Single:
+ case MetadataType.Int16:
+ case MetadataType.Int32:
+ case MetadataType.Int64:
+ case MetadataType.SByte:
+ case MetadataType.UInt16:
+ case MetadataType.UInt32:
+ case MetadataType.UInt64:
+ return true;
+ default:
+ return false;
+ }
+ }
- public PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceRule ()
+ static bool IsPrimitiveInterface (MemberReference type)
{
- primitiveTypeInterfaces.Add ("System.IComparable");
- primitiveTypeInterfaces.Add ("System.IComparable`1<T>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Boolean>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Byte>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Char>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Decimal>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Double>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Float>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Int32>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Int64>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.SByte>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.Short>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.UInt16>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.UInt32>");
- primitiveTypeInterfaces.Add ("System.IComparable`1<System.UInt64>");
- primitiveTypeInterfaces.Add ("System.IFormattable");
- primitiveTypeInterfaces.Add ("System.IConvertible");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<T>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Boolean>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Byte>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Char>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Decimal>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Double>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Float>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Int32>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Int64>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.SByte>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.Short>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.UInt16>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.UInt32>");
- primitiveTypeInterfaces.Add ("System.IEquatable`1<System.UInt64>");
+ switch (type.Name) {
+ case "IComparable":
+ case "IFormattable":
+ case "IConvertible":
+ return true; // no doubt
+ case "IComparable`1":
+ case "IEquatable`1":
+ // maybe, check generic argument type
+ return CheckGenericArgument (type as GenericInstanceType);
+ default:
+ return false;
+ }
}
public RuleResult CheckMethod (MethodDefinition method)
@@ -108,10 +119,10 @@ namespace Gendarme.Rules.Performance {
if (type.Namespace != "System")
continue;
- string tname = type.FullName;
- if (primitiveTypeInterfaces.Contains (tname)) {
- string msg = String.Format ("You are using {0} as parameter, which cause boxing with value type as argument",
- tname);
+ if (IsPrimitiveInterface (type)) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "You are using {0} as parameter, which cause boxing with value type as argument",
+ type.GetFullName ());
Runner.Report (method, Severity.Low, Confidence.Total, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/PreferLiteralOverInitOnlyFieldsRule.cs b/gendarme/rules/Gendarme.Rules.Performance/PreferLiteralOverInitOnlyFieldsRule.cs
index a28601b..31310f8 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/PreferLiteralOverInitOnlyFieldsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/PreferLiteralOverInitOnlyFieldsRule.cs
@@ -113,7 +113,7 @@ namespace Gendarme.Rules.Performance {
// and report constant stuff
if (Constant.Get (previous.OpCode.Code)) {
// adjust severity based on the field visibility and it's type
- Severity s = (field.FieldType.FullName == "System.String" || !field.IsVisible ()) ?
+ Severity s = (field.FieldType.IsNamed ("System", "String") || !field.IsVisible ()) ?
Severity.High : Severity.Medium;
Runner.Report (field, s, Confidence.Normal);
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs
index bf1cda5..ac4ece9 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -132,8 +133,8 @@ namespace Gendarme.Rules.Performance {
if (variable.IsGeneratedName ())
continue;
- string s = String.Format ("Variable '{0}' of type '{1}'",
- variable.Name, variable.VariableType.FullName);
+ string s = String.Format (CultureInfo.InvariantCulture, "Variable '{0}' of type '{1}'",
+ variable.Name, variable.VariableType.GetFullName ());
Runner.Report (method, Severity.Low, Confidence.Normal, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/ReviewLinqMethodRule.cs b/gendarme/rules/Gendarme.Rules.Performance/ReviewLinqMethodRule.cs
index 0bef7c2..095c240 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/ReviewLinqMethodRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/ReviewLinqMethodRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -96,10 +97,6 @@ namespace Gendarme.Rules.Performance {
[EngineDependency (typeof (OpCodeEngine))]
public sealed class ReviewLinqMethodRule : Rule, IMethodRule {
- private const string EnumerableName = "System.Linq.Enumerable";
-
- //private readonly OpCodeBitmask Comparisons = ComparisonsBitmask ();
- //private readonly OpCodeBitmask Conditions = ConditionsBitmask ();
private readonly OpCodeBitmask Comparisons = new OpCodeBitmask (0x2801400000000000, 0x0, 0x0, 0xB);
private readonly OpCodeBitmask Conditions = new OpCodeBitmask (0x300180000000000, 0x0, 0x0, 0x0);
@@ -181,14 +178,16 @@ namespace Gendarme.Rules.Performance {
private void CheckForSubscript (TypeReference type, MethodDefinition method, Instruction ins, string name)
{
if (type.IsArray) {
- string message = string.Format ("Use operator [] instead of the {0} method.", name);
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "Use operator [] instead of the {0} method.", name);
Log.WriteLine (this, "{0:X4} {1}", ins.Offset, message);
Runner.Report (method, ins, Severity.Medium, Confidence.High, message);
} else {
TypeDefinition td = type.Resolve (); // resolve of an array returns the element type...
if (td != null && HasMethod (td, Subscript)) {
- string message = string.Format ("Use operator [] instead of the {0} method.", name);
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "Use operator [] instead of the {0} method.", name);
Log.WriteLine (this, "{0:X4} {1}", ins.Offset, message);
Runner.Report (method, ins, Severity.Medium, Confidence.High, message);
}
@@ -198,14 +197,16 @@ namespace Gendarme.Rules.Performance {
private void CheckForSort (TypeReference type, MethodDefinition method, Instruction ins, string name)
{
if (type.IsArray) {
- string message = string.Format ("Use Array.Sort instead of the {0} method.", name);
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "Use Array.Sort instead of the {0} method.", name);
Log.WriteLine (this, "{0:X4} {1}", ins.Offset, message);
Runner.Report (method, ins, Severity.Medium, Confidence.High, message);
} else {
TypeDefinition td = type.Resolve (); // resolve of an array returns the element type...
if (td != null && HasMethod (td, Sort)) {
- string message = string.Format ("Use Sort instead of the {0} method.", name);
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "Use Sort instead of the {0} method.", name);
Log.WriteLine (this, "{0:X4} {1}", ins.Offset, message);
Runner.Report (method, ins, Severity.Medium, Confidence.High, message);
}
@@ -251,7 +252,7 @@ namespace Gendarme.Rules.Performance {
// and the method is a System.Linq.Enumerable method then,
var target = ins.Operand as MethodReference;
- if ((target == null) || (target.DeclaringType.FullName != EnumerableName))
+ if (!target.DeclaringType.IsNamed ("System.Linq", "Enumerable"))
continue;
string tname = target.Name;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidRepetitiveCallsToPropertiesTest.cs b/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidRepetitiveCallsToPropertiesTest.cs
index a82ddf4..fe00fcc 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidRepetitiveCallsToPropertiesTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidRepetitiveCallsToPropertiesTest.cs
@@ -240,8 +240,8 @@ namespace Test.Rules.Performance {
if ((source == null) || (target == null))
return false;
- int ss = source.GetSequence () - 1;
- int ts = target.GetSequence () - 1;
+ int ss = source.Index;
+ int ts = target.Index;
if ((ss <= 0) || (ts <= 0))
return false;
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidUnusedPrivateFieldsTest.cs b/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidUnusedPrivateFieldsTest.cs
index 212bebf..98fbb3a 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidUnusedPrivateFieldsTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/Test/AvoidUnusedPrivateFieldsTest.cs
@@ -162,5 +162,46 @@ namespace Test.Rules.Performance {
AssertRuleFailure<GenericUnused<int>> (1);
AssertRuleSuccess<GenericUsed<int>> ();
}
+
+ class FieldsUsedInNested {
+ private bool field;
+
+ private static string staticField;
+
+ class Nested {
+ public void Foo (FieldsUsedInNested parent)
+ {
+ FieldsUsedInNested.staticField = "bar";
+ parent.field = true;
+ }
+ }
+ }
+
+ [Test]
+ public void FieldsUsedInNestedType ()
+ {
+ AssertRuleSuccess<FieldsUsedInNested> ();
+ }
+
+ class CompilerGenerated {
+ public string Name { get; set; }
+ }
+
+ [Test]
+ public void ClassWithCompilerGeneratedFields ()
+ {
+ AssertRuleSuccess<CompilerGenerated> ();
+ }
+
+ class CompilerGeneratedAndUnused {
+ private int number;
+ public string Name { get; set; }
+ }
+
+ [Test]
+ public void ClassWithCompilerGeneratedFieldsAndUnusedPrivate ()
+ {
+ AssertRuleFailure<CompilerGeneratedAndUnused> (1);
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Performance/Test/Makefile.in
index cacb530..9a2b406 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Performance/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Performance/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Test/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceTest.cs b/gendarme/rules/Gendarme.Rules.Performance/Test/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceTest.cs
index 22200a8..76b1fc0 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/Test/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/Test/PreferInterfaceConstraintOnGenericParameterForPrimitiveInterfaceTest.cs
@@ -52,7 +52,17 @@ namespace Tests.Rules.Performance {
}
- private void MethodWithGenericInterfaceOfBaseTypeParameter2 (IComparable<int> comparable)
+ private void MethodWithGenericInterfaceOfBaseTypeParameter2a (IComparable<int> comparable)
+ {
+
+ }
+
+ private void MethodWithGenericInterfaceOfBaseTypeParameter2b (IComparable<decimal> comparable)
+ {
+
+ }
+
+ private void MethodWithGenericInterfaceOfBaseTypeParameter2c (IComparable<object> comparable)
{
}
@@ -101,25 +111,27 @@ namespace Tests.Rules.Performance {
[Test]
public void MethodWithInterfaceOfBaseTypeParameter ()
{
- AssertRuleFailure<TestCase> ("MethodWithInterfaceOfBaseTypeParameter");
+ AssertRuleFailure<TestCase> ("MethodWithInterfaceOfBaseTypeParameter", 1);
}
[Test]
public void MethodWithGenericInterfaceOfBaseTypeParameter ()
{
- AssertRuleFailure<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter");
+ AssertRuleFailure<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter", 1);
}
[Test]
public void MethodWithGenericInterfaceOfBaseTypeParameter2 ()
{
- AssertRuleFailure<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter2");
+ AssertRuleFailure<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter2a", 1);
+ AssertRuleFailure<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter2b", 1);
+ AssertRuleSuccess<TestCase> ("MethodWithGenericInterfaceOfBaseTypeParameter2c");
}
[Test]
public void MethodWithMultipleParameters ()
{
- AssertRuleFailure<TestCase> ("MethodWithMultipleParameters");
+ AssertRuleFailure<TestCase> ("MethodWithMultipleParameters", 1);
}
[Test]
diff --git a/gendarme/rules/Gendarme.Rules.Performance/Test/Tests.Rules.Performance.csproj b/gendarme/rules/Gendarme.Rules.Performance/Test/Tests.Rules.Performance.csproj
index 16c7b64..531edcd 100755
--- a/gendarme/rules/Gendarme.Rules.Performance/Test/Tests.Rules.Performance.csproj
+++ b/gendarme/rules/Gendarme.Rules.Performance/Test/Tests.Rules.Performance.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Performance</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Performance/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -41,6 +42,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -50,6 +52,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -121,14 +124,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Performance/UseTypeEmptyTypesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/UseTypeEmptyTypesRule.cs
index 21b0879..92efb53 100644
--- a/gendarme/rules/Gendarme.Rules.Performance/UseTypeEmptyTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Performance/UseTypeEmptyTypesRule.cs
@@ -83,9 +83,7 @@ namespace Gendarme.Rules.Performance {
if (ins.OpCode != OpCodes.Newarr)
continue;
- var type = (TypeReference) ins.Operand;
-
- if (type.FullName != "System.Type")
+ if (!(ins.Operand as TypeReference).IsNamed ("System", "Type"))
continue;
if (ins.Previous.IsOperandZero ())
diff --git a/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs b/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs
index 009ebba..92b597a 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -363,11 +364,13 @@ namespace Gendarme.Rules.Portability {
// we can avoid some false positives by doing additional checks here
+ TypeReference tr = target.DeclaringType;
+ string nameSpace = tr.Namespace;
+ string typeName = tr.Name;
string methodName = target.Name;
- string typeName = target.DeclaringType.FullName;
- if (typeName.StartsWith ("Microsoft.Win32.Registry", StringComparison.Ordinal) // registry keys
- || (typeName.StartsWith ("System.Xml", StringComparison.Ordinal) // xpath expressions
+ if (nameSpace == "Microsoft.Win32" && typeName.StartsWith ("Registry", StringComparison.Ordinal) // registry keys
+ || (nameSpace.StartsWith ("System.Xml", StringComparison.Ordinal) // xpath expressions
&& methodName.StartsWith ("Select", StringComparison.Ordinal))) {
AddPoints (-42);
return true; // handled
@@ -389,10 +392,8 @@ namespace Gendarme.Rules.Portability {
case Code.Newobj:
// this is a constructor call
MethodReference ctor = (MethodReference) ins.Operand;
- string createdTypeName = ctor.DeclaringType.FullName;
-
// avoid catching regular expressions
- if (createdTypeName == "System.Text.RegularExpressions.Regex")
+ if (ctor.DeclaringType.IsNamed ("System.Text.RegularExpressions", "Regex"))
AddPoints (-42);
break;
@@ -494,7 +495,8 @@ namespace Gendarme.Rules.Portability {
// if sure enough, report the problem with the candidate string
// important as this allows a quick false positive check without checking the source code
if (conf.HasValue) {
- string msg = String.Format ("string \"{0}\" looks quite like a filename.", candidate);
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "string \"{0}\" looks quite like a filename.", candidate);
Runner.Report (method, ins, Severity.High, conf.Value, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Portability/ExitCodeIsLimitedOnUnixRule.cs b/gendarme/rules/Gendarme.Rules.Portability/ExitCodeIsLimitedOnUnixRule.cs
index 29c63cd..5259d1d 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/ExitCodeIsLimitedOnUnixRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Portability/ExitCodeIsLimitedOnUnixRule.cs
@@ -107,7 +107,9 @@ namespace Gendarme.Rules.Portability {
// but we want to avoid checking all methods if the Environment type
// isn't referenced in a module (big performance difference)
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = e.CurrentAssembly.MainModule.HasTypeReference ("System.Environment");
+ Active = e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System", "Environment");
+ });
};
}
@@ -141,7 +143,7 @@ namespace Gendarme.Rules.Portability {
// FIXME: entryPoint.ReturnType should not be null with void Main ()
// either bad unit tests or bug in cecil
TypeReference rt = entry_point.ReturnType;
- if (rt == null || rt.FullName != "System.Int32")
+ if (!rt.IsNamed ("System", "Int32"))
return RuleResult.DoesNotApply;
Instruction previous = null;
@@ -188,7 +190,7 @@ namespace Gendarme.Rules.Portability {
return (a >= 0 && a <= 255) ? InspectionResult.Good : InspectionResult.Bad;
case Code.Call:
case Code.Callvirt:
- if ((instruction.Operand as MethodReference).ReturnType.FullName == "System.Byte")
+ if ((instruction.Operand as MethodReference).ReturnType.IsNamed ("System", "Byte"))
return InspectionResult.Good;
else
return InspectionResult.Unsure; // could be within 0-255 or not
@@ -217,7 +219,7 @@ namespace Gendarme.Rules.Portability {
string name = calledMethod.Name;
if ((name != "set_ExitCode") && (name != "Exit"))
break;
- if (calledMethod.DeclaringType.FullName != "System.Environment")
+ if (!calledMethod.DeclaringType.IsNamed ("System", "Environment"))
break;
InspectionResult result = CheckInstruction (previous);
diff --git a/gendarme/rules/Gendarme.Rules.Portability/FeatureRequiresRootPrivilegeOnUnixRule.cs b/gendarme/rules/Gendarme.Rules.Portability/FeatureRequiresRootPrivilegeOnUnixRule.cs
index 8de2f25..daeaf2c 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/FeatureRequiresRootPrivilegeOnUnixRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Portability/FeatureRequiresRootPrivilegeOnUnixRule.cs
@@ -84,10 +84,6 @@ namespace Gendarme.Rules.Portability {
private const string ProcessMessage = "Setting Process.PriorityClass to something else than ProcessPriorityClass.Normal requires root privileges.";
private const string PingMessage = "Usage of System.Net.NetworkInformation.Ping requires root privileges.";
- // non-localizable
- private const string Ping = "System.Net.NetworkInformation.Ping";
- private const string Process = "System.Diagnostics.Process";
-
private bool ping_present = true;
private bool process_present = true;
@@ -98,8 +94,13 @@ namespace Gendarme.Rules.Portability {
// if the module does not reference either Ping or Process
// then it's not being used inside it
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- ping_present = e.CurrentModule.HasTypeReference (Ping);
- process_present = e.CurrentModule.HasTypeReference (Process);
+ Active = e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ ping_present = tr.IsNamed ("System.Net.NetworkInformation", "Ping");
+ process_present = tr.IsNamed ("System.Diagnostics", "Process");
+ // return true to stop looping when both Ping and Process are found
+ return (ping_present && process_present);
+ });
+ // activate the rule if any (or both) is/are present(s)
Active = (ping_present || process_present);
};
// note: this ignores on purpose System.dll since there's
@@ -112,7 +113,7 @@ namespace Gendarme.Rules.Portability {
MethodReference method = (ins.Operand as MethodReference);
if ((method == null) || (method.Name != "set_PriorityClass"))
return false;
- if (method.DeclaringType.FullName != "System.Diagnostics.Process")
+ if (!method.DeclaringType.IsNamed ("System.Diagnostics", "Process"))
return false;
Instruction prev = ins.Previous; //check stack
@@ -132,7 +133,7 @@ namespace Gendarme.Rules.Portability {
private static bool CheckPing (Instruction ins)
{
MethodReference method = (ins.Operand as MethodReference);
- return ((method != null) && (method.DeclaringType.FullName == Ping));
+ return ((method != null) && (method.DeclaringType.IsNamed ("System.Net.NetworkInformation", "Ping")));
}
public RuleResult CheckMethod (MethodDefinition method)
diff --git a/gendarme/rules/Gendarme.Rules.Portability/Gendarme.Rules.Portability.csproj b/gendarme/rules/Gendarme.Rules.Portability/Gendarme.Rules.Portability.csproj
index 1528411..283e5d5 100755
--- a/gendarme/rules/Gendarme.Rules.Portability/Gendarme.Rules.Portability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Portability/Gendarme.Rules.Portability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Portability</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Portability/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Portability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Portability.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.SharpZipLib, Version=2.84.0.0, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
@@ -94,14 +97,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Portability/Makefile.in b/gendarme/rules/Gendarme.Rules.Portability/Makefile.in
index 00cb94a..3ef81f4 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Portability/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -273,14 +349,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -290,6 +366,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -298,42 +375,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -342,7 +440,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -359,7 +457,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -367,7 +465,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -393,16 +491,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -410,14 +508,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -429,7 +527,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -438,29 +536,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -481,29 +584,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -526,10 +641,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -537,6 +657,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -556,6 +677,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -565,18 +688,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -598,8 +731,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -619,11 +752,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -632,7 +765,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -652,6 +785,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Portability/MonoCompatibilityReviewRule.cs b/gendarme/rules/Gendarme.Rules.Portability/MonoCompatibilityReviewRule.cs
index 141323f..e3a5d3b 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/MonoCompatibilityReviewRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Portability/MonoCompatibilityReviewRule.cs
@@ -6,7 +6,7 @@
// Sebastien Pouliot <sebastien at ximian.com>
//
// (C) 2007 Andreas Noever
-// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2009, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -31,6 +31,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using System.IO;
using System.Net;
@@ -40,6 +41,7 @@ using Mono.Cecil.Cil;
using Gendarme.Framework;
using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
+using Gendarme.Framework.Rocks;
using ICSharpCode.SharpZipLib.Zip;
@@ -126,7 +128,7 @@ namespace Gendarme.Rules.Portability {
private string GetFileName (Version v)
{
- return Path.Combine (DefinitionsFolder, String.Format ("definitions-{0}.zip", v));
+ return Path.Combine (DefinitionsFolder, String.Format (CultureInfo.InvariantCulture, "definitions-{0}.zip", v));
}
private Version FindLastestLocalVersion ()
@@ -139,7 +141,7 @@ namespace Gendarme.Rules.Portability {
try {
string latest = def_files [def_files.Length - 1];
- int s = latest.LastIndexOf ("definitions-") + 12;
+ int s = latest.LastIndexOf ("definitions-", StringComparison.Ordinal) + 12;
return new Version (latest.Substring (s, latest.Length - s - 4)); // remove .zip
}
catch (FormatException) {
@@ -175,7 +177,7 @@ namespace Gendarme.Rules.Portability {
using (FileStream fs = File.OpenRead (filename))
using (ZipInputStream zs = new ZipInputStream (fs))
- using (StreamReader sr = new StreamReader (zs)) {
+ using (StreamLineReader sr = new StreamLineReader (zs)) {
ZipEntry ze;
while ((ze = zs.GetNextEntry ()) != null) {
switch (ze.Name) {
@@ -291,29 +293,28 @@ namespace Gendarme.Rules.Portability {
return v;
}
- private static Dictionary<string, string> ReadWithComments (TextReader reader)
+ static char [] buffer = new char [4096];
+
+ private static Dictionary<string, string> ReadWithComments (StreamLineReader reader)
{
Dictionary<string, string> dict = new Dictionary<string, string> ();
- string line;
- while ((line = reader.ReadLine ()) != null) {
- int split = line.IndexOf ('-');
- string target = line.Substring (0, split);
- // are there comments ? (many entries don't have any)
- if (split == line.Length - 1) {
- dict.Add (target, null);
- } else {
- dict.Add (target, line.Substring (split + 1));
- }
+ while (!reader.EndOfStream) {
+ int length = reader.ReadLine (buffer, 0, buffer.Length);
+ int pos = Array.IndexOf (buffer, '-');
+ string key = new string (buffer, 0, pos);
+ string comment = (buffer [length - 1] == '-') ? null :
+ new string (buffer, pos + 1, length - pos - 1);
+ dict.Add (key, comment);
}
return dict;
}
- private static HashSet<string> Read (TextReader reader)
+ private static HashSet<string> Read (StreamLineReader reader)
{
HashSet<string> set = new HashSet<string> ();
- string line;
- while ((line = reader.ReadLine ()) != null) {
- set.Add (line);
+ while (!reader.EndOfStream) {
+ int length = reader.ReadLine (buffer, 0, buffer.Length);
+ set.Add (new string (buffer, 0, length));
}
return set;
}
@@ -344,18 +345,18 @@ namespace Gendarme.Rules.Portability {
continue;
// MethodReference.ToString is costly so we do it once for the three checks
- string callee = mr.ToString ();
+ string callee = mr.GetFullName ();
// calling not implemented method is very likely not to work == High
if ((NotImplemented != null) && NotImplementedInternal.Contains (callee)) {
- string message = String.Format (NotImplementedMessage, callee);
+ string message = String.Format (CultureInfo.InvariantCulture, NotImplementedMessage, callee);
// confidence is Normal since we can't be sure if MoMA data is up to date
Runner.Report (method, ins, Severity.High, Confidence.Normal, message);
}
// calling missing methods can't work == Critical
if ((Missing != null) && Missing.Contains (callee)) {
- string message = String.Format (MissingMessage, callee);
+ string message = String.Format (CultureInfo.InvariantCulture, MissingMessage, callee);
Runner.Report (method, ins, Severity.Critical, Confidence.Normal, message);
}
@@ -363,7 +364,7 @@ namespace Gendarme.Rules.Portability {
if (ToDo != null) {
string value;
if (ToDo.TryGetValue (callee, out value)) {
- string message = String.Format (TodoMessage, callee, value);
+ string message = String.Format (CultureInfo.InvariantCulture, TodoMessage, callee, value);
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, message);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Portability/NewLineLiteralRule.cs b/gendarme/rules/Gendarme.Rules.Portability/NewLineLiteralRule.cs
index 40345c9..1e3afa3 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/NewLineLiteralRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Portability/NewLineLiteralRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using System.Text;
using Mono.Cecil;
@@ -115,7 +116,7 @@ namespace Gendarme.Rules.Portability {
else if (c == '\t')
result.Append ("\\t");
else
- result.AppendFormat ("\\x").Append (((short) c).ToString ("x"));
+ result.Append ("\\x").Append (((short) c).ToString ("x", CultureInfo.InvariantCulture));
}
return result.Append ("\".").ToString ();
}
diff --git a/gendarme/rules/Gendarme.Rules.Portability/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Portability/Test/Makefile.in
index c0ee0aa..2a7157c 100644
--- a/gendarme/rules/Gendarme.Rules.Portability/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Portability/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Portability/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Portability/Test/Tests.Rules.Portability.csproj b/gendarme/rules/Gendarme.Rules.Portability/Test/Tests.Rules.Portability.csproj
index 0787fd3..fcd8220 100755
--- a/gendarme/rules/Gendarme.Rules.Portability/Test/Tests.Rules.Portability.csproj
+++ b/gendarme/rules/Gendarme.Rules.Portability/Test/Tests.Rules.Portability.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Portability</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Portability/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -90,14 +93,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/Gendarme.Rules.Security.Cas.csproj b/gendarme/rules/Gendarme.Rules.Security.Cas/Gendarme.Rules.Security.Cas.csproj
index 436c7cc..91cc467 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/Gendarme.Rules.Security.Cas.csproj
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/Gendarme.Rules.Security.Cas.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Security.Cas</RootNamespace>
<AssemblyName>Gendarme.Rules.Security.Cas</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Security.Cas.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Security.Cas.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -66,6 +88,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/Makefile.in b/gendarme/rules/Gendarme.Rules.Security.Cas/Makefile.in
index 0d66270..1267a28 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -279,14 +355,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -296,6 +372,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -304,42 +381,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -348,7 +446,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -365,7 +463,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -373,7 +471,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -399,16 +497,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -416,14 +514,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -435,7 +533,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -444,29 +542,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -487,29 +590,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -532,10 +647,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -543,6 +663,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -562,6 +683,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -571,18 +694,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -604,8 +737,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -625,11 +758,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -638,7 +771,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -658,6 +791,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/ReviewSuppressUnmanagedCodeSecurityUsageRule.cs b/gendarme/rules/Gendarme.Rules.Security.Cas/ReviewSuppressUnmanagedCodeSecurityUsageRule.cs
index 8f0d3de..fc03231 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/ReviewSuppressUnmanagedCodeSecurityUsageRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/ReviewSuppressUnmanagedCodeSecurityUsageRule.cs
@@ -56,8 +56,6 @@ namespace Gendarme.Rules.Security.Cas {
[FxCopCompatibility ("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
public class ReviewSuppressUnmanagedCodeSecurityUsageRule : Rule, ITypeRule, IMethodRule {
- private const string SUCS = "System.Security.SuppressUnmanagedCodeSecurityAttribute";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -65,8 +63,10 @@ namespace Gendarme.Rules.Security.Cas {
// if the module does not reference [SuppressUnmanagedCodeSecurityAttribute]
// then it's not being used inside it
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib"
- || e.CurrentModule.HasTypeReference (SUCS));
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Security", "SuppressUnmanagedCodeSecurityAttribute");
+ }));
};
}
@@ -78,7 +78,7 @@ namespace Gendarme.Rules.Security.Cas {
if (type.IsEnum)
return RuleResult.DoesNotApply;
- if (!type.HasAttribute (SUCS))
+ if (!type.HasAttribute ("System.Security", "SuppressUnmanagedCodeSecurityAttribute"))
return RuleResult.Success;
Runner.Report (type, Severity.Audit, Confidence.Total);
@@ -87,7 +87,7 @@ namespace Gendarme.Rules.Security.Cas {
public RuleResult CheckMethod (MethodDefinition method)
{
- if (!method.HasAttribute (SUCS))
+ if (!method.HasAttribute ("System.Security", "SuppressUnmanagedCodeSecurityAttribute"))
return RuleResult.Success;
Runner.Report (method, Severity.Audit, Confidence.Total);
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/SecureGetObjectDataOverridesRule.cs b/gendarme/rules/Gendarme.Rules.Security.Cas/SecureGetObjectDataOverridesRule.cs
index 481e95e..79831bd 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/SecureGetObjectDataOverridesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/SecureGetObjectDataOverridesRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using System.Security;
using System.Security.Permissions;
@@ -87,7 +88,7 @@ namespace Gendarme.Rules.Security.Cas {
public RuleResult CheckType (TypeDefinition type)
{
// rule applies only to types that implements ISerializable
- if (!type.Implements ("System.Runtime.Serialization.ISerializable"))
+ if (!type.Implements ("System.Runtime.Serialization", "ISerializable"))
return RuleResult.DoesNotApply;
MethodDefinition method = type.GetMethod (MethodSignatures.GetObjectData);
@@ -112,7 +113,8 @@ namespace Gendarme.Rules.Security.Cas {
case Mono.Cecil.SecurityAction.NonCasLinkDemand:
demand = true;
if (!RuleSet.IsSubsetOf (declsec.ToPermissionSet ())) {
- string message = String.Format ("{0} is not a subset of {1} permission set",
+ string message = String.Format (CultureInfo.InvariantCulture,
+ "{0} is not a subset of {1} permission set",
"SerializationFormatter", declsec.Action);
Runner.Report (method, Severity.High, Confidence.Total, message);
}
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/SecurityDeclarationRocks.cs b/gendarme/rules/Gendarme.Rules.Security.Cas/SecurityDeclarationRocks.cs
index ee136e9..ba56671 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/SecurityDeclarationRocks.cs
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/SecurityDeclarationRocks.cs
@@ -31,6 +31,7 @@ using System.Security;
using SSP = System.Security.Permissions;
using Mono.Cecil;
+using Gendarme.Framework.Rocks;
namespace Gendarme.Rules.Security.Cas {
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile.in
index ba619ca..ab4e6f0 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security.Cas/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Tests.Rules.Security.Cas.csproj b/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Tests.Rules.Security.Cas.csproj
index b9cd34a..8d2eec5 100644
--- a/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Tests.Rules.Security.Cas.csproj
+++ b/gendarme/rules/Gendarme.Rules.Security.Cas/Test/Tests.Rules.Security.Cas.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Security.Cas</RootNamespace>
<AssemblyName>Tests.Rules.Security.Cas</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -72,6 +94,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Security/DoNotShortCircuitCertificateCheckRule.cs b/gendarme/rules/Gendarme.Rules.Security/DoNotShortCircuitCertificateCheckRule.cs
index 31f51cf..3323b85 100644
--- a/gendarme/rules/Gendarme.Rules.Security/DoNotShortCircuitCertificateCheckRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Security/DoNotShortCircuitCertificateCheckRule.cs
@@ -122,8 +122,11 @@ namespace Gendarme.Rules.Security {
// if the module does not reference System.Math then
// none of its method is being called with constants
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = (e.CurrentAssembly.Name.Name == "mscorlib") ||
- e.CurrentModule.HasTypeReference ("System.Net.ICertificatePolicy");
+ Active = (e.CurrentAssembly.Name.Name == "mscorlib" ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Net", "ICertificatePolicy");
+ })
+ );
};
}
@@ -138,11 +141,11 @@ namespace Gendarme.Rules.Security {
if (pd == null)
continue;
- switch (pd.GetSequence ()) {
- case 2:
- case 4:
- return RuleResult.Success;
+ switch (pd.Index) {
+ case 1:
case 3:
+ return RuleResult.Success;
+ case 2:
if (third)
return RuleResult.Success;
break;
@@ -160,7 +163,7 @@ namespace Gendarme.Rules.Security {
// since ICertificatePolicy is an interface we need to check its name
string name = method.Name;
if (name == "CheckValidationResult") {
- if (!method.DeclaringType.Implements ("System.Net.ICertificatePolicy"))
+ if (!method.DeclaringType.Implements ("System.Net", "ICertificatePolicy"))
return RuleResult.Success;
} else if (name != "System.Net.ICertificatePolicy.CheckValidationResult")
return RuleResult.Success;
@@ -187,7 +190,7 @@ namespace Gendarme.Rules.Security {
IList<ParameterDefinition> pdc = method.Parameters;
int count = pdc.Count;
- if ((count != 4) || (method.ReturnType.FullName != "System.Boolean"))
+ if ((count != 4) || !method.ReturnType.IsNamed ("System", "Boolean"))
return RuleResult.DoesNotApply;
// this method could be a candidate for both policy or callback
@@ -195,10 +198,10 @@ namespace Gendarme.Rules.Security {
bool callback = true;
// if all the parameters match
for (int i = 0; i < count; i++) {
- string name = pdc [i].ParameterType.FullName;
- if (policy && (name != CertificatePolicyParameters [i]))
+ TypeReference ptype = pdc [i].ParameterType;
+ if (policy && !ptype.IsNamed (CertificatePolicyParameters [i]))
policy = false;
- if (callback && (name != RemoteCertificateValidationParameters [i]))
+ if (callback && !ptype.IsNamed (RemoteCertificateValidationParameters [i]))
callback = false;
}
diff --git a/gendarme/rules/Gendarme.Rules.Security/Gendarme.Rules.Security.csproj b/gendarme/rules/Gendarme.Rules.Security/Gendarme.Rules.Security.csproj
index 7cec633..62fc565 100755
--- a/gendarme/rules/Gendarme.Rules.Security/Gendarme.Rules.Security.csproj
+++ b/gendarme/rules/Gendarme.Rules.Security/Gendarme.Rules.Security.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Gendarme.Rules.Security</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Gendarme.Rules.Security/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,6 +44,7 @@
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Security.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -54,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Security.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -84,14 +87,33 @@
<None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Security/Makefile.in b/gendarme/rules/Gendarme.Rules.Security/Makefile.in
index 3121109..e82b158 100644
--- a/gendarme/rules/Gendarme.Rules.Security/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Security/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -269,14 +345,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -286,6 +362,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -294,42 +371,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -338,7 +436,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -355,7 +453,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -363,7 +461,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -389,16 +487,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -406,14 +504,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -425,7 +523,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -434,29 +532,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -477,29 +580,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -522,10 +637,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -533,6 +653,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -552,6 +673,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -561,18 +684,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -594,8 +727,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -615,11 +748,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -628,7 +761,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -648,6 +781,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Security/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Security/Test/Makefile.in
index 23619ef..2d050e9 100644
--- a/gendarme/rules/Gendarme.Rules.Security/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Security/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Security/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Security/Test/Tests.Rules.Security.csproj b/gendarme/rules/Gendarme.Rules.Security/Test/Tests.Rules.Security.csproj
index ce04b1c..2568557 100755
--- a/gendarme/rules/Gendarme.Rules.Security/Test/Tests.Rules.Security.csproj
+++ b/gendarme/rules/Gendarme.Rules.Security/Test/Tests.Rules.Security.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Security</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Security/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -86,14 +89,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/CallBaseMethodsOnISerializableTypesRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/CallBaseMethodsOnISerializableTypesRule.cs
index 640b093..bd7eb7c 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/CallBaseMethodsOnISerializableTypesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/CallBaseMethodsOnISerializableTypesRule.cs
@@ -102,9 +102,9 @@ namespace Gendarme.Rules.Serialization {
private static bool InheritsFromISerializableImplementation (TypeDefinition type)
{
TypeDefinition current = type.BaseType != null ? type.BaseType.Resolve () : null;
- if (current == null || current.FullName == "System.Object")
+ if (current == null || current.IsNamed ("System", "Object"))
return false;
- if (current.IsSerializable && current.Implements ("System.Runtime.Serialization.ISerializable"))
+ if (current.IsSerializable && current.Implements ("System.Runtime.Serialization", "ISerializable"))
return true;
return InheritsFromISerializableImplementation (current);
@@ -124,7 +124,8 @@ namespace Gendarme.Rules.Serialization {
continue;
MethodReference operand = (MethodReference) instruction.Operand;
- if (methodSignature.Matches (operand) && type.Inherits (operand.DeclaringType.FullName))
+ TypeReference tr = operand.DeclaringType;
+ if (methodSignature.Matches (operand) && type.Inherits (tr.Namespace, tr.Name))
return;
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/DeserializeOptionalFieldRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/DeserializeOptionalFieldRule.cs
index 217384b..5fdbd75 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/DeserializeOptionalFieldRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/DeserializeOptionalFieldRule.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -85,10 +86,6 @@ namespace Gendarme.Rules.Serialization {
private const string MessageOptional = "Optional fields '{0}' is not deserialized.";
private const string MessageSerializable = "Optional fields '{0}' in non-serializable type.";
- private const string OptionalFieldAttribute = "System.Runtime.Serialization.OptionalFieldAttribute";
- private const string OnDeserializedAttribute = "System.Runtime.Serialization.OnDeserializedAttribute";
- private const string OnDeserializingAttribute = "System.Runtime.Serialization.OnDeserializingAttribute";
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -103,7 +100,10 @@ namespace Gendarme.Rules.Serialization {
// if the module does not have a reference to System.Runtime.Serialization.OptionalFieldAttribute
// then nothing will be reported by this rule
(e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasTypeReference (OptionalFieldAttribute));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Runtime.Serialization", "OptionalFieldAttribute");
+ })
+ );
};
}
@@ -121,9 +121,9 @@ namespace Gendarme.Rules.Serialization {
if (method.IsConstructor || !method.HasCustomAttributes)
continue;
- if (method.HasAttribute (OnDeserializedAttribute))
+ if (method.HasAttribute ("System.Runtime.Serialization", "OnDeserializedAttribute"))
deserialized_candidate = true;
- if (method.HasAttribute (OnDeserializingAttribute))
+ if (method.HasAttribute ("System.Runtime.Serialization", "OnDeserializingAttribute"))
deserializing_candidate = true;
if (deserialized_candidate && deserializing_candidate)
@@ -133,19 +133,17 @@ namespace Gendarme.Rules.Serialization {
// check if we found some optional fields, if none then it's all ok
foreach (FieldDefinition field in type.Fields) {
- if (!field.HasCustomAttributes)
- continue;
- if (field.CustomAttributes.ContainsType (OptionalFieldAttribute)) {
+ if (field.HasAttribute ("System.Runtime.Serialization", "OptionalFieldAttribute")) {
if (type.IsSerializable) {
// report if we didn't find a deserialization method
if (!deserialized_candidate || !deserializing_candidate) {
// Medium since it's possible that the optional fields don't need to be re-computed
- string s = String.Format (MessageOptional, field.Name);
+ string s = String.Format (CultureInfo.InvariantCulture, MessageOptional, field.Name);
Runner.Report (field, Severity.Medium, Confidence.High, s);
}
} else {
// [OptionalField] without [Serializable] is a bigger problem
- string s = String.Format (MessageSerializable, field.Name);
+ string s = String.Format (CultureInfo.InvariantCulture, MessageSerializable, field.Name);
Runner.Report (field, Severity.Critical, Confidence.High, s);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/Gendarme.Rules.Serialization.csproj b/gendarme/rules/Gendarme.Rules.Serialization/Gendarme.Rules.Serialization.csproj
index 06d1196..c8a0661 100755
--- a/gendarme/rules/Gendarme.Rules.Serialization/Gendarme.Rules.Serialization.csproj
+++ b/gendarme/rules/Gendarme.Rules.Serialization/Gendarme.Rules.Serialization.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Serialization</RootNamespace>
<AssemblyName>Gendarme.Rules.Serialization</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Serialization.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Serialization.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -65,6 +87,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/ImplementISerializableCorrectlyRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/ImplementISerializableCorrectlyRule.cs
index 553853b..2059795 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/ImplementISerializableCorrectlyRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/ImplementISerializableCorrectlyRule.cs
@@ -122,12 +122,12 @@ namespace Gendarme.Rules.Serialization {
static private FieldDefinition CheckProperty (MethodDefinition getter)
{
- string return_type = getter.ReturnType.FullName;
+ TypeReference return_type = getter.ReturnType;
foreach (Instruction ins in getter.Body.Instructions) {
if (ins.OpCode.OperandType != OperandType.InlineField)
continue;
FieldDefinition field = (ins.Operand as FieldDefinition);
- if ((field != null) && (field.FieldType.FullName == return_type))
+ if ((field != null) && field.FieldType.IsNamed (return_type.Namespace, return_type.Name))
return field;
}
return null;
@@ -143,7 +143,7 @@ namespace Gendarme.Rules.Serialization {
if (!mr.HasParameters || (mr.Name != "AddValue") || (mr.Parameters.Count < 2))
continue;
// type is sealed so this check is ok
- if (mr.DeclaringType.FullName != "System.Runtime.Serialization.SerializationInfo")
+ if (!mr.DeclaringType.IsNamed ("System.Runtime.Serialization", "SerializationInfo"))
continue;
// look at the second parameter, which should be (or return) the field
@@ -189,7 +189,7 @@ namespace Gendarme.Rules.Serialization {
public RuleResult CheckType (TypeDefinition type)
{
- if (!type.IsSerializable || !type.Implements ("System.Runtime.Serialization.ISerializable"))
+ if (!type.IsSerializable || !type.Implements ("System.Runtime.Serialization", "ISerializable"))
return RuleResult.DoesNotApply;
MethodDefinition getObjectData = type.GetMethod (MethodSignatures.GetObjectData);
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/Makefile.in b/gendarme/rules/Gendarme.Rules.Serialization/Makefile.in
index e762277..4ef4a5c 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Serialization/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -277,14 +353,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -294,6 +370,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -302,42 +379,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -346,7 +444,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -363,7 +461,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -371,7 +469,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -397,16 +495,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -414,14 +512,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -433,7 +531,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -442,29 +540,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -485,29 +588,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -530,10 +645,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -541,6 +661,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -560,6 +681,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -569,18 +692,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -602,8 +735,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -623,11 +756,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -636,7 +769,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -656,6 +789,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/MarkAllNonSerializableFieldsRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/MarkAllNonSerializableFieldsRule.cs
index 75d3a89..bfa7bf1 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/MarkAllNonSerializableFieldsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/MarkAllNonSerializableFieldsRule.cs
@@ -27,6 +27,7 @@
//
using System;
+using System.Globalization;
using Gendarme.Framework;
using Gendarme.Framework.Rocks;
using Mono.Cecil;
@@ -75,7 +76,7 @@ namespace Gendarme.Rules.Serialization {
public RuleResult CheckType (TypeDefinition type)
{
// if type is not serializable or has not any fields or does not implements a custom serialization
- if (!type.IsSerializable || !type.HasFields || type.Implements ("System.Runtime.Serialization.ISerializable"))
+ if (!type.IsSerializable || !type.HasFields || type.Implements ("System.Runtime.Serialization", "ISerializable"))
return RuleResult.DoesNotApply;
foreach (FieldDefinition field in type.Fields) {
@@ -85,11 +86,17 @@ namespace Gendarme.Rules.Serialization {
continue;
if (fieldType.IsInterface) {
- Runner.Report (field, Severity.Critical, Confidence.Low, String.Format ("Serialization of interface {0} as field {1} unknown until runtime", fieldType, field.Name));
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "Serialization of interface {0} as field {1} unknown until runtime",
+ fieldType, field.Name);
+ Runner.Report (field, Severity.Critical, Confidence.Low, msg);
continue;
}
- if (!fieldType.IsEnum && !fieldType.IsSerializable)
- Runner.Report (field, Severity.Critical, Confidence.High, String.Format ("The field {0} isn't serializable.", field.Name));
+ if (!fieldType.IsEnum && !fieldType.IsSerializable) {
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "The field {0} isn't serializable.", field.Name);
+ Runner.Report (field, Severity.Critical, Confidence.High, msg);
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializableAttributeOnISerializableTypeRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializableAttributeOnISerializableTypeRule.cs
index 24f0b00..74be9db 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializableAttributeOnISerializableTypeRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializableAttributeOnISerializableTypeRule.cs
@@ -64,8 +64,6 @@ namespace Gendarme.Rules.Serialization {
[FxCopCompatibility ("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable")]
public class MissingSerializableAttributeOnISerializableTypeRule : Rule, ITypeRule {
- private const string ISerializable = "System.Runtime.Serialization.ISerializable";
-
public RuleResult CheckType (TypeDefinition type)
{
// rule does not apply to interface (since [Serializable] is not applicable to interfaces)
@@ -74,11 +72,11 @@ namespace Gendarme.Rules.Serialization {
return RuleResult.DoesNotApply;
// rule does not apply if the type does not implements ISerializable
- if (!type.Implements (ISerializable))
+ if (!type.Implements ("System.Runtime.Serialization", "ISerializable"))
return RuleResult.DoesNotApply;
// rule applies only if base type is serializable
- if (type.BaseType.FullName != "System.Object") {
+ if (!type.BaseType.IsNamed ("System", "Object")) {
TypeDefinition base_type = type.BaseType.Resolve ();
// in doubt don't report
if ((base_type == null) || !base_type.IsSerializable)
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializationConstructorRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializationConstructorRule.cs
index 36115b0..e80ffe7 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializationConstructorRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/MissingSerializationConstructorRule.cs
@@ -89,9 +89,6 @@ namespace Gendarme.Rules.Serialization {
[FxCopCompatibility ("Microsoft.Usage", "CA2229:ImplementSerializationConstructors")]
public class MissingSerializationConstructorRule : Rule, ITypeRule {
- // non-localizable
- private const string ISerializable = "System.Runtime.Serialization.ISerializable";
-
// localizable
private const string NoSerializationCtorText = "The required constructor for ISerializable is not present in this type.";
private const string CtorSealedTypeText = "The serialization constructor should be private since this type is sealed.";
@@ -100,7 +97,7 @@ namespace Gendarme.Rules.Serialization {
public RuleResult CheckType (TypeDefinition type)
{
// rule does not apply to interfaces, delegates or types that does not implement ISerializable
- if (type.IsInterface || type.IsDelegate () || !type.Implements (ISerializable))
+ if (type.IsInterface || type.IsDelegate () || !type.Implements ("System.Runtime.Serialization", "ISerializable"))
return RuleResult.DoesNotApply;
// rule applies, only Success or Failure from the point on
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile.in
index 48484f0..9533aec 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Serialization/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/Test/Tests.Rules.Serialization.csproj b/gendarme/rules/Gendarme.Rules.Serialization/Test/Tests.Rules.Serialization.csproj
index 5a92892..090910b 100755
--- a/gendarme/rules/Gendarme.Rules.Serialization/Test/Tests.Rules.Serialization.csproj
+++ b/gendarme/rules/Gendarme.Rules.Serialization/Test/Tests.Rules.Serialization.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Serialization</RootNamespace>
<AssemblyName>Tests.Rules.Serialization</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -70,6 +92,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Serialization/UseCorrectSignatureForSerializationMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Serialization/UseCorrectSignatureForSerializationMethodsRule.cs
index bf69c3a..eed6f2c 100644
--- a/gendarme/rules/Gendarme.Rules.Serialization/UseCorrectSignatureForSerializationMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Serialization/UseCorrectSignatureForSerializationMethodsRule.cs
@@ -76,13 +76,6 @@ namespace Gendarme.Rules.Serialization {
private const string NotSerializableText = "The type of this method is not marked as [Serializable].";
private const string WrongSignatureText = "The method has the wrong signature, it should return System.Void and have a single parameter of type 'System.Runtime.Serialization.StreamingContext' and be private.";
- static string [] Attributes = {
- "System.Runtime.Serialization.OnSerializingAttribute",
- "System.Runtime.Serialization.OnSerializedAttribute",
- "System.Runtime.Serialization.OnDeserializingAttribute",
- "System.Runtime.Serialization.OnDeserializedAttribute"
- };
-
public override void Initialize (IRunner runner)
{
base.Initialize (runner);
@@ -97,10 +90,40 @@ namespace Gendarme.Rules.Serialization {
// if the module does not have a reference to any of the attributes
// then nothing will be reported by this rule
(e.CurrentAssembly.Name.Name == "mscorlib" ||
- e.CurrentModule.HasAnyTypeReference (Attributes));
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return IsSerializationAttribute (tr);
+ }));
};
}
+ static bool IsSerializationAttribute (TypeReference type)
+ {
+ if (type.Namespace != "System.Runtime.Serialization")
+ return false;
+
+ switch (type.Name) {
+ case "OnSerializingAttribute":
+ case "OnSerializedAttribute":
+ case "OnDeserializingAttribute":
+ case "OnDeserializedAttribute":
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ static bool HasAnySerializationAttribute (ICustomAttributeProvider method)
+ {
+ if (!method.HasCustomAttributes)
+ return false;
+
+ foreach (CustomAttribute ca in method.CustomAttributes) {
+ if (IsSerializationAttribute (ca.AttributeType))
+ return true;
+ }
+ return false;
+ }
+
public RuleResult CheckMethod (MethodDefinition method)
{
// rule does not apply to constructor or to methods without custom attributes
@@ -108,7 +131,7 @@ namespace Gendarme.Rules.Serialization {
return RuleResult.DoesNotApply;
// marked with any of On[Des|S]erializ[ed|ing]Attribute ?
- if (!method.CustomAttributes.ContainsAnyType (Attributes))
+ if (!HasAnySerializationAttribute (method))
return RuleResult.DoesNotApply;
// rule apply!
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs
index 25519b4..947bd6a 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidLargeClassesRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
@@ -108,7 +109,7 @@ namespace Gendarme.Rules.Smells {
int counter = 1; // include self
for (int i = fields.Count - 1; i > start; i--) {
FieldDefinition field = fields [i];
- if (field.Name.StartsWith (prefix)) {
+ if (field.Name.StartsWith (prefix, StringComparison.Ordinal)) {
fields.RemoveAt (i);
counter++;
}
@@ -167,7 +168,8 @@ namespace Gendarme.Rules.Smells {
continue;
int count = CountPrefixedFields (prefix, i);
if (count > 1) {
- string msg = String.Format ("This type contains fields common prefixes: {0} fields prefixed with '{1}'.",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "This type contains fields common prefixes: {0} fields prefixed with '{1}'.",
count, prefix);
Runner.Report (type, Severity.Medium, Confidence.High, msg);
}
@@ -182,7 +184,8 @@ namespace Gendarme.Rules.Smells {
int fcount = GetNonConstantFieldsCount (type);
if (fcount > MaxFields) {
- string msg = String.Format ("This type contains a lot of fields ({0} versus maximum of {1}).",
+ string msg = String.Format (CultureInfo.InvariantCulture,
+ "This type contains a lot of fields ({0} versus maximum of {1}).",
fcount, MaxFields);
Runner.Report (type, Severity.High, Confidence.High, msg);
}
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongMethodsRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongMethodsRule.cs
index 67cb274..1ef115b 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongMethodsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongMethodsRule.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -181,19 +182,6 @@ namespace Gendarme.Rules.Smells {
const int AssignationRatio = 7;
const int DefaultAmountOfElements = 13;
- static Dictionary<string, string> typeMethodDictionary;
-
- static AvoidLongMethodsRule ()
- {
- typeMethodDictionary = new Dictionary<string,string> (4);
- typeMethodDictionary.Add ("Gtk.Bin", "Build");
- typeMethodDictionary.Add ("Gtk.Window", "Build");
- typeMethodDictionary.Add ("Gtk.Dialog", "Build");
- typeMethodDictionary.Add ("System.Windows.Forms.Form", "InitializeComponent");
- typeMethodDictionary.Add ("System.Workflow.Activities.SequentialWorkflowActivity", "InitializeComponent");
- typeMethodDictionary.Add ("System.Workflow.Activities.StateMachineWorkflowActivity", "InitializeComponent");
- typeMethodDictionary.Add ("System.Windows.Controls.UserControl", "InitializeComponent");
- }
public AvoidLongMethodsRule ()
{
@@ -215,12 +203,31 @@ namespace Gendarme.Rules.Smells {
if (method.HasParameters)
return false;
+ string name = method.Name;
+ if ((name != "Build") && (name != "InitializeComponent"))
+ return false;
+
TypeDefinition type = method.DeclaringType.Resolve ();
- if ((type != null) && (type.BaseType != null)) {
- string method_name;
- if (typeMethodDictionary.TryGetValue (type.BaseType.FullName, out method_name)) {
- return (method_name == method.Name);
+ if ((type == null) || (type.BaseType == null))
+ return false;
+
+ string nspace = type.BaseType.Namespace;
+ string tname = type.BaseType.Name;
+ switch (name) {
+ case "Build":
+ if (nspace != "Gtk")
+ return false;
+ return (tname == "Bin" || tname == "Window" || tname == "Dialog");
+ case "InitializeComponent":
+ switch (nspace) {
+ case "System.Windows.Forms":
+ return tname == "Form";
+ case "System.Workflow.Activities":
+ return tname == "SequentialWorkflowActivity" || tname == "StateMachineWorkflowActivity";
+ case "System.Windows.Controls":
+ return tname == "UserControl";
}
+ break;
}
return false;
}
@@ -326,7 +333,8 @@ namespace Gendarme.Rules.Smells {
if (sloc <= max)
return RuleResult.Success;
- string message = String.Format ("Logical SLOC: {0}. Maximum : {1}", sloc, max);
+ string message = String.Format (CultureInfo.CurrentCulture,
+ "Logical SLOC: {0}. Maximum : {1}", sloc, max);
Runner.Report (method, Severity.High, Confidence.High, message);
} else {
// success if the instruction count is below the defined threshold
@@ -336,7 +344,8 @@ namespace Gendarme.Rules.Smells {
if (count <= max)
return RuleResult.Success;
- string message = String.Format ("Method IL Size: {0}. Maximum Size: {1}", count, max);
+ string message = String.Format (CultureInfo.CurrentCulture,
+ "Method IL Size: {0}. Maximum Size: {1}", count, max);
Runner.Report (method, Severity.High, Confidence.Normal, message);
}
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs
index bd5ff4f..a76ec28 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidLongParameterListsRule.cs
@@ -131,13 +131,13 @@ namespace Gendarme.Rules.Smells {
if (constructor == null)
return;
if (HasMoreParametersThanAllowed (constructor))
- Runner.Report (constructor, Severity.Medium, Confidence.Normal, "This constructor contains a long parameter list.");
+ Runner.Report (constructor, Severity.Medium, Confidence.High, "This constructor contains a long parameter list.");
}
private void CheckMethod (IMethodSignature method)
{
if (HasMoreParametersThanAllowed (method))
- Runner.Report (method, Severity.Medium, Confidence.Normal, "This method contains a long parameter list.");
+ Runner.Report (method, Severity.Medium, Confidence.High, "This method contains a long parameter list.");
}
//TODO: Perhaps we can perform this action with linq instead of
@@ -182,7 +182,7 @@ namespace Gendarme.Rules.Smells {
MethodDefinition method = type.GetMethod ("Invoke");
// MulticastDelegate inherits from Delegate without overriding Invoke
if ((method != null) && HasMoreParametersThanAllowed (method))
- Runner.Report (type, Severity.Medium, Confidence.Normal, "This delegate contains a long parameter list.");
+ Runner.Report (type, Severity.Medium, Confidence.High, "This delegate contains a long parameter list.");
return Runner.CurrentRuleResult;
}
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidMessageChainsRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidMessageChainsRule.cs
index 8d79e77..f786cb7 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/AvoidMessageChainsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidMessageChainsRule.cs
@@ -31,6 +31,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -116,7 +117,7 @@ namespace Gendarme.Rules.Smells {
// operators "break" chains
MethodReference mr = (ins.Operand as MethodReference);
- if (mr.Name.StartsWith ("op_"))
+ if (mr.Name.StartsWith ("op_", StringComparison.Ordinal))
continue;
int counter = 1;
@@ -131,7 +132,8 @@ namespace Gendarme.Rules.Smells {
Log.WriteLine (this, "chain of length {0} at {1:X4}", counter, ins.Offset);
if (counter > MaxChainLength) {
- string msg = String.Format ("Chain length {0} versus maximum of {1}.", counter, MaxChainLength);
+ string msg = String.Format (CultureInfo.CurrentCulture,
+ "Chain length {0} versus maximum of {1}.", counter, MaxChainLength);
Runner.Report (method, ins, Severity.Medium, Confidence.Normal, msg);
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Smells/AvoidSpeculativeGeneralityRule.cs b/gendarme/rules/Gendarme.Rules.Smells/AvoidSpeculativeGeneralityRule.cs
index 7228572..1393c22 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/AvoidSpeculativeGeneralityRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/AvoidSpeculativeGeneralityRule.cs
@@ -117,15 +117,14 @@ namespace Gendarme.Rules.Smells {
[EngineDependency (typeof (OpCodeEngine))]
public class AvoidSpeculativeGeneralityRule : Rule, ITypeRule {
- private bool HasExpectedInheritedTypeCount (MemberReference baseType, int expected)
+ private bool HasExpectedInheritedTypeCount (TypeReference baseType, int expected)
{
int count = 0;
- string base_name = baseType.FullName;
foreach (AssemblyDefinition assembly in Runner.Assemblies) {
foreach (ModuleDefinition module in assembly.Modules) {
foreach (TypeDefinition type in module.GetAllTypes ()) {
if ((baseType == type.BaseType) || (type.BaseType != null &&
- (base_name == type.BaseType.FullName))) {
+ type.BaseType.IsNamed (baseType.Namespace, baseType.Name))) {
if (++count > expected)
return false;
}
@@ -168,7 +167,7 @@ namespace Gendarme.Rules.Smells {
private static bool InheritsOnlyFromObject (TypeDefinition type)
{
- return !type.HasInterfaces && type.BaseType.FullName == "System.Object";
+ return !type.HasInterfaces && type.BaseType.IsNamed ("System", "Object");
}
private static bool MostlyMethodsDelegatesCall (TypeDefinition type)
diff --git a/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs b/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs
index 621c22c..1e9790e 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/CodeDuplicatedLocator.cs
@@ -30,6 +30,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
+using System.Globalization;
using Mono.Cecil;
using Mono.Cecil.Cil;
@@ -81,8 +82,10 @@ namespace Gendarme.Rules.Smells {
continue;
Pattern duplicated = GetDuplicatedCode (current, target);
- if (duplicated != null && duplicated.Count > 0)
- parent_rule.Runner.Report (current, duplicated[0], Severity.High, Confidence.Normal, String.Format ("Duplicated code with {0}", target));
+ if (duplicated != null && duplicated.Count > 0) {
+ parent_rule.Runner.Report (current, duplicated[0], Severity.High, Confidence.Normal,
+ String.Format (CultureInfo.InvariantCulture, "Duplicated code with {0}", target.GetFullName ()));
+ }
}
}
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Gendarme.Rules.Smells.csproj b/gendarme/rules/Gendarme.Rules.Smells/Gendarme.Rules.Smells.csproj
index e3d68f2..bdad8ae 100755
--- a/gendarme/rules/Gendarme.Rules.Smells/Gendarme.Rules.Smells.csproj
+++ b/gendarme/rules/Gendarme.Rules.Smells/Gendarme.Rules.Smells.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme.Rules.Smells</RootNamespace>
<AssemblyName>Gendarme.Rules.Smells</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -24,6 +44,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Smells.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -35,6 +56,7 @@
<NoWarn>1591</NoWarn>
<WarningsAsErrors>1570</WarningsAsErrors>
<DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Smells.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -72,6 +94,23 @@
<Name>Gendarme.Rules.Performance</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Smells/InstructionMatcher.cs b/gendarme/rules/Gendarme.Rules.Smells/InstructionMatcher.cs
index 21fee89..34891d6 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/InstructionMatcher.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/InstructionMatcher.cs
@@ -51,8 +51,8 @@ namespace Gendarme.Rules.Smells {
if ((source == null) || (target == null))
return false;
- int ss = source.GetSequence () - 1;
- int ts = target.GetSequence () - 1;
+ int ss = source.Index;
+ int ts = target.Index;
if ((ss <= 0) || (ts <= 0))
return false;
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Makefile.in b/gendarme/rules/Gendarme.Rules.Smells/Makefile.in
index cc8f4af..39e83cb 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Smells/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -281,14 +357,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -298,6 +374,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -306,42 +383,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -350,7 +448,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -367,7 +465,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -375,7 +473,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -401,16 +499,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -418,14 +516,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -437,7 +535,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -446,29 +544,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -489,29 +592,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -534,10 +649,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -545,6 +665,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -564,6 +685,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -573,18 +696,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -606,8 +739,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -627,11 +760,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -640,7 +773,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -660,6 +793,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs b/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs
index c0c37e4..17b5afb 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/Pattern.cs
@@ -52,16 +52,7 @@ namespace Gendarme.Rules.Smells {
{
if (ins.OpCode.Code != Code.Isinst)
return false;
- return ((ins.Operand as TypeReference).FullName == "System.IDisposable");
- }
-
- // look for a virtual call to a specific method
- static bool IsCallVirt (Instruction ins, string typeName, string methodName)
- {
- if (ins.OpCode.Code != Code.Callvirt)
- return false;
- MethodReference mr = (ins.Operand as MethodReference);
- return ((mr != null) && (mr.Name == methodName) && (mr.DeclaringType.FullName == typeName));
+ return (ins.Operand as TypeReference).IsNamed ("System", "IDisposable");
}
// look for:
@@ -69,7 +60,9 @@ namespace Gendarme.Rules.Smells {
// endfinally
static bool IsIDisposableDisposePattern (Instruction ins)
{
- if (!IsCallVirt (ins, "System.IDisposable", "Dispose"))
+ if (ins.OpCode.Code != Code.Callvirt)
+ return false;
+ if (!(ins.Operand as MethodReference).IsNamed ("System", "IDisposable", "Dispose"))
return false;
return ins.Next.Is (Code.Endfinally);
}
@@ -89,10 +82,13 @@ namespace Gendarme.Rules.Smells {
for (int i = 0; i < Count; i++) {
Instruction ins = instructions [i];
// foreach
- if (IsCallVirt (ins, "System.Collections.IEnumerator", "get_Current"))
- return true;
- if (IsCallVirt (ins, "System.Collections.IEnumerator", "MoveNext"))
- return !call;
+ if (ins.OpCode.Code == Code.Callvirt) {
+ MethodReference mr = (ins.Operand as MethodReference);
+ if (mr.IsNamed ("System.Collections", "IEnumerator", "get_Current"))
+ return true;
+ if (mr.IsNamed ("System.Collections", "IEnumerator", "MoveNext"))
+ return !call;
+ }
// if there's a unknown call then it's likely not (totally) compiler generated
call |= (ins.OpCode.FlowControl == FlowControl.Call);
// foreach
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Test/AvoidCodeDuplicatedInSameClassTest.cs b/gendarme/rules/Gendarme.Rules.Smells/Test/AvoidCodeDuplicatedInSameClassTest.cs
index f88d4ed..11dcfa6 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/Test/AvoidCodeDuplicatedInSameClassTest.cs
+++ b/gendarme/rules/Gendarme.Rules.Smells/Test/AvoidCodeDuplicatedInSameClassTest.cs
@@ -686,20 +686,20 @@ namespace Test.Rules.Smells {
class NonDuplicatedComparingAndReturningNull {
string CheckTwoOptions (TypeReference type)
{
- if (type.Implements ("System.Collections.IDictionary") || type.Implements ("System.Collections.Generic.IDictionary`2"))
+ if (type.Implements ("System.Collections", "IDictionary") || type.Implements ("System.Collections.Generic", "IDictionary`2"))
return null;
return "'Dictionary' should only be used for types implementing IDictionary and IDictionary<TKey,TValue>.";
}
string CheckThreeOptions (TypeReference type)
{
- if (type.Implements ("System.Collections.ICollection") ||
- type.Implements ("System.Collections.IEnumerable") ||
- type.Implements ("System.Collections.Generic.ICollection`1"))
+ if (type.Implements ("System.Collections", "ICollection") ||
+ type.Implements ("System.Collections", "IEnumerable") ||
+ type.Implements ("System.Collections.Generic", "ICollection`1"))
return null;
- if (type.Inherits ("System.Collections.Queue") || type.Inherits ("System.Collections.Stack") ||
- type.Inherits ("System.Data.DataSet") || type.Inherits ("System.Data.DataTable"))
+ if (type.Inherits ("System.Collections", "Queue") || type.Inherits ("System.Collections", "Stack") ||
+ type.Inherits ("System.Data", "DataSet") || type.Inherits ("System.Data", "DataTable"))
return null;
return "'Collection' should only be used for implementing ICollection or IEnumerable or inheriting from Queue, Stack, DataSet and DataTable.";
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Smells/Test/Makefile.in
index 4914884..b0a0637 100644
--- a/gendarme/rules/Gendarme.Rules.Smells/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Smells/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Smells/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Smells/Test/Tests.Rules.Smells.csproj b/gendarme/rules/Gendarme.Rules.Smells/Test/Tests.Rules.Smells.csproj
index a67869a..eb69c1d 100755
--- a/gendarme/rules/Gendarme.Rules.Smells/Test/Tests.Rules.Smells.csproj
+++ b/gendarme/rules/Gendarme.Rules.Smells/Test/Tests.Rules.Smells.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.Rules.Smells</RootNamespace>
<AssemblyName>Tests.Rules.Smells</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -75,6 +97,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/Gendarme.Rules.Ui/AddMatchingArrangeMeasureOverrideRule.cs b/gendarme/rules/Gendarme.Rules.Ui/AddMatchingArrangeMeasureOverrideRule.cs
index aaf21fe..b288e10 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/AddMatchingArrangeMeasureOverrideRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Ui/AddMatchingArrangeMeasureOverrideRule.cs
@@ -81,15 +81,18 @@ namespace Gendarme.Rules.UI {
// if the module does not reference System.Windows.Size,
// then it will not be using the overrides
Runner.AnalyzeModule += delegate (object o, RunnerEventArgs e) {
- Active = ((e.CurrentAssembly.Name.Name == "WindowsBase" ||
- e.CurrentAssembly.Name.Name == "System.Windows") ||
- e.CurrentModule.HasTypeReference (Size));
+ string assembly_name = e.CurrentAssembly.Name.Name;
+ Active = ((assembly_name == "WindowsBase" || assembly_name == "System.Windows") ||
+ e.CurrentModule.AnyTypeReference ((TypeReference tr) => {
+ return tr.IsNamed ("System.Windows", "Size");
+ })
+ );
};
}
public RuleResult CheckType (TypeDefinition type)
{
- if (!type.IsClass || !type.HasMethods || !type.Inherits ("System.Windows.FrameworkElement"))
+ if (!type.IsClass || !type.HasMethods || !type.Inherits ("System.Windows", "FrameworkElement"))
return RuleResult.DoesNotApply;
var arrangeOverride = type.GetMethod (arrangeSignature);
var measureOverride = type.GetMethod (measureSignature);
diff --git a/gendarme/rules/Gendarme.Rules.Ui/Gendarme.Rules.Ui.csproj b/gendarme/rules/Gendarme.Rules.Ui/Gendarme.Rules.Ui.csproj
index 379050c..dd0ff7a 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/Gendarme.Rules.Ui.csproj
+++ b/gendarme/rules/Gendarme.Rules.Ui/Gendarme.Rules.Ui.csproj
@@ -1,119 +1,141 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{949C4D51-4581-402A-AC18-B1B41F395FDA}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Gendarme.Rules.Ui</RootNamespace>
- <AssemblyName>Gendarme.Rules.Ui</AssemblyName>
- <FileUpgradeFlags>
- </FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
- <UpgradeBackupLocation>
- </UpgradeBackupLocation>
- <PublishUrl>http://localhost/Gendarme.Rules.Ui/</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Web</InstallFrom>
- <UpdateEnabled>true</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\console\bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <NoWarn>1590</NoWarn>
- <WarningsAsErrors>1571</WarningsAsErrors>
- <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Ui.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\console\bin\Release\</OutputPath>
- <DefineConstants>TRACE;RELEASE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Ui.xml</DocumentationFile>
- <NoWarn>1591</NoWarn>
- <WarningsAsErrors>1570</WarningsAsErrors>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="AddMatchingArrangeMeasureOverrideRule.cs" />
- <Compile Include="ExecutableTargetRule.cs" />
- <Compile Include="GtkSharpExecutableTargetRule.cs" />
- <Compile Include="SystemWindowsFormsExecutableTargetRule.cs" />
- <Compile Include="UseSTAThreadAttributeOnSWFEntryPointsRule.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
- <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
- <Name>Mono.Cecil</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
- <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
- <Name>Gendarme.Framework</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
- <Visible>False</Visible>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
- <Visible>False</Visible>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
- <Visible>False</Visible>
- </BootstrapperPackage>
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{949C4D51-4581-402A-AC18-B1B41F395FDA}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Gendarme.Rules.Ui</RootNamespace>
+ <AssemblyName>Gendarme.Rules.Ui</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <PublishUrl>http://localhost/Gendarme.Rules.Ui/</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Web</InstallFrom>
+ <UpdateEnabled>true</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\console\bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoWarn>1590</NoWarn>
+ <WarningsAsErrors>1571</WarningsAsErrors>
+ <DocumentationFile>..\..\console\bin\Debug\Gendarme.Rules.Ui.xml</DocumentationFile>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\console\bin\Release\</OutputPath>
+ <DefineConstants>TRACE;RELEASE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\console\bin\Release\Gendarme.Rules.Ui.xml</DocumentationFile>
+ <NoWarn>1591</NoWarn>
+ <WarningsAsErrors>1570</WarningsAsErrors>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="AddMatchingArrangeMeasureOverrideRule.cs" />
+ <Compile Include="ExecutableTargetRule.cs" />
+ <Compile Include="GtkSharpExecutableTargetRule.cs" />
+ <Compile Include="SystemWindowsFormsExecutableTargetRule.cs" />
+ <Compile Include="UseSTAThreadAttributeOnSWFEntryPointsRule.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\cecil\Mono.Cecil.csproj">
+ <Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
+ <Name>Mono.Cecil</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
- <ProjectExtensions>
- <MonoDevelop>
- <Properties>
- <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile.am" IsAutotoolsProject="true" RelativeConfigureInPath="../../..">
- <BuildFilesVar Sync="true" Name="rules_sources" />
- <DeployFilesVar />
- <ResourcesVar />
- <OthersVar />
- <GacRefVar />
- <AsmRefVar />
- <ProjectRefVar />
- </MonoDevelop.Autotools.MakefileInfo>
- </Properties>
- </MonoDevelop>
- <VisualStudio />
- </ProjectExtensions>
+ -->
+ <ProjectExtensions>
+ <MonoDevelop>
+ <Properties>
+ <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile.am" IsAutotoolsProject="true" RelativeConfigureInPath="../../..">
+ <BuildFilesVar Sync="true" Name="rules_sources" />
+ <DeployFilesVar />
+ <ResourcesVar />
+ <OthersVar />
+ <GacRefVar />
+ <AsmRefVar />
+ <ProjectRefVar />
+ </MonoDevelop.Autotools.MakefileInfo>
+ </Properties>
+ </MonoDevelop>
+ <VisualStudio />
+ </ProjectExtensions>
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Ui/Makefile.in b/gendarme/rules/Gendarme.Rules.Ui/Makefile.in
index d5a210e..5825525 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Ui/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,11 +60,38 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(rules_categorydir)" \
"$(DESTDIR)$(rules_documentationdir)"
-rules_categorySCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(rules_category_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -56,20 +102,46 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-rules_documentationDATA_INSTALL = $(INSTALL_DATA)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(rules_documentation_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -130,6 +202,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -143,9 +216,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -271,14 +347,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -288,6 +364,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../common.make $(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -296,42 +373,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-rules_categorySCRIPTS: $(rules_category_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(rules_categorydir)" || $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)"
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_categorydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_categorydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(rules_categorySCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- $(rules_categorySCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_categorydir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(rules_categorydir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(rules_categorydir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-rules_categorySCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(rules_category_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(rules_categorydir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_categorydir)/$$f"; \
- done
+ @list='$(rules_category_SCRIPTS)'; test -n "$(rules_categorydir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(rules_categorydir)'; $(am__uninstall_files_from_dir)
install-rules_documentationDATA: $(rules_documentation_DATA)
@$(NORMAL_INSTALL)
- test -z "$(rules_documentationdir)" || $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)"
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(rules_documentationdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(rules_documentationDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- $(rules_documentationDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rules_documentationdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rules_documentationdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(rules_documentationdir)" || exit $$?; \
done
uninstall-rules_documentationDATA:
@$(NORMAL_UNINSTALL)
- @list='$(rules_documentation_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(rules_documentationdir)/$$f'"; \
- rm -f "$(DESTDIR)$(rules_documentationdir)/$$f"; \
- done
+ @list='$(rules_documentation_DATA)'; test -n "$(rules_documentationdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(rules_documentationdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -340,7 +438,7 @@ uninstall-rules_documentationDATA:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -357,7 +455,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -365,7 +463,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -391,16 +489,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -408,14 +506,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -427,7 +525,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -436,29 +534,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -479,29 +582,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -524,10 +639,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -535,6 +655,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -554,6 +675,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -563,18 +686,28 @@ install-data-am: install-rules_categorySCRIPTS \
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -596,8 +729,8 @@ ps-am:
uninstall-am: uninstall-rules_categorySCRIPTS \
uninstall-rules_documentationDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-local \
@@ -617,11 +750,11 @@ uninstall-am: uninstall-rules_categorySCRIPTS \
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -630,7 +763,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
@@ -650,6 +783,7 @@ $(rules_doc_source):
clean-local:
rm -fr doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Ui/Test/Makefile.in b/gendarme/rules/Gendarme.Rules.Ui/Test/Makefile.in
index 8446ee5..9dee3f5 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/Test/Makefile.in
+++ b/gendarme/rules/Gendarme.Rules.Ui/Test/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -197,14 +226,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Test/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Test/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Gendarme.Rules.Ui/Test/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -222,6 +251,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -245,13 +275,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -269,16 +303,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -298,6 +338,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -306,18 +348,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -352,6 +404,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Ui/Test/Tests.Rules.Ui.csproj b/gendarme/rules/Gendarme.Rules.Ui/Test/Tests.Rules.Ui.csproj
index 1122d10..902d880 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/Test/Tests.Rules.Ui.csproj
+++ b/gendarme/rules/Gendarme.Rules.Ui/Test/Tests.Rules.Ui.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -12,9 +12,11 @@
<AssemblyName>Tests.Rules.Ui</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
- <OldToolsVersion>2.0</OldToolsVersion>
+ <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>http://localhost/Tests.Rules.Ui/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
@@ -27,10 +29,9 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -48,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -64,6 +67,7 @@
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
+ <Reference Include="System.Xaml" />
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
@@ -94,14 +98,33 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
+ <ProductName>
+ </ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/gendarme/rules/Gendarme.Rules.Ui/UseSTAThreadAttributeOnSWFEntryPointsRule.cs b/gendarme/rules/Gendarme.Rules.Ui/UseSTAThreadAttributeOnSWFEntryPointsRule.cs
index 5d0cf60..7460b54 100644
--- a/gendarme/rules/Gendarme.Rules.Ui/UseSTAThreadAttributeOnSWFEntryPointsRule.cs
+++ b/gendarme/rules/Gendarme.Rules.Ui/UseSTAThreadAttributeOnSWFEntryPointsRule.cs
@@ -92,9 +92,6 @@ namespace Gendarme.Rules.UI {
private const string SystemWindowsForms = "System.Windows.Forms";
- private const string STAThread = "System.STAThreadAttribute";
- private const string MTAThread = "System.MTAThreadAttribute";
-
public RuleResult CheckAssembly (AssemblyDefinition assembly)
{
MethodDefinition entry_point = assembly.EntryPoint;
@@ -115,8 +112,8 @@ namespace Gendarme.Rules.UI {
if (!referencesSWF)
return RuleResult.DoesNotApply;
- bool hasSTA = entry_point.HasAttribute (STAThread);
- bool hasMTA = entry_point.HasAttribute (MTAThread);
+ bool hasSTA = entry_point.HasAttribute ("System", "STAThreadAttribute");
+ bool hasMTA = entry_point.HasAttribute ("System", "MTAThreadAttribute");
// success if only [STAThread] attribute is present
if (hasSTA && !hasMTA)
diff --git a/gendarme/rules/Makefile.in b/gendarme/rules/Makefile.in
index bb78093..976694d 100644
--- a/gendarme/rules/Makefile.in
+++ b/gendarme/rules/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -233,14 +290,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -258,6 +315,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -266,7 +324,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -283,7 +341,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -291,7 +349,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -317,16 +375,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -334,14 +392,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -353,7 +411,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -362,29 +420,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -405,29 +468,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -447,16 +522,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -476,6 +557,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -483,21 +566,30 @@ info-am:
install-data-am:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
-
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -519,9 +611,9 @@ ps-am:
uninstall-am:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-data-am install-strip uninstall-am
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-data-am install-strip tags-recursive \
+ uninstall-am
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -563,6 +655,7 @@ run-test:
list='$(RULEDIRS)'; for d in $$list ; do \
(cd $$d && $(MAKE) run-test) ; \
done;
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Test.Rules/Makefile.am b/gendarme/rules/Test.Rules/Makefile.am
index 428350d..e3f3ae4 100644
--- a/gendarme/rules/Test.Rules/Makefile.am
+++ b/gendarme/rules/Test.Rules/Makefile.am
@@ -5,7 +5,7 @@ test_SCRIPTS =
test_DATA =
framework=../../bin/Gendarme.Framework.dll
-common_tests=../Test.Rules/Test.Rules.dll
+common_tests=Test.Rules.dll
EXTRA_DIST = $(test_sources) Test.Rules.csproj
CLEANFILES = Test.Rules.dll Test.Rules.dll.mdb $(common_tests)
@@ -24,8 +24,8 @@ test_sources = \
test_build_sources = $(addprefix $(srcdir)/, $(test_sources))
-$(common_tests): $(test_build_sources)
- $(GMCS) -target:library $(TESTS_OPTIONS) -pkg:mono-nunit -r:$(CECIL_ASM) -r:$(framework) -out:$@ $(test_build_sources)
+$(common_tests): $(test_build_sources) $(framework)
+ $(MCS) -target:library $(TESTS_OPTIONS) -pkg:mono-nunit -r:$(CECIL_ASM) -r:$(framework) -out:$@ $(test_build_sources)
all: $(common_tests)
diff --git a/gendarme/rules/Test.Rules/Makefile.in b/gendarme/rules/Test.Rules/Makefile.in
index fe257ab..cc4df0c 100644
--- a/gendarme/rules/Test.Rules/Makefile.in
+++ b/gendarme/rules/Test.Rules/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,20 +60,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(testdir)" "$(DESTDIR)$(testdir)"
-testSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(test_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-testDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(testdir)" "$(DESTDIR)$(testdir)"
+SCRIPTS = $(test_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(test_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -117,6 +161,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -130,9 +175,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -212,7 +260,7 @@ testdir = .
test_SCRIPTS =
test_DATA =
framework = ../../bin/Gendarme.Framework.dll
-common_tests = ../Test.Rules/Test.Rules.dll
+common_tests = Test.Rules.dll
EXTRA_DIST = $(test_sources) Test.Rules.csproj
CLEANFILES = Test.Rules.dll Test.Rules.dll.mdb $(common_tests)
DISTCLEANFILES = Makefile.in
@@ -235,14 +283,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/..
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Test.Rules/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/rules/Test.Rules/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/rules/Test.Rules/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/rules/Test.Rules/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -252,6 +300,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/../../options.make:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -260,42 +309,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-testSCRIPTS: $(test_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(testdir)" || $(MKDIR_P) "$(DESTDIR)$(testdir)"
- @list='$(test_SCRIPTS)'; for p in $$list; do \
+ @list='$(test_SCRIPTS)'; test -n "$(testdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(testdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(testdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(testSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(testdir)/$$f'"; \
- $(testSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(testdir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(testdir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(testdir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-testSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(test_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(testdir)/$$f'"; \
- rm -f "$(DESTDIR)$(testdir)/$$f"; \
- done
+ @list='$(test_SCRIPTS)'; test -n "$(testdir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(testdir)'; $(am__uninstall_files_from_dir)
install-testDATA: $(test_DATA)
@$(NORMAL_INSTALL)
- test -z "$(testdir)" || $(MKDIR_P) "$(DESTDIR)$(testdir)"
- @list='$(test_DATA)'; for p in $$list; do \
+ @list='$(test_DATA)'; test -n "$(testdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(testdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(testdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(testDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(testdir)/$$f'"; \
- $(testDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(testdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(testdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(testdir)" || exit $$?; \
done
uninstall-testDATA:
@$(NORMAL_UNINSTALL)
- @list='$(test_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(testdir)/$$f'"; \
- rm -f "$(DESTDIR)$(testdir)/$$f"; \
- done
+ @list='$(test_DATA)'; test -n "$(testdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(testdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -319,13 +389,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -346,10 +420,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -357,6 +436,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -376,6 +456,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -384,18 +466,28 @@ install-data-am: install-testDATA install-testSCRIPTS
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -431,8 +523,8 @@ uninstall-am: uninstall-testDATA uninstall-testSCRIPTS
uninstall-testSCRIPTS
-$(common_tests): $(test_build_sources)
- $(GMCS) -target:library $(TESTS_OPTIONS) -pkg:mono-nunit -r:$(CECIL_ASM) -r:$(framework) -out:$@ $(test_build_sources)
+$(common_tests): $(test_build_sources) $(framework)
+ $(MCS) -target:library $(TESTS_OPTIONS) -pkg:mono-nunit -r:$(CECIL_ASM) -r:$(framework) -out:$@ $(test_build_sources)
all: $(common_tests)
@@ -441,6 +533,7 @@ test: $(common_tests)
run-test: test
self-test:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Test.Rules/Test.Rules.csproj b/gendarme/rules/Test.Rules/Test.Rules.csproj
index 8da60d8..9ee6d88 100755
--- a/gendarme/rules/Test.Rules/Test.Rules.csproj
+++ b/gendarme/rules/Test.Rules/Test.Rules.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test.Rules</RootNamespace>
<AssemblyName>Test.Rules</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
@@ -61,6 +83,23 @@
<Name>Gendarme.Framework</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/rules/common.make b/gendarme/rules/common.make
index 5e864e4..05eb8dd 100644
--- a/gendarme/rules/common.make
+++ b/gendarme/rules/common.make
@@ -39,13 +39,13 @@ rules_doc = $(rules_doc_zip) $(rules_doc_source) $(rules_doc_tree)
generated_doc = doc/generated/index.xml
$(rules_dll): $(rules_build_sources) $(framework)
- $(GMCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
+ $(MCS) -target:library $(EXTRA_RULES_OPTIONS) -nowarn:1591 -doc:$(rules_dll).doc \
-r:$(CECIL_ASM) -r:$(framework) -out:$@ $(rules_build_sources)
tests_build_sources = $(addprefix $(srcdir)/Test/, $(tests_sources))
$(tests_dll): $(tests_build_sources) $(rules_dll) $(EXTRA_TESTS_DEPS)
- $(GMCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
+ $(MCS) -target:library $(EXTRA_TESTS_OPTIONS) -r:$(CECIL_ASM) -r:$(framework) \
-r:$(rules_dll) -r:$(common_tests) -pkg:mono-nunit -out:$@ $(tests_build_sources)
rule: $(rules_dll)
@@ -54,7 +54,7 @@ test: $(tests_dll)
run-test: test
cp ../../bin/gendarme.exe.config $(tests_dll).config
- MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) nunit-console2 $(tests_dll)
+ MONO_PATH=../../bin/:../Test.Rules/:$(MONO_PATH) $(prefix)/bin/mono $(prefix)/lib/mono/4.0/nunit-console.exe $(tests_dll)
self-test: $(rules_dll)
mono --debug $(console_runner) $(rules_dll)
diff --git a/gendarme/self-test.ignore b/gendarme/self-test.ignore
index 0bf06ca..3daebf3 100644
--- a/gendarme/self-test.ignore
+++ b/gendarme/self-test.ignore
@@ -24,12 +24,14 @@ M: System.Void Gendarme.Rules.Concurrency.DoNotLockOnWeakIdentityObjectsRule::An
# all > 200 rules expose a Check* method that does not check for null (by contract) but we need code contracts to show this
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.AvoidAssemblyVersionMismatchRule::CheckAssembly(Mono.Cecil.AssemblyDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.AvoidCallingProblematicMethodsRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.AvoidNullCheckWithAsOperatorRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.AvoidVisibleConstantFieldRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.CheckNewExceptionWithoutThrowingRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.CheckNewThreadWithoutStartRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.CloneMethodShouldNotReturnNullRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.ConstructorShouldNotCallVirtualMethodsRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.DisableDebuggingCodeRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.DoNotDecreaseVisibilityRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.DoNotForgetNotImplementedMethodsRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.DoNotUseEnumIsAssignableFromRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.BadPractice.DoNotUseGetInterfaceToCheckAssignabilityRule::CheckMethod(Mono.Cecil.MethodDefinition)
@@ -58,6 +60,7 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.DoNotRecurseInEquali
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.BadRecursiveInvocationRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.CallingEqualsWithNullArgRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.CheckParametersNullityInVisibleMethodsRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.DeclareEventsExplicitlyRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.DisposableFieldsShouldBeDisposedRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.DoNotRoundIntegersRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.EnsureLocalDisposalRule::CheckMethod(Mono.Cecil.MethodDefinition)
@@ -75,6 +78,9 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.ReviewSelfAssignment
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.ReviewUselessControlFlowRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.ReviewUseOfInt64BitsToDoubleRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.ReviewUseOfModuloOneOnIntegersRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.TypesShouldBeDisposableBaseRule::CheckType(Mono.Cecil.TypeDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.TypesWithDisposableFieldsShouldBeDisposableRule::CheckType(Mono.Cecil.TypeDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.TypesWithNativeFieldsShouldBeDisposableRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.UseNoInliningWithGetCallingAssemblyRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.UseValueInPropertySetterRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.AbstractTypesShouldNotHavePublicConstructorsRule::CheckType(Mono.Cecil.TypeDefinition)
@@ -91,6 +97,7 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.ConsiderConvertingMethodT
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.ConsiderUsingStaticTypeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.DeclareEventHandlersCorrectlyRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.DisposableTypesShouldHaveFinalizerRule::CheckType(Mono.Cecil.TypeDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.DoNotDeclareSettersOnCollectionPropertiesRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.DoNotDeclareVirtualMethodsInSealedTypeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.DoNotDeclareProtectedMembersInSealedTypeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.EnsureSymmetryForOverloadedOperatorsRule::CheckType(Mono.Cecil.TypeDefinition)
@@ -109,8 +116,6 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.ProvideAlternativeNamesFo
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.ProvideTryParseAlternativeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.StronglyTypedRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.TypesShouldBeInsideNamespacesRule::CheckType(Mono.Cecil.TypeDefinition)
-M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.TypesWithDisposableFieldsShouldBeDisposableRule::CheckType(Mono.Cecil.TypeDefinition)
-M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.TypesWithNativeFieldsShouldBeDisposableRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.UseFlagsAttributeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.UseCorrectDisposeSignaturesRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.Generic.AvoidExcessiveParametersOnGenericTypesRule::CheckType(Mono.Cecil.TypeDefinition)
@@ -119,9 +124,9 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.Generic.DoNotDeclareStati
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.Generic.DoNotExposeGenericListsRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.Generic.ImplementGenericCollectionInterfacesRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.Generic.PreferGenericsOverRefObjectRule::CheckMethod(Mono.Cecil.MethodDefinition)
-M: Gendarme.Framework.RuleResult Gendarme.Rules.Globalization.SatelliteResourceMismatchRule::CheckAssembly(Mono.Cecil.AssemblyDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.AvoidArgumentExceptionDefaultConstructorRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.DoNotDestroyStackTraceRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.DoNotThrowInNonCatchClausesRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.DoNotThrowInUnexpectedLocationRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.DoNotSwallowErrorsCatchingNonSpecificExceptionsRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Exceptions.ExceptionShouldBeVisibleRule::CheckType(Mono.Cecil.TypeDefinition)
@@ -132,6 +137,8 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Gendarme.DefectsMustBeReportedRu
M: Gendarme.Framework.RuleResult Gendarme.Rules.Gendarme.DoNotThrowExceptionRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Gendarme.MissingEngineDependencyRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Gendarme.UseCorrectSuffixRule::CheckType(Mono.Cecil.TypeDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Globalization.PreferOverrideBaseRule::CheckMethod(Mono.Cecil.MethodDefinition)
+M: Gendarme.Framework.RuleResult Gendarme.Rules.Globalization.SatelliteResourceMismatchRule::CheckAssembly(Mono.Cecil.AssemblyDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Interoperability.CentralizePInvokesIntoNativeMethodsTypeRule::CheckType(Mono.Cecil.TypeDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Interoperability.CentralizePInvokesIntoNativeMethodsTypeRule::CheckMethod(Mono.Cecil.MethodDefinition)
M: Gendarme.Framework.RuleResult Gendarme.Rules.Interoperability.DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule::CheckMethod(Mono.Cecil.MethodDefinition)
@@ -279,6 +286,7 @@ M: System.Void Gendarme.Rules.Concurrency.DoNotLockOnWeakIdentityObjectsRule::An
# different code path / switch
M: System.Void Gendarme.Rules.Correctness.ProvideValidXmlStringRule::CheckCall(Mono.Cecil.MethodDefinition,Mono.Cecil.Cil.Instruction,Mono.Cecil.MethodReference)
M: System.Void Gendarme.Rules.Correctness.ProvideValidXPathExpressionRule::CheckCall(Mono.Cecil.MethodDefinition,Mono.Cecil.Cil.Instruction,Mono.Cecil.MethodReference)
+M: System.Boolean Gendarme.Rules.Concurrency.DoNotLockOnWeakIdentityObjectsRule::IsWeakSealedType(Mono.Cecil.TypeReference)
# mono bug wrt metatoken id with generics
R: Gendarme.Rules.Performance.AvoidUncalledPrivateCodeRule
@@ -298,7 +306,7 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.AvoidSmallNamespaceRule::
M: System.Void Gendarme.Rules.Design.AvoidSmallNamespaceRule::TearDown()
M: Gendarme.Framework.RuleResult Gendarme.Rules.Design.InternalNamespacesShouldNotExposeTypesRule::CheckAssembly(Mono.Cecil.AssemblyDefinition)
M: System.Void Gendarme.Rules.Interoperability.Com.MarkComSourceInterfacesAsIDispatchRule::FindInterfaces()
-M: System.Boolean Gendarme.Rules.Smells.AvoidSpeculativeGeneralityRule::HasExpectedInheritedTypeCount(Mono.Cecil.MemberReference,System.Int32)
+M: System.Boolean Gendarme.Rules.Smells.AvoidSpeculativeGeneralityRule::HasExpectedInheritedTypeCount(Mono.Cecil.TypeReference,System.Int32)
M: System.Void Gendarme.XmlResultWriter::CreateDefects()
M: System.Boolean Gendarme.Wizard::UpdateActiveRules()
M: System.Void Gendarme.Framework.Engines.SuppressMessageEngine::AddIgnore(Mono.Cecil.IMetadataTokenProvider,System.Collections.Generic.IEnumerable`1<System.String>)
@@ -344,6 +352,9 @@ T: Gendarme.Rules.Performance.ReviewLinqMethodRule
T: Gendarme.Rules.Design.StronglyTypedRule
# 2.8+
M: System.String Gendarme.Rules.Maintainability.PreferStringIsNullOrEmptyRule::GetName(Mono.Cecil.MethodDefinition,Mono.Cecil.Cil.Instruction)
+# ParseSeverity(System.String) and ParseConfidence(System.String) are very similar
+T: Gendarme.ConsoleRunner
+
R: Gendarme.Rules.Smells.AvoidCodeDuplicatedInSiblingClassesRule
M: Gendarme.Framework.RuleResult Gendarme.Rules.Correctness.AvoidFloatingPointEqualityRule::CheckMethod(Mono.Cecil.MethodDefinition)
# CheckType and GetEngineDependencyValue
@@ -354,6 +365,7 @@ T: Gendarme.Rules.Gendarme.GendarmeRule
R: Gendarme.Rules.Smells.AvoidSpeculativeGeneralityRule
T: Gendarme.Framework.EngineController
T: Gendarme.Framework.Helpers.MethodSignatures
+T: Gendarme.Framework.Rocks.ParameterRocks
# FIXME - note: some seems to be related to an xMCS bug
R: Gendarme.Rules.Performance.AvoidMethodWithLargeMaximumStackSizeRule
@@ -414,6 +426,7 @@ R: Gendarme.Rules.Maintainability.AvoidUnnecessarySpecializationRule
M: System.Boolean Gendarme.Rules.Interoperability.Com.ComRocks::IsTypeComVisible(Mono.Cecil.TypeDefinition)
M: System.Boolean Gendarme.Rules.Performance.AvoidUnnecessaryOverridesRule::IsBase(Mono.Cecil.MethodReference,Mono.Cecil.MethodReference)
M: System.Boolean Gendarme.Rules.Correctness.BadRecursiveInvocationRule::CompareMethods(Mono.Cecil.MethodReference,Mono.Cecil.MethodReference,System.Boolean)
+M: System.Boolean Gendarme.Rules.Naming.ParameterNamesShouldMatchOverriddenMethodRule::SignatureMatches(Mono.Cecil.MethodReference,Mono.Cecil.MethodReference,System.Boolean)
# ---------------------------------------------------------
# These are all OK.
@@ -458,11 +471,6 @@ M: Gendarme.Framework.RuleResult Gendarme.Rules.Interoperability.DelegatesPassed
# FIXME the last one needs validation
M: System.Boolean Gendarme.Wizard::CouldCopyReport(System.String&,System.String)
-# OK - Version and Guid sadly do not provide a TryParse method (at least they did not before FX4.0 - FIXME once we update)
-R: Gendarme.Rules.Performance.DoNotIgnoreMethodResultRule
-M: System.Boolean Gendarme.Rules.Correctness.AttributeStringLiteralsShouldParseCorrectlyRule::TryParseVersion(System.String)
-M: System.Boolean Gendarme.Rules.Correctness.AttributeStringLiteralsShouldParseCorrectlyRule::TryParseGuid(System.String)
-
# OK - MethodSignatures use the CLR names for operators that starts with "op_"
R: Gendarme.Rules.Naming.AvoidNonAlphanumericIdentifierRule
T: Gendarme.Framework.Helpers.MethodSignatures
@@ -527,12 +535,6 @@ R: Gendarme.Rules.Smells.AvoidCodeDuplicatedInSameClassRule
# OK - (CSC only) GetLoadSlot and GetStoreSlot are identical except for the switch/case (load versus store instructions) - delegating calls won't change defect
T: Gendarme.Framework.Helpers.StackEntryAnalysis
-# FX4 related - will be fixed once we move to FX4 (likely for Gendarme 3.0)
-R: Gendarme.Rules.Maintainability.AvoidUnnecessarySpecializationRule
-# use ISet<H>
-M: System.Void Gendarme.Rules.Performance.AvoidUninstantiatedInternalClassesRule::AddType(System.Collections.Generic.HashSet`1<Mono.Cecil.TypeReference>,Mono.Cecil.TypeReference)
-M: System.Void Gendarme.Rules.Performance.AvoidUncalledPrivateCodeRule::BuildMethodUsage(System.Collections.Generic.HashSet`1<System.UInt32>,Mono.Cecil.MethodDefinition)
-
# OK
R: Gendarme.Rules.Naming.AvoidRedundancyInTypeNameRule
# ComRocks is not directly used
@@ -566,3 +568,12 @@ T: Gendarme.Rules.UI.GtkSharpExecutableTargetRule
# OK - Gendarme.Framework.Rule may throw exceptions as it is not a real rule
R: Gendarme.Rules.Gendarme.DoNotThrowExceptionRule
T: Gendarme.Framework.Rule
+
+# Type::op_[Ine|e]quality is new and marked as MonoTODO but it does (at least) the same job as the earlier FX provided
+R: Gendarme.Rules.Portability.MonoCompatibilityReviewRule
+M: System.Void Gendarme.Framework.Rocks.ModuleRocks::LoadDebuggingSymbols(Mono.Cecil.ModuleDefinition)
+M: System.Void Gendarme.Framework.Rocks.ModuleRocks::.cctor()
+M: System.Void Gendarme.Framework.EngineDependencyAttribute::.ctor(System.Type)
+M: System.Type Gendarme.Framework.Rule::get_Type()
+M: System.Security.IPermission Gendarme.Rules.Security.Cas.SecurityDeclarationRocks::CreatePermission(Mono.Cecil.SecurityDeclaration,Mono.Cecil.SecurityAttribute)
+
diff --git a/gendarme/swf-wizard-runner/GuiRunner.cs b/gendarme/swf-wizard-runner/GuiRunner.cs
index 385406e..b34d5cb 100644
--- a/gendarme/swf-wizard-runner/GuiRunner.cs
+++ b/gendarme/swf-wizard-runner/GuiRunner.cs
@@ -28,6 +28,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Reflection;
using System.Text;
@@ -110,11 +111,11 @@ namespace Gendarme {
TearDown ();
}
catch (Exception e) {
- if (CurrentRule != null)
- unexpected.AppendFormat ("Rule:\t{0}{1}{1}", CurrentRule, Environment.NewLine);
+ if (CurrentRule != null)
+ unexpected.Append ("Rule:\t").Append (CurrentRule).AppendLine ().AppendLine ();
if (CurrentTarget != null)
- unexpected.AppendFormat ("Target:\t{0}{1}{1}", CurrentTarget, Environment.NewLine);
- unexpected.AppendFormat ("Stack trace: {0}", e);
+ unexpected.Append ("Target:\t").Append (CurrentTarget).AppendLine ().AppendLine ();
+ unexpected.Append ("Stack trace: ").Append (e);
}
}
diff --git a/gendarme/swf-wizard-runner/Makefile.in b/gendarme/swf-wizard-runner/Makefile.in
index 3f27d9e..eddfea8 100644
--- a/gendarme/swf-wizard-runner/Makefile.in
+++ b/gendarme/swf-wizard-runner/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -40,20 +59,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(wizarddir)" "$(DESTDIR)$(desktopdir)"
-wizardSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(wizard_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-desktopDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(wizarddir)" "$(DESTDIR)$(desktopdir)"
+SCRIPTS = $(wizard_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(desktop_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -116,6 +160,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -129,9 +174,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -248,14 +296,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/swf-wizard-runner/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/swf-wizard-runner/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/swf-wizard-runner/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/swf-wizard-runner/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -273,42 +321,63 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-wizardSCRIPTS: $(wizard_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(wizarddir)" || $(MKDIR_P) "$(DESTDIR)$(wizarddir)"
- @list='$(wizard_SCRIPTS)'; for p in $$list; do \
+ @list='$(wizard_SCRIPTS)'; test -n "$(wizarddir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(wizarddir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(wizarddir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(wizardSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(wizarddir)/$$f'"; \
- $(wizardSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(wizarddir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(wizarddir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(wizarddir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-wizardSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(wizard_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(wizarddir)/$$f'"; \
- rm -f "$(DESTDIR)$(wizarddir)/$$f"; \
- done
+ @list='$(wizard_SCRIPTS)'; test -n "$(wizarddir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(wizarddir)'; $(am__uninstall_files_from_dir)
install-desktopDATA: $(desktop_DATA)
@$(NORMAL_INSTALL)
- test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
- @list='$(desktop_DATA)'; for p in $$list; do \
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \
- $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
done
uninstall-desktopDATA:
@$(NORMAL_UNINSTALL)
- @list='$(desktop_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \
- rm -f "$(DESTDIR)$(desktopdir)/$$f"; \
- done
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -332,13 +401,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -359,10 +432,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -370,6 +448,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -389,6 +468,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -397,18 +478,28 @@ install-data-am: install-desktopDATA install-wizardSCRIPTS
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -463,6 +554,7 @@ Properties/Resources.resources: $(wizard_properties_prefix_resx)
self-test: $(wizard_SCRIPTS)
mono --debug ../bin/gendarme.exe $(wizard_SCRIPTS)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/swf-wizard-runner/Properties/Resources.Designer.cs b/gendarme/swf-wizard-runner/Properties/Resources.Designer.cs
old mode 100644
new mode 100755
index c588026..9a1518f
--- a/gendarme/swf-wizard-runner/Properties/Resources.Designer.cs
+++ b/gendarme/swf-wizard-runner/Properties/Resources.Designer.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.1433
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace Gendarme.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
diff --git a/gendarme/swf-wizard-runner/Properties/Settings.Designer.cs b/gendarme/swf-wizard-runner/Properties/Settings.Designer.cs
old mode 100644
new mode 100755
index c7479ed..ad7c2d2
--- a/gendarme/swf-wizard-runner/Properties/Settings.Designer.cs
+++ b/gendarme/swf-wizard-runner/Properties/Settings.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.3053
+// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -12,7 +12,7 @@ namespace Gendarme.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
diff --git a/gendarme/swf-wizard-runner/Wizard.Designer.cs b/gendarme/swf-wizard-runner/Wizard.Designer.cs
index c92554a..9977480 100644
--- a/gendarme/swf-wizard-runner/Wizard.Designer.cs
+++ b/gendarme/swf-wizard-runner/Wizard.Designer.cs
@@ -146,7 +146,7 @@ namespace Gendarme {
this.label1.Padding = new System.Windows.Forms.Padding (12, 0, 0, 1);
this.label1.Size = new System.Drawing.Size (265, 14);
this.label1.TabIndex = 1;
- this.label1.Text = "Copyright © 2005-2010 Novell, Inc. and contributors";
+ this.label1.Text = "Copyright © 2005-2011 Novell, Inc. and contributors";
//
// welcome_link_label
//
diff --git a/gendarme/swf-wizard-runner/Wizard.cs b/gendarme/swf-wizard-runner/Wizard.cs
index 0739ca1..7465b19 100644
--- a/gendarme/swf-wizard-runner/Wizard.cs
+++ b/gendarme/swf-wizard-runner/Wizard.cs
@@ -30,6 +30,7 @@ using System;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Globalization;
using System.IO;
using System.Windows.Forms;
@@ -98,7 +99,7 @@ namespace Gendarme {
if ((v.Major == 0) && (v.Minor == 0))
welcome_gendarme_label.Text = "Gendarme (development snapshot)";
else
- welcome_gendarme_label.Text = String.Format ("Gendarme, version {0}", v);
+ welcome_gendarme_label.Text = String.Format (CultureInfo.CurrentCulture, "Gendarme, version {0}", v);
assembly_loader = UpdateAssemblies;
@@ -265,7 +266,7 @@ namespace Gendarme {
next_button.Enabled = has_files;
remove_file_button.Enabled = has_files;
if (has_files) {
- add_files_count_label.Text = String.Format ("{0} assembl{1} selected",
+ add_files_count_label.Text = String.Format (CultureInfo.CurrentCulture, "{0} assembl{1} selected",
files_count, files_count == 1 ? "y" : "ies");
} else {
add_files_count_label.Text = "No assembly selected.";
@@ -344,7 +345,8 @@ namespace Gendarme {
// asynchronously load assemblies (or the one that changed)
assemblies_loading = assembly_loader.BeginInvoke (EndCallback, assembly_loader);
- rules_count_label.Text = String.Format ("{0} rules are available.", Runner.Rules.Count);
+ rules_count_label.Text = String.Format (CultureInfo.CurrentCulture,
+ "{0} rules are available.", Runner.Rules.Count);
if (rules_loading == null)
throw new InvalidOperationException ("rules_loading");
@@ -390,7 +392,8 @@ namespace Gendarme {
parent.Checked = true;
}
foreach (TreeNode node in rules_tree_view.Nodes) {
- node.ToolTipText = String.Format ("{0} rules available", node.Nodes.Count);
+ node.ToolTipText = String.Format (CultureInfo.CurrentCulture,
+ "{0} rules available", node.Nodes.Count);
}
nodes.Clear ();
rules_tree_view.AfterCheck += RulesTreeViewAfterCheck;
@@ -527,8 +530,8 @@ namespace Gendarme {
// update UI before waiting for assemblies to be loaded
progress_bar.Value = 0;
next_button.Enabled = false;
- analyze_status_label.Text = String.Format ("Processing assembly 1 of {0}",
- assemblies.Count);
+ analyze_status_label.Text = String.Format (CultureInfo.CurrentCulture,
+ "Processing assembly 1 of {0}", assemblies.Count);
analyze_defect_label.Text = "Defects Found: 0";
// make sure all assemblies are loaded into memory
assemblies_loading.AsyncWaitHandle.WaitOne ();
@@ -597,7 +600,8 @@ namespace Gendarme {
private bool ConfirmAnalyzeAbort (bool quit)
{
- string message = String.Format ("Abort the current analysis being executed {0}Gendarme ?",
+ string message = String.Format (CultureInfo.CurrentCulture,
+ "Abort the current analysis being executed {0}Gendarme ?",
quit ? "and quit " : String.Empty);
return (MessageBox.Show (this, message, "Gendarme", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2) == DialogResult.Yes);
@@ -610,7 +614,8 @@ namespace Gendarme {
internal void PreAssemblyUpdate (RunnerEventArgs e)
{
progress_bar.Value = counter++;
- analyze_status_label.Text = String.Format ("Processing assembly {0} of {1}",
+ analyze_status_label.Text = String.Format (CultureInfo.CurrentCulture,
+ "Processing assembly {0} of {1}",
counter, e.Runner.Assemblies.Count);
analyze_assembly_label.Text = "Assembly: " + e.CurrentAssembly.Name.FullName;
}
@@ -621,7 +626,8 @@ namespace Gendarme {
/// <param name="e">RunnerEventArgs that contains the Assembly being analyzed and the Runner</param>
internal void PostTypeUpdate (RunnerEventArgs e)
{
- analyze_defect_label.Text = String.Format ("Defects Found: {0}", e.Runner.Defects.Count);
+ analyze_defect_label.Text = String.Format (CultureInfo.CurrentCulture,
+ "Defects Found: {0}", e.Runner.Defects.Count);
}
#endregion
@@ -633,8 +639,9 @@ namespace Gendarme {
bool has_defects = (Runner.Defects.Count > 0);
save_report_button.Enabled = has_defects;
view_report_button.Enabled = has_defects;
- report_subtitle_label.Text = String.Format ("Gendarme has found {0} defects during analysis.",
- has_defects ? Runner.Defects.Count.ToString () : "no");
+ report_subtitle_label.Text = String.Format (CultureInfo.CurrentCulture,
+ "Gendarme has found {0} defects during analysis.",
+ has_defects ? Runner.Defects.Count.ToString (CultureInfo.CurrentCulture) : "no");
cancel_button.Text = "Close";
next_button.Enabled = false;
diff --git a/gendarme/swf-wizard-runner/swf-wizard-runner.csproj b/gendarme/swf-wizard-runner/swf-wizard-runner.csproj
index b54da3b..4f52a11 100644
--- a/gendarme/swf-wizard-runner/swf-wizard-runner.csproj
+++ b/gendarme/swf-wizard-runner/swf-wizard-runner.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,9 +10,29 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Gendarme</RootNamespace>
<AssemblyName>GendarmeWizard</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ApplicationIcon>Resources\gendarme.ico</ApplicationIcon>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -22,6 +42,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -30,6 +51,7 @@
<DefineConstants>TRACE;RELEASE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -39,7 +61,7 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
- <Reference Include="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
+ <Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\AssemblyStaticInfo.cs" />
@@ -50,6 +72,16 @@
<Compile Include="..\console\XmlResultWriter.cs" />
<Compile Include="GuiRunner.cs" />
<Compile Include="Page.cs" />
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ <DependentUpon>Settings.settings</DependentUpon>
+ </Compile>
<Compile Include="Wizard.cs">
<SubType>Form</SubType>
</Compile>
@@ -64,16 +96,12 @@
<EmbeddedResource Include="Properties\Resources.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
- <Compile Include="Properties\Resources.Designer.cs">
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
- <Compile Include="Properties\Settings.Designer.cs">
- <DependentUpon>Settings.settings</DependentUpon>
- </Compile>
<EmbeddedResource Include="..\console\gendarme.xsl" />
<None Include="Resources\gendarme.png" />
</ItemGroup>
@@ -90,6 +118,23 @@
<ItemGroup>
<Content Include="Resources\gendarme.ico" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/tools/Makefile.in b/gendarme/tools/Makefile.in
index 6f8f383..0e0d068 100644
--- a/gendarme/tools/Makefile.in
+++ b/gendarme/tools/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -208,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -233,6 +290,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -241,7 +299,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -258,7 +316,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -266,7 +324,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -292,16 +350,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -309,14 +367,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -328,7 +386,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,29 +395,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -380,29 +443,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -422,16 +497,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -450,6 +531,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -458,18 +541,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -490,8 +583,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -508,6 +601,7 @@ uninstall-am:
all:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/supported/Makefile.am b/gendarme/tools/supported/Makefile.am
index 4f8f0a9..8590cf2 100644
--- a/gendarme/tools/supported/Makefile.am
+++ b/gendarme/tools/supported/Makefile.am
@@ -1,2 +1,2 @@
-SUBDIRS = gd2i
+SUBDIRS = gd2i templates
diff --git a/gendarme/tools/supported/Makefile.in b/gendarme/tools/supported/Makefile.in
index 32c44d6..37372cb 100644
--- a/gendarme/tools/supported/Makefile.in
+++ b/gendarme/tools/supported/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -200,7 +257,7 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = gd2i
+SUBDIRS = gd2i templates
all: all-recursive
.SUFFIXES:
@@ -208,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/supported/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/supported/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/supported/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/supported/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -233,6 +290,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -241,7 +299,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -258,7 +316,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -266,7 +324,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -292,16 +350,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -309,14 +367,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -328,7 +386,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,29 +395,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -380,29 +443,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -422,16 +497,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -450,6 +531,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -458,18 +541,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -490,8 +583,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -506,6 +599,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/supported/gd2i/Makefile.am b/gendarme/tools/supported/gd2i/Makefile.am
index 0ad49f3..c698ed5 100644
--- a/gendarme/tools/supported/gd2i/Makefile.am
+++ b/gendarme/tools/supported/gd2i/Makefile.am
@@ -12,7 +12,7 @@ gd2i_sources = \
gd2i.cs
$(gd2i_SCRIPTS): $(gd2i_sources)
- $(GMCS) -d:CODE_ANALYSIS -debug $^ -out:$@
+ $(MCS) -d:CODE_ANALYSIS -debug $^ -out:$@
update: $(gd2i_SCRIPTS)
mono --debug $(gd2i_SCRIPTS) ../../../bin/self-test.xml ../../../self-test.ignore
diff --git a/gendarme/tools/supported/gd2i/Makefile.in b/gendarme/tools/supported/gd2i/Makefile.in
index b6520cd..3a1f2d9 100644
--- a/gendarme/tools/supported/gd2i/Makefile.in
+++ b/gendarme/tools/supported/gd2i/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,13 +58,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(gd2idir)"
-gd2iSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(gd2i_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -107,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -120,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -210,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/supported/gd2i/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/supported/gd2i/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/supported/gd2i/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/supported/gd2i/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -235,25 +290,42 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-gd2iSCRIPTS: $(gd2i_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(gd2idir)" || $(MKDIR_P) "$(DESTDIR)$(gd2idir)"
- @list='$(gd2i_SCRIPTS)'; for p in $$list; do \
+ @list='$(gd2i_SCRIPTS)'; test -n "$(gd2idir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gd2idir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gd2idir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(gd2iSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(gd2idir)/$$f'"; \
- $(gd2iSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(gd2idir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(gd2idir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(gd2idir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-gd2iSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(gd2i_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(gd2idir)/$$f'"; \
- rm -f "$(DESTDIR)$(gd2idir)/$$f"; \
- done
+ @list='$(gd2i_SCRIPTS)'; test -n "$(gd2idir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(gd2idir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -277,13 +349,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -304,10 +380,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -315,6 +396,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -332,6 +414,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -340,18 +424,28 @@ install-data-am: install-gd2iSCRIPTS
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -387,7 +481,7 @@ uninstall-am: uninstall-gd2iSCRIPTS
$(gd2i_SCRIPTS): $(gd2i_sources)
- $(GMCS) -d:CODE_ANALYSIS -debug $^ -out:$@
+ $(MCS) -d:CODE_ANALYSIS -debug $^ -out:$@
update: $(gd2i_SCRIPTS)
mono --debug $(gd2i_SCRIPTS) ../../../bin/self-test.xml ../../../self-test.ignore
@@ -400,6 +494,7 @@ clean:
rm -f $(CLEANFILES) self-test.xml self-test.html
all: $(gd2i_SCRIPTS)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/supported/gd2i/gd2i.csproj b/gendarme/tools/supported/gd2i/gd2i.csproj
index ec2aa2d..84105de 100644
--- a/gendarme/tools/supported/gd2i/gd2i.csproj
+++ b/gendarme/tools/supported/gd2i/gd2i.csproj
@@ -1,60 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{627AA224-D043-4CF4-A783-72546E6ACFDD}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>gd2i</RootNamespace>
- <AssemblyName>gd2i</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="..\..\..\console\Options.cs">
- <Link>Options.cs</Link>
- </Compile>
- <Compile Include="gd2i.cs" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{627AA224-D043-4CF4-A783-72546E6ACFDD}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>gd2i</RootNamespace>
+ <AssemblyName>gd2i</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="..\..\..\console\Options.cs">
+ <Link>Options.cs</Link>
+ </Compile>
+ <Compile Include="gd2i.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs b/gendarme/tools/supported/templates/AssemblyRule.cs
similarity index 60%
copy from gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
copy to gendarme/tools/supported/templates/AssemblyRule.cs
index e5a8353..80e77c1 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
+++ b/gendarme/tools/supported/templates/AssemblyRule.cs
@@ -1,10 +1,10 @@
//
-// Gendarme.Rules.Design.Generic.AvoidExcessiveParametersOnGenericTypesRule
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Nicholas Rioux
+// $name$ <$email$>
//
-// Copyright (C) 2010 Nicholas Rioux
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -34,39 +34,32 @@ using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design.Generic {
+namespace $rootnamespace$ {
/// <summary>
- /// A type should not have more than two generic parameters.
+ /// TODO: Add a summary of the rule.
/// </summary>
/// <example>
/// Bad example:
/// <code>
- /// public class BadClass<A, B, C> {
- /// }
+ /// TODO: Add an example where the rule would fail.
/// </code>
/// </example>
/// <example>
/// Good example:
/// <code>
- /// public class GoodClass<A, B> {
- /// }
+ /// TODO: Show how to fix the bad example.
/// </code>
/// </example>
- [Problem ("A type has more than two generic parameters.")]
- [Solution ("Redesign the type so it doesn't take more than two generic parameters.")]
- [FxCopCompatibility ("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
- public class AvoidExcessiveParametersOnGenericTypesRule : Rule, ITypeRule {
- public RuleResult CheckType (TypeDefinition type)
+ // TODO: Describe the problem and solution
+ [Problem ("")]
+ [Solution ("")]
+ public class $safeitemname$ : Rule, IAssemblyRule {
+ public RuleResult CheckAssembly (AssemblyDefinition assembly)
{
- if (!type.IsClass || !type.HasGenericParameters || !type.IsVisible ())
- return RuleResult.DoesNotApply;
-
- if (type.GenericParameters.Count > 2)
- Runner.Report (type, Severity.Medium, Confidence.Total);
-
- return Runner.CurrentRuleResult;
+ // TODO: Write the rule.
+ return RuleResult.Success;
}
}
}
diff --git a/gendarme/tools/supported/templates/AssemblyRule.vstemplate b/gendarme/tools/supported/templates/AssemblyRule.vstemplate
new file mode 100644
index 0000000..9715194
--- /dev/null
+++ b/gendarme/tools/supported/templates/AssemblyRule.vstemplate
@@ -0,0 +1,24 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Assembly Rule.cs</DefaultName>
+ <Name>Assembly Rule</Name>
+ <Description>A gendarme rule that checks an assembly.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">AssemblyRule.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs b/gendarme/tools/supported/templates/AssemblyTest.cs
similarity index 58%
copy from gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
copy to gendarme/tools/supported/templates/AssemblyTest.cs
index c4bbafd..77d5c06 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
+++ b/gendarme/tools/supported/templates/AssemblyTest.cs
@@ -1,10 +1,10 @@
//
-// Unit tests for AssemblyRocks
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Sebastien Pouliot <sebastien at ximian.com>
+// $name$ <$email$>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -27,38 +27,38 @@
using System;
using System.Reflection;
-using Gendarme.Framework;
-using Gendarme.Framework.Rocks;
-
using Mono.Cecil;
+// TODO: Add using for the project of the rule being tested.
+// using Gendarme.Rules. ;
+
using NUnit.Framework;
+using Test.Rules.Fixtures;
+using Test.Rules.Helpers;
+using Test.Rules.Definitions;
-namespace Test.Framework.Rocks {
+namespace $rootnamespace$ {
[TestFixture]
- public class AssemblyRocksTest {
-
- private AssemblyDefinition assembly;
-
- [TestFixtureSetUp]
- public void FixtureSetUp ()
+ public class $safeitemname$ : AssemblyRuleTestFixture</* TODO: Add rule's type */> {
+ [Test]
+ public void DoesNotApply ()
{
- string unit = Assembly.GetExecutingAssembly ().Location;
- assembly = AssemblyDefinition.ReadAssembly (unit);
+ // TODO: Write tests that don't apply.
+ // AssertRuleDoesNotApply (assembly);
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void Good ()
{
- assembly.HasAttribute (null);
+ // TODO: Write tests that should succeed.
+ // AssertRuleSuccess (assembly);
}
[Test]
- public void HasAttribute ()
+ public void Bad ()
{
- Assert.IsTrue (assembly.HasAttribute ("System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"), "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute");
- Assert.IsFalse (assembly.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TestFixtureAttribute");
+ // TODO: Write tests that should fail.
+ // AssertRuleFailure (assembly);
}
}
}
diff --git a/gendarme/tools/supported/templates/AssemblyTest.vstemplate b/gendarme/tools/supported/templates/AssemblyTest.vstemplate
new file mode 100644
index 0000000..9c8c0f0
--- /dev/null
+++ b/gendarme/tools/supported/templates/AssemblyTest.vstemplate
@@ -0,0 +1,27 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Assembly Rule Test.cs</DefaultName>
+ <Name>Assembly Rule Test</Name>
+ <Description>A unit test for a gendarme assembly rule.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Test.Rules</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">AssemblyTest.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/tools/supported/templates/Makefile.am b/gendarme/tools/supported/templates/Makefile.am
new file mode 100644
index 0000000..885e9e8
--- /dev/null
+++ b/gendarme/tools/supported/templates/Makefile.am
@@ -0,0 +1,102 @@
+EXTRA_DIST = README README.vsnet \
+ AssemblyRule.cs AssemblyRule.vstemplate \
+ AssemblyTest.cs AssemblyTest.vstemplate \
+ TypeRule.cs TypeRule.vstemplate \
+ TypeTest.cs TypeTest.vstemplate \
+ MethodRule.cs MethodRule.vstemplate \
+ MethodTest.cs MethodTest.vstemplate \
+ Templates.RuleProject.csproj Templates.RuleProject.vstemplate \
+ Templates.TestProject.csproj Templates.TestProject.vstemplate
+
+GENDARME_ICON = ../../../swf-wizard-runner/Resources/gendarme.ico
+
+vsnet-item-assembly-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp AssemblyRule.cs temp/AssemblyRule.cs
+ cp AssemblyRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-assembly-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp AssemblyTest.cs temp/AssemblyTest.cs
+ cp AssemblyTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-method-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp MethodRule.cs temp/MethodRule.cs
+ cp MethodRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-method-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp MethodTest.cs temp/MethodTest.cs
+ cp MethodTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-type-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp TypeRule.cs temp/TypeRule.cs
+ cp TypeRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-type-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp TypeTest.cs temp/TypeTest.cs
+ cp TypeTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-templates: vsnet-item-assembly-rule vsnet-item-assembly-test \
+ vsnet-item-method-rule vsnet-item-method-test \
+ vsnet-item-type-rule vsnet-item-type-test
+
+vsnet-project-rules:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp Templates.RuleProject.csproj temp/Templates.RuleProject.csproj
+ cp Templates.RuleProject.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Assembly.zip" temp/*
+ rm -rf temp/*
+
+vsnet-project-tests:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp Templates.TestProject.csproj temp/Templates.TestProject.csproj
+ cp Templates.TestProject.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Test Assembly.zip" temp/*
+ rm -rf temp/*
+
+vsnet-project-templates: vsnet-project-rules vsnet-project-tests
+
+vsnet: vsnet-item-templates vsnet-project-templates
+ zip gendarme-vsnet-templates.zip README.vsnet \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule Test.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule Test.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule Test.zip" \
+ "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Assembly.zip" \
+ "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Test Assembly.zip"
+ rmdir temp
+
+gendarme-vsnet-templates.zip: vsnet
+
+all: gendarme-vsnet-templates.zip
+
+clean:
+ rm -f *.zip
+ rm -rf temp
+
diff --git a/gendarme/tools/unsupported/mapper/Makefile.in b/gendarme/tools/supported/templates/Makefile.in
similarity index 58%
copy from gendarme/tools/unsupported/mapper/Makefile.in
copy to gendarme/tools/supported/templates/Makefile.in
index af1ceac..474f9d2 100644
--- a/gendarme/tools/unsupported/mapper/Makefile.in
+++ b/gendarme/tools/supported/templates/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -32,16 +51,22 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-subdir = gendarme/tools/unsupported/mapper
+subdir = gendarme/tools/supported/templates
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -188,13 +217,17 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-EXTRA_DIST = $(mapper_sources) fxcop.missing
-mapper_sources = \
- ../../../AssemblyStaticInfo.cs \
- ../../../AssemblyInfo.cs \
- FxCopMapBuilder.cs \
- FxCopRule.cs
-
+EXTRA_DIST = README README.vsnet \
+ AssemblyRule.cs AssemblyRule.vstemplate \
+ AssemblyTest.cs AssemblyTest.vstemplate \
+ TypeRule.cs TypeRule.vstemplate \
+ TypeTest.cs TypeTest.vstemplate \
+ MethodRule.cs MethodRule.vstemplate \
+ MethodTest.cs MethodTest.vstemplate \
+ Templates.RuleProject.csproj Templates.RuleProject.vstemplate \
+ Templates.TestProject.csproj Templates.TestProject.vstemplate
+
+GENDARME_ICON = ../../../swf-wizard-runner/Resources/gendarme.ico
all: all-am
.SUFFIXES:
@@ -202,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/supported/templates/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/supported/templates/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -227,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -250,13 +284,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -274,16 +312,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -300,6 +344,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -308,18 +354,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -353,13 +409,96 @@ uninstall-am:
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
-mapper.exe: $(mapper_sources)
- $(GMCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll -r:$(CECIL_ASM)
+vsnet-item-assembly-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp AssemblyRule.cs temp/AssemblyRule.cs
+ cp AssemblyRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-assembly-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp AssemblyTest.cs temp/AssemblyTest.cs
+ cp AssemblyTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-method-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp MethodRule.cs temp/MethodRule.cs
+ cp MethodRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-method-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp MethodTest.cs temp/MethodTest.cs
+ cp MethodTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-type-rule:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp TypeRule.cs temp/TypeRule.cs
+ cp TypeRule.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-type-test:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp TypeTest.cs temp/TypeTest.cs
+ cp TypeTest.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule Test.zip" temp/*
+ rm -rf temp/*
+
+vsnet-item-templates: vsnet-item-assembly-rule vsnet-item-assembly-test \
+ vsnet-item-method-rule vsnet-item-method-test \
+ vsnet-item-type-rule vsnet-item-type-test
+
+vsnet-project-rules:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp Templates.RuleProject.csproj temp/Templates.RuleProject.csproj
+ cp Templates.RuleProject.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Assembly.zip" temp/*
+ rm -rf temp/*
+
+vsnet-project-tests:
+ mkdir -p temp
+ cp $(GENDARME_ICON) temp/__TemplateIcon.ico
+ cp Templates.TestProject.csproj temp/Templates.TestProject.csproj
+ cp Templates.TestProject.vstemplate temp/MyTemplate.vstemplate
+ zip -j "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Test Assembly.zip" temp/*
+ rm -rf temp/*
+
+vsnet-project-templates: vsnet-project-rules vsnet-project-tests
+
+vsnet: vsnet-item-templates vsnet-project-templates
+ zip gendarme-vsnet-templates.zip README.vsnet \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Assembly Rule Test.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Method Rule Test.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule.zip" \
+ "Templates\ItemTemplates\Visual C#\Gendarme Items\Type Rule Test.zip" \
+ "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Assembly.zip" \
+ "Templates\ProjectTemplates\Visual C#\Gendarme Projects\Rule Test Assembly.zip"
+ rmdir temp
+
+gendarme-vsnet-templates.zip: vsnet
+
+all: gendarme-vsnet-templates.zip
clean:
- rm -f mapper.exe*
+ rm -f *.zip
+ rm -rf temp
-all: mapper.exe
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs b/gendarme/tools/supported/templates/MethodRule.cs
similarity index 60%
copy from gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
copy to gendarme/tools/supported/templates/MethodRule.cs
index e5a8353..bd0911a 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
+++ b/gendarme/tools/supported/templates/MethodRule.cs
@@ -1,10 +1,10 @@
//
-// Gendarme.Rules.Design.Generic.AvoidExcessiveParametersOnGenericTypesRule
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Nicholas Rioux
+// $name$ <$email$>
//
-// Copyright (C) 2010 Nicholas Rioux
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -34,39 +34,32 @@ using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design.Generic {
+namespace $rootnamespace$ {
/// <summary>
- /// A type should not have more than two generic parameters.
+ /// TODO: Add a summary of the rule.
/// </summary>
/// <example>
/// Bad example:
/// <code>
- /// public class BadClass<A, B, C> {
- /// }
+ /// TODO: Add an example where the rule would fail.
/// </code>
/// </example>
/// <example>
/// Good example:
/// <code>
- /// public class GoodClass<A, B> {
- /// }
+ /// TODO: Show how to fix the bad example.
/// </code>
/// </example>
- [Problem ("A type has more than two generic parameters.")]
- [Solution ("Redesign the type so it doesn't take more than two generic parameters.")]
- [FxCopCompatibility ("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
- public class AvoidExcessiveParametersOnGenericTypesRule : Rule, ITypeRule {
- public RuleResult CheckType (TypeDefinition type)
+ // TODO: Describe the problem and solution
+ [Problem ("")]
+ [Solution ("")]
+ public class $safeitemname$ : Rule, IMethodRule {
+ public RuleResult CheckMethod (MethodDefinition method)
{
- if (!type.IsClass || !type.HasGenericParameters || !type.IsVisible ())
- return RuleResult.DoesNotApply;
-
- if (type.GenericParameters.Count > 2)
- Runner.Report (type, Severity.Medium, Confidence.Total);
-
- return Runner.CurrentRuleResult;
+ // TODO: Write the rule.
+ return RuleResult.Success;
}
}
}
diff --git a/gendarme/tools/supported/templates/MethodRule.vstemplate b/gendarme/tools/supported/templates/MethodRule.vstemplate
new file mode 100644
index 0000000..5942dbd
--- /dev/null
+++ b/gendarme/tools/supported/templates/MethodRule.vstemplate
@@ -0,0 +1,24 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Method Rule.cs</DefaultName>
+ <Name>Method Rule</Name>
+ <Description>A gendarme rule that checks a method.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">MethodRule.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs b/gendarme/tools/supported/templates/MethodTest.cs
similarity index 58%
copy from gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
copy to gendarme/tools/supported/templates/MethodTest.cs
index c4bbafd..4f70412 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
+++ b/gendarme/tools/supported/templates/MethodTest.cs
@@ -1,10 +1,10 @@
//
-// Unit tests for AssemblyRocks
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Sebastien Pouliot <sebastien at ximian.com>
+// $name$ <$email$>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -27,38 +27,38 @@
using System;
using System.Reflection;
-using Gendarme.Framework;
-using Gendarme.Framework.Rocks;
-
using Mono.Cecil;
+// TODO: Add using for the project of the rule being tested.
+// using Gendarme.Rules. ;
+
using NUnit.Framework;
+using Test.Rules.Fixtures;
+using Test.Rules.Helpers;
+using Test.Rules.Definitions;
-namespace Test.Framework.Rocks {
+namespace $rootnamespace$ {
[TestFixture]
- public class AssemblyRocksTest {
-
- private AssemblyDefinition assembly;
-
- [TestFixtureSetUp]
- public void FixtureSetUp ()
+ public class $safeitemname$ : MethodRuleTestFixture</* TODO: Add rule's type */> {
+ [Test]
+ public void DoesNotApply ()
{
- string unit = Assembly.GetExecutingAssembly ().Location;
- assembly = AssemblyDefinition.ReadAssembly (unit);
+ // TODO: Write tests that don't apply.
+ // AssertRuleDoesNotApply (method);
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void Good ()
{
- assembly.HasAttribute (null);
+ // TODO: Write tests that should succeed.
+ // AssertRuleSuccess (method);
}
[Test]
- public void HasAttribute ()
+ public void Bad ()
{
- Assert.IsTrue (assembly.HasAttribute ("System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"), "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute");
- Assert.IsFalse (assembly.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TestFixtureAttribute");
+ // TODO: Write tests that should fail.
+ // AssertRuleFailure (method);
}
}
}
diff --git a/gendarme/tools/supported/templates/MethodTest.vstemplate b/gendarme/tools/supported/templates/MethodTest.vstemplate
new file mode 100644
index 0000000..c9e9cd7
--- /dev/null
+++ b/gendarme/tools/supported/templates/MethodTest.vstemplate
@@ -0,0 +1,27 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Method Rule Test.cs</DefaultName>
+ <Name>Method Rule Test</Name>
+ <Description>A unit test for a gendarme method rule.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Test.Rules</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">MethodTest.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/tools/supported/templates/README b/gendarme/tools/supported/templates/README
new file mode 100644
index 0000000..13a814b
--- /dev/null
+++ b/gendarme/tools/supported/templates/README
@@ -0,0 +1,8 @@
+Here are uncompressed C# templates for Gendarme rules, tests and projects.
+
+To build the compressed templates required by VS.NET (2008/2010) just issue a:
+
+% make vsnet
+
+and read the README.vsnet file (also part of the archive).
+
diff --git a/gendarme/tools/supported/templates/README.vsnet b/gendarme/tools/supported/templates/README.vsnet
new file mode 100644
index 0000000..9ffcf5e
--- /dev/null
+++ b/gendarme/tools/supported/templates/README.vsnet
@@ -0,0 +1,12 @@
+Gendarme Item/Project Templates for Visual Studio
+
+To Install:
+- Extract this file to your My Documents\Visual Studio 20x folder.
+- Optionally, open the .vstemplate file in each item template.
+ In the <TemplateContent> section, add the following:
+ <CustomParameters>
+ <CustomParameter Name="$name$" Value="(your name)"/>
+ <CustomParameter Name="$email$" Value="(your email)"/>
+ </CustomParameters>
+ This will allow your name and e-mail address to be automatically
+ entered into rules and tests you create.
\ No newline at end of file
diff --git a/gendarme/tools/unsupported/typeref/typeref.csproj b/gendarme/tools/supported/templates/Templates.RuleProject.csproj
similarity index 63%
copy from gendarme/tools/unsupported/typeref/typeref.csproj
copy to gendarme/tools/supported/templates/Templates.RuleProject.csproj
index 25854ee..4208f3e 100644
--- a/gendarme/tools/unsupported/typeref/typeref.csproj
+++ b/gendarme/tools/supported/templates/Templates.RuleProject.csproj
@@ -1,19 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{2262381F-297D-4AC7-8509-91DBF2429EB9}</ProjectGuid>
+ <ProjectGuid>{BDADA65A-2C52-42C3-A7E4-A824FCDF4C9D}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>typeref</RootNamespace>
- <AssemblyName>typeref</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <RootNamespace>$safeprojectname$</RootNamespace>
+ <AssemblyName>$safeprojectname$</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@@ -22,7 +24,8 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
@@ -32,31 +35,23 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
</ItemGroup>
<ItemGroup>
- <Compile Include="..\..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="typeref.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
+ <ProjectReference Include="..\..\..\cecil\Mono.Cecil.csproj">
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
+ <ProjectReference Include="..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
-->
</Project>
\ No newline at end of file
diff --git a/gendarme/tools/supported/templates/Templates.RuleProject.vstemplate b/gendarme/tools/supported/templates/Templates.RuleProject.vstemplate
new file mode 100644
index 0000000..41afb51
--- /dev/null
+++ b/gendarme/tools/supported/templates/Templates.RuleProject.vstemplate
@@ -0,0 +1,19 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
+ <TemplateData>
+ <Name>Rule Assembly</Name>
+ <Description>An assembly containing gendarme rules.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <ProjectSubType>
+ </ProjectSubType>
+ <SortOrder>1000</SortOrder>
+ <CreateNewFolder>true</CreateNewFolder>
+ <DefaultName>Rule Assembly</DefaultName>
+ <ProvideDefaultName>true</ProvideDefaultName>
+ <LocationField>Enabled</LocationField>
+ <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <Project TargetFileName="Templates.RuleProject.csproj" File="Templates.RuleProject.csproj" ReplaceParameters="true" />
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/tools/unsupported/typeref/typeref.csproj b/gendarme/tools/supported/templates/Templates.TestProject.csproj
similarity index 56%
copy from gendarme/tools/unsupported/typeref/typeref.csproj
copy to gendarme/tools/supported/templates/Templates.TestProject.csproj
index 25854ee..6dd3298 100644
--- a/gendarme/tools/unsupported/typeref/typeref.csproj
+++ b/gendarme/tools/supported/templates/Templates.TestProject.csproj
@@ -1,19 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{2262381F-297D-4AC7-8509-91DBF2429EB9}</ProjectGuid>
+ <ProjectGuid>{0B35C07C-19E8-40D0-8634-FE3929DBB8C7}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>typeref</RootNamespace>
- <AssemblyName>typeref</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <RootNamespace>$safeprojectname$</RootNamespace>
+ <AssemblyName>$safeprojectname$</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@@ -22,7 +24,8 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
@@ -31,32 +34,29 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="typeref.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\..\..\cecil\Mono.Cecil.csproj">
+ <ProjectReference Include="..\..\..\cecil\Mono.Cecil.csproj">
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
+ <ProjectReference Include="..\framework\Gendarme.Framework.csproj">
+ <Project>{CD6818D5-B398-486C-B180-92A07B143AFD}</Project>
+ <Name>Gendarme.Framework</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\rules\Test.Rules\Test.Rules.csproj">
+ <Project>{069148AF-86AB-4EE3-BFB9-429AE722461F}</Project>
+ <Name>Test.Rules</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
- <Folder Include="Properties\" />
+ <Reference Include="nunit.framework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />
+ <Reference Include="System" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
-->
</Project>
\ No newline at end of file
diff --git a/gendarme/tools/supported/templates/Templates.TestProject.vstemplate b/gendarme/tools/supported/templates/Templates.TestProject.vstemplate
new file mode 100644
index 0000000..2d87449
--- /dev/null
+++ b/gendarme/tools/supported/templates/Templates.TestProject.vstemplate
@@ -0,0 +1,19 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
+ <TemplateData>
+ <Name>Rule Test Assembly</Name>
+ <Description>An assembly of unit tests for gendarme rules.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <ProjectSubType>
+ </ProjectSubType>
+ <SortOrder>1000</SortOrder>
+ <CreateNewFolder>true</CreateNewFolder>
+ <DefaultName>Rule Test Assembly</DefaultName>
+ <ProvideDefaultName>true</ProvideDefaultName>
+ <LocationField>Enabled</LocationField>
+ <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <Project TargetFileName="Templates.TestProject.csproj" File="Templates.TestProject.csproj" ReplaceParameters="true" />
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs b/gendarme/tools/supported/templates/TypeRule.cs
similarity index 62%
copy from gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
copy to gendarme/tools/supported/templates/TypeRule.cs
index e5a8353..fce1256 100644
--- a/gendarme/rules/Gendarme.Rules.Design.Generic/AvoidExcessiveParametersOnGenericTypesRule.cs
+++ b/gendarme/tools/supported/templates/TypeRule.cs
@@ -1,10 +1,10 @@
//
-// Gendarme.Rules.Design.Generic.AvoidExcessiveParametersOnGenericTypesRule
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Nicholas Rioux
+// $name$ <$email$>
//
-// Copyright (C) 2010 Nicholas Rioux
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -34,39 +34,32 @@ using Gendarme.Framework.Engines;
using Gendarme.Framework.Helpers;
using Gendarme.Framework.Rocks;
-namespace Gendarme.Rules.Design.Generic {
+namespace $rootnamespace$ {
/// <summary>
- /// A type should not have more than two generic parameters.
+ /// TODO: Add a summary of the rule.
/// </summary>
/// <example>
/// Bad example:
/// <code>
- /// public class BadClass<A, B, C> {
- /// }
+ /// TODO: Add an example where the rule would fail.
/// </code>
/// </example>
/// <example>
/// Good example:
/// <code>
- /// public class GoodClass<A, B> {
- /// }
+ /// TODO: Show how to fix the bad example.
/// </code>
/// </example>
- [Problem ("A type has more than two generic parameters.")]
- [Solution ("Redesign the type so it doesn't take more than two generic parameters.")]
- [FxCopCompatibility ("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes")]
- public class AvoidExcessiveParametersOnGenericTypesRule : Rule, ITypeRule {
+ // TODO: Describe the problem and solution
+ [Problem ("")]
+ [Solution ("")]
+ public class $safeitemname$ : Rule, ITypeRule {
public RuleResult CheckType (TypeDefinition type)
{
- if (!type.IsClass || !type.HasGenericParameters || !type.IsVisible ())
- return RuleResult.DoesNotApply;
-
- if (type.GenericParameters.Count > 2)
- Runner.Report (type, Severity.Medium, Confidence.Total);
-
- return Runner.CurrentRuleResult;
+ // TODO: Write the rule.
+ return RuleResult.Success;
}
}
}
diff --git a/gendarme/tools/supported/templates/TypeRule.vstemplate b/gendarme/tools/supported/templates/TypeRule.vstemplate
new file mode 100644
index 0000000..3a0e9c1
--- /dev/null
+++ b/gendarme/tools/supported/templates/TypeRule.vstemplate
@@ -0,0 +1,24 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Type Rule.cs</DefaultName>
+ <Name>Type Rule</Name>
+ <Description>A gendarme rule that checks a type.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">TypeRule.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs b/gendarme/tools/supported/templates/TypeTest.cs
similarity index 58%
copy from gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
copy to gendarme/tools/supported/templates/TypeTest.cs
index c4bbafd..92af871 100644
--- a/gendarme/framework/Test/Gendarme.Framework.Rocks/AssemblyRocksTest.cs
+++ b/gendarme/tools/supported/templates/TypeTest.cs
@@ -1,10 +1,10 @@
//
-// Unit tests for AssemblyRocks
+// $rootnamespace$.$safeitemname$
//
// Authors:
-// Sebastien Pouliot <sebastien at ximian.com>
+// $name$ <$email$>
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+// Copyright (C) $year$ $name$
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@@ -27,38 +27,38 @@
using System;
using System.Reflection;
-using Gendarme.Framework;
-using Gendarme.Framework.Rocks;
-
using Mono.Cecil;
+// TODO: Add using for the project of the rule being tested.
+// using Gendarme.Rules. ;
+
using NUnit.Framework;
+using Test.Rules.Fixtures;
+using Test.Rules.Helpers;
+using Test.Rules.Definitions;
-namespace Test.Framework.Rocks {
+namespace $rootnamespace$ {
[TestFixture]
- public class AssemblyRocksTest {
-
- private AssemblyDefinition assembly;
-
- [TestFixtureSetUp]
- public void FixtureSetUp ()
+ public class $safeitemname$ : TypeRuleTestFixture</* TODO: Add rule's type */> {
+ [Test]
+ public void DoesNotApply ()
{
- string unit = Assembly.GetExecutingAssembly ().Location;
- assembly = AssemblyDefinition.ReadAssembly (unit);
+ // TODO: Write tests that don't apply.
+ // AssertRuleDoesNotApply<type> ();
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void HasAttribute_Null ()
+ public void Good ()
{
- assembly.HasAttribute (null);
+ // TODO: Write tests that should succeed.
+ // AssertRuleSuccess<type> ();
}
[Test]
- public void HasAttribute ()
+ public void Bad ()
{
- Assert.IsTrue (assembly.HasAttribute ("System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"), "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute");
- Assert.IsFalse (assembly.HasAttribute ("NUnit.Framework.TestFixtureAttribute"), "TestFixtureAttribute");
+ // TODO: Write tests that should fail.
+ // AssertRuleFailure<type> ();
}
}
}
diff --git a/gendarme/tools/supported/templates/TypeTest.vstemplate b/gendarme/tools/supported/templates/TypeTest.vstemplate
new file mode 100644
index 0000000..2e0c866
--- /dev/null
+++ b/gendarme/tools/supported/templates/TypeTest.vstemplate
@@ -0,0 +1,27 @@
+<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
+ <TemplateData>
+ <DefaultName>Type Rule Test.cs</DefaultName>
+ <Name>Type Rule Test</Name>
+ <Description>A unit test for a gendarme type rule.</Description>
+ <ProjectType>CSharp</ProjectType>
+ <SortOrder>10</SortOrder>
+ <Icon>__TemplateIcon.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <References>
+ <Reference>
+ <Assembly>Mono.Cecil</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Gendarme.Framework</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>Test.Rules</Assembly>
+ </Reference>
+ <Reference>
+ <Assembly>System.Core</Assembly>
+ </Reference>
+ </References>
+ <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">TypeTest.cs</ProjectItem>
+ </TemplateContent>
+</VSTemplate>
\ No newline at end of file
diff --git a/gendarme/tools/unsupported/Makefile.in b/gendarme/tools/unsupported/Makefile.in
index 3e81748..1b069aa 100644
--- a/gendarme/tools/unsupported/Makefile.in
+++ b/gendarme/tools/unsupported/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,8 +57,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -49,12 +69,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
AMTAR = @AMTAR@
@@ -115,6 +168,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -128,9 +182,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -208,14 +265,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/unsupported/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/unsupported/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -233,6 +290,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -241,7 +299,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -258,7 +316,7 @@ $(RECURSIVE_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
@@ -266,7 +324,7 @@ $(RECURSIVE_TARGETS):
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
- @failcom='exit 1'; \
+ @fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
@@ -292,16 +350,16 @@ $(RECURSIVE_CLEAN_TARGETS):
else \
local_target="$$target"; \
fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -309,14 +367,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
+ set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
@@ -328,7 +386,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -337,29 +395,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
- tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
+ $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -380,29 +443,41 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
+ am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
@@ -422,16 +497,22 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -450,6 +531,8 @@ dvi-am:
html: html-recursive
+html-am:
+
info: info-recursive
info-am:
@@ -458,18 +541,28 @@ install-data-am:
install-dvi: install-dvi-recursive
+install-dvi-am:
+
install-exec-am:
install-html: install-html-recursive
+install-html-am:
+
install-info: install-info-recursive
+install-info-am:
+
install-man:
install-pdf: install-pdf-recursive
+install-pdf-am:
+
install-ps: install-ps-recursive
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-recursive
@@ -490,8 +583,8 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
- install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic ctags \
@@ -506,6 +599,7 @@ uninstall-am:
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/unsupported/mapper/FxCopMapBuilder.cs b/gendarme/tools/unsupported/mapper/FxCopMapBuilder.cs
index 7d2eee2..c62919f 100644
--- a/gendarme/tools/unsupported/mapper/FxCopMapBuilder.cs
+++ b/gendarme/tools/unsupported/mapper/FxCopMapBuilder.cs
@@ -222,7 +222,8 @@ namespace FxCopMapBuilder {
idName [0], idName [1], rule.Attribute ("category").Value);
}
if (rule.Attribute ("type").Value == "gendarme") {
- return String.Format ("[[{0}]]", rule.Attribute ("id").Value);
+ return String.Format ("[[{1}|{0}.{1}{2}]]", rule.Attribute ("category").Value,
+ rule.Attribute ("id").Value, "(2.10)");
}
return String.Empty;
}
diff --git a/gendarme/tools/unsupported/mapper/Makefile.am b/gendarme/tools/unsupported/mapper/Makefile.am
index a283bee..ae79ba4 100644
--- a/gendarme/tools/unsupported/mapper/Makefile.am
+++ b/gendarme/tools/unsupported/mapper/Makefile.am
@@ -7,7 +7,7 @@ mapper_sources = \
FxCopRule.cs
mapper.exe: $(mapper_sources)
- $(GMCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll -r:$(CECIL_ASM)
+ $(MCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll -r:$(CECIL_ASM)
clean:
rm -f mapper.exe*
diff --git a/gendarme/tools/unsupported/mapper/Makefile.in b/gendarme/tools/unsupported/mapper/Makefile.in
index af1ceac..1e3fe4b 100644
--- a/gendarme/tools/unsupported/mapper/Makefile.in
+++ b/gendarme/tools/unsupported/mapper/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -202,14 +231,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/unsupported/mapper/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -227,6 +256,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -250,13 +280,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -274,16 +308,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -300,6 +340,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -308,18 +350,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -354,12 +406,13 @@ uninstall-am:
mapper.exe: $(mapper_sources)
- $(GMCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll -r:$(CECIL_ASM)
+ $(MCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll -r:$(CECIL_ASM)
clean:
rm -f mapper.exe*
all: mapper.exe
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/unsupported/mapper/fxcop.missing b/gendarme/tools/unsupported/mapper/fxcop.missing
index 556c2fc..919df45 100644
--- a/gendarme/tools/unsupported/mapper/fxcop.missing
+++ b/gendarme/tools/unsupported/mapper/fxcop.missing
@@ -3,7 +3,6 @@ CA1025 Replace repetitive arguments with params array
CA1026 Default parameters should not be used http://msdn.microsoft.com/en-us/library/ms182135.aspx
CA1033 Interface methods should be callable by child types http://msdn.microsoft.com/en-us/library/ms182153.aspx
CA1046 Do not overload operator equals on reference types http://msdn.microsoft.com/en-us/library/ms182145.aspx
-CA1052 Static holder types should be sealed http://msdn.microsoft.com/en-us/library/ms182168.aspx
CA1058 Types should not extend certain base types http://msdn.microsoft.com/en-us/library/ms182171.aspx
CA1061 Do not hide base class methods http://msdn.microsoft.com/en-us/library/ms182143.aspx
CA1063 Implement IDisposable correctly http://msdn.microsoft.com/en-us/library/ms244737.aspx
@@ -14,10 +13,7 @@ CA1300 Specify MessageBoxOptions
CA1301 Avoid duplicate accelerators http://msdn.microsoft.com/en-us/library/ms182185.aspx
CA1302 Do not hardcode locale specific strings http://msdn.microsoft.com/en-us/library/ms182186.aspx
CA1303 Do not pass literals as localized parameters http://msdn.microsoft.com/en-us/library/ms182187.aspx
-CA1304 Specify CultureInfo http://msdn.microsoft.com/en-us/library/ms182189.aspx
-CA1305 Specify IFormatProvider http://msdn.microsoft.com/en-us/library/ms182190.aspx
CA1306 Set locale for data types http://msdn.microsoft.com/en-us/library/ms182188.aspx
-CA1307 Specify StringComparison http://msdn.microsoft.com/en-us/library/bb386080.aspx
CA1308 Normalize strings to uppercase http://msdn.microsoft.com/en-us/library/bb386042.aspx
CA1309 Use ordinal StringComparison http://msdn.microsoft.com/en-us/library/bb385972.aspx
@@ -40,7 +36,6 @@ CA1717 Only FlagsAttribute enums should have plural names
CA1719 Parameter names should not match member names http://msdn.microsoft.com/en-us/library/ms182252.aspx
CA1720 Identifiers should not contain type names http://msdn.microsoft.com/en-us/library/bb531486.aspx
CA1721 Property names should not match get methods http://msdn.microsoft.com/en-us/library/ms182253.aspx
-CA1724 Type Names Should Not Match Namespaces http://msdn.microsoft.com/en-us/library/ms182257.aspx
Microsoft.Performance
CA1810 Initialize reference type static fields inline http://msdn.microsoft.com/en-us/library/ms182275.aspx
@@ -97,9 +92,6 @@ CA2207 Initialize value type static fields inline
CA2212 Do not mark serviced components with WebMethod http://msdn.microsoft.com/en-us/library/ms182336.aspx
CA2215 Dispose methods should call base class dispose http://msdn.microsoft.com/en-us/library/ms182330.aspx
CA2217 Do not mark enums with FlagsAttribute http://msdn.microsoft.com/en-us/library/ms182335.aspx
-CA2219 Do not raise exceptions in exception clauses http://msdn.microsoft.com/en-us/library/bb386041.aspx
-CA2222 Do not decrease inherited member visibility http://msdn.microsoft.com/en-us/library/ms182332.aspx
CA2223 Members should differ by more than return type http://msdn.microsoft.com/en-us/library/ms182352.aspx
-CA2227 Collection properties should be read only http://msdn.microsoft.com/en-us/library/ms182327.aspx
CA2228 Do not ship unreleased resource formats http://msdn.microsoft.com/en-us/library/ms182339.aspx
CA2233 Operations should not overflow http://msdn.microsoft.com/en-us/library/ms182354.aspx
diff --git a/gendarme/tools/unsupported/typeref/Makefile.am b/gendarme/tools/unsupported/typeref/Makefile.am
index 436189e..e1ba4d3 100644
--- a/gendarme/tools/unsupported/typeref/Makefile.am
+++ b/gendarme/tools/unsupported/typeref/Makefile.am
@@ -6,7 +6,7 @@ typeref_sources = \
typeref.cs
typeref.exe: $(typeref_sources)
- $(GMCS) -debug $^ -out:$@ -r:$(CECIL_ASM)
+ $(MCS) -debug $^ -out:$@ -r:$(CECIL_ASM)
clean:
rm -f typeref.exe*
diff --git a/gendarme/tools/unsupported/typeref/Makefile.in b/gendarme/tools/unsupported/typeref/Makefile.in
index a641cc1..992e22f 100644
--- a/gendarme/tools/unsupported/typeref/Makefile.in
+++ b/gendarme/tools/unsupported/typeref/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -201,14 +230,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/typeref/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/unsupported/typeref/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/typeref/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/unsupported/typeref/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -226,6 +255,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -249,13 +279,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -273,16 +307,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -299,6 +339,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -307,18 +349,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -353,12 +405,13 @@ uninstall-am:
typeref.exe: $(typeref_sources)
- $(GMCS) -debug $^ -out:$@ -r:$(CECIL_ASM)
+ $(MCS) -debug $^ -out:$@ -r:$(CECIL_ASM)
clean:
rm -f typeref.exe*
all: typeref.exe
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/unsupported/typeref/typeref.csproj b/gendarme/tools/unsupported/typeref/typeref.csproj
index 25854ee..09d805d 100644
--- a/gendarme/tools/unsupported/typeref/typeref.csproj
+++ b/gendarme/tools/unsupported/typeref/typeref.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,8 +10,28 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>typeref</RootNamespace>
<AssemblyName>typeref</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -21,6 +41,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +50,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -51,6 +73,23 @@
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/gendarme/tools/unsupported/xmldoc2wiki/Makefile.am b/gendarme/tools/unsupported/xmldoc2wiki/Makefile.am
index ff0167b..55fb249 100644
--- a/gendarme/tools/unsupported/xmldoc2wiki/Makefile.am
+++ b/gendarme/tools/unsupported/xmldoc2wiki/Makefile.am
@@ -6,7 +6,7 @@ xmldoc2wiki_sources = \
xmldoc2wiki.cs
xmldoc2wiki.exe: $(xmldoc2wiki_sources)
- $(GMCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll
+ $(MCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll
clean:
rm -f xmldoc2wiki.exe*
diff --git a/gendarme/tools/unsupported/xmldoc2wiki/Makefile.in b/gendarme/tools/unsupported/xmldoc2wiki/Makefile.in
index 0a1ba4b..52bcb8e 100644
--- a/gendarme/tools/unsupported/xmldoc2wiki/Makefile.in
+++ b/gendarme/tools/unsupported/xmldoc2wiki/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,10 +58,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -104,6 +129,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -117,9 +143,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -202,14 +231,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/xmldoc2wiki/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/tools/unsupported/xmldoc2wiki/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/tools/unsupported/xmldoc2wiki/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/tools/unsupported/xmldoc2wiki/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -227,6 +256,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -250,13 +280,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -274,16 +308,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -300,6 +340,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -308,18 +350,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -354,12 +406,13 @@ uninstall-am:
xmldoc2wiki.exe: $(xmldoc2wiki_sources)
- $(GMCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll
+ $(MCS) -debug $^ -out:$@ -r:System.Xml.Linq.dll
clean:
rm -f xmldoc2wiki.exe*
all: xmldoc2wiki.exe
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/tools/unsupported/xmldoc2wiki/README b/gendarme/tools/unsupported/xmldoc2wiki/README
index 764df91..ce17af9 100644
--- a/gendarme/tools/unsupported/xmldoc2wiki/README
+++ b/gendarme/tools/unsupported/xmldoc2wiki/README
@@ -11,5 +11,16 @@ Examples:
xmldoc2wiki bin/*.xml 2-8-doc
Local wiki access:
- You can access the wiki locally by using github's gollum: https://github.com/github/gollum#readme
- The installation is pretty simple, don't forget to install rdiscount gem that provides Markdown support.
+
+ a) Install gollum (https://github.com/github/gollum#readme). This requires Ruby.
+
+ % gem install gollum
+
+ b) Install rdiscount (http://daringfireball.net/projects/markdown/) for Markdown support
+
+ % gem install rdiscount
+
+ c) Install Pygments (http://pygments.org/) for syntax highlightning. This requires Python.
+
+ % easy_install Pygments
+
diff --git a/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.cs b/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.cs
index 4fbca7f..5fbc2dd 100644
--- a/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.cs
+++ b/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.cs
@@ -1,3 +1,31 @@
+//
+// Gendarme's xmldoc2wiki tool
+//
+// Authors:
+// Sebastien Pouliot <sebastien at ximian.com>
+// Yuri Stuken <stuken.yuri at gmail.com>
+//
+// Copyright (C) 2010-2011 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2010 Yuri Stuken
+//
+// 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
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
using System;
using System.IO;
using System.Collections.Generic;
@@ -11,6 +39,7 @@ static class Program {
static HashSet<string> assembliesIndex = new HashSet<string> ();
static string outputdir;
+ static string version = "git";
static string CleanUp (this string s)
{
@@ -18,20 +47,6 @@ static class Program {
return Regex.Replace (s, @"([\`\*])", @"\$1");
}
- static void Header (TextWriter tw)
- {
- // tw.WriteLine ("# Rules");
- // tw.WriteLine ();
- }
-
- static void Footer (TextWriter tw)
- {
- tw.WriteLine (@"## Feedback
-
-Please report any documentation errors, typos or suggestions to the
-[[Gendarme Google Group|http://groups.google.com/group/gendarme]]. Thanks!");
- }
-
static void AppendIndentedLine (StringBuilder sb, string line, int indentation)
{
for (int i = 0; i < indentation; i++)
@@ -168,6 +183,7 @@ Please report any documentation errors, typos or suggestions to the
ProcessText (tw, description.Nodes ());
}
tw.AppendLine ();
+ tw.AppendLine (); // make sure the following text is not part of the last item on the list
}
static void ProcessRules (IEnumerable<XElement> rules, string assembly)
@@ -207,83 +223,104 @@ Please report any documentation errors, typos or suggestions to the
rulesIndex.Add (name);
- TextWriter writer = File.CreateText (Path.Combine(Path.Combine(outputdir, assembly), Path.ChangeExtension (name, "md")));
- Header (writer);
-
- rsb.AppendFormat ("# {0}", name);
- rsb.AppendFormat ("{1}**{0}**{1}{1}", assembly, Environment.NewLine);
- rsb.AppendLine ("## Description");
-
- // tw.WriteLine (ProcessSummary (item));
- ProcessText (rsb, item.Nodes ());
- rsb.AppendLine ();
- rsb.AppendLine ();
-
- var examples = member.Elements ("example");
- if (examples != null)
- rsb.AppendLine ("## Examples");
- foreach (XNode example in examples.Nodes ()) {
- XText node = (example as XText);
- if (node != null) {
- string text = example.ToString ().CleanUp ().Replace ("Bad", "**Bad**");
- text = text.Replace ("Good", "**Good**");
- rsb.AppendFormat ("{0}{1}{1}", text.Trim (), Environment.NewLine);
- continue;
- }
+ string rule_file = String.Format ("{0}{1}{2}{1}{3}.{4}({2}).md",
+ outputdir, Path.DirectorySeparatorChar, version, assembly, name);
+ using (TextWriter writer = File.CreateText (rule_file)) {
+ rsb.AppendFormat ("# {0}{1}{1}", name, Environment.NewLine);
+ rsb.AppendFormat ("Assembly: **[[{0}|{0}({1})]]**<br/>", assembly, version);
+ rsb.AppendFormat ("Version: **{0}**{1}{1}", version, Environment.NewLine);
+ rsb.AppendLine ("## Description");
+
+ // tw.WriteLine (ProcessSummary (item));
+ ProcessText (rsb, item.Nodes ());
+ rsb.AppendLine ();
+ rsb.AppendLine ();
+
+ var examples = member.Elements ("example");
+ if (examples != null)
+ rsb.AppendLine ("## Examples");
+ foreach (XNode example in examples.Nodes ()) {
+ XText node = (example as XText);
+ if (node != null) {
+ string text = example.ToString ().CleanUp ().Replace ("Bad", "**Bad**");
+ text = text.Replace ("Good", "**Good**");
+ rsb.AppendFormat ("{0}{1}{1}", text.Trim (), Environment.NewLine);
+ continue;
+ }
+
+ XElement code = (example as XElement);
+ if (code == null)
+ continue;
- XElement code = (example as XElement);
- if (code == null)
- continue;
-
- switch (code.Name.LocalName) {
- case "code":
- rsb.AppendFormat ("```csharp{1}{0}{1}```{1}{1}", ProcessCode (code.Value),
- Environment.NewLine);
- break;
- case "c":
- rsb.AppendFormat (" {0}{1}{1}", code.Value, Environment.NewLine);
- break;
+ switch (code.Name.LocalName) {
+ case "code":
+ rsb.AppendFormat ("```csharp{1}{0}{1}```{1}{1}", ProcessCode (code.Value),
+ Environment.NewLine);
+ break;
+ case "c":
+ rsb.AppendFormat (" {0}{1}{1}", code.Value, Environment.NewLine);
+ break;
+ }
}
- }
- XElement container = member.Element ("remarks");
- if (container != null) {
- IEnumerable<XNode> remarks = container.Nodes ();
- if (remarks.Count () > 0) {
- rsb.AppendFormat ("## Notes{0}{0}", Environment.NewLine);
- rsb.Append ("* ");
+ XElement container = member.Element ("remarks");
+ if (container != null) {
+ IEnumerable<XNode> remarks = container.Nodes ();
+ if (remarks.Count () > 0) {
+ rsb.AppendFormat ("## Notes{0}{0}", Environment.NewLine);
+ rsb.Append ("* ");
- ProcessText (rsb, remarks);
+ ProcessText (rsb, remarks);
+ rsb.AppendLine ();
+ }
+ }
+
+ StringBuilder psb;
+ if (properties.TryGetValue (name, out psb)) {
+ rsb.AppendFormat ("## Configuration{0}{0}", Environment.NewLine);
+ rsb.AppendFormat ("Some elements of this rule can be customized to better fit your needs.{0}{0}", Environment.NewLine);
+ rsb.Append (psb);
rsb.AppendLine ();
}
- }
- StringBuilder psb;
- if (properties.TryGetValue (name, out psb)) {
- rsb.AppendFormat ("## Configuration{0}{0}", Environment.NewLine);
- rsb.AppendFormat ("Some elements of this rule can be customized to better fit your needs.{0}{0}", Environment.NewLine);
- rsb.Append (psb);
- rsb.AppendLine ();
- }
+ writer.WriteLine (rsb);
- writer.WriteLine (rsb);
+ if (version == "git") {
+ writer.WriteLine ();
+ writer.WriteLine (@"## Source code
- Footer (writer);
- writer.Close ();
+You can browse the latest [[source code|https://github.com/mono/mono-tools/tree/master/gendarme/rules/{0}/{1}.cs]] of this rule on github.com", assembly, name);
+ }
+ }
}
var rulesList =
from rule in rulesIndex
orderby rule
select rule;
- TextWriter indexWriter = File.CreateText (Path.Combine(outputdir, Path.Combine(assembly, assembly + ".md")));
- foreach (var rule in rulesList) {
- indexWriter.WriteLine ("[[{0}]] ", rule);
- }
+ string assembly_index = String.Format ("{0}{1}{2}{1}{3}({2}).md",
+ outputdir, Path.DirectorySeparatorChar, version, assembly);
+
+ using (TextWriter writer = File.CreateText (assembly_index)) {
+ writer.WriteLine ("# {0} Rules", assembly);
+ writer.WriteLine ();
+ writer.WriteLine ("The following ({0}) rules are available in version [[{1}|Gendarme.Rules({1})]] of {2}:",
+ rulesList.Count (), version, assembly);
+ writer.WriteLine ();
+ foreach (var rule in rulesList) {
+ writer.WriteLine ("* [[{0}|{1}.{0}({2})]] ", rule, assembly, version);
+ }
+
+ if (version == "git") {
+ writer.WriteLine ();
+ writer.WriteLine (@"## Source code
- indexWriter.Close ();
+You can browse the latest [[source code|https://github.com/mono/mono-tools/tree/master/gendarme/rules/{0}]] of this assembly on github.com", assembly);
+ }
+ writer.WriteLine ();
+ }
}
static void ProcessFile (string filename)
@@ -294,15 +331,14 @@ Please report any documentation errors, typos or suggestions to the
orderby (string)member.Attribute ("name") ascending
select member;
- string assembly =
+ string assembly = Path.GetFileName (
(from a in doc.Descendants ("assembly")
- select a.Element ("name").Value).FirstOrDefault();
-
- if (assembly == null || !assembly.StartsWith("Gendarme"))
+ select a.Element ("name").Value).FirstOrDefault ());
+
+ if (assembly == null || !assembly.StartsWith ("Gendarme"))
return;
assembliesIndex.Add (assembly);
- Directory.CreateDirectory (Path.Combine(outputdir, assembly));
ProcessRules (members, assembly);
}
@@ -310,40 +346,99 @@ Please report any documentation errors, typos or suggestions to the
{
string [] files;
if (args.Length < 1) {
- Console.WriteLine ("Usage: xmldoc2wiki filepattern [outputdir]");
+ Console.WriteLine ("Usage: xmldoc2wiki filepattern [--out outputdir] [--version version]");
return;
}
- int index = args [0].LastIndexOfAny (new char [] { '/', '\\' });
- string dir, pattern;
- if (index >= 0) {
- dir = args [0].Substring (0, index);
- pattern = args [0].Substring (args [0].LastIndexOfAny (new char [] { '/', '\\' }) + 1);
- } else {
- dir = ".";
- pattern = args [0];
+ outputdir = ".";
+ version = "git";
+
+ List<string> filenames = new List<string> ();
+ for (int i = 0; i < args.Length; i++) {
+ string arg = args [i];
+ switch (arg) {
+ case "--version":
+ version = args [++i];
+ break;
+ case "--out":
+ outputdir = args [++i];
+ break;
+ default:
+ int index = arg.LastIndexOfAny (new char [] { '/', '\\' });
+ string dir, pattern;
+ if (index >= 0) {
+ dir = arg.Substring (0, index);
+ pattern = arg.Substring (index + 1);
+ } else {
+ dir = ".";
+ pattern = arg;
+ }
+
+ files = Directory.GetFiles (dir, pattern);
+ foreach (string file in files) {
+ filenames.Add (file);
+ }
+ break;
+ }
}
- files = Directory.GetFiles (dir, pattern);
- if (args.Length >= 2)
- outputdir = args [1];
- else
- outputdir = ".";
+ string subdir = Path.Combine (outputdir, version);
+ if (!Directory.Exists (subdir))
+ Directory.CreateDirectory (subdir);
- foreach (string file in files) {
+ foreach (string file in filenames) {
+ Console.WriteLine ("processing {0}", file);
ProcessFile (file);
}
- TextWriter writer = File.CreateText (Path.Combine(outputdir, "index.md"));
+ CreateVersionIndex ();
+ CreateFooterFile ();
+ }
+
+ static void CreateVersionIndex ()
+ {
+ string rules_index = String.Format ("{0}{1}{2}{1}Gendarme.Rules({2}).md",
+ outputdir, Path.DirectorySeparatorChar, version);
+
+ using (TextWriter writer = File.CreateText (rules_index)) {
+ writer.WriteLine ("# Gendarme Rules Documentation Index");
+ writer.WriteLine ();
+
+ var assemblies =
+ from assembly in assembliesIndex
+ orderby assembly
+ select assembly;
+
+ writer.WriteLine ("The following ({0}) assemblies are available in version {1}:",
+ assemblies.Count (), version);
+ writer.WriteLine ();
+
+ foreach (var assembly in assemblies) {
+ writer.WriteLine ("* [[{0}|{0}({1})]] ", assembly, version);
+ }
+
+ if (version == "git") {
+ writer.WriteLine ();
+ writer.WriteLine (@"## Source code
- var assemblies =
- from assembly in assembliesIndex
- orderby assembly
- select assembly;
+* Latest [[source code|https://github.com/mono/mono-tools/tree/master/gendarme/rules/]] for Gendarme's rules is available on github.com
+* Documentation is produced using gendarme's `xmldoc2wiki` (unsupported) tool which [[source code|https://github.com/mono/mono-tools/tree/master/gendarme/tools/unsupported/xmldoc2wiki]] is also available on github.com");
+ }
- foreach (var assembly in assemblies) {
- writer.WriteLine ("[[{0}]] ", assembly);
+ writer.WriteLine ();
}
- writer.Close ();
}
-}
\ No newline at end of file
+
+ static void CreateFooterFile ()
+ {
+ string footer = String.Format ("{0}{1}{2}{1}_Footer.md", outputdir, Path.DirectorySeparatorChar, version);
+
+ using (TextWriter writer = File.CreateText (footer)) {
+ writer.WriteLine (@"## Feedback
+
+Note that this page was autogenerated ({0}) based on the `xmldoc` comments inside the rules source code and cannot be edited from this wiki.
+Please report any documentation errors, typos or suggestions to the
+[[Gendarme Google Group|http://groups.google.com/group/gendarme]]. Thanks!", DateTime.Now);
+ }
+ }
+}
diff --git a/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.csproj b/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.csproj
index db2fbf3..ee295fe 100644
--- a/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.csproj
+++ b/gendarme/tools/unsupported/xmldoc2wiki/xmldoc2wiki.csproj
@@ -1,60 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{AF174688-A979-4B3C-BE21-1C1BE8A0358E}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>xmldoc2wiki</RootNamespace>
- <AssemblyName>xmldoc2wiki</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\..\AssemblyStaticInfo.cs">
- <Link>AssemblyStaticInfo.cs</Link>
- </Compile>
- <Compile Include="xmldoc2wiki.cs" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{AF174688-A979-4B3C-BE21-1C1BE8A0358E}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>xmldoc2wiki</RootNamespace>
+ <AssemblyName>xmldoc2wiki</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Xml.Linq">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\..\AssemblyStaticInfo.cs">
+ <Link>AssemblyStaticInfo.cs</Link>
+ </Compile>
+ <Compile Include="xmldoc2wiki.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
- -->
+ -->
</Project>
\ No newline at end of file
diff --git a/gendarme/wix/Makefile.in b/gendarme/wix/Makefile.in
index 7a4a77e..b3a88bb 100644
--- a/gendarme/wix/Makefile.in
+++ b/gendarme/wix/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,9 +15,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -38,10 +57,16 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_FLAGS = @ACLOCAL_FLAGS@
@@ -103,6 +128,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -116,9 +142,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -201,14 +230,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/wix/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gendarme/wix/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gendarme/wix/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gendarme/wix/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -226,6 +255,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
tags: TAGS
TAGS:
@@ -249,13 +279,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -273,16 +307,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -301,6 +341,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -309,18 +351,28 @@ install-data-am:
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -355,6 +407,7 @@ uninstall-am:
# Windows only - build nothing on Linux
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gendarme/wix/Product.wxs b/gendarme/wix/Product.wxs
index cce4d8d..cd04e05 100644
--- a/gendarme/wix/Product.wxs
+++ b/gendarme/wix/Product.wxs
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?define ProductShortName = "Gendarme" ?>
-<?define ProductVersion = "2.10.0" ?>
-<?define ProductVersionText = "2.10" ?>
+<?define ProductVersion = "2.11.0" ?>
+<?define ProductVersionText = "2.11" ?>
<?define Manufacturer = "Novell" ?>
<?define UpgradeCode = "D7C83968-DEF2-4614-81F2-A3EEFC9BC6B3" ?>
@@ -92,10 +92,10 @@
<RemoveExistingProducts After="InstallValidate" />
</InstallExecuteSequence>
- <!-- Ensure .Net Framework 3.5 is installed -->
- <PropertyRef Id="NETFRAMEWORK35" />
- <Condition Message="This setup requires the .NET Framework 3.5 to be installed.">
- <![CDATA[Installed OR NETFRAMEWORK35]]>
+ <!-- Ensure .Net Framework 4.0 is installed -->
+ <PropertyRef Id="NETFRAMEWORK40FULL" />
+ <Condition Message="This setup requires the .NET Framework 4.0 (full) to be installed.">
+ <![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>
<!-- This enables the license screen and where to install screen -->
diff --git a/gendarme/wix/license.rtf b/gendarme/wix/license.rtf
index 8bd49b0..45c52b3 100644
--- a/gendarme/wix/license.rtf
+++ b/gendarme/wix/license.rtf
@@ -1,5 +1,5 @@
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}}
-{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\f0\fs20 Copyright (c) 2005-2010 Novell, Inc and the individuals listed on the ChangeLog entries.\par
+{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\f0\fs20 Copyright (c) 2005-2011 Novell, Inc and the individuals listed on the ChangeLog entries.\par
\par
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:\par
\par
@@ -7,4 +7,4 @@ The above copyright notice and this permission notice shall be included in all c
\par
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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
}
-
\ No newline at end of file
+
diff --git a/gendarme/wix/wix.wixproj b/gendarme/wix/wix.wixproj
index 57cf6cb..d14ae75 100644
--- a/gendarme/wix/wix.wixproj
+++ b/gendarme/wix/wix.wixproj
@@ -1,4 +1,5 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
@@ -7,7 +8,7 @@
<SchemaVersion>2.0</SchemaVersion>
<OutputName>gendarme</OutputName>
<OutputType>Package</OutputType>
- <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets</WixTargetsPath>
+ <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
@@ -27,9 +28,11 @@
<ItemGroup>
<WixExtension Include="WixNetFxExtension">
<HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
+ <Name>WixNetFxExtension</Name>
</WixExtension>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
+ <Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
diff --git a/gsharp/Main.cs b/gsharp/Main.cs
index 84899b8..52ed96a 100644
--- a/gsharp/Main.cs
+++ b/gsharp/Main.cs
@@ -19,6 +19,7 @@ namespace Mono.CSharp.Gui
public static bool Attached;
public static bool HostHasGtkRunning;
public static bool Debug;
+ static Evaluator evaluator;
public static void ShowHelp (OptionSet p)
{
@@ -59,10 +60,10 @@ namespace Mono.CSharp.Gui
else
Start ("C# InteractiveBase Shell", extra);
}
-
+
static void AssemblyLoaded (object sender, AssemblyLoadEventArgs e)
{
- Evaluator.ReferenceAssembly (e.LoadedAssembly);
+ evaluator.ReferenceAssembly (e.LoadedAssembly);
}
internal static object RenderBitmaps (object o)
@@ -92,7 +93,7 @@ namespace Mono.CSharp.Gui
InteractiveGraphicsBase.Attached = true;
Gtk.Application.Invoke (delegate {
try {
- Evaluator.Init (new string [0]);
+ evaluator = new Evaluator (new CompilerContext (new CompilerSettings (), new ConsoleReportPrinter ()));
} catch {
return;
}
@@ -103,7 +104,7 @@ namespace Mono.CSharp.Gui
// Add all currently loaded assemblies
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies ())
- Evaluator.ReferenceAssembly (a);
+ evaluator.ReferenceAssembly (a);
Start (String.Format ("Attached C# Interactive Shell at Process {0}", Process.GetCurrentProcess ().Id), null);
} finally {
@@ -129,7 +130,6 @@ namespace Mono.CSharp.Gui
if (files != null)
m.LoadFiles (files, false);
m.ShowAll ();
- Evaluator.DescribeTypeExpressions = true;
if (!HostHasGtkRunning){
try {
@@ -146,4 +146,4 @@ namespace Mono.CSharp.Gui
}
}
}
-}
\ No newline at end of file
+}
diff --git a/gsharp/MainWindow.cs b/gsharp/MainWindow.cs
index 34c24e4..f5da16a 100644
--- a/gsharp/MainWindow.cs
+++ b/gsharp/MainWindow.cs
@@ -80,7 +80,7 @@ namespace Mono.CSharp.Gui
}
foreach (string file in libraries){
- Evaluator.LoadAssembly (file);
+ Shell.Evaluator.LoadAssembly (file);
}
foreach (string file in sources){
@@ -101,7 +101,7 @@ namespace Mono.CSharp.Gui
object result;
try {
- input = Evaluator.Evaluate (input, out result, out result_set);
+ input = Shell.Evaluator.Evaluate (input, out result, out result_set);
} catch (Exception e){
Console.WriteLine (e);
return null;
diff --git a/gsharp/Makefile.in b/gsharp/Makefile.in
index 30f516f..9e107c3 100644
--- a/gsharp/Makefile.in
+++ b/gsharp/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,22 +60,46 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = gsharp gsharp.exe.config
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \
- "$(DESTDIR)$(gsharpdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-desktopDATA_INSTALL = $(INSTALL_DATA)
-gsharpDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(gsharpdir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(desktop_DATA) $(gsharp_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -119,6 +162,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -132,9 +176,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -239,14 +286,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gsharp/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gsharp/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gsharp/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gsharp/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -264,63 +311,88 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
gsharp: $(top_builddir)/config.status $(srcdir)/gsharp.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gsharp.exe.config: $(top_builddir)/config.status $(srcdir)/gsharp.exe.config.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-desktopDATA: $(desktop_DATA)
@$(NORMAL_INSTALL)
- test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
- @list='$(desktop_DATA)'; for p in $$list; do \
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \
- $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
done
uninstall-desktopDATA:
@$(NORMAL_UNINSTALL)
- @list='$(desktop_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \
- rm -f "$(DESTDIR)$(desktopdir)/$$f"; \
- done
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
install-gsharpDATA: $(gsharp_DATA)
@$(NORMAL_INSTALL)
- test -z "$(gsharpdir)" || $(MKDIR_P) "$(DESTDIR)$(gsharpdir)"
- @list='$(gsharp_DATA)'; for p in $$list; do \
+ @list='$(gsharp_DATA)'; test -n "$(gsharpdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gsharpdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gsharpdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(gsharpDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gsharpdir)/$$f'"; \
- $(gsharpDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gsharpdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gsharpdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(gsharpdir)" || exit $$?; \
done
uninstall-gsharpDATA:
@$(NORMAL_UNINSTALL)
- @list='$(gsharp_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(gsharpdir)/$$f'"; \
- rm -f "$(DESTDIR)$(gsharpdir)/$$f"; \
- done
+ @list='$(gsharp_DATA)'; test -n "$(gsharpdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(gsharpdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -344,13 +416,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -371,10 +447,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -382,6 +463,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -400,6 +482,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -408,18 +492,28 @@ install-data-am: install-desktopDATA install-gsharpDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -462,6 +556,7 @@ gsharp.exe: $(gsharp_sources)
$(desktop_DATA): $(desktop_DATA).in
sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gsharp/Shell.cs b/gsharp/Shell.cs
index 05d5695..5f41ea5 100644
--- a/gsharp/Shell.cs
+++ b/gsharp/Shell.cs
@@ -50,7 +50,9 @@ namespace Mono.CSharp.Gui
public class Shell : TextView
{
TextMark end_of_last_processing;
- string expr = null;
+ string expr;
+ Evaluator evaluator;
+ CompilerContext context;
List<string> history = new List<string> ();
int history_cursor;
@@ -72,10 +74,14 @@ namespace Mono.CSharp.Gui
Buffer.InsertWithTagsByName (ref end, "Mono C# Shell, type 'help;' for help\n\nEnter statements or expressions below.\n", "Comment");
ShowPrompt (false);
- Evaluator.Init (new string [0]);
- Evaluator.SetInteractiveBaseClass (typeof (InteractiveGraphicsBase));
- Evaluator.Run ("LoadAssembly (\"System.Drawing\");");
- Evaluator.Run ("using System; using System.Linq; using System.Collections; using System.Collections.Generic; using System.Drawing;");
+
+ context = new CompilerContext (new CompilerSettings (), new ConsoleReportPrinter ());
+ evaluator = new Evaluator (context);
+ evaluator.DescribeTypeExpressions = true;
+
+ evaluator.InteractiveBaseClass = typeof (InteractiveGraphicsBase);
+ evaluator.Run ("LoadAssembly (\"System.Drawing\");");
+ evaluator.Run ("using System; using System.Linq; using System.Collections; using System.Collections.Generic; using System.Drawing;");
if (!MainClass.Debug){
GuiStream error_stream = new GuiStream ("Error", (x, y) => Output (x, y));
@@ -139,16 +145,18 @@ namespace Mono.CSharp.Gui
object result;
bool result_set;
StringWriter errorwriter = new StringWriter ();
-
- Evaluator.MessageOutput = errorwriter;
+
+ var old_printer = context.Report.SetPrinter (new StreamReportPrinter (errorwriter));
try {
- res = Evaluator.Evaluate (s, out result, out result_set);
+ res = evaluator.Evaluate (s, out result, out result_set);
} catch (Exception e){
expr = null;
ShowError (e.ToString ());
ShowPrompt (true, false);
return true;
+ } finally {
+ context.Report.SetPrinter (old_printer);
}
// Partial input
@@ -262,7 +270,7 @@ namespace Mono.CSharp.Gui
case Gdk.Key.Tab:
string saved_text = InputLine;
string prefix;
- string [] completions = Evaluator.GetCompletions (LineUntilCursor, out prefix);
+ string [] completions = evaluator.GetCompletions (LineUntilCursor, out prefix);
if (completions == null)
return true;
@@ -405,6 +413,12 @@ namespace Mono.CSharp.Gui
TextIter Cursor {
get { return Buffer.GetIterAtMark(Buffer.InsertMark); }
}
+
+ public Evaluator Evaluator {
+ get {
+ return evaluator;
+ }
+ }
string InputLine {
get { return Buffer.GetText(InputLineBegin, InputLineEnd, false); }
diff --git a/gsharp/gtk-gui/Mono.CSharp.Gui.DescribeType.cs b/gsharp/gtk-gui/Mono.CSharp.Gui.DescribeType.cs
index 21e9c5b..7e04ad0 100644
--- a/gsharp/gtk-gui/Mono.CSharp.Gui.DescribeType.cs
+++ b/gsharp/gtk-gui/Mono.CSharp.Gui.DescribeType.cs
@@ -1,105 +1,93 @@
-// ------------------------------------------------------------------------------
-// <autogenerated>
-// This code was generated by a tool.
-//
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </autogenerated>
-// ------------------------------------------------------------------------------
-namespace Mono.CSharp.Gui {
-
-
- public partial class DescribeType {
-
- private Gtk.HBox hbox1;
-
- private Gtk.Label label1;
-
- private Gtk.Entry entry1;
-
- private Gtk.Button buttonCancel;
-
- private Gtk.Button buttonOk;
-
- protected virtual void Build() {
- Stetic.Gui.Initialize(this);
- // Widget Mono.CSharp.Gui.DescribeType
- this.Name = "Mono.CSharp.Gui.DescribeType";
- this.WindowPosition = ((Gtk.WindowPosition)(4));
- // Internal child Mono.CSharp.Gui.DescribeType.VBox
- Gtk.VBox w1 = this.VBox;
- w1.Name = "dialog1_VBox";
- w1.BorderWidth = ((uint)(2));
- // Container child dialog1_VBox.Gtk.Box+BoxChild
- this.hbox1 = new Gtk.HBox();
- this.hbox1.Name = "hbox1";
- this.hbox1.Spacing = 6;
- // Container child hbox1.Gtk.Box+BoxChild
- this.label1 = new Gtk.Label();
- this.label1.Name = "label1";
- this.label1.Xpad = 5;
- this.label1.Ypad = 15;
- this.label1.LabelProp = Mono.Unix.Catalog.GetString("Type name:");
- this.hbox1.Add(this.label1);
- Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1]));
- w2.Position = 0;
- w2.Expand = false;
- w2.Fill = false;
- // Container child hbox1.Gtk.Box+BoxChild
- this.entry1 = new Gtk.Entry();
- this.entry1.CanDefault = true;
- this.entry1.CanFocus = true;
- this.entry1.Name = "entry1";
- this.entry1.IsEditable = true;
- this.entry1.InvisibleChar = '●';
- this.hbox1.Add(this.entry1);
- Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.hbox1[this.entry1]));
- w3.Position = 1;
- w1.Add(this.hbox1);
- Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(w1[this.hbox1]));
- w4.Position = 0;
- w4.Expand = false;
- w4.Fill = false;
- // Internal child Mono.CSharp.Gui.DescribeType.ActionArea
- Gtk.HButtonBox w5 = this.ActionArea;
- w5.Name = "dialog1_ActionArea";
- w5.Spacing = 6;
- w5.BorderWidth = ((uint)(5));
- w5.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
- // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonCancel = new Gtk.Button();
- this.buttonCancel.CanDefault = true;
- this.buttonCancel.CanFocus = true;
- this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.UseStock = true;
- this.buttonCancel.UseUnderline = true;
- this.buttonCancel.Label = "gtk-cancel";
- this.AddActionWidget(this.buttonCancel, -6);
- Gtk.ButtonBox.ButtonBoxChild w6 = ((Gtk.ButtonBox.ButtonBoxChild)(w5[this.buttonCancel]));
- w6.Expand = false;
- w6.Fill = false;
- // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonOk = new Gtk.Button();
- this.buttonOk.CanDefault = true;
- this.buttonOk.CanFocus = true;
- this.buttonOk.Name = "buttonOk";
- this.buttonOk.UseStock = true;
- this.buttonOk.UseUnderline = true;
- this.buttonOk.Label = "gtk-ok";
- this.AddActionWidget(this.buttonOk, -5);
- Gtk.ButtonBox.ButtonBoxChild w7 = ((Gtk.ButtonBox.ButtonBoxChild)(w5[this.buttonOk]));
- w7.Position = 1;
- w7.Expand = false;
- w7.Fill = false;
- if ((this.Child != null)) {
- this.Child.ShowAll();
- }
- this.DefaultWidth = 284;
- this.DefaultHeight = 133;
- this.Show();
- this.entry1.Activated += new System.EventHandler(this.OnEntry1Activated);
- }
- }
+// This file has been generated by the GUI designer. Do not modify.
+namespace Mono.CSharp.Gui
+{
+ public partial class DescribeType
+ {
+ private global::Gtk.HBox hbox1;
+ private global::Gtk.Label label1;
+ private global::Gtk.Entry entry1;
+ private global::Gtk.Button buttonCancel;
+ private global::Gtk.Button buttonOk;
+
+ protected virtual void Build ()
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget Mono.CSharp.Gui.DescribeType
+ this.Name = "Mono.CSharp.Gui.DescribeType";
+ this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+ // Internal child Mono.CSharp.Gui.DescribeType.VBox
+ global::Gtk.VBox w1 = this.VBox;
+ w1.Name = "dialog1_VBox";
+ w1.BorderWidth = ((uint)(2));
+ // Container child dialog1_VBox.Gtk.Box+BoxChild
+ this.hbox1 = new global::Gtk.HBox ();
+ this.hbox1.Name = "hbox1";
+ this.hbox1.Spacing = 6;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.label1 = new global::Gtk.Label ();
+ this.label1.Name = "label1";
+ this.label1.Xpad = 5;
+ this.label1.Ypad = 15;
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Type name:");
+ this.hbox1.Add (this.label1);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.label1]));
+ w2.Position = 0;
+ w2.Expand = false;
+ w2.Fill = false;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.entry1 = new global::Gtk.Entry ();
+ this.entry1.CanDefault = true;
+ this.entry1.CanFocus = true;
+ this.entry1.Name = "entry1";
+ this.entry1.IsEditable = true;
+ this.entry1.InvisibleChar = '●';
+ this.hbox1.Add (this.entry1);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.entry1]));
+ w3.Position = 1;
+ w1.Add (this.hbox1);
+ global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1 [this.hbox1]));
+ w4.Position = 0;
+ w4.Expand = false;
+ w4.Fill = false;
+ // Internal child Mono.CSharp.Gui.DescribeType.ActionArea
+ global::Gtk.HButtonBox w5 = this.ActionArea;
+ w5.Name = "dialog1_ActionArea";
+ w5.Spacing = 6;
+ w5.BorderWidth = ((uint)(5));
+ w5.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+ this.buttonCancel = new global::Gtk.Button ();
+ this.buttonCancel.CanDefault = true;
+ this.buttonCancel.CanFocus = true;
+ this.buttonCancel.Name = "buttonCancel";
+ this.buttonCancel.UseStock = true;
+ this.buttonCancel.UseUnderline = true;
+ this.buttonCancel.Label = "gtk-cancel";
+ this.AddActionWidget (this.buttonCancel, -6);
+ global::Gtk.ButtonBox.ButtonBoxChild w6 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w5 [this.buttonCancel]));
+ w6.Expand = false;
+ w6.Fill = false;
+ // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+ this.buttonOk = new global::Gtk.Button ();
+ this.buttonOk.CanDefault = true;
+ this.buttonOk.CanFocus = true;
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.UseStock = true;
+ this.buttonOk.UseUnderline = true;
+ this.buttonOk.Label = "gtk-ok";
+ this.AddActionWidget (this.buttonOk, -5);
+ global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w5 [this.buttonOk]));
+ w7.Position = 1;
+ w7.Expand = false;
+ w7.Fill = false;
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ this.DefaultWidth = 284;
+ this.DefaultHeight = 133;
+ this.Show ();
+ this.entry1.Activated += new global::System.EventHandler (this.OnEntry1Activated);
+ }
+ }
}
diff --git a/gsharp/gtk-gui/Mono.CSharp.Gui.MainWindow.cs b/gsharp/gtk-gui/Mono.CSharp.Gui.MainWindow.cs
index 7fb30cf..ad540d7 100644
--- a/gsharp/gtk-gui/Mono.CSharp.Gui.MainWindow.cs
+++ b/gsharp/gtk-gui/Mono.CSharp.Gui.MainWindow.cs
@@ -1,226 +1,193 @@
-// ------------------------------------------------------------------------------
-// <autogenerated>
-// This code was generated by a tool.
-//
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </autogenerated>
-// ------------------------------------------------------------------------------
-namespace Mono.CSharp.Gui {
-
-
- public partial class MainWindow {
-
- private Gtk.UIManager UIManager;
-
- private Gtk.Action FileAction;
-
- private Gtk.Action QuitAction;
-
- private Gtk.Action AttachToProcessAction;
-
- private Gtk.Action HelpAction;
-
- private Gtk.Action AboutAction;
-
- private Gtk.Action ViewAction;
-
- private Gtk.ToggleAction gtkpane;
-
- private Gtk.Action ToolsAction;
-
- private Gtk.Action DescribeTypeAction;
-
- private Gtk.VBox vbox1;
-
- private Gtk.MenuBar menubar1;
-
- private Gtk.Notebook notebook1;
-
- private Gtk.HPaned hpaned;
-
- private Gtk.EventBox paned_container;
-
- private Gtk.VBox vbox2;
-
- private Gtk.Expander expander1;
-
- private Gtk.Label label4;
-
- private Gtk.Label GtkLabel4;
-
- private Gtk.EventBox eventbox;
-
- private Gtk.Label label1;
-
- private Gtk.EventBox standalone_container;
-
- private Gtk.Notebook shellnotebook;
-
- private Gtk.ScrolledWindow sw;
-
- private Gtk.Label label3;
-
- private Gtk.Label label2;
-
- protected virtual void Build() {
- Stetic.Gui.Initialize(this);
- // Widget Mono.CSharp.Gui.MainWindow
- this.UIManager = new Gtk.UIManager();
- Gtk.ActionGroup w1 = new Gtk.ActionGroup("Default");
- this.FileAction = new Gtk.Action("FileAction", Mono.Unix.Catalog.GetString("_File"), null, null);
- this.FileAction.ShortLabel = Mono.Unix.Catalog.GetString("File");
- w1.Add(this.FileAction, null);
- this.QuitAction = new Gtk.Action("QuitAction", Mono.Unix.Catalog.GetString("_Quit"), null, "gtk-quit");
- this.QuitAction.ShortLabel = Mono.Unix.Catalog.GetString("_Quit");
- w1.Add(this.QuitAction, null);
- this.AttachToProcessAction = new Gtk.Action("AttachToProcessAction", Mono.Unix.Catalog.GetString("Attach to Process"), null, null);
- this.AttachToProcessAction.ShortLabel = Mono.Unix.Catalog.GetString("Attach to Process");
- w1.Add(this.AttachToProcessAction, null);
- this.HelpAction = new Gtk.Action("HelpAction", Mono.Unix.Catalog.GetString("Help"), null, null);
- this.HelpAction.ShortLabel = Mono.Unix.Catalog.GetString("Help");
- w1.Add(this.HelpAction, null);
- this.AboutAction = new Gtk.Action("AboutAction", Mono.Unix.Catalog.GetString("About"), null, null);
- this.AboutAction.ShortLabel = Mono.Unix.Catalog.GetString("About");
- w1.Add(this.AboutAction, null);
- this.ViewAction = new Gtk.Action("ViewAction", Mono.Unix.Catalog.GetString("View"), null, null);
- this.ViewAction.ShortLabel = Mono.Unix.Catalog.GetString("View");
- w1.Add(this.ViewAction, null);
- this.gtkpane = new Gtk.ToggleAction("gtkpane", Mono.Unix.Catalog.GetString("Gtk Pane"), null, null);
- this.gtkpane.ShortLabel = Mono.Unix.Catalog.GetString("Gtk Pane");
- w1.Add(this.gtkpane, null);
- this.ToolsAction = new Gtk.Action("ToolsAction", Mono.Unix.Catalog.GetString("_Tools"), null, null);
- this.ToolsAction.ShortLabel = Mono.Unix.Catalog.GetString("_Tools");
- w1.Add(this.ToolsAction, null);
- this.DescribeTypeAction = new Gtk.Action("DescribeTypeAction", Mono.Unix.Catalog.GetString("Describe Type"), null, null);
- this.DescribeTypeAction.ShortLabel = Mono.Unix.Catalog.GetString("Describe Type");
- w1.Add(this.DescribeTypeAction, null);
- this.UIManager.InsertActionGroup(w1, 0);
- this.AddAccelGroup(this.UIManager.AccelGroup);
- this.Name = "Mono.CSharp.Gui.MainWindow";
- this.Title = Mono.Unix.Catalog.GetString("MainWindow");
- this.WindowPosition = ((Gtk.WindowPosition)(4));
- this.DefaultWidth = 600;
- this.DefaultHeight = 500;
- // Container child Mono.CSharp.Gui.MainWindow.Gtk.Container+ContainerChild
- this.vbox1 = new Gtk.VBox();
- this.vbox1.Name = "vbox1";
- this.vbox1.Spacing = 6;
- // Container child vbox1.Gtk.Box+BoxChild
- this.UIManager.AddUiFromString("<ui><menubar name='menubar1'><menu name='FileAction' action='FileAction'><menuitem name='AttachToProcessAction' action='AttachToProcessAction'/><separator/><menuitem name='QuitAction' action='QuitAction'/></menu><menu name='ViewAction' action='ViewAction'><menuitem name='gtkpane' action='gtkpane'/></menu><menu name='ToolsAction' action='ToolsAction'><menuitem name='DescribeTypeAction' action='DescribeTypeAction'/></menu><menu name='HelpAction' [...]
- this.menubar1 = ((Gtk.MenuBar)(this.UIManager.GetWidget("/menubar1")));
- this.menubar1.Name = "menubar1";
- this.vbox1.Add(this.menubar1);
- Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox1[this.menubar1]));
- w2.Position = 0;
- w2.Expand = false;
- w2.Fill = false;
- // Container child vbox1.Gtk.Box+BoxChild
- this.notebook1 = new Gtk.Notebook();
- this.notebook1.CanFocus = true;
- this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 0;
- this.notebook1.ShowBorder = false;
- this.notebook1.ShowTabs = false;
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.hpaned = new Gtk.HPaned();
- this.hpaned.CanFocus = true;
- this.hpaned.Name = "hpaned";
- this.hpaned.Position = 472;
- // Container child hpaned.Gtk.Paned+PanedChild
- this.paned_container = new Gtk.EventBox();
- this.paned_container.Name = "paned_container";
- this.hpaned.Add(this.paned_container);
- Gtk.Paned.PanedChild w3 = ((Gtk.Paned.PanedChild)(this.hpaned[this.paned_container]));
- w3.Resize = false;
- // Container child hpaned.Gtk.Paned+PanedChild
- this.vbox2 = new Gtk.VBox();
- this.vbox2.Name = "vbox2";
- this.vbox2.Spacing = 6;
- // Container child vbox2.Gtk.Box+BoxChild
- this.expander1 = new Gtk.Expander(null);
- this.expander1.CanFocus = true;
- this.expander1.Name = "expander1";
- this.expander1.Expanded = true;
- // Container child expander1.Gtk.Container+ContainerChild
- this.label4 = new Gtk.Label();
- this.label4.Name = "label4";
- this.label4.Xpad = 10;
- this.label4.Xalign = 0.1F;
- this.label4.LabelProp = Mono.Unix.Catalog.GetString("Set the contents of this pane by adding Gtk.Widgets children to the <b>PaneContainer</b> property. The PaneContainer is a Gtk.EventBox. \n\nTry it like this:\n\nLoadPackage (\"gtk-sharp-2.0\");\nvar l = new Label (\"Hello world\");\nPaneContainer.Add (l);\nl.ShowAll ();");
- this.label4.UseMarkup = true;
- this.label4.Wrap = true;
- this.expander1.Add(this.label4);
- this.GtkLabel4 = new Gtk.Label();
- this.GtkLabel4.Name = "GtkLabel4";
- this.GtkLabel4.LabelProp = Mono.Unix.Catalog.GetString("<b>PaneContent</b>");
- this.GtkLabel4.UseMarkup = true;
- this.GtkLabel4.UseUnderline = true;
- this.expander1.LabelWidget = this.GtkLabel4;
- this.vbox2.Add(this.expander1);
- Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox2[this.expander1]));
- w5.Position = 0;
- w5.Expand = false;
- w5.Fill = false;
- // Container child vbox2.Gtk.Box+BoxChild
- this.eventbox = new Gtk.EventBox();
- this.eventbox.Name = "eventbox";
- this.vbox2.Add(this.eventbox);
- Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox2[this.eventbox]));
- w6.Position = 1;
- this.hpaned.Add(this.vbox2);
- this.notebook1.Add(this.hpaned);
- // Notebook tab
- this.label1 = new Gtk.Label();
- this.label1.Name = "label1";
- this.label1.LabelProp = Mono.Unix.Catalog.GetString("page1");
- this.notebook1.SetTabLabel(this.hpaned, this.label1);
- this.label1.ShowAll();
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.standalone_container = new Gtk.EventBox();
- this.standalone_container.Name = "standalone_container";
- // Container child standalone_container.Gtk.Container+ContainerChild
- this.shellnotebook = new Gtk.Notebook();
- this.shellnotebook.CanFocus = true;
- this.shellnotebook.Name = "shellnotebook";
- this.shellnotebook.CurrentPage = 0;
- this.shellnotebook.ShowTabs = false;
- this.shellnotebook.Scrollable = true;
- // Container child shellnotebook.Gtk.Notebook+NotebookChild
- this.sw = new Gtk.ScrolledWindow();
- this.sw.CanFocus = true;
- this.sw.Name = "sw";
- this.sw.ShadowType = ((Gtk.ShadowType)(1));
- this.shellnotebook.Add(this.sw);
- // Notebook tab
- this.label3 = new Gtk.Label();
- this.label3.Name = "label3";
- this.label3.LabelProp = Mono.Unix.Catalog.GetString("C#");
- this.shellnotebook.SetTabLabel(this.sw, this.label3);
- this.label3.ShowAll();
- this.standalone_container.Add(this.shellnotebook);
- this.notebook1.Add(this.standalone_container);
- Gtk.Notebook.NotebookChild w11 = ((Gtk.Notebook.NotebookChild)(this.notebook1[this.standalone_container]));
- w11.Position = 1;
- // Notebook tab
- this.label2 = new Gtk.Label();
- this.label2.Name = "label2";
- this.label2.LabelProp = Mono.Unix.Catalog.GetString("page2");
- this.notebook1.SetTabLabel(this.standalone_container, this.label2);
- this.label2.ShowAll();
- this.vbox1.Add(this.notebook1);
- Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(this.vbox1[this.notebook1]));
- w12.Position = 1;
- this.Add(this.vbox1);
- if ((this.Child != null)) {
- this.Child.ShowAll();
- }
- this.Show();
- this.QuitAction.Activated += new System.EventHandler(this.OnQuitActionActivated);
- this.AttachToProcessAction.Activated += new System.EventHandler(this.OnAttachToProcessActionActivated);
- this.DescribeTypeAction.Activated += new System.EventHandler(this.OnDescribeTypeActionActivated);
- }
- }
+// This file has been generated by the GUI designer. Do not modify.
+namespace Mono.CSharp.Gui
+{
+ public partial class MainWindow
+ {
+ private global::Gtk.UIManager UIManager;
+ private global::Gtk.Action FileAction;
+ private global::Gtk.Action QuitAction;
+ private global::Gtk.Action AttachToProcessAction;
+ private global::Gtk.Action HelpAction;
+ private global::Gtk.Action AboutAction;
+ private global::Gtk.Action ViewAction;
+ private global::Gtk.ToggleAction gtkpane;
+ private global::Gtk.Action ToolsAction;
+ private global::Gtk.Action DescribeTypeAction;
+ private global::Gtk.VBox vbox1;
+ private global::Gtk.MenuBar menubar1;
+ private global::Gtk.Notebook notebook1;
+ private global::Gtk.HPaned hpaned;
+ private global::Gtk.EventBox paned_container;
+ private global::Gtk.VBox vbox2;
+ private global::Gtk.Expander expander1;
+ private global::Gtk.Label label4;
+ private global::Gtk.Label GtkLabel4;
+ private global::Gtk.EventBox eventbox;
+ private global::Gtk.Label label1;
+ private global::Gtk.EventBox standalone_container;
+ private global::Gtk.Notebook shellnotebook;
+ private global::Gtk.ScrolledWindow sw;
+ private global::Gtk.Label label3;
+ private global::Gtk.Label label2;
+
+ protected virtual void Build ()
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget Mono.CSharp.Gui.MainWindow
+ this.UIManager = new global::Gtk.UIManager ();
+ global::Gtk.ActionGroup w1 = new global::Gtk.ActionGroup ("Default");
+ this.FileAction = new global::Gtk.Action ("FileAction", global::Mono.Unix.Catalog.GetString ("_File"), null, null);
+ this.FileAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("File");
+ w1.Add (this.FileAction, null);
+ this.QuitAction = new global::Gtk.Action ("QuitAction", global::Mono.Unix.Catalog.GetString ("_Quit"), null, "gtk-quit");
+ this.QuitAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Quit");
+ w1.Add (this.QuitAction, null);
+ this.AttachToProcessAction = new global::Gtk.Action ("AttachToProcessAction", global::Mono.Unix.Catalog.GetString ("Attach to Process"), null, null);
+ this.AttachToProcessAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Attach to Process");
+ w1.Add (this.AttachToProcessAction, null);
+ this.HelpAction = new global::Gtk.Action ("HelpAction", global::Mono.Unix.Catalog.GetString ("Help"), null, null);
+ this.HelpAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Help");
+ w1.Add (this.HelpAction, null);
+ this.AboutAction = new global::Gtk.Action ("AboutAction", global::Mono.Unix.Catalog.GetString ("About"), null, null);
+ this.AboutAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("About");
+ w1.Add (this.AboutAction, null);
+ this.ViewAction = new global::Gtk.Action ("ViewAction", global::Mono.Unix.Catalog.GetString ("View"), null, null);
+ this.ViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("View");
+ w1.Add (this.ViewAction, null);
+ this.gtkpane = new global::Gtk.ToggleAction ("gtkpane", global::Mono.Unix.Catalog.GetString ("Gtk Pane"), null, null);
+ this.gtkpane.ShortLabel = global::Mono.Unix.Catalog.GetString ("Gtk Pane");
+ w1.Add (this.gtkpane, null);
+ this.ToolsAction = new global::Gtk.Action ("ToolsAction", global::Mono.Unix.Catalog.GetString ("_Tools"), null, null);
+ this.ToolsAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Tools");
+ w1.Add (this.ToolsAction, null);
+ this.DescribeTypeAction = new global::Gtk.Action ("DescribeTypeAction", global::Mono.Unix.Catalog.GetString ("Describe Type"), null, null);
+ this.DescribeTypeAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Describe Type");
+ w1.Add (this.DescribeTypeAction, null);
+ this.UIManager.InsertActionGroup (w1, 0);
+ this.AddAccelGroup (this.UIManager.AccelGroup);
+ this.Name = "Mono.CSharp.Gui.MainWindow";
+ this.Title = global::Mono.Unix.Catalog.GetString ("MainWindow");
+ this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+ this.DefaultWidth = 600;
+ this.DefaultHeight = 500;
+ // Container child Mono.CSharp.Gui.MainWindow.Gtk.Container+ContainerChild
+ this.vbox1 = new global::Gtk.VBox ();
+ this.vbox1.Name = "vbox1";
+ this.vbox1.Spacing = 6;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.UIManager.AddUiFromString ("<ui><menubar name='menubar1'><menu name='FileAction' action='FileAction'><menuitem name='AttachToProcessAction' action='AttachToProcessAction'/><separator/><menuitem name='QuitAction' action='QuitAction'/></menu><menu name='ViewAction' action='ViewAction'><menuitem name='gtkpane' action='gtkpane'/></menu><menu name='ToolsAction' action='ToolsAction'><menuitem name='DescribeTypeAction' action='DescribeTypeAction'/></menu><menu name='HelpAction' action=' [...]
+ this.menubar1 = ((global::Gtk.MenuBar)(this.UIManager.GetWidget ("/menubar1")));
+ this.menubar1.Name = "menubar1";
+ this.vbox1.Add (this.menubar1);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.menubar1]));
+ w2.Position = 0;
+ w2.Expand = false;
+ w2.Fill = false;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.notebook1 = new global::Gtk.Notebook ();
+ this.notebook1.CanFocus = true;
+ this.notebook1.Name = "notebook1";
+ this.notebook1.CurrentPage = 0;
+ this.notebook1.ShowBorder = false;
+ this.notebook1.ShowTabs = false;
+ // Container child notebook1.Gtk.Notebook+NotebookChild
+ this.hpaned = new global::Gtk.HPaned ();
+ this.hpaned.CanFocus = true;
+ this.hpaned.Name = "hpaned";
+ this.hpaned.Position = 472;
+ // Container child hpaned.Gtk.Paned+PanedChild
+ this.paned_container = new global::Gtk.EventBox ();
+ this.paned_container.Name = "paned_container";
+ this.hpaned.Add (this.paned_container);
+ global::Gtk.Paned.PanedChild w3 = ((global::Gtk.Paned.PanedChild)(this.hpaned [this.paned_container]));
+ w3.Resize = false;
+ // Container child hpaned.Gtk.Paned+PanedChild
+ this.vbox2 = new global::Gtk.VBox ();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.expander1 = new global::Gtk.Expander (null);
+ this.expander1.CanFocus = true;
+ this.expander1.Name = "expander1";
+ this.expander1.Expanded = true;
+ // Container child expander1.Gtk.Container+ContainerChild
+ this.label4 = new global::Gtk.Label ();
+ this.label4.Name = "label4";
+ this.label4.Xpad = 10;
+ this.label4.Xalign = 0.1F;
+ this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Set the contents of this pane by adding Gtk.Widgets children to the <b>PaneContainer</b> property. The PaneContainer is a Gtk.EventBox. \n\nTry it like this:\n\nLoadPackage (\"gtk-sharp-2.0\");\nvar l = new Label (\"Hello world\");\nPaneContainer.Add (l);\nl.ShowAll ();");
+ this.label4.UseMarkup = true;
+ this.label4.Wrap = true;
+ this.expander1.Add (this.label4);
+ this.GtkLabel4 = new global::Gtk.Label ();
+ this.GtkLabel4.Name = "GtkLabel4";
+ this.GtkLabel4.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>PaneContent</b>");
+ this.GtkLabel4.UseMarkup = true;
+ this.GtkLabel4.UseUnderline = true;
+ this.expander1.LabelWidget = this.GtkLabel4;
+ this.vbox2.Add (this.expander1);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.expander1]));
+ w5.Position = 0;
+ w5.Expand = false;
+ w5.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.eventbox = new global::Gtk.EventBox ();
+ this.eventbox.Name = "eventbox";
+ this.vbox2.Add (this.eventbox);
+ global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.eventbox]));
+ w6.Position = 1;
+ this.hpaned.Add (this.vbox2);
+ this.notebook1.Add (this.hpaned);
+ // Notebook tab
+ this.label1 = new global::Gtk.Label ();
+ this.label1.Name = "label1";
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("page1");
+ this.notebook1.SetTabLabel (this.hpaned, this.label1);
+ this.label1.ShowAll ();
+ // Container child notebook1.Gtk.Notebook+NotebookChild
+ this.standalone_container = new global::Gtk.EventBox ();
+ this.standalone_container.Name = "standalone_container";
+ // Container child standalone_container.Gtk.Container+ContainerChild
+ this.shellnotebook = new global::Gtk.Notebook ();
+ this.shellnotebook.CanFocus = true;
+ this.shellnotebook.Name = "shellnotebook";
+ this.shellnotebook.CurrentPage = 0;
+ this.shellnotebook.ShowTabs = false;
+ this.shellnotebook.Scrollable = true;
+ // Container child shellnotebook.Gtk.Notebook+NotebookChild
+ this.sw = new global::Gtk.ScrolledWindow ();
+ this.sw.CanFocus = true;
+ this.sw.Name = "sw";
+ this.sw.ShadowType = ((global::Gtk.ShadowType)(1));
+ this.shellnotebook.Add (this.sw);
+ // Notebook tab
+ this.label3 = new global::Gtk.Label ();
+ this.label3.Name = "label3";
+ this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("C#");
+ this.shellnotebook.SetTabLabel (this.sw, this.label3);
+ this.label3.ShowAll ();
+ this.standalone_container.Add (this.shellnotebook);
+ this.notebook1.Add (this.standalone_container);
+ global::Gtk.Notebook.NotebookChild w11 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1 [this.standalone_container]));
+ w11.Position = 1;
+ // Notebook tab
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("page2");
+ this.notebook1.SetTabLabel (this.standalone_container, this.label2);
+ this.label2.ShowAll ();
+ this.vbox1.Add (this.notebook1);
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.notebook1]));
+ w12.Position = 1;
+ this.Add (this.vbox1);
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ this.Show ();
+ this.QuitAction.Activated += new global::System.EventHandler (this.OnQuitActionActivated);
+ this.AttachToProcessAction.Activated += new global::System.EventHandler (this.OnAttachToProcessActionActivated);
+ this.DescribeTypeAction.Activated += new global::System.EventHandler (this.OnDescribeTypeActionActivated);
+ }
+ }
}
diff --git a/gsharp/gtk-gui/Mono.CSharp.Gui.ProcessSelector.cs b/gsharp/gtk-gui/Mono.CSharp.Gui.ProcessSelector.cs
index 3ae7cd7..fed8491 100644
--- a/gsharp/gtk-gui/Mono.CSharp.Gui.ProcessSelector.cs
+++ b/gsharp/gtk-gui/Mono.CSharp.Gui.ProcessSelector.cs
@@ -1,108 +1,94 @@
-// ------------------------------------------------------------------------------
-// <autogenerated>
-// This code was generated by a tool.
-//
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </autogenerated>
-// ------------------------------------------------------------------------------
-namespace Mono.CSharp.Gui {
-
-
- public partial class ProcessSelector {
-
- private Gtk.Frame frame1;
-
- private Gtk.Alignment GtkAlignment;
-
- private Gtk.ScrolledWindow GtkScrolledWindow;
-
- private Gtk.TreeView treeview;
-
- private Gtk.Label GtkLabel;
-
- private Gtk.Button buttonCancel;
-
- private Gtk.Button buttonOk;
-
- protected virtual void Build() {
- Stetic.Gui.Initialize(this);
- // Widget Mono.CSharp.Gui.ProcessSelector
- this.Name = "Mono.CSharp.Gui.ProcessSelector";
- this.Title = Mono.Unix.Catalog.GetString("Select Mono Process to Attach");
- this.WindowPosition = ((Gtk.WindowPosition)(4));
- // Internal child Mono.CSharp.Gui.ProcessSelector.VBox
- Gtk.VBox w1 = this.VBox;
- w1.Name = "dialog1_VBox";
- w1.BorderWidth = ((uint)(2));
- // Container child dialog1_VBox.Gtk.Box+BoxChild
- this.frame1 = new Gtk.Frame();
- this.frame1.Name = "frame1";
- this.frame1.ShadowType = ((Gtk.ShadowType)(0));
- this.frame1.BorderWidth = ((uint)(2));
- // Container child frame1.Gtk.Container+ContainerChild
- this.GtkAlignment = new Gtk.Alignment(0F, 0F, 1F, 1F);
- this.GtkAlignment.Name = "GtkAlignment";
- this.GtkAlignment.LeftPadding = ((uint)(12));
- // Container child GtkAlignment.Gtk.Container+ContainerChild
- this.GtkScrolledWindow = new Gtk.ScrolledWindow();
- this.GtkScrolledWindow.Name = "GtkScrolledWindow";
- this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
- // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
- this.treeview = new Gtk.TreeView();
- this.treeview.CanFocus = true;
- this.treeview.Name = "treeview";
- this.GtkScrolledWindow.Add(this.treeview);
- this.GtkAlignment.Add(this.GtkScrolledWindow);
- this.frame1.Add(this.GtkAlignment);
- this.GtkLabel = new Gtk.Label();
- this.GtkLabel.Name = "GtkLabel";
- this.GtkLabel.LabelProp = Mono.Unix.Catalog.GetString("<b>Processes:</b>");
- this.GtkLabel.UseMarkup = true;
- this.frame1.LabelWidget = this.GtkLabel;
- w1.Add(this.frame1);
- Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(w1[this.frame1]));
- w5.Position = 0;
- w5.Padding = ((uint)(3));
- // Internal child Mono.CSharp.Gui.ProcessSelector.ActionArea
- Gtk.HButtonBox w6 = this.ActionArea;
- w6.Name = "dialog1_ActionArea";
- w6.Spacing = 6;
- w6.BorderWidth = ((uint)(5));
- w6.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
- // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonCancel = new Gtk.Button();
- this.buttonCancel.CanDefault = true;
- this.buttonCancel.CanFocus = true;
- this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.UseStock = true;
- this.buttonCancel.UseUnderline = true;
- this.buttonCancel.Label = "gtk-cancel";
- this.AddActionWidget(this.buttonCancel, -6);
- Gtk.ButtonBox.ButtonBoxChild w7 = ((Gtk.ButtonBox.ButtonBoxChild)(w6[this.buttonCancel]));
- w7.Expand = false;
- w7.Fill = false;
- // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonOk = new Gtk.Button();
- this.buttonOk.CanDefault = true;
- this.buttonOk.CanFocus = true;
- this.buttonOk.Name = "buttonOk";
- this.buttonOk.UseUnderline = true;
- this.buttonOk.Label = Mono.Unix.Catalog.GetString("_Attach");
- this.AddActionWidget(this.buttonOk, -5);
- Gtk.ButtonBox.ButtonBoxChild w8 = ((Gtk.ButtonBox.ButtonBoxChild)(w6[this.buttonOk]));
- w8.Position = 1;
- w8.Expand = false;
- w8.Fill = false;
- if ((this.Child != null)) {
- this.Child.ShowAll();
- }
- this.DefaultWidth = 400;
- this.DefaultHeight = 300;
- this.Show();
- this.Close += new System.EventHandler(this.OnClose);
- }
- }
+// This file has been generated by the GUI designer. Do not modify.
+namespace Mono.CSharp.Gui
+{
+ public partial class ProcessSelector
+ {
+ private global::Gtk.Frame frame1;
+ private global::Gtk.Alignment GtkAlignment;
+ private global::Gtk.ScrolledWindow GtkScrolledWindow;
+ private global::Gtk.TreeView treeview;
+ private global::Gtk.Label GtkLabel;
+ private global::Gtk.Button buttonCancel;
+ private global::Gtk.Button buttonOk;
+
+ protected virtual void Build ()
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget Mono.CSharp.Gui.ProcessSelector
+ this.Name = "Mono.CSharp.Gui.ProcessSelector";
+ this.Title = global::Mono.Unix.Catalog.GetString ("Select Mono Process to Attach");
+ this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+ // Internal child Mono.CSharp.Gui.ProcessSelector.VBox
+ global::Gtk.VBox w1 = this.VBox;
+ w1.Name = "dialog1_VBox";
+ w1.BorderWidth = ((uint)(2));
+ // Container child dialog1_VBox.Gtk.Box+BoxChild
+ this.frame1 = new global::Gtk.Frame ();
+ this.frame1.Name = "frame1";
+ this.frame1.ShadowType = ((global::Gtk.ShadowType)(0));
+ this.frame1.BorderWidth = ((uint)(2));
+ // Container child frame1.Gtk.Container+ContainerChild
+ this.GtkAlignment = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+ this.GtkAlignment.Name = "GtkAlignment";
+ this.GtkAlignment.LeftPadding = ((uint)(12));
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
+ this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+ this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
+ // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+ this.treeview = new global::Gtk.TreeView ();
+ this.treeview.CanFocus = true;
+ this.treeview.Name = "treeview";
+ this.GtkScrolledWindow.Add (this.treeview);
+ this.GtkAlignment.Add (this.GtkScrolledWindow);
+ this.frame1.Add (this.GtkAlignment);
+ this.GtkLabel = new global::Gtk.Label ();
+ this.GtkLabel.Name = "GtkLabel";
+ this.GtkLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Processes:</b>");
+ this.GtkLabel.UseMarkup = true;
+ this.frame1.LabelWidget = this.GtkLabel;
+ w1.Add (this.frame1);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1 [this.frame1]));
+ w5.Position = 0;
+ w5.Padding = ((uint)(3));
+ // Internal child Mono.CSharp.Gui.ProcessSelector.ActionArea
+ global::Gtk.HButtonBox w6 = this.ActionArea;
+ w6.Name = "dialog1_ActionArea";
+ w6.Spacing = 6;
+ w6.BorderWidth = ((uint)(5));
+ w6.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+ this.buttonCancel = new global::Gtk.Button ();
+ this.buttonCancel.CanDefault = true;
+ this.buttonCancel.CanFocus = true;
+ this.buttonCancel.Name = "buttonCancel";
+ this.buttonCancel.UseStock = true;
+ this.buttonCancel.UseUnderline = true;
+ this.buttonCancel.Label = "gtk-cancel";
+ this.AddActionWidget (this.buttonCancel, -6);
+ global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6 [this.buttonCancel]));
+ w7.Expand = false;
+ w7.Fill = false;
+ // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+ this.buttonOk = new global::Gtk.Button ();
+ this.buttonOk.CanDefault = true;
+ this.buttonOk.CanFocus = true;
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.UseUnderline = true;
+ this.buttonOk.Label = global::Mono.Unix.Catalog.GetString ("_Attach");
+ this.AddActionWidget (this.buttonOk, -5);
+ global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6 [this.buttonOk]));
+ w8.Position = 1;
+ w8.Expand = false;
+ w8.Fill = false;
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ this.DefaultWidth = 400;
+ this.DefaultHeight = 300;
+ this.Show ();
+ this.Close += new global::System.EventHandler (this.OnClose);
+ }
+ }
}
diff --git a/gsharp/gtk-gui/generated.cs b/gsharp/gtk-gui/generated.cs
index 8b467a5..9ef3363 100644
--- a/gsharp/gtk-gui/generated.cs
+++ b/gsharp/gtk-gui/generated.cs
@@ -1,35 +1,29 @@
-// ------------------------------------------------------------------------------
-// <autogenerated>
-// This code was generated by a tool.
-//
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </autogenerated>
-// ------------------------------------------------------------------------------
-namespace Stetic {
-
-
- internal class Gui {
-
- private static bool initialized;
-
- internal static void Initialize(Gtk.Widget iconRenderer) {
- if ((Stetic.Gui.initialized == false)) {
- Stetic.Gui.initialized = true;
- }
- }
- }
-
- internal class ActionGroups {
-
- public static Gtk.ActionGroup GetActionGroup(System.Type type) {
- return Stetic.ActionGroups.GetActionGroup(type.FullName);
- }
-
- public static Gtk.ActionGroup GetActionGroup(string name) {
- return null;
- }
- }
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+ internal class Gui
+ {
+ private static bool initialized;
+
+ internal static void Initialize (Gtk.Widget iconRenderer)
+ {
+ if ((Stetic.Gui.initialized == false)) {
+ Stetic.Gui.initialized = true;
+ }
+ }
+ }
+
+ internal class ActionGroups
+ {
+ public static Gtk.ActionGroup GetActionGroup (System.Type type)
+ {
+ return Stetic.ActionGroups.GetActionGroup (type.FullName);
+ }
+
+ public static Gtk.ActionGroup GetActionGroup (string name)
+ {
+ return null;
+ }
+ }
}
diff --git a/gui-compare/CecilMetadata.cs b/gui-compare/CecilMetadata.cs
index 2387b5e..df43b5e 100644
--- a/gui-compare/CecilMetadata.cs
+++ b/gui-compare/CecilMetadata.cs
@@ -923,6 +923,7 @@ namespace GuiCompare {
MethodAttributes.Static |
MethodAttributes.Abstract |
MethodAttributes.HideBySig |
+// MethodAttributes.HasSecurity |
MethodAttributes.SpecialName);
public override string GetMemberAccess ()
{
@@ -1011,15 +1012,24 @@ namespace GuiCompare {
sb.Append ('(');
bool first_p = true;
foreach (ParameterDefinition p in method_def.Parameters) {
+ TypeReference paramType = p.ParameterType;
if (!first_p)
sb.Append (", ");
first_p = false;
if (p.IsIn)
sb.Append ("in ");
- else if (p.IsOut)
+ else if (paramType.IsByReference) {
+ if (beautify) {
+ sb.Append (p.IsOut ? "out " : "ref ");
+ paramType = paramType.GetElementType ();
+ } else if (p.IsOut) {
+ sb.Append ("out ");
+ }
+ } else if (p.IsOut) {
sb.Append ("out ");
+ }
sb.Append (beautify
- ? CecilUtils.PrettyType (p.ParameterType)
+ ? CecilUtils.PrettyType (paramType)
: CecilUtils.FormatTypeLikeCorCompare (p.ParameterType));
if (beautify) {
sb.Append (" ");
@@ -1179,55 +1189,213 @@ namespace GuiCompare {
public CecilAttribute (CustomAttribute ca)
: base (ca.Constructor.DeclaringType.FullName)
{
- var sb = new StringBuilder ("[" + ca.Constructor.DeclaringType.FullName);
- bool first = true;
-
- var cargs = ca.ConstructorArguments;
- if (cargs != null && cargs.Count > 0) {
- foreach (var argument in cargs) {
- if (first) {
- sb.Append (" (");
- first = false;
- } else
- sb.Append (", ");
+ Dictionary<string, object> attribute_mapping = CreateAttributeMapping (ca);
+
+ foreach (string name in attribute_mapping.Keys) {
+ if (name == "TypeId")
+ continue;
+
+ object o = attribute_mapping[name];
+ Properties.Add (name, o == null ? "null" : o.ToString ());
+ }
+ }
+
+ static Dictionary<string, object> CreateAttributeMapping (CustomAttribute attribute)
+ {
+ var mapping = new Dictionary<string, object> ();
+
+ PopulateMapping (mapping, attribute);
+
+ var constructor = attribute.Constructor.Resolve ();
+ if (constructor == null || constructor.Parameters.Count == 0)
+ return mapping;
+
+ PopulateMapping (mapping, constructor, attribute);
+
+ return mapping;
+ }
+
+ static void PopulateMapping (Dictionary<string, object> mapping, CustomAttribute attribute)
+ {
+ foreach (var named_argument in attribute.Properties) {
+ var name = named_argument.Name;
+ var arg = named_argument.Argument;
+
+ if (arg.Value is CustomAttributeArgument)
+ arg = (CustomAttributeArgument) arg.Value;
+
+ mapping.Add (name, GetArgumentValue (arg.Type, arg.Value));
+ }
+ }
- sb.Append (FormatValue (argument.Value));
+ static Dictionary<FieldReference, int> CreateArgumentFieldMapping (MethodDefinition constructor)
+ {
+ Dictionary<FieldReference, int> field_mapping = new Dictionary<FieldReference, int> ();
+
+ int? argument = null;
+
+ foreach (Instruction instruction in constructor.Body.Instructions) {
+ switch (instruction.OpCode.Code) {
+ case Code.Ldarg_1:
+ argument = 1;
+ break;
+ case Code.Ldarg_2:
+ argument = 2;
+ break;
+ case Code.Ldarg_3:
+ argument = 3;
+ break;
+ case Code.Ldarg:
+ case Code.Ldarg_S:
+ argument = ((ParameterDefinition) instruction.Operand).Index + 1;
+ break;
+
+ case Code.Stfld:
+ FieldReference field = (FieldReference) instruction.Operand;
+ if (field.DeclaringType.FullName != constructor.DeclaringType.FullName)
+ continue;
+
+ if (!argument.HasValue)
+ break;
+
+ if (!field_mapping.ContainsKey (field))
+ field_mapping.Add (field, (int) argument - 1);
+
+ argument = null;
+ break;
}
+ }
+
+ return field_mapping;
+ }
+
+ static Dictionary<PropertyDefinition, FieldReference> CreatePropertyFieldMapping (TypeDefinition type)
+ {
+ Dictionary<PropertyDefinition, FieldReference> property_mapping = new Dictionary<PropertyDefinition, FieldReference> ();
+
+ foreach (PropertyDefinition property in type.Properties) {
+ if (property.GetMethod == null)
+ continue;
+ if (!property.GetMethod.HasBody)
+ continue;
+
+ foreach (Instruction instruction in property.GetMethod.Body.Instructions) {
+ if (instruction.OpCode.Code != Code.Ldfld)
+ continue;
+
+ FieldReference field = (FieldReference) instruction.Operand;
+ if (field.DeclaringType.FullName != type.FullName)
+ continue;
+
+ property_mapping.Add (property, field);
+ break;
+ }
+ }
+
+ return property_mapping;
+ }
+
+ static void PopulateMapping (Dictionary<string, object> mapping, MethodDefinition constructor, CustomAttribute attribute)
+ {
+ if (!constructor.HasBody)
+ return;
+
+ if (constructor.DeclaringType.FullName == "System.Runtime.CompilerServices.DecimalConstantAttribute") {
+ var ca = attribute.ConstructorArguments;
+ var dca = constructor.Parameters[2].ParameterType == constructor.Module.TypeSystem.Int32 ?
+ new DecimalConstantAttribute ((byte) ca[0].Value, (byte) ca[1].Value, (int) ca[2].Value, (int) ca[3].Value, (int) ca[4].Value) :
+ new DecimalConstantAttribute ((byte) ca[0].Value, (byte) ca[1].Value, (uint) ca[2].Value, (uint) ca[3].Value, (uint) ca[4].Value);
+
+ mapping.Add ("Value", dca.Value);
+ return;
+ }
+
+ var field_mapping = CreateArgumentFieldMapping (constructor);
+ var property_mapping = CreatePropertyFieldMapping ((TypeDefinition) constructor.DeclaringType);
+
+ foreach (var pair in property_mapping) {
+ int argument;
+ if (!field_mapping.TryGetValue (pair.Value, out argument))
+ continue;
+
+ var ca_arg = attribute.ConstructorArguments[argument];
+ if (ca_arg.Value is CustomAttributeArgument)
+ ca_arg = (CustomAttributeArgument) ca_arg.Value;
+ mapping[pair.Key.Name] = GetArgumentValue (ca_arg.Type, ca_arg.Value);
}
+ }
- var properties = ca.Properties;
- if (properties != null && properties.Count > 0) {
- foreach (var namedArg in properties) {
- if (first) {
- sb.Append (" (");
- first = false;
- } else
- sb.Append (", ");
-
- sb.AppendFormat ("{0}={1}", namedArg.Name, FormatValue (namedArg.Argument.Value));
+ static object GetArgumentValue (TypeReference reference, object value)
+ {
+ var type = reference.Resolve ();
+ if (type == null)
+ return value;
+
+ if (type.IsEnum) {
+ if (IsFlaggedEnum (type))
+ return GetFlaggedEnumValue (type, value);
+
+ return GetEnumValue (type, value);
+ }
+
+ return value;
+ }
+
+ static bool IsFlaggedEnum (TypeDefinition type)
+ {
+ if (!type.IsEnum)
+ return false;
+
+ if (type.CustomAttributes.Count == 0)
+ return false;
+
+ foreach (CustomAttribute attribute in type.CustomAttributes)
+ if (attribute.Constructor.DeclaringType.FullName == "System.FlagsAttribute")
+ return true;
+
+ return false;
+ }
+
+ static object GetFlaggedEnumValue (TypeDefinition type, object value)
+ {
+ long flags = Convert.ToInt64 (value);
+ var signature = new StringBuilder ();
+
+ for (int i = type.Fields.Count - 1; i >= 0; i--) {
+ FieldDefinition field = type.Fields[i];
+
+ if (!field.HasConstant)
+ continue;
+
+ long flag = Convert.ToInt64 (field.Constant);
+
+ if (flag == 0)
+ continue;
+
+ if ((flags & flag) == flag) {
+ if (signature.Length != 0)
+ signature.Append (", ");
+
+ signature.Append (field.Name);
+ flags -= flag;
}
}
-
- if (!first)
- sb.Append (')');
- sb.Append ("]");
-
- ExtraInfo = sb.ToString ();
+
+ return signature.ToString ();
}
- string FormatValue (object o)
+ static object GetEnumValue (TypeDefinition type, object value)
{
- if (o == null)
- return "null";
+ foreach (FieldDefinition field in type.Fields) {
+ if (!field.HasConstant)
+ continue;
- if (o is string)
- return "\"" + o + "\"";
+ if (Comparer.Default.Compare (field.Constant, value) == 0)
+ return field.Name;
+ }
- if (o is bool)
- return o.ToString ().ToLowerInvariant ();
-
- return o.ToString ();
+ return value;
}
}
diff --git a/gui-compare/CompareContext.cs b/gui-compare/CompareContext.cs
index 8a3b932..b171ef8 100644
--- a/gui-compare/CompareContext.cs
+++ b/gui-compare/CompareContext.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
using System.Threading;
+using System.Linq;
namespace GuiCompare {
@@ -153,7 +154,7 @@ namespace GuiCompare {
void CompareBaseTypes (ComparisonNode parent, ICompHasBaseType reference_type, ICompHasBaseType target_type)
{
if (reference_type.GetBaseType() != target_type.GetBaseType()) {
- parent.AddError (String.Format ("reference has base class of {0}, target has base class of {1}",
+ parent.AddError (String.Format ("Expected base class of {0} but found {1}",
reference_type.GetBaseType(),
target_type.GetBaseType()));
}
@@ -162,7 +163,7 @@ namespace GuiCompare {
string ref_mod = (reference_type.IsAbstract && reference_type.IsSealed) ? "static" : "abstract";
string tar_mod = (target_type.IsAbstract && target_type.IsSealed) ? "static" : "abstract";
- parent.AddError (String.Format ("reference is {0} {2}, target is {1} {3}",
+ parent.AddError (String.Format ("reference is {0} {2}, is {1} {3}",
reference_type.IsAbstract ? null : "not", target_type.IsAbstract ? null : "not",
ref_mod, tar_mod));
} else if (reference_type.IsSealed != target_type.IsSealed) {
@@ -211,19 +212,15 @@ namespace GuiCompare {
{
var r = reference.GetTypeParameters ();
var t = target.GetTypeParameters ();
- if (r == null && t == null)
+ if (r == null && t == null || (r == null && t != null) || (r != null && t == null))
return;
- if (r.Count != t.Count) {
- throw new NotImplementedException (string.Format ("Should never happen with valid data ({0} != {1})", r.Count, t.Count));
- }
-
for (int i = 0; i < r.Count; ++i) {
var r_i = r [i];
var t_i = t [i];
if (r_i.GenericAttributes != t_i.GenericAttributes) {
- parent.AddError (string.Format ("reference type parameter {2} has {0} generic attributes, target type parameter {3} has {1} generic attributes",
+ parent.AddError (string.Format ("Expected type parameter {2} with {0} generic attributes but found type parameter {3} with {1} generic attributes",
CompGenericParameter.GetGenericAttributeDesc (r_i.GenericAttributes),
CompGenericParameter.GetGenericAttributeDesc (t_i.GenericAttributes),
r_i.Name,
@@ -324,13 +321,42 @@ namespace GuiCompare {
List<CompNamed> reference_attrs = reference_container.GetAttributes ();
List<CompNamed> target_attrs = target_container.GetAttributes ();
-
- reference_attrs.Sort (CompNamed.Compare);
- target_attrs.Sort (CompNamed.Compare);
+
+ Comparison<CompNamed> comp = (x, y) => {
+ var r = CompNamed.Compare (x, y);
+ if (r != 0)
+ return r;
+
+ var xa = ((CompAttribute)x).Properties.Values.ToList ();
+ var ya = ((CompAttribute)y).Properties.Values.ToList ();
+
+ for (int i = 0; i < Math.Min (xa.Count, ya.Count); ++i) {
+ r = xa[i].CompareTo (ya[i]);
+ if (r != 0)
+ return r;
+ }
+
+ return 0;
+ };
+
+ reference_attrs.Sort (comp);
+ target_attrs.Sort (comp);
while (m < reference_attrs.Count || a < target_attrs.Count) {
if (m == reference_attrs.Count) {
- AddExtra (parent, target_attrs[a]);
+
+ switch (target_attrs[a].Name) {
+ case "System.Diagnostics.DebuggerDisplayAttribute":
+ case "System.Runtime.CompilerServices.AsyncStateMachineAttribute":
+ case "System.Runtime.CompilerServices.IteratorStateMachineAttribute":
+ case "System.Diagnostics.DebuggerBrowsableAttribute":
+ // Ignore extra attributes in Mono source code
+ break;
+ default:
+ AddExtra (parent, target_attrs[a]);
+ break;
+ }
+
a++;
continue;
}
@@ -345,10 +371,9 @@ namespace GuiCompare {
if (c == 0) {
/* the names match, further investigation is required */
-// Console.WriteLine ("method {0} is in both, doing more comparisons", reference_list[m].Name);
ComparisonNode comparison = target_attrs[a].GetComparisonNode();
parent.AddChild (comparison);
- //CompareParameters (comparison, reference_list[m], target_namespace [target_list[a]]);
+ CompareAttributeArguments (comparison, (CompAttribute)reference_attrs[m], (CompAttribute)target_attrs[a]);
m++;
a++;
}
@@ -364,27 +389,120 @@ namespace GuiCompare {
}
}
}
+
+ void CompareAttributeArguments (ComparisonNode parent, CompAttribute referenceAttribute, CompAttribute actualAttribute)
+ {
+ // Ignore all parameter differences for some attributes
+ switch (referenceAttribute.Name) {
+ case "System.Diagnostics.DebuggerDisplayAttribute":
+ case "System.Diagnostics.DebuggerTypeProxyAttribute":
+ case "System.Runtime.CompilerServices.CompilationRelaxationsAttribute":
+ case "System.Reflection.AssemblyFileVersionAttribute":
+ case "System.Reflection.AssemblyCompanyAttribute":
+ case "System.Reflection.AssemblyCopyrightAttribute":
+ case "System.Reflection.AssemblyProductAttribute":
+ case "System.Reflection.AssemblyTrademarkAttribute":
+ case "System.Reflection.AssemblyInformationalVersionAttribute":
+ case "System.Reflection.AssemblyKeyFileAttribute":
+
+ // Don't care about these for now
+ case "System.ComponentModel.EditorAttribute":
+ case "System.ComponentModel.DesignerAttribute":
+ return;
+ }
+
+ foreach (var entry in referenceAttribute.Properties) {
+ if (!actualAttribute.Properties.ContainsKey (entry.Key)) {
+
+ //
+ // Ignore missing value difference for default values
+ //
+ switch (referenceAttribute.Name) {
+ case "System.AttributeUsageAttribute":
+ // AllowMultiple defaults to false
+ if (entry.Key == "AllowMultiple" && entry.Value == "False")
+ continue;
+ // Inherited defaults to true
+ if (entry.Key == "Inherited" && entry.Value == "True")
+ continue;
+ break;
+ case "System.ObsoleteAttribute":
+ if (entry.Key == "IsError" && entry.Value == "False")
+ continue;
+
+ if (entry.Key == "Message")
+ continue;
+
+ break;
+ }
+
+ parent.AddError (String.Format ("Property `{0}' value is not set. Expected value: {1}", entry.Key, entry.Value));
+ parent.Status = ComparisonStatus.Error;
+ continue;
+ }
+
+ var target_value = actualAttribute.Properties[entry.Key];
+
+ switch (referenceAttribute.Name) {
+ case "System.Runtime.CompilerServices.TypeForwardedFromAttribute":
+ if (entry.Key == "AssemblyFullName")
+ target_value = target_value.Replace ("neutral", "Neutral");
+ break;
+ case "System.Runtime.InteropServices.GuidAttribute":
+ if (entry.Key == "Value")
+ target_value = target_value.ToUpperInvariant ();
+ break;
+ case "System.ObsoleteAttribute":
+ if (entry.Key == "Message")
+ continue;
+
+ break;
+ }
+
+ if (target_value != entry.Value) {
+ parent.AddError (String.Format ("Expected value `{0}' for attribute property `{1}' but found `{2}'", entry.Value, entry.Key, target_value));
+ parent.Status = ComparisonStatus.Error;
+ }
+ }
+
+
+ if (referenceAttribute.Properties.Count != actualAttribute.Properties.Count) {
+ foreach (var entry in actualAttribute.Properties) {
+ if (!referenceAttribute.Properties.ContainsKey (entry.Key)) {
+ parent.AddError (String.Format ("Property `{0}' should not be set", entry.Key));
+ parent.Status = ComparisonStatus.Error;
+ break;
+ }
+ }
+ }
+
+
+ return;
+ }
void CompareMembers (ComparisonNode parent,
ICompMemberContainer reference_container, ICompMemberContainer target_container)
{
+ bool is_sealed = reference_container.IsSealed;
+
CompareMemberLists (parent,
- reference_container.GetInterfaces(), target_container.GetInterfaces());
+ reference_container.GetInterfaces(), target_container.GetInterfaces(), is_sealed);
CompareMemberLists (parent,
- reference_container.GetConstructors(), target_container.GetConstructors());
+ reference_container.GetConstructors(), target_container.GetConstructors(), is_sealed);
CompareMemberLists (parent,
- reference_container.GetMethods(), target_container.GetMethods());
+ reference_container.GetMethods(), target_container.GetMethods(), is_sealed);
CompareMemberLists (parent,
- reference_container.GetProperties(), target_container.GetProperties());
+ reference_container.GetProperties(), target_container.GetProperties(), is_sealed);
CompareMemberLists (parent,
- reference_container.GetFields(), target_container.GetFields());
+ reference_container.GetFields(), target_container.GetFields(), is_sealed);
CompareMemberLists (parent,
- reference_container.GetEvents(), target_container.GetEvents());
+ reference_container.GetEvents(), target_container.GetEvents(), is_sealed);
}
void CompareMemberLists (ComparisonNode parent,
List<CompNamed> reference_list,
- List<CompNamed> target_list)
+ List<CompNamed> target_list,
+ bool isSealed)
{
int m = 0, a = 0;
@@ -427,9 +545,9 @@ namespace GuiCompare {
// Try to give some hints to the developer, best we can do with
// strings.
string extra_msg = "";
- if (reference_access.IndexOf ("Public, Final, Virtual, HideBySig") != -1 &&
+ if (reference_access.IndexOf ("Private, Final, Virtual, HideBySig") != -1 &&
target_access.IndexOf ("Public, HideBySig") != -1){
- extra_msg = "\n\t\t<b>Hint:</b> reference uses an implicit interface implementation, target doesn't";
+ extra_msg = "\n\t\t<b>Hint:</b> reference uses an explicit interface implementation, target doesn't";
}
comparison.AddError (String.Format ("reference access is '<i>{0}</i>', target access is '<i>{1}</i>'{2}",
@@ -447,13 +565,53 @@ namespace GuiCompare {
CompareTypeParameters (comparison, r_method, t_method);
CompareParameters (comparison, r_method, t_method);
+ } else if (reference_list[m] is CompProperty) {
+ var m1 = ((CompProperty) reference_list[m]).GetMethods ();
+ var m2 = ((CompProperty) target_list[a]).GetMethods ();
+ if (m1.Count != m2.Count) {
+ comparison.AddError (String.Format ("Expected {0} accessors but found {1}", m1.Count, m2.Count));
+ comparison.Status = ComparisonStatus.Error;
+ } else {
+ for (int i = 0; i < m1.Count; ++i) {
+ string reference_access = ((CompMember) m1[i]).GetMemberAccess();
+ string target_access = ((CompMember) m2[i]).GetMemberAccess();
+ if (reference_access != target_access) {
+ // Try to give some hints to the developer, best we can do with
+ // strings.
+ string extra_msg = "";
+ if (reference_access.IndexOf ("Private, Final, Virtual, HideBySig") != -1 &&
+ target_access.IndexOf ("Public, HideBySig") != -1){
+ extra_msg = "\n\t\t<b>Hint:</b> reference uses an explicit interface implementation, target doesn't";
+ }
+
+ comparison.AddError (String.Format ("reference access is '<i>{0}</i>', target access is '<i>{1}</i>'{2}",
+ reference_access, target_access, extra_msg));
+ comparison.Status = ComparisonStatus.Error;
+ break;
+ }
+ }
+
+ if (m1[0].Name[0] == m2[0].Name[0]) {
+ CompareAttributes (comparison, (ICompAttributeContainer)m1[0], (ICompAttributeContainer)m2[0]);
+ if (m1.Count > 1)
+ CompareAttributes (comparison, (ICompAttributeContainer)m1[1], (ICompAttributeContainer)m2[1]);
+ } else {
+ CompareAttributes (comparison, (ICompAttributeContainer)m1[0], (ICompAttributeContainer)m2[1]);
+ if (m1.Count > 1)
+ CompareAttributes (comparison, (ICompAttributeContainer)m1[1], (ICompAttributeContainer)m2[0]);
+ }
+ }
+
+ // Compare indexer parameters
+ if (m1.Count == m2.Count)
+ CompareParameters (comparison, (ICompParameters) m1[0], (ICompParameters) m2[0]);
}
if (reference_list[m] is CompField) {
var v_ref = ((CompField)reference_list[m]).GetLiteralValue();
var v_tar = ((CompField)target_list[a]).GetLiteralValue();
if (v_ref != v_tar) {
- comparison.AddError (String.Format ("reference field has value {0}, target field has value {1}", v_ref, v_tar));
+ comparison.AddError (String.Format ("Expected field value {0} but found value {1}", v_ref, v_tar));
comparison.Status = ComparisonStatus.Error;
}
}
@@ -476,13 +634,23 @@ namespace GuiCompare {
a++;
}
else if (c < 0) {
- /* reference name is before target name, reference name is missing from target */
- AddMissing (parent, reference_list[m]);
+ if (isSealed && reference_list[m].Name.Contains ("~")) {
+ // Ignore finalizer differences in sealed classes
+ } else {
+ /* reference name is before target name, reference name is missing from target */
+ AddMissing (parent, reference_list[m]);
+ }
+
m++;
}
else {
- /* reference name is after target name, target name is extra */
- AddExtra (parent, target_list[a]);
+ if (isSealed && target_list[a].Name.Contains ("~")) {
+ // Ignore finalizer differences in sealed classes
+ } else {
+ /* reference name is after target name, target name is extra */
+ AddExtra (parent, target_list[a]);
+ }
+
a++;
}
}
diff --git a/gui-compare/InfoManager.cs b/gui-compare/InfoManager.cs
index 1f8199d..246b2cd 100644
--- a/gui-compare/InfoManager.cs
+++ b/gui-compare/InfoManager.cs
@@ -205,6 +205,7 @@ namespace GuiCompare
"System.AddIn",
"System.AddIn.Contract",
"System.Configuration",
+ "System.ComponentModel.DataAnnotations",
"System.Core",
// "System.Configuration.Install",
"System.Data",
@@ -364,12 +365,132 @@ namespace GuiCompare
"WindowsBase",
// "XamlBuildTask"
};
-
+
+ string [] api_4_5 = {
+ "mscorlib",
+
+ "System.Activities",
+ "System.Activities.Core.Presentation",
+ "System.Activities.DurableInstancing",
+ "System.Activities.Design",
+ "System.AddIn.Contract",
+ "System.AddIn",
+ "System.ComponentModel.Composition",
+ "System.ComponentModel.DataAnnotations",
+ "System.configuration",
+ // "System.Configuration.Install",
+ "System.Core",
+ "System.Data.DataSetExtensions",
+ "System.Data",
+ "System.Data.Entity.Design",
+ "System.Data.Entity",
+ "System.Data.Linq",
+ "System.Data.OracleClient",
+ "System.Data.Services.Client",
+ "System.Data.Services.Design",
+ "System.Data.Services",
+ "System.Data.SqlXml",
+ "System.Deployment",
+ "System.Design",
+ "System.Device",
+ // "System.DirectoryServices.AccountManagement",
+ "System.DirectoryServices",
+ // "System.DirectoryServices.Protocols",
+ "System",
+ "System.Drawing.Design",
+ "System.Drawing",
+ "System.Dynamic",
+ "System.EnterpriseServices",
+ "System.EnterpriseServices.Thunk",
+ "System.EnterpriseServices.Wrapper",
+ "System.IdentityModel",
+ "System.IdentityModel.Selectors",
+ "System.IO.Log",
+ "System.IO.Compression",
+ "System.IO.Compression.FileSystem",
+ "System.Management",
+ // "System.Management.Instrumentation",
+ "System.Messaging",
+ "System.Net",
+ "System.Net.Http",
+ "System.Net.Http.WebRequest",
+ "System.Numerics",
+ "System.Printing",
+ "System.Runtime.Caching",
+ "System.Runtime.Remoting",
+ "System.Runtime.Serialization",
+ "System.Runtime.Serialization.Formatters.Soap",
+ "System.Security",
+ "System.ServiceModel.Activation",
+ "System.ServiceModel.Activities",
+ "System.ServiceModel.Channels",
+ "System.ServiceModel.Discovery",
+ "System.ServiceModel",
+ "System.ServiceModel.Routing",
+ "System.ServiceModel.Web",
+ "System.ServiceProcess",
+ "System.Speech",
+ "System.Threading.Tasks.Dataflow",
+ "System.Transactions",
+ "System.Web.Abstractions",
+ "System.Web.ApplicationServices",
+ "System.Web.DataVisualization.Design",
+ "System.Web.DataVisualization",
+ "System.Web",
+ "System.Web.DynamicData.Design",
+ "System.Web.DynamicData",
+ "System.Web.Entity.Design",
+ "System.Web.Entity",
+ // "System.Web.Extensions.Design",
+ "System.Web.Extensions",
+ // "System.Web.Mobile",
+ // "System.Web.RegularExpressions",
+ "System.Web.Routing",
+ "System.Web.Services",
+ "System.Windows.Forms.DataVisualization.Design",
+ "System.Windows.Forms.DataVisualization",
+ "System.Windows.Forms",
+ "System.Windows.Presentation",
+ "System.Workflow.Activities",
+ "System.Workflow.ComponentModel",
+ "System.Workflow.Runtime",
+ "System.WorkflowServices",
+ "System.Xaml",
+ "System.Xaml.Hosting",
+ "System.Xml",
+ "System.Xml.Linq",
+
+ "Microsoft.Build.Conversion.v4.0",
+ "Microsoft.Build",
+ "Microsoft.Build.Engine",
+ "Microsoft.Build.Framework",
+ "Microsoft.Build.Tasks.v4.0",
+ "Microsoft.Build.Utilities.v4.0",
+ "Microsoft.CSharp",
+ "Microsoft.JScript",
+ "Microsoft.VisualBasic.Compatibility.Data",
+ "Microsoft.VisualBasic.Compatibility",
+ "Microsoft.VisualBasic",
+
+ "PresentationBuildTasks",
+ "PresentationCore",
+ "PresentationFramework.Aero",
+ "PresentationFramework.Classic",
+ "PresentationFramework",
+ "PresentationFramework.Luna",
+ "PresentationFramework.Royale",
+ "PresentationUI",
+ "ReachFramework",
+
+ "WindowsBase",
+ // "XamlBuildTask"
+ };
+
const string masterinfos_version = "2.8";
static Uri GetMasterInfoUri (string file)
{
- return new Uri (string.Format ("http://mono.ximian.com/masterinfos/{0}/{1}", masterinfos_version, file));
+ return new Uri (string.Format ("http://go-mono.com/masterinfos/{0}/{1}", masterinfos_version, file));
}
public static void Init ()
@@ -417,9 +538,13 @@ namespace GuiCompare
break;
case "4.0":
- u = GetMasterInfoUri ("masterinfos-4.0.tar.gz");
+ u = GetMasterInfoUri ("masterinfos-4.0.tar.gz");
break;
-
+
+ case "4.5":
+ u = GetMasterInfoUri ("masterinfos-4.5.tar.gz");
+ break;
+
case "SL2":
u = GetMasterInfoUri ("masterinfos-SL2.tar.gz");
break;
@@ -564,6 +689,8 @@ namespace GuiCompare
main.Title = String.Format ("{0} to {1}", assemblyfile, masterinfo);
});
});
+
+ main.SetComparedProfile (profile);
}
void Populate (Menu container, string caption, string pdir, string collection, string [] elements)
@@ -572,7 +699,7 @@ namespace GuiCompare
string MONO_GAC_PREFIX = Environment.GetEnvironmentVariable ("MONO_GAC_PREFIX");
string[] gac_prefixes = null;
- if (MONO_GAC_PREFIX != null)
+ if (!string.IsNullOrEmpty (MONO_GAC_PREFIX))
gac_prefixes = MONO_GAC_PREFIX.Split (':');
MenuItem item = new MenuItem (caption);
@@ -671,12 +798,17 @@ namespace GuiCompare
//
// Constructor
//
- public InfoManager (MainWindow main)
+ public InfoManager (MainWindow main, string profilePath)
{
this.main = main;
- string corlibdir = System.IO.Path.GetDirectoryName (typeof (int).Assembly.Location);
- monodir = System.IO.Path.GetFullPath (System.IO.Path.Combine (corlibdir, ".."));
+ if (profilePath == null) {
+ string corlibdir = System.IO.Path.GetDirectoryName (typeof (int).Assembly.Location);
+ monodir = System.IO.Path.GetFullPath (System.IO.Path.Combine (corlibdir, ".."));
+ } else {
+ monodir = profilePath;
+ }
+
moondir = System.IO.Path.Combine (monodir, @"../moonlight/plugin");
// Work around limitation in Stetic, there is no way
@@ -728,14 +860,15 @@ namespace GuiCompare
Populate (sub, "API 3.0 sp1", GetVersionPath ("2.0", "net_2_0"), "3.0", api_3_0);
Populate (sub, "API 3.5 sp1", GetVersionPath ("2.0", "net_2_0"), "3.5", api_3_5);
Populate (sub, "API 4.0", GetVersionPath ("4.0", "net_4_0"), "4.0", api_4_0);
+ Populate (sub, "API 4.5", GetVersionPath ("4.5", "net_4_5"), "4.5", api_4_5);
// Populate (sub, "Silverlight 2.0", GetVersionPath ("2.1", "net_2_1"), "SL2", api_sl2);
// Populate (sub, "Silverlight 3.0", GetVersionPath ("2.1", "net_2_1"), "SL3", api_sl2);
Populate (sub, "Silverlight 4.0", GetVersionPath ("2.1", "net_2_1"), "SL4", api_sl4);
}
- static string GetVersionPath (string version, string profile)
+ string GetVersionPath (string version, string profile)
{
- if (string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("MONO_PATH")))
+ if (!monodir.Contains (Path.Combine ("mcs", "class", "lib")))
return version;
// Developer's version pointing to /mcs/class/lib/<profile>/
diff --git a/gui-compare/Main.cs b/gui-compare/Main.cs
index 49c4617..e522501 100644
--- a/gui-compare/Main.cs
+++ b/gui-compare/Main.cs
@@ -36,7 +36,7 @@ namespace GuiCompare
{
Application.Init ();
- try {
+ try {
InfoManager.Init ();
} catch (Exception e) {
Dialog d = new Dialog ("Error", null, DialogFlags.Modal, new object [] {
@@ -46,7 +46,12 @@ namespace GuiCompare
d.Run ();
return;
}
- MainWindow win = new MainWindow ();
+
+ string profile_path = null;
+ if (args.Length != 0 && args[0].StartsWith ("--profile-path="))
+ profile_path = args[0].Substring (15);
+
+ MainWindow win = new MainWindow (profile_path);
win.Show ();
if (args.Length == 2 && File.Exists (args [0]) && File.Exists (args [1])){
win.ComparePaths (args [0], args [1]);
diff --git a/gui-compare/MainWindow.cs b/gui-compare/MainWindow.cs
index 0da25a4..2792d0d 100644
--- a/gui-compare/MainWindow.cs
+++ b/gui-compare/MainWindow.cs
@@ -38,6 +38,7 @@ public partial class MainWindow: Gtk.Window
InfoManager info_manager;
Func<CompAssembly> reference_loader, target_loader;
CompareContext context;
+ string active_profile;
static readonly Regex markupRegex = new Regex (@"<(?:[^""']+?|.+?(?:""|').*?(?:""|')?.*?)*?>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
static Gdk.Pixbuf classPixbuf, delegatePixbuf, enumPixbuf;
@@ -103,7 +104,7 @@ public partial class MainWindow: Gtk.Window
Gdk.Color.Parse ("#000000", ref black);
}
- public MainWindow () : base(Gtk.WindowType.Toplevel)
+ public MainWindow (string profilePath) : base(Gtk.WindowType.Toplevel)
{
Build ();
notebook1.Page = 1;
@@ -113,7 +114,7 @@ public partial class MainWindow: Gtk.Window
//
// Configure the GUI
//
- info_manager = new InfoManager (this);
+ info_manager = new InfoManager (this, profilePath);
treeStore = new Gtk.TreeStore (typeof (string), // Name
typeof (Gdk.Pixbuf), typeof (Gdk.Pixbuf), // TypeIcon, StatusIcon
@@ -245,7 +246,7 @@ public partial class MainWindow: Gtk.Window
string msdnUrl = n != null ? n.MSDNUrl : null;
if (!String.IsNullOrEmpty (msdnUrl))
- Status = msdnUrl;
+ Status = GetMSDNVersionedUrl (msdnUrl);
else
Status = String.Empty;
}
@@ -261,7 +262,7 @@ public partial class MainWindow: Gtk.Window
return;
System.Diagnostics.Process browser = new System.Diagnostics.Process ();
- browser.StartInfo.FileName = n.MSDNUrl;
+ browser.StartInfo.FileName = GetMSDNVersionedUrl (n.MSDNUrl);
browser.StartInfo.UseShellExecute = true;
browser.Start ();
};
@@ -361,6 +362,22 @@ public partial class MainWindow: Gtk.Window
tag.Underline = Pango.Underline.Single;
buffer.TagTable.Add (tag);
}
+
+ string GetMSDNVersionedUrl (string url)
+ {
+ switch (active_profile) {
+ case "2.0":
+ return url.Replace (".aspx", "(v=VS.80).aspx");
+ case "3.0":
+ return url.Replace (".aspx", "(v=VS.90).aspx");
+ case "4.0":
+ return url.Replace (".aspx", "(v=VS.100).aspx");
+ case "4.5":
+ return url.Replace (".aspx", "(v=VS.110).aspx");
+ default:
+ return url;
+ }
+ }
void InsertWithMarkup (TextBuffer buffer, ref TextIter iter, string text)
{
@@ -509,6 +526,11 @@ public partial class MainWindow: Gtk.Window
SetTarget (delegate { return new CecilAssembly (cd.TargetPath); });
}
+ public void SetComparedProfile (string profile)
+ {
+ active_profile = profile;
+ }
+
public void StartCompare (WaitCallback done)
{
AdditionalInfoWindow.Visible = false;
diff --git a/gui-compare/Makefile.am b/gui-compare/Makefile.am
index ef805eb..59829b2 100644
--- a/gui-compare/Makefile.am
+++ b/gui-compare/Makefile.am
@@ -56,4 +56,4 @@ assemblies = -r:System -r:System.Core -r:Mono.Posix -r:System.Xml
ress= $(foreach res,$(gui_compare_resources), $(addprefix -resource:,$(res)),$(notdir $(res)))
gui-compare.exe: $(gui_compare_sources) $(gui_compare_resources)
- $(GMCS) -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG -target:exe -out:gui-compare.exe $(gui_compare_sources) $(ress) $(packages) $(assemblies)
+ $(DMCS) -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG -target:exe -out:gui-compare.exe $(gui_compare_sources) $(ress) $(packages) $(assemblies)
diff --git a/gui-compare/Makefile.in b/gui-compare/Makefile.in
index 8247305..4074d1d 100644
--- a/gui-compare/Makefile.in
+++ b/gui-compare/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,20 +60,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = gui-compare
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(guicomparedir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-guicompareDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(guicomparedir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(guicompare_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -117,6 +161,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -130,9 +175,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -262,14 +310,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gui-compare/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu gui-compare/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gui-compare/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gui-compare/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -287,44 +335,65 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
gui-compare: $(top_builddir)/config.status $(srcdir)/gui-compare.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-guicompareDATA: $(guicompare_DATA)
@$(NORMAL_INSTALL)
- test -z "$(guicomparedir)" || $(MKDIR_P) "$(DESTDIR)$(guicomparedir)"
- @list='$(guicompare_DATA)'; for p in $$list; do \
+ @list='$(guicompare_DATA)'; test -n "$(guicomparedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(guicomparedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(guicomparedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(guicompareDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(guicomparedir)/$$f'"; \
- $(guicompareDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(guicomparedir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(guicomparedir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(guicomparedir)" || exit $$?; \
done
uninstall-guicompareDATA:
@$(NORMAL_UNINSTALL)
- @list='$(guicompare_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(guicomparedir)/$$f'"; \
- rm -f "$(DESTDIR)$(guicomparedir)/$$f"; \
- done
+ @list='$(guicompare_DATA)'; test -n "$(guicomparedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(guicomparedir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -348,13 +417,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -375,10 +448,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -386,6 +464,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -404,6 +483,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -412,18 +493,28 @@ install-data-am: install-guicompareDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -460,7 +551,8 @@ uninstall-am: uninstall-binSCRIPTS uninstall-guicompareDATA
gui-compare.exe: $(gui_compare_sources) $(gui_compare_resources)
- $(GMCS) -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG -target:exe -out:gui-compare.exe $(gui_compare_sources) $(ress) $(packages) $(assemblies)
+ $(DMCS) -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG -target:exe -out:gui-compare.exe $(gui_compare_sources) $(ress) $(packages) $(assemblies)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/gui-compare/MasterMetadata.cs b/gui-compare/MasterMetadata.cs
index f25468e..189b42c 100644
--- a/gui-compare/MasterMetadata.cs
+++ b/gui-compare/MasterMetadata.cs
@@ -841,6 +841,9 @@ namespace GuiCompare {
if (props.Count == 0)
return;
+ foreach (var entry in props)
+ Properties.Add (entry.Key, entry.Value);
+
if (name == "System.Runtime.CompilerServices.TypeForwardedToAttribute") {
string dest;
if (props.TryGetValue ("Destination", out dest) && !String.IsNullOrEmpty (dest))
diff --git a/gui-compare/Masterinfo.cs b/gui-compare/Masterinfo.cs
index b91f99b..bc13a63 100644
--- a/gui-compare/Masterinfo.cs
+++ b/gui-compare/Masterinfo.cs
@@ -205,8 +205,13 @@ namespace GuiCompare {
string name = n.Attributes ["name"].Value;
if (CheckIfAdd (name, n)) {
string key = GetNodeKey (name, n);
- //keys.Add (key, name);
- keys [key] = name;
+ if (keys.Contains (key)) {
+ if ((string) keys[key] != name)
+ throw new NotImplementedException ("Attribute with same name but diffent value");
+ } else {
+ keys.Add (key, name);
+ }
+
LoadExtraData (key, n);
}
}
@@ -532,24 +537,10 @@ namespace GuiCompare {
public class XMLAttributeProperties: XMLNameGroup
{
- static Dictionary <string, string> ignored_properties;
SortedDictionary <string, string> properties;
static XMLAttributeProperties ()
{
-
- ignored_properties = new Dictionary <string, string> ();
- ignored_properties.Add ("System.Reflection.AssemblyKeyFileAttribute", "KeyFile");
- ignored_properties.Add ("System.Reflection.AssemblyCompanyAttribute", "Company");
- ignored_properties.Add ("System.Reflection.AssemblyConfigurationAttribute", "Configuration");
- ignored_properties.Add ("System.Reflection.AssemblyCopyrightAttribute", "Copyright");
- ignored_properties.Add ("System.Reflection.AssemblyProductAttribute", "Product");
- ignored_properties.Add ("System.Reflection.AssemblyTrademarkAttribute", "Trademark");
- ignored_properties.Add ("System.Reflection.AssemblyInformationalVersionAttribute", "InformationalVersion");
-
- ignored_properties.Add ("System.ObsoleteAttribute", "Message");
- ignored_properties.Add ("System.IO.IODescriptionAttribute", "Description");
- ignored_properties.Add ("System.Diagnostics.MonitoringDescriptionAttribute", "Description");
}
string attribute;
@@ -571,15 +562,9 @@ namespace GuiCompare {
if (node.ChildNodes == null)
return;
- string ignored;
-
- if (!ignored_properties.TryGetValue (attribute, out ignored))
- ignored = null;
foreach (XmlNode n in node.ChildNodes) {
string name = n.Attributes["name"].Value;
- if (ignored != null && ignored == name)
- continue;
if (n.Attributes["null"] != null) {
Properties.Add (name, null);
@@ -1045,9 +1030,11 @@ namespace GuiCompare {
public override string GetNodeKey (string name, XmlNode node)
{
- if (genericParameters != null)
- name = name + ":" + genericParameters.Count;
-
+ XmlNode genericNode = node.SelectSingleNode ("generic-parameters");
+ if (genericNode != null) {
+ name = name + "`" + genericNode.ChildNodes.Count;
+ }
+
// for explicit/implicit operators we need to include the return
// type in the key to allow matching; as a side-effect, differences
// in return types will be reported as extra/missing methods
diff --git a/gui-compare/Metadata.cs b/gui-compare/Metadata.cs
index f365f7c..a04f39e 100644
--- a/gui-compare/Metadata.cs
+++ b/gui-compare/Metadata.cs
@@ -69,6 +69,8 @@ namespace GuiCompare {
public interface ICompMemberContainer
{
+ bool IsSealed { get; }
+
List<CompNamed> GetInterfaces ();
List<CompNamed> GetConstructors();
List<CompNamed> GetMethods();
@@ -130,27 +132,33 @@ namespace GuiCompare {
public static int Compare (CompNamed x, CompNamed y)
{
- int res = string.Compare (x.Name, y.Name);
- if (res != 0)
- return res;
-
var x_g = x as CompMethod;
var y_g = y as CompMethod;
+
if (x_g == null || y_g == null)
- return res;
+ return string.Compare (x.Name, y.Name);
var x_tp = x_g.GetTypeParameters ();
+ if (x_tp != null && x_tp.Count == 0)
+ x_tp = null;
+
var y_tp = y_g.GetTypeParameters ();
+ if (y_tp != null && y_tp.Count == 0)
+ y_tp = null;
+
if (x_tp == null && y_tp != null)
return -1;
if (x_tp != null && y_tp == null)
return 1;
- if (x_tp == null && y_tp == null)
- return res;
-
- return x_tp.Count.CompareTo (y_tp.Count);
+ if (x_tp != null && y_tp != null) {
+ var res = x_tp.Count.CompareTo (y_tp.Count);
+ if (res != 0)
+ return res;
+ }
+
+ return string.Compare (x.Name, y.Name);
}
string displayName;
@@ -338,7 +346,10 @@ namespace GuiCompare {
public CompAttribute (string typename)
: base (typename, CompType.Attribute)
{
+ Properties = new SortedDictionary<string, string> ();
}
+
+ public IDictionary<string, string> Properties { get; private set; }
}
public abstract class CompGenericParameter : CompNamed, ICompAttributeContainer {
diff --git a/gui-compare/gtk-gui/GuiCompare.CustomCompare.cs b/gui-compare/gtk-gui/GuiCompare.CustomCompare.cs
index 7ca40c7..a027fb2 100644
--- a/gui-compare/gtk-gui/GuiCompare.CustomCompare.cs
+++ b/gui-compare/gtk-gui/GuiCompare.CustomCompare.cs
@@ -5,17 +5,27 @@ namespace GuiCompare
public partial class CustomCompare
{
private global::Gtk.HBox hbox1;
+
private global::Gtk.Frame frame1;
+
private global::Gtk.Alignment GtkAlignment2;
+
private global::guicompare.ProviderSelector reference;
+
private global::Gtk.Label GtkLabel4;
+
private global::Gtk.Frame frame2;
+
private global::Gtk.Alignment GtkAlignment3;
+
private global::guicompare.ProviderSelector target;
+
private global::Gtk.Label GtkLabel9;
+
private global::Gtk.Button buttonCancel;
+
private global::Gtk.Button buttonOk;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
@@ -40,7 +50,9 @@ namespace GuiCompare
this.GtkAlignment2.Name = "GtkAlignment2";
this.GtkAlignment2.LeftPadding = ((uint)(12));
// Container child GtkAlignment2.Gtk.Container+ContainerChild
- this.reference = null;
+ this.reference = new guicompare.ProviderSelector();
+ this.reference.Events = ((Gdk.EventMask)(256));
+ this.reference.Name = "reference";
this.GtkAlignment2.Add (this.reference);
this.frame1.Add (this.GtkAlignment2);
this.GtkLabel4 = new global::Gtk.Label ();
@@ -61,7 +73,9 @@ namespace GuiCompare
this.GtkAlignment3.Name = "GtkAlignment3";
this.GtkAlignment3.LeftPadding = ((uint)(12));
// Container child GtkAlignment3.Gtk.Container+ContainerChild
- this.target = null;
+ this.target = new guicompare.ProviderSelector();
+ this.target.Events = ((Gdk.EventMask)(256));
+ this.target.Name = "target";
this.GtkAlignment3.Add (this.target);
this.frame2.Add (this.GtkAlignment3);
this.GtkLabel9 = new global::Gtk.Label ();
diff --git a/gui-compare/gtk-gui/MainWindow.cs b/gui-compare/gtk-gui/MainWindow.cs
index 6e2d738..addb7cd 100644
--- a/gui-compare/gtk-gui/MainWindow.cs
+++ b/gui-compare/gtk-gui/MainWindow.cs
@@ -4,53 +4,99 @@
public partial class MainWindow
{
private global::Gtk.UIManager UIManager;
+
private global::Gtk.Action File;
+
private global::Gtk.Action quit;
+
private global::Gtk.Action Compare;
+
private global::Gtk.Action Custom;
+
private global::Gtk.Action a;
+
private global::Gtk.Action b;
+
private global::Gtk.Action View;
+
private global::Gtk.ToggleAction ShowMissing;
+
private global::Gtk.ToggleAction ShowExtra;
+
private global::Gtk.ToggleAction ShowPresent;
+
private global::Gtk.ToggleAction ShowErrors;
+
private global::Gtk.Action Refresh;
+
private global::Gtk.ToggleAction ShowTodo;
+
private global::Gtk.Action RecentComparisonsAction;
+
private global::Gtk.ToggleAction ShowNotImplemented;
+
private global::Gtk.Action ToggleRowExpansionAction;
+
private global::Gtk.VBox vbox1;
+
private global::Gtk.MenuBar menubar1;
+
private global::Gtk.Notebook notebook1;
+
private global::Gtk.ScrolledWindow GtkScrolledWindow;
+
private global::Gtk.TreeView tree;
+
private global::Gtk.Label label1;
+
private global::Gtk.Label label3;
+
private global::Gtk.Label label2;
+
private global::Gtk.ScrolledWindow AdditionalInfoWindow;
+
private global::Gtk.TextView AdditionalInfoText;
+
private global::Gtk.Expander expander1;
+
private global::Gtk.Table table1;
+
private global::Gtk.Label label4;
+
private global::Gtk.Label label5;
+
private global::Gtk.Label label6;
+
private global::Gtk.Label label7;
+
private global::Gtk.Label label8;
+
private global::Gtk.Label label9;
+
private global::Gtk.Image legendImageError;
+
private global::Gtk.Image legendImageExtra;
+
private global::Gtk.Image legendImageMissing;
+
private global::Gtk.Image legendImageNIEX;
+
private global::Gtk.Image legendImageOK;
+
private global::Gtk.Image legendImageTODO;
+
private global::Gtk.VSeparator vseparator1;
+
private global::Gtk.VSeparator vseparator2;
+
private global::Gtk.VSeparator vseparator3;
+
private global::Gtk.Label GtkLabel4;
+
private global::Gtk.Statusbar statusbar1;
+
private global::Gtk.ProgressBar progressbar1;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/gui-compare/gtk-gui/generated.cs b/gui-compare/gtk-gui/generated.cs
index 75935e2..71410df 100644
--- a/gui-compare/gtk-gui/generated.cs
+++ b/gui-compare/gtk-gui/generated.cs
@@ -5,7 +5,7 @@ namespace Stetic
internal class Gui
{
private static bool initialized;
-
+
internal static void Initialize (Gtk.Widget iconRenderer)
{
if ((Stetic.Gui.initialized == false)) {
@@ -13,12 +13,13 @@ namespace Stetic
}
}
}
-
+
internal class BinContainer
{
private Gtk.Widget child;
+
private Gtk.UIManager uimanager;
-
+
public static BinContainer Attach (Gtk.Bin bin)
{
BinContainer bc = new BinContainer ();
@@ -27,32 +28,32 @@ namespace Stetic
bin.Added += new Gtk.AddedHandler (bc.OnAdded);
return bc;
}
-
+
private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
{
if ((this.child != null)) {
args.Requisition = this.child.SizeRequest ();
}
}
-
+
private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
{
if ((this.child != null)) {
this.child.Allocation = args.Allocation;
}
}
-
+
private void OnAdded (object sender, Gtk.AddedArgs args)
{
this.child = args.Widget;
}
-
+
public void SetUiManager (Gtk.UIManager uim)
{
this.uimanager = uim;
this.child.Realized += new System.EventHandler (this.OnRealized);
}
-
+
private void OnRealized (object sender, System.EventArgs args)
{
if ((this.uimanager != null)) {
@@ -65,14 +66,14 @@ namespace Stetic
}
}
}
-
+
internal class ActionGroups
{
public static Gtk.ActionGroup GetActionGroup (System.Type type)
{
return Stetic.ActionGroups.GetActionGroup (type.FullName);
}
-
+
public static Gtk.ActionGroup GetActionGroup (string name)
{
return null;
diff --git a/gui-compare/gtk-gui/gui.stetic b/gui-compare/gtk-gui/gui.stetic
index ce143e5..da239dc 100644
--- a/gui-compare/gtk-gui/gui.stetic
+++ b/gui-compare/gtk-gui/gui.stetic
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<stetic-interface>
<configuration>
- <images-root-path>..</images-root-path>
- <target-gtk-version>2.10</target-gtk-version>
+ <images-root-path>../../gui-compare</images-root-path>
+ <target-gtk-version>2.12</target-gtk-version>
</configuration>
<import>
<widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
diff --git a/gui-compare/gtk-gui/guicompare.ProviderSelector.cs b/gui-compare/gtk-gui/guicompare.ProviderSelector.cs
index dbc910a..32b051f 100644
--- a/gui-compare/gtk-gui/guicompare.ProviderSelector.cs
+++ b/gui-compare/gtk-gui/guicompare.ProviderSelector.cs
@@ -5,12 +5,17 @@ namespace guicompare
public partial class ProviderSelector
{
private global::Gtk.Table table2;
+
private global::Gtk.FileChooserButton filechooserbutton1;
+
private global::Gtk.FileChooserButton filechooserbutton2;
+
private global::Gtk.Label label2;
+
private global::Gtk.RadioButton radiobutton1;
+
private global::Gtk.RadioButton radiobutton2;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/gui-compare/gui-compare.in b/gui-compare/gui-compare.in
index 456a9fa..aa39b8f 100644
--- a/gui-compare/gui-compare.in
+++ b/gui-compare/gui-compare.in
@@ -1,3 +1,5 @@
#!/bin/sh
+export DYLD_FALLBACK_LIBRARY_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/lib
+
exec mono $MONO_OPTIONS "@prefix@/lib/gui-compare/gui-compare.exe" "$@"
diff --git a/ilcontrast/Makefile.in b/ilcontrast/Makefile.in
index b8cb809..9abc6c6 100644
--- a/ilcontrast/Makefile.in
+++ b/ilcontrast/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,23 +60,46 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = ilcontrast
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(assemblydir)" \
- "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(pixmapdir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-assemblyDATA_INSTALL = $(INSTALL_DATA)
-desktopDATA_INSTALL = $(INSTALL_DATA)
-pixmapDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(assemblydir)" \
+ "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(pixmapdir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(assembly_DATA) $(desktop_DATA) $(pixmap_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -120,6 +162,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -133,9 +176,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -244,14 +290,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ilcontrast/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu ilcontrast/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ilcontrast/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu ilcontrast/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -269,78 +315,107 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
ilcontrast: $(top_builddir)/config.status $(srcdir)/ilcontrast.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-assemblyDATA: $(assembly_DATA)
@$(NORMAL_INSTALL)
- test -z "$(assemblydir)" || $(MKDIR_P) "$(DESTDIR)$(assemblydir)"
- @list='$(assembly_DATA)'; for p in $$list; do \
+ @list='$(assembly_DATA)'; test -n "$(assemblydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(assemblydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(assemblydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(assemblyDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(assemblydir)/$$f'"; \
- $(assemblyDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(assemblydir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(assemblydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(assemblydir)" || exit $$?; \
done
uninstall-assemblyDATA:
@$(NORMAL_UNINSTALL)
- @list='$(assembly_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(assemblydir)/$$f'"; \
- rm -f "$(DESTDIR)$(assemblydir)/$$f"; \
- done
+ @list='$(assembly_DATA)'; test -n "$(assemblydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(assemblydir)'; $(am__uninstall_files_from_dir)
install-desktopDATA: $(desktop_DATA)
@$(NORMAL_INSTALL)
- test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
- @list='$(desktop_DATA)'; for p in $$list; do \
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \
- $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
done
uninstall-desktopDATA:
@$(NORMAL_UNINSTALL)
- @list='$(desktop_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \
- rm -f "$(DESTDIR)$(desktopdir)/$$f"; \
- done
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
install-pixmapDATA: $(pixmap_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pixmapdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapdir)"
- @list='$(pixmap_DATA)'; for p in $$list; do \
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pixmapdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pixmapDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapdir)/$$f'"; \
- $(pixmapDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \
done
uninstall-pixmapDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pixmap_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pixmapdir)/$$f'"; \
- rm -f "$(DESTDIR)$(pixmapdir)/$$f"; \
- done
+ @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -364,13 +439,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -391,10 +470,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -402,6 +486,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -421,6 +506,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -430,18 +517,28 @@ install-data-am: install-assemblyDATA install-desktopDATA \
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -489,6 +586,7 @@ Global.cs: Global.cs.in
ilcontrast.desktop: ilcontrast.desktop.in
sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/install-sh b/install-sh
index a5897de..a9244eb 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=2011-01-19.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@ while test $# -ne 0; do
-s) stripcmd=$stripprog;;
-t) 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;;
@@ -186,6 +190,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
@@ -200,7 +208,11 @@ if test $# -eq 0; then
fi
if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
+ 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.
@@ -228,9 +240,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,12 +264,7 @@ 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.
@@ -385,7 +392,7 @@ do
case $dstdir in
/*) prefix='/';;
- -*) prefix='./';;
+ [-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
@@ -403,7 +410,7 @@ do
for d
do
- test -z "$d" && continue
+ test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
@@ -515,5 +522,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: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/minvoke/Makefile.in b/minvoke/Makefile.in
index eb65ec4..16d5ccc 100644
--- a/minvoke/Makefile.in
+++ b/minvoke/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,20 +60,45 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = minvoke
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(minvokedir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-SOURCES =
-DIST_SOURCES =
+CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-minvokeDATA_INSTALL = $(INSTALL_DATA)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(minvokedir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(minvoke_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -117,6 +161,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -130,9 +175,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -224,14 +272,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu minvoke/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu minvoke/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu minvoke/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu minvoke/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -249,44 +297,65 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
minvoke: $(top_builddir)/config.status $(srcdir)/minvoke.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
install-minvokeDATA: $(minvoke_DATA)
@$(NORMAL_INSTALL)
- test -z "$(minvokedir)" || $(MKDIR_P) "$(DESTDIR)$(minvokedir)"
- @list='$(minvoke_DATA)'; for p in $$list; do \
+ @list='$(minvoke_DATA)'; test -n "$(minvokedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(minvokedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(minvokedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(minvokeDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(minvokedir)/$$f'"; \
- $(minvokeDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(minvokedir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(minvokedir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(minvokedir)" || exit $$?; \
done
uninstall-minvokeDATA:
@$(NORMAL_UNINSTALL)
- @list='$(minvoke_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(minvokedir)/$$f'"; \
- rm -f "$(DESTDIR)$(minvokedir)/$$f"; \
- done
+ @list='$(minvoke_DATA)'; test -n "$(minvokedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(minvokedir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -310,13 +379,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -337,10 +410,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -348,6 +426,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -366,6 +445,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -374,18 +455,28 @@ install-data-am: install-minvokeDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -432,6 +523,7 @@ minvoke.exe: $(minvoke_sources);
test: minvoke.exe MapAssembly.dll RetargetAssembly.exe
mono minvoke.exe MapAssembly.dll RetargetAssembly.exe RetargetedAssembly.exe
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/missing b/missing
index 1c8ff70..86a8fc3 100755
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2006-05-10.23
+scriptversion=2012-01-06.13; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@ scriptversion=2006-05-10.23
# 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -86,9 +84,11 @@ Supported PROGRAM values:
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
Send bug reports to <bug-automake at gnu.org>."
exit $?
;;
@@ -106,23 +106,21 @@ Send bug reports to <bug-automake at gnu.org>."
esac
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
-# the program).
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
case $1 in
- lex|yacc)
+ lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
- tar)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
-
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
@@ -138,7 +136,7 @@ esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case $1 in
+case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -148,7 +146,7 @@ WARNING: \`$1' is $msg. You should only need it if
touch aclocal.m4
;;
- autoconf)
+ autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
@@ -157,7 +155,7 @@ WARNING: \`$1' is $msg. You should only need it if
touch configure
;;
- autoheader)
+ autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
@@ -187,7 +185,7 @@ WARNING: \`$1' is $msg. You should only need it if
while read f; do touch "$f"; done
;;
- autom4te)
+ autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
@@ -210,7 +208,7 @@ WARNING: \`$1' is needed, but is $msg.
fi
;;
- bison|yacc)
+ bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
@@ -218,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
- eval LASTARG="\${$#}"
+ eval LASTARG=\${$#}
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -240,7 +238,7 @@ WARNING: \`$1' $msg. You should only need it if
fi
;;
- lex|flex)
+ lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
@@ -248,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
- eval LASTARG="\${$#}"
+ eval LASTARG=\${$#}
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -263,7 +261,7 @@ WARNING: \`$1' is $msg. You should only need it if
fi
;;
- help2man)
+ help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
@@ -277,11 +275,11 @@ WARNING: \`$1' is $msg. You should only need it if
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
- exit 1
+ exit $?
fi
;;
- makeinfo)
+ makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -310,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if
touch $file
;;
- tar)
- shift
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case $firstarg in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case $firstarg in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
@@ -363,5 +326,6 @@ exit 0
# 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: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/mkinstalldirs b/mkinstalldirs
deleted file mode 100755
index ef7e16f..0000000
--- a/mkinstalldirs
+++ /dev/null
@@ -1,161 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2006-05-11.19
-
-# Original author: Noah Friedman <friedman at prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-nl='
-'
-IFS=" "" $nl"
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake at gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage"
- exit $?
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --version)
- echo "$0 $scriptversion"
- exit $?
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error. This is a problem when calling mkinstalldirs
-# from a parallel make. We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
- '')
- if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- test -d ./-p && rmdir ./-p
- test -d ./--version && rmdir ./--version
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
- test ! -d ./--version; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- else
- # Clean up after NextStep and OpenStep mkdir.
- for d in ./-m ./-p ./--version "./$dirmode";
- do
- test -d $d && rmdir $d
- done
- fi
- ;;
-esac
-
-for file
-do
- case $file in
- /*) pathcomp=/ ;;
- *) pathcomp= ;;
- esac
- oIFS=$IFS
- IFS=/
- set fnord $file
- shift
- IFS=$oIFS
-
- for d
- do
- test "x$d" = x && continue
-
- pathcomp=$pathcomp$d
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp=$pathcomp/
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/mono-tools.spec.in b/mono-tools.spec.in
new file mode 100644
index 0000000..51329d4
--- /dev/null
+++ b/mono-tools.spec.in
@@ -0,0 +1,102 @@
+Name: mono-tools
+Version: @VERSION@
+Release: 0
+License: GPL v2 only ; LGPL v2.0 only ; MIT License (or similar)
+BuildArch: noarch
+Url: http://go-mono.org/
+Source0: %{name}-%{version}.tar.bz2
+Summary: Collection of Tools and Utilities for Mono
+Group: Development/Tools/Other
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: mono-devel mono-nunit monodoc-core
+BuildRequires: update-desktop-files
+BuildRequires: webkit-sharp
+BuildRequires: glade-sharp2
+
+%description
+Mono Tools is a collection of development and testing programs and
+utilities for use with Mono.
+
+%files -f %{name}.lang
+%defattr(-, root, root)
+%_bindir/create-native-map
+%_bindir/emveepee
+%_bindir/gendarme
+%_bindir/gendarme-wizard
+%_bindir/gd2i
+%_bindir/gsharp
+%_bindir/gui-compare
+%_bindir/ilcontrast
+%_bindir/minvoke
+%_bindir/monodoc
+%_bindir/mperfmon
+%_bindir/mprof-decoder
+%_bindir/mprof-heap-viewer
+%_datadir/applications/gendarme-wizard.desktop
+%_datadir/applications/gsharp.desktop
+%_datadir/applications/ilcontrast.desktop
+%_datadir/applications/monodoc.desktop
+%_datadir/create-native-map
+%_datadir/icons/hicolor/*/apps/monodoc.png
+%_datadir/pixmaps/gendarme.svg
+%_datadir/pixmaps/ilcontrast.png
+%_datadir/pixmaps/monodoc.png
+%_datadir/pkgconfig/create-native-map.pc
+%_datadir/pkgconfig/gendarme-framework.pc
+%_mandir/man1/create-native-map*
+%_mandir/man1/gd2i*
+%_mandir/man1/gendarme*
+%_mandir/man1/mperfmon*
+%_mandir/man1/mprof-decoder*
+%_mandir/man1/mprof-heap-viewer*
+%_mandir/man5/gendarme*
+%_prefix/lib/create-native-map
+%_prefix/lib/gendarme
+%_prefix/lib/gsharp
+%_prefix/lib/gui-compare
+%_prefix/lib/ilcontrast
+%_prefix/lib/minvoke
+%_prefix/lib/mono-tools
+%_prefix/lib/monodoc/*.dll*
+%_prefix/lib/monodoc/*.exe*
+%_prefix/lib/monodoc/sources
+%_prefix/lib/mperfmon
+
+%package -n monodoc-http
+License: X11/MIT
+Summary: ASP.NET front-end for displaying Monodoc documentation
+Group: Development/Tools/Other
+
+%description -n monodoc-http
+Monodoc-http provides an ASP.NET front-end for displaying installed
+Monodoc documentation.
+
+%files -n monodoc-http
+%defattr(-, root, root)
+%_prefix/lib/monodoc/web
+
+%prep
+%setup -q
+
+%build
+./configure --prefix=%{_prefix} --libdir=%{_prefix}/lib --sysconfdir=%{_sysconfdir} --mandir=%{_mandir}
+
+%install
+make install DESTDIR=%{buildroot}
+%suse_update_desktop_file monodoc
+%suse_update_desktop_file ilcontrast
+%suse_update_desktop_file gendarme-wizard
+%suse_update_desktop_file gsharp
+# Move create-native-map stuff out of lib into share
+mkdir $RPM_BUILD_ROOT/%_prefix/share/create-native-map
+mv $RPM_BUILD_ROOT/%_prefix/lib/create-native-map/MapAttribute.cs $RPM_BUILD_ROOT/%_prefix/share/create-native-map
+mv $RPM_BUILD_ROOT/%_prefix/lib/pkgconfig $RPM_BUILD_ROOT/%_prefix/share
+%find_lang %{name}
+
+%clean
+rm -Rf %{buildroot}
+
+%post
+%{_bindir}/monodoc --make-index
+
+%changelog
diff --git a/mperfmon/Makefile.in b/mperfmon/Makefile.in
index 59e3aa0..5e025ce 100644
--- a/mperfmon/Makefile.in
+++ b/mperfmon/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +17,27 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -41,24 +60,49 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = mperfmon
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
"$(DESTDIR)$(mperfmondir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-mperfmonDATA_INSTALL = $(INSTALL_DATA)
DATA = $(mperfmon_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -121,6 +165,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -134,9 +179,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -239,14 +287,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mperfmon/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu mperfmon/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mperfmon/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu mperfmon/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -264,89 +312,108 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
mperfmon: $(top_builddir)/config.status $(srcdir)/mperfmon.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f $$d$$p; then \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
- else :; fi; \
- done
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_SCRIPTS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-install-man1: $(man1_MANS) $(man_MANS)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
install-mperfmonDATA: $(mperfmon_DATA)
@$(NORMAL_INSTALL)
- test -z "$(mperfmondir)" || $(MKDIR_P) "$(DESTDIR)$(mperfmondir)"
- @list='$(mperfmon_DATA)'; for p in $$list; do \
+ @list='$(mperfmon_DATA)'; test -n "$(mperfmondir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(mperfmondir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(mperfmondir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(mperfmonDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(mperfmondir)/$$f'"; \
- $(mperfmonDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(mperfmondir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mperfmondir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(mperfmondir)" || exit $$?; \
done
uninstall-mperfmonDATA:
@$(NORMAL_UNINSTALL)
- @list='$(mperfmon_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(mperfmondir)/$$f'"; \
- rm -f "$(DESTDIR)$(mperfmondir)/$$f"; \
- done
+ @list='$(mperfmon_DATA)'; test -n "$(mperfmondir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(mperfmondir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -355,6 +422,19 @@ CTAGS:
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -370,13 +450,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -397,10 +481,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -408,6 +497,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -426,6 +516,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -434,18 +526,28 @@ install-data-am: install-man install-mperfmonDATA
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am: install-binSCRIPTS
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man: install-man1
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -487,6 +589,7 @@ uninstall-man: uninstall-man1
mperfmon.exe: $(mperfmon_sources) $(mperfmon_resources)
$(GMCS) -noconfig -codepage:utf8 -warn:4 -optimize+ -debug -define:DEBUG -target:exe -out:mperfmon.exe $(mperfmon_sources) $(ress) $(packages) $(assemblies)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index ed48e7e..e6c32cb 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -35,6 +35,7 @@ subdir = po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = mkdir -p
CC = @CC@
GENCAT = @GENCAT@
@@ -78,7 +79,7 @@ INSTOBJEXT = @INSTOBJEXT@
$(MSGFMT) -o $@ $<
.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $<
.po.cat:
@@ -92,11 +93,14 @@ all-yes: $(CATALOGS)
all-no:
$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
- $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
+ $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \
+ --msgid-bugs-address='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general' \
--add-comments --keyword=_ --keyword=N_ \
--keyword=C_:1c,2 \
--keyword=NC_:1c,2 \
+ --keyword=g_dcgettext:2 \
--keyword=g_dngettext:2,3 \
+ --keyword=g_dpgettext2:2c,3 \
--flag=N_:1:pass-c-format \
--flag=C_:2:pass-c-format \
--flag=NC_:2:pass-c-format \
@@ -116,7 +120,7 @@ $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
--flag=g_snprintf:3:c-format \
--flag=g_scanner_error:2:c-format \
--flag=g_scanner_warn:2:c-format \
- --files-from=$(srcdir)/POTFILES.in \
+ $(POTFILES) \
&& test ! -f $(GETTEXT_PACKAGE).po \
|| ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
&& mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot )
@@ -126,8 +130,8 @@ install-exec:
install-data: install-data- at USE_NLS@
install-data-no: all
install-data-yes: all
- @mkdir_p@ $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
+ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
+ catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
case "$$cat" in \
@@ -136,7 +140,7 @@ install-data-yes: all
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
- @mkdir_p@ $$dir; \
+ $(MKINSTALLDIRS) $$dir; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
@@ -160,7 +164,7 @@ install-data-yes: all
fi; \
done
if test "$(PACKAGE)" = "glib"; then \
- @mkdir_p@ $(DESTDIR)$(gettextsrcdir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
@@ -203,7 +207,7 @@ maintainer-clean: distclean
rm -f $(GMOFILES)
distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
+dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
for file in $$dists; do \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
diff --git a/po/ca.gmo b/po/ca.gmo
index 2a86be6..94e51c3 100644
Binary files a/po/ca.gmo and b/po/ca.gmo differ
diff --git a/po/ca.po b/po/ca.po
index ce5bec5..7f6add7 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mono Tools\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"POT-Creation-Date: 2008-01-22 17:13-0500\n"
"PO-Revision-Date: 2004-05-28 19:18+0200\n"
"Last-Translator: Jordi Mas i Hernàndez <jordi at ximian.com>\n"
"Language-Team: Jordi Mas i Hernàndez <jordi at ximian.com>\n"
@@ -16,6 +16,245 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: gnunit/src/AssemblyStore.cs:304
+msgid "Already running some test(s)."
+msgstr "Ja s'estan executant alguns tests"
+
+#: gnunit/src/AssemblyStore.cs:587
+msgid "Warning: unexpected combination."
+msgstr "Avís: combinació no esperada."
+
+#: gnunit/src/AssemblyStore.cs:596
+#, csharp-format
+msgid "Don't know anything about {0}"
+msgstr "No sé res de {0}"
+
+#: gnunit/src/FileDialog.cs:26
+msgid "Select an assembly to load"
+msgstr "Seleccioneu un assembly per carregar"
+
+#: gnunit/src/nunit-gtk.glade:10
+msgid "Mono NUnit2 GUI"
+msgstr "Mono NUnit2 GUI"
+
+#: gnunit/src/nunit-gtk.glade:72
+msgid "_Recent assemblies"
+msgstr "Fitxers _recents"
+
+#: gnunit/src/nunit-gtk.glade:92
+msgid "_Clear recent"
+msgstr "_Buida recents"
+
+#: gnunit/src/nunit-gtk.glade:165
+msgid "Enable/disable by category"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:166
+msgid "_Categories"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:219
+msgid "Open assembly"
+msgstr "Obre un assembly"
+
+#: gnunit/src/nunit-gtk.glade:220
+msgid "Open"
+msgstr "Obre"
+
+#: gnunit/src/nunit-gtk.glade:234
+msgid "Save results to a XML file"
+msgstr "Desa els resultats a un fitxer XML"
+
+#: gnunit/src/nunit-gtk.glade:235
+msgid "Save As"
+msgstr "Anomena i desa"
+
+#: gnunit/src/nunit-gtk.glade:249
+msgid "Run selected test fixture(s)"
+msgstr "Executa els tests seleccionats"
+
+#: gnunit/src/nunit-gtk.glade:250 gnunit/src/nunit-gtk.glade:516
+msgid "Run"
+msgstr "Executa"
+
+#: gnunit/src/nunit-gtk.glade:265 docbrowser/browser.glade:1538
+#: docbrowser/browser.glade:1917 docbrowser/browser.glade:2208
+#: docbrowser/browser.glade:2557
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: gnunit/src/nunit-gtk.glade:266
+msgid "Stop"
+msgstr "Atura"
+
+#: gnunit/src/nunit-gtk.glade:280
+msgid "Exit program"
+msgstr "Surt del programa"
+
+#: gnunit/src/nunit-gtk.glade:281 docbrowser/browser.glade:138
+msgid "Quit"
+msgstr "Surt"
+
+#: gnunit/src/nunit-gtk.glade:390
+msgid "Test: "
+msgstr "Test: "
+
+#: gnunit/src/nunit-gtk.glade:588
+msgid "Errors and failures"
+msgstr "Errors i fallides"
+
+#: gnunit/src/nunit-gtk.glade:641
+msgid "Tests not run"
+msgstr "Tests no executats"
+
+#: gnunit/src/nunit-gtk.glade:699
+msgid "Standard error"
+msgstr "Sortida d'error"
+
+#: gnunit/src/nunit-gtk.glade:757
+msgid "Standard out"
+msgstr "Sortida estàndard"
+
+#: gnunit/src/nunit-gtk.glade:815 gnunit/src/main.cs:686
+msgid "Error"
+msgstr "Error"
+
+#: gnunit/src/nunit-gtk.glade:904
+msgid "label"
+msgstr "etiqueta"
+
+#: gnunit/src/nunit-gtk.glade:936 gnunit/src/main.cs:104
+msgid "Show details >>"
+msgstr "Mostra els detalls >>"
+
+#: gnunit/src/nunit-gtk.glade:1009
+msgid "Error details"
+msgstr "Detalls de l'error"
+
+#: gnunit/src/nunit-gtk.glade:1056
+msgid "File exists. Overwrite?"
+msgstr "El fitxer ja existeix. Voleu sobreescriure'l?"
+
+#: gnunit/src/nunit-gtk.glade:1084
+msgid "Don't save results"
+msgstr "No desis els resultats"
+
+#: gnunit/src/nunit-gtk.glade:1098
+msgid "Save results"
+msgstr "Desa els resultats"
+
+#: gnunit/src/main.cs:37
+#, csharp-format
+msgid "<b>File {0} exists.</b>"
+msgstr ""
+
+#: gnunit/src/main.cs:38
+msgid "Do you want to overwrite it?"
+msgstr "Voleu sobreescriure'l?"
+
+#: gnunit/src/main.cs:107
+msgid "Hide details <<"
+msgstr "Ocultar els detalls <<"
+
+#: gnunit/src/main.cs:200
+msgid "Uncategorized"
+msgstr ""
+
+#: gnunit/src/main.cs:408
+msgid "No assembly loaded."
+msgstr "No hi ha cap assembly carregat."
+
+#: gnunit/src/main.cs:434
+#, csharp-format
+msgid "Loading {0}..."
+msgstr "S'està carregant {0}..."
+
+#: gnunit/src/main.cs:546
+#, csharp-format
+msgid "Loading test {0} of {1}"
+msgstr "S'està carregant test {0} de {1}"
+
+#: gnunit/src/main.cs:557
+msgid "Error loading assembly"
+msgstr "Error carregant l'assembly"
+
+#: gnunit/src/main.cs:558
+#, csharp-format
+msgid "Error loading '{0}'"
+msgstr "Error carregant '{0}'"
+
+#: gnunit/src/main.cs:608
+msgid "translator_credits"
+msgstr ""
+
+#: gnunit/src/main.cs:630
+msgid "You have to select a test to run."
+msgstr "Heu d'escollir un test per executar"
+
+#: gnunit/src/main.cs:660
+msgid "No test results available"
+msgstr "No hi ha resultats dels tests disponibles"
+
+#: gnunit/src/main.cs:661
+msgid "You must run some tests in order to get results to save."
+msgstr "Heu d'exectuar alguns tests per obtenir resultats per desar"
+
+#: gnunit/src/main.cs:667
+msgid "Save results to..."
+msgstr "Desa els resultats com a..."
+
+#: gnunit/src/main.cs:676
+msgid "Results not saved."
+msgstr "No s'han desat els resultats"
+
+#: gnunit/src/main.cs:687
+msgid "There has been an error saving the results.\n"
+msgstr "Hi ha hagut un error desant els resultats\n"
+
+#: gnunit/src/main.cs:688
+msgid "Do you have correct permissions to write to that file?"
+msgstr "Teniu els permisos adequats per escriure en aquest fitxer?"
+
+#: gnunit/src/main.cs:696
+#, csharp-format
+msgid "Results saved to {0}"
+msgstr "Els resultats s'han desat a {0}"
+
+#: gnunit/src/main.cs:774
+#, fuzzy, csharp-format
+msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
+msgstr "Tests: {0} ignorats: {1} fallades: {2}"
+
+#: gnunit/src/main.cs:952
+msgid "Running tests..."
+msgstr "S'està executant els test..."
+
+#: gnunit/src/main.cs:995
+msgid "Cancelled on user request."
+msgstr "Cancel·lat per petició de l'usuari"
+
+#: gnunit/src/main.cs:1033
+#, csharp-format
+msgid "{0} tests loaded."
+msgstr "{0} tests carregats."
+
+#: gnunit/src/main.cs:1051
+#, csharp-format
+msgid "Elapsed time: {0}"
+msgstr "Temps transcorregut: {0}"
+
+#: gnunit/src/main.cs:1061
+msgid "Unhandled Exception"
+msgstr "Excepció no gestionada"
+
+#: gnunit/src/main.cs:1061
+msgid "There has been an unhandled exception.\n"
+msgstr "Ha succeït una excepció no gestionada.\n"
+
+#: gnunit/src/main.cs:1062
+msgid "The program will terminate now."
+msgstr "El programa es finalitzarà ara."
+
#: docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr "Documentació de les biblioteques del Mono"
@@ -41,10 +280,6 @@ msgstr ""
msgid "_Close Tab"
msgstr ""
-#: docbrowser/browser.glade:138
-msgid "Quit"
-msgstr "Surt"
-
#: docbrowser/browser.glade:164
msgid "_Edit"
msgstr "_Edita"
@@ -233,11 +468,6 @@ msgstr ""
msgid "Monodoc is requesting an account for you."
msgstr ""
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
-msgid "Cancel"
-msgstr "Cancel·la"
-
#: docbrowser/browser.glade:1567
msgid "2"
msgstr ""
@@ -404,157 +634,6 @@ msgstr "_Afegeix adreçes d'interès"
msgid "Create in:"
msgstr ""
-#~ msgid "Already running some test(s)."
-#~ msgstr "Ja s'estan executant alguns tests"
-
-#~ msgid "Warning: unexpected combination."
-#~ msgstr "Avís: combinació no esperada."
-
-#~ msgid "Don't know anything about {0}"
-#~ msgstr "No sé res de {0}"
-
-#~ msgid "Select an assembly to load"
-#~ msgstr "Seleccioneu un assembly per carregar"
-
-#~ msgid "Mono NUnit2 GUI"
-#~ msgstr "Mono NUnit2 GUI"
-
-#~ msgid "_Recent assemblies"
-#~ msgstr "Fitxers _recents"
-
-#~ msgid "_Clear recent"
-#~ msgstr "_Buida recents"
-
-#~ msgid "Open assembly"
-#~ msgstr "Obre un assembly"
-
-#~ msgid "Open"
-#~ msgstr "Obre"
-
-#~ msgid "Save results to a XML file"
-#~ msgstr "Desa els resultats a un fitxer XML"
-
-#~ msgid "Save As"
-#~ msgstr "Anomena i desa"
-
-#~ msgid "Run selected test fixture(s)"
-#~ msgstr "Executa els tests seleccionats"
-
-#~ msgid "Run"
-#~ msgstr "Executa"
-
-#~ msgid "Stop"
-#~ msgstr "Atura"
-
-#~ msgid "Exit program"
-#~ msgstr "Surt del programa"
-
-#~ msgid "Test: "
-#~ msgstr "Test: "
-
-#~ msgid "Errors and failures"
-#~ msgstr "Errors i fallides"
-
-#~ msgid "Tests not run"
-#~ msgstr "Tests no executats"
-
-#~ msgid "Standard error"
-#~ msgstr "Sortida d'error"
-
-#~ msgid "Standard out"
-#~ msgstr "Sortida estàndard"
-
-#~ msgid "Error"
-#~ msgstr "Error"
-
-#~ msgid "label"
-#~ msgstr "etiqueta"
-
-#~ msgid "Show details >>"
-#~ msgstr "Mostra els detalls >>"
-
-#~ msgid "Error details"
-#~ msgstr "Detalls de l'error"
-
-#~ msgid "File exists. Overwrite?"
-#~ msgstr "El fitxer ja existeix. Voleu sobreescriure'l?"
-
-#~ msgid "Don't save results"
-#~ msgstr "No desis els resultats"
-
-#~ msgid "Save results"
-#~ msgstr "Desa els resultats"
-
-#~ msgid "Do you want to overwrite it?"
-#~ msgstr "Voleu sobreescriure'l?"
-
-#~ msgid "Hide details <<"
-#~ msgstr "Ocultar els detalls <<"
-
-#~ msgid "No assembly loaded."
-#~ msgstr "No hi ha cap assembly carregat."
-
-#~ msgid "Loading {0}..."
-#~ msgstr "S'està carregant {0}..."
-
-#~ msgid "Loading test {0} of {1}"
-#~ msgstr "S'està carregant test {0} de {1}"
-
-#~ msgid "Error loading assembly"
-#~ msgstr "Error carregant l'assembly"
-
-#~ msgid "Error loading '{0}'"
-#~ msgstr "Error carregant '{0}'"
-
-#~ msgid "You have to select a test to run."
-#~ msgstr "Heu d'escollir un test per executar"
-
-#~ msgid "No test results available"
-#~ msgstr "No hi ha resultats dels tests disponibles"
-
-#~ msgid "You must run some tests in order to get results to save."
-#~ msgstr "Heu d'exectuar alguns tests per obtenir resultats per desar"
-
-#~ msgid "Save results to..."
-#~ msgstr "Desa els resultats com a..."
-
-#~ msgid "Results not saved."
-#~ msgstr "No s'han desat els resultats"
-
-#~ msgid "There has been an error saving the results.\n"
-#~ msgstr "Hi ha hagut un error desant els resultats\n"
-
-#~ msgid "Do you have correct permissions to write to that file?"
-#~ msgstr "Teniu els permisos adequats per escriure en aquest fitxer?"
-
-#~ msgid "Results saved to {0}"
-#~ msgstr "Els resultats s'han desat a {0}"
-
-#, fuzzy
-#~ msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
-#~ msgstr "Tests: {0} ignorats: {1} fallades: {2}"
-
-#~ msgid "Running tests..."
-#~ msgstr "S'està executant els test..."
-
-#~ msgid "Cancelled on user request."
-#~ msgstr "Cancel·lat per petició de l'usuari"
-
-#~ msgid "{0} tests loaded."
-#~ msgstr "{0} tests carregats."
-
-#~ msgid "Elapsed time: {0}"
-#~ msgstr "Temps transcorregut: {0}"
-
-#~ msgid "Unhandled Exception"
-#~ msgstr "Excepció no gestionada"
-
-#~ msgid "There has been an unhandled exception.\n"
-#~ msgstr "Ha succeït una excepció no gestionada.\n"
-
-#~ msgid "The program will terminate now."
-#~ msgstr "El programa es finalitzarà ara."
-
#~ msgid "Editing"
#~ msgstr "Editant"
diff --git a/po/da.gmo b/po/da.gmo
index 9a93401..39ff4df 100644
Binary files a/po/da.gmo and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
index f4d8d54..a2e2eab 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNUnit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"POT-Creation-Date: 2008-01-22 17:13-0500\n"
"PO-Revision-Date: 2004-08-05 11:11+0200\n"
"Last-Translator: Martin Willemoes Hansen <mwh at sysrq.dk>\n"
"Language-Team: Martin Willemoes Hansen <mwh at sysrq.dk>\n"
@@ -15,6 +15,245 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: gnunit/src/AssemblyStore.cs:304
+msgid "Already running some test(s)."
+msgstr "Udfører allerede nogle test(s)."
+
+#: gnunit/src/AssemblyStore.cs:587
+msgid "Warning: unexpected combination."
+msgstr "Advarsel: uventet kombination."
+
+#: gnunit/src/AssemblyStore.cs:596
+#, csharp-format
+msgid "Don't know anything about {0}"
+msgstr "Ved intet om {0}"
+
+#: gnunit/src/FileDialog.cs:26
+msgid "Select an assembly to load"
+msgstr "Vælg en assembly til indlæsning"
+
+#: gnunit/src/nunit-gtk.glade:10
+msgid "Mono NUnit2 GUI"
+msgstr "Mono grafiskbrugerflade for NUnit2"
+
+#: gnunit/src/nunit-gtk.glade:72
+msgid "_Recent assemblies"
+msgstr "_Seneste assemblies"
+
+#: gnunit/src/nunit-gtk.glade:92
+msgid "_Clear recent"
+msgstr "_Ryd seneste"
+
+#: gnunit/src/nunit-gtk.glade:165
+msgid "Enable/disable by category"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:166
+msgid "_Categories"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:219
+msgid "Open assembly"
+msgstr "Åbn assembly"
+
+#: gnunit/src/nunit-gtk.glade:220
+msgid "Open"
+msgstr "Åbn"
+
+#: gnunit/src/nunit-gtk.glade:234
+msgid "Save results to a XML file"
+msgstr "Gem resultater til en XML fil"
+
+#: gnunit/src/nunit-gtk.glade:235
+msgid "Save As"
+msgstr "Gem som"
+
+#: gnunit/src/nunit-gtk.glade:249
+msgid "Run selected test fixture(s)"
+msgstr "Kør udvalgte testfiksering(er)"
+
+#: gnunit/src/nunit-gtk.glade:250 gnunit/src/nunit-gtk.glade:516
+msgid "Run"
+msgstr "Kør"
+
+#: gnunit/src/nunit-gtk.glade:265 docbrowser/browser.glade:1538
+#: docbrowser/browser.glade:1917 docbrowser/browser.glade:2208
+#: docbrowser/browser.glade:2557
+msgid "Cancel"
+msgstr "Afbryd"
+
+#: gnunit/src/nunit-gtk.glade:266
+msgid "Stop"
+msgstr "Stop"
+
+#: gnunit/src/nunit-gtk.glade:280
+msgid "Exit program"
+msgstr "Afslut program"
+
+#: gnunit/src/nunit-gtk.glade:281 docbrowser/browser.glade:138
+msgid "Quit"
+msgstr "Afslut"
+
+#: gnunit/src/nunit-gtk.glade:390
+msgid "Test: "
+msgstr "Test: "
+
+#: gnunit/src/nunit-gtk.glade:588
+msgid "Errors and failures"
+msgstr "Fejl og mislykninger"
+
+#: gnunit/src/nunit-gtk.glade:641
+msgid "Tests not run"
+msgstr "Ikke kørte tests"
+
+#: gnunit/src/nunit-gtk.glade:699
+msgid "Standard error"
+msgstr "Standard fejl"
+
+#: gnunit/src/nunit-gtk.glade:757
+msgid "Standard out"
+msgstr "Standard ud"
+
+#: gnunit/src/nunit-gtk.glade:815 gnunit/src/main.cs:686
+msgid "Error"
+msgstr "Fejl"
+
+#: gnunit/src/nunit-gtk.glade:904
+msgid "label"
+msgstr "etiket"
+
+#: gnunit/src/nunit-gtk.glade:936 gnunit/src/main.cs:104
+msgid "Show details >>"
+msgstr "Vis detaljer >>"
+
+#: gnunit/src/nunit-gtk.glade:1009
+msgid "Error details"
+msgstr "Fejl deltaljer"
+
+#: gnunit/src/nunit-gtk.glade:1056
+msgid "File exists. Overwrite?"
+msgstr "Fil eksistere. Overskriv?"
+
+#: gnunit/src/nunit-gtk.glade:1084
+msgid "Don't save results"
+msgstr "Gem ikke resultater"
+
+#: gnunit/src/nunit-gtk.glade:1098
+msgid "Save results"
+msgstr "Gem resultater"
+
+#: gnunit/src/main.cs:37
+#, csharp-format
+msgid "<b>File {0} exists.</b>"
+msgstr "<b>Fil {0} eksistere.</b>"
+
+#: gnunit/src/main.cs:38
+msgid "Do you want to overwrite it?"
+msgstr "Vil du overskrive den?"
+
+#: gnunit/src/main.cs:107
+msgid "Hide details <<"
+msgstr "Skjul detaljer"
+
+#: gnunit/src/main.cs:200
+msgid "Uncategorized"
+msgstr ""
+
+#: gnunit/src/main.cs:408
+msgid "No assembly loaded."
+msgstr "Ingen assembly indlæst."
+
+#: gnunit/src/main.cs:434
+#, csharp-format
+msgid "Loading {0}..."
+msgstr "Indlæser {0}..."
+
+#: gnunit/src/main.cs:546
+#, csharp-format
+msgid "Loading test {0} of {1}"
+msgstr "Indlæser test {0} af {1}"
+
+#: gnunit/src/main.cs:557
+msgid "Error loading assembly"
+msgstr "Fejl ved indlæsning af assembly"
+
+#: gnunit/src/main.cs:558
+#, csharp-format
+msgid "Error loading '{0}'"
+msgstr "Fejl ved indlæsning af '{0}'"
+
+#: gnunit/src/main.cs:608
+msgid "translator_credits"
+msgstr "Martin Willemoes Hansen <mwh at sysrq.dk>"
+
+#: gnunit/src/main.cs:630
+msgid "You have to select a test to run."
+msgstr "Du mangler at vælge en test til udførsel"
+
+#: gnunit/src/main.cs:660
+msgid "No test results available"
+msgstr "Ingen test resultater tilgængelig"
+
+#: gnunit/src/main.cs:661
+msgid "You must run some tests in order to get results to save."
+msgstr "Du mangler at udfører nogle tests, for at kunne gemme resultatet."
+
+#: gnunit/src/main.cs:667
+msgid "Save results to..."
+msgstr "Gem resultatet i..."
+
+#: gnunit/src/main.cs:676
+msgid "Results not saved."
+msgstr "Resultatet ikke gemt."
+
+#: gnunit/src/main.cs:687
+msgid "There has been an error saving the results.\n"
+msgstr "Der opstod en fejl, med at gemme resultatet.\n"
+
+#: gnunit/src/main.cs:688
+msgid "Do you have correct permissions to write to that file?"
+msgstr "Har du skrive rettigheder til filen?"
+
+#: gnunit/src/main.cs:696
+#, csharp-format
+msgid "Results saved to {0}"
+msgstr "Resultat gemt til {0}"
+
+#: gnunit/src/main.cs:774
+#, fuzzy, csharp-format
+msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
+msgstr "Tests: {0} Ignorerede: {1} Mislykket: {2}"
+
+#: gnunit/src/main.cs:952
+msgid "Running tests..."
+msgstr "Udfører tests..."
+
+#: gnunit/src/main.cs:995
+msgid "Cancelled on user request."
+msgstr "Brugeren valgte at afbryde."
+
+#: gnunit/src/main.cs:1033
+#, csharp-format
+msgid "{0} tests loaded."
+msgstr "{0} tests indlæst."
+
+#: gnunit/src/main.cs:1051
+#, csharp-format
+msgid "Elapsed time: {0}"
+msgstr "Tid gået: {0}"
+
+#: gnunit/src/main.cs:1061
+msgid "Unhandled Exception"
+msgstr "Uhåndteret undtagelse"
+
+#: gnunit/src/main.cs:1061
+msgid "There has been an unhandled exception.\n"
+msgstr "Der har været en uhåndteret undtagelse.\n"
+
+#: gnunit/src/main.cs:1062
+msgid "The program will terminate now."
+msgstr "Programmet afslutter nu."
+
#: docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr ""
@@ -39,10 +278,6 @@ msgstr ""
msgid "_Close Tab"
msgstr ""
-#: docbrowser/browser.glade:138
-msgid "Quit"
-msgstr "Afslut"
-
#: docbrowser/browser.glade:164
msgid "_Edit"
msgstr ""
@@ -225,11 +460,6 @@ msgstr ""
msgid "Monodoc is requesting an account for you."
msgstr ""
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
-msgid "Cancel"
-msgstr "Afbryd"
-
#: docbrowser/browser.glade:1567
msgid "2"
msgstr ""
@@ -393,160 +623,3 @@ msgstr ""
#: docbrowser/browser.glade:3227
msgid "Create in:"
msgstr ""
-
-#~ msgid "Already running some test(s)."
-#~ msgstr "Udfører allerede nogle test(s)."
-
-#~ msgid "Warning: unexpected combination."
-#~ msgstr "Advarsel: uventet kombination."
-
-#~ msgid "Don't know anything about {0}"
-#~ msgstr "Ved intet om {0}"
-
-#~ msgid "Select an assembly to load"
-#~ msgstr "Vælg en assembly til indlæsning"
-
-#~ msgid "Mono NUnit2 GUI"
-#~ msgstr "Mono grafiskbrugerflade for NUnit2"
-
-#~ msgid "_Recent assemblies"
-#~ msgstr "_Seneste assemblies"
-
-#~ msgid "_Clear recent"
-#~ msgstr "_Ryd seneste"
-
-#~ msgid "Open assembly"
-#~ msgstr "Åbn assembly"
-
-#~ msgid "Open"
-#~ msgstr "Åbn"
-
-#~ msgid "Save results to a XML file"
-#~ msgstr "Gem resultater til en XML fil"
-
-#~ msgid "Save As"
-#~ msgstr "Gem som"
-
-#~ msgid "Run selected test fixture(s)"
-#~ msgstr "Kør udvalgte testfiksering(er)"
-
-#~ msgid "Run"
-#~ msgstr "Kør"
-
-#~ msgid "Stop"
-#~ msgstr "Stop"
-
-#~ msgid "Exit program"
-#~ msgstr "Afslut program"
-
-#~ msgid "Test: "
-#~ msgstr "Test: "
-
-#~ msgid "Errors and failures"
-#~ msgstr "Fejl og mislykninger"
-
-#~ msgid "Tests not run"
-#~ msgstr "Ikke kørte tests"
-
-#~ msgid "Standard error"
-#~ msgstr "Standard fejl"
-
-#~ msgid "Standard out"
-#~ msgstr "Standard ud"
-
-#~ msgid "Error"
-#~ msgstr "Fejl"
-
-#~ msgid "label"
-#~ msgstr "etiket"
-
-#~ msgid "Show details >>"
-#~ msgstr "Vis detaljer >>"
-
-#~ msgid "Error details"
-#~ msgstr "Fejl deltaljer"
-
-#~ msgid "File exists. Overwrite?"
-#~ msgstr "Fil eksistere. Overskriv?"
-
-#~ msgid "Don't save results"
-#~ msgstr "Gem ikke resultater"
-
-#~ msgid "Save results"
-#~ msgstr "Gem resultater"
-
-#~ msgid "<b>File {0} exists.</b>"
-#~ msgstr "<b>Fil {0} eksistere.</b>"
-
-#~ msgid "Do you want to overwrite it?"
-#~ msgstr "Vil du overskrive den?"
-
-#~ msgid "Hide details <<"
-#~ msgstr "Skjul detaljer"
-
-#~ msgid "No assembly loaded."
-#~ msgstr "Ingen assembly indlæst."
-
-#~ msgid "Loading {0}..."
-#~ msgstr "Indlæser {0}..."
-
-#~ msgid "Loading test {0} of {1}"
-#~ msgstr "Indlæser test {0} af {1}"
-
-#~ msgid "Error loading assembly"
-#~ msgstr "Fejl ved indlæsning af assembly"
-
-#~ msgid "Error loading '{0}'"
-#~ msgstr "Fejl ved indlæsning af '{0}'"
-
-#~ msgid "translator_credits"
-#~ msgstr "Martin Willemoes Hansen <mwh at sysrq.dk>"
-
-#~ msgid "You have to select a test to run."
-#~ msgstr "Du mangler at vælge en test til udførsel"
-
-#~ msgid "No test results available"
-#~ msgstr "Ingen test resultater tilgængelig"
-
-#~ msgid "You must run some tests in order to get results to save."
-#~ msgstr "Du mangler at udfører nogle tests, for at kunne gemme resultatet."
-
-#~ msgid "Save results to..."
-#~ msgstr "Gem resultatet i..."
-
-#~ msgid "Results not saved."
-#~ msgstr "Resultatet ikke gemt."
-
-#~ msgid "There has been an error saving the results.\n"
-#~ msgstr "Der opstod en fejl, med at gemme resultatet.\n"
-
-#~ msgid "Do you have correct permissions to write to that file?"
-#~ msgstr "Har du skrive rettigheder til filen?"
-
-#~ msgid "Results saved to {0}"
-#~ msgstr "Resultat gemt til {0}"
-
-#, fuzzy
-#~ msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
-#~ msgstr "Tests: {0} Ignorerede: {1} Mislykket: {2}"
-
-#~ msgid "Running tests..."
-#~ msgstr "Udfører tests..."
-
-#~ msgid "Cancelled on user request."
-#~ msgstr "Brugeren valgte at afbryde."
-
-#~ msgid "{0} tests loaded."
-#~ msgstr "{0} tests indlæst."
-
-#~ msgid "Elapsed time: {0}"
-#~ msgstr "Tid gået: {0}"
-
-#~ msgid "Unhandled Exception"
-#~ msgstr "Uhåndteret undtagelse"
-
-#~ msgid "There has been an unhandled exception.\n"
-#~ msgstr "Der har været en uhåndteret undtagelse.\n"
-
-#~ msgid "The program will terminate now."
-#~ msgstr "Programmet afslutter nu."
diff --git a/po/es.gmo b/po/es.gmo
index 4262e88..a7d20a1 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 6c5fe92..38f22e5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNUnit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"POT-Creation-Date: 2008-01-22 17:13-0500\n"
"PO-Revision-Date: 2004-08-05 11:14+0200\n"
"Last-Translator: Gonzalo Paniagua Javier <gonzalo at ximian.com>\n"
"Language-Team: Gonzalo Paniagua Javier <gonzalo at ximian.com>\n"
@@ -15,6 +15,245 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: gnunit/src/AssemblyStore.cs:304
+msgid "Already running some test(s)."
+msgstr "Ya se están ejecutando tests."
+
+#: gnunit/src/AssemblyStore.cs:587
+msgid "Warning: unexpected combination."
+msgstr "Aviso: combinación no esperada."
+
+#: gnunit/src/AssemblyStore.cs:596
+#, csharp-format
+msgid "Don't know anything about {0}"
+msgstr ""
+
+#: gnunit/src/FileDialog.cs:26
+msgid "Select an assembly to load"
+msgstr "Elija un assembly para cargar"
+
+#: gnunit/src/nunit-gtk.glade:10
+msgid "Mono NUnit2 GUI"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:72
+msgid "_Recent assemblies"
+msgstr "Ficheros _recientes"
+
+#: gnunit/src/nunit-gtk.glade:92
+msgid "_Clear recent"
+msgstr "_Borra recientes"
+
+#: gnunit/src/nunit-gtk.glade:165
+msgid "Enable/disable by category"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:166
+msgid "_Categories"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:219
+msgid "Open assembly"
+msgstr "Carga un ensamblado"
+
+#: gnunit/src/nunit-gtk.glade:220
+msgid "Open"
+msgstr "Abrir"
+
+#: gnunit/src/nunit-gtk.glade:234
+msgid "Save results to a XML file"
+msgstr "Guardar resultados a un fichero XML"
+
+#: gnunit/src/nunit-gtk.glade:235
+msgid "Save As"
+msgstr "Guardar como"
+
+#: gnunit/src/nunit-gtk.glade:249
+msgid "Run selected test fixture(s)"
+msgstr "Ejecutar los tests seleccionados"
+
+#: gnunit/src/nunit-gtk.glade:250 gnunit/src/nunit-gtk.glade:516
+msgid "Run"
+msgstr "Ejecutar"
+
+#: gnunit/src/nunit-gtk.glade:265 docbrowser/browser.glade:1538
+#: docbrowser/browser.glade:1917 docbrowser/browser.glade:2208
+#: docbrowser/browser.glade:2557
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: gnunit/src/nunit-gtk.glade:266
+msgid "Stop"
+msgstr "Detener"
+
+#: gnunit/src/nunit-gtk.glade:280
+msgid "Exit program"
+msgstr "Salir del programa"
+
+#: gnunit/src/nunit-gtk.glade:281 docbrowser/browser.glade:138
+msgid "Quit"
+msgstr "Salir"
+
+#: gnunit/src/nunit-gtk.glade:390
+msgid "Test: "
+msgstr "Test: "
+
+#: gnunit/src/nunit-gtk.glade:588
+msgid "Errors and failures"
+msgstr "Errores y fallos"
+
+#: gnunit/src/nunit-gtk.glade:641
+msgid "Tests not run"
+msgstr "Tests no ejecutados"
+
+#: gnunit/src/nunit-gtk.glade:699
+msgid "Standard error"
+msgstr "Salida de error"
+
+#: gnunit/src/nunit-gtk.glade:757
+msgid "Standard out"
+msgstr "Salida estándar"
+
+#: gnunit/src/nunit-gtk.glade:815 gnunit/src/main.cs:686
+msgid "Error"
+msgstr "Error"
+
+#: gnunit/src/nunit-gtk.glade:904
+msgid "label"
+msgstr "etiqueta"
+
+#: gnunit/src/nunit-gtk.glade:936 gnunit/src/main.cs:104
+msgid "Show details >>"
+msgstr "Mostrar detalles >>"
+
+#: gnunit/src/nunit-gtk.glade:1009
+msgid "Error details"
+msgstr "Detalles del error"
+
+#: gnunit/src/nunit-gtk.glade:1056
+msgid "File exists. Overwrite?"
+msgstr "El fichero existe. ¿Sobreescribir?"
+
+#: gnunit/src/nunit-gtk.glade:1084
+msgid "Don't save results"
+msgstr "No guardar resultados"
+
+#: gnunit/src/nunit-gtk.glade:1098
+msgid "Save results"
+msgstr "Guardar resultados"
+
+#: gnunit/src/main.cs:37
+#, csharp-format
+msgid "<b>File {0} exists.</b>"
+msgstr "<b>El fichero {0} existe.</b>"
+
+#: gnunit/src/main.cs:38
+msgid "Do you want to overwrite it?"
+msgstr "¿Lo quiere sobreescribir?"
+
+#: gnunit/src/main.cs:107
+msgid "Hide details <<"
+msgstr "Ocultar detalles <<"
+
+#: gnunit/src/main.cs:200
+msgid "Uncategorized"
+msgstr ""
+
+#: gnunit/src/main.cs:408
+msgid "No assembly loaded."
+msgstr "No hay ningún assembly cargado."
+
+#: gnunit/src/main.cs:434
+#, csharp-format
+msgid "Loading {0}..."
+msgstr "Cargando {0}..."
+
+#: gnunit/src/main.cs:546
+#, csharp-format
+msgid "Loading test {0} of {1}"
+msgstr "Cargando test {0} de {1}"
+
+#: gnunit/src/main.cs:557
+msgid "Error loading assembly"
+msgstr "Error cargando assembly"
+
+#: gnunit/src/main.cs:558
+#, csharp-format
+msgid "Error loading '{0}'"
+msgstr "Error cargando '{0}'"
+
+#: gnunit/src/main.cs:608
+msgid "translator_credits"
+msgstr "Gonzalo Paniagua Javier <gonzalo at ximian.com>"
+
+#: gnunit/src/main.cs:630
+msgid "You have to select a test to run."
+msgstr "Debe seleccionar un test para ejecutar"
+
+#: gnunit/src/main.cs:660
+msgid "No test results available"
+msgstr "No hay resultados de tests disponibles"
+
+#: gnunit/src/main.cs:661
+msgid "You must run some tests in order to get results to save."
+msgstr "Debe ejecutar algún test para tener resultados que guardar."
+
+#: gnunit/src/main.cs:667
+msgid "Save results to..."
+msgstr "Guardar resultados como..."
+
+#: gnunit/src/main.cs:676
+msgid "Results not saved."
+msgstr "No se han guardado los resultados."
+
+#: gnunit/src/main.cs:687
+msgid "There has been an error saving the results.\n"
+msgstr "Ocurrió un error guardando los resultados.\n"
+
+#: gnunit/src/main.cs:688
+msgid "Do you have correct permissions to write to that file?"
+msgstr "¿Tiene permiso de escritura sobre ese fichero?"
+
+#: gnunit/src/main.cs:696
+#, csharp-format
+msgid "Results saved to {0}"
+msgstr "Resultados guardados en {0}"
+
+#: gnunit/src/main.cs:774
+#, fuzzy, csharp-format
+msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
+msgstr "Tests: {0} Ignorados: {1} Fallos: {2}"
+
+#: gnunit/src/main.cs:952
+msgid "Running tests..."
+msgstr "Ejecutando tests..."
+
+#: gnunit/src/main.cs:995
+msgid "Cancelled on user request."
+msgstr "Cancelado a petición del usuario"
+
+#: gnunit/src/main.cs:1033
+#, csharp-format
+msgid "{0} tests loaded."
+msgstr "{0} tests cargados."
+
+#: gnunit/src/main.cs:1051
+#, csharp-format
+msgid "Elapsed time: {0}"
+msgstr "Tiempo transcurrido: {0}"
+
+#: gnunit/src/main.cs:1061
+msgid "Unhandled Exception"
+msgstr "Excepción no controlada"
+
+#: gnunit/src/main.cs:1061
+msgid "There has been an unhandled exception.\n"
+msgstr "Ha ocurrido una excepción no controlada\n"
+
+#: gnunit/src/main.cs:1062
+msgid "The program will terminate now."
+msgstr "El programa terminará ahora."
+
#: docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr ""
@@ -39,10 +278,6 @@ msgstr ""
msgid "_Close Tab"
msgstr ""
-#: docbrowser/browser.glade:138
-msgid "Quit"
-msgstr "Salir"
-
#: docbrowser/browser.glade:164
msgid "_Edit"
msgstr ""
@@ -225,11 +460,6 @@ msgstr ""
msgid "Monodoc is requesting an account for you."
msgstr ""
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
-msgid "Cancel"
-msgstr "Cancelar"
-
#: docbrowser/browser.glade:1567
msgid "2"
msgstr ""
@@ -393,154 +623,3 @@ msgstr ""
#: docbrowser/browser.glade:3227
msgid "Create in:"
msgstr ""
-
-#~ msgid "Already running some test(s)."
-#~ msgstr "Ya se están ejecutando tests."
-
-#~ msgid "Warning: unexpected combination."
-#~ msgstr "Aviso: combinación no esperada."
-
-#~ msgid "Select an assembly to load"
-#~ msgstr "Elija un assembly para cargar"
-
-#~ msgid "_Recent assemblies"
-#~ msgstr "Ficheros _recientes"
-
-#~ msgid "_Clear recent"
-#~ msgstr "_Borra recientes"
-
-#~ msgid "Open assembly"
-#~ msgstr "Carga un ensamblado"
-
-#~ msgid "Open"
-#~ msgstr "Abrir"
-
-#~ msgid "Save results to a XML file"
-#~ msgstr "Guardar resultados a un fichero XML"
-
-#~ msgid "Save As"
-#~ msgstr "Guardar como"
-
-#~ msgid "Run selected test fixture(s)"
-#~ msgstr "Ejecutar los tests seleccionados"
-
-#~ msgid "Run"
-#~ msgstr "Ejecutar"
-
-#~ msgid "Stop"
-#~ msgstr "Detener"
-
-#~ msgid "Exit program"
-#~ msgstr "Salir del programa"
-
-#~ msgid "Test: "
-#~ msgstr "Test: "
-
-#~ msgid "Errors and failures"
-#~ msgstr "Errores y fallos"
-
-#~ msgid "Tests not run"
-#~ msgstr "Tests no ejecutados"
-
-#~ msgid "Standard error"
-#~ msgstr "Salida de error"
-
-#~ msgid "Standard out"
-#~ msgstr "Salida estándar"
-
-#~ msgid "Error"
-#~ msgstr "Error"
-
-#~ msgid "label"
-#~ msgstr "etiqueta"
-
-#~ msgid "Show details >>"
-#~ msgstr "Mostrar detalles >>"
-
-#~ msgid "Error details"
-#~ msgstr "Detalles del error"
-
-#~ msgid "File exists. Overwrite?"
-#~ msgstr "El fichero existe. ¿Sobreescribir?"
-
-#~ msgid "Don't save results"
-#~ msgstr "No guardar resultados"
-
-#~ msgid "Save results"
-#~ msgstr "Guardar resultados"
-
-#~ msgid "<b>File {0} exists.</b>"
-#~ msgstr "<b>El fichero {0} existe.</b>"
-
-#~ msgid "Do you want to overwrite it?"
-#~ msgstr "¿Lo quiere sobreescribir?"
-
-#~ msgid "Hide details <<"
-#~ msgstr "Ocultar detalles <<"
-
-#~ msgid "No assembly loaded."
-#~ msgstr "No hay ningún assembly cargado."
-
-#~ msgid "Loading {0}..."
-#~ msgstr "Cargando {0}..."
-
-#~ msgid "Loading test {0} of {1}"
-#~ msgstr "Cargando test {0} de {1}"
-
-#~ msgid "Error loading assembly"
-#~ msgstr "Error cargando assembly"
-
-#~ msgid "Error loading '{0}'"
-#~ msgstr "Error cargando '{0}'"
-
-#~ msgid "translator_credits"
-#~ msgstr "Gonzalo Paniagua Javier <gonzalo at ximian.com>"
-
-#~ msgid "You have to select a test to run."
-#~ msgstr "Debe seleccionar un test para ejecutar"
-
-#~ msgid "No test results available"
-#~ msgstr "No hay resultados de tests disponibles"
-
-#~ msgid "You must run some tests in order to get results to save."
-#~ msgstr "Debe ejecutar algún test para tener resultados que guardar."
-
-#~ msgid "Save results to..."
-#~ msgstr "Guardar resultados como..."
-
-#~ msgid "Results not saved."
-#~ msgstr "No se han guardado los resultados."
-
-#~ msgid "There has been an error saving the results.\n"
-#~ msgstr "Ocurrió un error guardando los resultados.\n"
-
-#~ msgid "Do you have correct permissions to write to that file?"
-#~ msgstr "¿Tiene permiso de escritura sobre ese fichero?"
-
-#~ msgid "Results saved to {0}"
-#~ msgstr "Resultados guardados en {0}"
-
-#, fuzzy
-#~ msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
-#~ msgstr "Tests: {0} Ignorados: {1} Fallos: {2}"
-
-#~ msgid "Running tests..."
-#~ msgstr "Ejecutando tests..."
-
-#~ msgid "Cancelled on user request."
-#~ msgstr "Cancelado a petición del usuario"
-
-#~ msgid "{0} tests loaded."
-#~ msgstr "{0} tests cargados."
-
-#~ msgid "Elapsed time: {0}"
-#~ msgstr "Tiempo transcurrido: {0}"
-
-#~ msgid "Unhandled Exception"
-#~ msgstr "Excepción no controlada"
-
-#~ msgid "There has been an unhandled exception.\n"
-#~ msgstr "Ha ocurrido una excepción no controlada\n"
-
-#~ msgid "The program will terminate now."
-#~ msgstr "El programa terminará ahora."
diff --git a/po/fr.gmo b/po/fr.gmo
index ef030c8..6785bf8 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 2f4cbee..74f8994 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNUnit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"POT-Creation-Date: 2008-01-22 17:13-0500\n"
"PO-Revision-Date: 2004-08-05 11:14+0200\n"
"Last-Translator: Sebastien Pouliot <spouliot at videotron.ca>\n"
"Language-Team: Sebastien Pouliot <spouliot at videotron.ca>\n"
@@ -15,6 +15,245 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: gnunit/src/AssemblyStore.cs:304
+msgid "Already running some test(s)."
+msgstr "Test(s) en cours d'exécution."
+
+#: gnunit/src/AssemblyStore.cs:587
+msgid "Warning: unexpected combination."
+msgstr "Avertissement: combinaison innattendue."
+
+#: gnunit/src/AssemblyStore.cs:596
+#, csharp-format
+msgid "Don't know anything about {0}"
+msgstr "Aucune information n'est disponible sur {0}"
+
+#: gnunit/src/FileDialog.cs:26
+msgid "Select an assembly to load"
+msgstr "Choisir un assembly à charger"
+
+#: gnunit/src/nunit-gtk.glade:10
+msgid "Mono NUnit2 GUI"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:72
+msgid "_Recent assemblies"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:92
+msgid "_Clear recent"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:165
+msgid "Enable/disable by category"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:166
+msgid "_Categories"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:219
+msgid "Open assembly"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:220
+msgid "Open"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:234
+msgid "Save results to a XML file"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:235
+msgid "Save As"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:249
+msgid "Run selected test fixture(s)"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:250 gnunit/src/nunit-gtk.glade:516
+msgid "Run"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:265 docbrowser/browser.glade:1538
+#: docbrowser/browser.glade:1917 docbrowser/browser.glade:2208
+#: docbrowser/browser.glade:2557
+msgid "Cancel"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:266
+msgid "Stop"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:280
+msgid "Exit program"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:281 docbrowser/browser.glade:138
+msgid "Quit"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:390
+msgid "Test: "
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:588
+msgid "Errors and failures"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:641
+msgid "Tests not run"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:699
+msgid "Standard error"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:757
+msgid "Standard out"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:815 gnunit/src/main.cs:686
+msgid "Error"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:904
+msgid "label"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:936 gnunit/src/main.cs:104
+msgid "Show details >>"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1009
+msgid "Error details"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1056
+msgid "File exists. Overwrite?"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1084
+msgid "Don't save results"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1098
+msgid "Save results"
+msgstr ""
+
+#: gnunit/src/main.cs:37
+#, csharp-format
+msgid "<b>File {0} exists.</b>"
+msgstr "<b>Le fichier {0} existe.</b>"
+
+#: gnunit/src/main.cs:38
+msgid "Do you want to overwrite it?"
+msgstr "Voulez-vous le ré-écrire?"
+
+#: gnunit/src/main.cs:107
+msgid "Hide details <<"
+msgstr "Moins de détails <<"
+
+#: gnunit/src/main.cs:200
+msgid "Uncategorized"
+msgstr ""
+
+#: gnunit/src/main.cs:408
+msgid "No assembly loaded."
+msgstr "Aucun assembly n'est chargé."
+
+#: gnunit/src/main.cs:434
+#, csharp-format
+msgid "Loading {0}..."
+msgstr "Chargement de {0}..."
+
+#: gnunit/src/main.cs:546
+#, csharp-format
+msgid "Loading test {0} of {1}"
+msgstr "Chargement du test {0} de {1}"
+
+#: gnunit/src/main.cs:557
+msgid "Error loading assembly"
+msgstr "Erreur lors du chargement de l'assembly"
+
+#: gnunit/src/main.cs:558
+#, csharp-format
+msgid "Error loading '{0}'"
+msgstr "Erreur lors du chargement de '{0}'"
+
+#: gnunit/src/main.cs:608
+msgid "translator_credits"
+msgstr "Sebastien Pouliot <spouliot at videotron.ca>"
+
+#: gnunit/src/main.cs:630
+msgid "You have to select a test to run."
+msgstr "Un test doit être choisi pour s'exécuter."
+
+#: gnunit/src/main.cs:660
+msgid "No test results available"
+msgstr "Aucun résultat des tests n'est disponible"
+
+#: gnunit/src/main.cs:661
+msgid "You must run some tests in order to get results to save."
+msgstr "Des tests doivent être exécutés avant de conserver les résultats."
+
+#: gnunit/src/main.cs:667
+msgid "Save results to..."
+msgstr "Résultats conservés dans..."
+
+#: gnunit/src/main.cs:676
+msgid "Results not saved."
+msgstr "Résultats non conservés."
+
+#: gnunit/src/main.cs:687
+msgid "There has been an error saving the results.\n"
+msgstr "Une erreur est survenue lors de la conservation des résultats.\n"
+
+#: gnunit/src/main.cs:688
+msgid "Do you have correct permissions to write to that file?"
+msgstr "Avez-vous les permissions requises pour écrire dans ce fichier?"
+
+#: gnunit/src/main.cs:696
+#, csharp-format
+msgid "Results saved to {0}"
+msgstr "Résultats conservés dans {0}"
+
+#: gnunit/src/main.cs:774
+#, fuzzy, csharp-format
+msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
+msgstr "Testés: {0} Ignorés: {1} Echecs: {2}"
+
+#: gnunit/src/main.cs:952
+msgid "Running tests..."
+msgstr "Tests en cours d'exécution..."
+
+#: gnunit/src/main.cs:995
+msgid "Cancelled on user request."
+msgstr "Opération interrompue sur demande de l'utilisateur."
+
+#: gnunit/src/main.cs:1033
+#, csharp-format
+msgid "{0} tests loaded."
+msgstr "{0} tests chargés."
+
+#: gnunit/src/main.cs:1051
+#, csharp-format
+msgid "Elapsed time: {0}"
+msgstr "Temps d'éxécution: {0}"
+
+#: gnunit/src/main.cs:1061
+msgid "Unhandled Exception"
+msgstr "Exception non traitée"
+
+#: gnunit/src/main.cs:1061
+msgid "There has been an unhandled exception.\n"
+msgstr ""
+
+#: gnunit/src/main.cs:1062
+msgid "The program will terminate now."
+msgstr "Le logiciel va se terminer maintenant."
+
#: docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr ""
@@ -39,10 +278,6 @@ msgstr ""
msgid "_Close Tab"
msgstr ""
-#: docbrowser/browser.glade:138
-msgid "Quit"
-msgstr ""
-
#: docbrowser/browser.glade:164
msgid "_Edit"
msgstr ""
@@ -225,11 +460,6 @@ msgstr ""
msgid "Monodoc is requesting an account for you."
msgstr ""
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
-msgid "Cancel"
-msgstr ""
-
#: docbrowser/browser.glade:1567
msgid "2"
msgstr ""
@@ -393,88 +623,3 @@ msgstr ""
#: docbrowser/browser.glade:3227
msgid "Create in:"
msgstr ""
-
-#~ msgid "Already running some test(s)."
-#~ msgstr "Test(s) en cours d'exécution."
-
-#~ msgid "Warning: unexpected combination."
-#~ msgstr "Avertissement: combinaison innattendue."
-
-#~ msgid "Don't know anything about {0}"
-#~ msgstr "Aucune information n'est disponible sur {0}"
-
-#~ msgid "Select an assembly to load"
-#~ msgstr "Choisir un assembly à charger"
-
-#~ msgid "<b>File {0} exists.</b>"
-#~ msgstr "<b>Le fichier {0} existe.</b>"
-
-#~ msgid "Do you want to overwrite it?"
-#~ msgstr "Voulez-vous le ré-écrire?"
-
-#~ msgid "Hide details <<"
-#~ msgstr "Moins de détails <<"
-
-#~ msgid "No assembly loaded."
-#~ msgstr "Aucun assembly n'est chargé."
-
-#~ msgid "Loading {0}..."
-#~ msgstr "Chargement de {0}..."
-
-#~ msgid "Loading test {0} of {1}"
-#~ msgstr "Chargement du test {0} de {1}"
-
-#~ msgid "Error loading assembly"
-#~ msgstr "Erreur lors du chargement de l'assembly"
-
-#~ msgid "Error loading '{0}'"
-#~ msgstr "Erreur lors du chargement de '{0}'"
-
-#~ msgid "translator_credits"
-#~ msgstr "Sebastien Pouliot <spouliot at videotron.ca>"
-
-#~ msgid "You have to select a test to run."
-#~ msgstr "Un test doit être choisi pour s'exécuter."
-
-#~ msgid "No test results available"
-#~ msgstr "Aucun résultat des tests n'est disponible"
-
-#~ msgid "You must run some tests in order to get results to save."
-#~ msgstr "Des tests doivent être exécutés avant de conserver les résultats."
-
-#~ msgid "Save results to..."
-#~ msgstr "Résultats conservés dans..."
-
-#~ msgid "Results not saved."
-#~ msgstr "Résultats non conservés."
-
-#~ msgid "There has been an error saving the results.\n"
-#~ msgstr "Une erreur est survenue lors de la conservation des résultats.\n"
-
-#~ msgid "Do you have correct permissions to write to that file?"
-#~ msgstr "Avez-vous les permissions requises pour écrire dans ce fichier?"
-
-#~ msgid "Results saved to {0}"
-#~ msgstr "Résultats conservés dans {0}"
-
-#, fuzzy
-#~ msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
-#~ msgstr "Testés: {0} Ignorés: {1} Echecs: {2}"
-
-#~ msgid "Running tests..."
-#~ msgstr "Tests en cours d'exécution..."
-
-#~ msgid "Cancelled on user request."
-#~ msgstr "Opération interrompue sur demande de l'utilisateur."
-
-#~ msgid "{0} tests loaded."
-#~ msgstr "{0} tests chargés."
-
-#~ msgid "Elapsed time: {0}"
-#~ msgstr "Temps d'éxécution: {0}"
-
-#~ msgid "Unhandled Exception"
-#~ msgstr "Exception non traitée"
-
-#~ msgid "The program will terminate now."
-#~ msgstr "Le logiciel va se terminer maintenant."
diff --git a/po/mono-tools.pot b/po/mono-tools.pot
index 7b88020..3609e2f 100644
--- a/po/mono-tools.pot
+++ b/po/mono-tools.pot
@@ -7,138 +7,140 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=glib&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2013-10-10 00:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: docbrowser/browser.glade:8
+#: ../docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr ""
-#: docbrowser/browser.glade:35
+#: ../docbrowser/browser.glade:35
msgid "_File"
msgstr ""
-#: docbrowser/browser.glade:44
+#: ../docbrowser/browser.glade:44
msgid "New _Tab"
msgstr ""
-#: docbrowser/browser.glade:66
+#: ../docbrowser/browser.glade:66
msgid "_Lookup URL..."
msgstr ""
-#: docbrowser/browser.glade:88
+#: ../docbrowser/browser.glade:88
msgid "_Print..."
msgstr ""
-#: docbrowser/browser.glade:116
+#: ../docbrowser/browser.glade:116
msgid "_Close Tab"
msgstr ""
-#: docbrowser/browser.glade:138
+#: ../docbrowser/browser.glade:138
msgid "Quit"
msgstr ""
-#: docbrowser/browser.glade:164
+#: ../docbrowser/browser.glade:164
msgid "_Edit"
msgstr ""
-#: docbrowser/browser.glade:172
+#: ../docbrowser/browser.glade:172
msgid "_Cut"
msgstr ""
-#: docbrowser/browser.glade:194
+#: ../docbrowser/browser.glade:194
msgid "_Copy"
msgstr ""
-#: docbrowser/browser.glade:216
+#: ../docbrowser/browser.glade:216
msgid "_Paste"
msgstr ""
-#: docbrowser/browser.glade:244
+#: ../docbrowser/browser.glade:244
msgid "Select All"
msgstr ""
-#: docbrowser/browser.glade:258
+#: ../docbrowser/browser.glade:258
msgid "_View"
msgstr ""
-#: docbrowser/browser.glade:267
+#: ../docbrowser/browser.glade:267
msgid "Collapse All"
msgstr ""
-#: docbrowser/browser.glade:276
+#: ../docbrowser/browser.glade:276
msgid "Show Inherited Members"
msgstr ""
-#: docbrowser/browser.glade:286
+#: ../docbrowser/browser.glade:286
msgid "Show Comments"
msgstr ""
-#: docbrowser/browser.glade:300
+#: ../docbrowser/browser.glade:300
msgid "_Bookmarks"
msgstr ""
-#: docbrowser/browser.glade:315
+#: ../docbrowser/browser.glade:315
msgid "_Contributing"
msgstr ""
-#: docbrowser/browser.glade:323
+#: ../docbrowser/browser.glade:323
msgid "_Upload Contributions..."
msgstr ""
-#: docbrowser/browser.glade:345
+#: ../docbrowser/browser.glade:345
msgid "_View Contribution Statistics..."
msgstr ""
-#: docbrowser/browser.glade:372
+#: ../docbrowser/browser.glade:372
msgid "Edit Mode"
msgstr ""
-#: docbrowser/browser.glade:386
+#: ../docbrowser/browser.glade:386
msgid "_Help"
msgstr ""
-#: docbrowser/browser.glade:395
+#: ../docbrowser/browser.glade:395
msgid "About..."
msgstr ""
-#: docbrowser/browser.glade:548
+#: ../docbrowser/browser.glade:548
msgid "n/a"
msgstr ""
-#: docbrowser/browser.glade:657
+#: ../docbrowser/browser.glade:657
msgid "_Contents"
msgstr ""
-#: docbrowser/browser.glade:721
+#: ../docbrowser/browser.glade:721
msgid "_Index"
msgstr ""
-#: docbrowser/browser.glade:784
+#: ../docbrowser/browser.glade:784
msgid "_Search"
msgstr ""
-#: docbrowser/browser.glade:856
+#: ../docbrowser/browser.glade:856
msgid "About monodoc"
msgstr ""
-#: docbrowser/browser.glade:907
+#: ../docbrowser/browser.glade:907
msgid ""
"<span size=\"larger\"><b>monodoc:</b> The Mono Documentation Library viewer</"
"span>"
msgstr ""
-#: docbrowser/browser.glade:928
+#: ../docbrowser/browser.glade:928
msgid "<b>Version</b> "
msgstr ""
-#: docbrowser/browser.glade:970
+#: ../docbrowser/browser.glade:970
msgid ""
"<b>Authors:</b>\n"
" Miguel de Icaza (miguel at ximian.com)\n"
@@ -156,7 +158,7 @@ msgid ""
"\t "
msgstr ""
-#: docbrowser/browser.glade:1005
+#: ../docbrowser/browser.glade:1005
msgid ""
"<b>Plugins:</b>\n"
" ECMA Documentation.\n"
@@ -167,29 +169,29 @@ msgid ""
" ECMA C# Specification."
msgstr ""
-#: docbrowser/browser.glade:1080
+#: ../docbrowser/browser.glade:1080
msgid "Lookup URL"
msgstr ""
-#: docbrowser/browser.glade:1103
+#: ../docbrowser/browser.glade:1103
msgid "_URL to lookup:"
msgstr ""
-#: docbrowser/browser.glade:1132 docbrowser/browser.glade:1360
-#: docbrowser/browser.glade:1746 docbrowser/browser.glade:2726
-#: docbrowser/browser.glade:2749 docbrowser/browser.glade:2798
+#: ../docbrowser/browser.glade:1132 ../docbrowser/browser.glade:1360
+#: ../docbrowser/browser.glade:1746 ../docbrowser/browser.glade:2726
+#: ../docbrowser/browser.glade:2749 ../docbrowser/browser.glade:2798
msgid "*"
msgstr ""
-#: docbrowser/browser.glade:1135
+#: ../docbrowser/browser.glade:1135
msgid "lookup_entry"
msgstr ""
-#: docbrowser/browser.glade:1183
+#: ../docbrowser/browser.glade:1183
msgid "Login configuration"
msgstr ""
-#: docbrowser/browser.glade:1215
+#: ../docbrowser/browser.glade:1215
msgid ""
"You can edit the contents of the API documentation in MonoDoc and "
"contribute\n"
@@ -201,79 +203,79 @@ msgid ""
"If you agree, click Continue"
msgstr ""
-#: docbrowser/browser.glade:1271 docbrowser/browser.glade:1432
-#: docbrowser/browser.glade:1807
+#: ../docbrowser/browser.glade:1271 ../docbrowser/browser.glade:1432
+#: ../docbrowser/browser.glade:1807
msgid "Continue"
msgstr ""
-#: docbrowser/browser.glade:1300
+#: ../docbrowser/browser.glade:1300
msgid "0"
msgstr ""
-#: docbrowser/browser.glade:1331
+#: ../docbrowser/browser.glade:1331
msgid "_Email:"
msgstr ""
-#: docbrowser/browser.glade:1374
+#: ../docbrowser/browser.glade:1374
msgid "xx"
msgstr ""
-#: docbrowser/browser.glade:1461
+#: ../docbrowser/browser.glade:1461
msgid "1"
msgstr ""
-#: docbrowser/browser.glade:1486
+#: ../docbrowser/browser.glade:1486
msgid "Monodoc is requesting an account for you."
msgstr ""
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
+#: ../docbrowser/browser.glade:1538 ../docbrowser/browser.glade:1917
+#: ../docbrowser/browser.glade:2208 ../docbrowser/browser.glade:2557
msgid "Cancel"
msgstr ""
-#: docbrowser/browser.glade:1567
+#: ../docbrowser/browser.glade:1567
msgid "2"
msgstr ""
-#: docbrowser/browser.glade:1592
+#: ../docbrowser/browser.glade:1592
msgid ""
"<b>Error:</b> Monodoc encountered a failure when requesting\n"
"a password for your e-mail address. Try again later."
msgstr ""
-#: docbrowser/browser.glade:1628 docbrowser/browser.glade:2013
-#: docbrowser/browser.glade:2102 docbrowser/browser.glade:2297
-#: docbrowser/browser.glade:2387 docbrowser/browser.glade:2477
+#: ../docbrowser/browser.glade:1628 ../docbrowser/browser.glade:2013
+#: ../docbrowser/browser.glade:2102 ../docbrowser/browser.glade:2297
+#: ../docbrowser/browser.glade:2387 ../docbrowser/browser.glade:2477
msgid "Ok"
msgstr ""
-#: docbrowser/browser.glade:1658
+#: ../docbrowser/browser.glade:1658
msgid "3"
msgstr ""
-#: docbrowser/browser.glade:1689
+#: ../docbrowser/browser.glade:1689
msgid ""
"Once you receive your password on the mail, please enter it\n"
"here:\n"
msgstr ""
-#: docbrowser/browser.glade:1718
+#: ../docbrowser/browser.glade:1718
msgid "Password:"
msgstr ""
-#: docbrowser/browser.glade:1837
+#: ../docbrowser/browser.glade:1837
msgid "4"
msgstr ""
-#: docbrowser/browser.glade:1862
+#: ../docbrowser/browser.glade:1862
msgid "MonoDoc is logging into the server."
msgstr ""
-#: docbrowser/browser.glade:1953
+#: ../docbrowser/browser.glade:1953
msgid "5"
msgstr ""
-#: docbrowser/browser.glade:1978
+#: ../docbrowser/browser.glade:1978
msgid ""
"<b>Congratulations!</b> \n"
"\n"
@@ -281,33 +283,33 @@ msgid ""
"the File/Upload menu option."
msgstr ""
-#: docbrowser/browser.glade:2043
+#: ../docbrowser/browser.glade:2043
msgid "6"
msgstr ""
-#: docbrowser/browser.glade:2068
+#: ../docbrowser/browser.glade:2068
msgid ""
"<b>Terminated</b> \n"
"\n"
"The request to the Monodoc server has been cancelled."
msgstr ""
-#: docbrowser/browser.glade:2132
+#: ../docbrowser/browser.glade:2132
msgid "7"
msgstr ""
-#: docbrowser/browser.glade:2157
+#: ../docbrowser/browser.glade:2157
msgid ""
"<b>Please wait</b>\n"
"\n"
"MonoDoc is checking the server version."
msgstr ""
-#: docbrowser/browser.glade:2237
+#: ../docbrowser/browser.glade:2237
msgid "8"
msgstr ""
-#: docbrowser/browser.glade:2262
+#: ../docbrowser/browser.glade:2262
msgid ""
"<b>Communications Problem</b> \n"
"\n"
@@ -315,11 +317,11 @@ msgid ""
"with the Mono Documentation Server."
msgstr ""
-#: docbrowser/browser.glade:2327
+#: ../docbrowser/browser.glade:2327
msgid "9"
msgstr ""
-#: docbrowser/browser.glade:2352
+#: ../docbrowser/browser.glade:2352
msgid ""
"<b>Version missmatch</b> \n"
"\n"
@@ -327,11 +329,11 @@ msgid ""
"server, please upgrade your MonoDoc installation."
msgstr ""
-#: docbrowser/browser.glade:2417
+#: ../docbrowser/browser.glade:2417
msgid "10"
msgstr ""
-#: docbrowser/browser.glade:2442
+#: ../docbrowser/browser.glade:2442
msgid ""
"<b>Password Problem</b> \n"
"\n"
@@ -339,58 +341,58 @@ msgid ""
"Please try again."
msgstr ""
-#: docbrowser/browser.glade:2507
+#: ../docbrowser/browser.glade:2507
msgid "11"
msgstr ""
-#: docbrowser/browser.glade:2528
+#: ../docbrowser/browser.glade:2528
msgid "Uploading Documentation Updates - MonoDoc"
msgstr ""
-#: docbrowser/browser.glade:2583
+#: ../docbrowser/browser.glade:2583
msgid "Monodoc Documentation Updates Uploader. "
msgstr ""
-#: docbrowser/browser.glade:2610
+#: ../docbrowser/browser.glade:2610
msgid "<b>Status:</b> "
msgstr ""
-#: docbrowser/browser.glade:2668
+#: ../docbrowser/browser.glade:2668
msgid "New Comment"
msgstr ""
-#: docbrowser/browser.glade:2690
+#: ../docbrowser/browser.glade:2690
msgid "TODO: Some advise on posting here."
msgstr ""
-#: docbrowser/browser.glade:2766
+#: ../docbrowser/browser.glade:2766
msgid "Title:"
msgstr ""
-#: docbrowser/browser.glade:2815
+#: ../docbrowser/browser.glade:2815
msgid "Comment"
msgstr ""
-#: docbrowser/browser.glade:2841
+#: ../docbrowser/browser.glade:2841
msgid "E-Mail:"
msgstr ""
-#: docbrowser/browser.glade:2867 docbrowser/browser.glade:3169
+#: ../docbrowser/browser.glade:2867 ../docbrowser/browser.glade:3169
msgid "Name:"
msgstr ""
-#: docbrowser/browser.glade:2987
+#: ../docbrowser/browser.glade:2987
msgid "Manage Bookmarks"
msgstr ""
-#: docbrowser/browser.glade:3071
+#: ../docbrowser/browser.glade:3071
msgid "New Folder"
msgstr ""
-#: docbrowser/browser.glade:3136
+#: ../docbrowser/browser.glade:3136
msgid "Add Bookmark"
msgstr ""
-#: docbrowser/browser.glade:3227
+#: ../docbrowser/browser.glade:3227
msgid "Create in:"
msgstr ""
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index cc67354..575746e 100644
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 26c8697..3eec5bb 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mono Tools\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-02-12 09:42-0700\n"
+"POT-Creation-Date: 2008-01-22 17:13-0500\n"
"PO-Revision-Date: 2004-07-06 00:13-0300\n"
"Last-Translator: Maurício de Lemos Rodrigues Collares Neto <mauricioc at gmail."
"com>\n"
@@ -18,6 +18,247 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+#: gnunit/src/AssemblyStore.cs:304
+msgid "Already running some test(s)."
+msgstr ""
+
+#: gnunit/src/AssemblyStore.cs:587
+msgid "Warning: unexpected combination."
+msgstr ""
+
+#: gnunit/src/AssemblyStore.cs:596
+#, csharp-format
+msgid "Don't know anything about {0}"
+msgstr ""
+
+#: gnunit/src/FileDialog.cs:26
+msgid "Select an assembly to load"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:10
+msgid "Mono NUnit2 GUI"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:72
+msgid "_Recent assemblies"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:92
+msgid "_Clear recent"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:165
+msgid "Enable/disable by category"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:166
+msgid "_Categories"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:219
+msgid "Open assembly"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:220
+msgid "Open"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:234
+msgid "Save results to a XML file"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:235
+#, fuzzy
+msgid "Save As"
+msgstr "_Salvar"
+
+#: gnunit/src/nunit-gtk.glade:249
+msgid "Run selected test fixture(s)"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:250 gnunit/src/nunit-gtk.glade:516
+msgid "Run"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:265 docbrowser/browser.glade:1538
+#: docbrowser/browser.glade:1917 docbrowser/browser.glade:2208
+#: docbrowser/browser.glade:2557
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: gnunit/src/nunit-gtk.glade:266
+msgid "Stop"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:280
+msgid "Exit program"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:281 docbrowser/browser.glade:138
+msgid "Quit"
+msgstr "Sair"
+
+#: gnunit/src/nunit-gtk.glade:390
+msgid "Test: "
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:588
+msgid "Errors and failures"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:641
+msgid "Tests not run"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:699
+msgid "Standard error"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:757
+msgid "Standard out"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:815 gnunit/src/main.cs:686
+msgid "Error"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:904
+#, fuzzy
+msgid "label"
+msgstr "label16"
+
+#: gnunit/src/nunit-gtk.glade:936 gnunit/src/main.cs:104
+msgid "Show details >>"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1009
+msgid "Error details"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1056
+msgid "File exists. Overwrite?"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1084
+msgid "Don't save results"
+msgstr ""
+
+#: gnunit/src/nunit-gtk.glade:1098
+msgid "Save results"
+msgstr ""
+
+#: gnunit/src/main.cs:37
+#, csharp-format
+msgid "<b>File {0} exists.</b>"
+msgstr ""
+
+#: gnunit/src/main.cs:38
+msgid "Do you want to overwrite it?"
+msgstr ""
+
+#: gnunit/src/main.cs:107
+msgid "Hide details <<"
+msgstr ""
+
+#: gnunit/src/main.cs:200
+msgid "Uncategorized"
+msgstr ""
+
+#: gnunit/src/main.cs:408
+msgid "No assembly loaded."
+msgstr ""
+
+#: gnunit/src/main.cs:434
+#, csharp-format
+msgid "Loading {0}..."
+msgstr ""
+
+#: gnunit/src/main.cs:546
+#, csharp-format
+msgid "Loading test {0} of {1}"
+msgstr ""
+
+#: gnunit/src/main.cs:557
+msgid "Error loading assembly"
+msgstr ""
+
+#: gnunit/src/main.cs:558
+#, csharp-format
+msgid "Error loading '{0}'"
+msgstr ""
+
+#: gnunit/src/main.cs:608
+msgid "translator_credits"
+msgstr ""
+
+#: gnunit/src/main.cs:630
+msgid "You have to select a test to run."
+msgstr ""
+
+#: gnunit/src/main.cs:660
+msgid "No test results available"
+msgstr ""
+
+#: gnunit/src/main.cs:661
+msgid "You must run some tests in order to get results to save."
+msgstr ""
+
+#: gnunit/src/main.cs:667
+msgid "Save results to..."
+msgstr ""
+
+#: gnunit/src/main.cs:676
+msgid "Results not saved."
+msgstr ""
+
+#: gnunit/src/main.cs:687
+msgid "There has been an error saving the results.\n"
+msgstr ""
+
+#: gnunit/src/main.cs:688
+msgid "Do you have correct permissions to write to that file?"
+msgstr ""
+
+#: gnunit/src/main.cs:696
+#, csharp-format
+msgid "Results saved to {0}"
+msgstr ""
+
+#: gnunit/src/main.cs:774
+#, csharp-format
+msgid "Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"
+msgstr ""
+
+#: gnunit/src/main.cs:952
+msgid "Running tests..."
+msgstr ""
+
+#: gnunit/src/main.cs:995
+msgid "Cancelled on user request."
+msgstr ""
+
+#: gnunit/src/main.cs:1033
+#, csharp-format
+msgid "{0} tests loaded."
+msgstr ""
+
+#: gnunit/src/main.cs:1051
+#, csharp-format
+msgid "Elapsed time: {0}"
+msgstr ""
+
+#: gnunit/src/main.cs:1061
+msgid "Unhandled Exception"
+msgstr ""
+
+#: gnunit/src/main.cs:1061
+msgid "There has been an unhandled exception.\n"
+msgstr ""
+
+#: gnunit/src/main.cs:1062
+msgid "The program will terminate now."
+msgstr ""
+
#: docbrowser/browser.glade:8
msgid "Mono Documentation Library"
msgstr "Biblioteca de documentação do Mono"
@@ -44,10 +285,6 @@ msgstr ""
msgid "_Close Tab"
msgstr "_Fechar"
-#: docbrowser/browser.glade:138
-msgid "Quit"
-msgstr "Sair"
-
#: docbrowser/browser.glade:164
msgid "_Edit"
msgstr "_Editar"
@@ -264,11 +501,6 @@ msgstr "1"
msgid "Monodoc is requesting an account for you."
msgstr "O Monodoc está requisitando uma conta para você."
-#: docbrowser/browser.glade:1538 docbrowser/browser.glade:1917
-#: docbrowser/browser.glade:2208 docbrowser/browser.glade:2557
-msgid "Cancel"
-msgstr "Cancelar"
-
#: docbrowser/browser.glade:1567
msgid "2"
msgstr "2"
@@ -461,14 +693,6 @@ msgstr "_Adicionar marcador"
msgid "Create in:"
msgstr ""
-#, fuzzy
-#~ msgid "Save As"
-#~ msgstr "_Salvar"
-
-#, fuzzy
-#~ msgid "label"
-#~ msgstr "label16"
-
#~ msgid "Editing"
#~ msgstr "Edição"
diff --git a/webdoc/App_Code/Plugins/Plugin.cs b/webdoc/App_Code/Plugins/Plugin.cs
new file mode 100644
index 0000000..93a37e4
--- /dev/null
+++ b/webdoc/App_Code/Plugins/Plugin.cs
@@ -0,0 +1,144 @@
+using System;
+using System.Web.Configuration;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace Mono.Website {
+ public class Plugin {
+
+ static string PluginsDefLocation = WebConfigurationManager.AppSettings["Plugins"];
+
+ public enum PluginContent {
+ Header,
+ Footer,
+ Css,
+ Javascript
+ }
+
+ //generates a list of files of a certain type in the plugins we are including,
+ //and spits out the necessary text to add to index.aspx
+ public static string GetPluginContent (PluginContent type)
+ {
+ var plugins_list_from_def = ParseExternalDefinition(PluginsDefLocation);
+ var paths_to_files = GetFilesTypeX(type, plugins_list_from_def);
+ return GetPluginContent (type, paths_to_files);
+ }
+
+ //Add the actual HTML to include either the reference or the content in index.aspx, for each plugin mentioned
+ //in the .def
+ static string GetPluginContent (PluginContent type, string[] paths_to_files)
+ {
+ if (type == PluginContent.Javascript) {
+ paths_to_files = Array.ConvertAll(paths_to_files, path =>
+ string.Format("{1}script type='text/javascript' src='{0}'{2}{1}/script{2}", path, '<', '>'));
+ //reverse the array so we get all our js dependencies correct :)
+ Array.Reverse(paths_to_files);
+ } else if (type == PluginContent.Css) {
+ paths_to_files = Array.ConvertAll(paths_to_files, path => string.Format("{1}link type='text/css' rel='stylesheet' media='screen' href='{0}'{2}", path, '<', '>'));
+ } else {
+ paths_to_files = Array.ConvertAll(paths_to_files, path => File.ReadAllText(path));
+ }
+
+ var content_to_inject = String.Join(String.Empty, paths_to_files);
+ return content_to_inject;
+ }
+
+ //returns files of a certain type from ALL directories.
+ static string[] GetFilesTypeX (PluginContent type, List<string> directories)
+ {
+ var all_typed_files = new List<string>();
+ foreach(var directory in directories) {
+ var files = GetFilesTypeX(type, directory);
+ all_typed_files.AddRange(files);
+ }
+ return all_typed_files.ToArray();
+ }
+
+ //grab files of type x from a directory
+ static List<string> GetFilesTypeX (PluginContent type, string directory)
+ {
+ try {
+ string criteria;
+ if(type == PluginContent.Javascript) {
+ criteria = "*.js";
+ } else if(type == PluginContent.Css) {
+ criteria = "*.css";
+ } else if(type == PluginContent.Footer) {
+ criteria = "footer.????";
+ } else if (type == PluginContent.Header) {
+ criteria = "header.????";
+ } else {
+ criteria = string.Empty;
+ }
+ var files_arr = GetFilesTypeX(directory, criteria);
+ List<string> files = new List<string>(files_arr);
+
+ var external = Directory.GetFiles(directory, "external.def");
+ if (external.Any()) {
+ try {
+ if (type == PluginContent.Css) {
+ files.AddRange(ParseExternalDefinition(external[0], ".css"));
+ } else if (type == PluginContent.Javascript) {
+ files.AddRange(ParseExternalDefinition(external[0], ".js"));
+ } else {
+ }
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+ return files;
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+
+ //recursively browse directories for files with a certain extension or file name
+ static List<string> GetFilesTypeX (string directory, string criteria)
+ {
+ try {
+ var filesFound = new List<string>();
+ foreach (string file in Directory.GetFiles(directory, criteria)) {
+ filesFound.Add(file);
+ }
+ foreach (string dir in Directory.GetDirectories(directory)) {
+ filesFound.AddRange(GetFilesTypeX(dir, criteria));
+ }
+ return filesFound;
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+
+ static List<string> ParseExternalDefinition (string definitionPath, string criteria)
+ {
+ //if definitionPath is undefined, or def file does not exist, don't bother
+ if (string.IsNullOrEmpty (definitionPath) || !File.Exists (definitionPath))
+ return null;
+ // read out the file
+ var lines = File.ReadAllLines (definitionPath);
+ //build our list
+ var files = lines.Where (line => !string.IsNullOrEmpty (line) && line[0] != '#') // Take non-empty, non-comment lines
+ .Where (file_path => file_path != null && file_path.Length > 2 && file_path.EndsWith(criteria))
+ .ToList ();
+ //returns a list of directories in which to look for plugin resources
+ return files;
+ }
+
+ //eats whatever .def file you feed it
+ static List<string> ParseExternalDefinition (string definitionPath)
+ {
+ //if definitionPath is undefined, or def file does not exist, don't bother
+ if (string.IsNullOrEmpty (definitionPath) || !File.Exists (definitionPath))
+ return null;
+ // read out the file
+ var lines = File.ReadAllLines (definitionPath);
+ //build our list
+ var directories = lines.Where (line => !string.IsNullOrEmpty (line) && line[0] != '#') // Take non-empty, non-comment lines
+ .Where (file_path => file_path != null && file_path.Length > 2)
+ .ToList ();
+ //returns a list of directories in which to look for plugin resources
+ return directories;
+ }
+ }
+}
diff --git a/webdoc/Global.asax b/webdoc/Global.asax
new file mode 100644
index 0000000..9540553
--- /dev/null
+++ b/webdoc/Global.asax
@@ -0,0 +1,125 @@
+<%@ Application ClassName="Mono.Website.Global" %>
+<%@ Import Namespace="Monodoc" %>
+<%@ Import Namespace="System.Web.Configuration" %>
+<%@ Import Namespace="System.Collections.Generic" %>
+<%@ Import Namespace="System.IO" %>
+<%@ Import Namespace="System.Linq" %>
+<%@ Assembly name="monodoc" %>
+
+<script runat="server" language="c#" >
+public static RootTree help_tree;
+[ThreadStatic]
+static SearchableIndex search_index;
+public static string ua = null;
+
+void Application_Start ()
+{
+ HelpSource.use_css = true;
+ HelpSource.FullHtml = false;
+ HelpSource.UseWebdocCache = true;
+ var rootDir = WebConfigurationManager.AppSettings["MonodocRootDir"];
+ if (!string.IsNullOrEmpty (rootDir))
+ help_tree = RootTree.LoadTree (rootDir);
+ else
+ help_tree = RootTree.LoadTree ();
+
+ //Google analytics if we want em
+ ua = WebConfigurationManager.AppSettings["GoogleAnalytics"];
+
+ SettingsHandler.Settings.EnableEditing = false;
+}
+
+/*----------------TREE BUILDING----------------*/
+public static readonly string kipunji_root_url = "http://docs.go-mono.com/";
+private static readonly string prefixes = "TNCFEMP";
+
+public static bool should_redirect_to_kipunji (string link)
+{
+ return prefixes.IndexOf (link [0]) > -1;
+}
+
+public static void redirect_to_kipunji (HttpContext context, string link)
+{
+ StringBuilder res = new StringBuilder ();
+ res.Append (kipunji_root_url);
+
+ if (link.StartsWith ("T:")) {
+
+ int end = link.Length;
+ string post = String.Empty;
+ if (link.Length > 3 && link [link.Length - 2] == '/') {
+ end = link.Length - 2;
+ switch (link [link.Length - 1]) {
+ case '*':
+ post = "/Members";
+ break;
+ case 'M':
+ post = "/Members#methods";
+ break;
+ case 'P':
+ post = "/Members#properties";
+ break;
+ case 'C':
+ post = "/Members#ctors";
+ break;
+ case 'F':
+ post = "/Members#fields";
+ break;
+ case 'E':
+ post = "/Members#events";
+ break;
+ }
+ }
+
+ res.Append (link.Substring (2, end - 2));
+ res.Append (post);
+
+ } else if (link.StartsWith ("C:")) {
+ // HACK: Instead of linking to the proper ctor just send them to all the ctors
+ res.AppendFormat ("{0}/Members#ctors", link.Substring (2, link.Length - 2));
+ } else if (link.StartsWith ("N:") || link.StartsWith ("M:") || link.StartsWith ("P:") || link.StartsWith ("C:") || link.StartsWith ("E:"))
+ res.Append (link.Substring (2, link.Length - 2));
+
+ context.Response.RedirectPermanent (res.ToString ());
+}
+
+public static string CreateTreeBootFragment ()
+{
+ var fragment = new System.Text.StringBuilder ();
+
+ for (int i = 0; i < help_tree.Nodes.Count; i++){
+ Node n = (Node)help_tree.Nodes [i];
+
+ string url = n.PublicUrl;
+
+ if (n.Caption == "Base Class Library" || n.Caption == "Mono Libraries")
+ url = kipunji_root_url + (n.Caption == "Base Class Library" ? "?display_all=true" : String.Empty);
+
+ fragment.Append ("tree.CreateItem (root, '" + n.Caption + "', '" + url + "', ");
+
+ if (n.Nodes.Count != 0)
+ fragment.Append ("'" + i + "'");
+ else
+ fragment.Append ("null");
+
+ if (i == help_tree.Nodes.Count-1)
+ fragment.Append (", true");
+ else
+ fragment.Append (", false");
+
+ fragment.Append (@");
+ ");
+ }
+
+ return fragment.ToString ();
+}
+
+/*------------SEARCH------------*/
+public static SearchableIndex GetSearchIndex ()
+{
+ if (search_index != null)
+ return search_index;
+ return (search_index = help_tree.GetSearchIndex ());
+}
+
+</script>
diff --git a/webdoc/Makefile.am b/webdoc/Makefile.am
index 4c02bf2..73d2517 100644
--- a/webdoc/Makefile.am
+++ b/webdoc/Makefile.am
@@ -1,97 +1,160 @@
webdir=$(prefix)/lib/monodoc/web
web_DATA = \
- common.css \
- edit.aspx \
- header.aspx \
- header.html \
+ Global.asax \
+ robots.txt \
index.aspx \
- index.html \
- login.aspx \
- logout.aspx \
- mono_logo_g.gif \
monodoc.ashx \
- monodoc.asmx \
- oldposts.xml \
- server.asmx \
- server.cs \
- sidebar.css \
- sidebar.js \
- tables.sql \
+ monodoc.css \
web.config \
- wiki2ecmahelper.xsl
+ api.master \
+ plugins.def \
+ README.md
DISTCLEANFILES =
.PHONY : \
- cleandb \
- db \
dist-hook \
web \
up
EXTRA_DIST = \
- $(wildcard images/*.gif) \
- $(wildcard images/*.png) \
- $(wildcard ptree/tree*) \
- $(wildcard xtree/*.js) \
- $(wildcard xtree/*.css) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/clean/*.gif) \
- $(wildcard xtree/images/msdn/*.gif) \
- $(wildcard xtree/images/msdn2/*.gif)
- $(wildcard xtree/images/xp/*.png)
+ $(wildcard App_Code/Plugins/*.cs) \
+ $(wildcard views/*.css) \
+ $(wildcard views/*.js) \
+ $(wildcard views/*.html) \
+ $(wildcard views/images/*.png) \
+ $(wildcard views/images/*.gif) \
+ $(wildcard skins/mono-external/header*) \
+ $(wildcard skins/mono-external/footer*) \
+ $(wildcard skins/mono-external/*.css) \
+ $(wildcard skins/mono-external/*.js) \
+ $(wildcard skins/mono-external/images/*.png) \
+ $(wildcard skins/mono-external/images/*.gif) \
+ $(wildcard plugins/iframe-plugin/*.js) \
+ $(wildcard plugins/iframe-plugin/*.css) \
+ $(wildcard plugins/iframe-plugin/*.html) \
+ $(wildcard plugins/tooltip-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/*.png) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/clean/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/xp/*.png) \
+ $(wildcard plugins/search-plugin/images/*.gif) \
+ $(wildcard plugins/search-plugin/fullsearch/*.css) \
+ $(wildcard plugins/search-plugin/fullsearch/*.js) \
+ $(wildcard plugins/search-plugin/fullsearch/*.html) \
+ $(wildcard plugins/search-plugin/fastsearch/*.css) \
+ $(wildcard plugins/search-plugin/fastsearch/*.js)
dist-hook:
- mkdir -p $(distdir)/images
- mkdir -p $(distdir)/xtree/images/msdn
- mkdir -p $(distdir)/xtree/images/msdn2
- mkdir -p $(distdir)/xtree/images/xp
- mkdir -p $(distdir)/ptree
+ mkdir -p $(distdir)/App_Code/Plugins
+ mkdir -p $(distdir)/views/images
+ mkdir -p $(distdir)/skins/mono-external/images
+ mkdir -p $(distdir)/plugins/iframe-plugin
+ mkdir -p $(distdir)/plugins/tooltip-plugin
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ mkdir -p $(distdir)/plugins/search-plugin/images
+ mkdir -p $(distdir)/plugins/search-plugin/fastsearch
+ mkdir -p $(distdir)/plugins/search-plugin/fullsearch
for f in $(web_DATA) ; do cp $(srcdir)/$$f $(distdir) ; done
- cp $(srcdir)/images/*gif $(distdir)/images
- cp $(srcdir)/images/*png $(distdir)/images
- cp $(srcdir)/xtree/images/msdn/*gif $(distdir)/xtree/images/msdn
- cp $(srcdir)/xtree/images/msdn2/*gif $(distdir)/xtree/images/msdn2
- cp $(srcdir)/xtree/images/xp/*png $(distdir)/xtree/images/xp
- cp $(srcdir)/xtree/images/*png $(distdir)/xtree/images
- cp $(srcdir)/xtree/*js $(distdir)/xtree
- cp $(srcdir)/xtree/*css $(distdir)/xtree
- cp $(srcdir)/ptree/*css $(distdir)/ptree
- cp $(srcdir)/ptree/*js $(distdir)/ptree
+ cp $(srcdir)/App_Code/Plugins/*cs $(distdir)/App_Code/Plugins
+ cp $(srcdir)/views/*css $(distdir)/views
+ cp $(srcdir)/views/*js $(distdir)/views
+ cp $(srcdir)/views/images/*png $(distdir)/views/images
+ cp $(srcdir)/views/images/*ico $(distdir)/views/images
+ cp $(srcdir)/skins/mono-external/header* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/footer* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/*css $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/images/*png $(distdir)/skins/mono-external/images
+ cp $(srcdir)/skins/mono-external/images/*gif $(distdir)/skins/mono-external/images
+ cp $(srcdir)/plugins/iframe-plugin/*js $(distdir)/plugins/iframe-plugin
+ cp $(srcdir)/plugins/tooltip-plugin/*js $(distdir)/plugins/tooltip-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*css $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*js $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ cp $(srcdir)/plugins/search-plugin/images/*gif $(distdir)/plugins/search-plugin/images
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*css $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*js $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*html $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fastsearch/*css $(distdir)/plugins/search-plugin/fastsearch
+ cp $(srcdir)/plugins/search-plugin/fastsearch/*js $(distdir)/plugins/search-plugin/fastsearch
install-data-hook:
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/ptree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn2
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/images/*gif $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/images/*png $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/xtree/images/msdn
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/xtree/images/msdn2
- $(INSTALL_DATA) $(srcdir)/xtree/images/xp/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/images/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/*js $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/xtree/*css $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/ptree/*css $(DESTDIR)$(webdir)/ptree
- $(INSTALL_DATA) $(srcdir)/ptree/*js $(DESTDIR)$(webdir)/ptree
-
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/App_Code/Plugins
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/views/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/skins/mono-external/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/App_Code/Plugins/*cs $(DESTDIR)$(webdir)/App_Code/Plugins
+ $(INSTALL_DATA) $(srcdir)/views/*css $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*js $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*html $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/images/*png $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/views/images/*gif $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/header* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/footer* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*css $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*js $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*png $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*gif $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugins/*css $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*js $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*html $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/tooltip-plugin/*js $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/images/*gif $(DESTDIR)$(webdir)/plugins/search-plugin/images
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*css $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*js $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*html $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fastsearch/*css $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fastsearch/*js $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+
Monodoc.Contributions.dll: server.cs Makefile.am
mcs -debug+ $< -target:library -out:$@ -r:System.Web -r:System.Web.Services -pkg:monodoc -r:System.Data -r:ByteFX.Data
web: Monodoc.Contributions.dll
xsp
-db:
- mysql -u admin -p
-
-cleandb:
- mysql -u admin -p < tables.sql
-
up:
- scp tables.sql server.cs server.asmx monodoc.dll root at www.go-mono.com:
+ scp monodoc.dll root at www.go-mono.com:
diff --git a/webdoc/Makefile.in b/webdoc/Makefile.in
index 065a061..fe91494 100644
--- a/webdoc/Makefile.in
+++ b/webdoc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +16,27 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -39,18 +58,44 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(webdir)"
-webDATA_INSTALL = $(INSTALL_DATA)
DATA = $(web_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
@@ -113,6 +158,7 @@ MAKEINFO = @MAKEINFO@
MCS = @MCS@
MDOC = @MDOC@
MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_LIBS = @MONODOC_LIBS@
MOZILLA_HOME = @MOZILLA_HOME@
@@ -126,9 +172,12 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
@@ -200,38 +249,52 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
webdir = $(prefix)/lib/monodoc/web
web_DATA = \
- common.css \
- edit.aspx \
- header.aspx \
- header.html \
+ Global.asax \
+ robots.txt \
index.aspx \
- index.html \
- login.aspx \
- logout.aspx \
- mono_logo_g.gif \
monodoc.ashx \
- monodoc.asmx \
- oldposts.xml \
- server.asmx \
- server.cs \
- sidebar.css \
- sidebar.js \
- tables.sql \
+ monodoc.css \
web.config \
- wiki2ecmahelper.xsl
+ api.master \
+ plugins.def \
+ README.md
DISTCLEANFILES =
EXTRA_DIST = \
- $(wildcard images/*.gif) \
- $(wildcard images/*.png) \
- $(wildcard ptree/tree*) \
- $(wildcard xtree/*.js) \
- $(wildcard xtree/*.css) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/clean/*.gif) \
- $(wildcard xtree/images/msdn/*.gif) \
- $(wildcard xtree/images/msdn2/*.gif)
+ $(wildcard App_Code/Plugins/*.cs) \
+ $(wildcard views/*.css) \
+ $(wildcard views/*.js) \
+ $(wildcard views/*.html) \
+ $(wildcard views/images/*.png) \
+ $(wildcard views/images/*.gif) \
+ $(wildcard skins/mono-external/header*) \
+ $(wildcard skins/mono-external/footer*) \
+ $(wildcard skins/mono-external/*.css) \
+ $(wildcard skins/mono-external/*.js) \
+ $(wildcard skins/mono-external/images/*.png) \
+ $(wildcard skins/mono-external/images/*.gif) \
+ $(wildcard plugins/iframe-plugin/*.js) \
+ $(wildcard plugins/iframe-plugin/*.css) \
+ $(wildcard plugins/iframe-plugin/*.html) \
+ $(wildcard plugins/tooltip-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/*.png) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/clean/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/xp/*.png) \
+ $(wildcard plugins/search-plugin/images/*.gif) \
+ $(wildcard plugins/search-plugin/fullsearch/*.css) \
+ $(wildcard plugins/search-plugin/fullsearch/*.js) \
+ $(wildcard plugins/search-plugin/fullsearch/*.html) \
+ $(wildcard plugins/search-plugin/fastsearch/*.css) \
+ $(wildcard plugins/search-plugin/fastsearch/*.js)
all: all-am
@@ -240,14 +303,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu webdoc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu webdoc/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu webdoc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu webdoc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -265,23 +328,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
install-webDATA: $(web_DATA)
@$(NORMAL_INSTALL)
- test -z "$(webdir)" || $(MKDIR_P) "$(DESTDIR)$(webdir)"
- @list='$(web_DATA)'; for p in $$list; do \
+ @list='$(web_DATA)'; test -n "$(webdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(webdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(webdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(webDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(webdir)/$$f'"; \
- $(webDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(webdir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(webdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(webdir)" || exit $$?; \
done
uninstall-webDATA:
@$(NORMAL_UNINSTALL)
- @list='$(web_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(webdir)/$$f'"; \
- rm -f "$(DESTDIR)$(webdir)/$$f"; \
- done
+ @list='$(web_DATA)'; test -n "$(webdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(webdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
@@ -305,13 +373,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -335,16 +407,22 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@@ -364,6 +442,8 @@ dvi-am:
html: html-am
+html-am:
+
info: info-am
info-am:
@@ -371,21 +451,30 @@ info-am:
install-data-am: install-webDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
-
install-dvi: install-dvi-am
+install-dvi-am:
+
install-exec-am:
install-html: install-html-am
+install-html-am:
+
install-info: install-info-am
+install-info-am:
+
install-man:
install-pdf: install-pdf-am
+install-pdf-am:
+
install-ps: install-ps-am
+install-ps-am:
+
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -421,49 +510,104 @@ uninstall-am: uninstall-webDATA
.PHONY : \
- cleandb \
- db \
dist-hook \
web \
up
- $(wildcard xtree/images/xp/*.png)
dist-hook:
- mkdir -p $(distdir)/images
- mkdir -p $(distdir)/xtree/images/msdn
- mkdir -p $(distdir)/xtree/images/msdn2
- mkdir -p $(distdir)/xtree/images/xp
- mkdir -p $(distdir)/ptree
+ mkdir -p $(distdir)/App_Code/Plugins
+ mkdir -p $(distdir)/views/images
+ mkdir -p $(distdir)/skins/mono-external/images
+ mkdir -p $(distdir)/plugins/iframe-plugin
+ mkdir -p $(distdir)/plugins/tooltip-plugin
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ mkdir -p $(distdir)/plugins/search-plugin/images
+ mkdir -p $(distdir)/plugins/search-plugin/fastsearch
+ mkdir -p $(distdir)/plugins/search-plugin/fullsearch
for f in $(web_DATA) ; do cp $(srcdir)/$$f $(distdir) ; done
- cp $(srcdir)/images/*gif $(distdir)/images
- cp $(srcdir)/images/*png $(distdir)/images
- cp $(srcdir)/xtree/images/msdn/*gif $(distdir)/xtree/images/msdn
- cp $(srcdir)/xtree/images/msdn2/*gif $(distdir)/xtree/images/msdn2
- cp $(srcdir)/xtree/images/xp/*png $(distdir)/xtree/images/xp
- cp $(srcdir)/xtree/images/*png $(distdir)/xtree/images
- cp $(srcdir)/xtree/*js $(distdir)/xtree
- cp $(srcdir)/xtree/*css $(distdir)/xtree
- cp $(srcdir)/ptree/*css $(distdir)/ptree
- cp $(srcdir)/ptree/*js $(distdir)/ptree
+ cp $(srcdir)/App_Code/Plugins/*cs $(distdir)/App_Code/Plugins
+ cp $(srcdir)/views/*css $(distdir)/views
+ cp $(srcdir)/views/*js $(distdir)/views
+ cp $(srcdir)/views/images/*png $(distdir)/views/images
+ cp $(srcdir)/views/images/*ico $(distdir)/views/images
+ cp $(srcdir)/skins/mono-external/header* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/footer* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/*css $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/images/*png $(distdir)/skins/mono-external/images
+ cp $(srcdir)/skins/mono-external/images/*gif $(distdir)/skins/mono-external/images
+ cp $(srcdir)/plugins/iframe-plugin/*js $(distdir)/plugins/iframe-plugin
+ cp $(srcdir)/plugins/tooltip-plugin/*js $(distdir)/plugins/tooltip-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*css $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*js $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ cp $(srcdir)/plugins/search-plugin/images/*gif $(distdir)/plugins/search-plugin/images
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*css $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*js $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fullsearch/*html $(distdir)/plugins/search-plugin/fullsearch
+ cp $(srcdir)/plugins/search-plugin/fastsearch/*css $(distdir)/plugins/search-plugin/fastsearch
+ cp $(srcdir)/plugins/search-plugin/fastsearch/*js $(distdir)/plugins/search-plugin/fastsearch
install-data-hook:
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/ptree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn2
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/images/*gif $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/images/*png $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/xtree/images/msdn
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/xtree/images/msdn2
- $(INSTALL_DATA) $(srcdir)/xtree/images/xp/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/images/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/*js $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/xtree/*css $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/ptree/*css $(DESTDIR)$(webdir)/ptree
- $(INSTALL_DATA) $(srcdir)/ptree/*js $(DESTDIR)$(webdir)/ptree
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/App_Code/Plugins
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/views/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/skins/mono-external/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/App_Code/Plugins/*cs $(DESTDIR)$(webdir)/App_Code/Plugins
+ $(INSTALL_DATA) $(srcdir)/views/*css $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*js $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*html $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/images/*png $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/views/images/*gif $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/header* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/footer* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*css $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*js $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*png $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*gif $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugins/*css $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*js $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*html $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/tooltip-plugin/*js $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/images/*gif $(DESTDIR)$(webdir)/plugins/search-plugin/images
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*css $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*js $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fullsearch/*html $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fastsearch/*css $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search-plugin/fastsearch/*js $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
Monodoc.Contributions.dll: server.cs Makefile.am
mcs -debug+ $< -target:library -out:$@ -r:System.Web -r:System.Web.Services -pkg:monodoc -r:System.Data -r:ByteFX.Data
@@ -471,14 +615,9 @@ Monodoc.Contributions.dll: server.cs Makefile.am
web: Monodoc.Contributions.dll
xsp
-db:
- mysql -u admin -p
-
-cleandb:
- mysql -u admin -p < tables.sql
-
up:
- scp tables.sql server.cs server.asmx monodoc.dll root at www.go-mono.com:
+ scp monodoc.dll root at www.go-mono.com:
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/webdoc/README.md b/webdoc/README.md
new file mode 100644
index 0000000..c518213
--- /dev/null
+++ b/webdoc/README.md
@@ -0,0 +1,41 @@
+Webdoc
+======
+
+Webdoc is the web container for monodoc. It normally includes:
+
+ - a header
+ - a footer
+ - a navigation tree
+ - the monodoc iframe
+
+Structure
+---------
+
+Each webdoc instance consists of a skin (theme, chrome) and several plugins.
+
+Plugins are located in the plugins directory. The plugins currently available are:
+
+ - iframe: helps size the iframe correctly in your webdoc instance. Recommended unless you want to
+use your own code for that
+ - sidebar: left navigation tree. Again, recommended unless you feel like writign and wiring up your own (good luck!)
+ - fast search: searches while you type
+ - full search: returns a page of search results (`search.html`). Can be styled however you like.
+
+Skins are located in the skins directory. Each skin consists of:
+
+ - `header.html` (required)
+ - `footer.html` (required)
+ - additional css and js (usually placed in the `common-extension.css`/`common-extension.js` file)
+ - images folder (optional)
+
+How to Use
+----------
+
+Making a new instance of webdoc is easy. First, you need to edit web.config to point
+to the location of your monodoc source root.
+
+`MonodocRootDir` -> monodoc source root
+
+Next, throw your skin into the skins directory (or use one that's already there).
+
+Edit the `plugins.def` file, uncommenting the plugins you want to use, and setting the location of your skin.
diff --git a/webdoc/api.master b/webdoc/api.master
new file mode 100644
index 0000000..be2750c
--- /dev/null
+++ b/webdoc/api.master
@@ -0,0 +1,39 @@
+<%@ Master Language="C#" %>
+<%@ Import Namespace="System.Web" %>
+<%@ Import Namespace="System.Collections.Specialized" %>
+<%@ Import Namespace="System.Web.Configuration" %>
+<%@ Import Namespace="Mono.Website" %>
+<%@ Assembly name="monodoc" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
+ 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+
+<head runat="server" >
+ <title><% = WebConfigurationManager.AppSettings["Title"] %></title>
+ <link href="views/images/favicon.ico" type="image/png" rel="icon">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" >
+ <link type="text/css" rel="stylesheet" href="/views/reset.css"/>
+ <link type="text/css" rel="stylesheet" href="/views/common.css"/>
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Css) %>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+ <script type="text/javascript" src="http://new.xamarin.com/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript" src="/views/common.js"></script>
+</head>
+
+<body>
+<% = Plugin.GetPluginContent (Plugin.PluginContent.Header) %>
+<form id="application_content" runat="server">
+ <asp:contentplaceholder id="Main" runat="server" />
+ <asp:contentplaceholder id="FastSearch" runat="server" />
+
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Footer) %>
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Javascript) %>
+
+ <!--uncomment if you want to use the sidebar plugin-->
+ <asp:contentplaceholder id="CustomTreeGenerator" runat="server" />
+</form>
+</body>
+
+</html>
+
diff --git a/webdoc/common.css b/webdoc/common.css
deleted file mode 100644
index 030d043..0000000
--- a/webdoc/common.css
+++ /dev/null
@@ -1,175 +0,0 @@
-body {
- background-color: #ffffff;
- margin: 0px;
- padding: 0px;
-}
-
-.HeaderTable {
- border: 2px solid #99aadd;
-}
-
-body, td, th {
- font-family: Verdana, sans-serif; font-size: 12px;
- color: black;
-}
-
-.SignatureTable, .MemberSignatureTable {
- border: 1px solid #DDDDDD;
-}
-
-.Footer {
- border-top: 2px solid #E5E5E5;
- padding-left: 1em;
-}
-
-.Footer hr {
- display: none;
-}
-
-h1, h2, h3, h4 {
- font-family: Verdana,sans-serif;
- font-weight: bold;
-}
-
-h1 {
-}
-
-h3 {
-}
-
-h4 {
-}
-
-.MasterNamespaceLink a {
- font-weight: bold;
- text-decoration: none;
-}
-.MasterNamespaceDescription {
- margin-left: 2em;
-}
-
-img {
- border: 0;
- vertical-align: top;
-}
-
-.copyright {
- border:1px solid black;
- padding-left:5px;
- padding-right:5px;
- padding-top:5px;
- padding-bottom:5px;
- background-color:#BEBAA8;
- font-size:9px;
- margin-top: 10pt;
- margin-left: -15pt;
- margin-right: -15pt;
-}
-
-.important {
- padding-left:2px;
- padding-right:2px;
- padding-top:2px;
- padding-bottom:2px;
- background-color:#000000;
- color:#ffffff;
-}
-
-.menu {
- font-family:Arial, Verdana;
- font-size:12px;
- font-weight:bold;
-}
-
-.navbar{
- color:black;
- font-family:Arial, Verdana;
- font-size:10px;
- border-bottom:1px solid #000000;
- border-left:1px solid black;
- border-right:1px solid black;
- background-color:#efefef;
- padding-left:2px;
- padding-right:2px;
- padding-top:2px;
- padding-bottom:2px;
- margin-left: -15pt;
- margin-right: -15pt;
-}
-
-.topframe {
- background-image:url(images/backbig.png);
- border:1px solid #000000;
- background-color:#BEBAA8;
- margin-left: -15pt;
- margin-right: -15pt;
-}
-
-.chapter {
- font-size:14px;
- font-weight:bold;
- color:#444444;
- padding-left:0px;
- padding-right:0px;
- padding-top:0px;
- padding-bottom:0px;
-}
-
-.table {
- padding-left:2px;
- padding-right:2px;
- padding-top:0px;
- padding-bottom:0px;
- background-color:#efefef;
- border:1px solid #c0c0c0;
-}
-
-.elementOn {
- color:#a40000;
-}
-
-.element {
- color:#0000a4;
-}
-
-.code {
- font-size: small;
- font-family: "Courier New", Courier;
- line-height:110%;
-}
-
-.box {
- padding:15px;
- font-size: small;
- background:whitesmoke;
- border: solid 1px silver;
-}
-
-.console {
- border-style: solid;
- background: whitesmoke;
- border-width: 1px;
- padding: 2pt;
- margin:15px;
-}
-
-.headerlink {
- vertical-align:bottom;
-}
-
-a {
- color: blue;
-}
-a:visited {
- color: blue;
-}
-
-td a {
- text-decoration: none;
-}
-
-.HeaderTable a {
- color: black;
- text-decoration: underline;
-}
-
diff --git a/webdoc/edit.aspx b/webdoc/edit.aspx
deleted file mode 100644
index f2ad4de..0000000
--- a/webdoc/edit.aspx
+++ /dev/null
@@ -1,62 +0,0 @@
-<%@ Assembly name="monodoc" %>
-<%@ Import Namespace="Monodoc" %>
-<%@ Import Namespace="System.Xml" %>
-<%@ Import Namespace="System.IO" %>
-<html>
-<head>
- <script language="C#" runat=server>
- static RootTree help_tree = RootTree.LoadTree ();
-
- void Page_Load (object sender, EventArgs ea)
- {
- HttpWorkerRequest r = (HttpWorkerRequest) ((IServiceProvider)Context).GetService (typeof (HttpWorkerRequest));
- //
- // We need the untouched QueryString, as internally the editor uses the `@' symbol as a separator.
- //
- string q = Request ["link"];
- Console.WriteLine ("QueryString: " + q);
- try {
- XmlNode edit_node = EditingUtils.GetNodeFromUrl ("edit:" + q, help_tree);
- Monodoc2Wiki m2w = new Monodoc2Wiki ();
- Console.WriteLine ("XML TO TEXT: " + edit_node.InnerText);
- EditBuffer.Text = m2w.ProcessNode ((XmlElement) edit_node);
- } catch (Exception e){
- EditBuffer.Text = Request.QueryString.ToString () + e.ToString ();
- }
- }
-
- void Save (object o, EventArgs a)
- {
-
- }
-
- void Preview (object o, EventArgs a)
- {
- WikiStyleDocConverter p = new WikiStyleDocConverter (EditBuffer.Text);
- XmlNode result = p.ParseEntireDoc ();
-
- StringWriter sw = new StringWriter ();
- sw.Write ("YOOHO:" + result.InnerText);
- XmlTextWriter xw = new XmlTextWriter (sw);
- xw.Formatting = Formatting.Indented;
- result.WriteTo (xw);
- xw.Close ();
-
- TextPreview.Text = "Preview<BR>" + sw.ToString ();
- }
- </script>
-</head>
-
-<body>
- <form runat=server>
- <asp:Label id="TextPreview" runat=server/>
- <asp:TextBox id="EditBuffer" Text="multiline" TextMode="MultiLine" runat="server" rows=15 cols=80 />
- <p>
- <asp:Button Text="Save Page" OnClick="Save" runat=server/>
- <asp:Button Text="Show Preview" OnClick="Preview" runat=server/>
- <asp:LinkButton Text="Markup Help" runat=server/>
- <asp:LinkButton Text="Cancel" runat=server/>
- </form>
-</body>
-
-</html>
\ No newline at end of file
diff --git a/webdoc/header.aspx b/webdoc/header.aspx
deleted file mode 100644
index 0634f24..0000000
--- a/webdoc/header.aspx
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
- <title>MonoDoc Header</title>
- <meta name="description" content="Mono Documentation header">
- <link rel="stylesheet" type="text/css" href="common.css" media="all"
- title='Default Style'/>
- <style>
-img.toolbarsep {
- border: 0px;
- margin-bottom: 1px;
- margin-top: 1px;
- padding-top: 3px;
- padding-bottom: 3px;
- vertical-align: middle;
-}
-
-img.toolbar {
- border: 0px;
- margin: 1px;
- padding: 3px;
- vertical-align: middle;
-}
-
-img.toolbar:hover {
- border-left: 1px solid white;
- border-right: 1px solid #B1A598;
- border-top: 1px solid white;
- border-bottom: 1px solid #B1A598;
- margin: 0px;
-}
-
-img.toolbar:active {
- border-right: 1px solid white;
- border-left: 1px solid #B1A598;
- border-bottom: 1px solid white;
- border-top: 1px solid #B1A598;
-}
-
-
-#login {
- position: fixed;
- top: 0px;
- right: 0px;
- float: right;
- padding: 5px;
-}
-
-#rightSide {
- position: fixed;
- bottom: 0px;
- right: 0px;
- float: right;
- padding: 5px;
-}
-#header {
- background: #679EF1 url(mdocimages/headerbg.png) no-repeat 100% 50%;
- background-color: #679EF1;
- background-position: 100% 50%;
- background-repeat: no-repeat;
- border-bottom: 1px dotted #3363BD;
- color: black;
- height: 40px;
- margin-bottom: 0px;
- padding: 0px 0px 0px 15px;
- position: relative;
-}
-#header h1 {
- color: white;
- font-family: arial, helvetica, verdana, sans-serif;
- font-size: 22px;
- font-weight: bold;
- line-height: 1.8em;
-}
-
- </style>
-
- <script language="C#" runat=server>
- void Page_Load (object sender, EventArgs e)
- {
- if (User.Identity.IsAuthenticated){
- login.NavigateUrl = "logout.aspx";
- login.Text = "Logged in as " + User.Identity.Name;
- } else {
- login.NavigateUrl = "javascript:parent.content.login (parent.content.window.location)";
- //login.Text = "Sign in / create account";
- }
- }
- </script>
-
-</head>
-
-<body
-style="color: rgb(255, 255, 255); background-color: #c0dda2;"
-link="#ffffff" alink="#ffffff" vlink="#ffffff">
-<div id="header">
- <h1>Mono Documentation</h1>
-</div>
-<div id="dlogin">
- <asp:HyperLink id="login" runat="server" target="_top"/>
-</div>
-
-<div id="rightSide">
- <a href="javascript:parent.content.print();">
- <img class="toolbar" src="images/print.png" alt="Print"
- title="Print this document"/>
- </a>
- <a target="_top" id="pageLink" href="/">
- <img class="toolbar" src="images/link.png" alt="Link to this
- document" title="Link to this document"/>
- </a>
-</div>
-
-
-</body>
-</html>
diff --git a/webdoc/header.html b/webdoc/header.html
deleted file mode 100644
index 73f8d72..0000000
--- a/webdoc/header.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
- <title>MonoDoc Header</title>
- <meta name="description" content="Mono Documentation header">
- <link rel="stylesheet" type="text/css" href="common.css" media="all"
- title='Default Style'/>
- <style>
-img.toolbarsep {
- border: 0px;
- margin-bottom: 1px;
- margin-top: 1px;
- padding-top: 3px;
- padding-bottom: 3px;
- vertical-align: middle;
-}
-
-img.toolbar {
- border: 0px;
- margin: 1px;
- padding: 3px;
- vertical-align: middle;
-}
-
-img.toolbar:hover {
- border-left: 1px solid white;
- border-right: 1px solid #B1A598;
- border-top: 1px solid white;
- border-bottom: 1px solid #B1A598;
- margin: 0px;
-}
-
-img.toolbar:active {
- border-right: 1px solid white;
- border-left: 1px solid #B1A598;
- border-bottom: 1px solid white;
- border-top: 1px solid #B1A598;
-}
-
-
-#rightSide {
- position: fixed;
- bottom: 0px;
- right: 0px;
- float: right;
- padding: 5px;
-}
- </style>
-</head>
-
-<body
-style="color: rgb(255, 255, 255); background-color: #c0dda2;"
-link="#ffffff" alink="#ffffff" vlink="#ffffff">
-
-<a href="index.aspx" class="headerlink" target="_top"><img
- src="images/mono-logo.png" alt="Mono"
- style="border: 0px solid ; height:75;" /></a>
-
-<div id="rightSide">
- <a href="javascript:parent.content.print();"><img class="toolbar" src="images/print.png" alt="Print" title="Print this document"/></a>
- <a target="_top" id="pageLink" href="/"><img class="toolbar" src="images/link.png" alt="Link to this document" title="Link to this document"/></a>
-</div>
-</body>
-</html>
diff --git a/webdoc/images/link.png b/webdoc/images/link.png
deleted file mode 100644
index 2e83ffe..0000000
Binary files a/webdoc/images/link.png and /dev/null differ
diff --git a/webdoc/images/print.png b/webdoc/images/print.png
deleted file mode 100644
index 077e5bc..0000000
Binary files a/webdoc/images/print.png and /dev/null differ
diff --git a/webdoc/index.aspx b/webdoc/index.aspx
index 77515ce..772c6bb 100644
--- a/webdoc/index.aspx
+++ b/webdoc/index.aspx
@@ -1,40 +1,56 @@
-<%@ Page Language="C#" ClassName="Mono.Website.Index" %>
-<%@ Import Namespace="System.Web" %>
-<%@ Import Namespace="System.Collections.Specialized" %>
-<html>
- <head>
- <title><%=GetTitle ()%></title>
- </head>
- <script language="c#" runat="server">
- public string GetTitle ()
- {
- return Global.help_tree.GetTitle (Request.QueryString ["link"]);
- }
+<%@ Page Language="C#" ClassName="Mono.Website.Index" MasterPageFile="api.master" %>
+<%@ Assembly name="monodoc" %>
- // Get the path to be shown in the content fram
- string getContentFrame()
- {
- // Docs get shown from monodoc.ashx
- string monodocUrl="monodoc.ashx";
- string defaultParams="?link=root:";
- NameValueCollection qStringParams=Request.QueryString;
+<asp:Content ID="Main" ContentPlaceHolderID="Main" Runat="Server">
+<script language="c#" runat="server">
+public string GetTitle ()
+{
+return Global.help_tree.GetTitle (Request.QueryString ["link"]);
+}
+// Get the path to be shown in the content frame
+string getContentFrame()
+{
+// Docs get shown from monodoc.ashx
+string monodocUrl="monodoc.ashx";
+string defaultParams="?link=root:";
+NameValueCollection qStringParams=Request.QueryString;
- // If no querystring params, show root link
- if(!qStringParams.HasKeys())
- return(monodocUrl+defaultParams);
- // else, build query for the content frame
- string nQueryString=monodocUrl+"?";
- foreach(string key in qStringParams)
- nQueryString+=(HttpUtility.UrlEncode(key)+"="+HttpUtility.UrlEncode(qStringParams[key]));
- return nQueryString;
- }
- </script>
+// If no querystring params, show root link
+if(!qStringParams.HasKeys())
+return(monodocUrl+defaultParams);
+// else, build query for the content frame
+string nQueryString=monodocUrl+"?";
+ foreach(string key in qStringParams)
+ nQueryString+=(HttpUtility.UrlEncode(key)+"="+HttpUtility.UrlEncode(qStringParams[key]));
+ return nQueryString;
+}
+</script>
+
+<div id="content_frame_wrapper"><iframe id="content_frame" src="<% =getContentFrame() %>"></iframe></div>
+</asp:Content>
+
+<asp:Content ID="fsearch" ContentPlaceHolderID="FastSearch" Runat="Server">
+<div id="fsearch_companion"></div>
+<div id="fsearch_window"></div>
+</asp:Content>
+
+<asp:Content ID="CustomTree" ContentPlaceHolderID="CustomTreeGenerator" Runat="Server">
+<script type="text/javascript">
+ //create a container for the sidebar to sit in
+ var container = $("#sidebar_container");
+ container.append("<div id=\"side\"><div id=\"contents\" class=\"activeTab\"><div id=\"contentList\"></div></div></div>");
+
+ //populate the sidebar with our data
+ var tree = new PTree ();
+ tree.strSrcBase = 'monodoc.ashx?tree=';
+ tree.strActionBase = '?link=';
+ tree.strImagesBase = 'plugins/sidebar-plugin/dependencies/xtree/images/msdn2/';
+ tree.strImageExt = '.gif';
+ tree.onClickCallback = function (url) { change_page (url); };
+ var content = document.getElementById ('contentList');
+ var root = tree.CreateItem (null, '', 'root:', '', true);
+ content.appendChild (root);
+ <% = Global.CreateTreeBootFragment () %>
+</script>
+</asp:Content>
-<frameset rows="40,*" frameborder="0" border="1">
- <frame src="header.aspx" name="Header" id='header' scrolling="no" noresize="true" />
- <frameset cols="20%,80%" frameborder="1" border="1">
- <frame src="monodoc.ashx?tree=boot" name="Tree" />
- <frame src="<% =getContentFrame() %>" name="content" />
- </frameset>
-</frameset>
-</html>
diff --git a/webdoc/index.html b/webdoc/index.html
deleted file mode 100644
index ea7d7ef..0000000
--- a/webdoc/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
- <head>
- <title>Mono Documentation</title>
- </head>
-
- <frameset cols="20%,80%">
- <frame src="monodoc.ashx?tree=boot">
- <frame src="monodoc.ashx?link=root:" name="content">
- </frameset>
-</html>
\ No newline at end of file
diff --git a/webdoc/login.aspx b/webdoc/login.aspx
deleted file mode 100644
index c676221..0000000
--- a/webdoc/login.aspx
+++ /dev/null
@@ -1,68 +0,0 @@
-<%@ Import Namespace="System.Web.Security" %>
-<html>
-<script language="C#" runat=server>
-
- void Allow ()
- {
- FormsAuthentication.RedirectFromLoginPage (UserEmail.Value, false);
- // PersistCookie.Checked);
- }
-
- void Login_Click (object sender, EventArgs e)
- {
- FormsAuthenticationTicket trust = null;
- HttpCookie c;
-
- switch (UserEmail.Value){
- case "miguel":
- trust = new FormsAuthenticationTicket ("high", false, 1);
- c = new HttpCookie ("level", FormsAuthentication.Encrypt (trust));
- Response.AppendCookie (c);
- Allow ();
- break;
- case "guest":
- trust = new FormsAuthenticationTicket ("low", false, 1);
- c = new HttpCookie ("level", FormsAuthentication.Encrypt (trust));
- Response.AppendCookie (c);
- Allow ();
- break;
- default:
- Msg.Text = "Invalid Credentials: Please try again";
- break;
- }
- }
-
- void Page_Load ()
- {
- Msg.Text = ">>> " + Request.QueryString ["ReturnUrl"] + "<<<";
- }
-</script>
-<body>
-<form runat=server>
-
- <h3><font face="Verdana">Login Page</font></h3>
- <table>
- <tr>
- <td>Email:</td>
- <td><input id="UserEmail" type="text" runat=server/></td>
- <td><ASP:RequiredFieldValidator ControlToValidate="UserEmail"
- Display="Static" ErrorMessage="*" runat=server/></td>
- </tr>
- <tr>
- <td>Password:</td>
- <td><input id="UserPass" type=password runat=server/></td>
- <td><ASP:RequiredFieldValidator ControlToValidate="UserPass"
- Display="Static" ErrorMessage="*" runat=server/></td>
- </tr>
- <tr>
- <td>Persistent Cookie:</td>
- <td><ASP:CheckBox id=PersistCookie runat="server" /> </td>
- <td></td>
- </tr>
- </table>
- <asp:button text="Login" OnClick="Login_Click" runat=server/>
- <p>
- <asp:Label id="Msg" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat=server />
-</form>
-</body>
-</html>
diff --git a/webdoc/logout.aspx b/webdoc/logout.aspx
deleted file mode 100644
index af3621b..0000000
--- a/webdoc/logout.aspx
+++ /dev/null
@@ -1,12 +0,0 @@
-<%@ Import Namespace="System.Web.Security" %>
-<html>
-<script language="C#" runat=server>
- void Page_Load (object sender, EventArgs e)
- {
- FormsAuthentication.SignOut ();
- Response.Redirect ("index.aspx");
- }
-</script>
-<body>
-</body>
-</html>
diff --git a/webdoc/mono_logo_g.gif b/webdoc/mono_logo_g.gif
deleted file mode 100644
index c6fbaf6..0000000
Binary files a/webdoc/mono_logo_g.gif and /dev/null differ
diff --git a/webdoc/monodoc.ashx b/webdoc/monodoc.ashx
index 7a54e88..3cc3346 100644
--- a/webdoc/monodoc.ashx
+++ b/webdoc/monodoc.ashx
@@ -22,6 +22,7 @@ using System.Web;
using System.Web.UI;
using System.Xml;
using System.Xml.Xsl;
+using System.Linq;
using Monodoc;
using System.Text.RegularExpressions;
@@ -66,28 +67,43 @@ namespace Mono.Website.Handlers
}
void IHttpHandler.ProcessRequest (HttpContext context)
- {
- string s;
-
- s = (string) context.Request.Params["link"];
- if (s != null){
- HandleMonodocUrl (context, s);
- return;
- }
-
- s = (string) context.Request.Params["tree"];
- if (s != null){
- if (s == "boot")
- HandleBoot (context);
- else {
- HandleTree (context, s);
- }
- return;
- }
- context.Response.Write ("<html><body>Unknown request</body></html>");
- context.Response.ContentType = "text/html";
- }
-
+ {
+ string s;
+ string callback;
+
+ s = (string) context.Request.Params["link"];
+ if (s != null){
+ HandleMonodocUrl (context, s);
+ return;
+ }
+
+ s = (string) context.Request.Params["tree"];
+ Console.WriteLine ("tree request: '{0}'", s);
+ if (s != null){
+ HandleTree (context, s);
+ return;
+ }
+
+ s = (string) context.Request.Params["fsearch"];
+ callback = (string) context.Request.Params["callback"];
+ Console.WriteLine ("Fast search requested for query {0}", s);
+ if (s != null) {
+ HandleFastSearchRequest (context, s, callback);
+ return;
+ }
+
+ s = (string) context.Request.Params["search"];
+ callback = (string) context.Request.Params["callback"];
+ Console.WriteLine ("Full search requested for query {0}", s);
+ if (s != null) {
+ HandleFullSearchRequest (context, s, callback);
+ return;
+ }
+
+ context.Response.Write ("<html><body>Unknown request</body></html>");
+ context.Response.ContentType = "text/html";
+ }
+
void HandleTree (HttpContext context, string tree)
{
context.Response.ContentType = "text/xml";
@@ -102,7 +118,7 @@ namespace Mono.Website.Handlers
try {
current_node = (Node)current_node.Nodes [int.Parse (nodes [i])];
} catch (Exception e){
- Console.WriteLine ("Failure with: {0} {i}", tree, i);
+ Console.WriteLine ("Failure with: {0} {1}", tree, i);
}
}
@@ -194,7 +210,10 @@ namespace Mono.Website.Handlers
if (context.Response.StatusCode == 304)
return;
- Copy (s, context.Response.OutputStream);
+ s.CopyTo (context.Response.OutputStream);
+ return;
+ } else if (link.Equals ("root:", StringComparison.Ordinal) && File.Exists ("home.html")) {
+ context.Response.WriteFile ("home.html");
return;
}
@@ -213,57 +232,134 @@ namespace Mono.Website.Handlers
PrintDocs (content, n, context, GetHelpSource (n));
}
+ void HandleFastSearchRequest (HttpContext context, string request, string callback)
+ {
+ if (string.IsNullOrWhiteSpace (request) || request.Length < 3) {
+ // Unprocessable entity
+ context.Response.StatusCode = 422;
+ return;
+ }
+
+
+ var searchIndex = Global.GetSearchIndex ();
+ var result = searchIndex.FastSearch (request, 15);
+ // return Json corresponding to the results
+ var answer = result == null || result.Count == 0 ? "[]" : "[" +
+ Enumerable.Range (0, result.Count)
+ .Select (i => string.Format ("{{ \"name\" : \"{0}\", \"url\" : \"{1}\", \"fulltitle\" : \"{2}\" }}",
+ result.GetTitle (i), result.GetUrl (i), result.GetFullTitle (i)))
+ .Aggregate ((e1, e2) => e1 + ", " + e2) + "]";
+
+ if (!string.IsNullOrWhiteSpace (callback))
+ answer = callback + "(" + answer + ")";
+
+ Console.WriteLine ("answer is {0}", answer);
+
+ context.Response.ContentType = "application/json";
+ context.Response.Write (answer);
+ }
+
+ void HandleFullSearchRequest (HttpContext context, string request, string callback)
+ {
+ if (string.IsNullOrWhiteSpace (request)) {
+ // Unprocessable entity
+ context.Response.StatusCode = 422;
+ return;
+ }
+ int start = 0, count = 0;
+ var searchIndex = Global.GetSearchIndex ();
+ Result result = null;
+ if (int.TryParse (context.Request.Params["count"], out count)) {
+ if (int.TryParse (context.Request.Params["start"], out start))
+ result = searchIndex.Search (request, count, start);
+ else
+ result = searchIndex.Search (request, count);
+ } else {
+ count = 20;
+ result = searchIndex.Search (request, count);
+ }
+ // return Json corresponding to the results
+ var answer = result == null || result.Count == 0 ? "[]" : "[" +
+ Enumerable.Range (0, result.Count)
+ .Select (i => string.Format ("{{ \"name\" : \"{0}\", \"url\" : \"{1}\", \"fulltitle\" : \"{2}\" }}",
+ result.GetTitle (i), result.GetUrl (i), result.GetFullTitle (i)))
+ .Aggregate ((e1, e2) => e1 + ", " + e2) + "]";
+
+ if(!string.IsNullOrWhiteSpace (callback)) {
+ answer = string.Format ("{0}({{ \"count\": {1}, \"start\": {2}, \"result\": {3} }})", callback, count, start, answer);
+ }
+
+ Console.WriteLine ("answer is {0}", answer);
+
+ context.Response.ContentType = "application/json";
+ context.Response.Write (answer);
+ }
+
HelpSource GetHelpSource (Node n)
{
if (n != null)
return n.tree.HelpSource;
return null;
}
-
- void HandleTreeLink (HttpContext context, string link)
- {
- string [] lnk = link.Split (new char [] {'@'});
-
- if (lnk.Length == 1) {
- HandleMonodocUrl (context, link);
- return;
- }
-
- int hsId = int.Parse (lnk [0]);
-
- Node n;
- HelpSource hs = Global.help_tree.GetHelpSourceFromId (hsId);
- string content = hs.GetText (lnk [1], out n);
- if (content == null) {
- content = Global.help_tree.RenderUrl (lnk [1], out n);
- hs = GetHelpSource (n);
- }
- PrintDocs (content, n, context, hs);
- }
-
- void Copy (Stream input, Stream output)
- {
- const int BUFFER_SIZE=8192; // 8k buf
- byte [] buffer = new byte [BUFFER_SIZE];
-
- int len;
- while ( (len = input.Read (buffer, 0, BUFFER_SIZE)) > 0)
- output.Write (buffer, 0, len);
-
- output.Flush();
- }
string requestPath;
void PrintDocs (string content, Node node, HttpContext ctx, HelpSource hs)
{
+ string tree_path = string.Empty;
+ Node current = node;
+ while (current != null && current.Parent != null) {
+ int index = current.Parent.Nodes.IndexOf (current);
+ tree_path = '@' + (index + tree_path);
+ current = current.Parent;
+ }
+ tree_path = tree_path.Length > 0 ? tree_path.Substring (1) : tree_path;
+ Console.WriteLine ("Tree path is:" + tree_path);
+
string title = (node == null || node.Caption == null) ? "Mono XDocumentation" : node.Caption;
ctx.Response.Write (@"
<html>
<head>
- <link type='text/css' rel='stylesheet' href='common.css' media='all' title='Default style' />
-<script>
-<!--
+ <link type='text/css' rel='stylesheet' href='views/monodoc.css' media='all' title='Default style' />
+ <meta name='TreePath' value='");
+ ctx.Response.Write (tree_path);
+ ctx.Response.Write (@"' />
+ <style type='text/css'>
+ body, h1, h2, h3, h4, h5, h6, .named-header {
+ word-wrap: break-word !important;
+ font-family: 'Myriad Pro', 'myriad pro', Helvetica, Verdana, Arial !important;
+ }
+ p, li, span, table, pre, .Content {
+ font-family: Helvetica, Verdana, Arial !important;
+ }
+ .named-header { height: auto !important; padding: 8px 0 20px 10px !important; font-weight: 600 !important; font-size: 2.3em !important; margin: 0.3em 0 0.6em 0 !important; margin-top: 0 !important; font-size: 2.3em !important; }
+ h2 { padding-top: 1em !important; margin-top: 0 !important; font-weight: 600 !important; font-size: 1.8em !important; color: #333 !important; }
+ p { margin: 0 0 1.3em !important; color: #555753 !important; line-height: 1.8 !important; }
+ body, table, pre { line-height: 1.8 !important; color: #55753 !important; }
+ .breadcrumb { font-size: 12px !important; }
+ </style>
+
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
+
+ <script type='text/javascript'>
+
+ function printFrame() {
+ window.print();
+ return false;
+ }
+
+ //pass the function object to parent
+ parent.printFrame = printFrame;
+
+ function try_change_page (link, e)
+ {
+ if (!e)
+ e = window.event;
+ if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.modifiers > 0)
+ return;
+ window.parent.change_page (link)
+ }
+
function login (rurl)
{
document.location.href = 'login.aspx?ReturnUrl=' + rurl;
@@ -276,8 +372,6 @@ function load ()
{
top.location.href = 'index.aspx'+document.location.search;
}
-
- parent.Header.document.getElementById ('pageLink').href = parent.content.window.location;
objs = document.getElementsByTagName('img');
for (i = 0; i < objs.length; i++)
{
@@ -301,21 +395,32 @@ function makeLink (link)
case 'ftp':
case 'mailto':
case 'javascript':
+ case 'https':
return link;
default:
if(document.all) {
- return '");
- ctx.Response.Write (ctx.Request.Path);
- ctx.Response.Write (@"?link=' + link.replace(/\+/g, '%2B').replace(/file:\/\/\//, '');
+ return 'monodoc.ashx?link=' + link.replace(/\+/g, '%2B').replace(/file:\/\/\//, '');
}
- return '");
-
- ctx.Response.Write (ctx.Request.Path);
- ctx.Response.Write (@"?link=' + link.replace(/\+/g, '%2B');
+ return 'monodoc.ashx?link=' + link.replace(/\+/g, '%2B');
}
-}
--->");
+}");
+ if (!string.IsNullOrEmpty (Global.ua)) {
+ ctx.Response.Write (@"var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', '");
+ ctx.Response.Write (Global.ua);
+ ctx.Response.Write (@"']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type =
+'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
+'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+s.parentNode.insertBefore(ga, s);
+ })();");
+ }
ctx.Response.Write ("</script><title>");
ctx.Response.Write (title);
ctx.Response.Write ("</title>\n");
@@ -330,7 +435,8 @@ function makeLink (link)
ctx.Response.Write (hs.InlineJavaScript);
ctx.Response.Write ("</script>\n");
}
- ctx.Response.Write (@"</head><body onLoad='load()'>");
+ ctx.Response.Write (@"</head><body onload='load()'>");
+ ctx.Response.Write (@"<iframe id='helpframe' src='' height='0' width='0' frameborder='0'></iframe>");
// Set up object variable, as it's required by the MakeLink delegate
requestPath=ctx.Request.Path;
@@ -382,7 +488,7 @@ function makeLink (link)
theMatch.Groups[4].ToString());
} else {
- updated_link = String.Format ("{0}{1}?link={2}{3} target=\"content\"{4}",
+ updated_link = String.Format ("{0}{1}?link={2}{3} onclick=\"try_change_page('{2}')\" {4}",
theMatch.Groups[1].ToString(),
requestPath,
HttpUtility.UrlEncode (link.Replace ("file://","")),
@@ -399,72 +505,5 @@ function makeLink (link)
return true;
}
}
-
- void HandleBoot (HttpContext context)
- {
- context.Response.Write (@"
-<html>
- <head>
- <link type='text/css' rel='stylesheet' href='ptree/tree.css'/>
- <link type='text/css' rel='stylesheet' href='sidebar.css'/>
- <script src='xtree/xmlextras.js'></script>
- <script src='ptree/tree.js'></script>
- <script src='sidebar.js'></script>
- <script>
- var tree = new PTree ();
- function onBodyLoad ()
- {
- tree.strTargetDefault = 'content';
- tree.strSrcBase = 'monodoc.ashx?tree=';
- tree.strActionBase = 'monodoc.ashx?link=';
- tree.strImagesBase = 'xtree/images/msdn2/';
- tree.strImageExt = '.gif';
- var content = document.getElementById ('contentList');
- var root = tree.CreateItem (null, 'Mono Documentation', 'intro.html', '', true);
- content.appendChild (root);
- ");
-
- for (int i = 0; i < Global.help_tree.Nodes.Count; i++){
- Node n = (Node)Global.help_tree.Nodes [i];
- context.Response.Write (
- "tree.CreateItem (root, '" + n.Caption + "', '" +
- n.PublicUrl + "', ");
-
- if (n.Nodes.Count != 0)
- context.Response.Write ("'" + i + "'");
- else
- context.Response.Write ("null");
-
- if (i == Global.help_tree.Nodes.Count-1)
- context.Response.Write (", true");
-
- context.Response.Write (@");
- ");
- }
- context.Response.Write (@"
- }</script>
- </head>
- <body onLoad='javascript:onBodyLoad();' onkeydown='javascript:return tree.onKeyDown (event);'>
- <div id='tabs'>
- <ul>
- <li id='contentsTab' class='selected'><a href='javascript:ShowContents();'>Contents</a></li>
- <li id='indexTab' style='display:none;'><a href='javascript:ShowIndex();'>Index</a></li>
- </ul>
- </div>
- <div id='contents' class='activeTab'>
- <div id='contentList'>
- </div>
- </div>
- <div id='index' class='tab'>
- <p>
- <label for='indexInput'>Lookup:</label> <input type='text' id='indexInput'/>
- <img alt='Spinner-blue' id='search_spinner' src='images/searching.gif' style='display:none;' align='middle' />
- <p id='errorText'></p>
- <ul id='indexList'></ul>
- </div>
- </body>
-</html>
-");
- }
}
}
diff --git a/webdoc/monodoc.asmx b/webdoc/monodoc.asmx
deleted file mode 100755
index d8e5fd6..0000000
--- a/webdoc/monodoc.asmx
+++ /dev/null
@@ -1,210 +0,0 @@
-<%@ WebService language="C#" class="Editing" %>
-
-// MonoDoc Editing WebService
-//
-// (C) 2003 by Johannes Roith
-// Author: Johannes Roith
-
-// Client API:
-//
-// Editing edit = new Editing();
-// Response response = edit.Submit("Johannes Roith", "johannes at jroith.de",
-// "This is a change through monodoc editing.", xml);
-
-// response contains:
-// a server status message (response.Message)
-// a statuscode (response.Status)
-
-// Statuscodes:
-//
-// 1 - everything went right
-// 2 - the xml is not well-formed.
-// 3 - some data is missing (email, name, etc.).
-// 4 - the data was already posted
-// 5 - Some internal Server error
-
-
-using System;
-using System.Web.Services;
-using System.Xml.Serialization;
-using System.Xml;
-using System.Text;
-using System.Security.Cryptography;
-
-[WebService(Namespace="http://www.go-mono.org/monodoc")]
-public class Editing {
-
- [WebMethod]
- public Response Submit(string author, string email, string personalmessage, string xmldata) {
-
- Response response;
- string newsum = GetMd5Sum(xmldata);
- XmlElement dataroot;
- XmlDocument oldposts;
- string today = Convert.ToString(DateTime.Now.DayOfYear);
-
- try {
-
-
- oldposts = new XmlDocument();
- oldposts.Load("oldposts.xml");
-
- dataroot = oldposts.DocumentElement;
-
- // Eventually only block in certain time frame?
- // XmlNodeList datanodes = dataroot.SelectNodes("/oldposts/post[@date='" + today + "']");
-
- XmlNodeList datanodes = dataroot.SelectNodes("/oldposts/post");
-
- foreach(XmlNode datanode in datanodes) {
- if (datanode.Attributes["md5"].Value == newsum) {
-
- response = new Response();
- response.Status = 4;
- response.Message = "This was already posted.";
-
- return response;
- }
- }
-
- if (xmldata == "")
- {
-
- response = new Response();
- response.Status = 2;
- response.Message = "Xml not well-formed. No data was posted.";
-
- return response;
- }
-
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(xmldata);
-
- XmlElement root = doc.DocumentElement;
- XmlNodeList nodes = root.SelectNodes("/GlobalChangeset/DocSetChangeset");
-
- // IMO it's best to generate different Mails for
- // different DocSets, so the correct people can get their hands on it.
- // e.g one mail for Gtk#, one for ecma docs.
-
- foreach (XmlNode node in nodes) {
-
- string datastring = "";
-
- XmlNodeList filenodes = node.SelectNodes("FileChangeset");
-
-
- foreach (XmlNode filenode in filenodes) {
- datastring += RenderFileSet(filenode);
- }
-
- string target = node.Attributes["DocSet"].Value;
-
- string header = "---------------------\n"
- + "MonoDoc Change\n"
- + "---------------------\n\n"
- + "This mail was generated by monodoc.\n\n"
- + "--------------------------------------------------\n"
- + "Author: " + author + "\n"
- + "EMail: " + email + "\n"
- + "personal Message: " + personalmessage + "\n\n"
- + "--------------------------------------------------\n\n"
- + "Changes are listed below:\n\n"
- + "*************************************\n\n";
-
- string footer = "\n\n---------------------------------------\n"
- + "Monodoc Editing WebService";
-
- SendMail("Monodoc: " + target, header + datastring + footer);
- }
-
- }
-
- catch {
-
- response = new Response();
- response.Status = 5;
- response.Message = "An unknown error occured.";
-
- return response;
-
- }
-
-
- XmlNode rootnode = dataroot.SelectSingleNode("/oldposts");
-
- XmlElement newentry = oldposts.CreateElement("post");
- newentry.SetAttribute("md5", newsum);
- newentry.SetAttribute("date", today);
- rootnode.AppendChild(newentry);
- oldposts.Save("oldposts.xml");
-
- response = new Response();
- response.Status = 1;
- response.Message = "Your changes were sent to Mono Docs List.\n"
- + "They will be reviewed as soon as possible.";
-
- return response;
-
- }
-
- string RenderFileSet(XmlNode filenode) {
-
- // Rendering should be improved eventually,
- // so no xml remains.
-
- return "FILE: " + filenode.Attributes["RealFile"] + "\n\n"
- + filenode.InnerXml
- + "\n\n*************************************\n\n";
- }
-
- public class Response {
-
- public int Status;
- public string Message;
- }
-
- public void SendMail(string subject, string body) {
-
- System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage();
-
- // NOTE: I have made this "groith at tcrz.net",
- // so it won't be blocked.
- // Should be changed later.
-
- mailMessage.From = "groith at tcrz.net";
- mailMessage.To = "mono-docs-list at ximian.com";
- mailMessage.Subject = subject;
- mailMessage.Body = body;
- mailMessage.BodyFormat = System.Web.Mail.MailFormat.Text;
-
- System.Web.Mail.SmtpMail.SmtpServer = "post.tcrz.net";
- System.Web.Mail.SmtpMail.Send(mailMessage);
-
-
- }
-
- // from http://weblog.stevex.org/radio/stories/2002/12/08/
- // cCodeSnippetCreatingAnMd5HashString.html
-
- public string GetMd5Sum(string str)
- {
- Encoder enc = System.Text.Encoding.Unicode.GetEncoder();
-
- byte[] unicodeText = new byte[str.Length * 2];
- enc.GetBytes(str.ToCharArray(), 0, str.Length, unicodeText, 0, true);
-
- MD5 md5 = new MD5CryptoServiceProvider();
- byte[] result = md5.ComputeHash(unicodeText);
-
- StringBuilder sb = new StringBuilder();
- for (int i=0;i<result.Length;i++)
- {
- sb.Append(result[i].ToString("X2"));
- }
-
- return sb.ToString();
-}
-
-
-}
diff --git a/webdoc/monodoc.css b/webdoc/monodoc.css
new file mode 100644
index 0000000..af1c2c7
--- /dev/null
+++ b/webdoc/monodoc.css
@@ -0,0 +1 @@
+/*This file is referenced in monodoc
diff --git a/webdoc/oldposts.xml b/webdoc/oldposts.xml
deleted file mode 100755
index df6f4bb..0000000
--- a/webdoc/oldposts.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<oldposts>
-</oldposts>
\ No newline at end of file
diff --git a/webdoc/plugins.def b/webdoc/plugins.def
new file mode 100644
index 0000000..43861fd
--- /dev/null
+++ b/webdoc/plugins.def
@@ -0,0 +1,12 @@
+#####SKIN (pick ONE)#####
+#skins/xamarin-external
+#skins/mono-external
+#skins/xamarin-new
+skins/mono-external
+
+######PLUGINS######
+plugins/search-plugin/fastsearch
+plugins/search-plugin/fullsearch
+plugins/iframe-plugin
+plugins/sidebar-plugin
+#plugins/tooltip-plugin
diff --git a/webdoc/plugins/iframe-plugin/iframe.js b/webdoc/plugins/iframe-plugin/iframe.js
new file mode 100644
index 0000000..7074b03
--- /dev/null
+++ b/webdoc/plugins/iframe-plugin/iframe.js
@@ -0,0 +1,3 @@
+ $(document).ready(function () {
+ $('iframe').iframeAutoHeight({debug: true});
+ });
diff --git a/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js b/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js
new file mode 100644
index 0000000..7aa2143
--- /dev/null
+++ b/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js
@@ -0,0 +1,7 @@
+/*
+ Plugin: iframe autoheight jQuery Plugin
+ Version: 1.9.0
+ Description: when the page loads set the height of an iframe based on the height of its contents
+ see README: http://github.com/house9/jquery-iframe-auto-height
+*/
+(function(a){a.fn.iframeAutoHeight=function(b){function d(a){c.debug&&c.debug===!0&&window.console&&console.log(a)}function e(b,c){d("Diagnostics from '"+c+"'");try{d(" "+a(b,window.top.document).contents().find("body")[0].scrollHeight+" for ...find('body')[0].scrollHeight"),d(" "+a(b.contentWindow.document).height()+" for ...contentWindow.document).height()"),d(" "+a(b.contentWindow.document.body).height()+" for ...contentWindow.document.body).height()")}catch(e){d(" unable to check [...]
diff --git a/webdoc/plugins/search-plugin/fastsearch/fsearch.css b/webdoc/plugins/search-plugin/fastsearch/fsearch.css
new file mode 100644
index 0000000..ab573bf
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fastsearch/fsearch.css
@@ -0,0 +1,45 @@
+#fsearch_window {
+ display: none;
+ opacity: 0;
+ position: absolute;
+ z-index: 60;
+ text-align: left;
+ width: 25em;
+ right: 80px;
+ top: 40px;
+ border: 1px solid black;
+ background: white;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-transition: opacity 200ms linear 0;
+ -moz-transition: opacity 200ms linear 0;
+ -o-transition: opacity 200ms linear 0;
+}
+
+#fsearch_window a {
+ color: blue;
+ text-decoration: none;
+ font-family: monospace;
+}
+
+#fsearch_window .threedots {
+ color: #333;
+ font-size: x-small;
+ font-family: sans-serif;
+}
+
+#fsearch_window .selected {
+ background-color: 679ef1;
+ color: white;
+}
+
+#fsearch_companion {
+ display:none;
+ position: absolute;
+ z-index: 60;
+ top: 40px;
+ right:410px;
+ color: grey;
+ background-color: white;
+}
+
diff --git a/webdoc/plugins/search-plugin/fastsearch/search.js b/webdoc/plugins/search-plugin/fastsearch/search.js
new file mode 100644
index 0000000..e246efb
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fastsearch/search.js
@@ -0,0 +1,133 @@
+var search_input = $('#fsearch');
+var search_window = $('#fsearch_window');
+var lis = null;
+var page_top_offset = $('#main_part').offset().top;
+
+var is_shown = false;
+var hide = function () {
+ if (!is_shown)
+ return;
+ search_window.css ({'display' : 'none', 'opacity' : 0});
+ is_shown = false;
+};
+var show = function () {
+ if (is_shown)
+ return;
+ search_window.css ({'display' : 'block', 'height' : 'auto', 'opacity' : 1.0, 'width': search_input.width() + 'px', 'top': page_top_offset + 'px' });
+ is_shown = true;
+};
+
+var param = document.URL.split('#')[1];
+if(param) {
+ $('#content_frame').attr('src', '/plugins/search-plugin/fullsearch/search.html#' + param);
+}
+
+search_input.blur (function () {
+ window.setTimeout (hide, 200);
+ if (search_input.val ().length == 0)
+ search_input.css ('width', '19em');
+});
+search_input.focus (function () {
+ search_input.css ('width', '29em');
+ if (search_window.text().length > 0 && search_input.val().length > 0)
+ show ();
+ window.setTimeout (function () {
+ search_input[0].select ();
+ }, 10);
+});
+
+search_input.keyup (function (event) {
+ if ($(this).val () == "")
+ hide();
+
+ // Only process if we receive an alnum or backspace or del
+ if (event.which != 8 && event.which != 46
+ && (event.which < 'A'.charCodeAt(0) || event.which > 'Z'.charCodeAt(0))
+ && (event.which < '0'.charCodeAt(0) || event.which > '9'.charCodeAt(0)))
+ return;
+
+ var callback = function (data) {
+ if (data == null || data.length == 0)
+ return;
+
+ var items = [];
+
+ $.each (data, function(key, val) {
+ var item = val.name;
+ var url = val.url.replace (/[<>]/g, function (c) { return c == '<' ? '{' : '}'; });
+ items.push('<li><a href="#" onclick="change_page(\''+url+'\')" title="'+(val.fulltitle == '' ? val.name : val.fulltitle)+'">' + item + '</a></li>');
+ });
+
+ var uls = $('<ul/>', { html: items.join (''), 'style': 'list-style-type:none; margin: 0; padding:0' });
+ lis = uls.children ('li');
+ var companion = $('#fsearch_companion');
+ lis.hover (function () {
+ var childA = $(this).children('a');
+ var offset = childA.offset ();
+ companion.css ({ 'top': offset.top + 'px', 'right': $('html').outerWidth () - offset.left + 10, 'display': 'block'});
+ companion.text(childA.attr ('title'));
+ }, function () {
+ companion.css ('display', 'none');
+ });
+ search_window.empty();
+ uls.appendTo ('#fsearch_window');
+ show ();
+ };
+ $.getJSON ('monodoc.ashx?fsearch=' + $(this).val (), callback);
+});
+
+document.getElementById ('fsearch').onsearch = function () {
+ if (search_input.val () == "") {
+ hide ();
+ search_input.blur ();
+ }
+};
+
+search_input.keydown (function (event) {
+ if (lis == null)
+ return;
+ var selected = lis.filter('.selected');
+ var newSelection = null;
+ $('#fsearch_companion').css ('display', 'none');
+
+ switch (event.which)
+ {
+ case 13: // return
+ if (selected.length != 0) {
+ selected.children ('a').click ();
+ } else {
+ // Show full search page
+ $("#content_frame").attr('src', '/plugins/search-plugin/fullsearch/search.html#' + encodeURI(search_input.val ()));
+ }
+ hide ();
+ search_input.blur ();
+ return false;
+ case 38: // up
+ if (selected.length != 0) {
+ var prev = selected.prev ();
+ newSelection = prev;
+ } else {
+ newSelection = lis.last ();
+ }
+ break;
+ case 40: // down
+ if (selected.length != 0) {
+ var next = selected.next ();
+ if (next.length != 0)
+ newSelection = next;
+ } else {
+ newSelection = lis.first ();
+ }
+ break;
+ }
+
+ if (newSelection != null) {
+ newSelection.addClass ('selected');
+ if (selected != null) {
+ selected.removeClass ('selected');
+ selected.mouseleave();
+ }
+ newSelection.mouseenter();
+ selected = newSelection;
+ }
+});
diff --git a/webdoc/plugins/search-plugin/fullsearch/fullsearch.js b/webdoc/plugins/search-plugin/fullsearch/fullsearch.js
new file mode 100644
index 0000000..0722979
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fullsearch/fullsearch.js
@@ -0,0 +1,40 @@
+//support for a full page of search results /monodoc.ashx?search=
+
+var spinner = $('#s_spinner');
+function process_hash () {
+ var query = window.location.hash;
+ if (query == null || query.length < 2)
+ return;
+ var ul = $('#s_results ul');
+ ul.empty ();
+ var currentNumber = 0;
+ var count = 0;
+ // Remove hash '#' symbol
+ query = query.substring(1);
+ $('#s_term').text (query);
+ var fetch_and_add_results = function (url) {
+ spinner.toggleClass ('hidden');
+ $.getJSON (url, function (data) {
+ spinner.toggleClass ('hidden');
+ count = data.count;
+ currentNumber += data.result.length;
+ if (data.result.length == 0) {
+ $('<div/>', { 'class': 's_message' }).text('No more results').replaceAll($('#s_morebtn')).fadeOut(4000, function () { $(this).remove(); });
+ } else {
+ var lis = $.map (data.result, function (element) {
+ return '<li><a href="/monodoc.ashx?link=' + element.url + '"><span class="name">'
+ + element.name + '</span> '
+ + (element.fulltitle.length > 0 ? '<span class="fulltitle">(' + element.fulltitle + ')</span>' : '') + '</a></li>';
+ });
+ ul.append (lis.join (''));
+ }
+ });
+ };
+ fetch_and_add_results ('/monodoc.ashx?search=' + query + '&callback=?');
+ $('#s_morebtn input').click (function () {
+ fetch_and_add_results ('/monodoc.ashx?search=' + query + '&start=' + currentNumber + '&count=' + count + '&callback=?');
+ });
+}
+
+process_hash ();
+window.addEventListener("hashchange", process_hash, false);
diff --git a/webdoc/plugins/search-plugin/fullsearch/search.css b/webdoc/plugins/search-plugin/fullsearch/search.css
new file mode 100644
index 0000000..6e39869
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fullsearch/search.css
@@ -0,0 +1,43 @@
+#s_spinner, #s_header, #s_morebtn, .s_message {
+ text-align: center;
+}
+
+#s_header {
+ margin-bottom: 1em;
+}
+
+div.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+#s_results a {
+ color: #777;
+}
+
+#s_results a:hover {
+ color: black;
+}
+
+#s_results span.fulltitle {
+ font-style: italic;
+ font-size: 80%;
+}
+
+#s_results li {
+ margin-bottom: 0.5em;
+}
+
+#s_morebtn input {
+ font-size: x-large;
+ padding: 5px 14px 6px;
+}
+
+#s_morebtn {
+ margin-bottom: 1em;
+}
+
+.s_message {
+ font-size: xx-large;
+}
+
diff --git a/webdoc/plugins/search-plugin/fullsearch/search.html b/webdoc/plugins/search-plugin/fullsearch/search.html
new file mode 100644
index 0000000..7b9424b
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fullsearch/search.html
@@ -0,0 +1,24 @@
+<html>
+ <head>
+ <title></title>
+ <link rel="stylesheet" type="text/css" href="search.css" />
+ </head>
+ <script type="text/javascript">
+ function printFrame() {
+ window.print();
+ return false;
+ }
+ //pass the function object to parent
+ parent.printFrame = printFrame;
+ </script>
+ <body>
+ <div id="search_wrapper">
+ <div id="s_header"><h1>Search result(s) for '<span id="s_term"></span>'</h1></div>
+ <div id="s_results"><ul></ul></div>
+ <div id="s_morebtn"><input type="button" value="Show more results"></div>
+ <div id="s_spinner" class="hidden"><img src="/plugins/search-plugin/images/spinner.gif" alt="spinner" /></div>
+ </div>
+ <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script type="text/javascript" src="fullsearch.js"></script>
+ </body>
+</html>
diff --git a/webdoc/plugins/search-plugin/images/spinner.gif b/webdoc/plugins/search-plugin/images/spinner.gif
new file mode 100644
index 0000000..3288d10
Binary files /dev/null and b/webdoc/plugins/search-plugin/images/spinner.gif differ
diff --git a/webdoc/images/searching.gif b/webdoc/plugins/sidebar-plugin/dependencies/ptree/searching.gif
similarity index 100%
rename from webdoc/images/searching.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/ptree/searching.gif
diff --git a/webdoc/ptree/tree.css b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css
similarity index 52%
rename from webdoc/ptree/tree.css
rename to webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css
index fed1384..a115b54 100755
--- a/webdoc/ptree/tree.css
+++ b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css
@@ -1,14 +1,3 @@
-body {
- font-family: verdana;
- font-size: 70.5%;
- font-weight: normal;
- background-color: #fff;
- color: Black;
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
- vertical-align: middle;
-}
-
.tree-node,
.tree-node-collapsed
{
@@ -18,13 +7,12 @@ body {
white-space: nowrap;
}
-.tree-label
+.tree-label,
.tree-label-selected
{
margin: 0px;
padding: 0px;
border: 0px;
- white-space: nowrap;
}
.tree-node-collapsed .tree-node,
@@ -37,26 +25,16 @@ body {
.tree-label-selected a:hover
{
text-decoration: none;
- background: highlight;
- color: highlighttext;
}
.tree-label a
{
text-decoration: none;
- background: #fff;
- color: black;
}
.tree-label a:hover
{
- background-image: url('../images/searching.gif');
text-decoration: none;
- background: #dfdfdf;
- color: black;
- border: 1px solid;
- border-color: grey;
- padding: 1px;
}
.tree-node img
diff --git a/webdoc/ptree/tree.js b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js
similarity index 75%
rename from webdoc/ptree/tree.js
rename to webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js
index 1131e06..6e1da0d 100755
--- a/webdoc/ptree/tree.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js
@@ -20,7 +20,18 @@ function PTree ()
this.strImageExt = ".png";
this.eltSelected = null;
this.nImageWidth = 18;
- this.nImageHeight = 18;
+ this.nImageHeight = 23;
+ this.onClickCallback = null;
+
+
+ this.Tooltip = function() {
+ if($.isFunction(window.tooltip)) {
+ $('.tree-label').tooltip({
+ selector: 'a[rel=tooltip]',
+ placement: 'right'
+ });
+ }
+ }
this.CreateItemFromXML = function (oNode, fLast, eltParent)
{
@@ -94,17 +105,41 @@ function PTree ()
if (strAction)
{
- eltDescription = document.createElement ("a");
- eltDescription.href = this.strActionBase + strAction;
- eltDescription.title = strText;
+ eltDescription = document.createElement ("span");
+ eltDescription.className = "link";
+ eltD = document.createElement ("a");
+ if (strAction.indexOf ('http://') === 0)
+ eltD.href = strAction;
+ else
+ eltD.href = this.strActionBase + strAction;
+ eltD.title = strText;
+ eltD.rel = "tooltip";
+ //eltD.data-placement = "left";
if (strTarget)
- eltDescription.target = strTarget;
+ eltD.target = strTarget;
else if (this.strTargetDefault)
- eltDescription.target = this.strTargetDefault;
- eltDescription.appendChild (eltText);
- eltDescription.onclick = function () { _this.SelectNode (eltDiv); }
- eltDescription.onmouseover = function () { this.blur (); }
- eltDescription.onmouseup = function () { this.blur (); }
+ eltD.target = this.strTargetDefault;
+ eltD.appendChild (eltText);
+ var parent = this;
+ eltD.onclick = function (e) {
+ if (!e)
+ e = window.event;
+ if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.modifiers > 0)
+ return;
+ _this.SelectNode (eltDiv);
+ if (parent.onClickCallback) {
+ e.cancelBubble = true;
+ e.returnValue = false;
+ if (e.stopPropagation) {
+ e.stopPropagation ();
+ e.preventDefault ();
+ }
+ parent.onClickCallback(strAction);
+ }
+ }
+ eltD.onmouseover = function () { this.blur (); }
+ eltD.onmouseup = function () { this.blur (); }
+ eltDescription.appendChild(eltD);
}
else
{
@@ -121,7 +156,8 @@ function PTree ()
eltParent.appendChild (eltDiv);
else
this.SelectNode (eltDiv);
-
+
+ _this.Tooltip();
return eltDiv;
}
@@ -148,7 +184,7 @@ function PTree ()
var eltDiv = this.GetDivFromIcon (eltIcon);
eltIcon.onclick = null;
- var eltLoading = this.CreateItem (eltDiv, "<img src=\"../images/searching.gif\"/>Loading...", null, null, true);
+ var eltLoading = this.CreateItem (eltDiv, "<img src=\"plugins/sidebar-plugin/dependencies/ptree/searching.gif\"/>Loading...", null, null, true);
eltLoading.className = '';
var xmlHttp = XmlHttp.create();
@@ -192,6 +228,55 @@ function PTree ()
eltIcon.onclick = function () { _this.onClickMinus (this); }
}
+ this.ExpandFromPath = function (path)
+ {
+ var root = $('.tree-node').first ();
+ var elements = path.split('@');
+
+ var thisSave = this;
+ var finish = function (node, i, opened) {
+ node = $(node);
+ if (!opened) {
+ node.attr('class', 'tree-node');
+ var icon = node.children('span').children('img:nth-child(' + (i + 1) + ')');
+ icon[0].onclick = function () { thisSave.onClickMinus (this); };
+ icon.attr('src', thisSave.GetIconSrc (node[0], false));
+ }
+ root = node;
+ if (i == elements.length - 1) {
+ thisSave.SelectNode (node[0]);
+ var container = $('#contents').parent().parent();
+ container.scrollTop (node[0].offsetTop - 100);
+ }
+ };
+ var recurse = function (i) {
+ if (i >= elements.length)
+ return;
+ var node = root.children ('div')[elements[i]];
+ // Tree already loaded
+ if ($(node).find ('div').first ().length == 0) {
+ var url = thisSave.strSrcBase + elements.slice(0, i + 1).join('@');
+ $.get (url, function (data) {
+ var doc = data.documentElement;
+
+ var children = doc.childNodes;
+ var cChildren = children.length;
+
+ for (var iNode = 0; iNode < cChildren; iNode ++)
+ thisSave.CreateItemFromXML (children[iNode], iNode == cChildren - 1, node)
+
+ // We finish node creation by opening up its tree like clicking would normally do
+ finish (node, i, false);
+ recurse (i + 1);
+ });
+ } else {
+ finish (node, i, true);
+ recurse (i + 1);
+ }
+ };
+ recurse (0);
+ }
+
this.onClickPlus = function (eltIcon)
{
var eltDiv = this.GetDivFromIcon (eltIcon);
diff --git a/webdoc/xtree/images/I.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/I.png
similarity index 100%
rename from webdoc/xtree/images/I.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/I.png
diff --git a/webdoc/xtree/images/L.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/L.png
similarity index 100%
rename from webdoc/xtree/images/L.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/L.png
diff --git a/webdoc/xtree/images/Lminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png
similarity index 100%
rename from webdoc/xtree/images/Lminus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png
diff --git a/webdoc/xtree/images/Lplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png
similarity index 100%
rename from webdoc/xtree/images/Lplus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png
diff --git a/webdoc/xtree/images/T.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/T.png
similarity index 100%
rename from webdoc/xtree/images/T.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/T.png
diff --git a/webdoc/xtree/images/Tminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png
similarity index 100%
rename from webdoc/xtree/images/Tminus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png
diff --git a/webdoc/xtree/images/Tplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png
similarity index 100%
rename from webdoc/xtree/images/Tplus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png
diff --git a/webdoc/xtree/images/blank.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/blank.png
similarity index 100%
rename from webdoc/xtree/images/blank.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/blank.png
diff --git a/webdoc/xtree/images/clean/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/I.gif
similarity index 100%
rename from webdoc/xtree/images/clean/I.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/I.gif
diff --git a/webdoc/xtree/images/clean/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/L.gif
similarity index 100%
rename from webdoc/xtree/images/clean/L.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/L.gif
diff --git a/webdoc/xtree/images/clean/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lminus.gif
similarity index 100%
rename from webdoc/xtree/images/clean/Lminus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lminus.gif
diff --git a/webdoc/xtree/images/clean/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lplus.gif
similarity index 100%
rename from webdoc/xtree/images/clean/Lplus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lplus.gif
diff --git a/webdoc/xtree/images/clean/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/T.gif
similarity index 100%
rename from webdoc/xtree/images/clean/T.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/T.gif
diff --git a/webdoc/xtree/images/clean/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tminus.gif
similarity index 100%
rename from webdoc/xtree/images/clean/Tminus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tminus.gif
diff --git a/webdoc/xtree/images/clean/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tplus.gif
similarity index 100%
rename from webdoc/xtree/images/clean/Tplus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tplus.gif
diff --git a/webdoc/xtree/images/clean/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/blank.gif
similarity index 100%
rename from webdoc/xtree/images/clean/blank.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/blank.gif
diff --git a/webdoc/xtree/images/file.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/file.png
similarity index 100%
rename from webdoc/xtree/images/file.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/file.png
diff --git a/webdoc/xtree/images/foldericon.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png
similarity index 100%
rename from webdoc/xtree/images/foldericon.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png
diff --git a/webdoc/xtree/images/msdn/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/I.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/I.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/I.gif
diff --git a/webdoc/xtree/images/msdn/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/L.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/L.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/L.gif
diff --git a/webdoc/xtree/images/msdn/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lminus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/Lminus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lminus.gif
diff --git a/webdoc/xtree/images/msdn/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lplus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/Lplus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lplus.gif
diff --git a/webdoc/xtree/images/msdn/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/T.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/T.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/T.gif
diff --git a/webdoc/xtree/images/msdn/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tminus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/Tminus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tminus.gif
diff --git a/webdoc/xtree/images/msdn/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tplus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/Tplus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tplus.gif
diff --git a/webdoc/xtree/images/msdn/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/blank.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/blank.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/blank.gif
diff --git a/webdoc/xtree/images/msdn/menu_bar.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_bar.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_bar.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_bar.gif
diff --git a/webdoc/xtree/images/msdn/menu_corner.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_corner.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner.gif
diff --git a/webdoc/xtree/images/msdn/menu_corner_minus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_minus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_corner_minus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_minus.gif
diff --git a/webdoc/xtree/images/msdn/menu_corner_plus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_plus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_corner_plus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_plus.gif
diff --git a/webdoc/xtree/images/msdn/menu_tee.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_tee.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee.gif
diff --git a/webdoc/xtree/images/msdn/menu_tee_minus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_minus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_tee_minus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_minus.gif
diff --git a/webdoc/xtree/images/msdn/menu_tee_plus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_plus.gif
similarity index 100%
rename from webdoc/xtree/images/msdn/menu_tee_plus.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_plus.gif
diff --git a/webdoc/xtree/images/msdn2/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/I.gif
similarity index 100%
rename from webdoc/xtree/images/msdn2/I.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/I.gif
diff --git a/webdoc/xtree/images/msdn2/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/L.gif
similarity index 100%
rename from webdoc/xtree/images/msdn2/L.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/L.gif
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif
new file mode 100644
index 0000000..4f5afec
Binary files /dev/null and b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif
new file mode 100644
index 0000000..c7a12ab
Binary files /dev/null and b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif differ
diff --git a/webdoc/xtree/images/msdn2/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/T.gif
similarity index 100%
rename from webdoc/xtree/images/msdn2/T.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/T.gif
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif
new file mode 100644
index 0000000..2c60466
Binary files /dev/null and b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif
new file mode 100644
index 0000000..e444a44
Binary files /dev/null and b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif differ
diff --git a/webdoc/xtree/images/msdn2/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/blank.gif
similarity index 100%
rename from webdoc/xtree/images/msdn2/blank.gif
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/blank.gif
diff --git a/webdoc/xtree/images/openfoldericon.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png
similarity index 100%
rename from webdoc/xtree/images/openfoldericon.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png
diff --git a/webdoc/xtree/images/xp/I.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/I.png
similarity index 100%
rename from webdoc/xtree/images/xp/I.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/I.png
diff --git a/webdoc/xtree/images/xp/L.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/L.png
similarity index 100%
rename from webdoc/xtree/images/xp/L.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/L.png
diff --git a/webdoc/xtree/images/xp/Lminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lminus.png
similarity index 100%
rename from webdoc/xtree/images/xp/Lminus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lminus.png
diff --git a/webdoc/xtree/images/xp/Lplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lplus.png
similarity index 100%
rename from webdoc/xtree/images/xp/Lplus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lplus.png
diff --git a/webdoc/xtree/images/xp/T.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/T.png
similarity index 100%
rename from webdoc/xtree/images/xp/T.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/T.png
diff --git a/webdoc/xtree/images/xp/Tminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tminus.png
similarity index 100%
rename from webdoc/xtree/images/xp/Tminus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tminus.png
diff --git a/webdoc/xtree/images/xp/Tplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tplus.png
similarity index 100%
rename from webdoc/xtree/images/xp/Tplus.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tplus.png
diff --git a/webdoc/xtree/images/xp/file.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/file.png
similarity index 100%
rename from webdoc/xtree/images/xp/file.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/file.png
diff --git a/webdoc/xtree/images/xp/folder.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/folder.png
similarity index 100%
rename from webdoc/xtree/images/xp/folder.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/folder.png
diff --git a/webdoc/xtree/images/xp/openfolder.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/openfolder.png
similarity index 100%
rename from webdoc/xtree/images/xp/openfolder.png
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/openfolder.png
diff --git a/webdoc/xtree/xloadtree.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xloadtree.js
similarity index 100%
rename from webdoc/xtree/xloadtree.js
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/xloadtree.js
diff --git a/webdoc/xtree/xmlextras.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xmlextras.js
similarity index 100%
rename from webdoc/xtree/xmlextras.js
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/xmlextras.js
diff --git a/webdoc/xtree/xtree.css b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css
similarity index 79%
rename from webdoc/xtree/xtree.css
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css
index 3630da9..44d7324 100644
--- a/webdoc/xtree/xtree.css
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css
@@ -1,13 +1,3 @@
-body {
- font-family: verdana;
- font-size: 70.5%;
- font-weight: normal;
- background-color: #f1f1f1;
- color: Black;
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
-}
-
.webfx-tree-container {
margin: 0px;
padding: 0px;
diff --git a/webdoc/xtree/xtree.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js
similarity index 93%
rename from webdoc/xtree/xtree.js
rename to webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js
index 19362e1..2565460 100644
--- a/webdoc/xtree/xtree.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js
@@ -66,19 +66,19 @@
\----------------------------------------------------------------------------*/
var webFXTreeConfig = {
- rootIcon : 'xtree/images/foldericon.png',
- openRootIcon : 'xtree/images/openfoldericon.png',
- folderIcon : 'xtree/images/foldericon.png',
- openFolderIcon : 'xtree/images/openfoldericon.png',
- fileIcon : 'xtree/images/file.png',
- iIcon : 'xtree/images/I.png',
- lIcon : 'xtree/images/L.png',
- lMinusIcon : 'xtree/images/Lminus.png',
- lPlusIcon : 'xtree/images/Lplus.png',
- tIcon : 'xtree/images/T.png',
- tMinusIcon : 'xtree/images/Tminus.png',
- tPlusIcon : 'xtree/images/Tplus.png',
- blankIcon : 'xtree/images/blank.png',
+ rootIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png',
+ openRootIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png',
+ folderIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png',
+ openFolderIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png',
+ fileIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/file.png',
+ iIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/I.png',
+ lIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/L.png',
+ lMinusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png',
+ lPlusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png',
+ tIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/T.png',
+ tMinusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png',
+ tPlusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png',
+ blankIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/blank.png',
defaultText : 'Tree Item',
defaultAction : 'javascript:void(0);',
defaultBehavior : 'classic',
@@ -363,9 +363,9 @@ WebFXTree.prototype.keydown = function(key) {
WebFXTree.prototype.toString = function() {
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ "<p><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
(this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + this.text + "</a></div>" +
+ ">" + this.text + "</a></p></div>" +
"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
var sb = [];
for (var i = 0; i < this.childNodes.length; i++) {
@@ -527,9 +527,9 @@ WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
indent +
"<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">" +
"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ "<p><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
(this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + label + "</a></div>" +
+ ">" + label + "</a></p></div>" +
"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
var sb = [];
for (var i = 0; i < this.childNodes.length; i++) {
@@ -538,4 +538,4 @@ WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
return str + sb.join("") + "</div>";
-}
\ No newline at end of file
+}
diff --git a/webdoc/plugins/sidebar-plugin/make-tree.js b/webdoc/plugins/sidebar-plugin/make-tree.js
new file mode 100644
index 0000000..47ce72a
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/make-tree.js
@@ -0,0 +1,35 @@
+$(document).ready(function() {
+ var content_frame = $('#content_frame');
+ var page_link = $('#pageLink');
+
+ change_page = function (pagename) {
+ content_frame.attr ('src', 'monodoc.ashx?link=' + pagename);
+ page_link.attr ('href', '?link=' + pagename);
+ if (window.history && window.history.pushState) {
+ window.history.pushState (null, '', '/?link=' + pagename);
+ }
+ };
+
+ update_tree = function () {
+ var tree_path = $('#content_frame').contents ().find ('meta[name=TreePath]');
+ if (tree_path.length > 0) {
+ var path = tree_path.attr ('value');
+ tree.ExpandFromPath (path);
+ }
+ };
+
+ update_tree ();
+ add_native_browser_link = function () {
+ var contentDiv = $('#content_frame').contents ().find ('div[class=Content]').first ();
+ if (contentDiv.length > 0 && contentDiv.attr ('id')) {
+ var id = contentDiv.attr ('id').replace (':Summary', '');
+ var h2 = contentDiv.children ('h2').first ();
+ if (h2.prev ().attr ('class') != 'native-browser')
+ h2.before ('<p><a class="native-browser" href="mdoc://' + encodeURIComponent (id) + '"><span class="native-icon"><img src="/views/images/native-browser-icon.png" /></span>Open in Native Browser</a></p>');
+ }
+ };
+ add_native_browser_link ();
+
+ content_frame.load (update_tree);
+ content_frame.load (add_native_browser_link);
+});
diff --git a/webdoc/sidebar.css b/webdoc/plugins/sidebar-plugin/sidebar.css
similarity index 91%
rename from webdoc/sidebar.css
rename to webdoc/plugins/sidebar-plugin/sidebar.css
index 6a848b3..5cb10ba 100644
--- a/webdoc/sidebar.css
+++ b/webdoc/plugins/sidebar-plugin/sidebar.css
@@ -1,30 +1,25 @@
-body {
- font-family: Verdana;
- margin: 0px !important;
- padding: 0px !important;
- font-size: 8pt;
- background-color: white;
- white-space: nowrap;
+#side {
+ float: left;
}
-
.tab {
display: none !important;
}
.activeTab {
- padding-top: 35px;
padding-left: 10px;
padding-right: 10px;
display: block !important;
+ overflow-x: hidden;
+ overflow-y: visible;
}
-
+/*
input[type=text] {
border: 1px solid #B1A598;
padding: 2px;
}
input[type=text]:focus {
-}
+}*/
.error {
color: red;
@@ -127,3 +122,4 @@ a.selected {
#errorText {
margin-top: 10px;
}
+
diff --git a/webdoc/sidebar.js b/webdoc/plugins/sidebar-plugin/sidebar.js
similarity index 100%
rename from webdoc/sidebar.js
rename to webdoc/plugins/sidebar-plugin/sidebar.js
diff --git a/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js b/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js
new file mode 100644
index 0000000..3c2d4de
--- /dev/null
+++ b/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js
@@ -0,0 +1,276 @@
+/* ===========================================================
+ * bootstrap-tooltip.js v2.1.1
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+
+ /* TOOLTIP PUBLIC CLASS DEFINITION
+ * =============================== */
+
+ var Tooltip = function (element, options) {
+ this.init('tooltip', element, options)
+ }
+
+ Tooltip.prototype = {
+
+ constructor: Tooltip
+
+ , init: function (type, element, options) {
+ var eventIn
+ , eventOut
+
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.enabled = true
+
+ if (this.options.trigger == 'click') {
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+ } else if (this.options.trigger != 'manual') {
+ eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
+ eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+ }
+
+ this.options.selector ?
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+ this.fixTitle()
+ }
+
+ , getOptions: function (options) {
+ options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
+
+ if (options.delay && typeof options.delay == 'number') {
+ options.delay = {
+ show: options.delay
+ , hide: options.delay
+ }
+ }
+
+ return options
+ }
+
+ , enter: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (!self.options.delay || !self.options.delay.show) return self.show()
+
+ clearTimeout(this.timeout)
+ self.hoverState = 'in'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'in') self.show()
+ }, self.options.delay.show)
+ }
+
+ , leave: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (this.timeout) clearTimeout(this.timeout)
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+ self.hoverState = 'out'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'out') self.hide()
+ }, self.options.delay.hide)
+ }
+
+ , show: function () {
+ var $tip
+ , inside
+ , pos
+ , actualWidth
+ , actualHeight
+ , placement
+ , tp
+
+ if (this.hasContent() && this.enabled) {
+ $tip = this.tip()
+ this.setContent()
+
+ if (this.options.animation) {
+ $tip.addClass('fade')
+ }
+
+ placement = typeof this.options.placement == 'function' ?
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
+ this.options.placement
+
+ inside = /in/.test(placement)
+
+ $tip
+ .remove()
+ .css({ top: 0, left: 0, display: 'block' })
+ .appendTo(inside ? this.$element : document.body)
+
+ pos = this.getPosition(inside)
+
+ actualWidth = $tip[0].offsetWidth
+ actualHeight = $tip[0].offsetHeight
+
+ switch (inside ? placement.split(' ')[1] : placement) {
+ case 'bottom':
+ tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'top':
+ tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'left':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - 50}
+ break
+ case 'right':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + 50}
+ break
+ }
+
+ $tip
+ .css(tp)
+ .addClass(placement)
+ .addClass('in')
+ }
+ }
+
+ , setContent: function () {
+ var $tip = this.tip()
+ , title = this.getTitle()
+
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+ $tip.removeClass('fade in top bottom left right')
+ }
+
+ , hide: function () {
+ var that = this
+ , $tip = this.tip()
+
+ $tip.removeClass('in')
+
+ function removeWithAnimation() {
+ var timeout = setTimeout(function () {
+ $tip.off($.support.transition.end).remove()
+ }, 500)
+
+ $tip.one($.support.transition.end, function () {
+ clearTimeout(timeout)
+ $tip.remove()
+ })
+ }
+
+ $.support.transition && this.$tip.hasClass('fade') ?
+ removeWithAnimation() :
+ $tip.remove()
+
+ return this
+ }
+
+ , fixTitle: function () {
+ var $e = this.$element
+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
+ $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
+ }
+ }
+
+ , hasContent: function () {
+ return this.getTitle()
+ }
+
+ , getPosition: function (inside) {
+ return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
+ width: this.$element[0].offsetWidth
+ , height: this.$element[0].offsetHeight
+ })
+ }
+
+ , getTitle: function () {
+ var title
+ , $e = this.$element
+ , o = this.options
+
+ title = $e.attr('data-original-title')
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
+
+ return title
+ }
+
+ , tip: function () {
+ return this.$tip = this.$tip || $(this.options.template)
+ }
+
+ , validate: function () {
+ if (!this.$element[0].parentNode) {
+ this.hide()
+ this.$element = null
+ this.options = null
+ }
+ }
+
+ , enable: function () {
+ this.enabled = true
+ }
+
+ , disable: function () {
+ this.enabled = false
+ }
+
+ , toggleEnabled: function () {
+ this.enabled = !this.enabled
+ }
+
+ , toggle: function () {
+ this[this.tip().hasClass('in') ? 'hide' : 'show']()
+ }
+
+ , destroy: function () {
+ this.hide().$element.off('.' + this.type).removeData(this.type)
+ }
+
+ }
+
+
+ /* TOOLTIP PLUGIN DEFINITION
+ * ========================= */
+
+ $.fn.tooltip = function ( option ) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('tooltip')
+ , options = typeof option == 'object' && option
+ if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.tooltip.Constructor = Tooltip
+
+ $.fn.tooltip.defaults = {
+ animation: true
+ , placement: 'top'
+ , selector: false
+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+ , trigger: 'hover'
+ , title: ''
+ , delay: 0
+ , html: true
+ }
+
+}(window.jQuery);
+
diff --git a/webdoc/robots.txt b/webdoc/robots.txt
new file mode 100644
index 0000000..9662fc4
--- /dev/null
+++ b/webdoc/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/webdoc/server.asmx b/webdoc/server.asmx
deleted file mode 100644
index 1967a4b..0000000
--- a/webdoc/server.asmx
+++ /dev/null
@@ -1 +0,0 @@
-<%@ WebService Language="c#" Codebehind="server.cs" Class="Monodoc.Contributions" %>
diff --git a/webdoc/server.cs b/webdoc/server.cs
deleted file mode 100644
index d026cb2..0000000
--- a/webdoc/server.cs
+++ /dev/null
@@ -1,366 +0,0 @@
-//
-// Monodoc server
-//
-// Author:
-// Miguel de Icaza (miguel at ximian.com)
-//
-
-using System;
-using System.Collections;
-using System.IO;
-using System.Web.Mail;
-using System.Web.Services;
-using System.Web.Services.Protocols;
-using System.Data;
-using ByteFX.Data.MySqlClient;
-using System.Xml;
-
-namespace Monodoc {
- [WebServiceAttribute (Description="Web service for the MonoDoc contribution system")]
- public class Contributions : System.Web.Services.WebService
- {
- const string basedir = "/home/contributions/";
- //const string basedir = "/tmp/contributions/";
- static string connection_string;
-
- static Contributions ()
- {
- using (StreamReader sr = new StreamReader (File.OpenRead ("connection.string"))){
- connection_string = sr.ReadLine ();
- Console.WriteLine ("Connection: " + connection_string);
- }
- }
-
- private IDbConnection GetConnection()
- {
- return new MySqlConnection(connection_string);
- }
-
- private MySqlParameter CreateParameter(string name, object value)
- {
- return new MySqlParameter (name, value);
- }
-
- static void mail (string recipient, string body)
- {
- MailMessage m = new MailMessage ();
- m.From = "mono-docs-list at ximian.com";
- m.To = recipient;
- m.Subject = "Your Monodoc passkey";
- m.Body = String.Format ("\n\nWelcome to the Mono Documentation Effort,\n\n" +
- "This is your passkey for contributing to the Mono Documentation effort:\n " +
- " {0}\n\n" +
- "The Mono Documentation Team (mono-docs-list at ximian.com)", body);
-
- SmtpMail.SmtpServer = "localhost";
- SmtpMail.Send (m);
- }
-
- //
- // 0 => OK to send contributions.
- // -1 => Invalid version
- //
- [WebMethod(Description="Check the client/server version; 0 means that the server can consume your data")]
- public int CheckVersion (int version)
- {
- if (version == 1)
- return 0;
- return -1;
- }
-
- //
- // Return codes:
- // -3 invalid characters in login
- // -2 Login already registered, password resent.
- // -1 Generic error
- // 0 password mailed
- //
- [WebMethod(Description="Requests a registration for a login")]
- public int Register (string login)
- {
- if (login.IndexOf ("'") != -1)
- return -3;
-
- IDbConnection conn = GetConnection();
- conn.Open();
- try
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select password from person where name=@login";
- cmd.Parameters.Add( CreateParameter("@login", login));
- IDataReader reader = cmd.ExecuteReader ();
-
- if (reader.Read ()){
- string password = (string) reader ["password"];
- mail (login, password);
- reader.Close ();
- return -2;
- }
- reader.Close ();
- Random rnd = new Random ();
- int pass = rnd.Next ();
- cmd.CommandText = "INSERT INTO person (name, password, last_serial) VALUES " +
- "(@name, @password, 0)";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@password",pass));
-
- cmd.ExecuteNonQuery ();
- mail (login, pass.ToString ());
-
- return 0;
- } catch (Exception e) {
- Console.Error.WriteLine (e);
- } finally {
- conn.Close ();
- }
- return -1;
- }
-
- [WebMethod (Description="Returns the latest serial number used for a change on the server")]
- public int GetSerial (string login, string password)
- {
- IDbConnection conn = GetConnection();
- conn.Open();
- try
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select last_serial from person where name=@login and password=@password";
- cmd.Parameters.Add( CreateParameter("@login", login));
- cmd.Parameters.Add( CreateParameter("@password", password));
-
- object r = cmd.ExecuteScalar();
- if (r != null){
- Console.Error.WriteLine (r);
- return (int) r;
- }
- return -1;
- } catch (Exception e){
- Console.Error.WriteLine ("Exception" + e);
- } finally {
- conn.Close();
- }
- return -1;
- }
-
- // -1 Generic error.
- // -2 Erroneous XML
- int a=1;
- [WebMethod (Description="Submits a GlobalChangeSet as a contribution")]
- public int Submit (string login, string password, XmlNode node)
- {
- IDbConnection conn = GetConnection();
- conn.Open();
- try {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select * from person where name=@login and password=@password";
- cmd.Parameters.Add( CreateParameter("@login", login));
- cmd.Parameters.Add( CreateParameter("@password", password));
-
- IDataReader reader = cmd.ExecuteReader ();
-
- int ret_val = -1;
-
- if (reader.Read()){
- int id = (int)reader["person_id"];
- int serial = (int)reader["last_serial"];
- reader.Close ();
-
- //
- // Validate the XML
- //
- XmlDocument d = new XmlDocument ();
- d.AppendChild (d.ImportNode (node, true));
- XmlNodeReader r = new XmlNodeReader (d);
- try {
- object rr = GlobalChangeset.serializer.Deserialize (r);
- } catch {
- return -2;
- }
-
- string dudebase = basedir + id;
- Directory.CreateDirectory (dudebase);
-
- d.Save (dudebase + "/" + serial + ".xml");
- IDbTransaction txn = conn.BeginTransaction();
- try {
- cmd.CommandText = "UPDATE person SET last_serial=@last_serial WHERE name=@name AND password=@pwd";
- cmd.Parameters.Add( CreateParameter("@last_serial", serial+1));
- cmd.Parameters.Add( CreateParameter("@name", login));
- cmd.Parameters.Add( CreateParameter("@pwd", password));
- cmd.ExecuteNonQuery ();
-
-
- cmd.CommandText = "INSERT INTO status (person_id, serial, status) VALUES (@id, @serial, 0)";
- cmd.Parameters.Add( CreateParameter("@id",id));
- cmd.Parameters.Add( CreateParameter("@serial",serial));
- cmd.ExecuteNonQuery ();
-
- txn.Commit();
- } catch (Exception e) {
- Console.Error.WriteLine ("E: " + e);
- }
-
- ret_val = serial+1;
- return ret_val;
- }
- Console.Error.WriteLine ("Error, going: 4");
- return -4;
- } catch (Exception e) {
- Console.Error.WriteLine ("Failure in Submit: " + e);
- return -3;
- } finally {
- conn.Close ();
- }
- }
-
- bool IsAdmin (IDbConnection conn, string login, string password)
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select person_id,is_admin from person where name=@name and password=@pass";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@pass",password));
-
- int person_id = -1;
- bool is_admin = false;
- using (IDataReader reader = cmd.ExecuteReader ()){
- if (reader.Read ()){
- person_id = (int) reader ["person_id"];
- is_admin = ((int) reader ["is_admin"]) == 1;
- } else
- return false;
- }
- if (person_id == -1 || is_admin == false)
- return false;
-
- return true;
- }
-
- [WebMethod (Description="Obtains the list of pending contributions")]
- public PendingChange [] GetPendingChanges (string login, string password)
- {
- IDbConnection conn = GetConnection();
- conn.Open ();
-
- try {
- if (!IsAdmin (conn, login, password)){
- return new PendingChange [0];
- }
-
- IDbCommand cmd = conn.CreateCommand();
- ArrayList results = new ArrayList ();
- cmd.CommandText = "select status.person_id, serial, person.name from status, person where status=0 and person.person_id = status.person_id";
- using (IDataReader reader = cmd.ExecuteReader ()){
- while (reader.Read ()){
- results.Add (new PendingChange ((string) reader ["name"], (int) reader ["person_id"], (int) reader ["serial"]));
- }
- }
-
- PendingChange [] ret = new PendingChange [results.Count];
- results.CopyTo (ret);
- return ret;
- } catch (Exception e){
- Console.Error.WriteLine (e);
- return null;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="Obtains a change set for a user")]
- public XmlNode FetchContribution (string login, string password, int person_id, int serial)
- {
- IDbConnection conn = GetConnection ();
- conn.Open ();
- try {
- if (!IsAdmin (conn, login, password))
- return null;
-
- XmlDocument d = new XmlDocument ();
- string fname = basedir + person_id + "/" + serial + ".xml";
- d.Load (fname);
- return d.FirstChild;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="ADMIN: Obtains the number of pending commits")]
- public Status GetStatus (string login, string password)
- {
- IDbConnection conn = GetConnection ();
- conn.Open ();
- try {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select * from person where name=@name and password=@pass";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@pass",password));
-
- IDataReader reader = cmd.ExecuteReader ();
- int id = -1;
-
- if (reader.Read())
- id = (int)reader["person_id"];
- reader.Close ();
- if (id == -1)
- return null;
-
- Status s = new Status ();
-
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}'", id);
- s.Contributions = (int) cmd.ExecuteScalar ();
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}' and status='0'", id);
- s.Pending = (int) cmd.ExecuteScalar ();
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}' and status='1'", id);
- s.Commited = (int) cmd.ExecuteScalar ();
-
- return s;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="ADMIN: Updates the status of a contribution")]
- public void UpdateStatus (string login, string password, int person_id, int contrib_id, int status)
- {
- IDbConnection conn = GetConnection();
- conn.Open ();
-
- try {
- if (!IsAdmin (conn, login, password))
- return;
-
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "update status set status=@status WHERE person_id=@PID AND serial=@ser";
- cmd.Parameters.Add (CreateParameter ("@status", status));
- cmd.Parameters.Add (CreateParameter ("@PID", person_id));
- cmd.Parameters.Add (CreateParameter ("@ser", contrib_id));
- cmd.ExecuteNonQuery ();
- } finally {
- conn.Close ();
- }
- }
- }
-
- public class Status {
- public int Contributions;
- public int Commited;
- public int Pending;
- }
-
- public class PendingChange {
- public string Login;
- public int ID;
- public int Serial;
-
- public PendingChange (string login, int person_id, int serial)
- {
- Login = login;
- ID = person_id;
- Serial = serial;
- }
-
- public PendingChange ()
- {
- }
- }
-}
diff --git a/webdoc/skins/mono-external/common-extension.css b/webdoc/skins/mono-external/common-extension.css
new file mode 100644
index 0000000..00f8b94
--- /dev/null
+++ b/webdoc/skins/mono-external/common-extension.css
@@ -0,0 +1,333 @@
+body {
+ background-color: #ffffff;
+ margin: 0px;
+ padding: 0px;
+ font-family: Verdana, sans-serif !important;
+ overflow-x: hidden;
+}
+
+.HeaderTable {
+ border: 2px solid #99aadd;
+}
+
+body, td, th {
+ font-family: Verdana, sans-serif; font-size: 12px;
+ color: black;
+}
+
+.SignatureTable, .MemberSignatureTable {
+ border: 1px solid #DDDDDD;
+}
+
+.Footer {
+ border-top: 2px solid #E5E5E5;
+ padding-left: 1em;
+}
+
+.Footer hr {
+ display: none;
+}
+
+h1, h2, h3, h4 {
+ font-family: Verdana,sans-serif;
+ font-weight: bold;
+}
+
+h1 {
+}
+
+h3 {
+}
+
+h4 {
+}
+
+.MasterNamespaceLink a {
+ font-weight: bold;
+ text-decoration: none;
+}
+.MasterNamespaceDescription {
+ margin-left: 2em;
+}
+
+img {
+ border: 0;
+ vertical-align: top;
+}
+
+.copyright {
+ border:1px solid black;
+ padding-left:5px;
+ padding-right:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ background-color:#BEBAA8;
+ font-size:9px;
+ margin-top: 10pt;
+ margin-left: -15pt;
+ margin-right: -15pt;
+}
+
+.important {
+ padding-left:2px;
+ padding-right:2px;
+ padding-top:2px;
+ padding-bottom:2px;
+ background-color:#000000;
+ color:#ffffff;
+}
+
+.menu {
+ font-family:Arial, Verdana;
+ font-size:12px;
+ font-weight:bold;
+}
+
+.navbar{
+ color:black;
+ font-family:Arial, Verdana;
+ font-size:10px;
+ border-bottom:1px solid #000000;
+ border-left:1px solid black;
+ border-right:1px solid black;
+ background-color:#efefef;
+ padding-left:2px;
+ padding-right:2px;
+ padding-top:2px;
+ padding-bottom:2px;
+ margin-left: -15pt;
+ margin-right: -15pt;
+}
+
+.topframe {
+ background-image:url(images/backbig.png);
+ border:1px solid #000000;
+ background-color:#BEBAA8;
+ margin-left: -15pt;
+ margin-right: -15pt;
+}
+
+.chapter {
+ font-size:14px;
+ font-weight:bold;
+ color:#444444;
+ padding-left:0px;
+ padding-right:0px;
+ padding-top:0px;
+ padding-bottom:0px;
+}
+
+.table {
+ padding-left:2px;
+ padding-right:2px;
+ padding-top:0px;
+ padding-bottom:0px;
+ background-color:#efefef;
+ border:1px solid #c0c0c0;
+}
+
+.elementOn {
+ color:#a40000;
+}
+
+.element {
+ color:#0000a4;
+}
+
+.code {
+ font-size: small;
+ font-family: "Courier New", Courier;
+ line-height:110%;
+}
+
+.box {
+ padding:15px;
+ font-size: small;
+ background:whitesmoke;
+ border: solid 1px silver;
+}
+
+.console {
+ border-style: solid;
+ background: whitesmoke;
+ border-width: 1px;
+ padding: 2pt;
+ margin:15px;
+}
+
+.headerlink {
+ vertical-align:bottom;
+}
+
+a {
+ color: blue;
+}
+a:visited {
+ color: blue;
+}
+
+td a {
+ text-decoration: none;
+}
+
+.HeaderTable a {
+ color: black;
+ text-decoration: underline;
+}
+
+div.Content {
+ margin-right: 1em;
+}
+
+div.related ul {
+ list-type: none;
+ padding-left: 1em;
+}
+
+.native-browser {
+ font-family: "Lucida Grande", Geneva, Helvetica, Arial, Verdana, Sans-Serif;
+ display: inline-block;
+ color: #333 !important;
+ text-decoration:none !important;
+ font-size: 88%;
+ padding: 4px 10px 4px 10px;
+ border: 1px solid silver;
+ border-bottom-color: #bcbcbc;
+ border-radius: 3px;
+ background: #f2f2f2;
+}
+
+.native-browser:hover {
+ background: #ddd;
+ color: black;
+}
+
+.native-browser img {
+ vertical-align: center;
+ margin-right: 3px;
+}
+
+body, div {
+ margin: 0;
+ padding: 0;
+}
+img.toolbarsep {
+ border: 0 none;
+ margin-bottom: 1px;
+ margin-top: 1px;
+ padding-bottom: 3px;
+ padding-top: 3px;
+ vertical-align: middle;
+}
+img.toolbar {
+ border: 0 none;
+ margin: 1px;
+ padding: 3px;
+ vertical-align: middle;
+}
+img.toolbar:hover {
+ border-color: white #B1A598 #B1A598 white;
+ border-left: 1px solid white;
+ border-right: 1px solid #B1A598;
+ border-style: solid;
+ border-width: 1px;
+ margin: 0;
+}
+img.toolbar:active {
+ border-color: #B1A598 white white #B1A598;
+ border-left: 1px solid #B1A598;
+ border-right: 1px solid white;
+ border-style: solid;
+ border-width: 1px;
+}
+#login {
+ float: right;
+ padding: 5px;
+ position: fixed;
+ right: 0;
+ top: 0;
+}
+#rightSide {
+ float: right;
+ padding: 5px;
+ position: relative;
+ right: 0;
+}
+#banner {
+ background: url("/mdocimages/headerbg.png") no-repeat scroll 100% 50% #679EF1;
+ border-bottom: 1px dotted #3363BD;
+ height: 40px;
+}
+#header {
+ color: black;
+ height: 40px;
+ margin-bottom: 0;
+ padding: 0 0 0 15px;
+ position: relative;
+ width: 50%;
+}
+#header h1 {
+ color: white;
+ font-family: arial,helvetica,verdana,sans-serif;
+ font-size: 22px;
+ font-weight: bold;
+ line-height: 1.8em;
+ margin: 0;
+}
+body, div {
+ border: 0 none;
+ font: inherit;
+ margin: 0;
+ padding: 0;
+ vertical-align: baseline;
+}
+html, body {
+ height: 100%;
+}
+#side {
+ border-right: 1px solid black;
+ float: left;
+ height: 93%;
+ overflow: auto;
+ width: 20%;
+}
+#main_part {
+ height: 100%;
+}
+#content_frame {
+ height: 94%;
+ width: 99.8%;
+}
+#content_frame_wrapper {
+ float: right;
+ height: 100%;
+ margin-right: 5px;
+ margin-top: 10px;
+ width: 79%;
+}
+#sidebar_container {
+ margin-top: 10px;
+ font-size: 8pt !important;
+}
+.tree-label a {
+ color: black !important;
+}
+.tree-label a:hover {
+ background: none repeat scroll 0 0 #DFDFDF !important;
+ border: 1px solid grey !important;
+ color: black !important;
+ padding: 1px !important;
+}
+.tree-label-selected a, .tree-label-selected a:hover {
+ background: none repeat scroll 0 0 highlight !important;
+ color: highlighttext !important;
+}
+#rightSide {
+ font-size: 8pt;
+}
+#fsearch_companion {
+ font-size: 8pt;
+}
+#fsearch_window {
+ font-size: 8pt;
+}
diff --git a/webdoc/skins/mono-external/footer.html b/webdoc/skins/mono-external/footer.html
new file mode 100644
index 0000000..04f5b84
--- /dev/null
+++ b/webdoc/skins/mono-external/footer.html
@@ -0,0 +1 @@
+</div>
diff --git a/webdoc/skins/mono-external/header.html b/webdoc/skins/mono-external/header.html
new file mode 100644
index 0000000..018532a
--- /dev/null
+++ b/webdoc/skins/mono-external/header.html
@@ -0,0 +1,13 @@
+<div id="banner" style="color: rgb(255, 255, 255);">
+<div id="rightSide">
+ <label for="search">Search: </label>
+ <input id="fsearch" type="search" style="width: 19em; margin-right: 10px;" placeholder="Enter search request">
+ <a onclick="document.getElementById ('content_frame').contentWindow.print ()" href="#">
+ <img class="toolbar" width="24" height="24" title="Print this document" alt="Print" src="/skins/mono-external/images/print.png">
+ </a>
+</div>
+ <div id="header">
+ <h1>Mono Documentation</h1>
+ </div>
+<div id="main_part">
+ <div id ="sidebar_container"></div>
diff --git a/webdoc/skins/mono-external/images/link.png b/webdoc/skins/mono-external/images/link.png
new file mode 100644
index 0000000..a5beda8
Binary files /dev/null and b/webdoc/skins/mono-external/images/link.png differ
diff --git a/webdoc/images/mono-logo.png b/webdoc/skins/mono-external/images/mono-logo.png
similarity index 100%
rename from webdoc/images/mono-logo.png
rename to webdoc/skins/mono-external/images/mono-logo.png
diff --git a/webdoc/images/mono_logo_g.gif b/webdoc/skins/mono-external/images/mono_logo_g.gif
similarity index 100%
rename from webdoc/images/mono_logo_g.gif
rename to webdoc/skins/mono-external/images/mono_logo_g.gif
diff --git a/webdoc/skins/mono-external/images/native-browser-icon.png b/webdoc/skins/mono-external/images/native-browser-icon.png
new file mode 100644
index 0000000..e037505
Binary files /dev/null and b/webdoc/skins/mono-external/images/native-browser-icon.png differ
diff --git a/webdoc/skins/mono-external/images/print.png b/webdoc/skins/mono-external/images/print.png
new file mode 100644
index 0000000..08aecc8
Binary files /dev/null and b/webdoc/skins/mono-external/images/print.png differ
diff --git a/webdoc/skins/mono-external/images/slide-toggle.png b/webdoc/skins/mono-external/images/slide-toggle.png
new file mode 100644
index 0000000..2fc9d0f
Binary files /dev/null and b/webdoc/skins/mono-external/images/slide-toggle.png differ
diff --git a/webdoc/skins/mono-external/images/spinner.gif b/webdoc/skins/mono-external/images/spinner.gif
new file mode 100644
index 0000000..3288d10
Binary files /dev/null and b/webdoc/skins/mono-external/images/spinner.gif differ
diff --git a/webdoc/tables.sql b/webdoc/tables.sql
deleted file mode 100644
index 2e95194..0000000
--- a/webdoc/tables.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-use monodoc;
-drop table person;
-drop table status;
-create table person (
- name varchar (80) not null,
- password varchar (20) not null,
- person_id int not null primary key auto_increment,
- last_serial int not null,
- last_update int not null,
- is_admin int not null
-);
-
-create table status (
- person_id int not null,
- serial int not null,
- status int not null
-);
-
-insert into person (name, password, last_serial, is_admin) values ('miguel at ximian.com', 'login1', 0, 1);
-insert into person (name, password, last_serial) values ('nat at nat.org', 'login2', 0);
-
diff --git a/webdoc/views/common.css b/webdoc/views/common.css
new file mode 100644
index 0000000..d7abcff
--- /dev/null
+++ b/webdoc/views/common.css
@@ -0,0 +1,38 @@
+/*****Common.css*****/
+/*bare-bones css for most layouts*/
+body {
+ padding: 0;
+ height: 100%;
+}
+html {
+ padding: 0;
+ margin: 0 auto;
+ height: 100%;
+}
+.code {
+ font-family: "Courier New", Courier;
+}
+.table {
+ padding-left:2px;
+ padding-right:2px;
+ padding-top:0px;
+ padding-bottom:0px;
+}
+div.Content {
+ margin-right: 1em;
+}
+iframe {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+#content_frame {
+ width: 100%;
+ height: 100%;
+}
+#main_part {
+ height: 100%;
+}
diff --git a/webdoc/views/common.js b/webdoc/views/common.js
new file mode 100644
index 0000000..887b731
--- /dev/null
+++ b/webdoc/views/common.js
@@ -0,0 +1,46 @@
+$(function () {
+//a hack for sizing our iframe correctly
+/* var getHeight = function () {
+ <!--
+ var viewportwidth;
+ var viewportheight;
+ // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
+ if (typeof window.innerWidth != 'undefined')
+ {
+ viewportwidth = window.innerWidth,
+ viewportheight = window.innerHeight
+ }
+ // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
+ else if (typeof document.documentElement != 'undefined'
+ && typeof document.documentElement.clientWidth !=
+ 'undefined' && document.documentElement.clientWidth != 0)
+ {
+ viewportwidth = document.documentElement.clientWidth,
+ viewportheight = document.documentElement.clientHeight
+ }
+ // older versions of IE
+ else
+ {
+ viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
+ viewportheight = document.getElementsByTagName('body')[0].clientHeight
+ }
+ return viewportheight;
+ //-->
+ }
+
+ var main_part = $('#main_part');
+ var content_frame = main_part.find('#content_frame');
+ var resize_mainpart = function () {
+// main_part.height (getHeight() - 75);
+// main_part.children('#side').css ('height', '100%');
+ content_frame.css ('height', '97.5%');
+ }
+
+ var resizeTimer;
+ $(window).resize(function() {
+ clearTimeout(resizeTimer);
+ resizeTimer = setTimeout(resize_mainpart, 100);
+ });
+
+ resize_mainpart ();*/
+});
diff --git a/webdoc/views/images/favicon.ico b/webdoc/views/images/favicon.ico
new file mode 100644
index 0000000..d18044a
Binary files /dev/null and b/webdoc/views/images/favicon.ico differ
diff --git a/webdoc/views/images/native-browser-icon.png b/webdoc/views/images/native-browser-icon.png
new file mode 100644
index 0000000..e037505
Binary files /dev/null and b/webdoc/views/images/native-browser-icon.png differ
diff --git a/webdoc/views/reset.css b/webdoc/views/reset.css
new file mode 100644
index 0000000..f160318
--- /dev/null
+++ b/webdoc/views/reset.css
@@ -0,0 +1,49 @@
+
+
+ /**
+ * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
+ * http://cssreset.com
+ */
+ html, body, div, span, applet, object, iframe,
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+ a, abbr, acronym, address, big, cite, code,
+ del, dfn, em, img, ins, kbd, q, s, samp,
+ small, strike, strong, sub, sup, tt, var,
+ b, u, i, center,
+ dl, dt, dd, ol, ul, li,
+ fieldset, form, label, legend,
+ table, caption, tbody, tfoot, thead, tr, th, td,
+ article, aside, canvas, details, embed,
+ figure, figcaption, footer, header, hgroup,
+ menu, nav, output, ruby, section, summary,
+ time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ }
+ /* HTML5 display-role reset for older browsers */
+ article, aside, details, figcaption, figure,
+ footer, header, hgroup, menu, nav, section {
+ display: block;
+ }
+ body {
+ line-height: 1;
+ }
+ ol, ul {
+ list-style: none;
+ }
+ blockquote, q {
+ quotes: none;
+ }
+ blockquote:before, blockquote:after,
+ q:before, q:after {
+ content: '';
+ content: none;
+ }
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
diff --git a/webdoc/web.config b/webdoc/web.config
index 1cef88e..0951f11 100644
--- a/webdoc/web.config
+++ b/webdoc/web.config
@@ -8,6 +8,8 @@
</configSections>
<system.web>
<customErrors mode="Off"/>
+ <httpRuntime requestValidationMode="2.0" />
+ <pages validateRequest="false" />
<authentication mode= "Forms">
</authentication>
<!-- Avoid compilation errors when the Mono.Contributions.dll assembly is not found. The assembly is only on the go-mono.com server -->
@@ -22,18 +24,11 @@
</mono.aspnet>
<appSettings>
- <add key="MonoServerDefaultIndexFiles"
- value="index.aspx, Default.aspx, default.aspx, index.html, index.htm" />
+ <add key="Title" value="Xamarin API Documentation" />
+ <add key="MonoServerDefaultIndexFiles" value="index.aspx, Default.aspx, default.aspx, index.html, index.htm" />
+ <add key="MonodocRootDir" value="/mono/lib/monodoc-ios/" />
+ <add key="Plugins" value="plugins.def" />
</appSettings>
- <location path="edit.aspx">
- <system.web>
- <authentication mode="Forms">
- <forms name=".MONOAUTH" loginUrl="login.aspx"/>
- </authentication>
- <authorization>
- <deny users="?" />
- </authorization>
- </system.web>
- </location>
+
</configuration>
diff --git a/webdoc/wiki2ecmahelper.xsl b/webdoc/wiki2ecmahelper.xsl
deleted file mode 100644
index 4039cd9..0000000
--- a/webdoc/wiki2ecmahelper.xsl
+++ /dev/null
@@ -1,70 +0,0 @@
-<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
- <!-- default rule -->
- <xsl:template match="*">
- <xsl:copy>
- <xsl:copy-of select="@*" />
- <xsl:apply-templates />
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="code">
- <xsl:element name="c"><xsl:apply-templates /></xsl:element>
- </xsl:template>
-
- <xsl:template match="div">
- <xsl:choose>
- <xsl:when test="@class = 'example'">
- <example><xsl:apply-templates /></example>
- </xsl:when>
- <xsl:when test="@class = 'behavior'">
- <block type="behavior"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'default'">
- <block type="default"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'example-block'">
- <block type="example"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'overrides'">
- <block type="overrides"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'usage'">
- <block type="usage"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="." />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="table">
- <list type="table">
- <xsl:if test="tr[1]/th">
- <listheader><item>
- <term>
- <xsl:apply-templates select="tr[1]/th[1]" />
- </term>
- <xsl:for-each select="tr[1]/th[position() > 1]">
- <description>
- <xsl:apply-templates />
- </description>
- </xsl:for-each>
- </item></listheader>
- </xsl:if>
- <xsl:for-each select="tr">
- <item>
- <term>
- <xsl:apply-templates select="td[1]" />
- </term>
- <xsl:for-each select="td[position() > 1]">
- <description>
- <xsl:apply-templates />
- </description>
- </xsl:for-each>
- </item>
- </xsl:for-each>
- </list>
- </xsl:template>
-
-</xsl:transform>
diff --git a/webdoc/xtree/images/msdn2/Lminus.gif b/webdoc/xtree/images/msdn2/Lminus.gif
deleted file mode 100644
index 0fae6ac..0000000
Binary files a/webdoc/xtree/images/msdn2/Lminus.gif and /dev/null differ
diff --git a/webdoc/xtree/images/msdn2/Lplus.gif b/webdoc/xtree/images/msdn2/Lplus.gif
deleted file mode 100644
index 092e97e..0000000
Binary files a/webdoc/xtree/images/msdn2/Lplus.gif and /dev/null differ
diff --git a/webdoc/xtree/images/msdn2/Tminus.gif b/webdoc/xtree/images/msdn2/Tminus.gif
deleted file mode 100644
index 3f19194..0000000
Binary files a/webdoc/xtree/images/msdn2/Tminus.gif and /dev/null differ
diff --git a/webdoc/xtree/images/msdn2/Tplus.gif b/webdoc/xtree/images/msdn2/Tplus.gif
deleted file mode 100644
index 7a7af25..0000000
Binary files a/webdoc/xtree/images/msdn2/Tplus.gif and /dev/null differ
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mono/packages/mono-tools.git
More information about the Pkg-mono-svn-commits
mailing list