加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

外部库依赖以及 编译

发布时间:2020-12-14 01:05:59 所属栏目:百科 来源:网络整理
导读:目录树: .├── Makefile├── outlib└── src ├── pkg │ ├── http-parser-2.7.1.tar.gz │ ├── jansson-2.9.tar.gz │ ├── json2pb-master-master.zip │ ├── libbacktrace-master.zip │ ├── libunwind-1.1.tar.gz │ ├── php-5

目录树:

.
├── Makefile
├── outlib
└── src
    ├── pkg
    │ ├── http-parser-2.7.1.tar.gz
    │ ├── jansson-2.9.tar.gz
    │ ├── json2pb-master-master.zip
    │ ├── libbacktrace-master.zip
    │ ├── libunwind-1.1.tar.gz
    │ ├── php-5.6.25.tar.gz
    │ ├── protobuf-2.5.0.tar.gz
    │ ├── Python-2.7.12.tgz
    │ ├── setuptools-32.0.0.tar.gz
    │ └── zookeeper-3.4.8.tar.gz
    └── tmp

Makefile 文件:

OUTLIBDIR=$(shell pwd)
ZOOKEEPER_TAR_PATH=$(OUTLIBDIR)/src/pkg/zookeeper-3.4.8.tar.gz
JANSSON_TAR_PATH=$(OUTLIBDIR)/src/pkg/jansson-2.9.tar.gz
LIBUNWIND_TAR_PATH=$(OUTLIBDIR)/src/pkg/libunwind-1.1.tar.gz
LIBBACKTRACE_TAR_PATH=$(OUTLIBDIR)/src/pkg/libbacktrace-master.zip
HTTP_PARSER_TAR_PATH=$(OUTLIBDIR)/src/pkg/http-parser-2.7.1.tar.gz
JSON2PB_TAR_PATH=$(OUTLIBDIR)/src/pkg/json2pb-master-master.zip
PHP_TAR_PATH=$(OUTLIBDIR)/src/pkg/php-5.6.25.tar.gz
PROTOBUF_TAR_PATH=$(OUTLIBDIR)/src/pkg/protobuf-2.5.0.tar.gz
PYTHON_TAR_PATH=$(OUTLIBDIR)/src/pkg/Python-2.7.12.tgz
SETUPTOOLS_TAR_PATH=$(OUTLIBDIR)/src/pkg/setuptools-32.0.0.tar.gz
R3C_TAR_PATH=$(OUTLIBDIR)/src/pkg/r3c-master.zip

all: zookeeper jansson libunwind libbacktrace json2pb python setuptools http_parser protobuflib php r3c

