# config.mk.tail LIBR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST)))) null:= SPACE:=$(null) $(null) ifeq ($(LIBR),) ifeq ($(R2DIR),) $(error ERROR: Cannot find R2DIR. Please define this variable) else LIBR=$(R2DIR)/libr MSVC=$(R2DIR)/msvc endif endif SHLR:=$(LIBR)/../shlr include $(LIBR)/../global.mk include $(LIBR)/../mk/${COMPILER}.mk CFLAGS+=${CFLAGS_APPEND} CFLAGS+=${CPPFLAGS} ifeq (1,1) LINK+=$(subst r_,-L$(LIBR)/,$(R2DEPS)) LINK+=$(subst r_,-lr_,$(R2DEPS)) LINK+=$(subst r_,-L$(LIBR)/,$(BINDEPS)) LINK+=$(subst r_,-lr_,$(BINDEPS)) CFLAGS+=${PIC_CFLAGS} LINK+=${PIC_CFLAGS} else ifneq ($(R2DEPS),) LINK+=$(shell echo ${R2DEPS} | sed -e 's:r_\([^ ]\+\):$(LIBR)/\1/libr_\1.${EXT_AR}:g') endif endif CFLAGS+=-Wall # libgmp ifeq (${HAVE_LIB_GMP},1) CFLAGS+=-DHAVE_LIB_GMP=1 BN_LIBS=-lgmp endif # open-ssl ifeq (${HAVE_LIB_SSL},1) BN_LIBS=${SSL_LDFLAGS} endif #both of these need ssl includes ifeq (${HAVE_LIB_SSL},1) CFLAGS+=${SSL_CFLAGS} endif # XXX do it in configure stage OSTYPE?=gnulinux ifeq (${OSTYPE},auto) _UNAME=$(shell uname) ifeq ($(_UNAME),Darwin) OSTYPE=darwin else ifeq ($(_UNAME),SerenityOS) OSTYPE=bsd else ifeq ($(_UNAME),serenity) OSTYPE=bsd endif endif endif endif ifeq (${OSTYPE},openbsd) OSTYPE=bsd endif ifeq (${OSTYPE},netbsd) OSTYPE=bsd endif ifeq (${OSTYPE},freebsd) OSTYPE=bsd endif ifeq (${OSTYPE},dragonfly) OSTYPE=bsd endif ifeq (${OSTYPE},bitrig) OSTYPE=bsd endif # Output ifneq ($(OSTYPE),mingw32) ifeq (,$(findstring emcc,$(CC))) CFLAGS+=-g endif endif ifeq (${OSTYPE},windows) CFLAGS+=-DR2__WINDOWS__=1 EXT_AR=lib EXT_SO=dll EXT_EXE=.exe TH_LIBS= endif ifeq (${OSTYPE},bsd) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS=-lpthread endif ifeq (${OSTYPE},qnx) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${OSTYPE},gnulinux) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS=-lpthread endif ifeq (${OSTYPE},haiku) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${OSTYPE},darwin) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=dylib EXT_EXE= ifeq ($(shell uname -p),arm) # iOS TH_LIBS= else # OSX TH_LIBS=-lpthread endif endif ifeq (${OSTYPE},android) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${OSTYPE},solaris) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${OSTYPE},serenityos) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${OSTYPE},aix) CFLAGS+=-DR2__UNIX__=1 EXT_AR=a EXT_SO=so EXT_EXE= TH_LIBS= endif ifeq (${EXT_SO},) main: @echo @echo "OSTYPE: ${OSTYPE}" @echo ERROR: Unknown platform @echo @exit 1 endif LIB=lib${NAME} LIBAR=${LIB}.${EXT_AR} LIBSO=${LIB}.${EXT_SO} ifeq (${OSTYPE},android) libname=-shared -o $1.${EXT_SO} else ifeq (${OSTYPE},windows) libname=-shared -o $1.${EXT_SO} else ifeq (${OSTYPE},darwin) ifeq (${HAVE_LIBVERSION},1) libname=-dynamiclib -o $1.${EXT_SO} ${LDFLAGS_SONAME}$1.${ABIVERSION}.${EXT_SO} else libname=-dynamiclib -o $1.${EXT_SO} endif else ifeq (${HAVE_LIBVERSION},1) libname=-shared -o $1.${EXT_SO} ${LDFLAGS_SONAME}$1.${EXT_SO}.${ABIVERSION} else libname=-shared -o $1.${EXT_SO} endif endif endif endif ifeq ($(OSTYPE),darwin) libname-version = $(subst ${EXT_SO},$(2).${EXT_SO},$(1)) else libname-version = $(1).$(2) endif libpath-to-name = $(word 2,$(subst /, ,$(1))) libpath-to-name-version = $(call libname-version,$(call libpath-to-name,$(1)),$(2)) # -- singleton endif