radare2/Makefile

394 lines
13 KiB
Makefile
Raw Normal View History

-include config-user.mk
include global.mk
PREVIOUS_RELEASE=`git log --tags --simplify-by-decoration --pretty='format:%d'|head -n1|cut -d ' ' -f3 |sed -e 's,),,'`
2016-01-20 02:44:59 +00:00
B=$(DESTDIR)$(BINDIR)
L=$(DESTDIR)$(LIBDIR)
MESON?=meson
2017-07-28 12:02:27 +00:00
PYTHON?=python
R2BINS=$(shell cd binr ; echo r*2 r2agent r2pm r2-indent r2r)
ifdef SOURCE_DATE_EPOCH
BUILDSEC=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+__%H:%M:%S" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+__%H:%M:%S" 2>/dev/null || date -u "+__%H:%M:%S")
else
2017-02-05 23:08:02 +00:00
BUILDSEC=$(shell date "+__%H:%M:%S")
endif
DATADIRS=libr/cons/d libr/flag/d libr/bin/d libr/asm/d libr/syscall/d libr/magic/d libr/anal/d libr/util/d libr/arch/d
2015-05-25 16:27:59 +00:00
USE_ZIP=YES
ZIP=zip
2016-02-27 11:33:39 +00:00
R2VC=$(shell git rev-list --all --count 2>/dev/null)
ifeq ($(R2VC),)
# release
R2VC=0
endif
2016-02-27 11:33:39 +00:00
2012-02-17 12:55:54 +00:00
STRIP?=strip
ifneq ($(shell xz --help 2>/dev/null | grep improve),)
2013-07-07 21:03:10 +00:00
TAR=tar -cvf
TAREXT=tar.xz
CZ=xz -f
else
2013-07-07 21:03:10 +00:00
TAR=bsdtar cvf
TAREXT=tar.gz
CZ=gzip -f
endif
2014-09-01 13:50:04 +00:00
PWD=$(shell pwd)
2016-01-22 19:48:34 +00:00
ifeq ($(BUILD_OS),windows)
2016-02-03 11:13:01 +00:00
ifeq ($(OSTYPE),mingw32)
2016-02-25 16:03:48 +00:00
ifneq (,$(findstring mingw32-make,$(MAKE)))
2016-02-16 12:01:41 +00:00
ifneq ($(APPVEYOR),True)
2016-01-22 22:15:33 +00:00
LC_ALL=C
export LC_ALL
2016-01-22 19:48:34 +00:00
endif
2016-02-16 12:01:41 +00:00
endif
2016-01-22 19:48:34 +00:00
endif
2016-02-25 16:03:48 +00:00
endif
2016-01-22 19:48:34 +00:00
all: plugins.cfg libr/include/r_version.h
2021-06-20 23:18:57 +00:00
@libr/count.sh reset
${MAKE} -C shlr sdbs
${MAKE} -C shlr/zip
${MAKE} -C libr/util
2014-07-17 08:34:53 +00:00
${MAKE} -C libr/socket
${MAKE} -C shlr
${MAKE} -C libr
${MAKE} -C binr
* Initial import of the 'configure-plugins' script - accepts --static and --shared to setup which plugins you want to build statically in the library or dynamically - normalize .mk and plugin file names to adopt a single standard - WARNING: huge commit * Added 'mk/sloc.mk' with 'sloc' target to count lines with sloccount everywhere (yeah!) --HG-- rename : libr/asm/p/x86bea.mk => libr/asm/p/x86_bea.mk rename : libr/asm/p/x86nasm.mk => libr/asm/p/x86_nasm.mk rename : libr/asm/p/x86olly.mk => libr/asm/p/x86_olly.mk rename : libr/config.h => libr/config.h.head rename : libr/config.mk => libr/config.mk.head rename : libr/debug/p/dbg_gdb.c => libr/debug/p/debug_gdb.c rename : libr/debug/p/dbg_ptrace.c => libr/debug/p/debug_ptrace.c rename : libr/debug/p/dbg_libgdbwrap/Makefile => libr/debug/p/libgdbwrap/Makefile rename : libr/debug/p/dbg_libgdbwrap/README => libr/debug/p/libgdbwrap/README rename : libr/debug/p/dbg_libgdbwrap/client.c => libr/debug/p/libgdbwrap/client.c rename : libr/debug/p/dbg_libgdbwrap/gdbwrapper.c => libr/debug/p/libgdbwrap/gdbwrapper.c rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper-internals.h => libr/debug/p/libgdbwrap/include/gdbwrapper-internals.h rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper-stddef.h => libr/debug/p/libgdbwrap/include/gdbwrapper-stddef.h rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper.h => libr/debug/p/libgdbwrap/include/gdbwrapper.h rename : libr/debug/p/dbg_libgdbwrap/include/libaspect.h => libr/debug/p/libgdbwrap/include/libaspect.h rename : libr/debug/p/dbg_libgdbwrap/include/libe2dbg.h => libr/debug/p/libgdbwrap/include/libe2dbg.h rename : libr/debug/p/dbg_libgdbwrap/include/revm.h => libr/debug/p/libgdbwrap/include/revm.h rename : libr/debug/p/dbg_libgdbwrap/interface.c => libr/debug/p/libgdbwrap/interface.c rename : libr/io/p/dbg.mk => libr/io/p/debug.mk rename : libr/io/p/io_dbg.c => libr/io/p/io_debug.c
2010-01-13 22:42:49 +00:00
GIT_TAP=$(shell git describe --tags --match '[0-9]*' 2>/dev/null)
GIT_TIP=$(shell git rev-parse HEAD 2>/dev/null || echo $(R2_VERSION))
R2_VER=$(shell ./configure -qV)
ifeq ($(GIT_TAP),)
GIT_TAP=$(R2_VER)
endif
ifeq ($(GIT_TIP),)
GIT_TIP=$(R2_VER)
endif
ifdef SOURCE_DATE_EPOCH
GIT_NOW=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+%Y-%m-%d" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+%Y-%m-%d" 2>/dev/null || date -u "+%Y-%m-%d")
Debian patches (#5866) * Fix esil manpage Each manual page should start with a "NAME" section, which lists the name and a brief description of the page separated by "\-". The "NAME" section is parsed by lexgrog and used to generate a database that's queried by commands like apropos and whatis. Without this change lexgrog fails to parse the NAME section of this manual page. This was found by Debian's lintian tool (manpage-has-bad-whatis-entry). * Fix empty input line in manpages Found-By: lintian as manpage-has-errors-from-man * Fix rahash2 manpage .El (end list) is only valid after .Bl (begin list), but no list was started in this section. Found-By: lintian * Avoid build break if no static bin plugins are defined If one disables all static bin plugins, build currently fails, since R_BIN_STATIC_PLUGINS/R_BIN_XTR_STATIC_PLUGINS are not defined. This fixes the build for these kind of setups. (In Debian does not built the mach code, since the Apple Public Source License is not compatible with the Debian Free Software Guidelines. Without the mach code there is not a single binxtr plugin) * Fix implicit declaration of function 'linux_generate_corefile' on i386 Noticed by Debian build farm. * Add support for SOURCE_DATE_EPOCH SOURCE_DATE_EPOCH can be used to make builds reproducible [0]. Note: radare suffers from a second problem making the build unreproducible: It captures the full build path. This is *not* covered by this change. [0] https://reproducible-builds.org/specs/source-date-epoch/
2016-09-28 17:17:43 +00:00
else
GIT_NOW=$(shell date "+%Y-%m-%d")
Debian patches (#5866) * Fix esil manpage Each manual page should start with a "NAME" section, which lists the name and a brief description of the page separated by "\-". The "NAME" section is parsed by lexgrog and used to generate a database that's queried by commands like apropos and whatis. Without this change lexgrog fails to parse the NAME section of this manual page. This was found by Debian's lintian tool (manpage-has-bad-whatis-entry). * Fix empty input line in manpages Found-By: lintian as manpage-has-errors-from-man * Fix rahash2 manpage .El (end list) is only valid after .Bl (begin list), but no list was started in this section. Found-By: lintian * Avoid build break if no static bin plugins are defined If one disables all static bin plugins, build currently fails, since R_BIN_STATIC_PLUGINS/R_BIN_XTR_STATIC_PLUGINS are not defined. This fixes the build for these kind of setups. (In Debian does not built the mach code, since the Apple Public Source License is not compatible with the Debian Free Software Guidelines. Without the mach code there is not a single binxtr plugin) * Fix implicit declaration of function 'linux_generate_corefile' on i386 Noticed by Debian build farm. * Add support for SOURCE_DATE_EPOCH SOURCE_DATE_EPOCH can be used to make builds reproducible [0]. Note: radare suffers from a second problem making the build unreproducible: It captures the full build path. This is *not* covered by this change. [0] https://reproducible-builds.org/specs/source-date-epoch/
2016-09-28 17:17:43 +00:00
endif
tap tiptap tip:
@echo tip $(GIT_TIP)
@echo tap $(GIT_TAP)
2021-04-15 19:16:33 +00:00
libr/include/r_version.h:
2016-01-25 12:19:41 +00:00
@echo Generating r_version.h file
2021-01-19 02:03:36 +00:00
@echo '#ifndef R_VERSION_H' > $@.tmp
@echo '#define R_VERSION_H 1' >> $@.tmp
@echo '#define R2_VERSION_COMMIT $(R2VC)' >> $@.tmp
@echo '#define R2_VERSION "$(R2_VERSION)"' >> $@.tmp
@echo '#define R2_VERSION_MAJOR $(R2_VERSION_MAJOR)' >> $@.tmp
@echo '#define R2_VERSION_MINOR $(R2_VERSION_MINOR)' >> $@.tmp
@echo '#define R2_VERSION_PATCH $(R2_VERSION_PATCH)' >> $@.tmp
@echo '#define R2_VERSION_NUMBER $(R2_VERSION_NUMBER)' >> $@.tmp
@echo '#define R2_GITTAP $(ESC)"$(GIT_TAP)$(ESC)"' >> $@.tmp
@echo '#define R2_GITTIP $(ESC)"$(GIT_TIP)$(ESC)"' >> $@.tmp
@echo '#define R2_BIRTH $(ESC)"$(GIT_NOW)$(BUILDSEC)$(ESC)"' >> $@.tmp
@echo '#endif' >> $@.tmp
2017-02-10 16:43:47 +00:00
@mv -f $@.tmp $@
2016-01-03 01:13:53 +00:00
@rm -f $@.tmp
* Initial import of the 'configure-plugins' script - accepts --static and --shared to setup which plugins you want to build statically in the library or dynamically - normalize .mk and plugin file names to adopt a single standard - WARNING: huge commit * Added 'mk/sloc.mk' with 'sloc' target to count lines with sloccount everywhere (yeah!) --HG-- rename : libr/asm/p/x86bea.mk => libr/asm/p/x86_bea.mk rename : libr/asm/p/x86nasm.mk => libr/asm/p/x86_nasm.mk rename : libr/asm/p/x86olly.mk => libr/asm/p/x86_olly.mk rename : libr/config.h => libr/config.h.head rename : libr/config.mk => libr/config.mk.head rename : libr/debug/p/dbg_gdb.c => libr/debug/p/debug_gdb.c rename : libr/debug/p/dbg_ptrace.c => libr/debug/p/debug_ptrace.c rename : libr/debug/p/dbg_libgdbwrap/Makefile => libr/debug/p/libgdbwrap/Makefile rename : libr/debug/p/dbg_libgdbwrap/README => libr/debug/p/libgdbwrap/README rename : libr/debug/p/dbg_libgdbwrap/client.c => libr/debug/p/libgdbwrap/client.c rename : libr/debug/p/dbg_libgdbwrap/gdbwrapper.c => libr/debug/p/libgdbwrap/gdbwrapper.c rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper-internals.h => libr/debug/p/libgdbwrap/include/gdbwrapper-internals.h rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper-stddef.h => libr/debug/p/libgdbwrap/include/gdbwrapper-stddef.h rename : libr/debug/p/dbg_libgdbwrap/include/gdbwrapper.h => libr/debug/p/libgdbwrap/include/gdbwrapper.h rename : libr/debug/p/dbg_libgdbwrap/include/libaspect.h => libr/debug/p/libgdbwrap/include/libaspect.h rename : libr/debug/p/dbg_libgdbwrap/include/libe2dbg.h => libr/debug/p/libgdbwrap/include/libe2dbg.h rename : libr/debug/p/dbg_libgdbwrap/include/revm.h => libr/debug/p/libgdbwrap/include/revm.h rename : libr/debug/p/dbg_libgdbwrap/interface.c => libr/debug/p/libgdbwrap/interface.c rename : libr/io/p/dbg.mk => libr/io/p/debug.mk rename : libr/io/p/io_dbg.c => libr/io/p/io_debug.c
2010-01-13 22:42:49 +00:00
plugins.cfg:
@if [ ! -e config-user.mk ]; then echo ; \
echo " Please, run ./configure first" ; echo ; exit 1 ; fi
$(SHELL) ./configure-plugins
w32:
sys/mingw32.sh
depgraph.png:
2016-09-02 15:13:03 +00:00
cd libr ; perl depgraph.pl dot | dot -Tpng -o../depgraph.png
android:
2016-01-22 19:53:01 +00:00
@if [ -z "$(NDK_ARCH)" ]; then echo "Set NDK_ARCH=[arm|arm64|mips|x86]" ; false; fi
sys/android-${NDK_ARCH}.sh
w32dist:
2015-03-20 12:07:56 +00:00
${MAKE} windist WINBITS=w32
w64dist:
${MAKE} windist WINBITS=w64
WINDIST=${WINBITS}dist
ZIPNAME?=radare2-${WINBITS}-${VERSION}.zip
2015-03-20 12:07:56 +00:00
2015-10-23 00:58:48 +00:00
C=$(shell printf "\033[32m")
R=$(shell printf "\033[0m")
2015-03-20 12:07:56 +00:00
windist:
2015-10-23 00:58:48 +00:00
@echo "${C}[WINDIST] Installing binaries and libraries${R}"
2015-03-20 12:07:56 +00:00
[ -n "${WINBITS}" ] || exit 1
rm -rf "radare2-${WINBITS}-${VERSION}" "${WINDIST}"
mkdir "${WINDIST}"
for FILE in `find libr | grep -e dll$$`; do cp "$$FILE" "${WINDIST}" ; done
for FILE in `find binr | grep -e exe$$`; do cp "$$FILE" "${WINDIST}" ; done
rm -f "${WINDIST}/plugin.dll"
2015-10-23 00:58:48 +00:00
@echo "${C}[WINDIST] Picking plugins from libraries${R}"
mkdir -p "${WINDIST}/libs"
2015-10-27 14:42:09 +00:00
mv "${WINDIST}/"lib*.dll "${WINDIST}/libs"
mkdir -p "${WINDIST}/plugins"
mv ${WINDIST}/*.dll "${WINDIST}/plugins"
mv ${WINDIST}/libs/* "${WINDIST}"
2015-10-23 00:58:48 +00:00
@echo "${C}[WINDIST] Do not include plugins for now${R}"
rm -rf "${WINDIST}/libs"
2015-10-23 00:58:48 +00:00
rm -rf ${WINDIST}/plugins/*
@echo "${C}[WINDIST] Copying web interface${R}"
mkdir -p "${WINDIST}/www"
cp -rf shlr/www/* "${WINDIST}/www"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/magic"
cp -f libr/magic/d/default/* "${WINDIST}/share/radare2/${VERSION}/magic"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/syscall"
cp -f libr/syscall/d/*.sdb "${WINDIST}/share/radare2/${VERSION}/syscall"
2016-07-03 11:12:30 +00:00
mkdir -p "${WINDIST}/share/radare2/${VERSION}/sysregs"
cp -f libr/sysregs/d/*.sdb "${WINDIST}/share/radare2/${VERSION}/sysregs"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/fcnsign"
2015-10-30 10:08:58 +00:00
cp -f libr/anal/d/*.sdb "${WINDIST}/share/radare2/${VERSION}/fcnsign"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/platform"
cp -f libr/arch/d/*.r2 "${WINDIST}/share/radare2/${VERSION}/platform"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/opcodes"
cp -f libr/asm/d/*.sdb "${WINDIST}/share/radare2/${VERSION}/opcodes"
mkdir -p "${WINDIST}/share/radare2/${VERSION}/flag"
cp -f libr/flag/d/*.r2 "${WINDIST}/share/radare2/${VERSION}/flag"
mkdir -p "${WINDIST}/share/doc/radare2"
mkdir -p "${WINDIST}/include/libr/sdb"
2016-07-10 08:56:55 +00:00
mkdir -p "${WINDIST}/include/libr/r_util"
mkdir -p "${WINDIST}/include/libr/r_anal"
2015-10-23 00:58:48 +00:00
@echo "${C}[WINDIST] Copying development files${R}"
cp -f shlr/sdb/include/*.h "${WINDIST}/include/libr/sdb/"
2016-07-09 21:04:38 +00:00
cp -f libr/include/r_util/*.h "${WINDIST}/include/libr/r_util/"
cp -f libr/include/r_anal/*.h "${WINDIST}/include/libr/r_anal/"
cp -f libr/include/*.h "${WINDIST}/include/libr"
#mkdir -p "${WINDIST}/include/libr/sflib"
@cp -f doc/fortunes.* "${WINDIST}/share/doc/radare2"
2016-01-20 20:15:33 +00:00
@mkdir -p "${WINDIST}/share/radare2/${VERSION}/format/dll"
2016-06-26 02:44:59 +00:00
@cp -f libr/bin/d/elf32 "${WINDIST}/share/radare2/${VERSION}/format"
@cp -f libr/bin/d/elf64 "${WINDIST}/share/radare2/${VERSION}/format"
@cp -f libr/bin/d/elf_enums "${WINDIST}/share/radare2/${VERSION}/format"
@cp -f libr/bin/d/pe32 "${WINDIST}/share/radare2/${VERSION}/format"
@cp -f libr/bin/d/trx "${WINDIST}/share/radare2/${VERSION}/format"
2016-01-20 20:15:33 +00:00
@cp -f libr/bin/d/dll/*.sdb "${WINDIST}/share/radare2/${VERSION}/format/dll"
@mkdir -p "${WINDIST}/share/radare2/${VERSION}/cons"
@cp -PRpf libr/cons/d/* "${WINDIST}/share/radare2/${VERSION}/cons"
@mkdir -p "${WINDIST}/share/radare2/${VERSION}/hud"
@cp -f doc/hud "${WINDIST}/share/radare2/${VERSION}/hud/main"
@mv "${WINDIST}" "radare2-${WINBITS}-${VERSION}"
@rm -f "radare2-${WINBITS}-${VERSION}.zip"
2015-05-25 16:27:59 +00:00
ifneq ($(USE_ZIP),NO)
$(ZIP) -r "${ZIPNAME}" "radare2-${WINBITS}-${VERSION}"
2015-05-25 16:27:59 +00:00
endif
clean:
2018-06-16 15:51:31 +00:00
rm -f libr/libr.a libr/libr.dylib libr/include/r_version.h
rm -rf libr/.libr
-rm -f `find * | grep arm | grep dis.a$$`
for DIR in shlr libr binr ; do $(MAKE) -C "$$DIR" clean ; done
rm -f `find . -type f -name '*.d'` || for a in `find . -type f -name '*.d'` ; do rm -f "$$a" ; done
rm -f `find . -type f -name '*.o'` || for a in `find . -type f -name '*.o'` ; do rm -f "$$a" ; 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
2009-06-15 02:44:05 +00:00
distclean mrproper: clean
2023-03-22 12:08:29 +00:00
rm -rf libr/arch/p/arm/v35/arch-arm*
rm -rf shlr/capstone
pkgcfg:
cd libr && ${MAKE} pkgcfg
install-man:
mkdir -p "${DESTDIR}${MANDIR}/man1"
2016-01-20 01:22:00 +00:00
mkdir -p "${DESTDIR}${MANDIR}/man7"
for FILE in man/*.1 ; do ${INSTALL_MAN} "$$FILE" "${DESTDIR}${MANDIR}/man1" ; done
cd "${DESTDIR}${MANDIR}/man1" && ln -fs radare2.1 r2.1
2016-01-20 01:22:00 +00:00
for FILE in man/*.7 ; do ${INSTALL_MAN} "$$FILE" "${DESTDIR}${MANDIR}/man7" ; done
install-man-symlink:
mkdir -p "${DESTDIR}${MANDIR}/man1"
2016-01-20 01:22:00 +00:00
mkdir -p "${DESTDIR}${MANDIR}/man7"
2017-10-18 15:53:00 +00:00
for FILE in $(shell cd man && ls *.1) ; do \
ln -fs "${PWD}/man/$$FILE" "${DESTDIR}${MANDIR}/man1/$$FILE" ; done
cd "${DESTDIR}${MANDIR}/man1" && ln -fs radare2.1 r2.1
2023-06-25 17:48:03 +00:00
for FILE in $(shell cd man && ls *.7) ; do \
2016-01-20 01:22:00 +00:00
ln -fs "${PWD}/man/$$FILE" "${DESTDIR}${MANDIR}/man7/$$FILE" ; done
install-doc:
mkdir -p "${DESTDIR}${DOCDIR}"
${INSTALL_DIR} "${DESTDIR}${DOCDIR}"
2017-10-18 15:53:00 +00:00
@echo ${DOCDIR}
2017-07-16 08:39:01 +00:00
for FILE in doc/* ; do \
2017-10-18 11:14:17 +00:00
if [ -f $$FILE ]; then ${INSTALL_DATA} $$FILE "${DESTDIR}${DOCDIR}" || true ; fi; \
2017-07-16 08:39:01 +00:00
done
install-doc-symlink:
mkdir -p "${DESTDIR}${DOCDIR}"
${INSTALL_DIR} "${DESTDIR}${DOCDIR}"
2017-10-18 15:53:00 +00:00
for FILE in $(shell cd doc ; ls) ; do \
ln -fs "$(PWD)/doc/$$FILE" "${DESTDIR}${DOCDIR}" ; done
install: install-doc install-man install-www install-pkgconfig
$(MAKE) -C libr install
$(MAKE) -C binr install
$(MAKE) -C shlr install
for DIR in ${DATADIRS} ; do $(MAKE) -C "$$DIR" install ; done
cd "$(DESTDIR)$(LIBDIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
cd "$(DESTDIR)$(DATADIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
rm -rf "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud"
mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud"
mkdir -p "${DESTDIR}${BINDIR}"
#${INSTALL_SCRIPT} "${PWD}/sys/indent.sh" "${DESTDIR}${BINDIR}/r2-indent"
cp -f doc/hud "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud/main"
mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/"
2017-10-18 15:53:00 +00:00
$(SHELL) ./configure-plugins --rm-static $(DESTDIR)$(LIBDIR)/radare2/last/
install-www:
rm -rf "${DESTDIR}${WWWROOT}"
rm -rf "${DESTDIR}${LIBDIR}/radare2/${VERSION}/www" # old dir
mkdir -p "${DESTDIR}${WWWROOT}"
cp -rf shlr/www/* "${DESTDIR}${WWWROOT}"
symstall-www:
rm -rf "${DESTDIR}${WWWROOT}"
rm -rf "${DESTDIR}${LIBDIR}/radare2/${VERSION}/www" # old dir
mkdir -p "${DESTDIR}${WWWROOT}"
2017-10-18 15:53:00 +00:00
for FILE in $(shell cd shlr/www ; ls) ; do \
ln -fs "$(PWD)/shlr/www/$$FILE" "$(DESTDIR)$(WWWROOT)" ; done
2020-04-20 10:14:28 +00:00
install-pkgconfig pkgconfig-install:
@${INSTALL_DIR} "${DESTDIR}${LIBDIR}/pkgconfig"
for FILE in $(shell cd pkgcfg ; ls *.pc) ; do \
cp -f "$(PWD)/pkgcfg/$$FILE" "${DESTDIR}${LIBDIR}/pkgconfig/$$FILE" ; done
install-pkgconfig-symlink pkgconfig-symstall symstall-pkgconfig:
mkdir -p "${DESTDIR}${LIBDIR}/pkgconfig"
@${INSTALL_DIR} "${DESTDIR}${LIBDIR}/pkgconfig"
2017-10-18 15:53:00 +00:00
for FILE in $(shell cd pkgcfg ; ls *.pc) ; do \
ln -fs "$(PWD)/pkgcfg/$$FILE" "${DESTDIR}${LIBDIR}/pkgconfig/$$FILE" ; done
symstall-sdb:
for DIR in ${DATADIRS} ; do (\
cd "$$DIR" ; \
echo "$$DIR" ; \
${MAKE} install-symlink ); \
* Install includes in windows dist * Import linux-x86-32/64 and darwin-x86-32 sflib includedirs * Simplify data installation for magic, egg, syscall and asm * Set R2_INCDIR in r_userconf * Make ragg2-cc much smarter - use ragg2 -v to get paths and version - accept new flags -a -b -k for arch, bits and kernel - supports crosscompilation --HG-- rename : libr/magic/d/OpenBSD => libr/magic/d/default/OpenBSD rename : libr/magic/d/archive => libr/magic/d/default/archive rename : libr/magic/d/cafebabe => libr/magic/d/default/cafebabe rename : libr/magic/d/cisco => libr/magic/d/default/cisco rename : libr/magic/d/database => libr/magic/d/default/database rename : libr/magic/d/editors => libr/magic/d/default/editors rename : libr/magic/d/elf => libr/magic/d/default/elf rename : libr/magic/d/filesystems => libr/magic/d/default/filesystems rename : libr/magic/d/flash => libr/magic/d/default/flash rename : libr/magic/d/freebsd => libr/magic/d/default/freebsd rename : libr/magic/d/gimp => libr/magic/d/default/gimp rename : libr/magic/d/images => libr/magic/d/default/images rename : libr/magic/d/java => libr/magic/d/default/java rename : libr/magic/d/jpeg => libr/magic/d/default/jpeg rename : libr/magic/d/linux => libr/magic/d/default/linux rename : libr/magic/d/mail.news => libr/magic/d/default/mail.news rename : libr/magic/d/matroska => libr/magic/d/default/matroska rename : libr/magic/d/mime => libr/magic/d/default/mime rename : libr/magic/d/msdos => libr/magic/d/default/msdos rename : libr/magic/d/netbsd => libr/magic/d/default/netbsd rename : libr/magic/d/pdf => libr/magic/d/default/pdf rename : libr/magic/d/perl => libr/magic/d/default/perl rename : libr/magic/d/python => libr/magic/d/default/python rename : libr/magic/d/riff => libr/magic/d/default/riff rename : libr/magic/d/sniffer => libr/magic/d/default/sniffer rename : libr/magic/d/sql => libr/magic/d/default/sql rename : libr/magic/d/sun => libr/magic/d/default/sun rename : libr/magic/d/uuencode => libr/magic/d/default/uuencode
2011-11-29 02:14:27 +00:00
done
symstall install-symlink: install-man-symlink install-doc-symlink install-pkgconfig-symlink symstall-www symstall-sdb
cd libr && ${MAKE} install-symlink
cd binr && ${MAKE} install-symlink
cd shlr && ${MAKE} install-symlink
mkdir -p "${DESTDIR}${BINDIR}"
ln -fs "${PWD}/sys/indent.sh" "${DESTDIR}${BINDIR}/r2-indent"
mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud"
ln -fs "${PWD}/doc/hud" "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud/main"
2018-05-30 16:11:14 +00:00
#mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/flag"
#ln -fs $(PWD)/libr/flag/d/tags.r2 "${DESTDIR}${DATADIR}/radare2/${VERSION}/flag/tags.r2"
cd "$(DESTDIR)$(LIBDIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
cd "$(DESTDIR)$(DATADIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/"
$(SHELL) ./configure-plugins --rm-static $(DESTDIR)/$(LIBDIR)/radare2/last/
deinstall uninstall:
rm -f $(DESTDIR)$(BINDIR)/r2-indent
2018-05-20 10:03:35 +00:00
cd libr && ${MAKE} uninstall
cd binr && ${MAKE} uninstall
cd shlr && ${MAKE} uninstall
cd libr/util/d && ${MAKE} uninstall
2018-05-20 10:03:35 +00:00
cd libr/syscall/d && ${MAKE} uninstall
cd libr/anal/d && ${MAKE} uninstall
cd libr/arch/d && ${MAKE} uninstall
@echo
@echo "Run 'make purge' to also remove installed files from previous versions of r2"
@echo
purge-doc:
rm -rf "${DESTDIR}${DOCDIR}"
cd man ; for FILE in *.1 ; do rm -f "${DESTDIR}${MANDIR}/man1/$$FILE" ; done
rm -f "${DESTDIR}${MANDIR}/man1/r2.1"
user-wrap=echo "\#!/bin/sh" > ~/bin/"$1" \
; echo "${PWD}/env.sh '${PREFIX}' '$1' \"\$$@\"" >> ~/bin/"$1" \
; chmod +x ~/bin/"$1" ;
user-install:
mkdir -p ~/bin
$(foreach mod,$(R2BINS),$(call user-wrap,$(mod)))
2015-09-08 13:53:06 +00:00
cd ~/bin ; ln -fs radare2 r2
user-uninstall:
$(foreach mod,$(R2BINS),rm -f ~/bin/"$(mod)")
2015-09-08 21:47:45 +00:00
rm -f ~/bin/r2
-rmdir ~/bin
purge-dev:
rm -f "${DESTDIR}${LIBDIR}/libr_"*".${EXT_AR}"
rm -f "${DESTDIR}${LIBDIR}/pkgconfig/r_"*.pc
rm -rf "${DESTDIR}${INCLUDEDIR}/libr"
rm -f "${DESTDIR}${LIBDIR}/radare2/${VERSION}/-"*
2017-05-29 20:47:51 +00:00
# required for EXT_SO
include libr/config.mk
strip:
2018-01-28 02:12:50 +00:00
#-for FILE in ${R2BINS} ; do ${STRIP} -s "${DESTDIR}${BINDIR}/$$FILE" 2> /dev/null ; done
ifeq ($(HOST_OS),darwin)
-${STRIP} -STxX "${DESTDIR}${LIBDIR}/libr_"*".${EXT_SO}"
else
-${STRIP} -s "${DESTDIR}${LIBDIR}/libr_"*".${EXT_SO}"
endif
purge: purge-doc purge-dev uninstall user-uninstall
for FILE in ${R2BINS} ; do rm -f "${DESTDIR}${BINDIR}/$$FILE" ; done
rm -f "${DESTDIR}${BINDIR}/ragg2-cc"
rm -f "${DESTDIR}${BINDIR}/r2"
rm -f "${DESTDIR}${LIBDIR}/libr_"*
rm -f "${DESTDIR}${LIBDIR}/libr2"*".${EXT_SO}"
rm -rf "${DESTDIR}${LIBDIR}/radare2"
rm -rf "${DESTDIR}${INCLUDEDIR}/libr"
rm -rf "${DESTDIR}${DATADIR}/radare2"
system-purge: purge
sys/purge.sh
dist:
$(MAKE) -C dist/tarball
cp -f dist/tarball/*.$(TAREXT) .
cp -f dist/tarball/*.zip .
shot:
$(MAKE) -C dist/tarball VERSION=`date '+%Y%m%d'`
tests test:
2022-10-17 18:52:09 +00:00
$(MAKE) -j -C test
2017-11-15 15:43:31 +00:00
macos-sign:
$(MAKE) -C binr/radare2 macos-sign
2016-01-22 19:53:01 +00:00
2017-11-15 15:43:31 +00:00
macos-sign-libs:
$(MAKE) -C binr/radare2 macos-sign-libs
osx-pkg:
sys/osx-pkg.sh $(VERSION)
quality:
./sys/shellcheck.sh
ctags:
@ctags **/*.c **/*.h > /dev/null
menu nconfig:
./sys/menu.sh || true
include mk/meson.mk
shlr/capstone:
$(MAKE) -C shlr capstone
include ${MKPLUGINS}
.PHONY: all clean install symstall uninstall deinstall strip
.PHONY: libr binr install-man w32dist tests dist shot pkgcfg depgraph.png love
.PHONY: purge system-purge
.PHONY: shlr/capstone