mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-09 10:30:48 -07:00
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>
27 lines
651 B
Text
27 lines
651 B
Text
# 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)
|