Coming when called is a potentially life-saving command your puppy should know. A puppy that only comes sometimes, when he wants to, or only when he is within arm's reach needs work so that he comes reliably, every time you call.
Make It Fun
Never punish your dog after calling him. He needs to know that when you call for him, only good things will happen. Keep plenty of treats on hand and reward him generously when he comes when called. Play games with him while teaching him to come. Have one person restrain your puppy while you run away. Crouch down and call for your puppy while your helper lets him go. When he gets to you, reward with treats and pats, and then reverse the process. When calling your puppy, turn around and run away rather than standing and facing your dog. Most dogs will find this irresistible and chase you down.
Use the Lead
Until your furry friend is reliable when you call him, keep a lead or long training leash connected to his collar. When you call him, give a gentle tug to reinforce what you want. As he becomes more trustworthy, let go of the lead, but leave it connected to the collar so you can grab hold of it easily (without needing to chase him down) whenever he fails to come. It's important that you reinforce the command without chasing him. As you can imagine, your puppy views chasing as a game--and his instinct to run away will be detrimental to teaching him to come when called.
When you call for your puppy to come, call him one time and that is it. If he doesn't come, go get him or gently tug on the leash to get him to come to you. Calling him over and over, whistling, or giving up and leaving him alone will only reward his bad behavior and slow down your progress in teaching him to come reliably when called. It is a difficult habit to break, but the "one command" rule applies to all aspects of training your puppy. He gets one chance to do it on his own, then you do it for him. If he responds on your command, he gets lots of pats and treats.
Reward All the Time
Your puppy loves to hear how great you think he is. He also likes treats. Reward him generously for coming when called. Reward him as soon as he starts to come with a "good boy" and crouch down to encourage him to keep coming. Your enthusiasm is contagious, and will keep him coming. Even after your pup is reliable at coming when called, continue to reward and treat him. He doesn't need treats every time he comes when called, but you should include them randomly. He always deserves a pat and a "good dog" for coming when called.