Prog/TagSystem/lctags
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#of67ad55]
#contents();
/////////////////////////////////////////////////////////...
* lctags [#jfb0b04c]
//=======================================================...
** 環境構築 [#k8dbdfff]
+ コードの取得
$ git clone https://github.com/ifritJP/lctags.git
+ 追加パッケージのインストール
-- swig (ビルドに必要)
-- liblua50-dev
-- lua5.3
-- luajit
-- liblua5.3-dev
-- libssl-dev
+ 他モジュールのコードを取得・展開
$ cd lctags/external
$ curl http://lua.sqlite.org/index.cgi/zip/lsqlite3_fsl0...
$ unzip luasqlite3.zip
$ cp -Rfdp lsqlite3_fsl09x/ luasqlite3/
$ curl https://www.lua.org/ftp/lua-5.3.4.tar.gz -o lua/l...
$ tar -xvzf lua.tar.gz
$ mv lua-5.3.4 lua/
+ ビルド
++ src/makefile の修正
diff --git a/src/makefile b/src/makefile
index d3dde80..9a92a49 100644
--- a/src/makefile
+++ b/src/makefile
@@ -1,128 +1,152 @@
NDIR=$(shell pwd)
-INST_DIR=/usr/local/bin
+INST_DIR := /usr/local/bin
-PROXY=
+PROXY :=
-SWIG=swig
+SWIG := swig
INSTALL=/usr/bin/install -c
-SO=so
-## cygwin
-#SO=dll
+LUA_VER := 5.3
+# LUA_VER := 5.2
+# LUA_VER := 5.1
-####### customize Lua environment ######
+LUAJIT_VER := 2.0.4
+# LUAJIT_VER := $(shell luajit -v | awk '{print $2;}')
+
+CLANG_VER := 7
+# CLANG_VER=3.8
+
+UNAME := $(shell uname -a)
+ifeq ($(filter Darwin,$(UNAME)),Darwin)
+OS := mac
+else
+ifeq ($(filter Linux,$(UNAME)),Linux)
+OS := linux
+else
+ifeq ($(filter MINGW,$(UNAME)),Cygwin)
+OS := cygwin
+else
+$(info Your platform $(UNAME) is not supported.)
+endif
+endif
+endif
+ifeq ($(OS),cygwin)
## cygwin
-# LUA_COMMAND=lua
-# LUA_INC=/usr/include
-# LUA_LDFLAGS=
-# LUA_SO=-llua
+SO := dll
+else
+SO := so
+endif
-# LUA_COMMAND=lua5.1
-# LUA_INC=/usr/include/lua5.1
-# LUA_LDFLAGS=
-# LUA_SO=-llua5.1
+####### customize Lua environment ######
+ifeq ($(OS),cygwin)
+## cygwin
+LUA_COMMAND := lua
+LUA_INC := /usr/include
+LUA_LDFLAGS :=
+LUA_SO := -llua
-LUA_COMMAND=lua5.3
-LUA_INC=/usr/include/lua5.3
-LUA_LDFLAGS=
-LUA_SO=-llua5.3
+else
+LUA_COMMAND := lua$(LUA_VER)
+LUA_INC := /usr/include/lua$(LUA_VER)
+LUA_LDFLAGS :=
+LUA_SO := -llua$(LUA_VER)
+endif
-# LUA_COMMAND=luajit
-# LUA_INC=/usr/include/luajit-2.0
-# LUA_LDFLAGS=
-# LUA_SO=-lluajit-5.1
+# LUA_COMMAND := luajit
+# LUA_INC := /usr/include/luajit-2.0
+# LUA_LDFLAGS :=
+# LUA_SO := -lluajit-5.1
-# LUA_COMMAND=./clanglua
-# LUA_CFLAGS=-fPIC -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2 -I...
-# LUA_DIR=../external/lua/lua-5.3.4/src
-# LUA_INC=$(NDIR)/$(LUA_DIR)
-# LUA_LIB=$(LUA_DIR)/liblua.a
-# LUA_INST_DIR=/usr/local/bin
-# LUA_LIB_DIR=/usr/local/lib/lua/5.3
-# LUA_LDFLAGS=-lncursesw
+# LUA_COMMAND := ./clanglua
+# LUA_CFLAGS := -fPIC -DLUA_COMPAT_5_1 -DLUA_COMPAT_5...
+# LUA_DIR := ../external/lua/lua-5.3.4/src
+# LUA_INC := $(NDIR)/$(LUA_DIR)
+# LUA_LIB := $(LUA_DIR)/liblua.a
+# LUA_INST_DIR := /usr/local/bin
+# LUA_LIB_DIR := /usr/local/lib/lua/5.3
+# LUA_LDFLAGS := -lncursesw
-TEST_LUA_DIR=../external/lua/lua-5.3.4/src
+TEST_LUA_DIR := ../external/lua/lua-5.3.4/src
-LUA_URL="https://www.lua.org/ftp/lua-5.3.4.tar.gz"
+LUA_URL := "https://www.lua.org/ftp/lua-5.3.4.tar.gz"
-LUA_COMMAND_FULL:=$(shell python -c 'import os; print( ...
+LUA_COMMAND_FULL := $(shell python -c 'import os; print...
####### customize libclang environment ######
+ifeq ($(OS),cygwin)
## cygwin
-# LIBCLANG_INC=/usr/include
-# LIBCLANG_LIB=/lib
-# LIBCLANG_STD_INC=/lib/clang/5.0.1/include
-
-
-CLANG_VER=3.8
-LIBCLANG_INC=/usr/lib/llvm-$(CLANG_VER)/include
-LIBCLANG_LIB=/usr/lib/llvm-$(CLANG_VER)/lib
-LIBCLANG_STD_INC=$(shell find /usr/lib/llvm-$(CLANG_VER...
+LIBCLANG_INC := /usr/include
+LIBCLANG_LIB := /lib
+LIBCLANG_STD_INC := /lib/clang/5.0.1/include
-# LIBCLANG_DIR=/proj/next/clang/r34-final
-# LIBCLANG_INC=../external/clang/r390/llvm/tools/clang/...
-# LIBCLANG_STD_INC=../external/clang/r390/build/lib/cla...
-# LIBCLANG_LIB=/usr/lib/llvm-$(CLANG_VER)/lib
+else
+LIBCLANG_INC := /usr/lib/llvm-$(CLANG_VER)/include
+LIBCLANG_LIB := /usr/lib/llvm-$(CLANG_VER)/lib
+LIBCLANG_STD_INC := $(shell find /usr/lib/llvm-$(CLANG_...
-# LIBCLANG_SO=-lclang
+# LIBCLANG_DIR := /proj/next/clang/r34-final
+# LIBCLANG_INC := ../external/clang/r390/llvm/tools...
+# LIBCLANG_STD_INC := ../external/clang/r390/build/lib/...
+# LIBCLANG_LIB := /usr/lib/llvm-$(CLANG_VER)/lib
+endif
-LIBCLANG_SO=-lclang
+LIBCLANG_SO := -lclang
####### customize luasqlite3 environment ######
# If you don't have luasqlite3, you must customize this...
# http://lua.sqlite.org/index.cgi/index
-LUASQLITE3_WORKDIR=../external/luasqlite3
-LUASQLITE3_DIR=$(LUASQLITE3_WORKDIR)/lsqlite3_fsl09x
-#USE_BDB_SQLITE=y
+LUASQLITE3_WORKDIR := ../external/luasqlite3
+LUASQLITE3_DIR := $(LUASQLITE3_WORKDIR)/lsqlite3_fs...
+#USE_BDB_SQLITE := y
-LUASQLITE3_URL="http://lua.sqlite.org/index.cgi/zip/lsq...
+LUASQLITE3_URL := "http://lua.sqlite.org/index.cgi/zip/...
####### make rules ######
-LUA_LIB_DIR=$(shell echo $(LUA_DIR_LIB) | $(LUA_COMMAND...
-LUA_MOD_DIR=$(shell echo $(LUA_DIR_SCRIPT) | $(LUA_COMM...
+LUA_LIB_DIR := $(shell echo $(LUA_DIR_LIB) | $(LUA_COMM...
+LUA_MOD_DIR := $(shell echo $(LUA_DIR_SCRIPT) | $(LUA_C...
-LCTAGS_LOG=4
-JOBS=3
+LCTAGS_LOG := 4
+JOBS := 3
ifdef LCTAGS_PROF
-LCTAGS_PROF_OP = --lctags-prof
+LCTAGS_PROF_OP := --lctags-prof
endif
-LCTAGS_LOCKLOG=y
+LCTAGS_LOCKLOG := y
ifdef LCTAGS_LOCKLOG
-LOCKLOG = --lctags-lockLog
+LOCKLOG := --lctags-lockLog
endif
ifdef LCTAGS_SERVER_ON
-LCTAGS_SERVER=--lctags-srv
+LCTAGS_SERVER := --lctags-srv
endif
-LUA_LIB:=$(addprefix $(NDIR)/,$(LUA_LIB))
+LUA_LIB := $(addprefix $(NDIR)/,$(LUA_LIB))
-LCTAGS_LUA=lctags/lctags.lua
+LCTAGS_LUA := lctags/lctags.lua
-#OPT_OP = -O3
+#OPT_OP := -O3
-IF_LUA = libclanglua/if.lua
-IFC_LUA = libclanglua/ifc.lua
-COREBASE_SO = libclanglua/coreBase.$(SO)
-CORE_SO = libclanglua/core.$(SO)
+IF_LUA := libclanglua/if.lua
+IFC_LUA := libclanglua/ifc.lua
+COREBASE_SO := libclanglua/coreBase.$(SO)
+CORE_SO := libclanglua/core.$(SO)
-LUA_DIR_SCRIPT='for path in string.gmatch( package.path...
-LUA_DIR_LIB="for path in string.gmatch( package.cpath, ...
+LUA_DIR_SCRIPT := 'for path in string.gmatch( package.p...
+LUA_DIR_LIB := "for path in string.gmatch( package.c...
ifneq ($(LUA_DIR),)
-TARGET_LUA = $(LUA_COMMAND)
+TARGET_LUA := $(LUA_COMMAND)
endif
all:
@@ -254,11 +278,11 @@ test-simple:
ifdef BATCH
-BATCH_OP=--lctags-only-reg
+BATCH_OP := --lctags-only-reg
endif
ifeq ($(INDIV),y)
-INDIV_OP=--lctags-indiv
+INDIV_OP := --lctags-indiv
endif
++ ビルド(lctags のトップディレクトリに戻ってから)
$ make build
成功すると、以下のファイルが出来る
src/lsqlite3.so
src/lctags/Helper
src/lctags/Helper.so
src/lctags/core.so
src/lctags/coreBase.so
//=======================================================...
** 実行ファイルに PATH を通す [#ab952543]
- make で生成された実行ファイルと共有ライブラリを、1箇所...
-- 或いは、パッケージ管理システムで構築されている環境では...
//=======================================================...
** emacs から使う [#o7c56a8d]
+ lctags を emacs から使う為の lisp は、lctags のリポジト...
++ リポジトリ内の src/lisp を、emacs が load 出来る場所に...
(add-to-list 'load-path "hoge/lctags/src/lisp") t)
++ src/lisp/lctags.el を load する。
(require 'lctags)
+ これらを使えるようにするために、 [[helm>Editor/emacs#he...
//=======================================================...
** 参考リンク [#lefcf64d]
- [[ifritJP/lctags - GitHub>https://github.com/ifritJP/lc...
- [[lctags で C 言語の関数コールを簡単に - 公開技術情報>h...
終了行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#of67ad55]
#contents();
/////////////////////////////////////////////////////////...
* lctags [#jfb0b04c]
//=======================================================...
** 環境構築 [#k8dbdfff]
+ コードの取得
$ git clone https://github.com/ifritJP/lctags.git
+ 追加パッケージのインストール
-- swig (ビルドに必要)
-- liblua50-dev
-- lua5.3
-- luajit
-- liblua5.3-dev
-- libssl-dev
+ 他モジュールのコードを取得・展開
$ cd lctags/external
$ curl http://lua.sqlite.org/index.cgi/zip/lsqlite3_fsl0...
$ unzip luasqlite3.zip
$ cp -Rfdp lsqlite3_fsl09x/ luasqlite3/
$ curl https://www.lua.org/ftp/lua-5.3.4.tar.gz -o lua/l...
$ tar -xvzf lua.tar.gz
$ mv lua-5.3.4 lua/
+ ビルド
++ src/makefile の修正
diff --git a/src/makefile b/src/makefile
index d3dde80..9a92a49 100644
--- a/src/makefile
+++ b/src/makefile
@@ -1,128 +1,152 @@
NDIR=$(shell pwd)
-INST_DIR=/usr/local/bin
+INST_DIR := /usr/local/bin
-PROXY=
+PROXY :=
-SWIG=swig
+SWIG := swig
INSTALL=/usr/bin/install -c
-SO=so
-## cygwin
-#SO=dll
+LUA_VER := 5.3
+# LUA_VER := 5.2
+# LUA_VER := 5.1
-####### customize Lua environment ######
+LUAJIT_VER := 2.0.4
+# LUAJIT_VER := $(shell luajit -v | awk '{print $2;}')
+
+CLANG_VER := 7
+# CLANG_VER=3.8
+
+UNAME := $(shell uname -a)
+ifeq ($(filter Darwin,$(UNAME)),Darwin)
+OS := mac
+else
+ifeq ($(filter Linux,$(UNAME)),Linux)
+OS := linux
+else
+ifeq ($(filter MINGW,$(UNAME)),Cygwin)
+OS := cygwin
+else
+$(info Your platform $(UNAME) is not supported.)
+endif
+endif
+endif
+ifeq ($(OS),cygwin)
## cygwin
-# LUA_COMMAND=lua
-# LUA_INC=/usr/include
-# LUA_LDFLAGS=
-# LUA_SO=-llua
+SO := dll
+else
+SO := so
+endif
-# LUA_COMMAND=lua5.1
-# LUA_INC=/usr/include/lua5.1
-# LUA_LDFLAGS=
-# LUA_SO=-llua5.1
+####### customize Lua environment ######
+ifeq ($(OS),cygwin)
+## cygwin
+LUA_COMMAND := lua
+LUA_INC := /usr/include
+LUA_LDFLAGS :=
+LUA_SO := -llua
-LUA_COMMAND=lua5.3
-LUA_INC=/usr/include/lua5.3
-LUA_LDFLAGS=
-LUA_SO=-llua5.3
+else
+LUA_COMMAND := lua$(LUA_VER)
+LUA_INC := /usr/include/lua$(LUA_VER)
+LUA_LDFLAGS :=
+LUA_SO := -llua$(LUA_VER)
+endif
-# LUA_COMMAND=luajit
-# LUA_INC=/usr/include/luajit-2.0
-# LUA_LDFLAGS=
-# LUA_SO=-lluajit-5.1
+# LUA_COMMAND := luajit
+# LUA_INC := /usr/include/luajit-2.0
+# LUA_LDFLAGS :=
+# LUA_SO := -lluajit-5.1
-# LUA_COMMAND=./clanglua
-# LUA_CFLAGS=-fPIC -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2 -I...
-# LUA_DIR=../external/lua/lua-5.3.4/src
-# LUA_INC=$(NDIR)/$(LUA_DIR)
-# LUA_LIB=$(LUA_DIR)/liblua.a
-# LUA_INST_DIR=/usr/local/bin
-# LUA_LIB_DIR=/usr/local/lib/lua/5.3
-# LUA_LDFLAGS=-lncursesw
+# LUA_COMMAND := ./clanglua
+# LUA_CFLAGS := -fPIC -DLUA_COMPAT_5_1 -DLUA_COMPAT_5...
+# LUA_DIR := ../external/lua/lua-5.3.4/src
+# LUA_INC := $(NDIR)/$(LUA_DIR)
+# LUA_LIB := $(LUA_DIR)/liblua.a
+# LUA_INST_DIR := /usr/local/bin
+# LUA_LIB_DIR := /usr/local/lib/lua/5.3
+# LUA_LDFLAGS := -lncursesw
-TEST_LUA_DIR=../external/lua/lua-5.3.4/src
+TEST_LUA_DIR := ../external/lua/lua-5.3.4/src
-LUA_URL="https://www.lua.org/ftp/lua-5.3.4.tar.gz"
+LUA_URL := "https://www.lua.org/ftp/lua-5.3.4.tar.gz"
-LUA_COMMAND_FULL:=$(shell python -c 'import os; print( ...
+LUA_COMMAND_FULL := $(shell python -c 'import os; print...
####### customize libclang environment ######
+ifeq ($(OS),cygwin)
## cygwin
-# LIBCLANG_INC=/usr/include
-# LIBCLANG_LIB=/lib
-# LIBCLANG_STD_INC=/lib/clang/5.0.1/include
-
-
-CLANG_VER=3.8
-LIBCLANG_INC=/usr/lib/llvm-$(CLANG_VER)/include
-LIBCLANG_LIB=/usr/lib/llvm-$(CLANG_VER)/lib
-LIBCLANG_STD_INC=$(shell find /usr/lib/llvm-$(CLANG_VER...
+LIBCLANG_INC := /usr/include
+LIBCLANG_LIB := /lib
+LIBCLANG_STD_INC := /lib/clang/5.0.1/include
-# LIBCLANG_DIR=/proj/next/clang/r34-final
-# LIBCLANG_INC=../external/clang/r390/llvm/tools/clang/...
-# LIBCLANG_STD_INC=../external/clang/r390/build/lib/cla...
-# LIBCLANG_LIB=/usr/lib/llvm-$(CLANG_VER)/lib
+else
+LIBCLANG_INC := /usr/lib/llvm-$(CLANG_VER)/include
+LIBCLANG_LIB := /usr/lib/llvm-$(CLANG_VER)/lib
+LIBCLANG_STD_INC := $(shell find /usr/lib/llvm-$(CLANG_...
-# LIBCLANG_SO=-lclang
+# LIBCLANG_DIR := /proj/next/clang/r34-final
+# LIBCLANG_INC := ../external/clang/r390/llvm/tools...
+# LIBCLANG_STD_INC := ../external/clang/r390/build/lib/...
+# LIBCLANG_LIB := /usr/lib/llvm-$(CLANG_VER)/lib
+endif
-LIBCLANG_SO=-lclang
+LIBCLANG_SO := -lclang
####### customize luasqlite3 environment ######
# If you don't have luasqlite3, you must customize this...
# http://lua.sqlite.org/index.cgi/index
-LUASQLITE3_WORKDIR=../external/luasqlite3
-LUASQLITE3_DIR=$(LUASQLITE3_WORKDIR)/lsqlite3_fsl09x
-#USE_BDB_SQLITE=y
+LUASQLITE3_WORKDIR := ../external/luasqlite3
+LUASQLITE3_DIR := $(LUASQLITE3_WORKDIR)/lsqlite3_fs...
+#USE_BDB_SQLITE := y
-LUASQLITE3_URL="http://lua.sqlite.org/index.cgi/zip/lsq...
+LUASQLITE3_URL := "http://lua.sqlite.org/index.cgi/zip/...
####### make rules ######
-LUA_LIB_DIR=$(shell echo $(LUA_DIR_LIB) | $(LUA_COMMAND...
-LUA_MOD_DIR=$(shell echo $(LUA_DIR_SCRIPT) | $(LUA_COMM...
+LUA_LIB_DIR := $(shell echo $(LUA_DIR_LIB) | $(LUA_COMM...
+LUA_MOD_DIR := $(shell echo $(LUA_DIR_SCRIPT) | $(LUA_C...
-LCTAGS_LOG=4
-JOBS=3
+LCTAGS_LOG := 4
+JOBS := 3
ifdef LCTAGS_PROF
-LCTAGS_PROF_OP = --lctags-prof
+LCTAGS_PROF_OP := --lctags-prof
endif
-LCTAGS_LOCKLOG=y
+LCTAGS_LOCKLOG := y
ifdef LCTAGS_LOCKLOG
-LOCKLOG = --lctags-lockLog
+LOCKLOG := --lctags-lockLog
endif
ifdef LCTAGS_SERVER_ON
-LCTAGS_SERVER=--lctags-srv
+LCTAGS_SERVER := --lctags-srv
endif
-LUA_LIB:=$(addprefix $(NDIR)/,$(LUA_LIB))
+LUA_LIB := $(addprefix $(NDIR)/,$(LUA_LIB))
-LCTAGS_LUA=lctags/lctags.lua
+LCTAGS_LUA := lctags/lctags.lua
-#OPT_OP = -O3
+#OPT_OP := -O3
-IF_LUA = libclanglua/if.lua
-IFC_LUA = libclanglua/ifc.lua
-COREBASE_SO = libclanglua/coreBase.$(SO)
-CORE_SO = libclanglua/core.$(SO)
+IF_LUA := libclanglua/if.lua
+IFC_LUA := libclanglua/ifc.lua
+COREBASE_SO := libclanglua/coreBase.$(SO)
+CORE_SO := libclanglua/core.$(SO)
-LUA_DIR_SCRIPT='for path in string.gmatch( package.path...
-LUA_DIR_LIB="for path in string.gmatch( package.cpath, ...
+LUA_DIR_SCRIPT := 'for path in string.gmatch( package.p...
+LUA_DIR_LIB := "for path in string.gmatch( package.c...
ifneq ($(LUA_DIR),)
-TARGET_LUA = $(LUA_COMMAND)
+TARGET_LUA := $(LUA_COMMAND)
endif
all:
@@ -254,11 +278,11 @@ test-simple:
ifdef BATCH
-BATCH_OP=--lctags-only-reg
+BATCH_OP := --lctags-only-reg
endif
ifeq ($(INDIV),y)
-INDIV_OP=--lctags-indiv
+INDIV_OP := --lctags-indiv
endif
++ ビルド(lctags のトップディレクトリに戻ってから)
$ make build
成功すると、以下のファイルが出来る
src/lsqlite3.so
src/lctags/Helper
src/lctags/Helper.so
src/lctags/core.so
src/lctags/coreBase.so
//=======================================================...
** 実行ファイルに PATH を通す [#ab952543]
- make で生成された実行ファイルと共有ライブラリを、1箇所...
-- 或いは、パッケージ管理システムで構築されている環境では...
//=======================================================...
** emacs から使う [#o7c56a8d]
+ lctags を emacs から使う為の lisp は、lctags のリポジト...
++ リポジトリ内の src/lisp を、emacs が load 出来る場所に...
(add-to-list 'load-path "hoge/lctags/src/lisp") t)
++ src/lisp/lctags.el を load する。
(require 'lctags)
+ これらを使えるようにするために、 [[helm>Editor/emacs#he...
//=======================================================...
** 参考リンク [#lefcf64d]
- [[ifritJP/lctags - GitHub>https://github.com/ifritJP/lc...
- [[lctags で C 言語の関数コールを簡単に - 公開技術情報>h...
ページ名: