Commit Graph

518 Commits

Author SHA1 Message Date
Martin Pulec
b3368a0182 Makefile macOS: generate symbols in GUI bundle
Moving just the X.dSYM directory isn't enough since the executable is
identified by name inside the .dSYM tree. But it may be possible to move
the symbols to the "main" tree, since the subtree mimics the hierarchy, eg.
for uv, the symbols are in uv.dSYM/Contents/Resources.
2025-08-14 10:16:49 +02:00
Martin Pulec
4a8c12f416 add .sh suffix to hd-rum-av
This is more convenient and allow the users that honor that behave more
correctly, eg. he macOS legacy compat wrapper in Makefile adding -real
to executable binaries.
2025-08-14 09:08:28 +02:00
Martin Pulec
6651e0efb1 Makefile macOS bundle: copy debug symbols 2025-08-14 09:06:30 +02:00
Martin Pulec
c82282949f Makefile: run dsymutil [mac]
needed for libbacktrace
2025-08-14 08:27:58 +02:00
Martin Pulec
cc2e7103b1 configure.ac: generate debug symbols for Win
<https://stackoverflow.com/questions/74416539/clang-14-does-not-generate-pdb-file>

Set it only when linking, not for configure.
2025-08-12 12:24:59 +02:00
Martin Piatka
3c0e7d5660 Makefile: Fix GUI build
Add missing $(srcdir)
2025-07-17 12:57:53 +02:00
Martin Pulec
4d32b60173 Makefile: DeckLinkAPIDispatch: fix out path
fixes the commit db3cef98 (22-05-2025) that broke out-of-tree builds if
DeckLink was enabled
2025-06-03 10:47:06 +02:00
Martin Pulec
4d4cd93546 build: -D_GNU_SOURCE for Linux only
This improves the commit f8b54ea9 from 2013 - currently _GNU_SOURCE is
required eg. for pthread_setname_np. Intantionally used not only with
glibc but also with musl - if not defined pthread_setname_np is not
defined.

