2002-07-19 19:48:27 +00:00
|
|
|
# (c) 2001 jannet it services
|
|
|
|
|
# contact@jannet.de
|
|
|
|
|
# $Id$
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
# ----- standard variables
|
|
|
|
|
|
|
|
|
|
PROJECT ?= $(shell (cd $(TOPDIR); basename `pwd`))
|
|
|
|
|
PROJECT_DESCR ?= No description
|
2007-06-30 12:42:10 +00:00
|
|
|
CUSTOMER ?= jannet
|
2007-06-17 13:01:37 +00:00
|
|
|
VERSION ?= $(shell cat $(TOPDIR)/VERSION)
|
|
|
|
|
DIST_VERSION ?= $(shell sed -e "s/-dev//" $(TOPDIR)/VERSION)
|
|
|
|
|
HEX_VERSION = $(shell echo $(DIST_VERSION) | \
|
2007-06-30 11:18:14 +00:00
|
|
|
sed 's/-dev//; s/pre[^\.]*//; s/F[^\.]//; s/[\.-]/ /g' | xargs printf "0x%02x%02x%02x%02x")
|
2007-07-13 10:49:58 +00:00
|
|
|
DEVELOPMENT ?= $(shell echo $(VERSION) | grep -q 'dev' && echo true)
|
2007-06-16 17:52:51 +00:00
|
|
|
USE_PROJECT_LIB ?= true
|
2007-06-17 13:09:03 +00:00
|
|
|
USE_YTOOLS ?= true
|
2007-06-16 17:52:51 +00:00
|
|
|
REENTRANT ?= true
|
2007-06-19 10:49:19 +00:00
|
|
|
USE_GFILTER ?= true
|
2007-07-13 10:49:58 +00:00
|
|
|
OS ?= $(shell sh $(MODDIR)/devutil/scripts/get_os.sh)
|
2007-06-30 12:42:10 +00:00
|
|
|
|
|
|
|
|
ifneq ($(shell echo $(OS) | cut -d: -f1),suse-9)
|
|
|
|
|
SYSCONFIG_FILE ?= /etc/rc.config
|
|
|
|
|
else
|
|
|
|
|
SYSCONFIG_FILE ?= /etc/sysconfig/$(PROJECT)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(DEVELOPMENT),true)
|
|
|
|
|
CONFIG_DIR ?= $(PREFIX)/etc
|
|
|
|
|
else
|
|
|
|
|
CONFIG_DIR ?= /etc/opt/jannet
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
CONFIG_FILE ?= $(CONFIG_DIR)/$(PROJECT).conf
|
2007-06-19 10:49:19 +00:00
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
export REENTRANT
|
|
|
|
|
|
2007-07-13 10:49:58 +00:00
|
|
|
USE_CFG_XXX_MK ?= true
|
|
|
|
|
ifeq ($(USE_CFG_XXX_MK),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
ifeq ($(DEVELOPMENT),true)
|
|
|
|
|
include $(TOPDIR)/make/cfg_dev.mk
|
|
|
|
|
else
|
|
|
|
|
include $(TOPDIR)/make/cfg_dist.mk
|
|
|
|
|
endif
|
2007-07-13 10:49:58 +00:00
|
|
|
endif
|
2007-06-16 17:52:51 +00:00
|
|
|
|
|
|
|
|
OPTS_PID_FILE ?= $(PIDDIR)/$(PROJECT).pid
|
|
|
|
|
|
|
|
|
|
CFLAGS += -DVERSION=$(HEX_VERSION)
|
|
|
|
|
CPPFLAGS += -DVERSION=$(HEX_VERSION)
|
|
|
|
|
LD_LIB_PATH += $(MODDIR)/lib
|
|
|
|
|
|
2002-07-20 17:16:06 +00:00
|
|
|
ifndef LIBNAME
|
2005-12-01 08:54:17 +00:00
|
|
|
LIBNAME := $(PROJECT)
|
2002-07-20 17:16:06 +00:00
|
|
|
endif
|
2002-07-19 19:48:27 +00:00
|
|
|
|
2007-07-13 10:49:58 +00:00
|
|
|
TARGET ?= Linux
|
|
|
|
|
|
|
|
|
|
ifeq ($(TARGET),mingw)
|
|
|
|
|
CROSS_TOOL_DIR = /opt/cross-tools
|
|
|
|
|
CROSS_TOOL_BIN_PREFIX = $(CROSS_TOOL_DIR)/bin/i386-mingw32-
|
2007-07-13 14:06:25 +00:00
|
|
|
GCC = $(CROSS_TOOL_BIN_PREFIX)gcc
|
|
|
|
|
GPP = $(CROSS_TOOL_BIN_PREFIX)g++
|
2007-07-13 13:26:43 +00:00
|
|
|
LDFLAGS += -lws2_32
|
|
|
|
|
USE_GFILTER = false
|
2007-07-13 14:06:25 +00:00
|
|
|
else
|
|
|
|
|
GCC = gcc
|
|
|
|
|
GPP = g++
|
2007-07-13 10:49:58 +00:00
|
|
|
endif
|
|
|
|
|
|
2007-06-23 18:41:25 +00:00
|
|
|
YTOOLS_DIR = $(MODDIR)
|
2002-07-20 10:26:53 +00:00
|
|
|
WINVERSION = $(shell echo $(VERSION) | sed -e "s/\./_/g")
|
|
|
|
|
LOCAL_VERSION = $(shell echo $(VERSION))
|
|
|
|
|
LOCAL_WINVERSION = $(shell echo $(VERSION) | sed -e "s/\./_/g")
|
2002-07-19 19:48:27 +00:00
|
|
|
DIST_VERSION = $(shell echo $(VERSION) | sed -e "s/-dev//")
|
|
|
|
|
DIST_WINVERSION = $(shell echo $(WINVERSION) | sed -e "s/-dev//")
|
|
|
|
|
LOCAL_DIST_VERSION = $(shell echo $(LOCAL_VERSION) | sed -e "s/-dev//")
|
|
|
|
|
LOCAL_DIST_WINVERSION = $(shell echo $(LOCAL_WINVERSION) | sed -e "s/-dev//")
|
|
|
|
|
PROJECT_STEM = $(PROJECT)-$(DIST_VERSION)
|
2002-07-29 14:11:58 +00:00
|
|
|
CVS_ROOT_DIR = $(shell test -d CVS && pwd | sed -e "s%`cat CVS/Repository`%%; s%/$$%%")
|
2002-09-10 09:56:11 +00:00
|
|
|
REV_SUBDIRS = $(shell echo $(SUBDIRS) | awk '{for (i=NF; i>=1; i--) printf ("%s ",$$i)}')
|
2005-07-30 12:02:12 +00:00
|
|
|
FRESH_CVSDIR = $(HOME)/local/src/cvs.fresh
|
2006-03-16 08:07:38 +00:00
|
|
|
ARCH = @ARCH@
|
2007-01-06 14:17:34 +00:00
|
|
|
FIND_SUBDIRS = $(filter-out . .. ./nomake ./CVS $(addprefix ./,$(IGNORE_SUBDIRS)), $(shell find . -maxdepth 1 -type d))
|
2007-06-30 21:50:09 +00:00
|
|
|
IMAGE_DIR ?= $(CVS_ROOT_DIR)/images
|
2006-01-09 01:23:32 +00:00
|
|
|
|
2007-06-16 18:55:12 +00:00
|
|
|
PROJECT_CAPNAME = $(shell echo $(PROJECT) | tr [a-z] [A-Z] | sed 's/-/_/g')
|
2005-11-20 19:21:33 +00:00
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
BINARY_VERSION = $(shell echo $(PROJECT)_$(VERSION) | tr [a-z] [A-Z] | sed 's/-[^-]*$$//; s/-/_/g')
|
2005-05-16 15:04:02 +00:00
|
|
|
FTP_PCKG_DIR = /pub/packages
|
|
|
|
|
JANNET_PROJ_DIR = rsync_ssh://ftp.jannet.de:/home/ftp/dat$(FTP_PCKG_DIR)
|
|
|
|
|
CONFDIR = $(MODDIR)/../conf
|
2002-07-19 19:48:27 +00:00
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
GCC_VERSION = $(shell gcc -v 2>&1 | grep version | awk '{ print $$3;}')
|
|
|
|
|
GCC_MAJOR = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[1];}')
|
|
|
|
|
GCC_MINOR = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[2];}')
|
|
|
|
|
GCC_REV = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[3];}')
|
2002-07-19 19:48:27 +00:00
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
LD_VERSION = $(shell ld --version | sed '/GNU ld/ !d; s/[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/')
|
|
|
|
|
LD_MAJOR = $(shell echo $(LD_VERSION) | cut -d. -f1)
|
|
|
|
|
LD_MINOR = $(shell echo $(LD_VERSION) | cut -d. -f2)
|
|
|
|
|
LD_REV = $(shell echo $(LD_VERSION) | cut -d. -f3)
|
2005-07-31 11:24:04 +00:00
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
YTOOLS_VERSION = @PACKAGE_VERSION@
|
|
|
|
|
YTOOLS_VERSION_STR = \"@PACKAGE_VERSION@\"
|
2002-07-21 10:04:51 +00:00
|
|
|
|
2002-07-19 19:48:27 +00:00
|
|
|
#ifndef $(TOPDIR)
|
2005-12-01 08:54:17 +00:00
|
|
|
# TOPDIR := $(MODDIR)
|
2002-07-19 19:48:27 +00:00
|
|
|
#endif
|
|
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
EXE_SH += $(wildcard *.sh *.pl)
|
|
|
|
|
MKFILES += $(wildcard *.mk)
|
|
|
|
|
|
|
|
|
|
FULL_NAME = $(shell grep "^`id -nu`": /etc/passwd | cut -d: -f5)
|
|
|
|
|
SRC_SUFFIX += $(sort $(suffix $(wildcard $(TOPDIR)/hdr/*)))
|
|
|
|
|
LOCAL_SRC += Makefile $(wildcard $(addprefix *,$(SRC_SUFFIX)))
|
|
|
|
|
SRC_HEADERED += $(shell if [ "$(LOCAL_SRC)" ]; then grep -ic "it services" $(LOCAL_SRC) | sed '/:0$$/ d; s/:.*$$//'; fi)
|
|
|
|
|
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)
|
|
|
|
|
UIFILES += $(wildcard *.ui)
|
|
|
|
|
RCCFILES += $(wildcard *.qrc)
|
|
|
|
|
SRC_ALL_CPP += $(LOCAL_C) $(LOCAL_CPP) $(LOCAL_H)
|
2007-06-16 17:52:51 +00:00
|
|
|
# why both SRC_H <-> LOCAL_H?
|
2005-12-01 08:54:17 +00:00
|
|
|
SRC_H += $(filter %.h %.H, $(SRC_ALL_CPP))
|
|
|
|
|
SRC_C += $(filter %.c, $(SRC_ALL_CPP))
|
|
|
|
|
SRC_CPP += $(filter %.cc %.cpp %.C, $(SRC_ALL_CPP))
|
|
|
|
|
OBJ += $(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(filter %.c %.cpp %.cc, $(SRC_ALL_CPP)))))
|
|
|
|
|
OBJ += $(patsubst %.S,%.o,$(SFILES))
|
|
|
|
|
SHOBJS += $(patsubst %.cpp,lib%.so,$(patsubst %.cc,lib%.so,$(patsubst %.c,lib%.so,$(SRC_ALL_CPP))))
|
|
|
|
|
SHSCRIPTS += $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl))
|
|
|
|
|
SCRIPTS += $(patsubst %.tmpl,%,$(wildcard *.tmpl))
|
|
|
|
|
|
|
|
|
|
BUILD_EXE_SH += $(patsubst %.sh,$(BUILD_BINDIR)/%.sh,$(EXE_SH))
|
|
|
|
|
BUILD_H += $(patsubst %.h,$(TOPDIR)/include/%.h,$(SRC_H))
|
|
|
|
|
|
|
|
|
|
PREREQ_DIR += $(addprefix $(MODDIR)/,$(LOCAL_PREREQ))
|
|
|
|
|
PREREQ_DONE += $(addsuffix /all.done,$(PREREQ_DIR))
|
|
|
|
|
PREREQ_H += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.h))
|
|
|
|
|
PREREQ_C += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.c))
|
|
|
|
|
PREREQ_CPP += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.c)) \
|
|
|
|
|
$(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.cpp))
|
|
|
|
|
PREREQ_CSRC += $(PREREQ_H) $(PREREQ_C) $(PREREQ_CPP)
|
|
|
|
|
|
|
|
|
|
CONTRIB_MOD += $(addprefix contrib/,$(CONTRIB_LIBS))
|
|
|
|
|
REQUIRED := $(CONTRIB_MOD) $(REQUIRED)
|
|
|
|
|
|
|
|
|
|
REQUIRED_DIR += $(patsubst %,$(MODDIR)/%,$(REQUIRED))
|
|
|
|
|
REQUIRED_DONE += $(patsubst %,%/all.done,$(REQUIRED_DIR))
|
|
|
|
|
REQUIRED_H += $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.h))
|
|
|
|
|
REQUIRED_C += $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.c))
|
|
|
|
|
REQUIRED_CPP += $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.cpp)) \
|
|
|
|
|
$(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.cpp))
|
|
|
|
|
REQUIRED_CSRC += $(REQUIRED_H) $(REQUIRED_C) $(REQUIRED_CPP)
|
|
|
|
|
|
|
|
|
|
ALL_H += $(LOCAL_H) $(PREREQ_H)
|
|
|
|
|
ALL_C += $(LOCAL_C) $(PREREQ_CPP)
|
|
|
|
|
ALL_CPP += $(LOCAL_CPP) $(PREREQ_CPP)
|
|
|
|
|
|
|
|
|
|
ALL_CSRC += $(LOCAL_CSRC) $(PREREQ_CSRC)
|
|
|
|
|
|
|
|
|
|
TEXTCLEAN += $(wildcard *~ .*~ .*.swp *.rep)
|
|
|
|
|
|
|
|
|
|
INCLUDE += -I. -I$(TOPDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
|
2005-07-12 10:43:47 +00:00
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
UPLOAD_URL_RPM_BIN = rsync_ssh://ftp.jannet.de:/home/ftp/dat/pub/packages/rpm/bin/
|
|
|
|
|
UPLOAD_URL_RPM_SRC = rsync_ssh://ftp.jannet.de:/home/ftp/dat/pub/packages/rpm/src/
|
2002-08-14 16:47:00 +00:00
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
ifneq ($(TOPDIR),$(MODDIR))
|
|
|
|
|
INCLUDE += -I$(MODDIR)/include
|
2002-08-14 16:47:00 +00:00
|
|
|
endif
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
INSTALL_LIBDIR ?= $(PREFIX)/lib
|
|
|
|
|
INSTALL_HDRDIR ?= $(PREFIX)/include
|
|
|
|
|
INSTALL_MKDIR ?= $(PREFIX)/make
|
|
|
|
|
INSTALL_BINDIR ?= $(PREFIX)/bin
|
2002-08-14 16:47:00 +00:00
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
BUILD_BINDIR = $(TOPDIR)/bin
|
|
|
|
|
LIBDIR = $(TOPDIR)/lib
|
|
|
|
|
INSTALL_DOCDIR_DIST = $(DOC_PREFIX)
|
|
|
|
|
INSTALL_DOCDIR_DEVEL = $(DOC_PREFIX)-devel
|
|
|
|
|
DOCS += $(wildcard README CHANGES TODO LICENSE AUTHORS CREDITS *.pdf *.txt *.html)
|
|
|
|
|
DOCSUBDIRS += $(wildcard html tex info examples src)
|
2002-07-19 19:48:27 +00:00
|
|
|
|
|
|
|
|
INSTALLED_VERSION_FILE = $(PREFIX)/VERSION
|
|
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
INSTALLED_DOCS_DIST = $(addprefix $(INSTALL_DOCDIR_DIST)/,$(DOCS))
|
|
|
|
|
INSTALLED_DOCS_DEVEL = $(addprefix $(INSTALL_DOCDIR_DEVEL)/,$(DOCS))
|
|
|
|
|
|
|
|
|
|
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
|
2007-07-13 13:26:43 +00:00
|
|
|
ifneq ($(TARGET),mingw)
|
|
|
|
|
SO_SUFFIX = so.$(shell echo $(VERSION) | cut -d- -f1)
|
2005-12-01 08:54:17 +00:00
|
|
|
LIB_SO = $(LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
|
2007-07-13 13:26:43 +00:00
|
|
|
else
|
|
|
|
|
SO_SUFFIX = dll.$(shell echo $(VERSION) | cut -d- -f1)
|
|
|
|
|
LIB_SO = $(LIBDIR)/$(LIBNAME).dll
|
|
|
|
|
endif
|
2005-12-01 08:54:17 +00:00
|
|
|
VERSION_SCRIPT = $(LIBDIR)/version.ldscript
|
|
|
|
|
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
|
|
|
|
|
INSTALLED_SHOBJS += $(addprefix $(INSTALL_LIBDIR)/,$(SHOBJS))
|
|
|
|
|
INSTALLED_LINKS_SO += $(shell echo $(INSTALLED_LIB_SO) | sed -e "s/\.so\..*$$/.so/" | grep -v $(INSTALLED_LIB_SO))
|
|
|
|
|
LINKS_SO += $(shell echo $(LIB_SO) | sed -e "s/\.so\..*$$/.so/" | grep -v $(LIB_SO))
|
|
|
|
|
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
|
|
|
|
|
|
|
|
|
|
INSTALLED_EXE += $(INSTALL_BINDIR)/$(EXE)
|
|
|
|
|
INSTALLED_EXE_SH += $(addprefix $(INSTALL_BINDIR)/,$(EXE_SH))
|
|
|
|
|
INSTALLED_EXE_BIN += $(addprefix $(INSTALL_BINDIR)/,$(EXE_BIN))
|
|
|
|
|
INSTALLED_MKFILES += $(addprefix $(INSTALL_MKDIR)/,$(MKFILES))
|
|
|
|
|
INSTALLED_H += $(addprefix $(INSTALL_HDRDIR)/,$(SRC_H))
|
2002-07-19 19:48:27 +00:00
|
|
|
|
|
|
|
|
INSTALLED_PROFILE_PATH_SCRIPT = $(ENV_PREFIX)/etc/profile.d/path_$(PROJECT).sh
|
|
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
MEMBERS += $(LIB_A)($(OBJ))
|
2005-07-12 14:58:43 +00:00
|
|
|
|
|
|
|
|
ifeq ($(DEVELOPMENT),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -D_DEVELOPMENT_
|
|
|
|
|
CPPFLAGS += -D_DEVELOPMENT_
|
2005-07-12 14:58:43 +00:00
|
|
|
endif
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += $(LOCAL_CFLAGS) $(PROJECT_CFLAGS) $(YLIB_CFLAGS) $(INCLUDE)
|
2005-12-01 08:54:17 +00:00
|
|
|
CPPFLAGS += $(LOCAL_CPPFLAGS) $(PROJECT_CPPFLAGS) $(YLIB_CPPFLAGS) $(INCLUDE)
|
2006-03-14 14:44:37 +00:00
|
|
|
CORE += $(wildcard core core.* vgcore vgcore.*)
|
2002-07-19 19:48:27 +00:00
|
|
|
|
|
|
|
|
ifeq ($(USE_QT),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
include $(MODDIR)/make/qt-defs.mk
|
2006-03-16 09:06:20 +00:00
|
|
|
endif
|
2004-09-04 19:46:32 +00:00
|
|
|
|
2002-07-19 19:48:27 +00:00
|
|
|
ifeq ($(USE_X),true)
|
2006-03-16 09:06:20 +00:00
|
|
|
ifeq ($(ARCH),x86)
|
2007-06-16 17:52:51 +00:00
|
|
|
LDFLAGS += -L/usr/X11/lib -lXext -lX11
|
2006-03-16 09:06:20 +00:00
|
|
|
else
|
2007-06-16 17:52:51 +00:00
|
|
|
LDFLAGS += -L/usr/X11/lib64 -lXext -lX11
|
2006-03-16 09:06:20 +00:00
|
|
|
endif
|
2002-07-19 19:48:27 +00:00
|
|
|
endif
|
|
|
|
|
|
2006-03-16 08:07:38 +00:00
|
|
|
LPPFLAGS += -lstdc++
|
2006-07-19 14:28:51 +00:00
|
|
|
|
2002-07-19 19:48:27 +00:00
|
|
|
ifeq ($(GCC_MAJOR),2)
|
2006-03-16 08:07:38 +00:00
|
|
|
LPPFLAGS += -lm
|
2005-12-01 08:54:17 +00:00
|
|
|
CFLAGS += -I/usr/local/include
|
|
|
|
|
CPPFLAGS += -I/usr/local/include
|
2002-07-19 19:48:27 +00:00
|
|
|
else
|
2006-03-16 08:07:38 +00:00
|
|
|
ifeq ($(GCC_MAJOR),3)
|
2006-03-19 11:03:33 +00:00
|
|
|
LPPFLAGS += -lgcc_s
|
|
|
|
|
# LPPFLAGS += -L/usr/local/gcc3.3/lib
|
2006-03-16 08:07:38 +00:00
|
|
|
else
|
|
|
|
|
ifeq ($(GCC_MAJOR),4) # -PIC is more a thing with AMD64, I think
|
2007-07-13 10:49:58 +00:00
|
|
|
ifeq ($(TARGET),Linux)
|
|
|
|
|
CPPFLAGS += -fPIC
|
|
|
|
|
CFLAGS += -fPIC
|
|
|
|
|
endif
|
2006-03-16 08:07:38 +00:00
|
|
|
endif
|
|
|
|
|
endif
|
2002-07-19 19:48:27 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(LIBTYPE),shared)
|
2007-07-13 10:49:58 +00:00
|
|
|
ifneq ($(TARGET),mingw)
|
2007-06-16 17:52:51 +00:00
|
|
|
LDFLAGS += -rdynamic
|
2007-07-13 10:49:58 +00:00
|
|
|
endif
|
2004-11-28 12:26:49 +00:00
|
|
|
endif
|
|
|
|
|
|
2005-12-02 16:19:50 +00:00
|
|
|
# TODO: this shoud be only conditional, but breaks, because not all headers
|
|
|
|
|
# do a conditional include of timer headers, yet
|
2005-12-02 16:10:07 +00:00
|
|
|
GENERATE_FUNC_TIMERS = $(MODDIR)/YStopWatchThreadList/generate_func_timers.sh
|
2005-12-02 16:19:50 +00:00
|
|
|
|
2005-12-01 08:54:17 +00:00
|
|
|
RM = rm
|
|
|
|
|
AR = ar
|
2002-07-19 19:48:27 +00:00
|
|
|
|
2004-02-03 05:00:14 +00:00
|
|
|
ifeq ($(LOG_THREAD_NAMES), true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DSLOG_THREAD_NAMES
|
|
|
|
|
CPPFLAGS += -DSLOG_THREAD_NAMES
|
2004-02-03 05:00:14 +00:00
|
|
|
endif
|
|
|
|
|
|
2002-07-19 19:48:27 +00:00
|
|
|
ifneq ($(wildcard $(MODDIR)/devutil/scripts),)
|
2007-06-16 17:52:51 +00:00
|
|
|
MOD_SCRIPT_DIR = $(MODDIR)/devutil/scripts
|
2002-07-19 19:48:27 +00:00
|
|
|
else
|
2007-06-16 17:52:51 +00:00
|
|
|
MOD_SCRIPT_DIR = $(MODDIR)/bin
|
2002-07-19 19:48:27 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifdef INSTALL_LOG
|
|
|
|
|
INSTALL=$(MOD_SCRIPT_DIR)/log_install.sh -l $(INSTALL_LOG)
|
|
|
|
|
LINK_LIB=$(MOD_SCRIPT_DIR)/log_install.sh -L -l $(INSTALL_LOG)
|
|
|
|
|
else
|
|
|
|
|
ifndef INSTALL
|
2005-12-01 08:54:17 +00:00
|
|
|
INSTALL = install
|
2002-07-19 19:48:27 +00:00
|
|
|
endif
|
|
|
|
|
ifndef LINK_LIB
|
|
|
|
|
LINK_LIB=$(MOD_SCRIPT_DIR)/log_install.sh -L
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
# ----- function definitions
|
|
|
|
|
|
2002-07-19 19:48:27 +00:00
|
|
|
define make_subdirs
|
|
|
|
|
set -e; for D in $(SUBDIRS) ; do make -C $$D ; done
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
define make_subdirs_target
|
|
|
|
|
set -e; for D in $(SUBDIRS) ; do make -C $$D $@; done
|
|
|
|
|
endef
|
|
|
|
|
|
2002-07-25 20:27:58 +00:00
|
|
|
define install_local_cfg
|
|
|
|
|
$(INSTALL) -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
|
|
|
|
|
endef
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
# ----- local.mk
|
|
|
|
|
|
|
|
|
|
ifneq ($(wildcard $(MODDIR)/make/local.mk),)
|
|
|
|
|
include $(MODDIR)/make/local.mk
|
|
|
|
|
endif
|
2002-07-19 19:48:27 +00:00
|
|
|
|
2007-06-09 11:24:32 +00:00
|
|
|
ifneq ($(wildcard $(TOPDIR)/make/local.mk),)
|
|
|
|
|
include $(TOPDIR)/make/local.mk
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifneq ($(wildcard local.mk),)
|
|
|
|
|
include local.mk
|
|
|
|
|
endif
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
# ----- standard features, switched on with USE_XXX = true
|
|
|
|
|
|
2007-07-13 14:06:25 +00:00
|
|
|
CPP ?= g++
|
|
|
|
|
|
2007-06-19 10:49:19 +00:00
|
|
|
ifeq ($(USE_GFILTER),true)
|
2007-07-13 14:06:25 +00:00
|
|
|
GFILT = sh $(firstword $(wildcard $(MODDIR)/contrib/gfilt/gfilt $(MODDIR)/bin/gfilt))
|
|
|
|
|
ifneq ($(strip $(GFILT)),sh)
|
|
|
|
|
CPP = $(GFILT)
|
2007-06-19 10:49:19 +00:00
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
2007-07-13 14:06:25 +00:00
|
|
|
CC = $(GCC)
|
|
|
|
|
CPP = $(GPP)
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
ifeq ($(USE_PROJECT_LIB),true)
|
2007-06-17 13:09:03 +00:00
|
|
|
PROJECTLIB_LDFLAGS += -l$(LIBNAME) -L$(TOPDIR)/lib
|
2007-06-16 17:52:51 +00:00
|
|
|
LD_LIB_PATH += $(TOPDIR)/lib
|
|
|
|
|
endif
|
|
|
|
|
|
2007-06-17 13:09:03 +00:00
|
|
|
ifeq ($(USE_YTOOLS),true)
|
2007-06-30 11:18:14 +00:00
|
|
|
CFLAGS += -I$(MODDIR)/include
|
|
|
|
|
CPPFLAGS += -I$(MODDIR)/include
|
2007-06-17 13:09:03 +00:00
|
|
|
PROJECTLIB_LDFLAGS += -lytools -L$(MODDIR)/lib
|
|
|
|
|
LD_LIB_PATH += $(MODDIR)/lib
|
|
|
|
|
endif
|
|
|
|
|
|
2007-06-16 17:52:51 +00:00
|
|
|
ifeq ($(USE_TIMER),true)
|
|
|
|
|
CFLAGS += -D_USE_TIMER_
|
|
|
|
|
CPPFLAGS += -D_USE_TIMER_
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
LDFLAGS += -L$(LIBDIR) $(LOCAL_LDFLAGS) $(PROJECTLIB_LDFLAGS) $(PROJECT_LDFLAGS) $(LPPFLAGS)
|
|
|
|
|
ifeq ($(USE_PROFILER),true)
|
|
|
|
|
CFLAGS += -fprofile-arcs -ftest-coverage
|
|
|
|
|
CPPFLAGS += -fprofile-arcs -ftest-coverage
|
|
|
|
|
LDFLAGS += -fprofile-arcs -ftest-coverage
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_YAMD),true)
|
|
|
|
|
CC = yamd-gcc
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_MPATROL),true)
|
|
|
|
|
CFLAGS += -include /usr/include/mpatrol.h
|
|
|
|
|
#CPPFLAGS += -include /usr/include/mpatrol.h
|
|
|
|
|
LDFLAGS += -lmpatrolmt -lbfd -liberty
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_VALGRIND),true)
|
|
|
|
|
CFLAGS += -include /usr/include/valgrind/memcheck.h
|
|
|
|
|
CPPFLAG += -include /usr/include/valgrind/memcheck.h
|
|
|
|
|
# LDFLAGS +=
|
|
|
|
|
endif
|
|
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(USE_STACK_PROTECTOR),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -fstack-protector-all
|
|
|
|
|
# CFLAGS += -fstack-protector
|
2006-02-11 16:16:28 +00:00
|
|
|
endif
|
2005-04-26 18:43:34 +00:00
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(USE_DBMALLOC),true)
|
|
|
|
|
CONTRIB_LIBS += dbmalloc
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DDBMALLOC -DEXITFUN=_exit -I$(TOPDIR)/contrib/dbmalloc
|
|
|
|
|
CPPFLAGS += -DDBMALLOC -DEXITFUN=_exit -I$(TOPDIR)/contrib/dbmalloc
|
|
|
|
|
LDFLAGS += -ldbmalloc
|
2004-07-29 14:56:20 +00:00
|
|
|
endif
|
|
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(USE_DMALLOC),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DDMALLOC -DDMALLOC_FUNC_CHECK -DSTORE_SEEN_COUNT
|
|
|
|
|
CPPFLAGS += -DDMALLOC -DDMALLOC_FUNC_CHECK -DSTORE_SEEN_COUNT
|
|
|
|
|
LDFLAGS += -ldmallocthcxx -ldmallocth
|
2004-01-14 20:38:04 +00:00
|
|
|
endif
|
2004-02-11 12:24:25 +00:00
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(USE_MEMWATCH),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DMEMWATCH -DMW_STDIO
|
|
|
|
|
CPPFLAGS += -DMEMWATCH -DMW_STDIO
|
2005-05-13 09:09:18 +00:00
|
|
|
endif
|
2005-04-26 18:43:34 +00:00
|
|
|
|
2005-09-07 14:52:25 +00:00
|
|
|
ifeq ($(USE_EFENCE),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DEFENCE
|
|
|
|
|
CPPFLAGS += -DEFENCE
|
|
|
|
|
LDFLAGS += -lefence
|
2006-02-11 16:16:28 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_TRACING),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -D_DO_TRACE_
|
|
|
|
|
CPPFLAGS += -D_DO_TRACE_
|
2006-02-11 16:16:28 +00:00
|
|
|
endif
|
|
|
|
|
|
2006-03-17 07:07:08 +00:00
|
|
|
ifeq ($(USE_ASSERTIONS),false)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -DNDEBUG
|
|
|
|
|
CPPFLAGS += -DNDEBUG
|
2006-03-17 07:07:08 +00:00
|
|
|
endif
|
|
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(COMPILE_DEBUG_CODE),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -D_DEBUG_
|
|
|
|
|
CPPFLAGS += -D_DEBUG_
|
2005-09-07 14:52:25 +00:00
|
|
|
endif
|
|
|
|
|
|
2006-02-11 16:16:28 +00:00
|
|
|
ifeq ($(USE_MPATROL),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -include $(MODDIR)/include/mpatrol.h
|
|
|
|
|
CPPFLAGS += -include $(MODDIR)/include/mpatrol.h
|
|
|
|
|
LDFLAGS += -lmpatrolmt -lbfd -liberty
|
2006-02-11 16:16:28 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_COMPILER_DEBUG_OPTS),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -Wall -g3
|
|
|
|
|
CPPFLAGS += -Wall -g3
|
|
|
|
|
LDFLAGS += -Wall -g3
|
2006-03-17 07:07:08 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
|
2007-06-16 17:52:51 +00:00
|
|
|
CFLAGS += -funroll-loops -O2
|
|
|
|
|
CPPFLAGS += -funroll-loops -O2
|
2006-02-11 16:16:28 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
#export PROJECT PROJECT_CFLAGS PROJECT_CPPFLAGS PROJECT_LDFLAGS USE_TIMER
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:36:59 +00:00
|
|
|
NEW_LD_LIB_PATH = $(shell echo $(LDFLAGS) | sed 's/-[^L][^ ]*//g; s/-L[ ]*\([^ ]*\)[ ]*/\1:/g')
|
|
|
|
|
|
|
|
|
|
|