View | Details | Raw Unified | Return to bug 275038
Collapse All | Expand All

(-)b/graphics/qr-code-generator/Makefile (-12 / +9 lines)
Lines 1-6 Link Here
1
PORTNAME=	qr-code-generator
1
PORTNAME=	qr-code-generator
2
PORTVERSION=	1.8.0
3
DISTVERSIONPREFIX=	v
2
DISTVERSIONPREFIX=	v
3
DISTVERSION=	1.8.0
4
PORTREVISION=	1
4
CATEGORIES=	graphics
5
CATEGORIES=	graphics
5
6
6
MAINTAINER=	lwhsu@FreeBSD.org
7
MAINTAINER=	lwhsu@FreeBSD.org
Lines 9-33 WWW= https://www.nayuki.io/page/qr-code-generator-library Link Here
9
10
10
LICENSE=	MIT
11
LICENSE=	MIT
11
12
12
USES=		compiler:c++11-lang gmake
13
USES=		cmake compiler:c++11-lang
13
14
14
USE_LDCONFIG=	yes
15
USE_LDCONFIG=	yes
15
16
16
USE_GITHUB=	yes
17
USE_GITHUB=	yes
17
GH_ACCOUNT=	nayuki
18
GH_ACCOUNT=	nayuki
18
GH_PROJECT=	QR-Code-generator
19
GH_PROJECT=	QR-Code-generator
20
GH_TUPLE=	EasyCoding:qrcodegen-cmake:v1.8.0-cmake2:qrcodegen_cmake/qrcodegen-cmake
19
21
20
PLIST_SUB=	VERSION=${PORTVERSION}
22
CMAKE_ON=	BUILD_SHARED_LIBS
21
23
22
post-patch:
24
PLIST_SUB=	VERSION=${PORTVERSION}
23
	${CP} ${FILESDIR}/Makefile ${WRKSRC}
24
	${REINPLACE_CMD} -e 's,$$(DESTDIR)/usr,${STAGEDIR}${PREFIX},' ${WRKSRC}/c/Makefile
25
	${REINPLACE_CMD} -e 's,$$(DESTDIR)/usr,${STAGEDIR}${PREFIX},' ${WRKSRC}/cpp/Makefile
26
	${REINPLACE_CMD} -e 's,%%VERSION%%,${PORTVERSION},' ${WRKSRC}/c/Makefile
27
	${REINPLACE_CMD} -e 's,%%VERSION%%,${PORTVERSION},' ${WRKSRC}/cpp/Makefile
28
25
29
post-install:
26
post-extract:
30
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libqrcodegen.so.${PORTVERSION}
27
	@${LN} -s ${WRKSRC}/qrcodegen-cmake/cmake ${WRKSRC}
31
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libqrcodegencpp.so.${PORTVERSION}
28
	@${LN} -s ${WRKSRC}/qrcodegen-cmake/CMakeLists.txt ${WRKSRC}