+ add COMMON_FLAGS also to CPPFLAGS (doesn't matter much but better)
2025-05-30 14:25:36 +02:00
Martin Pulec
cf5f593e05 Makefile BSD compat improved
In the workaround rules, try to use first word of $+ (list of
prerequisities) in place of $<, which is part of POSIX Issue 8 (2024)
but not yet implemented by BSDs. On contrary, it is implemented by GNU
Make. For the first case, use $@ (target) as a fallback.
2025-05-30 09:00:36 +02:00
Martin Pulec
99d3adaf45 Makefile: add POSTPROCESS_DEPS to manual rules 2025-05-30 08:10:32 +02:00
Martin Pulec
2f599f875d Makefile.in: improve POSTPROCESS_DEPS
In FreeBSD 14.2 Make, $*.d strips the path, eg. src/tst.o becomes tst.d
not src/tst.d.
2025-05-30 08:10:32 +02:00
Martin Pulec
db3cef984f Makefile: do not use $< in non-suffix rules
Using $< in a non-suffix rule context is a GNUmake idiom
2025-05-30 08:10:31 +02:00
Martin Pulec
943492eeff Makefile: replace rule syntax from GNU to POSIX
replace the GNU pattern rule syntax with POSIX suffix rules
2025-05-30 08:10:30 +02:00
Martin Pulec
d9ba59e442 Makefile: silence DLL_COPY
Since the previous commit, it is performed on all platforms but since
the variable is empty, do not spoil the stdout with irrelevant command.
2025-05-30 08:10:30 +02:00
Martin Pulec
90d755c076 Makefile: rewrite GNU Make-specific stuff 2025-05-30 08:10:28 +02:00
Martin Pulec
6bcac129b7 macOS lib bundle: move from Makefile to a script
Extend the script added by previous commit to one handling the entire
bundling from Makefile.

It is nicer having the scripting outside the Makefile, anyways, and the
bundle LC_RPATH fix workaround closly relates to bundling.
2025-03-25 14:12:43 +01:00
Martin Pulec
e8cd71b259 vcap/import: IWYU + aligned_malloc compat 2025-03-25 09:17:13 +01:00
Martin Pulec
641df59fcd fix macOS 15.4 beta crashes due to LC_RPATH dups
Fixes the UG crashes caused by the multiplication of
"@executable_path/../libs/" caused by replacing multiple (originally
distinct) LC_RPATH values with this one.

+ removed invalid comment from Makefile (actually was related to
"bundle-nolib" target that is no longer present)

closes GH-436
2025-03-19 10:46:30 +01:00
Martin Pulec
50b7207b5d add README.hdml to legacy macOS dmg
Redirects to a wiki page informing how to allow unsigned UG build
(alternative builds are not signed).
2024-10-15 09:37:45 +02:00
Martin Pulec
1a118aea3b color.c,pixfmt_conv.c: do not hard-code the coeffs
Start rewrite with coefficients not hard-coded in the macro. For the
beginning, the new implementation used in pixfmt_conv.o. From
the performance evaluation it doesn't have impact on performance
(`tools/convert benchmark`).
2024-09-27 17:06:16 +02:00
Martin Pulec
8cbc4af303 Makefile: fix -Ofast for pixfmt_conv.c
Since the move from video_codec.o to separate file in 2023-03-16 (commit
6ae7f268f), the conversions were compiled with just -O2.
2024-09-26 14:05:55 +02:00
Martin Pulec
d794c28b2d Makefile mac: get rid of error (non-fatal)
get rid of an error:
`cp: uv-qt.app/Contents/Frameworks: Not a directory`
2024-09-20 16:09:44 +02:00
Martin Pulec
9982928410 configure: do not add CUDA_LIB immediately to LIBS
see the commit 085b6e60 (today)

autoconf generally dislikes spaces inside paths, which is true for CUDA
in MSW (path to CUDA libs is something like `-L"/c/Program Files/NVIDIA
GPU Computing Toolkit/CUDA/v11.8/lib"`), so do not use it for tests but
add it just when linking.
2024-07-29 12:28:12 +02:00
Martin Pulec
a4a2baf32e move some template files to auto places
- moved ultragrid-bugreport-collect.sh to doc (will be bundled automatically)
- moved data/MacOS-bundle-template to data/template (just a move)
- added data/template/README.md
2024-05-31 16:04:42 +02:00
Martin Pulec
1ee4f9622c added hd-rum-transcode A/V wrapper
allows running reflectors for both audio and video with one command
2024-05-28 08:51:01 +02:00
Martin Pulec
cd8dfee022 Makefile: compile CUDA code with debug symbols 2024-03-08 16:11:47 +01:00
Martin Pulec
a4c22c93fa build: link Window CUDA code directly
The workaround with linked DLLs is no longer required!
2024-03-08 16:11:47 +01:00
Martin Pulec
745edca768 Makefile.im: pass @DEFS@ to CUDA_FLAGS
It contains (at least) -DHAVE_CONFIG_H defined by autoconf, which should
be passed.
2024-03-04 14:44:23 +01:00
Martin Pulec
93f9dd074f build/CI macOS: do not handle Syphon specially
\+ build x86_64 from source as well to:

   1. be consistent with the arm64 build
   2. the binary x86_64 already had hardcoded the path @loader_path/../Frameworks/
   instead of @rpath, which would require yet another handling
2024-02-12 11:57:48 +01:00
Martin Pulec
0927dcdabf Makefile Qt6 mac workaround: use dylibbundler without -f
This workaround doesn't work with `dylibbundler -f`. Perhaps nothing to
worry about, since it is just a workaround.
2024-02-12 11:57:48 +01:00
Martin Pulec
1acce2464e build macOS: do not handle Deltacast specially
Prepare for the VideoMasterHD to be bundled automatically with
dylibbundler v2.

VideoMasterHD is installed to /Library/Frameworks, which is currently
no longer being looked for frameworks by default, so it needs to be
passed as a -F flag to the compiler.
2024-02-12 11:57:47 +01:00
Martin Pulec
2da425de46 make: ObjC compile cmd fix
CXX was used for ObjC compilation but with some recent autoconf update
to 2.72, CXX is set to "g++ -std=gnu++11" because clang there without
-std uses C++98, which was perhaps mishandled by the former autoconf
versions. Using CC (== gcc) corrects that.
2024-01-02 14:13:28 +01:00
Martin Pulec
07e452c778 CI+make: use system location for Syphon 2023-12-04 10:50:56 +01:00
Martin Pulec
d648771854 Makefile: ensure copying to dir + use CP
- ensure copying to a directory where cp dst is assumed to be a directory
(see previous 2 commits)
- use CP macro instead of cp when already defined
2023-11-20 08:09:13 +01:00
Martin Pulec
72ffd5c5ed make: run AsciiDoc gen silently
message `Generated uv.1` is output, anyways
2023-11-15 09:09:16 +01:00
Martin Pulec
d617773a3a Makefile: install manpages to Mac bundle 2023-11-14 11:13:08 +01:00
Martin Pulec
54fbb7fd8b Makefile: build manual pages 2023-11-14 08:20:57 +01:00
Martin Pulec
25b2e3ebfa Makefile: fixed multiple init of pipe in some cases
./autogen.sh  --disable-all --enable-object=src/video_display/pipe.o \
        --enable-reflector
2023-11-08 12:59:29 +01:00
Martin Pulec
0f9dbdf89e Revert "Makefile: added deps on bundle dir"
This still causes the bundle rebuild. Under normal circumstances it
won't matter but as we sign the directory after creating the bundle
and before creating dmg, it actually hurts, becasue to the DMG goes the
freshly-created (unsigned) bundle.

This reverts commit 7294347a9b.
2023-11-02 12:03:51 +01:00
Martin Pulec
7294347a9b Makefile: added deps on bundle dir
This should now work as expected because the build stuff has been
changed/fixed since the "todo" was written.
2023-11-01 09:10:28 +01:00
Martin Pulec
5d0160fd0d Makefile: add reflector objects unconditionally
Pseudo-displays are required by the reflector unconditionally (not always
all, depends what is run).
2023-09-20 11:54:00 +02:00
Martin Pulec
46522e312f Makefile [Mac] manual QtDBus copy workaround
Currently macdeployqt distributed with Qt 6 in Homebrew fails to deploy
transitive dependency (QTDBus in this case). So as a workaround we
hard-copy that for now.

It may not be problem of Qt 6 itself but just the Homebrew distribution,
see also [1].

[1]:
a6a9f108df
2023-09-15 15:36:43 +02:00
Martin Pulec
9a6b85aab1 mac GUI bundle: link Frameworks to libs
Macdeployqt copies ordinal libraries to Frameworks/ while we use libs/
with macdeployqt, so use symlink to avoid having 2 copies when lib is
used by both uv and uv-qt.
2023-09-14 16:11:39 +02:00
Martin Pulec
a41a5095c3 Makefile mac: gui bundle updates
do not run dylibbundler on uv-qt and macdeployqt on uv/hd-rum-transcode

This should no longer be needed and it simplifies things a bit.
2023-09-14 16:11:39 +02:00
Martin Pulec
4b1526e634 Makefile mac: cp Frameworks/ to bundle
Do not use hard-coded list of frameworks in Makefile, rather use list
generated by configure.ac in BIN_DEPS.

Needed frameworks are copied to Frameworks/ as part of BIN_DEPS target
(needed for TARGET), so that we can copy this directly to the bundle.
2023-09-14 16:11:39 +02:00
Martin Pulec
63ac91db3f configure.ac: simplified Qt
The whole stuff is no no longer needed - only qmake is needed to build
the GUI now (UG itself does no longer depend on Qt - shared IPC frame
now uses UNIX sockets).
2023-09-14 16:11:39 +02:00
Martin Pulec
c136250aa4 Makefile.in: reformated mac bundle target
keep 80 columns width
2023-09-14 16:11:36 +02:00
Martin Pulec
eebe224c10 build: do not link reflector with unneeded deps
Do not link all optional features to the reflector, only video compress
modules are actually requested for it.
2023-08-09 16:08:31 +02:00
Martin Pulec
9ab4edbf56 configure: non-essential objs are not needed for reflector
The non-essential object separated in HEAD^^^ happen not to be needed
for the reflector.
2023-08-09 16:08:30 +02:00
Martin Pulec
15d0f4ae55 removed capture_filter none
This capture filter is never initialized now (if none capture filter is
given, empty list of capture filters is used).
2023-08-09 16:08:30 +02:00