version 1.2, 2015/04/20 18:10:13
|
version 1.3, 2015/04/20 18:19:52
|
|
|
| |
##============================================================================== | ##============================================================================== |
## | ## |
|
## DEVBUILD |
|
## |
|
##============================================================================== |
|
|
|
ifeq ($(CONFIG_PREFIX),$(ROOT)) |
|
DEVBUILD=1 |
|
endif |
|
|
|
##============================================================================== |
|
## |
|
## UNITTEST |
|
## |
|
##============================================================================== |
|
|
|
ifdef CXXUNITTEST |
|
CXXSHLIBRARY=$(CXXUNITTEST) |
|
endif |
|
|
|
ifdef CUNITTEST |
|
CSHLIBRARY=$(CUNITTEST) |
|
endif |
|
|
|
ifdef DISABLE_LOCALSESSION |
|
else |
|
MIAPILIB = miapi |
|
endif |
|
|
|
ifndef DISABLE_INDICATION |
|
INDIMGRLIB = indimgr |
|
INDICMNLIB = indicmn |
|
endif |
|
|
|
PALLIBS = pal |
|
|
|
BASELIBS = sock base |
|
|
|
UNITTESTLIBS = ut nits pal base |
|
|
|
NITS_COMMAND_OPTIONS= |
|
|
|
ifdef ENABLE_FAULTINJECTION |
|
NITS_COMMAND_OPTIONS += -install |
|
endif |
|
|
|
NITS_COMMAND_OPTIONS += -reset -target:*libtest_ +loglevel:3 |
|
|
|
RUNUNITTEST = $(BINDIR)/nits $(NITS_COMMAND_OPTIONS) $(TARGET) |
|
|
|
RUNUNITTESTWITHTRACE = $(BINDIR)/nits $(NITS_COMMAND_OPTIONS) -trace:verbose $(TARGET) |
|
|
|
RUNVALGRIND=valgrind --tool=memcheck $(BINDIR)/nits $(TARGET) |
|
|
|
##============================================================================== |
|
## |
## OpenSSL | ## OpenSSL |
## | ## |
##============================================================================== | ##============================================================================== |
| |
ifdef CONFIG_TOOLCHAIN |
OPENSSL_CFLAGS=$(OPENSSLCFLAGS) |
OPENSSL_CFLAGS=-I$(CONFIG_TOOLCHAIN)/usr/include |
|
OPENSSL_LIBS=-L$(CONFIG_TOOLCHAIN)/usr/lib -lssl -lcrypto |
ifdef OPENSSLLIBS |
OPENSSL_LIBDIR=$(CONFIG_TOOLCHAIN)/usr/lib |
OPENSSL_LIBS=$(OPENSSLLIBS) |
export LD_LIBRARY_PATH=$(CONFIG_TOOLCHAIN)/lib:$(CONFIG_TOOLCHAIN)/usr/lib |
else |
|
OPENSSL_LIBS=-lssl -lcrypto |
|
endif |
|
|
|
OPENSSL_LIBDIR=$(OPENSSLLIBDIR) |
|
ifeq ($(OPENSSLLIBDIR),"") |
|
OPENSSL_LIBOPT:= |
else | else |
OPENSSL_CFLAGS=$(shell $(PKGCONFIG) --cflags openssl) |
OPENSSL_LIBOPT:=-L$(OPENSSLLIBDIR) |
OPENSSL_LIBS=$(shell $(PKGCONFIG) --libs openssl) |
|
OPENSSL_LIBDIR=$(shell $(PKGCONFIG) --variable=libdir openssl) |
|
endif | endif |
| |
##============================================================================== | ##============================================================================== |
|
|
## | ## |
##============================================================================== | ##============================================================================== |
| |
|
ifdef OBJDIRBASE |
|
OBJDIRPATH=$(OBJDIR)/$(OBJDIRBASE) |
|
else |
OBJDIRPATH=$(OBJDIR)$(subst $(ROOT),,$(CURDIR)) | OBJDIRPATH=$(OBJDIR)$(subst $(ROOT),,$(CURDIR)) |
|
endif |
| |
ifeq ($(subst $(ROOT),,$(CURDIR)), $(ROOT)) | ifeq ($(subst $(ROOT),,$(CURDIR)), $(ROOT)) |
$(error "current directory seems to be a symbolic link") | $(error "current directory seems to be a symbolic link") |
|
|
| |
BUILDTOOL=$(ROOT)/buildtool | BUILDTOOL=$(ROOT)/buildtool |
| |
CC=$(shell $(BUILDTOOL) cc) |
CC=$(WITH_CC) |
| |
CXX=$(shell $(BUILDTOOL) cxx) |
CXX=$(WITH_CXX) |
|
|
|
AR=$(WITH_AR) |
| |
__OPTS= | __OPTS= |
| |
|
|
__OPTS += --errwarn | __OPTS += --errwarn |
endif | endif |
| |
|
ifeq ($(CONFIG_FAVORSIZE),1) |
|
__OPTS += --size |
|
endif |
|
|
__OPTS += --pic | __OPTS += --pic |
| |
|
ifeq ($(CSHLIBRARY),pal) |
|
__OPTS += --pal |
|
endif |
|
|
CFLAGS=$(shell $(BUILDTOOL) cflags $(__OPTS)) | CFLAGS=$(shell $(BUILDTOOL) cflags $(__OPTS)) |
CFLAGS+=$(OPENSSL_CFLAGS) | CFLAGS+=$(OPENSSL_CFLAGS) |
| |
|
|
CXXFLAGS+=$(OPENSSL_CFLAGS) | CXXFLAGS+=$(OPENSSL_CFLAGS) |
| |
ifdef DISABLE_LIBPATH | ifdef DISABLE_LIBPATH |
LIBPATHFLAGS=$(shell $(BUILDTOOL) libpath $(OPENSSL_LIBDIR)) |
LIBPATHFLAGS:= |
else | else |
LIBPATHFLAGS=$(shell $(BUILDTOOL) libpath $(CONFIG_LIBDIR) $(OPENSSL_LIBDIR)) | LIBPATHFLAGS=$(shell $(BUILDTOOL) libpath $(CONFIG_LIBDIR) $(OPENSSL_LIBDIR)) |
endif | endif |
| |
CSHLIBFLAGS=$(shell $(BUILDTOOL) cshlibflags) |
__CSHLIBOPTS= |
|
ifeq ($(CSHLIBRARY),pal) |
|
__CSHLIBOPTS += --pal |
|
endif |
|
|
|
CSHLIBFLAGS=$(shell $(BUILDTOOL) cshlibflags $(__CSHLIBOPTS)) |
CSHLIBFLAGS+=$(shell $(BUILDTOOL) syslibs) | CSHLIBFLAGS+=$(shell $(BUILDTOOL) syslibs) |
CSHLIBFLAGS+=$(OPENSSL_LIBS) | CSHLIBFLAGS+=$(OPENSSL_LIBS) |
CSHLIBFLAGS+=$(LIBPATHFLAGS) | CSHLIBFLAGS+=$(LIBPATHFLAGS) |
|
|
CXXPROGFLAGS+=$(OPENSSL_LIBS) | CXXPROGFLAGS+=$(OPENSSL_LIBS) |
CXXPROGFLAGS+=$(LIBPATHFLAGS) | CXXPROGFLAGS+=$(LIBPATHFLAGS) |
| |
|
ifdef ENABLE_32BIT |
|
CFLAGS+=-m32 |
|
CPROGFLAGS+=-m32 |
|
CSHLIBFLAGS+=-m32 |
|
CXXFLAGS+=-m32 |
|
CXXPROGFLAGS+=-m32 |
|
CXXSHLIBFLAGS+=-m32 |
|
endif |
|
|
|
ifdef ENABLE_SECTIONS |
|
CFLAGS+=-ffunction-sections -fdata-sections |
|
CPROGFLAGS+=-Wl,--gc-sections |
|
CSHLIBFLAGS+=-Wl,--gc-sections |
|
CXXFLAGS+=-ffunction-sections -fdata-sections |
|
CXXPROGFLAGS+=-Wl,--gc-sections |
|
CXXSHLIBFLAGS+=-Wl,--gc-sections |
|
#PRINT_UNUSED_SECTIONS=1 |
|
ifdef PRINT_UNUSED_SECTIONS |
|
CPROGFLAGS+=-Wl,--print-gc-sections |
|
endif |
|
endif |
|
|
##============================================================================== | ##============================================================================== |
## | ## |
## OBJECTS: | ## OBJECTS: |
|
|
| |
$(TARGET): $(__OBJECTS) | $(TARGET): $(__OBJECTS) |
mkdir -p $(LIBDIR) | mkdir -p $(LIBDIR) |
ar r $(TARGET) $(__OBJECTS) |
$(AR) r $(TARGET) $(__OBJECTS) |
@ echo | @ echo |
| |
# ranlib $(TARGET) | # ranlib $(TARGET) |
|
|
| |
$(TARGET): $(__OBJECTS) | $(TARGET): $(__OBJECTS) |
mkdir -p $(LIBDIR) | mkdir -p $(LIBDIR) |
$(CC) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(__LIBRARIES) $(CSHLIBFLAGS) $(LIBNAMEOPT) |
$(CC) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(OPENSSL_LIBOPT) $(__LIBRARIES) $(CSHLIBFLAGS) $(LIBNAMEOPT) |
@ echo |
ifdef DEVBUILD |
|
ifndef SUPPRESS_CHKSHLIB |
chklib: |
$(BINDIR)/chkshlib $(TARGET) || ( rm -rf $(TARGET) && false ) |
$(BINDIR)/chklib $(TARGET) |
endif |
|
endif |
|
@ echo "Created $(TARGET)" |
| |
endif | endif |
| |
|
|
| |
$(TARGET): $(__OBJECTS) | $(TARGET): $(__OBJECTS) |
mkdir -p $(LIBDIR) | mkdir -p $(LIBDIR) |
$(CXX) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(__LIBRARIES) $(CXXSHLIBFLAGS) $(LIBNAMEOPT) |
$(CXX) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(OPENSSL_LIBOPT) $(__LIBRARIES) $(CXXSHLIBFLAGS) $(LIBNAMEOPT) |
@ echo |
ifdef DEVBUILD |
|
ifndef SUPPRESS_CHKSHLIB |
chklib: |
$(BINDIR)/chkshlib $(TARGET) || ( rm -rf $(TARGET) && false ) |
$(BINDIR)/chklib $(TARGET) |
endif |
|
endif |
|
@ echo "Created $(TARGET)" |
| |
endif | endif |
| |
|
|
| |
$(TARGET): $(__OBJECTS) $(__DEPS) | $(TARGET): $(__OBJECTS) $(__DEPS) |
mkdir -p $(BINDIR) | mkdir -p $(BINDIR) |
$(CC) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(__LIBRARIES) $(CPROGFLAGS) |
$(CC) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(OPENSSL_LIBOPT) $(__LIBRARIES) $(__LIBRARIES) $(CPROGFLAGS) |
@ echo | @ echo |
| |
endif | endif |
|
|
| |
$(TARGET): $(__OBJECTS) $(__DEPS) | $(TARGET): $(__OBJECTS) $(__DEPS) |
mkdir -p $(BINDIR) | mkdir -p $(BINDIR) |
$(CXX) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(__LIBRARIES) $(CXXPROGFLAGS) |
$(CXX) -o $(TARGET) $(__OBJECTS) -L$(LIBDIR) $(OPENSSL_LIBOPT) $(__LIBRARIES) $(__LIBRARIES) $(CXXPROGFLAGS) |
@ echo | @ echo |
| |
endif | endif |
|
|
CACHEGRIND=valgrind --tool=cachegrind | CACHEGRIND=valgrind --tool=cachegrind |
| |
cachegrind: | cachegrind: |
$(CACHEGRIND) --cachegrind-out-file=callgrind.out $(TARGET) $(ARGUMENTS) $(MEMCHECK_ARGS) |
rm -f cachegrind.out* |
cg_annotate --auto=yes callgrind.out > cg_annotate.out |
valgrind --trace-children=yes --tool=cachegrind $(CACHEGRIND_ARGS) |
rm -f callgrind.out |
cg_annotate --auto=yes cachegrind.out.* > cg_annotate.out |
|
rm -f cachegrind.out* |
@ echo "Created cg_annotate.out" | @ echo "Created cg_annotate.out" |
| |
##============================================================================== | ##============================================================================== |
|
|
| |
-include $(OBJDIRPATH)/depend.mak | -include $(OBJDIRPATH)/depend.mak |
| |
|
##============================================================================== |
|
## |
|
## Flags passed to test programs |
|
## |
|
##============================================================================== |
|
|
|
ifndef TESTOPTS |
|
export TESTOPTS=-p |
|
endif |