Not all compilers support the -Wpsabi (clang-9 in my case). To handle
this gracefully we pare back the shared build machinery so the
Makefile is relatively "standalone". We still take advantage of
config-host.mak as configure has done a bunch of probing for us but
that is it.
Fixes: bac8d222a
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200713200415.26214-6-alex.bennee@linaro.org>
47 lines
1,008 B
Makefile
47 lines
1,008 B
Makefile
# -*- Mode: makefile -*-
|
|
#
|
|
# This Makefile example is fairly independent from the main makefile
|
|
# so users can take and adapt it for their build. We only really
|
|
# include config-host.mak so we don't have to repeat probing for
|
|
# cflags that the main configure has already done for us.
|
|
#
|
|
|
|
BUILD_DIR := $(CURDIR)/../..
|
|
|
|
include $(BUILD_DIR)/config-host.mak
|
|
|
|
VPATH += $(SRC_PATH)/tests/plugin
|
|
|
|
NAMES :=
|
|
NAMES += bb
|
|
NAMES += empty
|
|
NAMES += insn
|
|
NAMES += mem
|
|
NAMES += hotblocks
|
|
NAMES += howvec
|
|
NAMES += hotpages
|
|
NAMES += lockstep
|
|
|
|
SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
|
|
|
|
# The main QEMU uses Glib extensively so it's perfectly fine to use it
|
|
# in plugins (which many example do).
|
|
CFLAGS = $(GLIB_CFLAGS)
|
|
CFLAGS += -fPIC
|
|
CFLAGS += $(if $(findstring no-psabi,$(QEMU_CFLAGS)),-Wpsabi)
|
|
CFLAGS += -I$(SRC_PATH)/include/qemu
|
|
|
|
all: $(SONAMES)
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
lib%.so: %.o
|
|
$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
|
|
|
|
clean:
|
|
rm -f *.o *.so *.d
|
|
rm -Rf .libs
|
|
|
|
.PHONY: all clean
|