# -*- makefile -*- # Common makefile template for the dyninstAPI library. This file is not # intended to be a useful Makefile in isolation; instead, it should be # included from within an architecture-specific Makefile. # # $Id: make.module.tmpl,v 1.1 2008/06/30 19:40:26 legendre Exp $ # SUITE_NAME = Stackwalker RELEASE_MAJOR = 7 RELEASE_MINOR = 0 USES_DWARF_DEBUG = true USES_LIBELF = true CFLAGS += $(USEFULWARNINGS) $(DEFINES) CXXFLAGS += $(USEFULWARNINGS) $(DEFINES) LDFLAGS += -L../../common/$(PLATFORM) ifndef TARGET ifdef STATIC_COMPS STATIC_LIBRARY = true TARGET = libstackwalk.a else TARGET = libstackwalk.so MYFLAGS += -fPIC endif endif LDFLAGS += -L$(TO_CORE)/common/$(PLATFORM) -L$(LIBRARY_DEST) ifndef USES_NATIVE_CC LD = $(GXX) LDFLAGS += -shared CFLAGS += CXXFLAGS += else ifeq (solaris,$(findstring solaris,$(PLATFORM))) LDFLAGS += -G endif #sparc endif #USES_NATIVE TFLAGS += TO_INC = ../h PUBLIC_H = basetypes.h \ framestepper.h \ steppergroup.h \ symlookup.h \ frame.h \ procstate.h \ swk_errors.h \ walker.h \ local_var.h \ sw_c.h SRCS += ../src/frame.C \ ../src/framestepper.C \ ../src/swk_errors.C \ ../src/symlookup.C \ ../src/walker.C \ ../src/procstate.C \ ../src/steppergroup.C \ ../src/libstate.C \ ../src/sw_c.C \ ../src/sw_pcontrol.C IFLAGS += -I../$(PLATFORM) -I../src -I../h -I../../proccontrol/h # All that, and we finally get a target... all: $(TARGET) $(EXTRA_LIBS) ifdef WRAPPER_LIBS all: libstackwalk_c.so install: $(DEST)/libstackwalk_c.so endif SWOBJS = $(filter-out sw_c.o, $(OBJS)) SWOBJS += $(wildcard $(TO_CORE)/common/$(PLATFORM)/*.o) comma:=, empty:= space:= $(empty) $(empty) WRAPPER_LIBS_NOCOMMA = $(subst $(comma),$(space),$(WRAPPER_LIBS)) libsw.a: $(SWOBJS) ar rs $@ $(SWOBJS) libstackwalk_c.so: libsw.a sw_c.o g++ -o $@ -shared sw_c.o -Wl,--exclude-libs -Wl,ALL libsw.a $(WRAPPER_LIBS_NOCOMMA) $(DEST)/libstackwalk_c.so: libstackwalk_c.so -$(INSTALL) libstackwalk_c.so $(DEST)