# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= QR-Code-generator VERSION= 1.8.0 KEYWORDS= graphics VARIANTS= standard SDESC[standard]= High-quality QR Code generator library HOMEPAGE= https://www.nayuki.io/page/qr-code-generator-library CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= GITHUB/nayuki:QR-Code-generator:v1.8.0 DISTFILE[1]= generated:main DF_INDEX= 1 SPKGS[standard]= single OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none USES= gmake c++:single cpe LICENSE= MIT:single LICENSE_FILE= MIT:{{WRKDIR}}/LICENSE LICENSE_SCHEME= solo CPE_PRODUCT= qr_code_generator CPE_VENDOR= code-projects FPC_EQUIVALENT= graphics/qr-code-generator SOVERSION= 1.7.0 post-patch: ${CP} ${FILESDIR}/Makefile ${WRKSRC} # extract license ${AWK} '/^License/,EOF' ${WRKSRC}/Readme.markdown > ${WRKDIR}/LICENSE post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so [FILE:238:descriptions/desc.single] This project aims to be the best, clearest QR Code generator library in multiple languages. The primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments. [FILE:116:distinfo] 2ec0a4d33d6f521c942eeaf473d42d5fe139abcfa57d2beffe10c5cf7d34ae60 193288 nayuki-QR-Code-generator-1.8.0.tar.gz [FILE:250:manifests/plist.single] include/qrcodegen/ qrcodegen.h qrcodegen.hpp lib/ libqrcodegen.a libqrcodegen.so libqrcodegen.so.%%SOMAJOR%% libqrcodegen.so.%%SOVERSION%% libqrcodegencpp.a libqrcodegencpp.so libqrcodegencpp.so.%%SOMAJOR%% libqrcodegencpp.so.%%SOVERSION%% [FILE:2336:patches/patch-c_Makefile] --- c/Makefile.orig 2021-08-08 17:21:08 UTC +++ c/Makefile @@ -29,11 +29,13 @@ # - CFLAGS: Any extra user-specified compiler flags (can be blank). # Recommended compiler flags: -CFLAGS += -std=c99 -O +CFLAGS ?= -std=c99 -O # Extra flags for diagnostics: # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address +# Version information +VERSION = 1.7.0 # ---- Controlling make ---- @@ -51,18 +53,45 @@ CFLAGS += -std=c99 -O # ---- Targets to build ---- LIB = qrcodegen -LIBFILE = lib$(LIB).a +ARFILE = lib$(LIB).a +LIBFILE = lib$(LIB).so +# Bump the soname number when the ABI changes and gets incompatible +SO_NAME = $(LIBFILE).1 +REAL_NAME = $(LIBFILE).$(VERSION) +HEADERS = qrcodegen.h LIBOBJ = qrcodegen.o MAINS = qrcodegen-demo qrcodegen-test +# define paths to install +INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen +LIBDIR ?= $(DESTDIR)$(PREFIX)/lib + # 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) rm -rf .deps +install-shared: $(LIBFILE) + install -d $(LIBDIR) || true + install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME) + rm -f $(LIBDIR)/$(SO_NAME) + ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME) + rm -f $(LIBDIR)/$(LIBFILE) + ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE) + +install-static: $(ARFILE) + install -d $(LIBDIR) || true + install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE) + +install-header: $(HEADERS) + install -d $(INCLUDEDIR) || true + install -m 0644 $(HEADERS) $(INCLUDEDIR)/ + +install: install-shared install-static install-header + # Executable files %: %.o $(LIBFILE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB) @@ -72,12 +101,15 @@ qrcodegen-test: qrcodegen-test.c $(LIBOB $(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^ # The library -$(LIBFILE): $(LIBOBJ) +$(ARFILE): $(LIBOBJ) $(AR) -crs $@ -- $^ +$(LIBFILE): $(LIBOBJ) + $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^ + # Object files %.o: %.c .deps/timestamp - $(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $< + $(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $< # Have a place to store header dependencies automatically generated by compiler .deps/timestamp: [FILE:2245:patches/patch-cpp_Makefile] --- cpp/Makefile.orig 2021-08-08 17:21:08 UTC +++ cpp/Makefile @@ -29,11 +29,13 @@ # - CXXFLAGS: Any extra user-specified compiler flags (can be blank). # Recommended compiler flags: -CXXFLAGS += -std=c++11 -O +CXXFLAGS ?= -std=c++11 -O # Extra flags for diagnostics: # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address +# Version information +VERSION = 1.7.0 # ---- Controlling make ---- @@ -51,29 +53,59 @@ CXXFLAGS += -std=c++11 -O # ---- Targets to build ---- LIB = qrcodegencpp -LIBFILE = lib$(LIB).a +ARFILE = lib$(LIB).a +LIBFILE = lib$(LIB).so +# Bump the soname number when the ABI changes and gets incompatible +SO_NAME = $(LIBFILE).1 +REAL_NAME = $(LIBFILE).$(VERSION) +HEADERS = qrcodegen.hpp LIBOBJ = qrcodegen.o MAINS = QrCodeGeneratorDemo +# define paths to install +INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen +LIBDIR ?= $(DESTDIR)$(PREFIX)/lib + # 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) rm -rf .deps +install-shared: $(LIBFILE) + install -d $(LIBDIR) || true + install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME) + rm -f $(LIBDIR)/$(SO_NAME) + ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME) + rm -f $(LIBDIR)/$(LIBFILE) + ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE) + +install-static: $(ARFILE) + install -d $(LIBDIR) || true + install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE) + +install-header: $(HEADERS) + install -d $(INCLUDEDIR) || true + install -m 0644 $(HEADERS) $(INCLUDEDIR)/ + +install: install-shared install-static install-header + # Executable files %: %.o $(LIBFILE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB) # The library -$(LIBFILE): $(LIBOBJ) +$(ARFILE): $(LIBOBJ) $(AR) -crs $@ -- $^ +$(LIBFILE): $(LIBOBJ) + $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^ + # Object files %.o: %.cpp .deps/timestamp - $(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $< + $(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $< # Have a place to store header dependencies automatically generated by compiler .deps/timestamp: [FILE:142:files/Makefile] SUBDIRS= c cpp TARGETS= all clean install .PHONY: $(TARGETS) $(SUBDIRS) $(TARGETS): $(SUBDIRS) $(SUBDIRS): $(MAKE) -C $@ $(MAKECMDGOALS)