mariadb/storage/tokudb/Makefile.tokutek
Yoni Fogel 333b3e1440 Update handlerton makefile to support TAGS/cscope
git-svn-id: file:///svn/mysql/tokudb-engine/src@14233 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:53 -04:00

84 lines
2.4 KiB
Text

# the tunables
MYSQL_SRC = $(HOME)/mysql-5.1.23-rc
MYSQL_LIBDIR = $(HOME)/mysql-5.1.23-rc-build/lib/mysql
TOKUDB = /usr/local/tokudb-4.4
TOKUDB_VERSION = "Tokudb"
CXX = cc
DEBUG = 1
GCOV = 0
SINGLESO = 1
SYSTEM = $(shell uname -s | tr [A-Z] [a-z])
LIBTOKUDB=tokudb
# sources to target
SRCS = $(wildcard *.cc)
OBJS = $(patsubst %.cc,%.o,$(SRCS))
TARGET = ha_tokudb.so
ifeq ($(GCOV),1)
GCOV_FLAGS = -ftest-coverage -fprofile-arcs
endif
ifeq ($(DEBUG),0)
OPTFLAGS = -O3
MYSQL_FLAGS =
CXXFLAGS =
else
OPTFLAGS = -O0
MYSQL_FLAGS = -DHAVE_CONFIG_H -DDBUG_ON -DSAFE_MUTEX -DEXTRA_DEBUG -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX
CXXFLAGS = -Wall -Werror
endif
MYSQL_FLAGS += -DMYSQL_DYNAMIC_PLUGIN
MYSQL_CXXFLAGS = -fno-implicit-templates -fno-exceptions -fno-rtti
CPPFLAGS = -I. -I$(MYSQL_SRC)/sql -I$(MYSQL_SRC)/include -I$(MYSQL_SRC)/regex -I$(TOKUDB)/include -I$(TOKUDB)/toku_include -I$(TOKUDB)/src
CPPFLAGS += -I$(TOKUDB)/$(SYSTEM)
CPPFLAGS += $(MYSQL_FLAGS)
CPPFLAGS += -DTOKUDB_VERSION=\"$(TOKUDB_VERSION)\"
CXXFLAGS += -g $(OPTFLAGS) $(GCOV_FLAGS) $(MYSQL_CXXFLAGS)
CXXFLAGS += -fPIC
LDFLAGS = -fPIC -shared -Wl,-soname -Wl,libtokudb_engine.so
ifeq ($(SINGLESO),1)
LIBS = $(TOKUDB)/src/ydb_lib.o $(TOKUDB)/lib/lib$(LIBTOKUDB).a $(TOKUDB)/lib/libtokuportability.a
else
LIBS = -L$(TOKUDB)/lib -l$(LIBTOKUDB) -ltokuportability
endif
LIBS += -lpthread -lz -lm -lc
# LIBDIR = /usr/lib
# GCCLIBDIR = /usr/lib/gcc/i386-redhat-linux/4.1.1
# BEGINLIBS = $(LIBDIR)/crti.o $(GCCLIBDIR)/crtbeginS.o
# ENDLIBS = $(GCCLIBDIR)/crtendS.o $(LIBDIR)/crtn.o
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) $(GCOV_FLAGS) $(MYSQL_CXXFLAGS) $(BEGINLIBS) $^ $(LIBS) $(ENDLIBS) -o $@
clean:
rm -rf $(TARGET) $(OBJS) *.gcno *.gcda *.gcov
install: $(TARGET)
cp $(TARGET) $(MYSQL_LIBDIR)/libtokudb_engine.so
tags: TAGS cscope.out;
TAGS: $(TOKUDB)/*/*.[ch] $(TOKUDB)/*/*/*.[ch] $(TOKUDB)/*/*/*/*.[ch] *.cc *.h
rm -f `find $(TOKUDB)/ -type f -name TAGS` #Delete all other tag files
etags $(TOKUDB)/*/*.[ch] $(TOKUDB)/*/*/*.[ch] $(TOKUDB)/*/*/*/*.[ch] *.cc *.h
cscope.files: $(TOKUDB)/*/*.[ch] $(TOKUDB)/*/*/*.[ch] $(TOKUDB)/*/*/*/*.[ch] *.cc *.h
(echo $(TOKUDB)/*/*.[ch] $(TOKUDB)/*/*/*.[ch] $(TOKUDB)/*/*/*/*.[ch] *.cc *.h | tr " " "\n") > $@
ifneq ($(CYGWIN),)
CSCOPE=mlcscope
else
CSCOPE=cscope
endif
cscope.out: cscope.files $(TOKUDB)/*/*.[ch] $(TOKUDB)/*/*/*.[ch] $(TOKUDB)/*/*/*/*.[ch] *.cc *.h
$(CSCOPE) -qb