forked from hasufell/hasufell-repository
		
	net-im/lurch: initial import of scm version
This commit is contained in:
		
							parent
							
								
									cb55944f49
								
							
						
					
					
						commit
						41f75a4c05
					
				| @ -9,6 +9,7 @@ | |||||||
|     media/livestreamer[~scm] |     media/livestreamer[~scm] | ||||||
|     media-gfx/pinta[~scm] |     media-gfx/pinta[~scm] | ||||||
|     net-im/gajim-omemo[~scm] |     net-im/gajim-omemo[~scm] | ||||||
|  |     net-im/lurch[~scm] | ||||||
|     net-im/pidgin-opensteamworks[~scm] |     net-im/pidgin-opensteamworks[~scm] | ||||||
|     net-misc/remmina[~scm] |     net-misc/remmina[~scm] | ||||||
|     x11-apps/terminator[~scm] |     x11-apps/terminator[~scm] | ||||||
|  | |||||||
							
								
								
									
										160
									
								
								packages/net-im/lurch/files/0001-Improve-build-system.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								packages/net-im/lurch/files/0001-Improve-build-system.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,160 @@ | |||||||
|  | From f17d0d28a0c3f383c7d59763d0ba4be7ca27f881 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Julian Ospald <hasufell@posteo.de> | ||||||
|  | Date: Tue, 21 Feb 2017 16:40:32 +0100 | ||||||
|  | Subject: [PATCH] Improve build system | ||||||
|  | Upstream: submitted https://github.com/gkdr/lurch/pull/25 | ||||||
|  | 
 | ||||||
|  | * respect system toolchain: gcc, pkg-config etc might be prefixed | ||||||
|  | * allow more control over passed flags, never overwriting CFLAGS etc | ||||||
|  |   entirely | ||||||
|  | * proper quoting: make does _not_ take care of quoting in make rules | ||||||
|  | * default "install" target installs into system plugin dir, additional | ||||||
|  |   "install-home" target installs into users home plugin dir | ||||||
|  | * simplify "clean" target and add "clean-all" target | ||||||
|  | * some minor changes to follow common Make style | ||||||
|  | * update .PHONY | ||||||
|  | ---
 | ||||||
|  |  README.md |   2 +- | ||||||
|  |  makefile  | 101 ++++++++++++++++++++++++++++++++++++++++++++------------------ | ||||||
|  |  2 files changed, 73 insertions(+), 30 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/README.md b/README.md
 | ||||||
|  | index b5a5283..c188a3d 100644
 | ||||||
|  | --- a/README.md
 | ||||||
|  | +++ b/README.md
 | ||||||
|  | @@ -10,7 +10,7 @@
 | ||||||
|  |  2. `cd lurch` | ||||||
|  |  3. `git submodule update --init` (If you just pull a newer version, remember to also update the submodules as they might have changed!) | ||||||
|  |  4. `make` | ||||||
|  | -5. A final `make install` should copy the compiled plugin into your libpurple plugin dir.
 | ||||||
|  | +5. A final `make install-home` should copy the compiled plugin into your libpurple plugin dir.
 | ||||||
|  |  6. The next time you start Pidgin (or another libpurple client), you should be able to activate it in the "Plugins" window. | ||||||
|  |   | ||||||
|  |  ### Windows | ||||||
|  | diff --git a/makefile b/makefile
 | ||||||
|  | index 108fc42..bcf43e2 100644
 | ||||||
|  | --- a/makefile
 | ||||||
|  | +++ b/makefile
 | ||||||
|  | @@ -1,6 +1,38 @@
 | ||||||
|  | -PURPLE_PLUGIN_DIR=~/.purple/plugins
 | ||||||
|  | -PIDGIN_DIR=./pidgin-2.11.0
 | ||||||
|  | -PURPLE_PLUGIN_SRC_DIR=$(PIDGIN_DIR)/libpurple/plugins
 | ||||||
|  | +### toolchain
 | ||||||
|  | +#
 | ||||||
|  | +CC ?= gcc
 | ||||||
|  | +PKG_CONFIG ?= pkg-config
 | ||||||
|  | +MKDIR = mkdir
 | ||||||
|  | +MKDIR_P = mkdir -p
 | ||||||
|  | +INSTALL = install
 | ||||||
|  | +INSTALL_LIB = $(INSTALL) -m 755
 | ||||||
|  | +INSTALL_DIR = $(INSTALL) -d -m 755
 | ||||||
|  | +RM = rm
 | ||||||
|  | +RM_RF = $(RM) -rf
 | ||||||
|  | +CMAKE ?= cmake
 | ||||||
|  | +CMAKE_FLAGS = -DCMAKE_BUILD_TYPE=Debug
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  | +### flags
 | ||||||
