Move everything into one Makefile
Avoid having to execute two different make commands to properly build the plugin, when there are changes in the telegram-cli files.
This commit is contained in:
parent
2099d9fbc3
commit
6a439a5d55
2 changed files with 85 additions and 96 deletions
94
Makefile.in
94
Makefile.in
|
@ -1,3 +1,7 @@
|
|||
#
|
||||
# Telegram Flags
|
||||
#
|
||||
|
||||
srcdir=@srcdir@
|
||||
|
||||
CFLAGS=@CFLAGS@
|
||||
|
@ -6,9 +10,6 @@ CPPFLAGS=@CPPFLAGS@
|
|||
DEFS=@DEFS@
|
||||
COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -Wno-deprecated-declarations -fno-strict-aliasing -fno-omit-frame-pointer -ggdb
|
||||
|
||||
# include libpurple headers for debugging purposes
|
||||
CFLAGS_PURPLE = $(shell pkg-config --cflags purple)
|
||||
|
||||
EXTRA_LIBS=@LIBS@ @EXTRA_LIBS@
|
||||
LOCAL_LDFLAGS=-rdynamic -ggdb ${EXTRA_LIBS}
|
||||
LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
|
||||
|
@ -16,23 +17,98 @@ LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
|
|||
HEADERS= ${srcdir}/constants.h ${srcdir}/include.h ${srcdir}/interface.h ${srcdir}/LICENSE.h ${srcdir}/loop.h ${srcdir}/mtproto-client.h ${srcdir}/mtproto-common.h ${srcdir}/net.h ${srcdir}/no-preview.h ${srcdir}/queries.h ${srcdir}/structures.h ${srcdir}/telegram.h ${srcdir}/tree.h ${srcdir}/config.h ${srcdir}/binlog.h ${srcdir}/tools.h ${srcdir}/lua-tg.h ${srcdir}/msglog.h
|
||||
INCLUDE=-I. -I${srcdir}
|
||||
CC=@CC@
|
||||
OBJECTS=main.o loop.o interface.o net.o mtproto-common.o mtproto-client.o queries.o structures.o binlog.o tools.o lua-tg.o msglog.o
|
||||
OBJECTS=main.o loop.o interface.o net.o mtproto-common.o mtproto-client.o queries.o structures.o binlog.o tools.o lua-tg.o msglog.o tg-cli.o
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
.SUFFIXES: .c .h .o
|
||||
|
||||
all: telegram
|
||||
|
||||
#
|
||||
# Plugin Flags
|
||||
#
|
||||
|
||||
LIBS_PURPLE = $(shell pkg-config --libs purple)
|
||||
CFLAGS_PURPLE = $(shell pkg-config --cflags purple)
|
||||
PLUGIN_DIR_PURPLE:=$(shell pkg-config --variable=plugindir purple)
|
||||
DATA_ROOT_DIR_PURPLE:=$(shell pkg-config --variable=datarootdir purple)
|
||||
|
||||
ARCH = ""
|
||||
ifeq ($(ARCH),i686)
|
||||
ARCHFLAGS = -m32
|
||||
else ifeq ($(ARCH),x86_64)
|
||||
ARCHFLAGS = -m64
|
||||
else
|
||||
ARCHFLAGS =
|
||||
endif
|
||||
|
||||
LD = $(CC)
|
||||
PRPL_C_SRCS = purple-plugin/telegram-purple.c
|
||||
PRPL_C_OBJS = $(PRPL_C_SRCS:.c=.o)
|
||||
PRPL_LIBNAME = telegram-purple.so
|
||||
PRPL_INCLUDE = -I. -I./purple-plugin
|
||||
PRPL_LDFLAGS = $(ARCHFLAGS) -shared
|
||||
STRIP = strip
|
||||
PRPL_CFLAGS = \
|
||||
$(ARCHFLAGS) \
|
||||
-fPIC \
|
||||
-DPURPLE_PLUGINS \
|
||||
-DPIC \
|
||||
-g \
|
||||
$(CFLAGS_PURPLE)
|
||||
|
||||
#
|
||||
# Telegram Objects
|
||||
#
|
||||
|
||||
.c.o :
|
||||
${CC} -fPIC -DPIC ${CFLAGS_PURPLE} ${COMPILE_FLAGS} ${INCLUDE} -c $< -o $@
|
||||
|
||||
${OBJECTS}: ${HEADERS}
|
||||
|
||||
telegram: ${OBJECTS}
|
||||
${CC} ${OBJECTS} ${LINK_FLAGS} -o $@
|
||||
|
||||
.c.o :
|
||||
${CC} -fPIC -DPIC ${CFLAGS_PURPLE} ${COMPILE_FLAGS} ${INCLUDE} -c $< -o $@
|
||||
#
|
||||
# Plugin Objects
|
||||
#
|
||||
|
||||
objects: ${OBJECTS}
|
||||
$(PRPL_C_OBJS): $(PRPL_C_SRCS)
|
||||
$(CC) -c $(PRPL_INCLUDE) $(PRPL_CFLAGS) $(CFLAGS) $(CPPFLAGS) -o $@ $<
|
||||
|
||||
$(PRPL_LIBNAME): $(OBJECTS) $(PRPL_C_OBJS)
|
||||
$(LD) $(PRPL_LDFLAGS) $(LDFLAGS) $(PRPL_INCLUDE) $(LIBS_PURPLE) $(EXTRA_LIBS) -o $@ $(PRPL_C_OBJS) $(OBJECTS)
|
||||
|
||||
plugin: $(PRPL_LIBNAME)
|
||||
|
||||
.PHONY: strip
|
||||
strip: $(PRPL_LIBNAME)
|
||||
$(STRIP) --strip-unneeded $(PRPL_LIBNAME)
|
||||
|
||||
debug: PRPL_CFLAGS += -g -DDEBUG
|
||||
debug: $(PRPL_LIBNAME)
|
||||
gdb -tui -ex 'break telegram-purple.c:tgprpl_login' pidgin
|
||||
|
||||
# TODO: Find a better place for server.pub
|
||||
install: $(PRPL_LIBNAME)
|
||||
install -D $(PRPL_LIBNAME) $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(PRPL_LIBNAME)
|
||||
install -D tg-server.pub /etc/telegram/server.pub
|
||||
install -D purple-plugin/telegram16.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
install -D purple-plugin/telegram22.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
install -D purple-plugin/telegram48.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall: $(PRPL_LIBNAME)
|
||||
rm -f $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(PRPL_LIBNAME)
|
||||
rm -f /etc/telegram/server.pub
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
|
||||
.PHONY: run
|
||||
run: install
|
||||
pidgin -d | grep 'telegram\|plugin'
|
||||
|
||||
clean:
|
||||
rm -rf *.a *.o telegram config.log config.status > /dev/null || echo "all clean"
|
||||
rm -rf *.so *.a *.o telegram config.log config.status $(PRPL_C_OBJS) $(PRPL_LIBNAME) > /dev/null || echo "all clean"
|
||||
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
# Include libs from tg (--disable-liblua --disable-lib)
|
||||
|
||||
# TODO: These flags should depend on the used configuration flags
|
||||
EXTRA_LIBS = -lcrypto -lz -lm -lreadline
|
||||
LDFLAGSTG = -L/usr/local/lib
|
||||
CPPFLAGSTG = -I/usr/local/include
|
||||
OBJECTSTG = ../main.o ../loop.o ../interface.o ../net.o ../mtproto-common.o ../mtproto-client.o ../queries.o ../structures.o ../binlog.o ../tools.o ../lua-tg.o ../msglog.o ../tg-cli.o
|
||||
INCLUDE = -I. -I..
|
||||
#
|
||||
|
||||
LIBNAME = telegram-purple.so
|
||||
ARCH = ""
|
||||
|
||||
ifeq ($(ARCH),i686)
|
||||
ARCHFLAGS = -m32
|
||||
else ifeq ($(ARCH),x86_64)
|
||||
ARCHFLAGS = -m64
|
||||
else
|
||||
ARCHFLAGS =
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all: $(LIBNAME)
|
||||
|
||||
C_SRCS = telegram-purple.c
|
||||
C_OBJS = $(C_SRCS:.c=.o)
|
||||
|
||||
STRIP = strip
|
||||
CC = gcc
|
||||
LD = $(CC)
|
||||
CFLAGS_PURPLE = $(shell pkg-config --cflags purple)
|
||||
CFLAGS = \
|
||||
$(ARCHFLAGS) \
|
||||
-fPIC \
|
||||
-DPURPLE_PLUGINS \
|
||||
-DPIC \
|
||||
-g \
|
||||
$(CFLAGS_PURPLE)
|
||||
|
||||
LIBS_PURPLE = $(shell pkg-config --libs purple)
|
||||
LDFLAGS = $(ARCHFLAGS) -shared
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $(INCLUDE) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(LIBNAME): $(C_OBJS)
|
||||
cd ..; make objects; cd ./purple-plugin;
|
||||
$(LD) $(LDFLAGS) $(INCLUDE) $(LIBS_PURPLE) $(EXTRA_LIBS) -o $@ $^ $(OBJECTSTG)
|
||||
|
||||
.PHONY: strip
|
||||
strip: $(LIBNAME)
|
||||
$(STRIP) --strip-unneeded $(LIBNAME)
|
||||
|
||||
.PHONY: debug install
|
||||
debug: CFLAGS += -g -DDEBUG
|
||||
debug: $(LIBNAME)
|
||||
gdb -tui -ex 'break telegram-purple.c:tgprpl_login' pidgin
|
||||
|
||||
|
||||
PLUGIN_DIR_PURPLE:=$(shell pkg-config --variable=plugindir purple)
|
||||
DATA_ROOT_DIR_PURPLE:=$(shell pkg-config --variable=datarootdir purple)
|
||||
|
||||
# TODO: Find a better place for server.pub
|
||||
.PHONY: install
|
||||
install: $(LIBNAME)
|
||||
install -D $(LIBNAME) $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(LIBNAME)
|
||||
install -D ../tg-server.pub /etc/telegram/server.pub
|
||||
install -D telegram16.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
install -D telegram22.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
install -D telegram48.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall: $(LIBNAME)
|
||||
rm -f $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(LIBNAME)
|
||||
rm -f /etc/telegram/server.pub
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f *.o *.a
|
||||
-rm -f $(LIBNAME)
|
||||
|
||||
.PHONY: run
|
||||
run: all install
|
||||
pidgin -d
|
Loading…
Add table
Reference in a new issue