| @@ -222,6 +222,11 @@ public: | |||
| return String ("$(JUCE_OUTDIR)/$(JUCE_TARGET_") + getTargetVarName() + String (")"); | |||
| } | |||
| String getPhonyName() const | |||
| { | |||
| return String (getName()).upToFirstOccurrenceOf (" ", false, false); | |||
| } | |||
| void writeTargetLine (OutputStream& out, const bool useLinuxPackages) | |||
| { | |||
| jassert (type != AggregateTarget); | |||
| @@ -522,6 +527,8 @@ private: | |||
| if (target->type == ProjectType::Target::AggregateTarget) | |||
| { | |||
| StringArray dependencies; | |||
| MemoryOutputStream subTargetLines; | |||
| for (int j = 0; j < n; ++j) | |||
| { | |||
| if (i == j) continue; | |||
| @@ -529,14 +536,25 @@ private: | |||
| if (MakefileTarget* dependency = targets.getUnchecked (j)) | |||
| { | |||
| if (dependency->type != ProjectType::Target::SharedCodeTarget) | |||
| dependencies.add (dependency->getBuildProduct()); | |||
| { | |||
| auto phonyName = dependency->getPhonyName(); | |||
| subTargetLines << phonyName << " : " << dependency->getBuildProduct() << newLine; | |||
| dependencies.add (phonyName); | |||
| } | |||
| } | |||
| } | |||
| out << "all : " << dependencies.joinIntoString (" ") << newLine << newLine; | |||
| out << subTargetLines.toString() << newLine << newLine; | |||
| } | |||
| else | |||
| { | |||
| if (! getProject().getProjectType().isAudioPlugin()) | |||
| out << "all : " << target->getBuildProduct() << newLine << newLine; | |||
| target->writeTargetLine (out, useLinuxPackages); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -661,8 +679,7 @@ private: | |||
| for (auto target : targets) | |||
| target->writeObjects (out); | |||
| out << ".PHONY: clean all" << newLine | |||
| << newLine; | |||
| out << getPhonyTargetLine() << newLine << newLine; | |||
| StringArray packages; | |||
| packages.addTokens (getExtraPkgConfigString(), " ", "\"'"); | |||
| @@ -720,6 +737,23 @@ private: | |||
| + "_" + String::toHexString (file.toUnixStyle().hashCode()) + ".o"; | |||
| } | |||
| String getPhonyTargetLine() const | |||
| { | |||
| MemoryOutputStream phonyTargetLine; | |||
| phonyTargetLine << ".PHONY: clean all"; | |||
| if (! getProject().getProjectType().isAudioPlugin()) | |||
| return phonyTargetLine.toString(); | |||
| for (auto target : targets) | |||
| if (target->type != ProjectType::Target::SharedCodeTarget | |||
| && target->type != ProjectType::Target::AggregateTarget) | |||
| phonyTargetLine << " " << target->getPhonyName(); | |||
| return phonyTargetLine.toString(); | |||
| } | |||
| void initialiseDependencyPathValues() | |||
| { | |||
| vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder), | |||