|  | +#
 | ||||||
|  | +PKGCFG_C=$(shell $(PKG_CONFIG) --cflags glib-2.0 purple) \
 | ||||||
|  | +		 $(shell xml2-config --cflags)
 | ||||||
|  | +
 | ||||||
|  | +PKGCFG_L=$(shell $(PKG_CONFIG) --libs purple glib-2.0 sqlite3 mxml) \
 | ||||||
|  | +		 $(shell xml2-config --libs) \
 | ||||||
|  | +		 -L$(shell $(PKG_CONFIG) --variable=plugindir purple) \
 | ||||||
|  | +		 $(shell libgcrypt-config --libs)
 | ||||||
|  | +
 | ||||||
|  | +HEADERS=-I$(HDIR)/jabber -I$(LOMEMO_SRC) -I$(AXC_SRC) -I$(AX_DIR)/src
 | ||||||
|  | +CFLAGS += -std=c11 -Wall -g -Wstrict-overflow $(PKGCFG_C) $(HEADERS)
 | ||||||
|  | +CPPFLAGS += -D_XOPEN_SOURCE=700 -D_BSD_SOURCE
 | ||||||
|  | +LDFLAGS += -ldl -lm $(PKGCFG_L) -ljabber
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  | +### directories
 | ||||||
|  | +#
 | ||||||
|  | +PURPLE_HOME_PLUGIN_DIR=~/.purple/plugins
 | ||||||
|  | +PURPLE_PLUGIN_DIR = $(shell $(PKG_CONFIG) --variable=plugindir purple)
 | ||||||
|  |   | ||||||
|  |  LDIR=./lib | ||||||
|  |  BDIR=./build | ||||||
|  | @@ -22,40 +54,51 @@ AX_PATH=$(AX_DIR)/build/src/libaxolotl-c.a
 | ||||||
|  |   | ||||||
|  |  FILES=$(LOMEMO_PATH) $(AXC_PATH) $(AX_PATH) | ||||||
|  |   | ||||||
|  | -HEADERS=-I$(HDIR)/jabber -I$(LOMEMO_SRC) -I$(AXC_SRC) -I$(AX_DIR)/src
 | ||||||
|  | -
 | ||||||
|  | -PKGCFG_C=$(shell pkg-config --cflags glib-2.0 purple)  $(shell xml2-config --cflags)
 | ||||||
|  | -PKGCFG_L=$(shell pkg-config --libs purple glib-2.0 sqlite3 mxml) $(shell xml2-config --libs) -L$(shell pkg-config --variable=plugindir purple) $(shell libgcrypt-config --libs)
 | ||||||
|  | -
 | ||||||
|  | -CFLAGS=-std=c11 -Wall -g -Wstrict-overflow -D_XOPEN_SOURCE=700 -D_BSD_SOURCE $(PKGCFG_C) $(HEADERS)
 | ||||||
|  | -LFLAGS= -ldl -lm $(PKGCFG_L) -ljabber
 | ||||||
|  | -
 | ||||||
|  |   | ||||||
|  | +### make rules
 | ||||||
|  | +#
 | ||||||
|  |  all: $(BDIR)/lurch.so | ||||||
|  |   | ||||||
|  |  $(BDIR): | ||||||
|  | -	mkdir -p build
 | ||||||
|  | -	
 | ||||||
|  | +	$(MKDIR_P) build
 | ||||||
|  | +
 | ||||||
|  |  $(AX_PATH): | ||||||
|  | -	cd $(AXC_DIR)/lib/libaxolotl-c/ && mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make
 | ||||||
|  | -	
 | ||||||
|  | +	cd $(AXC_DIR)/lib/libaxolotl-c/ && \
 | ||||||
|  | +	   $(MKDIR_P) build && \
 | ||||||
|  | +	   cd build && \
 | ||||||
|  | +	   $(CMAKE) $(CMAKE_FLAGS) .. \
 | ||||||
|  | +	   && $(MAKE)
 | ||||||
|  | +
 | ||||||
|  |  $(AXC_PATH): | ||||||
|  | -	cd $(AXC_DIR) && make build/libaxc-nt.a
 | ||||||
|  | -	
 | ||||||
|  | +	$(MAKE) -C "$(AXC_DIR)" build/libaxc-nt.a
 | ||||||
|  | +
 | ||||||
|  |  $(LOMEMO_PATH): | ||||||
|  | -	cd $(LOMEMO_DIR) && make build/libomemo-conversations.a
 | ||||||
|  | -	
 | ||||||
