Commit graph

473 commits

Author SHA1 Message Date
Alexandre Julliard f9cad1bd19 makedep: Make the handling of install rules more generic. 2022-09-07 10:19:00 +02:00
Alexandre Julliard e31276e9a2 makefiles: Look for source files in the makefile before trying to open them.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-07-28 17:46:51 +02:00
Alexandre Julliard 6f4d1766a7 makefiles: Avoid adding the same source multiple times. 2022-07-28 17:46:50 +02:00
Alexandre Julliard 872dc83e81 makefiles: List all headers in the makefile.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-07-28 17:46:50 +02:00
Alexandre Julliard 194e09baec makefiles: Add separate variables for Unix flags and libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-29 23:23:41 +02:00
Alexandre Julliard e2d96342df makefiles: Use the defined external lib variables also when building the libs themselves.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-29 23:23:41 +02:00
Alexandre Julliard b819b99562 makefiles: Never install external libraries.
Spotted by Kevin Puetz.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-24 22:38:40 +02:00
Jacek Caban f1549e7f6c winemac: Move driver implementation to unixlib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
2022-06-03 09:40:32 +02:00
Alexandre Julliard ad44edebde makedep: Add dependency on locale.nls for rc files.
wrc will load locale.nls if the rc file uses a non-English language.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-04 10:43:48 +02:00
Zebediah Figura 9951f2f433 makedep: Do not forbid importing system headers in msvcrt modules.
The apparent intention of catching mistakes early is laudable. However, the
number of exceptions both in the code and not in the code (in particular,
valgrind.h) shows that this is clearly getting in the way more often than not.

In practice an attempt to compile with a system API we don't support will be met
with a clear error at link time, e.g.:

/usr/bin/x86_64-w64-mingw32-ld: dlls/xmllite/reader.cross.o: in function `debugstr_nodetype':
/home/whatsit/git/wine64/../wine/dlls/xmllite/reader.c:116: undefined reference to `pthread_once'

And when there is no external function involved (as with stdarg.h, x86intrin.h,
valgrind.h), there's no reason to prevent use of the headers.