zookeeper:
	if [ ! -d "./outlib/zookeeper" ]; then 
		-rm ./outlib/zookeeper -rf; 
		mkdir -p ./outlib/zookeeper; 
		tar -zxvf $(ZOOKEEPER_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/zookeeper*/src/c; 
		./configure --prefix=$(OUTLIBDIR)/outlib/zookeeper; make; make install; 
	fi

jansson:
	if [ ! -d "./outlib/jansson" ]; then 
		-rm ./outlib/jansson -rf; 
		mkdir -p ./outlib/jansson; 
		tar zxvf $(JANSSON_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/jansson*/; 
		./configure --prefix=$(OUTLIBDIR)/outlib/jansson; make; make install; 
	fi

libunwind:
	if [ ! -d "./outlib/libunwind" ]; then 
		-rm ./outlib/libunwind -rf; 
		mkdir -p ./outlib/libunwind; 
		tar zxvf $(LIBUNWIND_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/libunwind*; 
		./configure --prefix=$(OUTLIBDIR)/outlib/libunwind; make; make install; 
	fi

libbacktrace:
	if [ ! -d "./outlib/libbacktrace" ]; then 
		-rm ./outlib/libbacktrace -rf; 
		mkdir -p ./outlib/libbacktrace; 
		unzip -o $(LIBBACKTRACE_TAR_PATH) -d ./src/tmp/; 
		cd ./src/tmp/libbacktrace*; 
		./configure --prefix=$(OUTLIBDIR)/outlib/libbacktrace; make; make install; 
	fi 

json2pb:
	if [ ! -d "./outlib/json2pb" ]; then 
		mkdir -p ./outlib/json2pb; 
		unzip -o $(JSON2PB_TAR_PATH) -d ./src/tmp/; 
		mv ./src/tmp/json2pb* ./outlib/json2pb; 
	fi

python:
	if [ ! -d "./outlib/python" ]; then 
		mkdir -p ./outlib/python; 
		tar -xvf $(PYTHON_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/Python* ;
		./configure --enable-shared --prefix=$(OUTLIBDIR)/outlib/python; 
		make; make install; 
	fi; 

setuptools: python
	if [ ! -f "./outlib/setuptools" ]; then 
		rm ./outlib/setuptools -rf; 
		mkdir -p ./outlib/setuptools; 
		tar zxvf $(SETUPTOOLS_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/setuptools*; 
		export LD_LIBRARY_PATH=$(OUTLIBDIR)/outlib/python/lib; 
		export PYTHONHOME=$(OUTLIBDIR)/outlib/python; 
		$(OUTLIBDIR)/outlib/python/bin/python bootstrap.py; 
		$(OUTLIBDIR)/outlib/python/bin/python setup.py install; 
		cd -; 
	fi

http_parser:
	if [ ! -d "./outlib/http-parser" ]; then 
		-rm ./outlib/http-parser -rf; 
		tar zxvf $(HTTP_PARSER_TAR_PATH) -C ./src/tmp/; 
		mv ./src/tmp/http-parser* ./outlib/http-parser; 
	fi

php:
	if [ ! -d "./outlib/php" ]; then 
		rm ./outlib/php -rf; 
		tar -zxvf $(PHP_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/php* ;
		./configure --enable-debug --without-pear --disable-xmlreader --disable-xmlwriter --disable-xml --disable-libxml --disable-dom --disable-simplexml --enable-sockets --enable-maintainer-zts --disable-cgi --enable-json --enable-cli --enable-embed --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pdo -- prefix=$(OUTLIBDIR)/outlib/php; 
		make; make install; 
	fi

protobuflib: python setuptools
	@if [ ! -f "./outlib/pb/libprotobuf.a" ]; then 
		tar zxvf $(PROTOBUF_TAR_PATH) -C ./src/tmp/; 
		cd ./src/tmp/protobuf*; 
		./configure CFLAGS=-fPIC CPPFLAGS=-fPIC CXXFLAGS=-fPIC --prefix=$(OUTLIBDIR)/outlib/pb;
		make; make install; 
		/bin/sh ./libtool --tag=CXX   --mode=link g++ -pthread -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -O2 -g -DNDEBUG -pthread  -o protoc src/main.o -lpthread ./src/.libs/libprotoc.a ./src/.libs/libprotobuf.a -lz; 
		export LD_LIBRARY_PATH=$(OUTLIBDIR)/outlib/python/lib; 
		export PYTHONHOME=$(OUTLIBDIR)/outlib/python; 
		$(OUTLIBDIR)/outlib/python/bin/python setup.py build; 
		$(OUTLIBDIR)/outlib/python/bin/python setup.py install; 
		cp $(OUTLIBDIR)/src/tmp/protobuf-*/protoc $(OUTLIBDIR)/outlib/pb; 
	fi

r3c:
	@if [ ! -f "./outlib/r3c" ]; then 
		unzip -o $(R3C_TAR_PATH) -d ./outlib/; 
		mv ./outlib/r3c* ./outlib/r3c; 
		cd ./outlib/r3c/; 
		make libr3c.a; 
	fi

clean:
	rm -rf $(OUTLIBDIR)/outlib/*

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读