# # Copyright (C) 1999-2007 Hewlett-Packard Co. # Contributed by David Mosberger # Contributed by Stephane Eranian # # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials # provided with the distribution. # * Neither the name of Hewlett-Packard Co. nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # %.efi: %.so $(OBJCOPY) \ --file-alignment 512 --section-alignment 4096 \ -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ -j .rela -j '.rel.*' -j '.rela.*' -j '.rel*' -j '.rela*' \ -j .reloc \ -j '.debug*' -j '.eh_frame*' -j .note.gnu.build-id \ $(FORMAT) $*.so $@ %.efi.debug: %.so $(OBJCOPY) \ --file-alignment 512 --section-alignment 4096 \ -j '.debug*' -j '.eh_frame*' -j .note.gnu.build-id \ $(FORMAT) $*.so $@ %.so: %.o $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES) %.o: %.c $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ %.s: %.c $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -S $^ -o $@ %.i: %.c $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $^ -o $@ %.o: %.S $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -Wa,-g -c $^ -o $@ %.s: %.S $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $^ -o $@ define SEDATAT $(SED) \ -e "s,@@BFD_ARCH@@,${BFD_ARCH},g" \ -e "s,@@EFI_ARCH@@,${ARCH},g" \ -e "s,@@INCLUDEDIR@@,${INCLUDEDIR},g" \ -e "s,@@LIBDIR@@,${LIBDIR},g" \ -e "s,@@CFLAGS@@,${EXPORT_CFLAGS},g" \ -e "s,@@LDFLAGS@@,${EXPORT_LDFLAGS},g" \ -e "s,@@PREFIX@@,${PREFIX},g" \ -e "s,@@SHAREDIR@@,${SHAREDIR},g" \ -e "s,@@VERSION@@,${VERSION},g" endef gnu-efi-%.pc : gnu-efi.pc.in $(SEDATAT) $< > $@ $(foreach arch,$(ARCHES) $(ALL_ARCH_ALIASES),$(arch)-efi-gnu.personality) :: %-efi-gnu.personality : template.personality.in $(SEDATAT) -e "s,@@TRIPLET_ARCH@@,$*,g" $< > $@