From a1b32804da7a1263fd696510d116c36f5b3da943 Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Tue, 30 Jan 2024 16:03:59 +0100 Subject: [PATCH] Build nocgo version by default --- README.md | 5 +--- image/decode.go | 4 +-- image/decode_jpeg.go | 4 +-- image/encode.go | 4 +-- image/encode_jpeg.go | 4 +-- make.bash | 64 +++++++++----------------------------------- 6 files changed, 21 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index 17c5d82..d31add6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ You can also use apps like `ffplay` or `vlc`: ### Requirements -* [libjpeg-turbo](https://www.libjpeg-turbo.org/) (use `-tags jpeg` to build without `CGo`) * On Linux/RPi native Go [V4L](https://github.com/korandiz/v4l) implementation is used to capture images. * On Windows [Video for Windows (VfW)](https://en.wikipedia.org/wiki/Video_for_Windows) framework is used over win32 API. @@ -24,7 +23,7 @@ You can also use apps like `ffplay` or `vlc`: * `cv2` - build with `OpenCV` 2.x ([go-opencv](https://github.com/lazywei/go-opencv)) * `cv4` - build with `OpenCV` 4.x ([gocv](https://github.com/hybridgroup/gocv)) -* `jpeg` - build with native Go `image/jpeg` instead of `libjpeg-turbo` +* `turbo` - build with `libjpeg-turbo` ([libjpeg-turbo](https://www.libjpeg-turbo.org/)) instead of native Go `image/jpeg` ### Download @@ -74,8 +73,6 @@ Usage of cam2ip: Rotate image, valid values are 90, 180, 270 [CAM2IP_ROTATE] -timestamp Draws timestamp on images [CAM2IP_TIMESTAMP] - -video-file string - Use video file instead of camera [CAM2IP_VIDEO_FILE] -width float Frame width [CAM2IP_WIDTH] (default 640) ``` diff --git a/image/decode.go b/image/decode.go index 8a30028..a63a063 100644 --- a/image/decode.go +++ b/image/decode.go @@ -1,5 +1,5 @@ -//go:build !jpeg -// +build !jpeg +//go:build turbo +// +build turbo // Package image. package image diff --git a/image/decode_jpeg.go b/image/decode_jpeg.go index 749e643..1f1d6c9 100644 --- a/image/decode_jpeg.go +++ b/image/decode_jpeg.go @@ -1,5 +1,5 @@ -//go:build jpeg -// +build jpeg +//go:build !turbo +// +build !turbo // Package image. package image diff --git a/image/encode.go b/image/encode.go index d675379..42a35fd 100644 --- a/image/encode.go +++ b/image/encode.go @@ -1,5 +1,5 @@ -//go:build !jpeg -// +build !jpeg +//go:build turbo +// +build turbo // Package image. package image diff --git a/image/encode_jpeg.go b/image/encode_jpeg.go index b0ea0a9..b7755a9 100644 --- a/image/encode_jpeg.go +++ b/image/encode_jpeg.go @@ -1,5 +1,5 @@ -//go:build jpeg -// +build jpeg +//go:build !turbo +// +build !turbo // Package image. package image diff --git a/make.bash b/make.bash index 2d0e77e..0924b4b 100755 --- a/make.bash +++ b/make.bash @@ -15,7 +15,7 @@ PKG_CONFIG_PATH="$CHROOT/usr/lib/pkgconfig" \ PKG_CONFIG_LIBDIR="$CHROOT/usr/lib/pkgconfig" \ CGO_LDFLAGS="-L$CHROOT/usr/lib -L$CHROOT/lib" \ CGO_CFLAGS="-I$CHROOT/usr/include" \ -CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -tags cv2 -o build/cam2ip.linux.amd64.cv2 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip +CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -tags cv2,turbo -o build/cam2ip.linux.amd64.cv2 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip LIBRARY_PATH="$CHROOT/usr/lib:$CHROOT/lib" \ PKG_CONFIG_PATH="$CHROOT/usr/lib/pkgconfig" \ @@ -24,29 +24,13 @@ CGO_LDFLAGS="-L$CHROOT/usr/lib -L$CHROOT/lib" \ CGO_CFLAGS="-I$CHROOT/usr/include" \ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o build/cam2ip.linux.amd64 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip -PKG_CONFIG="/usr/bin/i686-w64-mingw32-pkg-config" \ -PKG_CONFIG_PATH="$MINGW/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$MINGW/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$MINGW/usr/lib" \ -CGO_CFLAGS="-I$MINGW/usr/include" \ -CC="i686-w64-mingw32-gcc" CXX="i686-w64-mingw32-g++" \ -CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -tags "cv2 pkgconfig" -o build/cam2ip.386.cv2.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip/cmd/cam2ip - -PKG_CONFIG="/usr/bin/i686-w64-mingw32-pkg-config" \ -PKG_CONFIG_PATH="$MINGW/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$MINGW/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$MINGW/usr/lib" \ -CGO_CFLAGS="-I$MINGW/usr/include" \ -CC="i686-w64-mingw32-gcc" CXX="i686-w64-mingw32-g++" \ -CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -o build/cam2ip.386.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip/cmd/cam2ip - PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" \ PKG_CONFIG_PATH="$MINGW64/usr/lib/pkgconfig" \ PKG_CONFIG_LIBDIR="$MINGW64/usr/lib/pkgconfig" \ CGO_LDFLAGS="-L$MINGW64/usr/lib" \ CGO_CFLAGS="-I$MINGW64/usr/include" \ CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" \ -CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -tags "cv2 pkgconfig" -o build/cam2ip.amd64.cv2.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip/cmd/cam2ip +CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -tags cv2,turbo,pkgconfig -o build/cam2ip.amd64.cv2.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip/cmd/cam2ip PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" \ PKG_CONFIG_PATH="$MINGW64/usr/lib/pkgconfig" \ @@ -56,29 +40,13 @@ CGO_CFLAGS="-I$MINGW64/usr/include" \ CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" \ CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -o build/cam2ip.amd64.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip/cmd/cam2ip -PKG_CONFIG="/usr/bin/armv6j-hardfloat-linux-gnueabi-pkg-config" \ -PKG_CONFIG_PATH="$RPI/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$RPI/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$RPI/usr/lib" \ -CGO_CFLAGS="-I$RPI/usr/include" \ -CC="armv6j-hardfloat-linux-gnueabi-gcc" CXX="armv6j-hardfloat-linux-gnueabi-g++" \ -CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -tags cv2 -o build/cam2ip.linux.arm.cv2 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip - -PKG_CONFIG="/usr/bin/armv6j-hardfloat-linux-gnueabi-pkg-config" \ -PKG_CONFIG_PATH="$RPI/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$RPI/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$RPI/usr/lib" \ -CGO_CFLAGS="-I$RPI/usr/include" \ -CC="armv6j-hardfloat-linux-gnueabi-gcc" CXX="armv6j-hardfloat-linux-gnueabi-g++" \ -CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -o build/cam2ip.linux.arm -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip - -PKG_CONFIG="/usr/bin/armv6j-hardfloat-linux-gnueabi-pkg-config" \ -PKG_CONFIG_PATH="$RPI/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$RPI/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$RPI/usr/lib" \ -CGO_CFLAGS="-I$RPI/usr/include" \ -CC="armv6j-hardfloat-linux-gnueabi-gcc" CXX="armv6j-hardfloat-linux-gnueabi-g++" \ -CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -tags jpeg -o build/cam2ip.linux.arm.nocgo -ldflags "-s -w" github.com/gen2brain/cam2ip/cmd/cam2ip +PKG_CONFIG="/usr/bin/armv7a-hardfloat-linux-gnueabi-pkg-config" \ +PKG_CONFIG_PATH="$RPI3/usr/lib/pkgconfig" \ +PKG_CONFIG_LIBDIR="$RPI3/usr/lib/pkgconfig" \ +CGO_LDFLAGS="-L$RPI3/usr/lib" \ +CGO_CFLAGS="-I$RPI3/usr/include" \ +CC="armv7a-hardfloat-linux-gnueabi-gcc" CXX="armv7a-hardfloat-linux-gnueabi-g++" \ +CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -tags cv2,turbo -o build/cam2ip.linux.arm7.cv2 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip PKG_CONFIG="/usr/bin/armv7a-hardfloat-linux-gnueabi-pkg-config" \ PKG_CONFIG_PATH="$RPI3/usr/lib/pkgconfig" \ @@ -86,26 +54,18 @@ PKG_CONFIG_LIBDIR="$RPI3/usr/lib/pkgconfig" \ CGO_LDFLAGS="-L$RPI3/usr/lib" \ CGO_CFLAGS="-I$RPI3/usr/include" \ CC="armv7a-hardfloat-linux-gnueabi-gcc" CXX="armv7a-hardfloat-linux-gnueabi-g++" \ -CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -tags cv2 -o build/cam2ip.linux.arm7.cv2 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip - -PKG_CONFIG="/usr/bin/armv7a-hardfloat-linux-gnueabi-pkg-config" \ -PKG_CONFIG_PATH="$RPI3/usr/lib/pkgconfig" \ -PKG_CONFIG_LIBDIR="$RPI3/usr/lib/pkgconfig" \ -CGO_LDFLAGS="-L$RPI3/usr/lib" \ -CGO_CFLAGS="-I$RPI3/usr/include" \ -CC="armv7a-hardfloat-linux-gnueabi-gcc" CXX="armv7a-hardfloat-linux-gnueabi-g++" \ -CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -o build/cam2ip.linux.arm7 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip +CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -o build/cam2ip.linux.arm7 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip PKG_CONFIG_PATH="$APPLE/SDK/MacOSX10.10.sdk/usr/lib/pkgconfig" \ PKG_CONFIG_LIBDIR="$APPLE/SDK/MacOSX10.10.sdk/usr/lib/pkgconfig" \ CGO_LDFLAGS="-L$APPLE/SDK/MacOSX10.10.sdk/usr/lib -mmacosx-version-min=10.10" \ CGO_CFLAGS="-I$APPLE/SDK/MacOSX10.10.sdk/usr/include -mmacosx-version-min=10.10" \ CC="$APPLE/bin/x86_64-apple-darwin14-clang" CXX="$APPLE/bin/x86_64-apple-darwin14-clang++" \ -CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build -tags cv2 -o build/cam2ip.darwin.amd64 -ldflags "-linkmode external -s -w '-extldflags=-mmacosx-version-min=10.10'" github.com/gen2brain/cam2ip/cmd/cam2ip +CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build -tags cv2,turbo -o build/cam2ip.darwin.amd64 -ldflags "-linkmode external -s -w '-extldflags=-mmacosx-version-min=10.10'" github.com/gen2brain/cam2ip/cmd/cam2ip PKG_CONFIG_PATH="$ANDROID/lib/pkgconfig" \ PKG_CONFIG_LIBDIR="$ANDROID/lib/pkgconfig" \ CGO_LDFLAGS="-L$ANDROID/sysroot/usr/lib" \ CGO_CFLAGS="-I$ANDROID/sysroot/usr/include --sysroot=$ANDROID/sysroot" \ CC="$ANDROID/bin/arm-linux-androideabi-clang" CXX="$ANDROID/bin/arm-linux-androideabi-clang++" \ -CGO_ENABLED=1 GOOS=android GOARCH=arm go build -tags jpeg -o build/cam2ip.android.arm7 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip +CGO_ENABLED=1 GOOS=android GOARCH=arm go build -o build/cam2ip.android.arm7 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip/cmd/cam2ip