2010-01-18 22:14:19 +01:00
|
|
|
include ../global.mk
|
|
|
|
include config.mk
|
2009-04-01 00:28:13 +00:00
|
|
|
|
|
|
|
PREFIX?=${PWD}/../prefix
|
2011-07-19 11:25:11 +02:00
|
|
|
PFX=${DESTDIR}/${PREFIX}
|
|
|
|
LFX=${DESTDIR}/${LIBDIR}
|
|
|
|
IFX=${DESTDIR}/${INCLUDEDIR}
|
2011-04-02 20:03:00 +02:00
|
|
|
PWD=`pwd`
|
2009-02-05 22:08:46 +01:00
|
|
|
|
|
|
|
# Libraries
|
2011-09-10 01:30:03 +02:00
|
|
|
LIBLIST=util magic socket db cons line lib io lang flags bin hash config syscall
|
2011-10-05 11:55:35 +02:00
|
|
|
LIBLIST+=cmd reg diff anal parse asm print search egg bp sign debug fs core th
|
2011-04-04 18:09:45 +02:00
|
|
|
#DEPRECATED APIS : LIBLIST+=th crypto
|
2009-02-05 22:08:46 +01:00
|
|
|
|
2011-03-03 16:52:51 +01:00
|
|
|
all: libs
|
2010-01-14 12:13:48 +01:00
|
|
|
|
|
|
|
libs:
|
2011-01-23 21:54:18 +01:00
|
|
|
@for lib in ${LIBLIST}; do \
|
2012-08-10 11:35:38 +02:00
|
|
|
cd $${lib} && ${MAKE} || exit 1 ; cd .. ; done
|
2009-02-05 22:08:46 +01:00
|
|
|
@echo Build done for: ${LIBLIST}
|
|
|
|
|
2009-07-16 00:30:20 +00:00
|
|
|
pkgcfg:
|
2010-10-27 10:56:18 +02:00
|
|
|
@for lib in ${LIBLIST}; do ( cd $${lib} && ${MAKE} pkgcfg ); done
|
2009-07-16 09:40:00 +00:00
|
|
|
cd asm && ${MAKE} pkgcfg NAME=libr DEPS="r_`echo ${LIBLIST}|sed -e 's, , r_,g'`"
|
2009-07-16 00:30:20 +00:00
|
|
|
# TODO: Magically generate libr.pc.acr here using LIBLIST and so :)
|
|
|
|
|
2010-01-25 11:54:25 +01:00
|
|
|
install-pkgconfig:
|
2011-09-23 02:31:43 +02:00
|
|
|
${INSTALL_DIR} ${LFX}/pkgconfig
|
2011-07-19 11:25:11 +02:00
|
|
|
for a in ../pkgcfg/*.pc ; do ${INSTALL_DATA} $$a ${LFX}/pkgconfig ; done
|
2010-01-25 11:54:25 +01:00
|
|
|
|
2010-01-27 01:50:26 +01:00
|
|
|
install-includes:
|
2011-09-23 02:31:43 +02:00
|
|
|
${INSTALL_DIR} ${IFX}/libr
|
2011-07-19 11:25:11 +02:00
|
|
|
(cd include && for a in *.h ; do ${INSTALL_DATA} $$a ${IFX}/libr ; done)
|
2011-12-01 10:53:02 +01:00
|
|
|
${INSTALL_DIR} ${IFX}/libr/sflib
|
2011-12-01 20:17:40 +01:00
|
|
|
(cd include/sflib && for a in * ; do \
|
|
|
|
${INSTALL_DIR} ${IFX}/libr/sflib/$$a ; \
|
|
|
|
for b in $$a/*.h ; do \
|
|
|
|
${INSTALL_DATA} $$b ${IFX}/libr/sflib/$$b ; \
|
|
|
|
done ; \
|
|
|
|
done)
|
2010-01-27 01:50:26 +01:00
|
|
|
|
2010-05-24 17:51:51 +02:00
|
|
|
install-symlink:
|
|
|
|
mkdir -p ${PFX}/bin
|
2011-07-19 11:25:11 +02:00
|
|
|
mkdir -p ${IFX}
|
|
|
|
mkdir -p ${LFX}/pkgconfig
|
|
|
|
mkdir -p ${LFX}/radare2/${VERSION}
|
|
|
|
rm -rf ${IFX}/libr && ln -fs ${PWD}/include ${IFX}/libr
|
2010-06-15 15:31:17 +02:00
|
|
|
cd ../pkgcfg && for a in *.pc ; do \
|
|
|
|
if [ -e ${PWD}/../pkgcfg/$${a} ] ; then \
|
2011-07-19 11:25:11 +02:00
|
|
|
ln -fs ${PWD}/../pkgcfg/$${a} ${LFX}/pkgconfig/$${a} ; \
|
2010-06-15 15:31:17 +02:00
|
|
|
fi ; \
|
|
|
|
done
|
2010-05-24 17:51:51 +02:00
|
|
|
for a in ${LIBLIST} ; do \
|
2011-07-19 11:25:11 +02:00
|
|
|
ln -fs ${PWD}/$${a}/libr_$${a}.${EXT_SO} ${LFX}/libr_$${a}.${EXT_SO} ; \
|
|
|
|
ln -fs ${PWD}/$${a}/libr_$${a}.${EXT_SO} ${LFX}/libr_$${a}.${EXT_SO}.${LIBVERSION} ; \
|
|
|
|
ln -fs ${PWD}/$${a}/libr_$${a}.${EXT_AR} ${LFX}/libr_$${a}.${EXT_AR} ; \
|
2010-05-24 17:51:51 +02:00
|
|
|
for b in $${a}/p/*.${EXT_SO} ; do \
|
2010-06-15 15:31:17 +02:00
|
|
|
if [ -e ${PWD}/$${b} ] ; then \
|
2011-07-19 11:25:11 +02:00
|
|
|
ln -fs ${PWD}/$${b} ${LFX}/radare2/${VERSION}/ ; \
|
2010-06-15 15:31:17 +02:00
|
|
|
fi ; \
|
2010-05-24 17:51:51 +02:00
|
|
|
done ; \
|
|
|
|
done
|
|
|
|
|
2010-05-29 13:24:47 +02:00
|
|
|
install: install-includes install-pkgconfig
|
2009-04-20 12:31:12 +02:00
|
|
|
# TODO :Use INSTALL_DATA_DIR instead of mkdir
|
2009-02-05 22:08:46 +01:00
|
|
|
# libraries
|
2011-07-19 11:25:11 +02:00
|
|
|
@${INSTALL_DIR} ${LFX}
|
2011-03-10 09:19:30 +01:00
|
|
|
@for a in `find * -type f | grep -e '\.${EXT_SO}$$' | grep -v lib/t | grep lib | grep -v /p/` ; do \
|
2010-10-27 10:56:18 +02:00
|
|
|
b=`echo $$a|cut -d / -f 2`; \
|
2011-07-19 11:25:11 +02:00
|
|
|
echo " ${LFX}/$$b.${LIBVERSION}"; \
|
|
|
|
${INSTALL_LIB} $$a ${LFX}/$$b.${LIBVERSION} ; \
|
2011-10-24 17:16:54 +02:00
|
|
|
( cd ${LFX} ; ln -fs $$b.${LIBVERSION} $$b ) ; \
|
2010-03-19 13:57:21 +01:00
|
|
|
done
|
2011-10-24 17:16:54 +02:00
|
|
|
#Linux only? ( cd ${LFX} ; ln -fs $$b.${LIBVERSION} $$b.0 ; ln -fs $$b.0 $$b )
|
2009-02-05 22:08:46 +01:00
|
|
|
# object archives
|
2011-03-10 09:19:30 +01:00
|
|
|
@for a in `find * -type f | grep -e '\.a$$' | grep -v fs/p` ; do \
|
2011-07-19 11:25:11 +02:00
|
|
|
echo " ${LFX}/$$a"; ${INSTALL_DATA} $$a ${LFX} ; done
|
2009-02-06 18:22:27 +01:00
|
|
|
# plugins
|
2011-07-19 11:25:11 +02:00
|
|
|
@${INSTALL_DIR} ${LFX}/radare2/${VERSION}
|
2011-03-10 09:19:30 +01:00
|
|
|
@for a in `find */p -perm -u+x -type f | grep -v exe | grep -v dll | grep ${EXT_SO}`; \
|
2011-07-19 11:25:11 +02:00
|
|
|
do echo " ${LFX}/radare2/${VERSION}/$$a"; \
|
|
|
|
${INSTALL_DATA} $$a ${LFX}/radare2/${VERSION} ; done
|
|
|
|
@echo "lang/p/radare.* ${DESTDIR}/${PFX}/${LIBDIR}/radare2/${VERSION}"
|
|
|
|
${INSTALL_DATA} lang/p/radare.* ${LFX}/radare2/${VERSION}
|
2009-02-05 22:08:46 +01:00
|
|
|
|
2009-04-03 11:11:17 +00:00
|
|
|
deinstall uninstall:
|
2009-03-06 00:38:23 +00:00
|
|
|
# libraries
|
2010-03-10 17:21:20 +01:00
|
|
|
-@for a in `find * | grep -e '\.${EXT_SO}$$' | grep -v 'lib/t' | grep lib` ; do \
|
2010-01-31 14:22:27 +01:00
|
|
|
a=`echo $$a | awk -F / '{ print $$NF; }'`; \
|
2011-07-19 11:25:11 +02:00
|
|
|
echo ${LFX}/$$a ; rm -f ${LFX}/$$a ; done
|
2010-05-29 13:24:47 +02:00
|
|
|
# object archives
|
2009-03-06 00:38:23 +00:00
|
|
|
-@for a in `find * | grep -e '\.a$$'` ; do \
|
2010-01-31 14:22:27 +01:00
|
|
|
a=`echo $$a | awk -F / '{ print $$NF; }'`; \
|
2011-07-19 11:25:11 +02:00
|
|
|
echo ${LFX}/$$a ; rm -f ${LFX}/$$a ; done
|
2010-05-29 13:24:47 +02:00
|
|
|
# includes
|
2011-07-20 19:26:07 +02:00
|
|
|
-if [ -h ${IFX}/libr ]; then \
|
|
|
|
rm -f ${IFX}/libr ; \
|
|
|
|
else \
|
|
|
|
(cd include && for a in * ; do rm -f ${IFX}/libr/$$a ; done) ; \
|
|
|
|
fi
|
2010-05-29 13:24:47 +02:00
|
|
|
# programs
|
2010-02-21 20:21:36 +01:00
|
|
|
-@for a in `find */t -perm -u+x -type f | grep 2`; do \
|
2009-03-06 00:38:23 +00:00
|
|
|
a=`echo $$a|awk -F / '{ print $$NF; }'`; \
|
2010-06-15 13:10:46 +02:00
|
|
|
echo ${PFX}/bin/$$a ; rm -f ${PFX}/bin/$$a ; done
|
2009-03-06 00:38:23 +00:00
|
|
|
# plugins
|
2010-02-21 20:21:36 +01:00
|
|
|
-@for a in `find */p -perm -u+x -type f`; do \
|
2011-07-19 11:25:11 +02:00
|
|
|
a="${LFX}/radare2/${VERSION}/`echo $$a|awk -F / '{ print $$NF; }'`"; \
|
2009-03-06 00:38:23 +00:00
|
|
|
echo $$a ; rm -f $$a ; done
|
2011-07-19 11:25:11 +02:00
|
|
|
rm -rf ${LFX}/radare2/${VERSION}
|
|
|
|
rm -f ${LFX}/pkgconfig/libr.pc
|
|
|
|
rm -f ${LFX}/pkgconfig/r_*.pc
|
2009-03-06 00:38:23 +00:00
|
|
|
# test programs
|
2010-06-15 13:10:46 +02:00
|
|
|
rm -rf ${PFX}/bin/libr-test
|
2010-06-15 14:10:42 +02:00
|
|
|
# TODO: use for a in LIBLIST (like in binr/Makefile)
|
2011-07-19 11:25:11 +02:00
|
|
|
rm -rf ${IFX}/libr
|
|
|
|
rm -rf ${LFX}/libr_*.so.${LIBVERSION}
|
|
|
|
rm -rf ${LFX}/libr_*.so.0
|
|
|
|
rm -rf ${LFX}/libr_*.so
|
|
|
|
rm -rf ${LFX}/libr_*.a
|
|
|
|
rm -rf ${LFX}/libr2.so*
|
|
|
|
rm -rf ${LFX}/libr2.a
|
|
|
|
rm -rf ${LFX}/libr.so*
|
|
|
|
rm -rf ${LFX}/libr.a
|
|
|
|
rm -rf ${DESTDIR}${DATADIR}/share/doc/radare2
|
2010-06-15 13:10:46 +02:00
|
|
|
@echo libr aka radare2 has been uninstalled from PREFIX=${PFX}
|
2009-03-06 00:38:23 +00:00
|
|
|
|
2009-02-05 22:08:46 +01:00
|
|
|
clean:
|
|
|
|
for lib in ${LIBLIST}; do ( cd $${lib} && ${MAKE} clean ); done
|
2009-06-15 02:44:05 +00:00
|
|
|
|
2010-07-13 11:59:55 +02:00
|
|
|
mrproper:
|
2010-06-15 14:10:42 +02:00
|
|
|
for lib in ${LIBLIST}; do ( cd $${lib} && ${MAKE} mrproper ); done
|
2010-01-13 23:42:49 +01:00
|
|
|
|
|
|
|
sloc:
|
|
|
|
${MAKE} -C .. sloc SLOCDIR=libr
|
|
|
|
|
2010-06-15 13:10:46 +02:00
|
|
|
.PHONY: sloc mrproper clean all pkgcfg install deinstall uninstall libr install-symlink
|