radare2/shlr/Makefile

259 lines
5.8 KiB
Makefile
Raw Normal View History

include ../global.mk
include ../config-user.mk
# for EXT_EXE
include ../libr/config.mk
_INCLUDE_MK_GCC_=
include ../mk/${COMPILER}.mk
WGET?=wget
2014-12-16 23:24:07 +00:00
CS_VER=3.0
CS_TAR=http://capstone-engine.org/download/$(CS_VER)/capstone-$(CS_VER).tgz
2014-05-14 23:36:04 +00:00
CS_TAR=
CS_URL=$(GIT_PREFIX)github.com/aquynh/capstone.git
CS_UPD=20150630
CS_BRA=next
CS_TIP=fec23ae5311473643ace79d47dfcf0b7d0d6a658
# REVERT THIS COMMIT BECAUSE ITS WRONG
2015-05-14 01:46:09 +00:00
CS_REV=21b9b25e9dae4af0ef309d4089a54e53b8f5b479
2014-08-31 16:09:25 +00:00
.PHONY: capstone-sync capstone-build all clean mrproper libgdbr libwind
2013-08-26 22:52:04 +00:00
HOST_CC?=gcc
2013-12-22 03:37:05 +00:00
SHLR?=$(shell pwd)
AR?=ar
RANLIB?=ranlib
2015-07-14 10:13:08 +00:00
MODS=sdb zip udis86 java tcc
ifeq (1,$(WITH_GPL))
MODS+=grub
endif
2015-07-14 10:13:08 +00:00
MODS+=gdb
SDB_URL=git://github.com/radare/sdb
#SDB_URL=/Users/pancake/prg/sdb
PWD=$(shell pwd)
SDB_CONFIG=${PWD}/sdb-config.mk
ifneq (,$(findstring cygwin,${OSTYPE})$(findstring mingw32,${OSTYPE})$(findstring mingw64,${OSTYPE})$(findstring msys,${OSTYPE}))
2014-07-18 12:12:33 +00:00
CFLAGS_SHARED=
else
CFLAGS_SHARED=-fPIC
2014-07-18 12:12:33 +00:00
endif
ifeq (${EXT_SO},)
all:
echo EXT_SO not defined
exit 1
endif
2015-07-14 10:13:08 +00:00
preall: targets libwind capstone-build
@for a in ${MODS} ; do \
2014-05-08 23:09:09 +00:00
echo $(MAKE) -C $$a ; \
2015-04-02 16:35:04 +00:00
$(MAKE) -C $$a HAVE_VALA= ROOT="${PWD}/../" CC="${CC}" ; \
done
clean mrproper:
2014-03-09 23:33:29 +00:00
-cd capstone && $(MAKE) clean
cd gdb && $(MAKE) clean
2014-08-31 16:09:25 +00:00
cd wind && $(MAKE) clean
2015-07-12 17:19:38 +00:00
rm -f sdb/src/.sdb${EXT_EXE} sdb/sdb${EXT_EXE}
2014-05-08 23:09:09 +00:00
cd sdb && $(MAKE) clean
rm -f sdb/src/.sdb sdb/sdb
2015-07-12 17:19:38 +00:00
rm -f sdb/sdb${EXT_EXE}
2014-05-08 23:09:09 +00:00
@for a in ${MODS} ; do $(MAKE) -C $$a clean ; done
ifeq ($(BUILD_OS),windows)
BUILD_EXT_EXE=.exe
else
BUILD_EXT_EXE=
endif
2015-07-14 10:13:08 +00:00
SDB_TARGETS=$(SDBLIB)
ifneq (${EXT_EXE},)
SDB_TARGETS+=sdb/sdb${EXT_EXE}
else
SDB_TARGETS+=sdb/sdb
endif
2015-07-14 16:38:16 +00:00
ifeq (${BUILD_EXT_EXE},)
# TODO avoid dup
SDB_TARGETS+=sdb/sdb
else
2015-07-14 10:13:08 +00:00
SDB_TARGETS+=sdb/sdb${BUILD_EXT_EXE}
endif
targets: ${SDB_TARGETS}
${SDB_TARGETS}:
@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
@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 12:12:33 +00:00
cd sdb/src ; $(MAKE) ARCH=xxx RANLIB="${RANLIB}" CFLAGS_SHARED="${CFLAGS_SHARED}" \
2015-01-29 11:30:07 +00:00
CC="${CC}" AR="${AR}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" libsdb.a
2013-08-26 22:52:04 +00:00
${RANLIB} sdb/src/libsdb.a
ifneq (${EXT_AR},.a)
-cp -f sdb/src/libsdb.a sdb/src/libsdb.${EXT_AR}
endif
rm -f $@
2015-07-13 22:08:04 +00:00
cp -f sdb/src/.sdb${BUILD_EXT_EXE} $@
2013-08-26 22:52:04 +00:00
.PHONY: sdb-sync sync-sdb sdbclean
F=README.md config.mk src Makefile Jamroot
SYNCFILES=$(addprefix sdb.vc/,${F})
I=../libr/include
libgdbr:
cd gdb ; $(MAKE) all
2014-08-31 16:09:25 +00:00
libwind:
2015-07-14 10:13:08 +00:00
cd wind ; $(MAKE) all
2014-08-31 16:09:25 +00:00
sdb-clean clean-sdb:
$(MAKE) -C sdb clean
rm -f sdb/sdb.exe
rm -f sdb/src/libsdb.a
sdb-sync sync-sdb:
rm -rf sdb sdb.vc
2014-12-30 04:19:50 +00:00
git clone --depth 1 ${SDB_URL} sdb.vc
mkdir -p sdb
cp -rf ${SYNCFILES} sdb
rm -rf sdb.vc $I/sdb
mkdir -p $I/sdb
rm -f src/sdb_version.h
cd sdb ; $(MAKE) src/sdb_version.h
cp -f sdb/src/*.h $I/sdb
echo '#include <sdb/sdb.h>' > $I/sdb.h
2013-04-30 23:43:35 +00:00
mkdir -p sdb/test sdb/memcache
sed -e 's,HAVE_VALA=,HAVE_VALA=#,' sdb/config.mk > .t
mv .t sdb/config.mk
echo all clean mrproper: | tee sdb/test/Makefile > sdb/memcache/Makefile
git add $I/sdb*
git add sdb
$(TCCLIB) libr_tcc/libr_tcc.a:
2014-05-08 23:09:09 +00:00
cd libr_tcc ; $(MAKE)
2013-06-09 22:28:55 +00:00
udis-sync udis86-sync sync-udis sync-udis86:
2014-05-08 23:09:09 +00:00
cd udis86 ; $(MAKE) sync
2013-06-09 22:28:55 +00:00
tcc-clean tccclean:
2014-05-08 23:09:09 +00:00
cd libr_tcc ; $(MAKE) clean
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
HFILES+=elf.h libtcc.h config.h i386-tok.h
# TODO: use mob branch?
.PHONY: sdb-sync sync-sdb sdbclean
tcc-sync sync-tcc:
rm -rf _
2014-12-30 04:19:50 +00:00
git clone --depth 1 git://repo.or.cz/tinycc.git _
cd _ ; ./configure --prefix=${PREFIX}
mkdir -p tcc
for a in ${CFILES} ${HFILES} ; do cp -f _/$$a tcc ; done
cp -f _/VERSION _/COPYING _/stab.def tcc
git add tcc
rm -rf _
2014-09-01 15:18:23 +00:00
D=$(call rmdblslash,${DESTDIR}/${PREFIX})
install:
2013-12-29 02:20:53 +00:00
#mkdir -p ${D}/lib
#cp -f tcc/libr_tcc* ${D}/lib
2013-11-14 12:57:01 +00:00
#cp -f zip/libr_z* ${D}/lib
2013-06-05 14:15:39 +00:00
install-symlink symstall:
mkdir -p ${D}/lib
2013-12-29 02:20:53 +00:00
#cd tcc ; for a in libr_tcc* ; do \
# ln -fs `pwd`/$$a ${D}/lib/$$a ; done
uninstall deinstall:
2013-12-29 02:20:53 +00:00
#rm -f ${D}/lib/libr_tcc*
2013-11-14 12:57:01 +00:00
#rm -f ${D}/lib/libr_z*
2014-06-24 10:48:29 +00:00
ifeq ($(USE_CAPSTONE),1)
# Do nothing here
capstone:
capstone-sync:
capstone-build:
else
ifeq ($(CS_TAR),)
2014-05-07 15:05:42 +00:00
capstone: capstone-sync
capstone-sync:
if [ ! -d capstone ]; then \
git clone $(CS_URL) ; \
fi
cd capstone ; \
git reset --hard @^^^ ; \
2014-05-07 15:05:42 +00:00
git checkout $(CS_BRA) ; \
git reset --hard $(CS_TIP) || \
( if [ -d .git ]; then \
git pull ; git reset --hard $(CS_TIP) ; \
else true ; fi)
if [ -n "${CS_REV}" ]; then \
cd capstone ; \
2015-05-12 15:56:27 +00:00
git config user.name || ( \
2015-05-12 15:34:56 +00:00
git config user.name "radare-travis" ; \
git config user.email radare-travis@foo.com ) ; \
EDITOR=cat git revert --no-edit ${CS_REV} ; \
fi
2014-05-07 15:05:42 +00:00
.PHONY: capstone
else
capstone-sync: capstone
2014-04-18 15:18:48 +00:00
capstone-clean:
cd capstone ; $(MAKE) clean
capstone: capstone-$(CS_VER).tar.gz
tar xzvf capstone-$(CS_VER).tar.gz
rm -rf capstone
mv capstone-$(CS_VER) capstone
#cd capstone ; for a in ../capstone-patches/* ; do patch -p1 < $$a ; done
capstone-$(CS_VER).tar.gz:
$(WGET) --no-check-certificate -O capstone-$(CS_VER).tar.gz -c $(CS_TAR)
endif
2014-05-07 15:05:42 +00:00
2014-07-02 00:57:18 +00:00
CAPSTONE_CFLAGS=-g
2015-07-13 00:45:45 +00:00
ifeq (${EXT_AR},)
all:
echo EXT_AR is not defined
exit 1
endif
2014-05-07 15:05:42 +00:00
capstone-build: capstone
2014-07-02 00:57:18 +00:00
cd capstone && CFLAGS="-Dmips=mips ${CAPSTONE_CFLAGS} $(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
2014-07-18 07:01:36 +00:00
$(MAKE) CC="$(CC)" AR_EXT=a IS_CYGWIN=0 CAPSTONE_STATIC=yes CAPSTONE_SHARED=no \
2015-07-13 00:45:45 +00:00
RANLIB="$(RANLIB)" AR="$(AR)" IS_MINGW=0 libcapstone.a
-cp -f capstone/libcapstone.a capstone/libcapstone.${EXT_AR}
2014-06-24 10:48:29 +00:00
endif