#
#
-VERSION = 010
+VERSION = 017
PROGRAM = bti
+SCRIPTS = bti-shrink-urls
CORE_OBJS = \
bti.o
bti_version.h
MAN_PAGES = \
- bti.1
+ bti.1 \
+ bti-shrink-urls.1
CROSS_COMPILE ?=
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
-override CFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -O2
+XML2_CFLAGS = `xml2-config --cflags`
+PCRE_CFLAGS = `pcre-config --cflags`
+override CFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -O2 $(XML2_CFLAGS) $(PCRE_CFLAGS)
WARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
-Wchar-subscripts -Wmissing-declarations -Wnested-externs \
CFLAGS += $(WARNINGS)
LDFLAGS += -Wl,-warn-common,--as-needed
+DEST ?=
+PREFIX ?= /usr/local
+
+INSTALL = install
+INSTALL_BIN = ${INSTALL} -m 0755 -t ${DEST}${PREFIX}/bin
+INSTALL_MAN = ${INSTALL} -m 0644 -t ${DEST}${PREFIX}/share/man
ifeq ($(strip $(V)),)
E = @echo
# We need -lcurl for the curl stuff
# We need -lsocket and -lnsl when on Solaris
+# We need -lreadline for readline support
# We need -lssl and -lcrypto when using libcurl with SSL support
# We need -lpthread for the pthread example
#LIB_OBJS = -lcurl -lnsl -lssl -lcrypto
-LIB_OBJS = -lcurl -lnsl
+LIB_OBJS = -lcurl -lnsl -lreadline
+LIB_XML2 = `xml2-config --libs`
+LIB_PCRE = `pcre-config --libs`
all: $(PROGRAM) $(MAN_PAGES)
# "Static Pattern Rule" to build all programs
bti: %: $(HEADERS) $(GEN_HEADERS) $(CORE_OBJS)
$(E) " LD " $@
- $(Q) $(LD) $(LDFLAGS) $(CORE_OBJS) -o $@ $(LIB_OBJS)
-
+ $(Q) $(LD) $(LDFLAGS) $(CORE_OBJS) -o $@ $(LIB_OBJS) $(LIB_XML2) $(LIB_PCRE)
# build the objects
%.o: %.c $(HEADERS) $(GEN_HEADERS)
$(Q) $(CC) -c $(CFLAGS) $< -o $@
-bti_version.h:
+bti_version.h: Makefile
$(E) " GENHDR " $@
$(Q) echo "/* Generated by make. */" > $@
$(Q) echo \#define BTI_VERSION \"$(VERSION)\" >> $@
git archive --format=tar --prefix=bti-$(VERSION)/ HEAD | gzip -9v > bti-$(VERSION).tar.gz
.PHONY: release
+install: all
+ $(E) " INSTALL " ${DEST}${PREFIX}
+ ${Q} ${INSTALL_BIN} ${PROGRAM} ${SCRIPTS}
+ ${Q} ${INSTALL_MAN} ${MAN_PAGES}
+.PHONY: install