Generating a Context Free Grammar from a Language
Given $L=\{a^nb^mc^k | \ n=m \ \vee m \neq k \}$ you can see it as $L=L_1 \cup L_2$ where:


$L_1=\{a^nb^mc^k | \ n=m\}$ 
$L_2=\{a^nb^mc^k | \ m \neq k\}$ 


Then you define 2 Context free grammars $G_1$ and $G_2$ for the 2 languages and in order to express the OR condition your add the production rule

$S \rightarrow S_1\ | \ S_2$

where $S$ is the starting symbol for $G$, $S_1$ for $G_1$ and $S_2$ for $G_2$.

As suggested in the comments, $L_1$ and $L_2$ can be splitted in order to make it easier the design of the grammars.


$L_1=L_{1,1} \cdot L_{1,2}$ where:


$L_{1,1}=\{ a^nb^n | \ n \geq 0 \ \}$ 
$L_{1,2}=\{ c^k | \ k \geq 0\ \}$

$L_2=L_{2,1} \cdot (L_{2,2} \vee L_{2,3})$ where:


$L_{2,1}=\{a^n \ | \ n \geq 0\}$
$L_{2,2}=\{b^mc^k | \ m &lt; k\}$ 
$L_{2,3}=\{b^mc^k | \ m &gt; k\}$