In this paper, we present an algorithm for synthesizing polyhedral Lyapunov functions for hybrid systems with multiple modes, each with linear dynamics and statebased switching between these modes. The problem of proving global asymptotic stability (GAS) for such systems is quite challenging. In this paper, we present an algorithm to synthesize a fixed-complexity polyhedral Lyapunov function to prove that such a system is GAS. Such functions are defined as the piecewise maximum over a fixed number of linear functions. Previous work on this problem reduces to a system of bilinear constraints that are well-known to be computationally hard to solve precisely. Therefore, heuristic approaches such as alternating descent have been employed. In this paper, we first prove that deciding if there exists a polyhedral Lyapunov function for a given piecewise linear system is a NP-hard problem. We then present a counterexample-guided algorithm for solving this problem. Our approach alternates between choosing candidate Lyapunov functions based on a finite set of counterexamples, and verifying if these candidates satisfy the Lyapunov conditions. If the verification of a given candidate fails, we find a new counterexample that is added back to our set. We prove that if this algorithm terminates, it discovers a valid Lyapunov function or concludes that no such Lyapunov function exists. However, our initial algorithm can be nonterminating. We modify our algorithm to provide a terminating version based on the so-called cutting-plane argument from nonsmooth optimization. We demonstrate our algorithm on small numerical examples.