The motivation for this patch is the ability to import system vkd3d.h in e.g.
d3d12 and dxgi, which do not link to libvkd3d directly (but rather indirectly
through wined3d) and so do not fall under the has_external_import() exception. I
could see no simple way to adapt has_external_import() to account for this case.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:02:24 +01:00
Alexandre Julliard 1c2e3fc68a makedep: Add support for winebuild --data-only option.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-16 22:05:33 +01:00
Stefan Dösinger e5041acfa2 makedep: Fix some signed vs unsigned msvc warnings.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:33 +01:00
Alexandre Julliard 26a3472b34 makefiles: Disable printf format warnings for non-PE msvcrt modules.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 21:09:19 +01:00
Alexandre Julliard 0c0e8b576e makefiles: Force -Wformat for PE modules when using 'long' types.
Suggested by Eric Pouech.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:40:44 +01:00
Alexandre Julliard f4af3134de makefiles: Specify the bison prefix directly in the source files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 363d078f46 makefiles: Add a maintainer-clean target.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 3c0a2fa5a6 makefiles: Add dependencies for files generated in maintainer mode.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 4c7a2b4cbb makefiles: Compare the full path when looking for generated include files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 5d4ca2225e makefiles: Also look for generated includes in the source file directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 9da1813651 makefiles: Add helper functions to open generated include files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 13:15:12 +01:00
Alexandre Julliard 9d494730fe makefiles: Get rid of the documentation rules.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-19 16:19:07 +01:00
Alexandre Julliard a041075cd2 makefiles: Support per-platform values for EXTRADLLFLAGS.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:39 +01:00
Zebediah Figura e454c62f36 makedep: Check for external libraries instead of include paths when determining whether to allow external includes.
The include path may be empty, e.g. if the relevant headers are to be found
directly in the MinGW sysroot.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 12:42:46 +01:00
Alexandre Julliard f153ca0d14 makedep: Unify the various code paths for module generation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-23 15:05:48 +01:00
Alexandre Julliard 1ef7dd2d7c makefiles: Don't use bundled libraries to build native Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-23 14:40:04 +01:00
Alexandre Julliard 53e207fde0 makefiles: Don't use bundled libraries to build native programs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 18:34:32 +01:00
Alexandre Julliard 859338a4d4 makefiles: Add a separate variable to keep track of source test files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-20 13:26:51 +01:00
Alexandre Julliard 62d335053f makefiles: Don't append .fake extension to fake dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-20 13:07:47 +01:00
Alexandre Julliard e694c798b6 makefiles: Stop creating importlib symlinks.
We always pass the full path to winegcc.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-20 13:03:53 +01:00
Alexandre Julliard a9e00347b7 makedep: Use a separate variable for cross-compiled importlib objects.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:35 +01:00
Alexandre Julliard 6944dc5189 makefiles: Split the module generation into several helper functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-18 20:15:19 +01:00
Alexandre Julliard 8c68894f04 makefiles: Don't add msvcrt import in dlls built as part of the tests.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:19:33 +01:00
Alexandre Julliard a9b5bb326a makefiles: Use static importlibs on all platforms.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Alexandre Julliard 04d8725080 makefiles: Directly generate resources also for non-registered typelibs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 10:22:51 +01:00
Alexandre Julliard 665ebe2a7a makefiles: Do not install external libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Alexandre Julliard 9248dbaf0d makefiles: Always use winebuild to build static libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-14 21:19:48 +01:00
Alexandre Julliard b78ef40ab1 makefiles: Don't copy the source makefile into the sub-directory stub makefiles.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-14 12:29:24 +01:00
Alexandre Julliard ef8b871e12 makefiles: Make importlib dependencies point to their respective dll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 22:42:51 +01:00
Alexandre Julliard c94f44f9b4 widl: Search for imported typelibs in the library search path.
Add a -L option to specify that path.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 22:42:51 +01:00
Alexandre Julliard 7c5761ed40 wrc: Ignore the target option.
Nothing in resource files depends on the pointer size.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 17:30:41 +01:00
Alexandre Julliard 6ebcc54a5c makefiles: Explicitly import all the needed libraries.
Don't rely on winegcc adding any default libraries.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 13:28:19 +01:00
Alexandre Julliard 37c0f5c690 makefiles: Substitute all defined variables in the main makefile.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 13:44:44 +01:00
Alexandre Julliard 30fb17bda0 makefiles: Add support for importing PE system libraries using the -l option.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:05:07 +02:00
Alexandre Julliard d1248c8a0c makefiles: Don't try to link a library to itself.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:04:11 +02:00
Alexandre Julliard a1be6b475d makefiles: Don't pass warning flags to external libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:23 +02:00
Alexandre Julliard a4b01382e1 makefiles: Add support for building libraries imported from external sources.
Based on a patch by Rémi Bernon.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:07 +02:00
Alexandre Julliard 1699847dad makefiles: Only build static libraries that are needed for linking.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:57:24 +02:00
Alexandre Julliard 518f9a12c1 makefiles: Use the STATICLIB variable for static import libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard c60d604544 makefiles: Remove libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard 207068c48c tools: Move some portability defines out of port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Jacek Caban d5c585c6aa makedep: Don't use -fno-builtin for importlibs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:23 +02:00
Jacek Caban 63e6eaedee makedep: Use -fno-builtin for CRT DLLs on PE targets.
Just like we do for other targets with cross compiler enabled. Fixes
PE-only i686 build with llvm-mingw, which otherwise uses unexpected
optimizations.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:17 +02:00
Alexandre Julliard 9e3959bd9b tools: Add a few helper functions for file names and extensions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:11 +02:00
Alexandre Julliard 97ca9f8a3d tools: Add a shared header for common helper functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 17:38:06 +02:00
Alexandre Julliard 8ec2321328 makefiles: Use explicit header path for sanity checks.
This makes it possible to use a local config.h.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 14:45:39 +02:00
Alexandre Julliard 3c81449d16 makefiles: Allow including files with relative paths.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 13:54:26 +02:00
Alexandre Julliard 5e0479c497 makefiles: Don't use winegcc to build native Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 11:50:26 +02:00
Alexandre Julliard ab5664a5e6 makefiles: Explicitly name the Unix library in the makefile instead of using --subsystem unixlib.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 17:49:48 +02:00
Alexandre Julliard 0f83b83cd5 makefiles: Normalize the host architecture in makedep instead of configure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 14:26:38 +02:00
Alexandre Julliard 088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard eda25a58c5 makefiles: Link with the full library name for Unix library imports.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard 0f62381f67 makefiles: Build the unix library name when parsing the sources.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard 2781af45d5 makefiles: Always link Unix libraries against ntdll.so.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 11:13:04 +02:00
Alexandre Julliard 9999273178 makefiles: Don't depend on import libraries for native Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-12 11:33:57 +02:00
Jacek Caban 32afe1d982 makedep: Make unix libs depend on ntdll.so.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-01 18:00:38 +02:00
Alexandre Julliard a5aaa41069 makefiles: Install libwine into the architecture-specific directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-28 11:41:27 +02:00
Alexandre Julliard 2801d6341c makefiles: Install Unix binaries into an architecture-specific directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-28 11:40:39 +02:00
Alexandre Julliard 893febda14 makefiles: Install PE fake dlls in the architecture-specific directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 21:34:02 +02:00
Alexandre Julliard ee81814f2b makefiles: Install PE import libraries in the architecture-specific directory.
Based on a patch by Jacek Caban.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 21:34:02 +02:00
Alexandre Julliard c59126d403 makefiles: Install PE files in an architecture-specific directory.
Based on a patch by Jacek Caban.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 21:34:02 +02:00
Alexandre Julliard 4f04994ef4 makefiles: Only allow includes and defines in pkg-config flags.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50811
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-08 12:18:02 +02:00
Rémi Bernon b18a48eb70 include: Include x86intrin.h in msvcrt/intrin.h.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard 852c9c69de makefiles: Add missing dependency to wrc for test dll resources.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-24 21:58:53 +01:00
Alexandre Julliard 74aa42a529 makefiles: Make the tests also depend on the Unix library of the tested module.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-18 14:38:47 +01:00
Alexandre Julliard 1a16b9e9aa makefiles: Add support for Automake-style silent make rules.
Based on a patch by Jeff Smith.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49841
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-11 16:12:23 +01:00
Alexandre Julliard 497c902857 makefiles: Get rid of the libwine.so symlink.
We no longer need to link to libwine.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 11:29:23 +01:00
Jacek Caban 727168a9e1 makedep: Use -fno-builtin for crt modules.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-03 21:00:22 +01:00
Alexandre Julliard 0b9963ad34 makedep: No longer use wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:43:17 +01:00
Jacek Caban e84394764a makedep: Use short debug file names.
Fixes gitignore entries for symbol files.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:55 +01:00
Alexandre Julliard be8a81b54c makefiles: Allow modules to link to their own import library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:22 +01:00
Alexandre Julliard 27b20c1db5 makefiles: Don't add a default crt lib for msvcrt dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:21 +01:00
Zebediah Figura 52dc0ccf6d makefiles: Disable implicit rules.
This improves the time of a full-tree build with no out-of-date objects from
~3.7s to ~0.7s on one of my development machines.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard ec99ba1b29 makefiles: Explicitly create destination dirs when installing symlinks.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50039
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-23 20:16:53 +02:00
Alexandre Julliard aabd2b54b2 makefiles: List all possible targets in the stub makefiles.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-11 21:36:04 +02:00
Alexandre Julliard f691bdb6bf makefiles: Don't build Unix object files on Windows.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 13:44:43 +02:00
Alexandre Julliard 0b9c7eb295 makefiles: Define WINE_UNIX_LIB when building Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-18 15:05:56 +02:00
Alexandre Julliard c670df976c makefiles: Don't use default imports for Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-18 15:03:08 +02:00
Alexandre Julliard c73ae99ff4 makefiles: Only add default libraries for Unix builds.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-18 15:02:00 +02:00
Alexandre Julliard 468af5bbb4 makefiles: Remove directory variables that are redundant with non-recursive make.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 19:42:40 +02:00
Alexandre Julliard feb5229091 makefiles: Remove .. components from generated paths.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 19:42:40 +02:00
Alexandre Julliard 1dd3051cca makefiles: Generate a single non-recursive makefile at the top level.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 19:42:39 +02:00
Alexandre Julliard f2d60c16ea makefiles: Add separate variable to keep track of source dir font files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 15:49:45 +02:00
Alexandre Julliard 9a542f9dda makefiles: Remove support for generating a single makefile.
We need to handle all makefiles at once for proper import lib
dependencies.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 15:49:45 +02:00
Alexandre Julliard 3f330361d2 makefiles: Fix a few more object directory references.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 15:49:45 +02:00
Alexandre Julliard 9da7d620ef makefiles: Also store the basename without object dir for generated files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 12:46:22 +02:00
Alexandre Julliard 5d2596ad8a makefiles: Explicitly import the CRT library also for test dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 22:05:00 +02:00
Alexandre Julliard 96e5ac876f makefiles: Build extra targets explicitly if they are not a dependency.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:30:31 +02:00
Alexandre Julliard 5adb93c654 makefiles: Add some missing object dir references.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:30:31 +02:00
Alexandre Julliard 82acb284bd makefiles: Store .pot files in a separate variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:30:31 +02:00
Alexandre Julliard b211bd7b64 makefiles: Add dependencies for the import lib symlinks.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:30:31 +02:00