|  | +	$(MAKE) -C "$(LOMEMO_DIR)" build/libomemo-conversations.a
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/lurch.so: $(SDIR)/lurch.c $(AX_PATH) $(AXC_PATH) $(LOMEMO_PATH) $(BDIR) | ||||||
|  | -	gcc $(CFLAGS) -fPIC -c $(SDIR)/lurch.c -o $(BDIR)/lurch.o
 | ||||||
|  | -	gcc -fPIC -shared $(CFLAGS) $(BDIR)/lurch.o $(FILES) -o $@ $(LFLAGS)
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) -fPIC $(CFLAGS) $(CPPFLAGS) \
 | ||||||
|  | +		-c "$(SDIR)/lurch.c" \
 | ||||||
|  | +		-o "$(BDIR)/lurch.o"
 | ||||||
|  | +	$(CC) -fPIC -shared $(CFLAGS) $(CPPFLAGS) \
 | ||||||
|  | +		"$(BDIR)/lurch.o" $(FILES) \
 | ||||||
|  | +		-o $@ $(LDFLAGS)
 | ||||||
|  | +
 | ||||||
|  |  install: $(BDIR)/lurch.so | ||||||
|  | -	mkdir -p $(PURPLE_PLUGIN_DIR)
 | ||||||
|  | -	cp $(BDIR)/lurch.so $(PURPLE_PLUGIN_DIR)/lurch.so
 | ||||||
|  | +	[ -e "$(DESTDIR)/$(PURPLE_PLUGIN_DIR)" ] || \
 | ||||||
|  | +		$(INSTALL_DIR) "$(DESTDIR)/$(PURPLE_PLUGIN_DIR)"
 | ||||||
|  | +	$(INSTALL_LIB) "$(BDIR)/lurch.so" "$(DESTDIR)/$(PURPLE_PLUGIN_DIR)/lurch.so"
 | ||||||
|  | +
 | ||||||
|  | +install-home: $(BDIR)/lurch.so
 | ||||||
|  | +	[ -e "$(PURPLE_HOME_PLUGIN_DIR)" ] || \
 | ||||||
|  | +		$(INSTALL_DIR) "$(PURPLE_HOME_PLUGIN_DIR)"
 | ||||||
|  | +	$(INSTALL_LIB) "$(BDIR)/lurch.so" "$(PURPLE_HOME_PLUGIN_DIR)/lurch.so"
 | ||||||
|  |   | ||||||
|  | -.PHONY: clean
 | ||||||
|  |  clean: | ||||||
|  | -	rm -rf $(LOMEMO_BUILD)
 | ||||||
|  | -	rm -rf $(AXC_BUILD)
 | ||||||
|  | -	rm -rf $(AX_DIR)/build
 | ||||||
|  | -	rm -rf $(BDIR)
 | ||||||
|  | +	$(RM_RF) "$(BDIR)"
 | ||||||
|  | +
 | ||||||
|  | +clean-all: clean
 | ||||||
|  | +	$(MAKE) -C "$(LOMEMO_DIR)" clean
 | ||||||
|  | +	$(MAKE) -C "$(AXC_DIR)" clean
 | ||||||
|  | +
 | ||||||
|  | +.PHONY: clean clean-all install install-home
 | ||||||
|  | +
 | ||||||
|  | -- 
 | ||||||
|  | 2.11.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										153
									
								
								packages/net-im/lurch/files/0002-axc-Improve-build-system.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								packages/net-im/lurch/files/0002-axc-Improve-build-system.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,153 @@ | |||||||
|  | From ace0369d26868163dd4f3ba1612812a1c6187197 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Julian Ospald <hasufell@posteo.de> | ||||||
|  | Date: Tue, 21 Feb 2017 17:18:42 +0100 | ||||||
|  | Subject: [PATCH] Improve build system | ||||||
|  | Upstream: submitted https://github.com/gkdr/axc/pull/1 | ||||||
|  | 
 | ||||||
|  | * respect toolchain | ||||||
|  | * make stuff more Make compatible | ||||||
|  | ---
 | ||||||
|  |  makefile | 85 ++++++++++++++++++++++++++++++++++++++++------------------------ | ||||||
|  |  1 file changed, 53 insertions(+), 32 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/makefile b/makefile
 | ||||||
|  | index 2ca357f..7841a5f 100644
 | ||||||
|  | --- a/lib/axc/makefile
 | ||||||
|  | +++ b/lib/axc/makefile
 | ||||||
|  | @@ -1,3 +1,15 @@
 | ||||||
|  | +### toolchain
 | ||||||
|  | +#
 | ||||||
|  | +CC ?= gcc
 | ||||||
|  | +AR ?= ar
 | ||||||
|  | +PKG_CONFIG ?= pkg-config
 | ||||||
|  | +LIBGCRYPT_CONFIG ?= libgcrypt-config
 | ||||||
|  | +MKDIR = mkdir
 | ||||||
