We propose principal component analysis (PCA) of a data set based on the L 1 -norm. We distinguish between Q-mode and R-mode analyses. The Q-mode L 1 principal components are sequentially calculated by an enumeration procedure. We show that the Q-mode L 1 -norm PCA is a constrained version of R-mode L 2 -norm PCA. Two generalizations are proposed, robustification and extension of Thurston's simple structure. Robustification is achieved by replacing the L 2 -norm by an efficient robust A-estimator of scale based on Tukey's biweight function. Extended simple structure is used to discard redundant variables. Examples are provided.