Commit graph

72 commits

Author SHA1 Message Date
Jj0YzL5nvJ
7b77bc8ab8 CI/CD: Update 2022-07-10 18:51:18 -06:00
Jj0YzL5nvJ
fa40b0a682 CI/CD: Implement GitHub Actions and public nightly builds 2021-12-05 08:58:49 -07:00
orbea
565114ff72 build: Allow out of tree builds. 2020-12-15 10:17:19 +01:00
Richard Goedeken
96b8b6c836 Revert "Allow non-default compilers without resorting to symbolic links"
This reverts commit 89a28c22cb, as it conflicts with GNU make which always defines default values for certain variables
2020-09-16 22:35:32 -07:00
Jj0YzL5nvJ
89a28c22cb Allow non-default compilers without resorting to symbolic links 2020-08-30 14:06:53 -06:00
Anthony J. Bentley
97bc20a59a Update homepage. 2017-12-28 16:30:08 -07:00
Anthony J. Bentley
6d872a335e Update link to bug tracker. 2017-12-28 16:14:45 -07:00
Anthony J. Bentley
6e285dc896 Remove unnecessary OpenBSD warning. 2015-06-08 01:54:55 -06:00
Conchúr Navid
35b705e8fd Fix executable bits of files 2015-03-21 10:53:38 +01:00
Richard Goedeken
b9f32b3271 SDL 1.2 is not deprecated for us, and we shouldnt frighten the user with 6 lines of exclamation points 2014-05-04 11:35:38 -07:00
Ursula Abendroth
33eceedc7b Switch by default to SDL2 for Mupen64Plus 2.1
The current version of SDL is 2.0.3. All new releases of distributions contain
this library already. Current Linux distributions and OpenBSD even backporting
patches from Mupen64Plus 2.1 repo to use SDL 2. Android and other mobile
platform don't have support for legacy SDL 1.2.

People like Anthony J. Bentley and Riley Labrecque already requested
a new release of Mupen64Plus 2.1 with SDL2
2014-04-23 19:33:04 +02:00
Sven Eckelmann
3945a43bce Merge branches 'makefile' and 'github' 2013-12-19 13:48:38 +01:00
Sven Eckelmann
b70604d554 Force line ending type for specific files
Different operation systems (Unix vs. Windows) use different line ending types.
It can easily happen that users from different systems edit files and replace
all line endings of a file with the system specific version. This screws up
diffs and makes merges harder.

Git can normalize line endings for specific files and avoid this problem.
Binary files should be marked to avoid accidentally normalization.
2013-12-19 13:15:43 +01:00
Sven Eckelmann
f5c94255f0 Don't fail rebuild when header is removed
The *.d depends files for make just list the files used when building an
object file. Removing a file listed in such a dependency file causes make to
search for a way to recreate it. This usually cannot work because these files
aren't autogenerated.

The gcc option -MP can be used to generate empty rule for these files. Removing
a file in a dependency list will then execute this empty rule and continue with
the execution of the creation of the object file. This compilation process will
then automatically correct the dependency file.
2013-12-19 12:54:43 +01:00
Sven Eckelmann
82efbfda17 Allow to statically set *_(CFLAGS|LIBS) without pkg-config
n.pepinpe requested in #540 to allow overwriting the automatically searched
CFLAGS and LIBS for used libraries. This should allow distributors to set the
build configuration without patching the makefile. This is important for
systems were pkg-config or sdl-config aren't normally used.
2013-05-11 15:00:03 +02:00
Sven Eckelmann
4c99cd2966 Allow to statically set SDL_(CFLAGS|LIBS) without sdl-config
n.pepinpe requested in #540 to allow overwriting the automatically searched
CFLAGS and LIBS for used libraries. This should allow distributors to set the
build configuration without patching the makefile. This is important for
systems were pkg-config or sdl-config aren't normally used.
2013-05-11 12:26:21 +02:00
Sven Eckelmann
ac6e8f94de Enable Link-time optimization by default
The GCC introduced Link-time optimization in GCC 4.5 (2010-04-14). This should
be long enough available that interested users have upgraded to a compiler
supporting it.

The MSVC project already enabled WholeProgramOptimization since a long time.
Enabling it by default in GCC seems to be equally valid.
2013-05-09 22:50:07 +02:00
Sven Eckelmann
3d0b4b553c Add CXXFLAGS to the linker step
The GCC manual states for different parameters that the options for compilation
must also be used when linking. The options for compilation are stored in
CXXFLAGS and added to LINK.o to fix the behavior.

