Are you asserting the clr signal to restart the count?
it could also have been a function you you assigning variables outside of the clock branch.
Try the following code instead:
Architecture Compare_inside of Compare_N is
Signal All_hold_int : std_logic;
Signal c_int : integer range 0 to ((2**(k+1))-1);
Begin
---------- Compare Process -------------------------->
Compare_Me : Process(clk,clr)
begin
--****************************************************************
if (clr ='1') then
c_int <= 0;
All_hold_int <= '0';
elsif(clk'event and clk='1') then
if (All_hold_int = '0') then
c_int <= c_int + 1;
end if;
-------------------------------
if( N = c_int ) then
All_hold_int <= '1';
end if;
-------------------------------
end if;
End Process Compare_Me;
---------------------------------------------------------
Hold_All <= All_hold_int;
End Compare_inside;