Mercurial > logstash
view logstash.Makefile @ 18:2b887e35b5cd
work on building from source
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Mon, 15 Apr 2013 19:33:28 -0700 |
parents | 292b6583148a |
children | 729f36e68da8 |
line wrap: on
line source
# # fedora uses system jruby # el6 uses minimal jruby.jar # VERSION=$(shell awk -F\" '/LOGSTASH_VERSION/ {print $$2}' lib/logstash/version.rb) SYSJRUBY=$(shell which jruby 2>/dev/null) ifeq ($(SYSJRUBY),) JRUBY_CMD=java -jar /usr/share/jruby.jar else JRUBY_CMD=jruby endif WITH_JRUBY=$(JRUBY_CMD) -S JRUBYC=$(WITH_JRUBY) jrubyc GEOIP=GeoLiteCity.dat all: # compile-grammer touch lib/logstash/config/grammar.rl # force rebuild make -C lib/logstash/config grammar.rb # compile-runner mkdir -p build/ruby cd lib; $(JRUBYC) -5 -t ../build/ruby logstash/runner.rb # copy-ruby-files find ./lib -name '*.rb' | sed -e 's,^\./lib/,,' | (cd lib; cpio -p --make-directories ../build/ruby) find ./test -name '*.rb' | sed -e 's,^\./test/,,' | (cd test; cpio -p --make-directories ../build/ruby) rsync -av ./spec build/ruby # install-gems mkdir -p vendor/bundle GEM_HOME=./vendor/bundle/jruby/1.9/ GEM_PATH= $(JRUBY_CMD) --1.9 ./gembag.rb logstash.gemspec rm -rf ./vendor/bundle/jruby/1.9/gems/riak-client-1.0.3/pkg rm -rf ./vendor/bundle/jruby/1.9/gems/*/spec rm -rf ./vendor/bundle/jruby/1.9/gems/*/test # build-monolith mkdir -p build/monolith/openssl mkdir -p build/monolith/jopenssl # unpack all jars find $$PWD/vendor/bundle -name '*.jar' | (cd build/monolith; xargs -n1 jar xf) # copy openssl/lib/shared folders/files to root of jar - need this for openssl to work with JRuby cp -r vendor/bundle/jruby/1.9/gems/jruby-openss*/lib/shared/openssl/* build/monolith/openssl cp -r vendor/bundle/jruby/1.9/gems/jruby-openss*/lib/shared/jopenssl/* build/monolith/jopenssl cp -r vendor/bundle/jruby/1.9/gems/jruby-openss*/lib/shared/openssl.rb build/monolith/openssl.rb # purge any extra files we don't need in META-INF (like manifests and signature files) rm -f build/monolith/META-INF/*.LIST rm -f build/monolith/META-INF/*.MF rm -f build/monolith/META-INF/*.RSA rm -f build/monolith/META-INF/*.SF rm -f build/monolith/META-INF/NOTICE rm -f build/monolith/META-INF/NOTICE.txt rm -f build/monolith/META-INF/LICENSE rm -f build/monolith/META-INF/LICENSE.txt rm -rf build/monolith/org/jruby/ext/openssl cp $(GEOIP) build/monolith/ # build the classpath in a manifest file #echo -n "Class-Path: /usr/share/jruby.jar /usr/local/bin/graphtastic-client.jar " >logstash.manifest #echo /usr/local/bin/{elasticsearch,jna,jts,log4j,lucene-analyzers,lucene-highlighter,lucene-memory,lucene-queries,snappy-java,spatial4j}.jar >>logstash.manifest # build-logstash-jar jar cfme build/logstash.jar logstash.manifest logstash.runner \ -C build/ruby . \ -C build/monolith . \ -C vendor/bundle/jruby/1.9 gems \ -C vendor/bundle/jruby/1.9 specifications \ -C lib logstash/web/public \ -C lib logstash/certs \ -C lib logstash/web/views \ patterns