Option which need this are for example -fPIC/-fPIE or -flto.
2013-05-09 22:22:56 +02:00
Sven Eckelmann
8ddd70cece Revert "Enable link time garbage collection when link time optimization is enabled"
Some linker on different platforms don't handle the garbage collection
correctly and create extreme bloated binaries. Therefore, leave it to the user
to enable this feature or not.
2013-03-14 08:07:27 +01:00
wahrhaft
b14e070da9 Merged in ecsv/mupen64plus-video-glide64-fixes (pull request #6)
MinGW/Cross compilation and related fixes
2013-02-05 19:40:12 -05:00
Sven Eckelmann
878eefc132 Enable link time garbage collection when link time optimization is enabled 2013-02-01 10:01:54 +01:00
Sven Eckelmann
072b5397c6 Introduce WARNFLAGS for default (removable) compiler warning flags 2013-01-02 16:13:46 +01:00
Sven Eckelmann
2498ef1240 Disable PIC on MinGW to reduce warnings 2013-01-01 00:30:34 +01:00
n pepinpe
dae4ee7e93 Fix path to OSX SDK with XCode >=4.3 2012-12-31 10:43:00 +01:00
veganaize
271be99a1b Don't try to find OpenGL libraries on MacOSX and MinGW using pkg-config
MacOSX and MinGW don't provide gl.pc or glu.pc to find the cflags or libs using
pkg-config. Removing this search and replacing it with an hardcoded value is
easier on these platforms.
2012-12-19 21:57:43 +01:00
Sven Eckelmann
a52cbf4672 Use $(OBJDIR) in clean target instead of hardcoded path 2012-12-13 14:53:05 +01:00
Sven Eckelmann
97d05e9b49 Allow to add a postfix for each build
The POSTFIX make option is useful for distributions to compile different
versions of the plugin in parallel. The object files will be stored in a
directory with the postfix appended and the linker result will also have this
postfix appended.
2012-12-13 14:47:35 +01:00
veganaize
134ca3d5d6 Add support for MingW32 2012-12-13 13:58:55 +01:00
Sven Eckelmann
5f4da38317 Add CROSS_COMPILE make option
The CROSS_COMPILE make option can be used to automatically prepend the prefix
to all build relevant tools to seamlessly allow cross compilation without
setting each tool name separately.

Cross compiling for MinGW32 would can be done using
$ make -C projects/unix/ CROSS_COMPILE=i686-pc-mingw32- HOST_CPU=i686 UNAME=MINGW
2012-12-13 12:25:42 +01:00
Sven Eckelmann
e7170cded8 Allow to change names of *-config tools for cross compiles 2012-12-13 11:33:49 +01:00
Sven Eckelmann
9a01ba4d65 Synchronize usage of environmental variables for UNAME with HOST_CPU 2012-12-13 10:52:49 +01:00
Sven Eckelmann
17f3c474f6 Add configuration for semi-supported architecture armel 2012-12-13 09:02:58 +01:00
Anthony J. Bentley
e9b725e260 Detect OpenBSD PowerPC platforms macppc and socppc. 2012-11-12 18:28:57 -07:00
Sven Eckelmann
ea884986ad Enable experimental support for link-time optimization 2012-06-09 01:26:22 +02:00
wahrhaft
539999d661 Win32 build fixes 2012-02-04 12:15:03 -05:00
Sven Eckelmann
54edbf5c52 Remove additional -O3 on MacOSX 2011-10-14 19:58:42 +02:00
Sven Eckelmann
9d02185f47 Explicitly disable PIC in case of PIC=0 2011-10-13 00:01:03 +02:00
Sven Eckelmann
3c69d524d0 Replace references to rice with glide64 2011-10-09 13:52:54 +02:00
Sven Eckelmann
0e1120d3d1 Enable ppc(64) as experimental target
nogagplz tested mupen64plus on 32-bit ppc and didn't detect any big show
stoppers with interpreter cores and the mupen64plus example rom. This makes the
PowerPC an interesting target for further tests and may reveal other endianness
problems.
2011-08-05 10:46:17 +02:00
Sven Eckelmann
8411c4b67c Enable PIC depending on architecture instead of bits only
nogagplz noticed on ppc32 that PIC is necessary to compile everything as shared
object. Therefore, it seems to be a better idea to have architecture specific
PIC default settings instead of checking only whether it is a 32 or 64 bit
architecture.
2011-08-05 10:32:08 +02:00
Sven Eckelmann
2b6ede8e76 Enable big endian mode on ppc and ppc64 2011-08-05 10:19:22 +02:00
Sven Eckelmann
4f62132acd Strip binaries during install 2011-07-23 21:22:53 +02:00
Sven Eckelmann
fefb5e825e Allow to force PIC to remove text relocations 2011-07-10 13:37:55 +02:00
Sven Eckelmann
01c5c21e6c Fix linker search for libstdc++.so 2011-07-08 08:24:37 +00:00
Sven Eckelmann
8a0b7a3fb0 Set changeable default compiler optimization option 2011-07-03 18:03:15 +02:00
Sven Eckelmann
e5a4fcbf50 Synchronize build rules with standard gnu make rules 2011-06-27 13:00:05 +02:00
Sven Eckelmann
aa0fc59799 Test for essential build dependencies before getting their cflags/libs 2011-06-27 11:36:11 +02:00
Sven Eckelmann
2348ca3888 Fix call to sdl-config on *BSD 2011-06-26 20:51:19 +02:00
Sven Eckelmann
33556f2e1b Don't use -ldl on *BSD Systems 2011-06-26 20:41:19 +02:00
Sven Eckelmann
37233d5801 Add OpenBSD as half-supported OS with FreeBSD userspace tools 2011-06-26 18:37:19 +02:00