Everywhere: Merge V_1_1_29_40_POST_ACCEPTANCE

This commit is contained in:
Jan Lindemann 2011-02-20 14:15:22 +00:00 committed by Jan Lindemann
commit 2939f8e3a8
29 changed files with 743 additions and 125 deletions

View file

@ -30,6 +30,7 @@ FLAVOUR_PATH_PREFIX ?= win32/
FLAVOUR_PATH_SUFFIX ?= /win32
endif
PROJECT_DESCR_FILE ?= $(wildcard $(TOPDIR)/doc/share/project.txt)
PROJECT ?= $(patsubst $(FLAVOUR_PREFIX)%,%,$(notdir $(shell cd $(TOPDIR); pwd | sed 's/.*\///; s/-[0-9].*//')))
PROJECT_SHORT_NAME ?= $(PROJECT)
PROJECT_CAPNAME = $(shell echo $(PROJECT) | tr [a-z] [A-Z] | sed 's/-/_/g')
@ -177,7 +178,10 @@ SRC_HEADERED += $(shell if [ "$(LOCAL_SRC)" ]; then grep -ic "it servic
SRC_UNHEADERED += $(filter-out $(SRC_HEADERED),$(LOCAL_SRC))
LOCAL_C += $(wildcard *.c)
LOCAL_CPP += $(wildcard *.cc *.cpp *.C)
LOCAL_H += $(wildcard *.h *.H)
SFILES += $(wildcard *.S)
PREREQ_H += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.h))
ALL_H += $(LOCAL_H) $(PREREQ_H)
SRC_ALL_CPP += $(LOCAL_C) $(LOCAL_CPP) $(LOCAL_H)
SRC_C += $(filter %.c, $(SRC_ALL_CPP))
SRC_CPP += $(filter %.cc %.cpp %.C, $(SRC_ALL_CPP))
@ -226,7 +230,8 @@ INSTALL_CFGDIR ?= $(CONFIG_DIR)
else
INSTALL_CFGDIR ?= $(CONFIG_DIR)/$(CONFIG_SUBDIR)
endif
INSTALLED_CFG ?= $(addprefix $(INSTALL_CFGDIR)/,$(wildcard *.conf))
LOCAL_CFG ?= $(wildcard *.conf *.xml)
INSTALLED_CFG ?= $(addprefix $(INSTALL_CFGDIR)/,$(LOCAL_CFG))
# -- SYSCFG
SYSCFG_FILES += $(basename $(wildcard *.sysconf))
@ -236,14 +241,10 @@ INSTALL_SYSCFGDIR ?= $(SYSCFG_DIR)
INSTALLED_SYSCFG ?= $(addprefix $(INSTALL_SYSCFGDIR)/,$(SYSCFG_FILES))
# -- HDR
# why both SRC_H <-> LOCAL_H?
BUILD_HDRDIR ?= $(TOPDIR)/include
LOCAL_H += $(wildcard *.h *.H)
BUILD_HDRDIR ?= $(TOPDIR)/include/$(HDRDIR_SCOPE_SUFFIX)
SRC_H += $(filter %.h %.H, $(SRC_ALL_CPP))
BUILD_H = $(addprefix $(BUILD_HDRDIR)/,$(SRC_H))
BUILD_HDR = $(addprefix $(BUILD_HDRDIR)/,$(SRC_H))
PREREQ_H += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.h))
ALL_H += $(LOCAL_H) $(PREREQ_H)
INSTALL_HDRDIR ?= $(PREFIX)/include
INSTALLED_HDR += $(addprefix $(INSTALL_HDRDIR)/,$(SRC_H))
@ -259,22 +260,28 @@ INSTALL_DOCDIR ?= $(PREFIX)
INSTALLED_DOC ?= $(addprefix $(INSTALL_DOCDIR)/,$(DOCS))
# -- LIB
#BUILD_PIDIR = $(BUILD_LIBDIR)
#BUILD_PI = $(addprefix $(BUILD_PIDIR)/,$(PLUGIN))
#INSTALL_PIDIR = $(INSTALL_LIBDIR)
#INSTALLED_PI = $(addprefix $(INSTALL_PIDIR)/,$(PLUGIN))
BUILD_LIBDIR = $(TOPDIR)/lib
LOCAL_LIBS += $(CONTRIB_LIBS)
LOCAL_LIBS += $(CONTRIB_LIBS) $(PLUGIN)
ifeq ($(TARGET),mingw)
CONTRIB_LIBS_PATH += $(CROSS_TOOL_DIR)/bin
endif
LIBNAME ?= $(PROJECT)
LIBTYPE ?= shared
MEMBERS += $(LIB_A)($(OBJ))
INSTALL_LIBDIR ?= $(EXE_PREFIX)/lib
ifeq ($(USE_PROJECT_LIB),true)
LIBNAME ?= $(PROJECT)
MEMBERS += $(LIB_A)($(OBJ))
VERSION_SCRIPT = $(BUILD_LIBDIR)/version.ldscript
# TODO: use something like this as unifying variable, there are far too many
# lib-related variables
LOCAL_LIBS +=
ifneq ($(TARGET),mingw)
SHOBJS += $(patsubst %.cpp,$(SO_PREFIX)%.so,$(patsubst %.cc,$(SO_PREFIX)%.so,$(patsubst %.c,$(SO_PREFIX)%.so,$(SRC_ALL_CPP))))
LIB_A = $(BUILD_LIBDIR)/lib$(LIBNAME).a
SO_SUFFIX = so.$(shell echo $(VERSION) | cut -d- -f1)
SO_PREFIX ?= lib
@ -294,42 +301,43 @@ LIB_DEF = $(BUILD_LIBDIR)/$(LIBNAME).def
MSVCPP_IMPLIB = $(BUILD_LIBDIR)/$(LIBNAME).lib
LIB_SO = $(BUILD_LIBDIR)/$(LIBNAME).dll
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
endif
endif # mingw
endif # USE_PROJECT_LIB
INSTALLED_LIB_SO = $(addprefix $(INSTALL_LIBDIR)/,$(notdir $(LIB_SO)))
INSTALLED_DEF = $(addprefix $(INSTALL_LIBDIR)/,$(wildcard *.lib *.exp))
INSTALLED_LIB += $(addprefix $(INSTALL_LIBDIR)/,$(LOCAL_LIBS))
BUILD_LIB += $(addprefix $(BUILD_LIBDIR)/,$(LOCAL_LIBS))
INSTALLED_SHOBJS += $(addprefix $(INSTALL_LIBDIR)/,$(SHOBJS))
INSTALLED_ALL_LIBS = $(addprefix $(INSTALL_LIBDIR)/,$(wildcard *.a))
INSTALLED_LIB += $(INSTALLED_LIB_SO) $(INSTALLED_SHOBJS) \
$(INSTALLED_LINKS_SO) $(sort $(INSTALLED_LIB_A) $(INSTALLED_ALL_LIBS)) \
$(INSTALLED_DEF)
BUILD_LIB += $(LIB_SO)
# -- PI
BUILD_PIDIR = $(BUILD_LIBDIR)
BUILD_PI = $(addprefix $(BUILD_PIDIR)/,$(PLUGIN))
INSTALL_PIDIR = $(INSTALL_LIBDIR)
INSTALLED_PI = $(addprefix $(INSTALL_PIDIR)/,$(PLUGIN))
## -- PI
#BUILD_PIDIR = $(BUILD_LIBDIR)
#BUILD_PI = $(addprefix $(BUILD_PIDIR)/,$(PLUGIN))
#INSTALL_PIDIR = $(INSTALL_LIBDIR)
#INSTALLED_PI = $(addprefix $(INSTALL_PIDIR)/,$(PLUGIN))
# -- EXE
EXE_ALL += $(EXE) $(wildcard *.a *.dll *.so *.so.*)
BUILD_EXE_BIN += $(addprefix $(BUILD_EXEDIR)/,$(EXE))
EXE_SH += $(wildcard *.sh *.pl *.pm *.py *.bat)
EXE_SH += $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl))
#EXE_ALL += $(EXE) $(wildcard *.a *.dll *.so *.so.*)
BUILD_EXE_BIN += $(addprefix $(BUILD_EXEDIR)/,$(EXE) $(EXE_SH))
INSTALLED_EXE_BIN += $(addprefix $(INSTALL_EXEDIR)/,$(EXE_BIN))
BUILD_EXEDIR = $(TOPDIR)/bin
INSTALL_EXEDIR ?= $(EXE_PREFIX)/bin
BUILD_EXE += $(BUILD_EXE_BIN)
INSTALLED_EXE += $(INSTALL_EXEDIR)/$(EXE) $(INSTALLED_EXE_BIN)
INSTALLED_EXE += $(addprefix $(INSTALL_EXEDIR)/,$(EXE) $(EXE_SH)) $(INSTALLED_EXE_BIN)
# -- SCRIPT
EXE_SH += $(wildcard *.sh *.pl *.pm *.py *.bat)
EXE_SH += $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl))
BUILD_SCRIPTDIR = $(TOPDIR)/bin
INSTALL_SCRIPTDIR ?= $(EXE_PREFIX)/bin
BUILD_SCRIPT += $(addprefix $(BUILD_SCRIPTDIR)/,$(EXE_SH))
INSTALLED_SCRIPT += $(addprefix $(INSTALL_SCRIPTDIR)/,$(EXE_SH))
#BUILD_SCRIPTDIR = $(TOPDIR)/bin
#INSTALL_SCRIPTDIR ?= $(EXE_PREFIX)/bin
#BUILD_SCRIPT += $(addprefix $(BUILD_SCRIPTDIR)/,$(EXE_SH))
#INSTALLED_SCRIPT += $(addprefix $(INSTALL_SCRIPTDIR)/,$(EXE_SH))
# -- CGI
EXE_CGI += $(wildcard *.cgi)
@ -340,6 +348,17 @@ INSTALL_CGIDIR = $(CGI_DIR)
BUILD_CGI += $(addprefix $(BUILD_CGIDIR)/,$(EXE_CGI))
INSTALLED_CGI += $(addprefix $(INSTALL_CGIDIR)/,$(EXE_CGI))
# -- HTML
BUILD_HTMLDIR = $(TOPDIR)/htdocs
LOCAL_HTML += $(wildcard *.html *.css *.php) $(IMAGES)
HTML_SUBDIR ?= $(shell pwd | sed 's%.*/htdocs/%%')
ifeq ($(HTML_SUBDIR),)
INSTALL_HTMLDIR = $(PROJECT_HTMLDIR)
else
INSTALL_HTMLDIR = $(PROJECT_HTMLDIR)/$(HTML_SUBDIR)
endif
INSTALLED_HTML += $(addprefix $(INSTALL_HTMLDIR)/,$(LOCAL_HTML))
# -- INIT
BUILD_INITDIR = $(TOPDIR)/bin
INSTALL_INITDIR = $(INIT_PREFIX)/init.d
@ -504,9 +523,7 @@ define install_local_cfg
endef
define cvs_files
for d in `find . | sed '/CVS\/Entries$$/ !d; s%CVS/Entries%%'`; do \
sed "/^\// !d; s%^/%%; s%/.*%%; s%^%$$d%" $$d/CVS/Entries ;\
done | sort
sh $(MOD_SCRIPT_DIR)/list-cvs-files.sh
endef
define add_flavour_prefix
@ -526,6 +543,16 @@ define version
$(shell cat $1/VERSION | sed 's/-.*//')
endef
define install_links
cwd=`pwd`; \
echo "o in $(INSTALL_$(1)DIR):" ;\
for f in $(notdir $(INSTALLED_$(1))); do \
cd $(INSTALL_$(1)DIR); \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
done;
endef
# ----- local.mk
ifneq ($(wildcard $(MODDIR)/make/local.mk),)
@ -554,8 +581,10 @@ endif
CC = $(GCC)
CPP = $(GPP)
PROJECTLIB_LDFLAGS += -L$(TOPDIR)/lib
ifeq ($(USE_PROJECT_LIB),true)
PROJECTLIB_LDFLAGS += -l$(LIBNAME) -L$(TOPDIR)/lib
PROJECTLIB_LDFLAGS += -l$(LIBNAME)
endif
ifeq ($(USE_YTOOLS),true)
@ -671,6 +700,21 @@ endif
ifeq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
CFLAGS += -funroll-loops -O2
CPPFLAGS += -funroll-loops -O2
else
_NO_OPT_FLAGS = \
-O0 \
-fno-implicit-inline-templates \
-fno-implement-inlines \
-fno-default-inline \
-fno-inline \
-finline-limit=0 \
-fkeep-inline-functions \
-fno-inline-functions-called-once \
-fno-inline-functions \
-fno-early-inlining
CFLAGS += $(NO_OPT_FLAGS)
CPPFLAGS += $(NO_OPT_FLAGS)
LDFLAGS += $(NO_OPT_FLAGS)
endif
ifeq ($(USE_EXCEPTIONS_IN_C),true)
@ -836,6 +880,18 @@ LD_LIB_PATH += $(FEEDFS_LOCAL_DIR)/lib
EXE_SEARCH_PATH += $(FEEDFS_LOCAL_DIR)/bin
endif
ifeq ($(USE_FEEDFS_REWRITE),true)
FEEDFS_REWRITE_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-rewrite /opt/$(FLAVOUR_PATH_PREFIX)feedfs-rewrite))
FEEDFS_REWRITE_VERSION = $(call version,$(FEEDFS_REWRITE_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-rewrite-run = $(FEEDFS_REWRITE_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-rewrite-devel = $(FEEDFS_REWRITE_VERSION)
USE_FEEDFS = true
# no build-time linkage necessary, no headers exported
LD_LIB_PATH += $(FEEDFS_REWRITE_DIR)/lib
EXE_SEARCH_PATH += $(FEEDFS_REWRITE_DIR)/bin
LIBFLAGS += -lboost_regex
endif
ifeq ($(USE_FEEDFS_FMEMFS),true)
FEEDFS_FMEMFS_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-fmemfs /opt/$(FLAVOUR_PATH_PREFIX)feedfs-fmemfs))
FEEDFS_FMEMFS_VERSION = $(call version,$(FEEDFS_FMEMFS_DIR))
@ -1000,6 +1056,31 @@ USE_YTOOLS = true
EXE_SEARCH_PATH += $(VALDI_DIR)/bin
endif
ifeq ($(USE_WT_JANNET),true)
USE_WT = true
include $(MODDIR)/make/wt-defs.mk
WT_JANNET_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/wt-jannet /opt/$(FLAVOUR_PATH_PREFIX)wt-jannet))
WT_JANNET_VERSION = $(call version,$(WT_JANNET_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)wt-jannet-run = $(WT_JANNET_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)wt-jannet-devel = $(WT_JANNET_VERSION)
USE_FEEDFS = true
INCLUDE += -I$(WT_JANNET_DIR)/include
LIBFLAGS += -L$(WT_JANNET_DIR)/lib -lwt-jannet
LD_LIB_PATH += $(WT_JANNET_DIR)/lib
EXE_SEARCH_PATH += $(WT_JANNET_DIR)/bin
endif
ifeq ($(USE_APACHE2_JANNET),true)
APACHE2_JANNET_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/apache2-jannet /opt/$(FLAVOUR_PATH_PREFIX)apache2-jannet))
APACHE2_JANNET_VERSION = $(call version,$(APACHE2_JANNET_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)apache2-jannet-run = $(APACHE2_JANNET_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)apache2-jannet-devel = $(APACHE2_JANNET_VERSION)
USE_FEEDFS = true
# no build-time linkage necessary, no headers exported
LD_LIB_PATH += $(APACHE2_JANNET_DIR)/lib
EXE_SEARCH_PATH += $(APACHE2_JANNET_DIR)/bin
endif
ifeq ($(USE_FPTEST),true)
FPTEST_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/fptest /opt/$(FLAVOUR_PATH_PREFIX)fptest))
FPTEST_VERSION = $(call version,$(FPTEST_DIR))