# make same trick as in C includes to avoid multiple include ifndef Dabc_Makefile_config Dabc_Makefile_config = true #rules which does not require any dependency checks FASTRULES = package packageabb packageroc clean clean-bak src .PHONY: all libs exes apps $(FASTRULES) ### dabc pathes: DABC_OS = "Linux" DABC_ARCH = $(shell uname -m) BLD_DIR := $(DABC_ARCH) ifndef DABCSYS error "DABCSYS is not set correctly" DABCSYS=$(CURDIR) endif ifdef DABCMAINMAKE DABCDLLPATH = lib DABCINCPATH = include DABCBINPATH = bin TGTDLLPATH = lib TGTBINPATH = bin else DABCDLLPATH = $(DABCSYS)/lib DABCINCPATH = $(DABCSYS)/include DABCBINPATH = $(DABCSYS)/bin TGTDLLPATH = $(BLD_DIR)/$(_topdir_)lib TGTBINPATH = $(BLD_DIR)/$(_topdir_)bin endif #in this variable one should put directories, which should be created/destroyed by make CREATE_DIRS = $(TGTDLLPATH) #list of directories with different tests APPLICATIONS_DIRS = #### File suffixes: ### ObjSuf = o SrcSuf = cxx CSuf = c HedSuf = h ExeSuf = DllSuf = so DepSuf = d ArSuf = a OutPutOpt = -o ##### prefixes LIB_PREFIX = lib #### Linker definitions: ### LD = g++ LDFLAGS = -O SOFLAGS = -shared -Wl,-soname, AR = ar ARFLAGS = cr #### File system operations: ### LN = ln -sf RM = rm -f MV = mv #### Compilers: ## CXX = g++ CC = gcc #### Library version numbers: ### MAJOR = 1 MINOR = 0.01 VERSSUF = $(MAJOR).$(MINOR) ## This two copiler flags are alternative. ## When DOOPTIMIZATION = false, first is used otherwise second DEBUGMODE = -g OPTIMIZEMODE = -O1 # switch on optimization for all object files DOOPTIMIZATION = true DOINDEXCHECK = false DEFINITIONS = INCLUDES = C_INCLUDES = C_DEFINITIONS = ifdef debug DEFINITIONS += DEBUGLEVEL=$(debug) DOOPTIMIZATION = false endif ifeq ($(DOINDEXCHECK), true) DEFINITIONS += DO_INDEX_CHECK endif WARNINGS = -Wall OPTIONS = -fPIC ifeq ($(shell uname -m),x86_64) OPTIONS += -m64 endif #### Combine compilers flags in one variable: ### CXXFLAGS = $(WARNINGS) $(OPTIONS) $(DEFINITIONS:%=-D%) $(INCLUDES:%=-I%) -I$(DABCINCPATH) CFLAGS = $(OPTIONS) $(C_DEFINITIONS:%=-D%) $(C_INCLUDES:%=-I%) # build scripts MakeDepend = $(DABCSYS)/build/depend.sh $(ObjSuf) $(DepSuf) "$(BLD_DIR)" MakeLib = $(DABCSYS)/build/makelib.sh $(LD) "$(RM)" $(MV) "$(LN)" "$(LDFLAGS)" "$(SOFLAGS)" $(DllSuf) CleanLib = $(DABCSYS)/build/cleanlib.sh "$(DABC_OS)" $(DllSuf) $(VERSSUF) # libs DABCBASE_LIBNAME = $(LIB_PREFIX)DabcBase DABCBASE_LIB = $(DABCDLLPATH)/$(DABCBASE_LIBNAME).$(DllSuf) DABCBASE_SLIB = $(DABCDLLPATH)/$(DABCBASE_LIBNAME).$(ArSuf) DABCSCTRL_LIBNAME = $(LIB_PREFIX)DabcSctrl DABCSCTRL_LIB = $(DABCDLLPATH)/$(DABCSCTRL_LIBNAME).$(DllSuf) DABCSCTRL_SLIB = $(DABCDLLPATH)/$(DABCSCTRL_LIBNAME).$(ArSuf) LIBS_SYSSET = -lpthread -ldl LIBS_CORESET = -L$(DABCDLLPATH) \ -lDabcBase LIBS_FULLSET = $(LIBS_CORESET) \ -lDabcSctrl all: libs exes apps libs:: exes:: clean:: endif