From the structure of a static granular solid, we derive the fabric and the stiffness tensor in average over those pairs of interacting particles with contact within the averaging volume. Starting from a linear expansion of the interaction potential around static equilibrium, stress and elastic strain can be derived from the principles of virtual displacement and virtual stress-change, respectively. Our approach includes both normal and tangential forces separately, in a new modular formulation starting from single contacts.The results are applied to a discrete particle simulation, and the findings include a relation between fabric and coordination number that is almost unaffected by the presence of friction, a different qualitative behavior of fabric and stiffness components, and only three independent entries to the stiffness matrix in its eigen-system. More general, anisotropy evolves directed against the direction of compression, and exponentially fast up to a certain maximal (limit) magnitude--a constitutive model for this behavior is proposed; in the critical state shear regime, the anisotropy is considerably smaller.