|  | +MKDIR_P = mkdir -p
 | ||||||
|  | +CMAKE ?= cmake
 | ||||||
|  | +CMAKE_FLAGS = -DCMAKE_BUILD_TYPE=Debug
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  |  SDIR = src | ||||||
|  |  LDIR = lib | ||||||
|  |  BDIR = build | ||||||
|  | @@ -9,76 +21,85 @@ AX_DIR=./lib/libaxolotl-c
 | ||||||
|  |  AX_BDIR=$(AX_DIR)/build/src | ||||||
|  |  AX_PATH=$(AX_BDIR)/libaxolotl-c.a | ||||||
|  |   | ||||||
|  | -PKGCFG_C=$(shell pkg-config --cflags sqlite3 glib-2.0) $(shell libgcrypt-config --cflags)
 | ||||||
|  | -PKGCFG_L=$(shell pkg-config --libs sqlite3 glib-2.0) $(shell libgcrypt-config --libs)
 | ||||||
|  | +PKGCFG_C=$(shell $(PKG_CONFIG) --cflags sqlite3 glib-2.0) \
 | ||||||
|  | +		 $(shell $(LIBGCRYPT_CONFIG) --cflags)
 | ||||||
|  | +PKGCFG_L=$(shell $(PKG_CONFIG) --libs sqlite3 glib-2.0) \
 | ||||||
|  | +		 $(shell $(LIBGCRYPT_CONFIG) --libs)
 | ||||||
|  |   | ||||||
|  |  HEADERS=-I$(AX_DIR)/src | ||||||
|  | -CFLAGS=$(HEADERS) $(PKGCFG_C) -std=c11 -Wall -Wextra -Wpedantic -Wstrict-overflow -fno-strict-aliasing -funsigned-char -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE -fno-builtin-memset
 | ||||||
|  | +CFLAGS += $(HEADERS) $(PKGCFG_C) -std=c11 -Wall -Wextra -Wpedantic \
 | ||||||
|  | +		  -Wstrict-overflow -fno-strict-aliasing -funsigned-char \
 | ||||||
|  | +		  -fno-builtin-memset
 | ||||||
|  | +CPPFLAGS += -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE
 | ||||||
|  |  TESTFLAGS=$(HEADERS) $(PKGCFG_C) -g -O0 --coverage | ||||||
|  |  PICFLAGS=-fPIC $(CFLAGS) | ||||||
|  | -LFLAGS = -pthread -ldl $(PKGCFG_L) $(AX_PATH) -lm
 | ||||||
|  | -LFLAGS_T= -lcmocka $(LFLAGS)
 | ||||||
|  | +LDFLAGS += -pthread -ldl $(PKGCFG_L) $(AX_PATH) -lm
 | ||||||
|  | +LDFLAGS_T= -lcmocka $(LFLAGS)
 | ||||||
|  |   | ||||||
|  |  all: $(BDIR)/libaxc.a | ||||||
|  |   | ||||||
|  |  $(BDIR): | ||||||
|  | -	mkdir -p $@
 | ||||||
|  | +	$(MKDIR_P) $@
 | ||||||
|  |   | ||||||
|  |  client: $(SDIR)/message_client.c $(BDIR)/axc_store.o $(BDIR)/axc_crypto.o $(BDIR)/axc.o $(AX_PATH) | ||||||
|  | -	mkdir -p $@
 | ||||||
|  | -	gcc -D_POSIX_SOURCE -D_XOPEN_SOURCE=700 $(CFLAGS) $^ -o $@/$@.o $(LFLAGS)
 | ||||||
|  | -	
 | ||||||
|  | +	$(MKDIR_P) $@
 | ||||||
|  | +	$(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@/$@.o $(LDFLAGS)
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/axc.o: $(SDIR)/axc.c $(BDIR) | ||||||
|  | -	gcc $(PICFLAGS) -c $< -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) $(PICFLAGS) $(CPPFLAGS) -c $< -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/axc-nt.o: $(SDIR)/axc.c $(BDIR) | ||||||
|  | -	gcc $(PICFLAGS) -DNO_THREADS -c $< -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) $(PICFLAGS) $(CPPFLAGS) -DNO_THREADS -c $< -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/axc_crypto.o: $(SDIR)/axc_crypto.c $(BDIR) | ||||||
|  | -	gcc $(PICFLAGS) -c $< -o $@
 | ||||||
|  | +	$(CC) $(PICFLAGS) $(CPPFLAGS) -c $< -o $@
 | ||||||
