mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-25 11:22:30 +01:00
118 lines
3.6 KiB
Diff
118 lines
3.6 KiB
Diff
Patch-Source: https://salsa.debian.org/yangfl-guest/QR-Code-generator/-/blob/master/debian/patches/0001-Make-C-shared-lib.patch
|
|
---
|
|
From eb9eb1b8d84f64f8d65c11ca342f4f8149155da4 Mon Sep 17 00:00:00 2001
|
|
From: yangfl <yangfl@users.noreply.github.com>
|
|
Date: Mon, 22 Feb 2021 00:13:09 +0800
|
|
Subject: [PATCH 1/2] Make C shared lib
|
|
|
|
---
|
|
c/Makefile | 53 +++++++++++++++++++++++++++++++++++++++++------
|
|
c/qrcodegen.pc.in | 10 +++++++++
|
|
2 files changed, 57 insertions(+), 6 deletions(-)
|
|
create mode 100644 c/qrcodegen.pc.in
|
|
|
|
diff --git a/c/Makefile b/c/Makefile
|
|
index 661b1f7..4a633cc 100644
|
|
--- a/c/Makefile
|
|
+++ b/c/Makefile
|
|
@@ -51,33 +51,74 @@ CFLAGS += -std=c99 -O
|
|
# ---- Targets to build ----
|
|
|
|
LIB = qrcodegen
|
|
-LIBFILE = lib$(LIB).a
|
|
+LIBFILE = lib$(LIB).so
|
|
+ARFILE = lib$(LIB).a
|
|
+SO_NAME = $(LIBFILE).1
|
|
+REAL_NAME = $(LIBFILE).$(VERSION)
|
|
+PCFILE := $(LIB).pc
|
|
+HEADERS = qrcodegen.h
|
|
LIBOBJ = qrcodegen.o
|
|
MAINS = qrcodegen-demo qrcodegen-test
|
|
|
|
+MULTIARCH ?= $(shell $(CC) --print-multiarch)
|
|
+
|
|
+PREFIX ?= /usr
|
|
+INCLUDEDIR ?= include/qrcodegen
|
|
+LIBDIR ?= lib/$(MULTIARCH)
|
|
+
|
|
# Build all binaries
|
|
-all: $(LIBFILE) $(MAINS)
|
|
+all: $(LIBFILE) $(ARFILE) $(MAINS)
|
|
|
|
# Delete build output
|
|
clean:
|
|
- rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
|
|
+ rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS) $(PCFILE)
|
|
rm -rf .deps
|
|
|
|
+.PHONY: install-shared
|
|
+install-shared: $(LIBFILE)
|
|
+ install -d $(DESTDIR)$(PREFIX)/$(LIBDIR) || true
|
|
+ install -m 0644 $< $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(REAL_NAME)
|
|
+ rm -f $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(SO_NAME)
|
|
+ ln -s $(REAL_NAME) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(SO_NAME)
|
|
+ rm -f $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(LIBFILE)
|
|
+ ln -s $(SO_NAME) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(LIBFILE)
|
|
+
|
|
+.PHONY: install-static
|
|
+install-static: $(ARFILE)
|
|
+ install -d $(DESTDIR)$(PREFIX)/$(LIBDIR) || true
|
|
+ install -m 0644 $< $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(ARLIB)
|
|
+
|
|
+.PHONY: install-header
|
|
+install-header: $(HEADERS) $(PCFILE)
|
|
+ install -d $(DESTDIR)$(PREFIX)/$(INCLUDEDIR) || true
|
|
+ install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/$(INCLUDEDIR)/
|
|
+ install -d $(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig || true
|
|
+ install -m 0644 $(PCFILE) $(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig
|
|
+
|
|
+.PHONY: install
|
|
+install: install-shared install-static install-header
|
|
+
|
|
# Executable files
|
|
%: %.o $(LIBFILE)
|
|
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
|
|
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -L . -l $(LIB) $(LDFLAGS)
|
|
|
|
# Special executable
|
|
qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
|
|
- $(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^
|
|
+ $(CC) $(CPPFLAGS) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^ $(LDFLAGS)
|
|
|
|
# The library
|
|
$(LIBFILE): $(LIBOBJ)
|
|
+ $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
|
|
+
|
|
+$(ARFILE): $(LIBOBJ)
|
|
$(AR) -crs $@ -- $^
|
|
|
|
+$(PCFILE): $(PCFILE).in
|
|
+ sed 's|@prefix@|$(PREFIX)|; s|@libdir@|$(LIBDIR)|; s|@includedir@|$(INCLUDEDIR)|; s|@version@|$(VERSION)|' $< > $@
|
|
+
|
|
# Object files
|
|
%.o: %.c .deps/timestamp
|
|
- $(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
|
|
+ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
|
|
|
|
# Have a place to store header dependencies automatically generated by compiler
|
|
.deps/timestamp:
|
|
diff --git a/c/qrcodegen.pc.in b/c/qrcodegen.pc.in
|
|
new file mode 100644
|
|
index 0000000..a3a6d6a
|
|
--- /dev/null
|
|
+++ b/c/qrcodegen.pc.in
|
|
@@ -0,0 +1,10 @@
|
|
+prefix=@prefix@
|
|
+libdir=${prefix}/@libdir@
|
|
+includedir=${prefix}/@includedir@
|
|
+
|
|
+Name: qrcodegen
|
|
+Description: QR Code generator library in multiple languages - C version
|
|
+Version: @version@
|
|
+URL: https://github.com/nayuki/QR-Code-generator
|
|
+Libs: -L${libdir} -lqrcodegen
|
|
+Cflags: -I${includedir}
|
|
--
|
|
2.35.1
|
|
|