Design-for-manufacturing (DFM) concepts have traditionally focused on design simplification; this is highly effective for relatively simple, mass-produced products, but tends to be too restrictive for more complex designs. Effort in recent decades has focused on creating methods for generating and imposing specific, process-derived technical manufacturability constraints for some common problems. This paper presents an overview of the problem and its design implications, a discussion of the nature of the manufacturability constraints, and a survey of the existing approaches and methods for generating/enforcing the minimally restrictive manufacturability constraints within several design domains. Four major design perspectives were included in the study, including the system design (top-down), the product design (bottom-up), the manufacturing process-dominant approach (specific process required), and the part-redesign approach. Manufacturability constraints within four design levels were explored as well, ranging from macro-scale to sub-micro-scale design. Very little previous work was found in many areas but it is clear from the existing literature that the problem and a general solution to it are very important to explore further in future DFM and design automation work.