From: Matt B. <wal...@ma...> - 2024-08-10 01:21:51
|
> On Aug 9, 2024, at 6:55 AM, Michael Sweet via Gimp-print-devel <gim...@li...> wrote: > > Matt, > >> On Aug 8, 2024, at 4:01 PM, Matt Broughton <wal...@ma...> wrote: >> ... >> libusb is not included with any version of macos. What I am tyring to do is make an installer package for Gutenprint where gutenprint53+usb will work without having the macos Gutenprint installer actually installing libusb-- to build a statically linked binary or library. > > So I actually do this for my LPrint and hp-printer-app packages on macOS, which depend on PAPPL and libusb. > > The libusb configure script supports the "--disable-shared" option. Use it and then it will only link statically to libusb. > > I also set the compiler flags before running the configure script as follows to build "fat" for macOS 11 and later: > > CFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export CFLAGS > CXXFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export CXXFLAGS > LDFLAGS="-mmacosx-version-min=11.0 -arch x86_64 -arch arm64"; export LDFLAGS > > You can change the min version to whatever you like, although the code signing and notarization stuff changed between macOS 10.13 and 10.14 so I personally wouldn't go any older than 10.14... If you decide to do a PPC-compatible build then you'll need an older system and use "-arch i386 -arch ppc" in the compiler options. Thank you for your help Michael. Unfortunately, I still can't get it to build all the way. I did as you said for building libusb and installed -- matt$ file /usr/local/lib/libusb-1.0.a /usr/local/lib/libusb-1.0.a: Mach-O universal binary with 2 architectures: [x86_64:current ar archive random library] [arm64:current ar archive random library] /usr/local/lib/libusb-1.0.a (for architecture x86_64): current ar archive random library /usr/local/lib/libusb-1.0.a (for architecture arm64): current ar archive random library matt$ lipo -archs /usr/local/lib/libusb-1.0.a x86_64 arm64 Then I went to build gutenprint 5.3.5-pre1 fat(x86_64 and arm64), and it errored out building the backend. Interestingly, if I switch the architecture around (arm64 and x86_64), it will fail with the same error but show capture_entitlements in libusb-1.0a[arm64]....... I went back and built and installed libusb for only arm64. Same errors when I go to build gutennprint backend. Undefined symbols for architecture x86_64: "_SecTaskCopyValueForEntitlement", referenced from: _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o) "_SecTaskCreateFromSelf", referenced from: _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [backend_gutenprint] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 When run with "-v" added to LDFLAGS --- Making all in cups CC cups-calibrate.o CCLD cups-calibrate Apple clang version 15.0.0 (clang-1500.3.9.4) Target: arm64-apple-darwin23.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-835523/cups-calibrate-x86_64.out -L/usr/local/lib cups-calibrate.o -lm -framework IOKit -framework CoreFoundation -arch_multiple -final_output cups-calibrate -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-104106/cups-calibrate-arm64.out -L/usr/local/lib cups-calibrate.o -lm -framework IOKit -framework CoreFoundation -arch_multiple -final_output cups-calibrate -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo" -create -output cups-calibrate /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-835523/cups-calibrate-x86_64.out /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/cups-calibrate-104106/cups-calibrate-arm64.out CC backend_gutenprint-backend_canonselphy.o CC backend_gutenprint-backend_canonselphyneo.o CC backend_gutenprint-backend_kodak1400.o CC backend_gutenprint-backend_kodak6800.o CC backend_gutenprint-backend_kodak605.o CC backend_gutenprint-backend_shinkos2145.o CC backend_gutenprint-backend_sonyupd.o CC backend_gutenprint-backend_sonyupdneo.o CC backend_gutenprint-backend_dnpds40.o CC backend_gutenprint-backend_mitsu70x.o CC backend_gutenprint-backend_mitsu9550.o CC backend_gutenprint-backend_sinfonia.o CC backend_gutenprint-backend_common.o CC backend_gutenprint-backend_shinkos1245.o CC backend_gutenprint-backend_shinkos6145.o CC backend_gutenprint-backend_shinkos6245.o CC backend_gutenprint-backend_mitsup95d.o CC backend_gutenprint-backend_magicard.o CC backend_gutenprint-backend_mitsud90.o CC backend_gutenprint-backend_hiti.o CC backend_gutenprint-backend_mitsu.o CC backend_gutenprint-backend_kodak8800.o CCLD backend_gutenprint Apple clang version 15.0.0 (clang-1500.3.9.4) Target: arm64-apple-darwin23.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 11.0.0 14.5 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -Os -o /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/backend_gutenprint-backend_canonselphy-7e07f3/backend_gutenprint-backend_canonselphy-x86_64.out -L/usr/local/lib -L/usr/local/lib backend_gutenprint-backend_canonselphy.o backend_gutenprint-backend_canonselphyneo.o backend_gutenprint-backend_kodak1400.o backend_gutenprint-backend_kodak6800.o backend_gutenprint-backend_kodak605.o backend_gutenprint-backend_shinkos2145.o backend_gutenprint-backend_sonyupd.o backend_gutenprint-backend_sonyupdneo.o backend_gutenprint-backend_dnpds40.o backend_gutenprint-backend_mitsu70x.o backend_gutenprint-backend_mitsu9550.o backend_gutenprint-backend_sinfonia.o backend_gutenprint-backend_common.o backend_gutenprint-backend_shinkos1245.o backend_gutenprint-backend_shinkos6145.o backend_gutenprint-backend_shinkos6245.o backend_gutenprint-backend_mitsup95d.o backend_gutenprint-backend_magicard.o backend_gutenprint-backend_mitsud90.o backend_gutenprint-backend_hiti.o backend_gutenprint-backend_mitsu.o backend_gutenprint-backend_kodak8800.o /usr/local/lib/libusb-1.0.a -lobjc -ldl -framework IOKit -framework CoreFoundation -arch_multiple -final_output backend_gutenprint -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a Undefined symbols for architecture x86_64: "_SecTaskCopyValueForEntitlement", referenced from: _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o) "_SecTaskCreateFromSelf", referenced from: _darwin_has_capture_entitlements in libusb-1.0.a[x86_64][10](darwin_usb.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [backend_gutenprint] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 > > If it would be useful, I'm happy to share my (currently private) "macbase" project which I use to build a couple dozen common tools and libraries on my Macs, all using static libraries and "fat". Thank you for your offer. I think most of it would be over my head and lost on me. I'll play around with libusb and gutenprint a bit more. If nothing else, I can at least test the v5.3.5-pre1 release and update the build script and uninstaller. Matt |