From ab9bae4f3e31fefdf689f9a333f402c58e007ea2 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Sat, 19 Nov 2016 17:20:05 +0800 Subject: [PATCH] revert the change on verbose option for Makefile --- Makefile | 16 ++++++++++++ samples/Makefile | 65 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 09e0b200..b71de9ed 100644 --- a/Makefile +++ b/Makefile @@ -211,12 +211,28 @@ qemu/config-host.h-timestamp: unicorn: $(LIBRARY) $(ARCHIVE) $(LIBRARY): qemu/config-host.h-timestamp uc.o list.o +ifeq ($(UNICORN_SHARED),yes) +ifeq ($(V),0) + $(call log,GEN,$(LIBRARY)) + @$(CC) $(CFLAGS) -shared $(UC_TARGET_OBJ) uc.o list.o -o $(LIBRARY) $($(LIBNAME)_LDFLAGS) + @-ln -sf $(LIBRARY) $(LIBRARY_SYMLINK) +else $(CC) $(CFLAGS) -shared $(UC_TARGET_OBJ) uc.o list.o -o $(LIBRARY) $($(LIBNAME)_LDFLAGS) -ln -sf $(LIBRARY) $(LIBRARY_SYMLINK) +endif +endif $(ARCHIVE): qemu/config-host.h-timestamp uc.o list.o +ifeq ($(UNICORN_STATIC),yes) +ifeq ($(V),0) + $(call log,GEN,$(ARCHIVE)) + @$(AR) q $(ARCHIVE) $(UC_TARGET_OBJ) uc.o list.o + @$(RANLIB) $(ARCHIVE) +else $(AR) q $(ARCHIVE) $(UC_TARGET_OBJ) uc.o list.o $(RANLIB) $(ARCHIVE) +endif +endif $(PKGCFGF): $(generate-pkgcfg) diff --git a/samples/Makefile b/samples/Makefile index 830cd68b..c44dc127 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -10,11 +10,13 @@ ifndef GLIB GLIB = $(shell pkg-config --libs glib-2.0) endif +BIN_EXT = + # Verbose output? V ?= 0 CFLAGS += -Wall -Werror -I../include -LDFLAGS += -L.. +LDFLAGS += -L.. -lunicorn LDLIBS += -lpthread -lunicorn -lm $(GLIB) ifneq ($(CROSS),) @@ -32,9 +34,11 @@ endif ifneq ($(filter CYGWIN%,$(UNAME_S)),) CFLAGS := $(CFLAGS:-fPIC=) LDLIBS += -lssp +BIN_EXT = .exe # mingw? else ifneq ($(filter MINGW%,$(UNAME_S)),) CFLAGS := $(CFLAGS:-fPIC=) +BIN_EXT = .exe endif .PHONY: all clean @@ -69,9 +73,66 @@ ifneq (,$(findstring m68k,$(UNICORN_ARCHS))) SOURCES += sample_m68k.c endif -BINS = $(SOURCES:.c=) +BINS = $(SOURCES:.c=$(BIN_EXT)) +OBJS = $(SOURCES:.c=.o) all: $(BINS) +$(BINS): $(OBJS) + clean: rm -rf *.o $(BINS) + +%$(BIN_EXT): %.o + @mkdir -p $(@D) +ifeq ($(V),0) +ifeq ($(UNICORN_SHARED),yes) + $(call log,LINK,$(notdir $@)) + @$(link-dynamic) +endif +ifeq ($(UNICORN_STATIC),yes) +ifneq ($(filter MINGW%,$(UNAME_S)),) + $(call log,LINK,$(notdir $(call staticname,$@))) + @$(link-static) +endif +endif +else +ifeq ($(UNICORN_SHARED),yes) + $(link-dynamic) +endif +ifeq ($(UNICORN_STATIC),yes) +ifneq ($(filter MINGW%,$(UNAME_S)),) + $(link-static) +endif +endif +endif + +%.o: %.c + @mkdir -p $(@D) +ifeq ($(V),0) + $(call log,CC,$(@:%=%)) + @$(compile) +else + $(compile) +endif + + +define link-dynamic + $(CC) $< $(LDFLAGS) -o $@ +endef + + +define link-static + $(CC) $< $(ARCHIVE) $(LDFLAGS_STATIC) -o $(call staticname,$@) +endef + + +staticname = $(subst $(BIN_EXT),,$(1)).static$(BIN_EXT) + +define log + @printf " %-7s %s\n" "$(1)" "$(2)" +endef + +define compile + ${CC} ${CFLAGS} -c $< -o $@ +endef