Media playback is unsupported on your device Media caption Spike Lee, director: "We have to wake up"

US director Spike Lee has called on the world to "wake up" at an incendiary press conference that saw him repeatedly lambast President Trump.

Trump, he said, had been wrong not to denounce last year's far-right rally in Charlottesville, Virginia at which a female counter-protester died.

Lee is at Cannes with BlacKkKlansman, the true story of a black detective who infiltrated the KKK.

"I hope this film shakes people from their slumber," he told reporters.

"We've been walking around in a daze," he added.

Footage of the moment a white nationalist driver ploughed his car into the crowd is shown at the end of Lee's film, which received a standing ovation at its Cannes premiere on Monday night.

Read more from Cannes:

Image copyright Universal Image caption Adam Driver and John David Washington star in the film, which received a standing ovation at its premiere

Lee said President Trump, whom he refused to name, had had a chance after the incident "to talk about love, not hate".

Instead the US president claimed "both sides" had been to blame for the violence that erupted last August.

"We look our leaders to give us direction and make moral decisions," said Lee, adding that he wanted his 1970s-set film to be thought of in "global terms".

"This right-wing [expletive] is happening all over the world," he declared. "We have to wake up and we can't be silent."

Image copyright Reuters Image caption Lee is back at Cannes with BlacKkKlansman, the true story of a black detective who infiltrated the KKK

In BlacKkKlansman, a black police detective from Colorado Springs calls the local chapter of the Ku Klux Klan and persuades them to make him a member.

Face-to-face meetings are conducted on his behalf by a white colleague, played by Adam Driver - who is welcomed into the organisation even though he is actually Jewish.

David Duke, a former leader of the Ku Klux Klan, is shown in the film falling for the elaborate and unorthodox subterfuge.

Lee said the film would be released in the US to coincide with the first anniversary of the Charlottesville tragedy, which he said was "an ugly blemish" on his country.

'In a bad place'

Actor Topher Grace, who plays Duke in the film, said he had found much of his racist rhetoric hard to utter.

"I rarely get affected by the characters I play, but there were times I was in a really bad place," he said.

"There are zero other directors I would play David Duke for," continued the former star of That '70s show.

Ron Stallworth, the detective at the centre of the story, is played by John David Washington, whose father Denzel has been directed by Lee in several films.

Image copyright Getty Images Image caption Spike Lee, second right, and the cast of BlacKkKlansman

The 33-year-old said the real Stallworth had been "very generous" with his time and that working on the film has been a "blessed" experience.

Lee did not hold back during the Cannes press conference, regaling his audience with almost as much profanity as can be heard in the film.

"Please excuse my profane words, but the [expletive] going on makes me want to curse," he said.

The confrontational film-maker was also unapologetic about the repeated use of racial and homophobic epithets used in his film, which comes out in the UK later this year.

"Words can be hateful and harmful but that was how the Klan talked," he said.

"They don't speak lovingly of blacks and Jews. I wanted the hate to be verbalised."

The 71st Cannes Film Festival continues until 19 May.

Follow us on Facebook, on Twitter @BBCNewsEnts, or on Instagram at bbcnewsents. If you have a story suggestion email entertainment.news@bbc.co.uk.