radare2/libr/rules.mk

132 lines
3.3 KiB
Makefile
Raw Normal View History

LIBR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST))))
include $(LIBR)/config.mk
#-------------------------------------#
# Rules for libraries
ifneq ($(NAME),)
ALL?=
CFLAGS+=-I$(LIBR)/include
all: $(PRE) $(ALL)
@$(MAKE) real_all
2011-01-17 07:35:57 +00:00
real_all: ${EXTRA_TARGETS} ${LIBSO} ${LIBAR}
@-if [ -e t/Makefile ]; then (cd t && ${MAKE} all) ; fi
@-if [ -e p/Makefile ]; then (cd p && ${MAKE} all) ; fi
@true
SRC=$(subst .o,.c,$(OBJ))
2010-10-28 12:11:19 +00:00
ifeq (${OSTYPE},gnulinux)
LIBNAME=${LDFLAGS_SONAME}${LIBSO}.${LIBVERSION}
2010-10-28 12:11:19 +00:00
else
LIBNAME=${LDFLAGS_SONAME}${LIBSO}
endif
* Move vapi directory into swig/ - Two splitted distribution files: - radare2 and radare2-swig - Making it more debian friendly for packaging --HG-- rename : libr/vapi/libr.deps => swig/vapi/libr.deps rename : libr/vapi/libr.vapi => swig/vapi/libr.vapi rename : libr/vapi/r_anal.vapi => swig/vapi/r_anal.vapi rename : libr/vapi/r_asm.vapi => swig/vapi/r_asm.vapi rename : libr/vapi/r_bin.deps => swig/vapi/r_bin.deps rename : libr/vapi/r_bin.vapi => swig/vapi/r_bin.vapi rename : libr/vapi/r_bp.vapi => swig/vapi/r_bp.vapi rename : libr/vapi/r_config.vapi => swig/vapi/r_config.vapi rename : libr/vapi/r_cons.vapi => swig/vapi/r_cons.vapi rename : libr/vapi/r_core.vapi => swig/vapi/r_core.vapi rename : libr/vapi/r_crypto.vapi => swig/vapi/r_crypto.vapi rename : libr/vapi/r_db.vapi => swig/vapi/r_db.vapi rename : libr/vapi/r_debug.deps => swig/vapi/r_debug.deps rename : libr/vapi/r_debug.vapi => swig/vapi/r_debug.vapi rename : libr/vapi/r_diff.vapi => swig/vapi/r_diff.vapi rename : libr/vapi/r_hash.vapi => swig/vapi/r_hash.vapi rename : libr/vapi/r_io.deps => swig/vapi/r_io.deps rename : libr/vapi/r_io.vapi => swig/vapi/r_io.vapi rename : libr/vapi/r_lang.vapi => swig/vapi/r_lang.vapi rename : libr/vapi/r_lib.vapi => swig/vapi/r_lib.vapi rename : libr/vapi/r_line.vapi => swig/vapi/r_line.vapi rename : libr/vapi/r_parse.vapi => swig/vapi/r_parse.vapi rename : libr/vapi/r_reg.vapi => swig/vapi/r_reg.vapi rename : libr/vapi/r_search.vapi => swig/vapi/r_search.vapi rename : libr/vapi/r_socket.vapi => swig/vapi/r_socket.vapi rename : libr/vapi/r_syscall.vapi => swig/vapi/r_syscall.vapi rename : libr/vapi/r_util.vapi => swig/vapi/r_util.vapi rename : libr/vapi/t/Makefile => swig/vapi/t/Makefile rename : libr/vapi/t/array.vala => swig/vapi/t/array.vala rename : libr/vapi/t/asm.gs => swig/vapi/t/asm.gs rename : libr/vapi/t/asm.vala => swig/vapi/t/asm.vala rename : libr/vapi/t/bin.vala => swig/vapi/t/bin.vala rename : libr/vapi/t/bintest.vala => swig/vapi/t/bintest.vala rename : libr/vapi/t/core.vala => swig/vapi/t/core.vala rename : libr/vapi/t/db.vala => swig/vapi/t/db.vala rename : libr/vapi/t/hash.vala => swig/vapi/t/hash.vala rename : libr/vapi/t/io.vala => swig/vapi/t/io.vala rename : libr/vapi/t/lang.vala => swig/vapi/t/lang.vala rename : libr/vapi/t/list.vala => swig/vapi/t/list.vala rename : libr/vapi/t/list.vapi => swig/vapi/t/list.vapi rename : libr/vapi/t/regs.vala => swig/vapi/t/regs.vala rename : libr/vapi/t/sc.vala => swig/vapi/t/sc.vala rename : libr/vapi/t/search.gs => swig/vapi/t/search.gs rename : libr/vapi/t/search.vala => swig/vapi/t/search.vala rename : libr/vapi/t/socket.vala => swig/vapi/t/socket.vala
2010-03-14 18:36:44 +00:00
# -j trick
waitfordeps:
@sh $(LIBR)/waitfordeps.sh ${DEPS}
ifeq ($(WITHPIC),1)
2011-01-26 21:10:35 +00:00
${LIBSO}: $(EXTRA_TARGETS) waitfordeps ${OBJ}
@for a in ${OBJ} ${SRC}; do \
do=0 ; [ ! -e ${LIBSO} ] && do=1 ; \
test $$a -nt ${LIBSO} && do=1 ; \
if [ $$do = 1 ]; then \
* Move vapi directory into swig/ - Two splitted distribution files: - radare2 and radare2-swig - Making it more debian friendly for packaging --HG-- rename : libr/vapi/libr.deps => swig/vapi/libr.deps rename : libr/vapi/libr.vapi => swig/vapi/libr.vapi rename : libr/vapi/r_anal.vapi => swig/vapi/r_anal.vapi rename : libr/vapi/r_asm.vapi => swig/vapi/r_asm.vapi rename : libr/vapi/r_bin.deps => swig/vapi/r_bin.deps rename : libr/vapi/r_bin.vapi => swig/vapi/r_bin.vapi rename : libr/vapi/r_bp.vapi => swig/vapi/r_bp.vapi rename : libr/vapi/r_config.vapi => swig/vapi/r_config.vapi rename : libr/vapi/r_cons.vapi => swig/vapi/r_cons.vapi rename : libr/vapi/r_core.vapi => swig/vapi/r_core.vapi rename : libr/vapi/r_crypto.vapi => swig/vapi/r_crypto.vapi rename : libr/vapi/r_db.vapi => swig/vapi/r_db.vapi rename : libr/vapi/r_debug.deps => swig/vapi/r_debug.deps rename : libr/vapi/r_debug.vapi => swig/vapi/r_debug.vapi rename : libr/vapi/r_diff.vapi => swig/vapi/r_diff.vapi rename : libr/vapi/r_hash.vapi => swig/vapi/r_hash.vapi rename : libr/vapi/r_io.deps => swig/vapi/r_io.deps rename : libr/vapi/r_io.vapi => swig/vapi/r_io.vapi rename : libr/vapi/r_lang.vapi => swig/vapi/r_lang.vapi rename : libr/vapi/r_lib.vapi => swig/vapi/r_lib.vapi rename : libr/vapi/r_line.vapi => swig/vapi/r_line.vapi rename : libr/vapi/r_parse.vapi => swig/vapi/r_parse.vapi rename : libr/vapi/r_reg.vapi => swig/vapi/r_reg.vapi rename : libr/vapi/r_search.vapi => swig/vapi/r_search.vapi rename : libr/vapi/r_socket.vapi => swig/vapi/r_socket.vapi rename : libr/vapi/r_syscall.vapi => swig/vapi/r_syscall.vapi rename : libr/vapi/r_util.vapi => swig/vapi/r_util.vapi rename : libr/vapi/t/Makefile => swig/vapi/t/Makefile rename : libr/vapi/t/array.vala => swig/vapi/t/array.vala rename : libr/vapi/t/asm.gs => swig/vapi/t/asm.gs rename : libr/vapi/t/asm.vala => swig/vapi/t/asm.vala rename : libr/vapi/t/bin.vala => swig/vapi/t/bin.vala rename : libr/vapi/t/bintest.vala => swig/vapi/t/bintest.vala rename : libr/vapi/t/core.vala => swig/vapi/t/core.vala rename : libr/vapi/t/db.vala => swig/vapi/t/db.vala rename : libr/vapi/t/hash.vala => swig/vapi/t/hash.vala rename : libr/vapi/t/io.vala => swig/vapi/t/io.vala rename : libr/vapi/t/lang.vala => swig/vapi/t/lang.vala rename : libr/vapi/t/list.vala => swig/vapi/t/list.vala rename : libr/vapi/t/list.vapi => swig/vapi/t/list.vapi rename : libr/vapi/t/regs.vala => swig/vapi/t/regs.vala rename : libr/vapi/t/sc.vala => swig/vapi/t/sc.vala rename : libr/vapi/t/search.gs => swig/vapi/t/search.gs rename : libr/vapi/t/search.vala => swig/vapi/t/search.vala rename : libr/vapi/t/socket.vala => swig/vapi/t/socket.vala
2010-03-14 18:36:44 +00:00
echo "${CC_LIB} ${LIBNAME} ${OBJ} ${LDFLAGS} ${LINK}" ; \
${CC_LIB} ${LIBNAME} ${OBJ} ${LDFLAGS} ${LINK}; \
if [ -f "$(LIBR)/stripsyms.sh" ]; then sh $(LIBR)/stripsyms.sh ${LIBSO} ${NAME} ; fi ; \
break ; \
fi ; done
else
${LIBSO}:
endif
ifeq ($(WITHNONPIC),1)
$(LIBAR): ${OBJ}
${CC_AR} ${OBJ}
else
$(LIBAR):
endif
MAGICSED=| sed -e 's,-lr_magic,@LIBMAGIC@,g'
pkgcfg:
@echo Generating pkgconfig stub for ${NAME}
@echo 'prefix=@PREFIX@' > ../../pkgcfg/${NAME}.pc.acr
@echo 'exec_prefix=$${prefix}' >> ../../pkgcfg/${NAME}.pc.acr
2011-07-19 11:19:09 +00:00
@echo 'libdir=@LIBDIR@' >> ../../pkgcfg/${NAME}.pc.acr
@echo 'includedir=$${prefix}/include' >> ../../pkgcfg/${NAME}.pc.acr
@echo >> ../../pkgcfg/${NAME}.pc.acr
@echo 'Name: ${NAME}' >> ../../pkgcfg/${NAME}.pc.acr
@echo 'Description: radare foundation libraries' >> ../../pkgcfg/${NAME}.pc.acr
2011-07-19 11:19:09 +00:00
@echo 'Version: @VERSION@' >> ../../pkgcfg/${NAME}.pc.acr
@echo 'Requires:' >> ../../pkgcfg/${NAME}.pc.acr
@if [ "${NAME}" = "libr" ]; then NAME=''; else NAME=${NAME}; fi ;\
echo 'Libs: -L$${libdir} '`echo $${NAME} ${DEPS}|sed -e s,r_,-lr_,g` ${MAGICSED} >> ../../pkgcfg/${NAME}.pc.acr
@echo 'Cflags: -I$${includedir}/libr' >> ../../pkgcfg/${NAME}.pc.acr
install:
cd .. && ${MAKE} install
deinstall uninstall:
cd .. && ${MAKE} uninstall
clean:: ${EXTRA_CLEAN}
-rm -f *.${EXT_EXE} *.${EXT_SO} *.${EXT_AR} *.d
-rm -f ${LIBSO} ${LIBAR} ${OBJ} ${BIN} *.exe a.out
-@if [ -e t/Makefile ]; then (cd t && ${MAKE} clean) ; fi
-@if [ -e p/Makefile ]; then (cd p && ${MAKE} clean) ; fi
@true
mrproper: clean
-@if [ -e t/Makefile ]; then (cd t && ${MAKE} mrproper) ; fi
-@if [ -e p/Makefile ]; then (cd p && ${MAKE} mrproper) ; fi
-rm -f *.d
@true
* 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
sloc:
${MAKE} -C ../.. sloc SLOCDIR=libr/$$(echo ${NAME} | sed -e s,r_,,)
.PHONY: all sloc install pkgcfg clean deinstall uninstall
else
#-------------------------------------#
# Rules for programs (including test)
CFLAGS+=-I$(LIBR)/include -DVERSION=\"${VERSION}\"
ifneq ($(BIN)$(BINS),)
all: ${BIN}${EXT_EXE} ${BINS}
${BINS}:
echo ${LIBR}
${CC} ${CFLAGS} $@.c -L.. ${LDFLAGS} ${LDLIBS} -o $@${EXT_EXE}
${BIN}${EXT_EXE}: ${OBJ}
${CC} $+ -L.. ${LDFLAGS} ${LDLIBS} -o ${BIN}${EXT_EXE}
2010-01-15 12:02:54 +00:00
endif
# Dummy myclean rule that can be overriden by the t/ Makefile
# TODO: move to config.mk ? it must be a precondition
2009-03-06 00:00:41 +00:00
myclean:
clean:: myclean
-rm -f ${OBJS} ${OBJ} ${BIN}
mrproper: clean
-rm -f *.d
install:
cd ../.. && ${MAKE} install
.PHONY: all clean myclean
endif
#-------------------------------
* Move vapi directory into swig/ - Two splitted distribution files: - radare2 and radare2-swig - Making it more debian friendly for packaging --HG-- rename : libr/vapi/libr.deps => swig/vapi/libr.deps rename : libr/vapi/libr.vapi => swig/vapi/libr.vapi rename : libr/vapi/r_anal.vapi => swig/vapi/r_anal.vapi rename : libr/vapi/r_asm.vapi => swig/vapi/r_asm.vapi rename : libr/vapi/r_bin.deps => swig/vapi/r_bin.deps rename : libr/vapi/r_bin.vapi => swig/vapi/r_bin.vapi rename : libr/vapi/r_bp.vapi => swig/vapi/r_bp.vapi rename : libr/vapi/r_config.vapi => swig/vapi/r_config.vapi rename : libr/vapi/r_cons.vapi => swig/vapi/r_cons.vapi rename : libr/vapi/r_core.vapi => swig/vapi/r_core.vapi rename : libr/vapi/r_crypto.vapi => swig/vapi/r_crypto.vapi rename : libr/vapi/r_db.vapi => swig/vapi/r_db.vapi rename : libr/vapi/r_debug.deps => swig/vapi/r_debug.deps rename : libr/vapi/r_debug.vapi => swig/vapi/r_debug.vapi rename : libr/vapi/r_diff.vapi => swig/vapi/r_diff.vapi rename : libr/vapi/r_hash.vapi => swig/vapi/r_hash.vapi rename : libr/vapi/r_io.deps => swig/vapi/r_io.deps rename : libr/vapi/r_io.vapi => swig/vapi/r_io.vapi rename : libr/vapi/r_lang.vapi => swig/vapi/r_lang.vapi rename : libr/vapi/r_lib.vapi => swig/vapi/r_lib.vapi rename : libr/vapi/r_line.vapi => swig/vapi/r_line.vapi rename : libr/vapi/r_parse.vapi => swig/vapi/r_parse.vapi rename : libr/vapi/r_reg.vapi => swig/vapi/r_reg.vapi rename : libr/vapi/r_search.vapi => swig/vapi/r_search.vapi rename : libr/vapi/r_socket.vapi => swig/vapi/r_socket.vapi rename : libr/vapi/r_syscall.vapi => swig/vapi/r_syscall.vapi rename : libr/vapi/r_util.vapi => swig/vapi/r_util.vapi rename : libr/vapi/t/Makefile => swig/vapi/t/Makefile rename : libr/vapi/t/array.vala => swig/vapi/t/array.vala rename : libr/vapi/t/asm.gs => swig/vapi/t/asm.gs rename : libr/vapi/t/asm.vala => swig/vapi/t/asm.vala rename : libr/vapi/t/bin.vala => swig/vapi/t/bin.vala rename : libr/vapi/t/bintest.vala => swig/vapi/t/bintest.vala rename : libr/vapi/t/core.vala => swig/vapi/t/core.vala rename : libr/vapi/t/db.vala => swig/vapi/t/db.vala rename : libr/vapi/t/hash.vala => swig/vapi/t/hash.vala rename : libr/vapi/t/io.vala => swig/vapi/t/io.vala rename : libr/vapi/t/lang.vala => swig/vapi/t/lang.vala rename : libr/vapi/t/list.vala => swig/vapi/t/list.vala rename : libr/vapi/t/list.vapi => swig/vapi/t/list.vapi rename : libr/vapi/t/regs.vala => swig/vapi/t/regs.vala rename : libr/vapi/t/sc.vala => swig/vapi/t/sc.vala rename : libr/vapi/t/search.gs => swig/vapi/t/search.gs rename : libr/vapi/t/search.vala => swig/vapi/t/search.vala rename : libr/vapi/t/socket.vala => swig/vapi/t/socket.vala
2010-03-14 18:36:44 +00:00
# TODO: deprecate RTDEBUG and R_DEBUG