radare2/Makefile
pancake 6dadd63c4b Ad od scr.col and cjange more settings
Fix parsing of segmented addresses
Move hud to shlr/hud
Add r_cons_print_clear () for delayed 'clearscreens'
Add blankline option to RCons
Add scr.segoff to show prompt as segmented or not
Add scr.colpos to choose the position of cmd.cprompt
Deprecate old flags code
2012-11-14 03:25:32 +01:00

186 lines
6.0 KiB
Makefile

-include config-user.mk
include global.mk
DLIBDIR=$(DESTDIR)/$(LIBDIR)
R2BINS=$(shell cd binr ; echo r*2)
DATADIRS=libr/asm/d libr/syscall/d libr/magic/d
#binr/ragg2/d
STRIP?=strip
ifneq ($(shell bsdtar -h 2>/dev/null|grep bsdtar),)
TAR=bsdtar czvf
else
TAR=tar -czvf
endif
PWD=$(shell pwd)
all: plugins.cfg
${MAKE} libr
${MAKE} binr
plugins.cfg:
@if [ ! -e config-user.mk ]; then echo ; \
echo " Please, run ./configure first" ; echo ; exit 1 ; fi
./configure-plugins
binr libr:
cd $@ && ${MAKE} all
w32:
${MAKE} clean
# TODO: add support for debian
./configure --without-ssl --without-gmp --with-compiler=i486-mingw32-gcc --with-ostype=windows --host=i486-unknown-windows
${MAKE}
.PHONY: depgraph.png
depgraph.png:
cd libr ; perl depgraph.pl | dot -Tpng -odepgraph.png
android:
@if [ -z "$(NDK_ARCH)" ]; then echo "Set NDK_ARCH=[arm|mips|x86]" ; false; fi
sys/android-${NDK_ARCH}.sh
w32dist:
rm -rf radare2-w32-${VERSION} w32dist
mkdir w32dist
for a in `find libr | grep -e dll$$`; do cp $$a w32dist ; done
for a in `find binr | grep -e exe$$`; do cp $$a w32dist ; done
rm w32dist/plugin.dll
mkdir -p w32dist/radare2/${VERSION}/magic
cp -f libr/magic/d/default/* w32dist/radare2/${VERSION}/magic
mkdir -p w32dist/radare2/${VERSION}/syscall
cp -f libr/syscall/d/*.sdb w32dist/radare2/${VERSION}/syscall
mkdir -p w32dist/radare2/${VERSION}/opcodes
cp -f libr/asm/d/*.sdb w32dist/radare2/${VERSION}/opcodes
mkdir -p w32dist/share/doc/radare2
mkdir -p w32dist/include/libr
cp libr/include/*.h w32dist/include/libr
#mkdir -p w32dist/include/libr/sflib
cp -f doc/fortunes w32dist/share/doc/radare2
mv w32dist radare2-w32-${VERSION}
rm -f radare2-w32-${VERSION}.zip
zip -r radare2-w32-${VERSION}.zip radare2-w32-${VERSION}
clean:
for a in libr binr shlr ; do (cd $$a ; ${MAKE} clean) ; done
mrproper:
for a in libr binr shlr ; do ( cd $$a ; ${MAKE} mrproper) ; done
rm -f config-user.mk plugins.cfg libr/config.h
rm -f libr/include/r_userconf.h libr/config.mk
rm -f pkgcfg/*.pc
pkgcfg:
cd libr && ${MAKE} pkgcfg
install-man:
mkdir -p ${MDR}/man1
for a in man/*.1 ; do ${INSTALL_MAN} $$a ${MDR}/man1 ; done
cd ${MDR}/man1 && ln -fs radare2.1 r2.1
install-man-symlink:
mkdir -p ${MDR}/man1
cd man && for a in *.1 ; do ln -fs ${PWD}/man/$$a ${MDR}/man1/$$a ; done
cd ${MDR}/man1 && ln -fs radare2.1 r2.1
install-doc:
${INSTALL_DIR} ${PFX}/share/doc/radare2
for a in doc/* ; do ${INSTALL_DATA} $$a ${PFX}/share/doc/radare2 ; done
install-doc-symlink:
${INSTALL_DIR} ${PFX}/share/doc/radare2
cd doc ; for a in * ; do ln -fs ${PWD}/doc/$$a ${PFX}/share/doc/radare2 ; done
install: install-doc install-man install-www
cd libr && ${MAKE} install PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
cd binr && ${MAKE} install PREFIX=${PREFIX} DESTDIR=${DESTDIR}
for a in ${DATADIRS} ; do \
(cd $$a ; ${MAKE} install LIBDIR=${LIBDIR} PREFIX=${PREFIX} DESTDIR=${DESTDIR} ); \
done
mkdir -p ${DESTDIR}/${LIBDIR}/radare2/${VERSION}/hud
cp -f shlr/hud/main ${DESTDIR}/${LIBDIR}/radare2/${VERSION}/hud/
install-www:
rm -rf ${DESTDIR}/${WWWROOT}
mkdir -p ${DESTDIR}/${WWWROOT}
cp -rf shlr/www/* ${DESTDIR}/${WWWROOT}
symstall-www:
rm -rf ${DESTDIR}/${WWWROOT}
mkdir -p ${DESTDIR}/${WWWROOT}
cd ${DESTDIR}/${WWWROOT} ; for a in ${PWD}/shlr/www/* ; do \
ln -fs $$a ${DLIBDIR}/radare2/${VERSION}/www ; done
install-pkgconfig-symlink:
@${INSTALL_DIR} ${DLIBDIR}/pkgconfig
cd pkgcfg ; for a in *.pc ; do ln -fs $${PWD}/$$a ${DLIBDIR}/pkgconfig/$$a ; done
symstall install-symlink: install-man-symlink install-doc-symlink install-pkgconfig-symlink symstall-www
cd libr && ${MAKE} install-symlink PREFIX=${PREFIX} DESTDIR=${DESTDIR}
cd binr && ${MAKE} install-symlink PREFIX=${PREFIX} DESTDIR=${DESTDIR}
for a in ${DATADIRS} ; do (\
cd $$a ; \
echo $$a ; \
${MAKE} install-symlink LIBDIR=${LIBDIR} PREFIX=${PREFIX} DESTDIR=${DESTDIR} ); \
done
mkdir -p ${DLIBDIR}/radare2/${VERSION}/hud
ln -fs ${PWD}/shlr/hud/main ${DLIBDIR}/radare2/${VERSION}/hud/main
deinstall uninstall:
cd libr && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
cd binr && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
cd libr/syscall/d && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR} LIBDIR=${LIBDIR}
@echo
@echo "Run 'make purge' to also remove installed files from previous versions of r2"
@echo
purge-doc:
rm -rf ${DESTDIR}/${PREFIX}/share/doc/radare2
cd man ; for a in *.1 ; do rm -f ${MDR}/man1/$$a ; done
rm -f ${MDR}/man1/r2.1
purge-dev:
rm -rf ${DESTDIR}/${LIBDIR}/libr_*.a
rm -rf ${DESTDIR}/${LIBDIR}/pkgconfig/r_*.pc
rm -rf ${DESTDIR}/${INCLUDEDIR}/libr
rm -f ${DESTDIR}/${LIBDIR}/radare2/${VERSION}/-*
# XXX: this must be in purge-sym ?
-for a in ${R2BINS} ; do ${STRIP} -s ${DESTDIR}/${BINDIR}/$$a 2> /dev/null ; done
-for a in ${DESTDIR}/${LIBDIR}/libr_*.so ; do ${STRIP} -s $$a ; done
purge: purge-doc purge-dev
for a in ${R2BINS} ; do rm -f ${DESTDIR}/${BINDIR}/$$a ; done
rm -f ${DESTDIR}/${BINDIR}/ragg2-cc
rm -f ${DESTDIR}/${LIBDIR}/libr_*
rm -rf ${DESTDIR}/${LIBDIR}/radare2
rm -rf ${DESTDIR}/${INCLUDEDIR}/libr
dist:
git log $$(git show-ref `git tag |tail -n1`)..HEAD > ChangeLog
DIR=`basename $$PWD` ; \
FILES=`git ls-files | sed -e s,^,radare2-${VERSION}/,` ; \
cd .. && mv $${DIR} radare2-${VERSION} && \
${TAR} radare2-${VERSION}.tar.gz $${FILES} radare2-${VERSION}/ChangeLog ;\
mv radare2-${VERSION} $${DIR}
shot:
DATE=`date '+%Y%m%d'` ; \
FILES=`git ls-files | sed -e s,^,radare2-${DATE}/,` ; \
cd .. && mv radare2 radare2-$${DATE} && \
${TAR} radare2-$${DATE}.tar.gz $${FILES} ;\
mv radare2-$${DATE} radare2 && \
scp radare2-$${DATE}.tar.gz radare.org:/srv/http/radareorg/get/shot
tests:
@if [ -d r2-regressions ]; then \
cd r2-regressions ; git clean -xdf ; git pull ; \
else \
git clone git://github.com/vext01/r2-regressions.git ; \
fi
cd r2-regressions ; ${MAKE}
include ${MKPLUGINS}
.PHONY: all clean mrproper install symstall uninstall deinstall dist shot pkgcfg
.PHONY: r2-bindings r2-bindings-dist libr binr install-man w32dist tests