diff --git a/Makefile.in b/Makefile.in index eb4650f..f2abddb 100644 --- a/Makefile.in +++ b/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" + diff --git a/purple-plugin/Makefile b/purple-plugin/Makefile deleted file mode 100755 index 41aff3e..0000000 --- a/purple-plugin/Makefile +++ /dev/null @@ -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