2015-06-22 16:34:03 +01:00
|
|
|
include ../global.mk
|
2013-06-05 01:13:05 +02:00
|
|
|
include ../config-user.mk
|
2015-07-13 01:54:21 +02:00
|
|
|
# for EXT_EXE
|
|
|
|
include ../libr/config.mk
|
2015-10-09 18:58:03 +03:00
|
|
|
include ../mk/platform.mk
|
2015-07-13 11:21:21 +02:00
|
|
|
_INCLUDE_MK_GCC_=
|
|
|
|
include ../mk/${COMPILER}.mk
|
2013-06-05 01:13:05 +02:00
|
|
|
|
2016-01-22 20:53:01 +01:00
|
|
|
# Build against last capstone release or next
|
|
|
|
CS_RELEASE=0
|
|
|
|
|
2014-03-15 01:59:16 +01:00
|
|
|
WGET?=wget
|
2016-01-22 20:53:01 +01:00
|
|
|
|
|
|
|
ifeq ($(CS_RELEASE),1)
|
|
|
|
CS_VER=3.0.4
|
|
|
|
CS_TAR=https://codeload.github.com/aquynh/capstone/tar.gz/$(CS_VER)
|
|
|
|
#CS_TAR=http://capstone-engine.org/download/$(CS_VER)/capstone-$(CS_VER).tgz
|
|
|
|
CS_PATCHES=0
|
|
|
|
else
|
2014-05-15 01:36:04 +02:00
|
|
|
CS_TAR=
|
2015-06-22 16:34:03 +01:00
|
|
|
CS_URL=$(GIT_PREFIX)github.com/aquynh/capstone.git
|
2016-01-20 16:28:07 +01:00
|
|
|
CS_UPD=20160120
|
2014-10-16 10:19:37 +02:00
|
|
|
CS_BRA=next
|
2016-01-20 16:28:07 +01:00
|
|
|
CS_TIP=3722c74f69ffa5b705d36cd49c19acdf958a9b7a
|
2015-05-12 02:17:26 +02:00
|
|
|
# REVERT THIS COMMIT BECAUSE ITS WRONG
|
2015-08-13 16:55:58 +02:00
|
|
|
CS_REV=
|
|
|
|
#21b9b25e9dae4af0ef309d4089a54e53b8f5b479
|
2015-08-13 20:20:06 +02:00
|
|
|
CS_PATCHES=1
|
2016-01-22 20:53:01 +01:00
|
|
|
endif
|
2014-03-07 02:00:27 +01:00
|
|
|
|
2014-08-31 18:09:25 +02:00
|
|
|
.PHONY: capstone-sync capstone-build all clean mrproper libgdbr libwind
|
2014-03-07 02:00:27 +01:00
|
|
|
|
2013-08-27 00:52:04 +02:00
|
|
|
HOST_CC?=gcc
|
2013-12-22 04:37:05 +01:00
|
|
|
SHLR?=$(shell pwd)
|
|
|
|
AR?=ar
|
|
|
|
RANLIB?=ranlib
|
2015-07-14 12:13:08 +02:00
|
|
|
MODS=sdb zip udis86 java tcc
|
2015-02-07 01:41:54 +01:00
|
|
|
ifeq (1,$(WITH_GPL))
|
|
|
|
MODS+=grub
|
|
|
|
endif
|
2015-07-14 12:13:08 +02:00
|
|
|
MODS+=gdb
|
2014-04-02 01:32:18 +02:00
|
|
|
SDB_URL=git://github.com/radare/sdb
|
|
|
|
#SDB_URL=/Users/pancake/prg/sdb
|
2013-05-14 01:53:52 +02:00
|
|
|
PWD=$(shell pwd)
|
|
|
|
SDB_CONFIG=${PWD}/sdb-config.mk
|
2013-05-01 01:29:06 +02:00
|
|
|
|
2015-10-09 22:24:15 +03:00
|
|
|
CFLAGS_SHARED=${PIC_CFLAGS}
|
2014-07-18 16:12:33 +04:00
|
|
|
|
2015-07-13 01:54:21 +02:00
|
|
|
ifeq (${EXT_SO},)
|
|
|
|
all:
|
|
|
|
echo EXT_SO not defined
|
|
|
|
exit 1
|
|
|
|
endif
|
|
|
|
|
2015-07-14 12:13:08 +02:00
|
|
|
preall: targets libwind capstone-build
|
2015-10-26 21:33:45 +00:00
|
|
|
@for MOD in ${MODS} ; do \
|
|
|
|
echo $(MAKE) -C $$MOD ; \
|
|
|
|
$(MAKE) -C $$MOD HAVE_VALA= ROOT="${PWD}/../" CC="${CC}" ; \
|
2013-05-14 01:53:52 +02:00
|
|
|
done
|
2012-09-03 01:27:52 +02:00
|
|
|
|
2015-08-09 04:32:22 +02:00
|
|
|
SDBFILES=sdb/src/.sdb${EXT_EXE} sdb/sdb${EXT_EXE} sdb/src/.sdb sdb/sdb
|
|
|
|
PREMODS=capstone gdb wind sdb
|
|
|
|
|
2012-08-10 11:35:38 +02:00
|
|
|
clean mrproper:
|
2015-08-09 04:32:22 +02:00
|
|
|
rm -f ${SDBFILES}
|
2015-10-26 21:33:45 +00:00
|
|
|
@for MOD in ${PREMODS} ${MODS} ; do $(MAKE) -C $$MOD clean ; done
|
2013-05-01 01:29:06 +02:00
|
|
|
|
2015-07-13 11:21:21 +02:00
|
|
|
ifeq ($(BUILD_OS),windows)
|
|
|
|
BUILD_EXT_EXE=.exe
|
|
|
|
else
|
|
|
|
BUILD_EXT_EXE=
|
|
|
|
endif
|
|
|
|
|
2015-07-14 12:13:08 +02:00
|
|
|
SDB_TARGETS=$(SDBLIB)
|
|
|
|
ifneq (${EXT_EXE},)
|
|
|
|
SDB_TARGETS+=sdb/sdb${EXT_EXE}
|
|
|
|
else
|
|
|
|
SDB_TARGETS+=sdb/sdb
|
|
|
|
endif
|
2015-07-14 18:38:16 +02:00
|
|
|
|
2015-08-09 04:28:31 +02:00
|
|
|
ifeq ($(filter sdb/sdb${BUILD_EXT_EXE},$(SDB_TARGETS)),)
|
2015-07-14 12:13:08 +02:00
|
|
|
SDB_TARGETS+=sdb/sdb${BUILD_EXT_EXE}
|
|
|
|
endif
|
|
|
|
|
2015-07-15 00:52:23 +02:00
|
|
|
targets:
|
2015-10-26 21:33:45 +00:00
|
|
|
for TARGET in ${SDB_TARGETS} ; do ${MAKE} $$TARGET ; done
|
2015-07-14 12:13:08 +02:00
|
|
|
|
|
|
|
${SDB_TARGETS}:
|
2015-07-13 11:21:21 +02:00
|
|
|
@echo
|
|
|
|
@echo BUILD SUMARY
|
|
|
|
@echo ============
|
|
|
|
@echo COMPILER ${COMPILER}
|
|
|
|
@echo CC ${CC}
|
|
|
|
@echo HOST_CC ${HOST_CC}
|
|
|
|
@echo HOST_OS ${HOST_OS}
|
|
|
|
@echo BUILD_OS ${BUILD_OS}
|
|
|
|
@echo ============
|
|
|
|
@echo
|
2015-07-13 15:22:37 +02:00
|
|
|
@echo ">>>>>>>>>>>>>>>>"
|
|
|
|
@echo "NATIVE BUILD SDB"
|
|
|
|
@echo ">>>>>>>>>>>>>>>>"
|
|
|
|
@echo
|
|
|
|
$(MAKE) -C sdb clean
|
|
|
|
$(MAKE) -C sdb src/sdb_version.h
|
|
|
|
$(MAKE) -C sdb/src CC=${HOST_CC} CFLAGS='${HOST_CFLAGS} -fPIC' bin
|
|
|
|
cp -f sdb/src/sdb${BUILD_EXT_EXE} sdb/src/.sdb${BUILD_EXT_EXE}
|
|
|
|
@echo
|
|
|
|
@echo ">>>>>>>>>>>>>>>>"
|
|
|
|
@echo "TARGET BUILD SDB"
|
|
|
|
@echo ">>>>>>>>>>>>>>>>"
|
|
|
|
@echo
|
|
|
|
$(MAKE) -C sdb clean
|
|
|
|
cd sdb ; $(MAKE) src/sdb_version.h
|
2014-07-18 16:12:33 +04:00
|
|
|
cd sdb/src ; $(MAKE) ARCH=xxx RANLIB="${RANLIB}" CFLAGS_SHARED="${CFLAGS_SHARED}" \
|
2015-01-29 12:30:07 +01:00
|
|
|
CC="${CC}" AR="${AR}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" libsdb.a
|
2013-08-27 00:52:04 +02:00
|
|
|
${RANLIB} sdb/src/libsdb.a
|
2015-10-15 01:50:30 +02:00
|
|
|
ifneq (${EXT_AR},a)
|
2015-07-13 11:21:21 +02:00
|
|
|
-cp -f sdb/src/libsdb.a sdb/src/libsdb.${EXT_AR}
|
2015-07-13 15:22:37 +02:00
|
|
|
endif
|
2015-07-13 11:21:21 +02:00
|
|
|
rm -f $@
|
2015-07-14 00:08:04 +02:00
|
|
|
cp -f sdb/src/.sdb${BUILD_EXT_EXE} $@
|
2013-08-27 00:52:04 +02:00
|
|
|
|
2013-05-01 01:29:06 +02:00
|
|
|
.PHONY: sdb-sync sync-sdb sdbclean
|
2013-12-31 05:30:39 +01:00
|
|
|
F=README.md config.mk src Makefile Jamroot
|
2013-05-01 01:29:06 +02:00
|
|
|
SYNCFILES=$(addprefix sdb.vc/,${F})
|
|
|
|
I=../libr/include
|
|
|
|
|
2014-02-21 15:20:41 +01:00
|
|
|
libgdbr:
|
2014-03-07 02:00:27 +01:00
|
|
|
cd gdb ; $(MAKE) all
|
2014-02-21 15:20:41 +01:00
|
|
|
|
2014-08-31 18:09:25 +02:00
|
|
|
libwind:
|
2015-07-14 12:13:08 +02:00
|
|
|
cd wind ; $(MAKE) all
|
2014-08-31 18:09:25 +02:00
|
|
|
|
2015-07-13 11:21:21 +02:00
|
|
|
sdb-clean clean-sdb:
|
|
|
|
$(MAKE) -C sdb clean
|
|
|
|
rm -f sdb/sdb.exe
|
|
|
|
rm -f sdb/src/libsdb.a
|
|
|
|
|
2013-05-01 01:29:06 +02:00
|
|
|
sdb-sync sync-sdb:
|
|
|
|
rm -rf sdb sdb.vc
|
2014-12-29 23:19:50 -05:00
|
|
|
git clone --depth 1 ${SDB_URL} sdb.vc
|
2013-05-01 01:29:06 +02:00
|
|
|
mkdir -p sdb
|
|
|
|
cp -rf ${SYNCFILES} sdb
|
|
|
|
rm -rf sdb.vc $I/sdb
|
|
|
|
mkdir -p $I/sdb
|
2015-07-13 15:22:37 +02:00
|
|
|
rm -f src/sdb_version.h
|
|
|
|
cd sdb ; $(MAKE) src/sdb_version.h
|
2013-05-01 01:29:06 +02:00
|
|
|
cp -f sdb/src/*.h $I/sdb
|
|
|
|
echo '#include <sdb/sdb.h>' > $I/sdb.h
|
2013-05-01 01:43:35 +02:00
|
|
|
mkdir -p sdb/test sdb/memcache
|
2013-07-19 03:35:45 +02:00
|
|
|
sed -e 's,HAVE_VALA=,HAVE_VALA=#,' sdb/config.mk > .t
|
|
|
|
mv .t sdb/config.mk
|
2013-06-05 01:13:05 +02:00
|
|
|
echo all clean mrproper: | tee sdb/test/Makefile > sdb/memcache/Makefile
|
2013-05-01 01:29:06 +02:00
|
|
|
git add $I/sdb*
|
|
|
|
git add sdb
|
2013-06-05 01:13:05 +02:00
|
|
|
|
|
|
|
$(TCCLIB) libr_tcc/libr_tcc.a:
|
2014-05-09 01:09:09 +02:00
|
|
|
cd libr_tcc ; $(MAKE)
|
2013-06-05 01:13:05 +02:00
|
|
|
|
2013-06-10 00:28:55 +02:00
|
|
|
udis-sync udis86-sync sync-udis sync-udis86:
|
2014-05-09 01:09:09 +02:00
|
|
|
cd udis86 ; $(MAKE) sync
|
2013-06-10 00:28:55 +02:00
|
|
|
|
2013-06-05 01:13:05 +02:00
|
|
|
tcc-clean tccclean:
|
2014-05-09 01:09:09 +02:00
|
|
|
cd libr_tcc ; $(MAKE) clean
|
2013-06-05 01:13:05 +02:00
|
|
|
|
|
|
|
CFILES=i386-asm.c i386-gen.c libtcc.c tccasm.c tccelf.c tccgen.c tccpp.c
|
|
|
|
HFILES=tcc.h i386-asm.h tcclib.h tcctok.h stab.h
|
2013-06-05 09:29:27 +02:00
|
|
|
HFILES+=elf.h libtcc.h config.h i386-tok.h
|
2013-06-05 01:13:05 +02:00
|
|
|
|
|
|
|
# TODO: use mob branch?
|
|
|
|
|
|
|
|
.PHONY: sdb-sync sync-sdb sdbclean
|
|
|
|
tcc-sync sync-tcc:
|
|
|
|
rm -rf _
|
2014-12-29 23:19:50 -05:00
|
|
|
git clone --depth 1 git://repo.or.cz/tinycc.git _
|
2013-06-05 01:13:05 +02:00
|
|
|
cd _ ; ./configure --prefix=${PREFIX}
|
|
|
|
mkdir -p tcc
|
2015-10-26 21:33:45 +00:00
|
|
|
for FILE in ${CFILES} ${HFILES} ; do cp -f _/$$FILE tcc ; done
|
2013-06-05 01:13:05 +02:00
|
|
|
cp -f _/VERSION _/COPYING _/stab.def tcc
|
|
|
|
git add tcc
|
|
|
|
rm -rf _
|
2013-06-05 09:29:27 +02:00
|
|
|
|
2015-10-26 21:33:45 +00:00
|
|
|
|
2013-06-05 09:29:27 +02:00
|
|
|
install:
|
2015-10-26 21:33:45 +00:00
|
|
|
#mkdir -p ${DESTDIR}${LIBDIR}
|
|
|
|
#cp -f tcc/libr_tcc* ${DESTDIR}${LIBDIR}
|
|
|
|
#cp -f zip/libr_z* ${DESTDIR}${LIBDIR}
|
2013-06-05 09:29:27 +02:00
|
|
|
|
2013-06-05 16:15:39 +02:00
|
|
|
install-symlink symstall:
|
2015-10-26 21:33:45 +00:00
|
|
|
mkdir -p "${DESTDIR}${LIBDIR}"
|
|
|
|
#cd tcc ; for FILE in libr_tcc* ; do \
|
|
|
|
# ln -fs `pwd`/$$FILE ${DESTDIR}${LIBDIR}/$$FILE ; done
|
2013-06-05 09:29:27 +02:00
|
|
|
|
|
|
|
uninstall deinstall:
|
2015-10-26 21:33:45 +00:00
|
|
|
#rm -f ${DESTDIR}${LIBDIR}/libr_tcc*
|
|
|
|
#rm -f ${DESTDIR}${LIBDIR}/libr_z*
|
2014-03-07 02:00:27 +01:00
|
|
|
|
2014-06-24 12:48:29 +02:00
|
|
|
ifeq ($(USE_CAPSTONE),1)
|
|
|
|
# Do nothing here
|
|
|
|
capstone:
|
|
|
|
|
|
|
|
capstone-sync:
|
|
|
|
|
|
|
|
capstone-build:
|
|
|
|
|
|
|
|
else
|
2014-03-07 03:16:10 +01:00
|
|
|
|
2016-01-22 20:53:01 +01:00
|
|
|
ifeq ($(CS_RELEASE),1)
|
2014-03-07 03:16:10 +01:00
|
|
|
capstone-sync: capstone
|
|
|
|
|
2014-04-18 17:18:48 +02:00
|
|
|
capstone-clean:
|
|
|
|
cd capstone ; $(MAKE) clean
|
|
|
|
|
2014-03-07 03:16:10 +01:00
|
|
|
capstone: capstone-$(CS_VER).tar.gz
|
|
|
|
tar xzvf capstone-$(CS_VER).tar.gz
|
|
|
|
rm -rf capstone
|
|
|
|
mv capstone-$(CS_VER) capstone
|
2016-01-22 20:53:01 +01:00
|
|
|
ifeq ($(CS_PATCHES),1)
|
2016-01-23 21:47:01 +01:00
|
|
|
cd capstone ; for PATCH in ../capstone-patches/* ; do patch -tp1 < $$PATCH ; done
|
2016-01-22 20:53:01 +01:00
|
|
|
endif
|
|
|
|
mkdir -p capstone/include/capstone
|
|
|
|
cp -rf capstone/include/*.h capstone/include/capstone
|
2014-03-07 03:16:10 +01:00
|
|
|
|
|
|
|
capstone-$(CS_VER).tar.gz:
|
2014-03-15 01:59:16 +01:00
|
|
|
$(WGET) --no-check-certificate -O capstone-$(CS_VER).tar.gz -c $(CS_TAR)
|
2016-01-22 20:53:01 +01:00
|
|
|
else
|
|
|
|
|
|
|
|
capstone: capstone-sync
|
|
|
|
|
|
|
|
capstone-sync:
|
|
|
|
"$(SHELL)" capstone.sh "${CS_URL}" "${CS_BRA}" "${CS_TIP}" "${CS_REV}"
|
|
|
|
ifeq ($(CS_PATCHES),1)
|
|
|
|
cd capstone ; git reset --hard
|
2016-01-23 21:47:01 +01:00
|
|
|
cd capstone ; for PATCH in ../capstone-patches/* ; do patch -tp1 < $$PATCH ; done
|
2016-01-22 20:53:01 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
.PHONY: capstone
|
2014-03-07 03:16:10 +01:00
|
|
|
endif
|
2014-05-07 17:05:42 +02:00
|
|
|
|
2014-07-02 02:57:18 +02:00
|
|
|
CAPSTONE_CFLAGS=-g
|
|
|
|
|
2015-07-13 02:45:45 +02:00
|
|
|
ifeq (${EXT_AR},)
|
|
|
|
all:
|
|
|
|
echo EXT_AR is not defined
|
|
|
|
exit 1
|
|
|
|
endif
|
|
|
|
|
2014-05-07 17:05:42 +02:00
|
|
|
capstone-build: capstone
|
2014-07-02 02:57:18 +02:00
|
|
|
cd capstone && CFLAGS="-Dmips=mips ${CAPSTONE_CFLAGS} $(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
2014-07-18 09:01:36 +02:00
|
|
|
$(MAKE) CC="$(CC)" AR_EXT=a IS_CYGWIN=0 CAPSTONE_STATIC=yes CAPSTONE_SHARED=no \
|
2015-07-13 02:45:45 +02:00
|
|
|
RANLIB="$(RANLIB)" AR="$(AR)" IS_MINGW=0 libcapstone.a
|
2015-10-15 01:50:30 +02:00
|
|
|
ifneq (${EXT_AR},a)
|
2015-07-13 11:21:21 +02:00
|
|
|
-cp -f capstone/libcapstone.a capstone/libcapstone.${EXT_AR}
|
2014-06-24 12:48:29 +02:00
|
|
|
endif
|
2015-10-15 01:50:30 +02:00
|
|
|
endif
|