1################################################################################ 2# 3# dmalloc 4# 5################################################################################ 6 7DMALLOC_VERSION = 5.6.5 8DMALLOC_SOURCE = dmalloc-$(DMALLOC_VERSION).tgz 9DMALLOC_SITE = http://dmalloc.com/releases 10 11DMALLOC_LICENSE = ISC 12DMALLOC_LICENSE_FILES = LICENSE.txt 13 14DMALLOC_INSTALL_STAGING = YES 15DMALLOC_CFLAGS = $(TARGET_CFLAGS) 16 17# dmalloc uses $(LD) to link, and thus misses the object files or libs that 18# are needed to provide the __stack_chk_fail_local and co. symbols. Changing 19# to use $(CC) is really more complex that we'd like. Since dmalloc is 20# involved in debugging memory allocation, it is not expected to be a 21# production library, so we do not care that much that it has SSP. 22DMALLOC_CFLAGS += -fno-stack-protector 23 24ifeq ($(BR2_STATIC_LIBS),y) 25DMALLOC_CONF_OPTS += --disable-shlib 26else 27DMALLOC_CONF_OPTS += --enable-shlib 28DMALLOC_CFLAGS += -fPIC 29endif 30 31ifeq ($(BR2_INSTALL_LIBSTDCPP),y) 32DMALLOC_CONF_OPTS += --enable-cxx 33else 34DMALLOC_CONF_OPTS += --disable-cxx 35endif 36 37ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) 38DMALLOC_CONF_OPTS += --enable-threads 39else 40DMALLOC_CONF_OPTS += --disable-threads 41endif 42 43# dmalloc has some assembly function that are not present in thumb1 mode: 44# Error: lo register required -- `str lr,[sp,#4]' 45# so, we desactivate thumb mode 46ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) 47DMALLOC_CFLAGS += -marm 48endif 49 50ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y) 51DMALLOC_CFLAGS += -O0 52endif 53 54DMALLOC_CONF_ENV = \ 55 CFLAGS="$(DMALLOC_CFLAGS)" \ 56 ac_cv_page_size=12 \ 57 ac_cv_strdup_macro=yes \ 58 ac_cv_strndup_macro=yes 59 60# both DESTDIR and PREFIX are ignored.. 61define DMALLOC_INSTALL_STAGING_CMDS 62 $(TARGET_MAKE_ENV) $(MAKE) includedir="$(STAGING_DIR)/usr/include" \ 63 bindir="$(STAGING_DIR)/usr/bin" \ 64 libdir="$(STAGING_DIR)/usr/lib" \ 65 shlibdir="$(STAGING_DIR)/usr/lib" \ 66 infodir="$(STAGING_DIR)/usr/share/info/" \ 67 -C $(@D) install 68endef 69 70ifeq ($(BR2_STATIC_LIBS),) 71define DMALLOC_INSTALL_SHARED_LIB 72 cp -dpf $(STAGING_DIR)/usr/lib/libdmalloc*.so $(TARGET_DIR)/usr/lib 73endef 74endif 75 76define DMALLOC_INSTALL_TARGET_CMDS 77 $(DMALLOC_INSTALL_SHARED_LIB) 78 cp -dpf $(STAGING_DIR)/usr/bin/dmalloc $(TARGET_DIR)/usr/bin/dmalloc 79endef 80 81$(eval $(autotools-package)) 82