Files
clang-p2996/lldb/test/functionalities/load_unload/Makefile
Siva Chandra 4470f3826c [TestLoadUnload] Enable for Android while skipping it for other remotes.
Summary:
This change adds all the necessary infrastructure required to
selectively enable and make TestLoadUnload work for Android. One test,
which tests the module search paths, is still kept disabled for remote
as search paths (because of module caching) are local anyway.

Reviewers: tberghammer

Reviewed By: tberghammer

Subscribers: emaste, lldb-commits, tberghammer

Differential Revision: http://reviews.llvm.org/D10469

llvm-svn: 239965
2015-06-17 22:32:27 +00:00

83 lines
1.9 KiB
Makefile

CC ?= clang
ifeq "$(ARCH)" ""
ARCH = x86_64
endif
ifeq "$(OS)" ""
OS = $(shell uname -s)
endif
CFLAGS ?= -g -O0
CWD := $(shell pwd)
LIB_PREFIX := libloadunload_
ifeq "$(OS)" "Darwin"
CFLAGS += -arch $(ARCH)
DS := dsymutil
LD_FLAGS := -dynamiclib
LIB_A := $(LIB_PREFIX)a.dylib
LIB_B := $(LIB_PREFIX)b.dylib
LIB_C := $(LIB_PREFIX)c.dylib
LIB_D := $(LIB_PREFIX)d.dylib
EXEC_PATH := "@executable_path"
EXEC_PATH_A := -install_name $(EXEC_PATH)/$(LIB_A)
EXEC_PATH_B := -install_name $(EXEC_PATH)/$(LIB_B)
EXEC_PATH_C := -install_name $(EXEC_PATH)/$(LIB_C)
EXEC_PATH_D := -install_name $(CWD)/$(LIB_D)
else
CFLAGS += -fPIC
LD_FLAGS := -shared
LIB_DL := -ldl
LIB_A := $(LIB_PREFIX)a.so
LIB_B := $(LIB_PREFIX)b.so
LIB_C := $(LIB_PREFIX)c.so
LIB_D := $(LIB_PREFIX)d.so
endif
all: a.out $(LIB_A) $(LIB_B) $(LIB_C) $(LIB_D) hidden/$(LIB_D)
a.out: main.o $(LIB_D)
$(CC) $(CFLAGS) -o a.out main.o -L. -lloadunload_d $(LIB_DL)
main.o: main.c
$(CC) $(CFLAGS) -c main.c
hidden/$(LIB_D): dh.o
$(CC) $(CFLAGS) $(LD_FLAGS) -o hidden/$(LIB_D) dh.o
if [ "$(OS)" = "Darwin" ]; then dsymutil -o hidden/$(LIB_D).dSYM hidden/$(LIB_D); fi
$(LIB_A): a.o $(LIB_B)
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_A) -o $(LIB_A) a.o -L. -lloadunload_b
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_A); fi
a.o: a.c
$(CC) $(CFLAGS) -c a.c
$(LIB_B): b.o
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_B) -o $(LIB_B) b.o
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_B); fi
b.o: b.c
$(CC) $(CFLAGS) -c b.c
$(LIB_C): c.o
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_C) -o $(LIB_C) c.o
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_C); fi
c.o: c.c
$(CC) $(CFLAGS) -c c.c
$(LIB_D): d.o
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_D) -o $(LIB_D) d.o
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_D); fi
d.o: d.c
$(CC) $(CFLAGS) -c d.c
dh.o: d.c
$(CC) $(CFLAGS) -DHIDDEN -c d.c -o dh.o
clean:
rm -rf $(wildcard *.o *~ *.dylib *.so a.out *.dSYM hidden/*)