|  |   | ||||||
|  |  $(BDIR)/axc_store.o: $(SDIR)/axc_store.c $(BDIR) | ||||||
|  | -	gcc $(PICFLAGS) -c $< -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) $(PICFLAGS) $(CPPFLAGS) -c $< -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/libaxc.a: $(BDIR)/axc.o $(BDIR)/axc_crypto.o $(BDIR)/axc_store.o | ||||||
|  | -	ar rcs $@ $^
 | ||||||
|  | -	
 | ||||||
|  | +	$(AR) rcs $@ $^
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/libaxc-nt.a: $(BDIR)/axc-nt.o $(BDIR)/axc_crypto.o $(BDIR)/axc_store.o | ||||||
|  | -	ar rcs $@ $^
 | ||||||
|  | +	$(AR) rcs $@ $^
 | ||||||
|  |   | ||||||
|  |  $(AX_PATH): | ||||||
|  | -	cd $(AX_DIR) && mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make
 | ||||||
|  | -	
 | ||||||
|  | +	cd $(AX_DIR) && \
 | ||||||
|  | +		$(MKDIR_P) build && \
 | ||||||
|  | +		cd build && \
 | ||||||
|  | +		$(CMAKE) $(CMAKE_FLAGS) ..  && \
 | ||||||
|  | +		$(MAKE)
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: test | ||||||
|  |  test: $(AX_PATH) test_store.o test_client.o | ||||||
|  |   | ||||||
|  |  .PHONY: test_store.o | ||||||
|  |  test_store.o: $(SDIR)/axc_store.c $(SDIR)/axc_crypto.c $(TDIR)/test_store.c | ||||||
|  | -	gcc $(TESTFLAGS) -o $(TDIR)/$@  $(TDIR)/test_store.c $(SDIR)/axc_crypto.c $(LFLAGS_T)
 | ||||||
|  | +	$(CC) $(TESTFLAGS) -o $(TDIR)/$@  $(TDIR)/test_store.c $(SDIR)/axc_crypto.c $(LDFLAGS_T)
 | ||||||
|  |  	-$(TDIR)/$@ | ||||||
|  |  	mv *.g* $(TDIR) | ||||||
|  | -	
 | ||||||
|  | +
 | ||||||
|  |  test_store: test_store.o | ||||||
|  | -	
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: test_client.o | ||||||
|  |  test_client.o: $(SDIR)/axc.c $(SDIR)/axc_crypto.c  $(SDIR)/axc_store.c $(TDIR)/test_client.c | ||||||
|  | -	gcc $(TESTFLAGS) -g $(HEADERS) -o $(TDIR)/$@ $(SDIR)/axc_crypto.c $(TDIR)/test_client.c $(LFLAGS_T)
 | ||||||
|  | +	$(CC) $(TESTFLAGS) -g $(HEADERS) -o $(TDIR)/$@ $(SDIR)/axc_crypto.c $(TDIR)/test_client.c $(LDFLAGS_T)
 | ||||||
|  |  	-$(TDIR)/$@ | ||||||
|  |  	mv *.g* $(TDIR) | ||||||
|  | -	
 | ||||||
|  | -test_client: test_client.o	
 | ||||||
|  | -	
 | ||||||
|  | +
 | ||||||
|  | +test_client: test_client.o
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: coverage | ||||||
|  |  coverage: test | ||||||
|  |  	gcovr -r . --html --html-details -o $@.html | ||||||
|  |  	gcovr -r . -s | ||||||
|  | -	mkdir -p $@
 | ||||||
|  | +	$(MKDIR_P) $@
 | ||||||
