-include config.mk ifneq ($(shell bsdtar -h 2>/dev/null|grep bsdtar),) TAR=bsdtar czvf else TAR=tar -czvf endif LANGS=python perl ruby lua go java guile gear gir W32PY="${HOME}/.wine/drive_c/Python27/" ifeq ($(DEVEL_MODE),1) all: supported.langs ruby perl python lua go gear gir supported.langs: CC=${CC} CXX=${CXX} sh check-langs.sh else # compile more all: supported.langs python lua gear gir supported.langs: CC=${CC} CXX=${CXX} sh check-langs.sh force-all endif chect: rm -f supported.langs ${MAKE} supported.langs check-w32: if [ ! -d "${W32PY}/libs" ]; then \ wget http://www.python.org/ftp/python/2.7/python-2.7.msi ; \ msiexec /i python-2.7.msi ; \ fi w32: cd python && ${MAKE} w32 DSTNAME=radare2-swig-w32-$(VERSION) DST=../$(DSTNAME)/Python27/Lib/r2 w32dist: mkdir -p ${DST} cp -f python/*.dll ${DST} cp -f python/r_*.py ${DST} cd .. ; zip -r $(DSTNAME).zip $(DSTNAME) dist: PKG=r2-bindings-${VERSION} ; \ FILES=`cd .. ; hg st -mac . | grep r2-bindings | grep -v '/\.' | sed -e "s,r2-bindings/,$${PKG}/," | cut -c 3-` ; \ CXXFILES=`cd .. ; find r2-bindings | grep -e cxx$$ -e py$$ | sed -e "s,r2-bindings/,$${PKG}/,"` ; \ cd .. && mv r2-bindings $${PKG} && \ echo $$FILES ; \ ${TAR} $${PKG}.tar.gz $${FILES} $${CXXFILES} ; \ mv $${PKG} r2-bindings # TODO: valadoc vdoc: -rm -rf vdoc cat vapi/*.vapi > libr.vapi valadoc -o vdoc libr.vapi -rm -f libr.vapi # rsync -avz vdoc/* pancake@radare.org:/srv/http/radareorg/vdoc/ vdoc_pkg: rm -rf vdoc valadoc -o vdoc vapi/*.vapi # rsync -avz vdoc/* pancake@radare.org:/srv/http/radareorg/vdoc/ gear: cd gear && ${MAKE} # TODO: unspaguetti this targets perl: @-[ "`grep perl supported.langs`" ] && ( cd perl && ${MAKE} ) || true python: @-[ "`grep python supported.langs`" ] && ( cd python && ${MAKE} ) || true guile: @-[ "`grep guile supported.langs`" ] && ( cd guile && ${MAKE} ) || true ruby: @-[ "`grep ruby supported.langs`" ] && ( cd ruby && ${MAKE} ) || true lua: @-[ "`grep lua supported.langs`" ] && ( cd lua && ${MAKE} ) || true go: @-[ -x "${GOBIN}/5g" -o -x "${GOBIN}/6g" -o -x "${GOBIN}/8g" ] && \ [ "`grep go supported.langs`" ] && ( cd go && ${MAKE} ) || true java: @-[ "`grep java supported.langs`" ] && ( cd java && ${MAKE} ) || true gir: @-[ "`grep gir supported.langs`" ] && ( cd gir && ${MAKE} ) || true test: cd perl && ${MAKE} test cd python && ${MAKE} test cd ruby && ${MAKE} test cd lua && ${MAKE} test cd guile && ${MAKE} test cd go && ${MAKE} test cd java && ${MAKE} test install-python: @# py2.6 in debian uses dist-packages, but site-packages in arch and osx.. @if [ "`grep python supported.langs`" ]; then \ a=python`python --version 2>&1 | cut -d ' ' -f 2 | cut -d . -f 1,2` ; \ echo "Installing $$a/site-packages r2 modules in ${DESTDIR}${PREFIX}/lib/$$a/site-packages/r2" ; \ mkdir -p ${DESTDIR}${PREFIX}/lib/$$a/site-packages/r2 ; \ touch ${DESTDIR}${PREFIX}/lib/$$a/site-packages/r2/__init__.py ; \ cp -rf python/r_*.py python/*.${SOEXT} ${DESTDIR}${PREFIX}/lib/$$a/site-packages/r2/ ; \ echo "Installing $$a/dist-packages r2 modules in ${DESTDIR}${PREFIX}/lib/$$a/dist-packages/r2" ; \ mkdir -p ${DESTDIR}${PREFIX}/lib/$$a/dist-packages/r2 ; \ cp -rf python/r_*.py python/*.${SOEXT} ${DESTDIR}${PREFIX}/lib/$$a/dist-packages/r2/ ; \ touch ${DESTDIR}${PREFIX}/lib/$$a/dist-packages/r2/__init__.py ; \ fi install-lua: @if [ "`grep lua supported.langs`" ]; then \ for a in 5.1 ; do \ mkdir -p ${DESTDIR}${PREFIX}/lib/lua/$$a ; \ echo "Installing lua$$a r2 modules..." ; \ cp -rf lua/*.${SOEXT} ${DESTDIR}${PREFIX}/lib/lua/$$a ; \ done ; \ fi install-go: @if [ -n "${GOROOT}" -a -n "${GOOS}" -a -n "${GOARCH}" ]; then \ echo "Installing r2 modules in ${GOROOT}/pkg/${GOOS}_${GOARCH}" ; \ cp -f go/*.a go/*.${SOEXT} ${GOROOT}/pkg/${GOOS}_${GOARCH} ; \ else \ echo "You have to set the following vars: GOROOT, GOOS and GOARCH" ; \ fi install-java: @echo "TODO: install-java" install-ruby: @if [ "`grep ruby supported.langs`" ]; then \ for a in 1.8 1.9.1; do \ mkdir -p ${DESTDIR}${PREFIX}/lib/ruby/$$a/r2 ; \ echo "Installing ruby$$a r2 modules..." ; \ cp -rf ruby/* ${DESTDIR}${PREFIX}/lib/ruby/$$a/r2 ; \ done ; \ fi install-guile: @echo TODO: install-guile install-perl: # hack for slpm @-if [ "`grep perl supported.langs`" ]; then \ if [ -n "`echo ${PREFIX}${DESTDIR}|grep home`" ]; then \ target=${PREFIX}${DESTDIR}`perl -e 'for (@INC) { print "$$_\n" if /lib(64)?\/perl5/ && !/local/; }'|head -n 1` ; \ else \ target=${DESTDIR}`perl -e 'for (@INC) { print "$$_\n" if /lib(64)?\/perl5/ && !/local/; }'|head -n 1` ; \ fi ; \ mkdir -p $$target/r2 ; \ echo "Installing perl r2 modules..." ; \ cp -rf perl/*.so $$target/r2 ; \ cp -rf perl/*.pm $$target/r2 ; \ fi install-vapi: @${INSTALL_DIR} ${DESTDIR}${PREFIX}/share/vala/vapi ${INSTALL_DATA} vapi/*.vapi vapi/*.deps ${DESTDIR}${PREFIX}/share/vala/vapi EXAMPLEDIR=${DESTDIR}${PREFIX}/share/radare2-swig install-examples: install-examples-python mkdir -p ${EXAMPLEDIR}/vala cp -rf vapi/t/*.vala vapi/t/*.gs ${EXAMPLEDIR}/vala install-examples-python: if [ "`grep python supported.langs`" ]; then \ mkdir -p ${EXAMPLEDIR}/python ; \ cp -rf python/test-*.py ${EXAMPLEDIR}/python ; \ fi install: install-python install-ruby install-perl install-lua install-go install-java install-vapi install-examples deinstall: uninstall uninstall: cd vapi/ ; for a in *.vapi *.deps ; do rm -f ${DESTDIR}${PREFIX}/share/vala/vapi/$$a ; done rm -rf ${EXAMPLEDIR} oldtest: sh do-swig.sh r_bp python test.py clean: @for a in $(LANGS); do \ echo "Cleaning $$a " ; \ cd $$a ; ${MAKE} clean ; cd .. ; \ done mrproper: for a in $(LANGS); do \ cd $$a ; ${MAKE} mrproper; cd .. ; \ done .PHONY: $(LANGS) clean mrproper oldtest test all vdoc w32 w32dist check check-w32 deinstall uninstall install