32
29
33
.include <bsd.port.mk>
30
.include <bsd.port.mk>
(-)b/graphics/qr-code-generator/distinfo (-1 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1673860287
1
TIMESTAMP = 1699771472
2
SHA256 (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 2ec0a4d33d6f521c942eeaf473d42d5fe139abcfa57d2beffe10c5cf7d34ae60
2
SHA256 (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 2ec0a4d33d6f521c942eeaf473d42d5fe139abcfa57d2beffe10c5cf7d34ae60
3
SIZE (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 193288
3
SIZE (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 193288
4
SHA256 (EasyCoding-qrcodegen-cmake-v1.8.0-cmake2_GH0.tar.gz) = 04e0dc2d7b19457928172e338b5b22216ad23a9dee8d26be4fb05fc39ea59904
5
SIZE (EasyCoding-qrcodegen-cmake-v1.8.0-cmake2_GH0.tar.gz) = 5573
(-)a/graphics/qr-code-generator/files/Makefile (-10 lines)
Removed Link Here
1
SUBDIRS= c cpp
2
3
TARGETS= all clean install
4
5
.PHONY: $(TARGETS) $(SUBDIRS)
6
7
$(TARGETS): $(SUBDIRS)
8
9
$(SUBDIRS):
10
	$(MAKE) -C $@ $(MAKECMDGOALS)
(-)a/graphics/qr-code-generator/files/patch-c_Makefile (-84 lines)
Removed Link Here
1
Based on https://github.com/nayuki/QR-Code-generator/pull/72
2
--- c/Makefile.orig	2023-01-16 09:13:33 UTC
3
+++ c/Makefile
4
@@ -29,11 +29,13 @@
5
 # - CFLAGS: Any extra user-specified compiler flags (can be blank).
6
 
7
 # Recommended compiler flags:
8
-CFLAGS += -std=c99 -O
9
+CFLAGS ?= -std=c99 -O
10
 
11
 # Extra flags for diagnostics:
12
 # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
13
 
14
+# Version information
15
+VERSION = %%VERSION%%
16
 
17
 # ---- Controlling make ----
18
 
19
@@ -52,17 +54,44 @@ CFLAGS += -std=c99 -O
20
 
21
 LIB = qrcodegen
22
-LIBFILE = lib$(LIB).a
23
+ARFILE = lib$(LIB).a
24
+LIBFILE = lib$(LIB).so
25
+# Bump the soname number when the ABI changes and gets incompatible
26
+SO_NAME = $(LIBFILE).1
27
+REAL_NAME = $(LIBFILE).$(VERSION)
28
+HEADERS = qrcodegen.h
29
 LIBOBJ = qrcodegen.o
30
 MAINS = qrcodegen-demo qrcodegen-test
31
 
32
+# define paths to install
33
+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
34
+LIBDIR ?= $(DESTDIR)/usr/lib
35
+
36
 # Build all binaries
37
-all: $(LIBFILE) $(MAINS)
38
+all: $(LIBFILE) $(ARFILE) $(MAINS)
39
 
40
 # Delete build output
41
 clean:
42
-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
43
+	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
44
 	rm -rf .deps
45
 
46
+install-shared: $(LIBFILE)
47
+	install -d $(LIBDIR) || true
48
+	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
49
+	rm -f $(LIBDIR)/$(SO_NAME)
50
+	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
51
+	rm -f $(LIBDIR)/$(LIBFILE)
52
+	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
53
+
54
+install-static: $(ARFILE)
55
+	install -d $(LIBDIR) || true
56
+	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
57
+
58
+install-header: $(HEADERS)
59
+	install -d $(INCLUDEDIR) || true
60
+	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
61
+
62
+install: install-shared install-static install-header
63
+
64
 # Executable files
65
 %: %.o $(LIBFILE)
66
 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
67
@@ -72,12 +101,15 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
68
 	$(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^
69
 
70
 # The library
71
-$(LIBFILE): $(LIBOBJ)
72
+$(ARFILE): $(LIBOBJ)
73
 	$(AR) -crs $@ -- $^
74
 
75
+$(LIBFILE): $(LIBOBJ)
76
+	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
77
+
78
 # Object files
79
 %.o: %.c .deps/timestamp
80
-	$(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
81
+	$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
82
 
83
 # Have a place to store header dependencies automatically generated by compiler
84
 .deps/timestamp:
(-)a/graphics/qr-code-generator/files/patch-cpp_Makefile (-85 lines)
Removed Link Here
1
Based on https://github.com/nayuki/QR-Code-generator/pull/72
2
--- cpp/Makefile.orig	2023-01-16 09:17:10 UTC
3
+++ cpp/Makefile
4
@@ -29,12 +29,14 @@
5
 # - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
6
 
7
 # Recommended compiler flags:
8
-CXXFLAGS += -std=c++11 -O
9
+CXXFLAGS ?= -std=c++11 -O
10
 
11
 # Extra flags for diagnostics:
12
 # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
13
 
14
-
15
+# Version information
16
+VERSION = %%VERSION%%
17
+ 
18
 # ---- Controlling make ----
19
 
20
 # Clear default suffix rules
21
@@ -51,29 +53,59 @@ CXXFLAGS += -std=c++11 -O
22
 # ---- Targets to build ----
23
 
24
 LIB = qrcodegencpp
25
-LIBFILE = lib$(LIB).a
26
+ARFILE = lib$(LIB).a
27
+LIBFILE = lib$(LIB).so
28
+# Bump the soname number when the ABI changes and gets incompatible
29
+SO_NAME = $(LIBFILE).1
30
+REAL_NAME = $(LIBFILE).$(VERSION)
31
+HEADERS = qrcodegen.hpp
32
 LIBOBJ = qrcodegen.o
33
 MAINS = QrCodeGeneratorDemo
34
 
35
+# define paths to install
36
+INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
37
+LIBDIR ?= $(DESTDIR)/usr/lib
38
+
39
 # Build all binaries
40
-all: $(LIBFILE) $(MAINS)
41
+all: $(LIBFILE) $(ARFILE) $(MAINS)
42
 
43
 # Delete build output
44
 clean:
45
-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
46
+	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
47
 	rm -rf .deps
48
 
49
+install-shared: $(LIBFILE)
50
+	install -d $(LIBDIR) || true
51
+	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
52
+	rm -f $(LIBDIR)/$(SO_NAME)
53
+	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
54
+	rm -f $(LIBDIR)/$(LIBFILE)
55
+	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
56
+
57
+install-static: $(ARFILE)
58
+	install -d $(LIBDIR) || true
59
+	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
60
+
61
+install-header: $(HEADERS)
62
+	install -d $(INCLUDEDIR) || true
63
+	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
64
+
65
+install: install-shared install-static install-header
66
+
67
 # Executable files
68
 %: %.o $(LIBFILE)
69
 	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB)
70
 
71
 # The library
72
-$(LIBFILE): $(LIBOBJ)
73
+$(ARFILE): $(LIBOBJ)
74
 	$(AR) -crs $@ -- $^
75
 
76
+$(LIBFILE): $(LIBOBJ)
77
+	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
78
+
79
 # Object files
80
 %.o: %.cpp .deps/timestamp
81
-	$(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
82
+	$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
83
 
84
 # Have a place to store header dependencies automatically generated by compiler
85
 .deps/timestamp:
(-)b/graphics/qr-code-generator/pkg-plist (-3 / +11 lines)
Lines 1-10 Link Here
1
include/qrcodegen/qrcodegen.h
1
include/qrcodegen/qrcodegen.h
2
include/qrcodegen/qrcodegen.hpp
2
include/qrcodegencpp/qrcodegen.hpp
3
lib/libqrcodegen.a
3
lib/cmake/qrcodegen/qrcodegen-config-version.cmake
4
lib/cmake/qrcodegen/qrcodegen-config.cmake
5
lib/cmake/qrcodegen/qrcodegen-targets-%%CMAKE_BUILD_TYPE%%.cmake
6
lib/cmake/qrcodegen/qrcodegen-targets.cmake
7
lib/cmake/qrcodegencpp/qrcodegencpp-config-version.cmake
8
lib/cmake/qrcodegencpp/qrcodegencpp-config.cmake
9
lib/cmake/qrcodegencpp/qrcodegencpp-targets-%%CMAKE_BUILD_TYPE%%.cmake
10
lib/cmake/qrcodegencpp/qrcodegencpp-targets.cmake
4
lib/libqrcodegen.so
11
lib/libqrcodegen.so
5
lib/libqrcodegen.so.1
12
lib/libqrcodegen.so.1
6
lib/libqrcodegen.so.%%VERSION%%
13
lib/libqrcodegen.so.%%VERSION%%
7
lib/libqrcodegencpp.a
8
lib/libqrcodegencpp.so
14
lib/libqrcodegencpp.so
9
lib/libqrcodegencpp.so.1
15
lib/libqrcodegencpp.so.1
10
lib/libqrcodegencpp.so.%%VERSION%%
16
lib/libqrcodegencpp.so.%%VERSION%%
17
libdata/pkgconfig/qrcodegen.pc
18
libdata/pkgconfig/qrcodegencpp.pc

Return to bug 275038