|  |  	mv $@.* $@ | ||||||
|  | -	 
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: clean | ||||||
|  |  clean: | ||||||
|  |  	rm -rf client $(BDIR) $(CDIR) $(AX_DIR)/build | ||||||
|  |  	rm -f $(TDIR)/*.o | ||||||
|  |  	rm -f $(TDIR)/*.gcno $(TDIR)/*.gcda $(TDIR)/*.sqlite | ||||||
|  | -	
 | ||||||
|  | -	
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  | -- 
 | ||||||
|  | 2.11.1 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,146 @@ | |||||||
|  | From 48e4c07fcd33fe1743119bde5cfa1ab414f2208a Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Julian Ospald <hasufell@posteo.de> | ||||||
|  | Date: Tue, 21 Feb 2017 17:28:03 +0100 | ||||||
|  | Subject: [PATCH] Improve build system | ||||||
|  | Upstream: submitted https://github.com/gkdr/libomemo/pull/3 | ||||||
|  | 
 | ||||||
|  | * respect toolchain | ||||||
|  | * make stuff more Make compatible | ||||||
|  | ---
 | ||||||
|  |  makefile | 80 ++++++++++++++++++++++++++++++++++++++-------------------------- | ||||||
|  |  1 file changed, 48 insertions(+), 32 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/makefile b/makefile
 | ||||||
|  | index 0785924..5d7ca01 100644
 | ||||||
|  | --- a/lib/libomemo/makefile
 | ||||||
|  | +++ b/lib/libomemo/makefile
 | ||||||
|  | @@ -1,3 +1,14 @@
 | ||||||
|  | +### toolchain
 | ||||||
|  | +#
 | ||||||
|  | +CC ?= gcc
 | ||||||
|  | +AR ?= ar
 | ||||||
|  | +LIBTOOL ?= libtool
 | ||||||
|  | +PKG_CONFIG ?= pkg-config
 | ||||||
|  | +LIBGCRYPT_CONFIG ?= libgcrypt-config
 | ||||||
|  | +MKDIR = mkdir
 | ||||||
|  | +MKDIR_P = mkdir -p
 | ||||||
|  | +
 | ||||||
|  | +
 | ||||||
|  |  SDIR = src | ||||||
|  |  BDIR = build | ||||||
|  |  TDIR = test | ||||||
|  | @@ -7,66 +18,71 @@ LDIR = lib
 | ||||||
|  |  # -fno-builtin-memset is enough to make gcc not optimize it away | ||||||
|  |  FILES = | ||||||
|  |   | ||||||
|  | -PKGCFG_C=$(shell pkg-config --cflags glib-2.0 sqlite3 mxml) $(shell libgcrypt-config --cflags)
 | ||||||
|  | -PKGCFG_L=$(shell pkg-config --libs glib-2.0 sqlite3 mxml) $(shell libgcrypt-config --libs)
 | ||||||
|  | +PKGCFG_C=$(shell $(PKG_CONFIG) --cflags glib-2.0 sqlite3 mxml) \
 | ||||||
|  | +		 $(shell $(LIBGCRYPT_CONFIG) --cflags)
 | ||||||
|  | +PKGCFG_L=$(shell $(PKG_CONFIG) --libs glib-2.0 sqlite3 mxml) \
 | ||||||
|  | +		 $(shell $(LIBGCRYPT_CONFIG) --libs)
 | ||||||
|  |   | ||||||
|  | -CFLAGS =-std=c11 -Wall -Wextra -Wpedantic -Wstrict-overflow -fno-strict-aliasing -funsigned-char -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -fno-builtin-memset $(PKGCFG_C)
 | ||||||
|  | +CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -Wstrict-overflow \
 | ||||||
|  | +		-fno-strict-aliasing -funsigned-char \
 | ||||||
|  | +		-fno-builtin-memset $(PKGCFG_C)
 | ||||||
|  | +CPPFLAGS += -D_XOPEN_SOURCE=700 -D_BSD_SOURCE
 | ||||||
|  |  CFLAGS_CONVERSATIONS=$(CFLAGS) -DOMEMO_XMLNS='"eu.siacs.conversations.axolotl"' -DOMEMO_NS_SEPARATOR='"."' -DOMEMO_NS_NOVERSION | ||||||
|  |  COVFLAGS = --coverage -O0 -g $(CFLAGS) | ||||||
|  | -LFLAGS =-pthread -ldl -lm $(PKGCFG_L)
 | ||||||
|  | -TESTFLAGS = -lcmocka $(LFLAGS)
 | ||||||
|  | +LDFLAGS += -pthread -ldl -lm $(PKGCFG_L)
 | ||||||
|  | +TESTFLAGS = -lcmocka $(LDFLAGS)
 | ||||||
|  |   | ||||||
|  |  all: $(BDIR)/libomemo-conversations.a | ||||||
|  |   | ||||||
|  |  $(BDIR): | ||||||
|  | -	mkdir -p $@
 | ||||||
|  | -	
 | ||||||
|  | -libomemo: $(SDIR)/libomemo.c libomemo_crypto libomemo_storage $(BDIR) 
 | ||||||
|  | -	libtool --mode=compile gcc -c $(SDIR)/$@.c $(CFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  | -	libtool --mode=link gcc -o $(BDIR)/$@.la $(BDIR)/$@.lo $(BDIR)/$@_crypto.lo $(BDIR)/$@_storage.lo
 | ||||||
|  | -	
 | ||||||
|  | +	$(MKDIR_P) $@
 | ||||||
|  | +
 | ||||||
|  | +libomemo: $(SDIR)/libomemo.c libomemo_crypto libomemo_storage $(BDIR)
 | ||||||
|  | +	$(LIBTOOL) --mode=compile $(CC) -c $(SDIR)/$@.c $(CFLAGS) $(CPPFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  | +	$(LIBTOOL) --mode=link $(CC) -o $(BDIR)/$@.la $(BDIR)/$@.lo $(BDIR)/$@_crypto.lo $(BDIR)/$@_storage.lo
 | ||||||
|  | +
 | ||||||
|  |  libomemo-conversations: $(SDIR)/libomemo.c libomemo_crypto libomemo_storage $(BDIR) | ||||||
|  | -	libtool --mode=compile gcc -c $(SDIR)/libomemo.c $(CFLAGS_CONVERSATIONS) -o $(BDIR)/libomemo.lo
 | ||||||
|  | -	libtool --mode=link gcc -o $(BDIR)/libomemo.la $(BDIR)/libomemo.lo $(BDIR)/libomemo_crypto.lo $(BDIR)/libomemo_storage.lo
 | ||||||
|  | +	$(LIBTOOL) --mode=compile $(CC) -c $(SDIR)/libomemo.c $(CFLAGS_CONVERSATIONS) -o $(BDIR)/libomemo.lo
 | ||||||
|  | +	$(LIBTOOL) --mode=link $(CC) -o $(BDIR)/libomemo.la $(BDIR)/libomemo.lo $(BDIR)/libomemo_crypto.lo $(BDIR)/libomemo_storage.lo
 | ||||||
|  |   | ||||||
|  |  libomemo_crypto: $(SDIR)/libomemo_crypto.c build | ||||||
|  | -	libtool --mode=compile gcc -c $(SDIR)/$@.c $(CFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  | +	$(LIBTOOL) --mode=compile $(CC) -c $(SDIR)/$@.c $(CFLAGS) $(CPPFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  |   | ||||||
|  |  libomemo_storage: $(SDIR)/libomemo_storage.c build | ||||||
|  | -	libtool --mode=compile gcc -c $(SDIR)/$@.c $(CFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  | +	$(LIBTOOL) --mode=compile $(CC) -c $(SDIR)/$@.c $(CFLAGS) $(CPPFLAGS) -o $(BDIR)/$@.lo
 | ||||||
|  |   | ||||||
|  |  $(BDIR)/libomemo.o: $(BDIR) $(SDIR)/libomemo.c $(SDIR)/libomemo.h | ||||||
|  | -	gcc -c $(CFLAGS) $(SDIR)/libomemo.c -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(SDIR)/libomemo.c -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/libomemo-conversations.o: $(SDIR)/libomemo.c $(BDIR) | ||||||
|  | -	gcc -c $(SDIR)/libomemo.c $(CFLAGS_CONVERSATIONS) -fPIC -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) -c $(SDIR)/libomemo.c $(CFLAGS_CONVERSATIONS) -fPIC -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/libomemo_crypto.o: $(SDIR)/libomemo_crypto.c $(BDIR) | ||||||
|  | -	gcc -c $(SDIR)/libomemo_crypto.c $(CFLAGS) -fPIC -o $@
 | ||||||
|  | +	$(CC) -c $(SDIR)/libomemo_crypto.c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@
 | ||||||
|  |   | ||||||
|  |  $(BDIR)/libomemo_storage.o: $(SDIR)/libomemo_storage.c $(BDIR) | ||||||
|  | -	gcc -c $(SDIR)/libomemo_storage.c $(CFLAGS) -fPIC -o $@
 | ||||||
|  | -	
 | ||||||
|  | +	$(CC) -c $(SDIR)/libomemo_storage.c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@
 | ||||||
|  | +
 | ||||||
|  |  $(BDIR)/libomemo-conversations.a: $(BDIR)/libomemo-conversations.o $(BDIR)/libomemo_crypto.o $(BDIR)/libomemo_storage.o | ||||||
|  | -	ar rcs $@ $^
 | ||||||
|  | -	
 | ||||||
|  | +	$(AR) rcs $@ $^
 | ||||||
|  | +
 | ||||||
|  |  .PHONY = test_libomemo.o | ||||||
|  |  test_libomemo: $(TDIR)/test_libomemo.c $(SDIR)/libomemo.c | ||||||
|  | -	gcc $(COVFLAGS) $<  $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  | +	$(CC) $(COVFLAGS) $<  $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  |  	-$(TDIR)/$@.o | ||||||
|  |  	mv *.g* $(TDIR) | ||||||
|  | -	
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: test_crypto | ||||||
|  |  test_crypto: $(TDIR)/test_crypto.c $(SDIR)/libomemo_crypto.c | ||||||
|  | -	gcc $(COVFLAGS) $<  $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  | +	$(CC) $(COVFLAGS) $<  $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  |  	-$(TDIR)/$@.o | ||||||
|  | -	mv *.g* $(TDIR)	
 | ||||||
|  | -	
 | ||||||
|  | +	mv *.g* $(TDIR)
 | ||||||
|  | +
 | ||||||
|  |  .PHONY: test_storage | ||||||
|  |  test_storage: $(TDIR)/test_storage.c $(SDIR)/libomemo_storage.c | ||||||
|  | -	gcc $(COVFLAGS) $< $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  | +	$(CC) $(COVFLAGS) $< $(FILES) -o $(TDIR)/$@.o $(TESTFLAGS)
 | ||||||
|  |  	-$(TDIR)/$@.o | ||||||
|  | -	mv *.g* $(TDIR) 
 | ||||||
|  | +	mv *.g* $(TDIR)
 | ||||||
|  |   | ||||||
|  |  .PHONY: test | ||||||
|  |  test : test_libomemo test_crypto test_storage | ||||||
|  | @@ -75,7 +91,7 @@ test : test_libomemo test_crypto test_storage
 | ||||||
|  |  coverage: test | ||||||
|  |  	gcovr -r . --html --html-details -o $@.html | ||||||
|  |  	gcovr -r . -s | ||||||
|  | -	mkdir -p $@
 | ||||||
|  | +	$(MKDIR_P) $@
 | ||||||
|  |  	mv $@.* $@ | ||||||
|  |   | ||||||
|  |  .PHONY: clean | ||||||
|  | -- 
 | ||||||
|  | 2.11.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										73
									
								
								packages/net-im/lurch/lurch-scm.exheres-0
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								packages/net-im/lurch/lurch-scm.exheres-0
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | |||||||
|  | # Copyright 2017 Julian Ospald <hasufell@posteo.de> | ||||||
|  | # Distributed under the terms of the GNU General Public License v2 | ||||||
|  | 
 | ||||||
|  | SCM_REPOSITORY="https://github.com/gkdr/${PN}.git" | ||||||
|  | SCM_axc_REPOSITORY="https://github.com/gkdr/axc.git" | ||||||
|  | SCM_omemo_REPOSITORY="https://github.com/gkdr/libomemo.git" | ||||||
|  | SCM_SECONDARY_REPOSITORIES=" | ||||||
|  |     axc | ||||||
|  |     omemo | ||||||
|  | " | ||||||
|  | SCM_EXTERNAL_REFS=" | ||||||
|  |     lib/axc:axc | ||||||
|  |     lib/libomemo:omemo | ||||||
|  | " | ||||||
|  | 
 | ||||||
|  | CMAKE_SOURCE=${WORK}/lib/axc/lib/libaxolotl-c | ||||||
|  | 
 | ||||||
|  | require cmake [ api=2 out_of_source=false ] # don't let cmake mess with $WORK | ||||||
|  | require scm-git | ||||||
|  | 
 | ||||||
|  | SUMMARY="OMEMO for libpurple - interoperable with other OMEMO clients" | ||||||
|  | HOMEPAGE="https://github.com/gkdr/${PN}" | ||||||
|  | 
 | ||||||
|  | LICENCES="GPL-3" | ||||||
|  | SLOT="0" | ||||||
|  | PLATFORMS="~amd64 ~x86" | ||||||
|  | MYOPTIONS="" | ||||||
|  | 
 | ||||||
|  | DEPENDENCIES=" | ||||||
|  |     build: | ||||||
|  |         sys-devel/libtool | ||||||
|  |         virtual/pkg-config | ||||||
|  |     build+run: | ||||||
|  |         dev-db/sqlite:3 | ||||||
|  |         dev-libs/glib:2 | ||||||
|  |         dev-libs/libgcrypt | ||||||
|  |         dev-libs/libxml2 | ||||||
|  |         dev-libs/mxml | ||||||
|  |         net-im/pidgin | ||||||
|  | " | ||||||
|  | 
 | ||||||
|  | BUGS_TO="hasufell@posteo.de" | ||||||
|  | REMOTE_IDS="github:gkdr/${PN}" | ||||||
|  | 
 | ||||||
|  | DEFAULT_SRC_PREPARE_PATCHES=( | ||||||
|  |     "${FILES}"/0001-Improve-build-system.patch | ||||||
|  |     "${FILES}"/0002-axc-Improve-build-system.patch | ||||||
|  |     "${FILES}"/0003-omemo-Improve-build-system.patch | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | src_prepare() { | ||||||
|  |     # cmake part of libaxolotl-c | ||||||
|  |     edo mkdir "${CMAKE_SOURCE}"/build | ||||||
|  |     default | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | src_configure() { | ||||||
|  |     # cmake part of libaxolotl-c | ||||||
|  |     edo cd "${CMAKE_SOURCE}"/build | ||||||
|  |     cmake_src_configure | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | src_compile() { | ||||||
|  |     # cmake part of libaxolotl-c | ||||||
|  |     emake -C "${CMAKE_SOURCE}"/build | ||||||
|  | 
 | ||||||
|  |     default | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | src_install() { | ||||||
|  |     default | ||||||
|  | } | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user