2019-10-31 09:27:28 +08:00
|
|
|
#
|
|
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
|
|
# this work for additional information regarding copyright ownership.
|
|
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
# (the "License"); you may not use this file except in compliance with
|
|
|
|
# the License. You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
#
|
|
|
|
|
2019-05-31 21:06:55 +08:00
|
|
|
INST_PREFIX ?= /usr
|
|
|
|
INST_LIBDIR ?= $(INST_PREFIX)/lib64/lua/5.1
|
|
|
|
INST_LUADIR ?= $(INST_PREFIX)/share/lua/5.1
|
2019-06-03 11:48:46 +08:00
|
|
|
INST_BINDIR ?= /usr/bin
|
2019-05-31 21:06:55 +08:00
|
|
|
INSTALL ?= install
|
2019-07-05 19:01:20 +08:00
|
|
|
UNAME ?= $(shell uname)
|
2021-01-20 09:47:09 +08:00
|
|
|
OR_EXEC ?= $(shell which openresty || which nginx)
|
2021-03-08 17:13:39 +08:00
|
|
|
LUAROCKS ?= luarocks
|
2019-07-11 07:41:42 +08:00
|
|
|
LUAROCKS_VER ?= $(shell luarocks --version | grep -E -o "luarocks [0-9]+.")
|
2021-02-01 10:51:34 +08:00
|
|
|
OR_PREFIX ?= $(shell $(OR_EXEC) -V 2>&1 | grep -Eo 'prefix=(.*)/nginx\s+' | grep -Eo '/.*/')
|
2021-02-20 20:28:21 +08:00
|
|
|
OPENSSL_PREFIX ?= $(addprefix $(OR_PREFIX), openssl)
|
|
|
|
|
|
|
|
# OpenResty 1.17.8 or higher version uses openssl111 as the openssl dirname.
|
|
|
|
ifeq ($(shell test -d $(addprefix $(OR_PREFIX), openssl111) && echo -n yes), yes)
|
|
|
|
OPENSSL_PREFIX=$(addprefix $(OR_PREFIX), openssl111)
|
|
|
|
endif
|
2019-05-06 18:17:29 +08:00
|
|
|
|
2021-03-08 17:13:39 +08:00
|
|
|
ifeq ($(UNAME), Darwin)
|
2021-05-20 19:22:46 +08:00
|
|
|
LUAROCKS=luarocks --lua-dir=$(HOMEBREW_PREFIX)/opt/lua@5.1
|
|
|
|
ifeq ($(shell test -d $(HOMEBREW_PREFIX)/opt/openresty-openssl && echo yes), yes)
|
|
|
|
OPENSSL_PREFIX=$(HOMEBREW_PREFIX)/opt/openresty-openssl
|
2021-03-08 17:13:39 +08:00
|
|
|
endif
|
2021-05-20 19:22:46 +08:00
|
|
|
ifeq ($(shell test -d $(HOMEBREW_PREFIX)/opt/openresty-openssl111 && echo yes), yes)
|
|
|
|
OPENSSL_PREFIX=$(HOMEBREW_PREFIX)/opt/openresty-openssl111
|
2021-03-08 17:13:39 +08:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2021-03-23 20:10:57 +08:00
|
|
|
LUAROCKS_SERVER_OPT =
|
|
|
|
ifneq ($(LUAROCKS_SERVER), )
|
|
|
|
LUAROCKS_SERVER_OPT = --server ${LUAROCKS_SERVER}
|
|
|
|
endif
|
|
|
|
|
2020-10-22 13:11:45 +08:00
|
|
|
SHELL := /bin/bash -o pipefail
|
|
|
|
|
|
|
|
VERSION ?= latest
|
|
|
|
RELEASE_SRC = apache-apisix-${VERSION}-src
|
2019-06-11 12:21:49 +08:00
|
|
|
|
|
|
|
.PHONY: default
|
|
|
|
default:
|
2019-11-25 13:09:32 +08:00
|
|
|
ifeq ($(OR_EXEC), )
|
2019-11-26 21:24:45 +08:00
|
|
|
ifeq ("$(wildcard /usr/local/openresty-debug/bin/openresty)", "")
|
2021-01-29 23:57:46 +08:00
|
|
|
@echo "WARNING: OpenResty not found. You have to install OpenResty and add the binary file to PATH before install Apache APISIX."
|
2019-11-25 13:09:32 +08:00
|
|
|
exit 1
|
2021-01-29 23:57:46 +08:00
|
|
|
else
|
|
|
|
OR_EXEC=/usr/local/openresty-debug/bin/openresty
|
2019-11-25 13:09:32 +08:00
|
|
|
endif
|
2019-11-26 21:24:45 +08:00
|
|
|
endif
|
2019-06-11 12:21:49 +08:00
|
|
|
|
2020-03-17 22:24:03 +08:00
|
|
|
LUAJIT_DIR ?= $(shell ${OR_EXEC} -V 2>&1 | grep prefix | grep -Eo 'prefix=(.*)/nginx\s+--' | grep -Eo '/.*/')luajit
|
2019-06-11 12:21:49 +08:00
|
|
|
|
2020-07-29 19:23:49 +08:00
|
|
|
### help: Show Makefile rules
|
2019-05-06 18:17:29 +08:00
|
|
|
.PHONY: help
|
2019-11-26 21:24:45 +08:00
|
|
|
help: default
|
2019-05-06 18:17:29 +08:00
|
|
|
@echo Makefile rules:
|
|
|
|
@echo
|
|
|
|
@grep -E '^### [-A-Za-z0-9_]+:' Makefile | sed 's/###/ /'
|
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### deps: Installation dependencies
|
2019-11-12 16:38:23 +08:00
|
|
|
.PHONY: deps
|
2019-11-25 13:09:32 +08:00
|
|
|
deps: default
|
2020-03-10 15:16:14 +08:00
|
|
|
ifeq ($(LUAROCKS_VER),luarocks 3.)
|
2021-02-03 22:38:27 +08:00
|
|
|
mkdir -p ~/.luarocks
|
|
|
|
ifeq ($(shell whoami),root)
|
2021-03-08 17:13:39 +08:00
|
|
|
$(LUAROCKS) config variables.OPENSSL_LIBDIR $(addprefix $(OPENSSL_PREFIX), /lib)
|
|
|
|
$(LUAROCKS) config variables.OPENSSL_INCDIR $(addprefix $(OPENSSL_PREFIX), /include)
|
2021-02-03 22:38:27 +08:00
|
|
|
else
|
2021-03-08 17:13:39 +08:00
|
|
|
$(LUAROCKS) config --local variables.OPENSSL_LIBDIR $(addprefix $(OPENSSL_PREFIX), /lib)
|
|
|
|
$(LUAROCKS) config --local variables.OPENSSL_INCDIR $(addprefix $(OPENSSL_PREFIX), /include)
|
2021-02-03 22:38:27 +08:00
|
|
|
endif
|
2021-03-23 20:10:57 +08:00
|
|
|
$(LUAROCKS) install rockspec/apisix-master-0.rockspec --tree=deps --only-deps --local $(LUAROCKS_SERVER_OPT)
|
2019-07-05 19:01:20 +08:00
|
|
|
else
|
2021-02-01 10:51:34 +08:00
|
|
|
@echo "WARN: You're not using LuaRocks 3.x, please add the following items to your LuaRocks config file:"
|
|
|
|
@echo "variables = {"
|
2021-02-20 20:28:21 +08:00
|
|
|
@echo " OPENSSL_LIBDIR=$(addprefix $(OPENSSL_PREFIX), /lib)"
|
|
|
|
@echo " OPENSSL_INCDIR=$(addprefix $(OPENSSL_PREFIX), /include)"
|
2021-02-01 10:51:34 +08:00
|
|
|
@echo "}"
|
2021-03-23 20:10:57 +08:00
|
|
|
luarocks install rockspec/apisix-master-0.rockspec --tree=deps --only-deps --local $(LUAROCKS_SERVER_OPT)
|
2019-07-05 19:01:20 +08:00
|
|
|
endif
|
2019-11-12 16:38:23 +08:00
|
|
|
|
|
|
|
|
2020-01-07 20:17:47 +08:00
|
|
|
### utils: Installation tools
|
2019-11-12 16:38:23 +08:00
|
|
|
.PHONY: utils
|
|
|
|
utils:
|
2019-11-21 09:23:16 +08:00
|
|
|
ifeq ("$(wildcard utils/lj-releng)", "")
|
2020-10-10 20:49:14 +08:00
|
|
|
wget -P utils https://raw.githubusercontent.com/iresty/openresty-devel-utils/master/lj-releng
|
2019-09-23 05:54:37 +08:00
|
|
|
chmod a+x utils/lj-releng
|
2019-09-23 11:14:49 +08:00
|
|
|
endif
|
2021-01-18 10:27:28 +08:00
|
|
|
ifeq ("$(wildcard utils/reindex)", "")
|
|
|
|
wget -P utils https://raw.githubusercontent.com/iresty/openresty-devel-utils/master/reindex
|
|
|
|
chmod a+x utils/reindex
|
|
|
|
endif
|
2019-06-15 11:22:48 +08:00
|
|
|
|
|
|
|
|
2021-01-18 10:27:28 +08:00
|
|
|
### lint: Lint source code
|
2019-11-21 09:23:16 +08:00
|
|
|
.PHONY: lint
|
|
|
|
lint: utils
|
2020-02-18 15:54:30 +08:00
|
|
|
./utils/check-lua-code-style.sh
|
2021-01-18 10:27:28 +08:00
|
|
|
./utils/check-test-code-style.sh
|
2019-06-16 07:32:25 +08:00
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### init: Initialize the runtime environment
|
2019-07-05 19:01:20 +08:00
|
|
|
.PHONY: init
|
2019-11-25 13:09:32 +08:00
|
|
|
init: default
|
2019-07-05 19:01:20 +08:00
|
|
|
./bin/apisix init
|
|
|
|
./bin/apisix init_etcd
|
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### run: Start the apisix server
|
2019-05-06 18:17:29 +08:00
|
|
|
.PHONY: run
|
2019-11-25 13:09:32 +08:00
|
|
|
run: default
|
2021-01-19 12:01:07 +08:00
|
|
|
./bin/apisix start
|
2019-05-06 18:17:29 +08:00
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### stop: Stop the apisix server
|
2019-05-06 18:17:29 +08:00
|
|
|
.PHONY: stop
|
2019-11-25 13:09:32 +08:00
|
|
|
stop: default
|
2021-01-29 11:19:46 +08:00
|
|
|
./bin/apisix stop
|
2019-05-06 18:17:29 +08:00
|
|
|
|
|
|
|
|
2020-02-09 20:43:30 +08:00
|
|
|
### verify: Verify the configuration of apisix server
|
|
|
|
.PHONY: verify
|
|
|
|
verify: default
|
|
|
|
$(OR_EXEC) -p $$PWD/ -c $$PWD/conf/nginx.conf -t
|
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### clean: Remove generated files
|
2019-05-06 18:17:29 +08:00
|
|
|
.PHONY: clean
|
|
|
|
clean:
|
|
|
|
rm -rf logs/
|
|
|
|
|
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### reload: Reload the apisix server
|
2019-05-06 18:17:29 +08:00
|
|
|
.PHONY: reload
|
2019-11-25 13:09:32 +08:00
|
|
|
reload: default
|
2019-07-10 11:32:16 +08:00
|
|
|
$(OR_EXEC) -p $$PWD/ -c $$PWD/conf/nginx.conf -s reload
|
2019-05-31 21:06:55 +08:00
|
|
|
|
|
|
|
|
2020-07-29 19:23:49 +08:00
|
|
|
### install: Install the apisix (only for luarocks)
|
2019-05-31 21:06:55 +08:00
|
|
|
.PHONY: install
|
2020-05-26 21:26:52 +08:00
|
|
|
install: default
|
2020-04-20 09:09:14 +08:00
|
|
|
$(INSTALL) -d /usr/local/apisix/
|
2019-06-05 15:06:28 +08:00
|
|
|
$(INSTALL) -d /usr/local/apisix/logs/
|
2019-06-22 10:44:07 +08:00
|
|
|
$(INSTALL) -d /usr/local/apisix/conf/cert
|
2019-06-05 15:06:28 +08:00
|
|
|
$(INSTALL) conf/mime.types /usr/local/apisix/conf/mime.types
|
2019-06-04 21:16:23 +08:00
|
|
|
$(INSTALL) conf/config.yaml /usr/local/apisix/conf/config.yaml
|
2020-08-18 20:18:55 +08:00
|
|
|
$(INSTALL) conf/config-default.yaml /usr/local/apisix/conf/config-default.yaml
|
2021-02-26 10:05:41 +08:00
|
|
|
$(INSTALL) conf/debug.yaml /usr/local/apisix/conf/debug.yaml
|
2020-12-16 18:09:52 +08:00
|
|
|
$(INSTALL) conf/cert/* /usr/local/apisix/conf/cert/
|
2019-06-04 20:53:58 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix
|
|
|
|
$(INSTALL) apisix/*.lua $(INST_LUADIR)/apisix/
|
2019-10-08 16:46:53 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/admin
|
|
|
|
$(INSTALL) apisix/admin/*.lua $(INST_LUADIR)/apisix/admin/
|
2019-06-05 15:06:28 +08:00
|
|
|
|
2020-06-19 12:46:20 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/balancer
|
|
|
|
$(INSTALL) apisix/balancer/*.lua $(INST_LUADIR)/apisix/balancer/
|
|
|
|
|
2020-12-18 16:40:17 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/control
|
|
|
|
$(INSTALL) apisix/control/*.lua $(INST_LUADIR)/apisix/control/
|
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/core
|
|
|
|
$(INSTALL) apisix/core/*.lua $(INST_LUADIR)/apisix/core/
|
2019-10-08 16:46:53 +08:00
|
|
|
|
2021-02-25 09:42:31 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/core/dns
|
|
|
|
$(INSTALL) apisix/core/dns/*.lua $(INST_LUADIR)/apisix/core/dns
|
|
|
|
|
2020-10-31 22:56:42 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/cli
|
|
|
|
$(INSTALL) apisix/cli/*.lua $(INST_LUADIR)/apisix/cli/
|
|
|
|
|
2020-10-11 12:27:03 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/discovery
|
|
|
|
$(INSTALL) apisix/discovery/*.lua $(INST_LUADIR)/apisix/discovery/
|
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/http
|
|
|
|
$(INSTALL) apisix/http/*.lua $(INST_LUADIR)/apisix/http/
|
2019-10-08 16:46:53 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/http/router
|
|
|
|
$(INSTALL) apisix/http/router/*.lua $(INST_LUADIR)/apisix/http/router/
|
2019-07-12 20:26:36 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins
|
|
|
|
$(INSTALL) apisix/plugins/*.lua $(INST_LUADIR)/apisix/plugins/
|
2019-09-06 15:51:50 +08:00
|
|
|
|
2021-04-23 09:16:51 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/ext-plugin
|
2021-04-29 11:07:05 +08:00
|
|
|
$(INSTALL) apisix/plugins/ext-plugin/*.lua $(INST_LUADIR)/apisix/plugins/ext-plugin/
|
2021-04-23 09:16:51 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/grpc-transcode
|
|
|
|
$(INSTALL) apisix/plugins/grpc-transcode/*.lua $(INST_LUADIR)/apisix/plugins/grpc-transcode/
|
2019-08-06 18:06:42 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/limit-count
|
|
|
|
$(INSTALL) apisix/plugins/limit-count/*.lua $(INST_LUADIR)/apisix/plugins/limit-count/
|
2019-08-22 14:40:56 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/prometheus
|
|
|
|
$(INSTALL) apisix/plugins/prometheus/*.lua $(INST_LUADIR)/apisix/plugins/prometheus/
|
2019-10-08 13:15:48 +08:00
|
|
|
|
2020-11-04 09:49:14 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/serverless
|
|
|
|
$(INSTALL) apisix/plugins/serverless/*.lua $(INST_LUADIR)/apisix/plugins/serverless/
|
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/zipkin
|
|
|
|
$(INSTALL) apisix/plugins/zipkin/*.lua $(INST_LUADIR)/apisix/plugins/zipkin/
|
2019-06-04 20:53:58 +08:00
|
|
|
|
2020-10-11 12:27:03 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/ssl/router
|
|
|
|
$(INSTALL) apisix/ssl/router/*.lua $(INST_LUADIR)/apisix/ssl/router/
|
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/stream/plugins
|
|
|
|
$(INSTALL) apisix/stream/plugins/*.lua $(INST_LUADIR)/apisix/stream/plugins/
|
2019-10-08 16:46:53 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/stream/router
|
|
|
|
$(INSTALL) apisix/stream/router/*.lua $(INST_LUADIR)/apisix/stream/router/
|
2019-10-08 16:46:53 +08:00
|
|
|
|
2020-03-31 23:23:29 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/utils
|
|
|
|
$(INSTALL) apisix/utils/*.lua $(INST_LUADIR)/apisix/utils/
|
2020-03-27 07:34:08 +08:00
|
|
|
|
2019-06-04 10:40:45 +08:00
|
|
|
$(INSTALL) README.md $(INST_CONFDIR)/README.md
|
2019-06-04 10:32:14 +08:00
|
|
|
$(INSTALL) bin/apisix $(INST_BINDIR)/apisix
|
2021-02-16 12:14:46 +08:00
|
|
|
|
2020-11-19 00:04:01 +08:00
|
|
|
$(INSTALL) -d $(INST_LUADIR)/apisix/plugins/slslog
|
|
|
|
$(INSTALL) apisix/plugins/slslog/*.lua $(INST_LUADIR)/apisix/plugins/slslog/
|
2019-06-03 16:24:38 +08:00
|
|
|
|
2019-07-15 08:46:10 +08:00
|
|
|
|
2019-11-21 09:23:16 +08:00
|
|
|
### test: Run the test case
|
2021-05-18 14:27:42 +08:00
|
|
|
.PHONY: test
|
2019-06-03 16:24:38 +08:00
|
|
|
test:
|
2020-12-03 10:39:32 +08:00
|
|
|
git submodule update --init --recursive
|
2019-07-10 11:32:16 +08:00
|
|
|
prove -I../test-nginx/lib -I./ -r -s t/
|
2019-11-21 09:23:16 +08:00
|
|
|
|
|
|
|
### license-check: Check Lua source code for Apache License
|
|
|
|
.PHONY: license-check
|
|
|
|
license-check:
|
2021-03-29 23:34:01 +08:00
|
|
|
ifeq ("$(wildcard ci/openwhisk-utilities/scancode/scanCode.py)", "")
|
|
|
|
git clone https://github.com/apache/openwhisk-utilities.git ci/openwhisk-utilities
|
|
|
|
cp ci/ASF* ci/openwhisk-utilities/scancode/
|
2019-11-21 09:23:16 +08:00
|
|
|
endif
|
2021-03-29 23:34:01 +08:00
|
|
|
ci/openwhisk-utilities/scancode/scanCode.py --config ci/ASF-Release.cfg ./
|
2019-11-21 09:23:16 +08:00
|
|
|
|
2021-05-18 14:27:42 +08:00
|
|
|
.PHONY: release-src
|
2021-02-19 09:09:33 +08:00
|
|
|
release-src: compress-tar
|
|
|
|
gpg --batch --yes --armor --detach-sig $(RELEASE_SRC).tgz
|
|
|
|
shasum -a 512 $(RELEASE_SRC).tgz > $(RELEASE_SRC).tgz.sha512
|
|
|
|
|
|
|
|
mkdir -p release
|
|
|
|
mv $(RELEASE_SRC).tgz release/$(RELEASE_SRC).tgz
|
|
|
|
mv $(RELEASE_SRC).tgz.asc release/$(RELEASE_SRC).tgz.asc
|
|
|
|
mv $(RELEASE_SRC).tgz.sha512 release/$(RELEASE_SRC).tgz.sha512
|
|
|
|
|
2021-05-18 14:27:42 +08:00
|
|
|
.PHONY: compress-tar
|
2021-02-19 09:09:33 +08:00
|
|
|
compress-tar:
|
2020-10-22 13:11:45 +08:00
|
|
|
tar -zcvf $(RELEASE_SRC).tgz \
|
2021-02-09 20:07:59 +08:00
|
|
|
./apisix \
|
|
|
|
./bin \
|
|
|
|
./conf \
|
2021-03-02 23:33:40 +08:00
|
|
|
./rockspec/apisix-$(VERSION)-*.rockspec \
|
|
|
|
./rockspec/apisix-master-0.rockspec \
|
2021-02-09 20:07:59 +08:00
|
|
|
LICENSE \
|
|
|
|
Makefile \
|
|
|
|
NOTICE \
|
|
|
|
*.md
|