From: hasufell Date: Fri Apr 13 18:57:29 UTC 2012 Subject: build system ignore bundled 3rd party sources and assume system libs/headers instead fix install-rules --- Makefile +++ Makefile @@ -13,16 +13,10 @@ CRYPTODIR=deps/luacrypto PREFIX?=/usr/local -BINDIR?=${DESTDIR}${PREFIX}/bin -INCDIR?=${DESTDIR}${PREFIX}/include/luvit -LIBDIR?=${DESTDIR}${PREFIX}/lib/luvit - -OPENSSL_LIBS=$(shell pkg-config openssl --libs 2> /dev/null) -ifeq (${OPENSSL_LIBS},) -USE_SYSTEM_SSL?=0 -else -USE_SYSTEM_SSL?=1 -endif +LIBDIR?=lib +BINDIR_LUVIT?=${PREFIX}/bin +INCDIR_LUVIT?=${PREFIX}/include/luvit +LIBDIR_LUVIT?=${PREFIX}/${LIBDIR}/luvit OS_NAME=$(shell uname -s) MH_NAME=$(shell uname -m) @@ -45,20 +39,28 @@ export Q= MAKEFLAGS+=-e +CC ?= gcc + LDFLAGS+=-L${BUILDDIR} -LIBS += ${ZLIBDIR}/libz.a \ - ${YAJLDIR}/yajl.a \ - ${UVDIR}/uv.a \ - ${LUADIR}/src/libluajit.a \ - -lluvit -lm -ldl -lpthread -ifeq (${USE_SYSTEM_SSL},1) +LIBS += \ + -luv \ + -lyajl \ + -lhttp_parser \ + -lluacrypto \ + -lluvit -ldl -lpthread \ + $(shell pkg-config --libs-only-l lua) \ + $(shell pkg-config --libs-only-l luajit) \ + $(shell pkg-config --libs-only-l zlib) \ + $(shell pkg-config --libs-only-l openssl) + +CPPFLAGS += \ + -I${PREFIX}/include/libuv \ + -I${PREFIX}/include/http-parser \ + -I${PREFIX}/include/yajl + CFLAGS+=-Wall -w CPPFLAGS+=$(shell pkg-config --cflags openssl) LIBS+=${OPENSSL_LIBS} -else -CPPFLAGS+=-I${SSLDIR}/openssl/include -LIBS+=${SSLDIR}/libopenssl.a -endif ifeq (${OS_NAME},Linux) LIBS+=-lrt @@ -86,12 +88,6 @@ CPPFLAGS += -DOPENSSL_NO_SEED CPPFLAGS += -DOPENSSL_NO_SOCK -ifeq (${MH_NAME},x86_64) -CPPFLAGS += -I${SSLDIR}/openssl-configs/x64 -else -CPPFLAGS += -I${SSLDIR}/openssl-configs/ia32 -endif - LUVLIBS=${BUILDDIR}/utils.o \ ${BUILDDIR}/luv_fs.o \ ${BUILDDIR}/luv_dns.o \ @@ -117,87 +113,28 @@ ${BUILDDIR}/luv_zlib.o \ ${BUILDDIR}/lhttp_parser.o -DEPS=${LUADIR}/src/libluajit.a \ - ${YAJLDIR}/yajl.a \ - ${UVDIR}/uv.a \ - ${ZLIBDIR}/libz.a \ - ${HTTPDIR}/http_parser.o - -ifeq (${USE_SYSTEM_SSL},0) -DEPS+=${SSLDIR}/libopenssl.a -endif - all: ${BUILDDIR}/luvit -${LUADIR}/Makefile: - git submodule update --init ${LUADIR} - -${LUADIR}/src/libluajit.a: ${LUADIR}/Makefile - touch -c ${LUADIR}/src/*.h - $(MAKE) -C ${LUADIR} - -${YAJLDIR}/CMakeLists.txt: - git submodule update --init ${YAJLDIR} - -${YAJLDIR}/Makefile: deps/Makefile.yajl ${YAJLDIR}/CMakeLists.txt - cp deps/Makefile.yajl ${YAJLDIR}/Makefile - -${YAJLDIR}/yajl.a: ${YAJLDIR}/Makefile - rm -rf ${YAJLDIR}/src/yajl - cp -r ${YAJLDIR}/src/api ${YAJLDIR}/src/yajl - $(MAKE) -C ${YAJLDIR} - -${UVDIR}/Makefile: - git submodule update --init ${UVDIR} - -${UVDIR}/uv.a: ${UVDIR}/Makefile - $(MAKE) -C ${UVDIR} uv.a - -${HTTPDIR}/Makefile: - git submodule update --init ${HTTPDIR} - -${HTTPDIR}/http_parser.o: ${HTTPDIR}/Makefile - $(MAKE) -C ${HTTPDIR} http_parser.o - -${ZLIBDIR}/zlib.gyp: - git submodule update --init ${ZLIBDIR} - -${ZLIBDIR}/libz.a: ${ZLIBDIR}/zlib.gyp - cd ${ZLIBDIR} && ${CC} -c *.c && \ - $(AR) rvs libz.a *.o - -${SSLDIR}/Makefile.openssl: - git submodule update --init ${SSLDIR} - -${SSLDIR}/libopenssl.a: ${SSLDIR}/Makefile.openssl - $(MAKE) -C ${SSLDIR} -f Makefile.openssl - -${BUILDDIR}/%.o: src/%.c ${DEPS} +${BUILDDIR}/%.o: src/%.c mkdir -p ${BUILDDIR} - $(CC) ${CPPFLAGS} ${CFLAGS} --std=c89 -D_GNU_SOURCE -g -Wall -Werror -c $< -o $@ \ - -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR}/src -I${YAJLDIR}/src/api \ - -I${YAJLDIR}/src -I${ZLIBDIR} -I${CRYPTODIR}/src \ + $(CC) \ + ${CPPFLAGS} \ + ${CFLAGS} --std=c89 -D_GNU_SOURCE -g -Wall -Werror \ + -c $< -o $@ \ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ - -DUSE_SYSTEM_SSL=${USE_SYSTEM_SSL} \ + -DUSE_SYSTEM_SSL=1 \ -DHTTP_VERSION=\"${HTTP_VERSION}\" \ -DUV_VERSION=\"${UV_VERSION}\" \ -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" \ -DLUVIT_VERSION=\"${VERSION}\" \ -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" -${BUILDDIR}/libluvit.a: ${CRYPTODIR}/Makefile ${LUVLIBS} ${DEPS} - $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS} ${DEPS} - -${CRYPTODIR}/Makefile: - git submodule update --init ${CRYPTODIR} - -${CRYPTODIR}/src/lcrypto.o: ${CRYPTODIR}/Makefile - ${CC} ${CPPFLAGS} -c -o ${CRYPTODIR}/src/lcrypto.o -I${CRYPTODIR}/src/ \ - -I${LUADIR}/src/ ${CRYPTODIR}/src/lcrypto.c +${BUILDDIR}/libluvit.a: ${LUVLIBS} + $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS} -${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o ${CRYPTODIR}/src/lcrypto.o +${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o $(CC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -g -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a \ - ${CRYPTODIR}/src/lcrypto.o ${LIBS} + ${LIBS} clean: ${MAKE} -C ${LUADIR} clean @@ -209,21 +146,14 @@ rm -rf build bundle install: all - mkdir -p ${BINDIR} - install ${BUILDDIR}/luvit ${BINDIR}/luvit - mkdir -p ${LIBDIR} - cp lib/luvit/*.lua ${LIBDIR} - mkdir -p ${INCDIR}/luajit - cp ${LUADIR}/src/lua.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/lauxlib.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/luaconf.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/luajit.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/lualib.h ${INCDIR}/luajit/ - mkdir -p ${INCDIR}/http_parser - cp ${HTTPDIR}/http_parser.h ${INCDIR}/http_parser/ - mkdir -p ${INCDIR}/uv - cp -r ${UVDIR}/include/* ${INCDIR}/uv/ - cp src/*.h ${INCDIR}/ + install -d ${DESTDIR}${BINDIR_LUVIT} + install -m755 ${BUILDDIR}/luvit ${DESTDIR}${BINDIR_LUVIT}/luvit + install -d ${DESTDIR}${LIBDIR_LUVIT} + for i in `ls lib/luvit`; do \ + install -Dm644 lib/luvit/$$i ${DESTDIR}${LIBDIR_LUVIT}/$$i; done + install -d ${DESTDIR}${INCDIR_LUVIT}/luajit + for i in `ls src/*.h`; do \ + install -Dm644 $$i ${DESTDIR}${INCDIR_LUVIT}/$$(basename $$i); done bundle: build/luvit ${BUILDDIR}/libluvit.a build/luvit tools/bundler.lua