0e8c9214ba
Juan has contributed a cool Makefile infrastructure that enables us to drop static libraries completely: Move shared obj-y definitions to Makefile.objs, prefixed {common-,hw-,user-}, and link those object files directly into the executables. Replace HWLIB by HWDIR, specifying only the directory. Drop --whole-archive and ARLIBS in Makefiles and configure. Drop GENERATED_HEADERS dependency in rules.mak, since this rebuilds all common objects after generating a target-specific header; add dependency rules to Makefile and Makefile.target instead. v2: - Don't try to include /config.mak for user emulators - Changes to user object paths ("Quickfix for libuser.a drop") were obsoleted by "user_only: compile everything with -fpie" (Kirill A. Shutemov) v3: - Fix dependency modelling for tools - Remove comment on GENERATED_HEADERS obsoleted by this patch Signed-off-by: Andreas Färber <afaerber@opensolaris.org> Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Palle Lyckegaard <palle@lyckegaard.dk> Cc: Ben Taylor <bentaylor.solx86@gmail.com> Cc: Juan Quintela <quintela@trasno.org> Cc: Kirill A. Shutemov <kirill@shutemov.name> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
28 lines
651 B
Makefile
28 lines
651 B
Makefile
# Makefile for qemu target independent user files.
|
|
|
|
include ../config-host.mak
|
|
include $(SRC_PATH)/rules.mak
|
|
-include config.mak
|
|
|
|
.PHONY: all
|
|
|
|
# Do not take %.o from $(SRC_PATH), only %.c and %.h
|
|
# All %.o for user targets should be built with -fpie, when
|
|
# configured with --enable-user-pie, so we don't want to
|
|
# take %.o from $(SRC_PATH), since they built without -fpie
|
|
vpath %.c %.h $(SRC_PATH)
|
|
|
|
QEMU_CFLAGS+=-I..
|
|
|
|
include $(SRC_PATH)/Makefile.objs
|
|
|
|
all: $(user-obj-y)
|
|
# Dummy command so that make thinks it has done something
|
|
@true
|
|
|
|
clean:
|
|
rm -f *.o *.d *.a *~
|
|
|
|
# Include automatically generated dependency files
|
|
-include $(wildcard *.d */*.d)
|