2012-10-03 14:31:35 +02:00
|
|
|
BINR_PROGRAM=1
|
|
|
|
include ../../libr/config.mk
|
2015-02-22 21:01:46 +00:00
|
|
|
include ../../shlr/zip/deps.mk
|
2012-10-03 14:31:35 +02:00
|
|
|
|
2015-10-08 12:03:33 +02:00
|
|
|
ifneq ($(OSTYPE),windows)
|
2015-10-11 02:55:47 +03:00
|
|
|
# tcc doesn't recognize the -pie option
|
|
|
|
ifeq (,$(findstring tcc,${CC}))
|
2015-09-25 15:53:29 +02:00
|
|
|
CFLAGS+=-pie
|
2015-10-08 12:03:33 +02:00
|
|
|
endif
|
2015-10-11 02:55:47 +03:00
|
|
|
endif
|
2015-09-24 03:36:06 +02:00
|
|
|
CFLAGS+=-I$(LTOP)/include
|
2013-04-04 02:32:13 +02:00
|
|
|
|
2013-09-07 00:39:08 +02:00
|
|
|
ifeq (${COMPILER},emscripten)
|
|
|
|
EXT_EXE=.js
|
|
|
|
endif
|
2012-10-03 14:31:35 +02:00
|
|
|
|
2012-10-29 13:15:18 +01:00
|
|
|
ifeq ($(USE_RPATH),1)
|
2015-10-26 21:33:45 +00:00
|
|
|
LDFLAGS+=-Wl,-rpath "${LIBDIR}"
|
2012-10-29 13:15:18 +01:00
|
|
|
endif
|
|
|
|
|
2012-10-03 14:31:35 +02:00
|
|
|
OBJ+=${BIN}.o
|
|
|
|
BEXE=${BIN}${EXT_EXE}
|
|
|
|
|
|
|
|
ifeq ($(WITHNONPIC),1)
|
2013-09-07 01:35:11 +02:00
|
|
|
## LDFLAGS+=$(addsuffix /lib${BINDEPS}.a,$(addprefix ../../libr/,$(subst r_,,$(BINDEPS))))
|
|
|
|
LDFLAGS+=$(shell for a in ${BINDEPS} ; do b=`echo $$a |sed -e s,r_,,g`; echo ../../libr/$$b/lib$$a.a ; done )
|
2013-08-26 02:43:15 +02:00
|
|
|
LDFLAGS+=../../shlr/sdb/src/libsdb.a
|
2013-12-14 12:37:35 +01:00
|
|
|
LDFLAGS+=../../shlr/grub/libgrubfs.a
|
2014-06-05 01:50:56 +02:00
|
|
|
LDFLAGS+=../../shlr/gdb/lib/libgdbr.a
|
2014-08-31 18:09:25 +02:00
|
|
|
LDFLAGS+=../../shlr/wind/libr_wind.a
|
2014-03-07 03:16:10 +01:00
|
|
|
LDFLAGS+=../../shlr/capstone/libcapstone.a
|
2014-06-25 04:11:43 +02:00
|
|
|
LDFLAGS+=../../shlr/java/libr_java.a
|
2015-01-24 23:17:55 +01:00
|
|
|
ifneq (${ANDROID},1)
|
2015-01-24 03:30:07 +01:00
|
|
|
ifneq (${OSTYPE},linux)
|
|
|
|
LDFLAGS+=-lpthread
|
|
|
|
endif
|
2015-01-24 23:17:55 +01:00
|
|
|
endif
|
2013-06-05 21:58:31 +00:00
|
|
|
ifneq (${OSTYPE},haiku)
|
2012-10-03 14:31:35 +02:00
|
|
|
LDFLAGS+=-lm
|
|
|
|
endif
|
2013-06-05 21:58:31 +00:00
|
|
|
endif
|
2013-02-06 11:47:31 +01:00
|
|
|
LDFLAGS+=${DL_LIBS}
|
2013-11-15 01:30:11 +01:00
|
|
|
LDFLAGS+=${LINK}
|
2014-04-19 01:23:04 +02:00
|
|
|
|
|
|
|
REAL_LDFLAGS=$(subst -shared,,$(LDFLAGS))
|
|
|
|
|
2014-03-02 00:47:05 +01:00
|
|
|
ifeq ($(ISLIB),1)
|
|
|
|
BEXE=$(BIN).$(EXT_SO)
|
2014-04-19 01:23:04 +02:00
|
|
|
REAL_LDFLAGS+=-shared
|
2014-03-02 00:47:05 +01:00
|
|
|
endif
|
2012-10-03 14:31:35 +02:00
|
|
|
#--------------------#
|
|
|
|
# Rules for programs #
|
|
|
|
#--------------------#
|
|
|
|
|
2014-04-19 01:23:04 +02:00
|
|
|
# For some reason w32 builds contain -shared in LDFLAGS. boo!
|
|
|
|
|
2012-10-03 14:31:35 +02:00
|
|
|
ifneq ($(BIN)$(BINS),)
|
|
|
|
|
|
|
|
all: ${BEXE} ${BINS}
|
|
|
|
|
|
|
|
${BINS}: ${OBJS}
|
|
|
|
ifneq ($(SILENT),)
|
|
|
|
@echo CC $@
|
|
|
|
endif
|
2014-06-05 01:50:56 +02:00
|
|
|
${CC} ${CFLAGS} $@.c ${OBJS} ${REAL_LDFLAGS} -o $@
|
2012-10-03 14:31:35 +02:00
|
|
|
|
2015-11-01 11:43:05 +01:00
|
|
|
# -static fails because -ldl -lpthread static-gcc ...
|
2012-10-03 14:31:35 +02:00
|
|
|
${BEXE}: ${OBJ} ${SHARED_OBJ}
|
2015-11-01 10:26:38 +01:00
|
|
|
ifeq ($(WITHNONPIC),1)
|
2015-11-01 11:43:05 +01:00
|
|
|
${CC} -pie ${CFLAGS} $+ -L.. -o $@ $(REAL_LDFLAGS)
|
2015-11-01 10:26:38 +01:00
|
|
|
else
|
2012-10-03 14:31:35 +02:00
|
|
|
ifneq ($(SILENT),)
|
|
|
|
@echo LD $@
|
|
|
|
endif
|
2015-09-14 19:21:57 +02:00
|
|
|
${CC} ${CFLAGS} $+ -L.. -o $@ $(REAL_LDFLAGS)
|
2012-10-03 14:31:35 +02:00
|
|
|
endif
|
2015-11-01 10:26:38 +01:00
|
|
|
endif
|
2012-10-03 14:31:35 +02:00
|
|
|
|
|
|
|
# Dummy myclean rule that can be overriden by the t/ Makefile
|
|
|
|
# TODO: move to config.mk ? it must be a precondition
|
|
|
|
myclean:
|
|
|
|
|
|
|
|
clean:: myclean
|
2013-09-07 01:35:11 +02:00
|
|
|
-rm -f ${OBJS} ${OBJ} ${BEXE}
|
2012-10-03 14:31:35 +02:00
|
|
|
|
|
|
|
mrproper: clean
|
|
|
|
-rm -f *.d
|
|
|
|
|
|
|
|
install:
|
|
|
|
cd ../.. && ${MAKE} install
|
|
|
|
|
|
|
|
.PHONY: all clean myclean mrproper install
|