Commit graph

120 commits

Author SHA1 Message Date
Sven Eckelmann
ff2ab7f9ea 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-09-20 10:31:44 +02:00
richard42
a1edae31a9 simplify OSX platform detection in makefile using xcode-select. based on patch from John Pender 2013-07-08 07:35:00 -07:00
richard42
d679f50109 Update msvc11 project file to visual studio 2012 (msvc11) 2013-06-01 07:57:15 -07:00
Riley Labrecque
239d1a8d8e Fixed compiling with MSVC 2013-05-30 09:33:20 +00:00
Sven Eckelmann
5704d656ae 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-11 11:25:53 +02:00
Sven Eckelmann
ba75d3506f 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-11 10:56:08 +02:00
Richard Goedeken
f510b07e1d add msvc11 project file from mudlord 2013-03-20 22:26:27 -07:00
Sven Eckelmann
ea771b3880 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:01:55 +01:00
Bobby Smiles
d501c4e38e Rewrite cicx105_ucode to allow better optimisation. Move it outside of main.
Note: During the rewriting I changed the number of line to write from 0xfc to 0x18 because that's
what I saw in the ipl3 disassembly.
2013-03-10 02:45:53 +01:00
Bobby Smiles
852505046d Move alist logic into its own module. Corrected ABI1 and ABI3 sizes. 2013-03-09 23:35:08 +01:00
Sven Eckelmann
485a064c5e Enable link time garbage collection when link time optimization is enabled 2013-02-08 00:31:52 +01:00
Bobby Smiles
027c4cc2d8 Refactor jpeg module. 2013-01-27 17:19:58 +01:00
richard42
7ef526534d OSX build fix 2013-02-02 22:23:17 -08:00
Sven Eckelmann
1b238c5176 Introduce WARNFLAGS for default (removable) compiler warning flags 2013-01-02 16:13:45 +01:00
Sven Eckelmann
2ff7710657 Disable PIC on MinGW to reduce warnings 2013-01-01 00:30:34 +01:00
n pepinpe
a640dd3ac3 Fix path to OSX SDK with XCode >=4.3 2012-12-31 10:43:00 +01:00
Sven Eckelmann
9a922cdc78 Use $(OBJDIR) in clean target instead of hardcoded path 2012-12-13 14:53:05 +01:00
Sven Eckelmann
ea51d4457d 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:30 +01:00
Sven Eckelmann
61708f6588 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:33 +01:00
Sven Eckelmann
8c7c887323 Synchronize usage of environmental variables for UNAME with HOST_CPU 2012-12-13 10:52:49 +01:00
Sven Eckelmann
de60447518 Remove duplicated definition of CC for MinGW 2012-12-13 10:46:17 +01:00
veganaize
06d5023d96 Add support for MingW32 2012-12-04 21:17:52 +01:00
Anthony J. Bentley
3a7a5b435a Detect OpenBSD PowerPC platforms macppc and socppc. 2012-11-12 18:03:16 -07:00
Sven Eckelmann
e080396a73 Add configuration for semi-supported architecture armel 2012-11-04 01:26:09 +01:00
Sven Eckelmann
524369cf8c Enable experimental support for link-time optimization 2012-06-09 00:56:33 +02:00
Richard Goedeken
3427083f87 makefile change from Auria: add new linker flag in 32-bit build under OSX 2012-03-11 14:23:06 -07:00
richard42
b03da51141 1. Added idct.c to MSVC8 project file
2. Removed inline attributes which throw errors in MSVC8.  This is needed for modern compilers; they know when to inline
3. Fixed errors caused by MSVC8's incompatibility with C99 local variable declarations
2012-03-06 20:39:00 -08:00
Bobby Smiles
250a1c9c53 Fix issue 102: Missing backgrounds in Ogre Battle 2012-02-25 18:39:00 +01:00
Sven Eckelmann
86dbd899c5 Remove additional -O3 on MacOSX 2011-10-14 19:58:42 +02:00
Sven Eckelmann
dbd121297a Explicitly disable PIC in case of PIC=0 2011-10-13 00:01:02 +02:00
Sven Eckelmann
8acf7284ad 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:15 +02:00
Sven Eckelmann
020eaf23cf 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:06 +02:00
Sven Eckelmann
b7c2b96cf4 Enable big endian mode on ppc and ppc64 2011-08-05 10:19:20 +02:00
Sven Eckelmann
ec0764de4c Strip binaries during install 2011-07-23 21:22:52 +02:00
Sven Eckelmann
922c92d7f7 Allow to force PIC to remove text relocations 2011-07-10 13:37:54 +02:00
Sven Eckelmann
de9ac5d32a Fix linker search for libstdc++.so 2011-07-08 08:24:34 +00:00
Sven Eckelmann
a69ddf44a3 Inform user about the possibility to make the build verbose 2011-07-03 18:04:48 +02:00
Sven Eckelmann
c4bb721803 Set changeable default compiler optimization option 2011-07-03 18:03:15 +02:00
Sven Eckelmann
92299081d7 Synchronize build rules with standard gnu make rules 2011-06-27 13:00:04 +02:00
Sven Eckelmann
2e78aa62e7 Add OpenBSD as half-supported OS with FreeBSD userspace tools 2011-06-26 18:37:19 +02:00
Sven Eckelmann
b62e8f32e8 Remove -v parameter of install which is not available everywhere 2011-06-26 18:29:25 +02:00
Sven Eckelmann
80c6392a30 Split LIBDIR in LIBDIR and PLUGINDIR for consistency between modules 2011-06-26 02:05:06 +02:00
Sven Eckelmann
a2c127fa8e Fix compilation with BITS=32 when using gcc-4.6 2011-06-25 21:29:58 +02:00
Sven Eckelmann
6e6cd68280 Remove unneccessary define PIC 2011-06-25 15:09:32 +02:00
Sven Eckelmann
7729ebd122 Don't override optimisations set by linux build environment 2011-06-25 14:23:45 +02:00
Sven Eckelmann
a6138321ae Add GNU/Hurd as operating system with "linux" userland
---
2010-07-13 21:32:25 +02:00
Sven Eckelmann
18333a16d9 Only use ld option -version-script on systems with GNU userland tools 2010-03-20 16:55:41 +01:00
Sven Eckelmann
2d30ba9157 Build kfreebsd and GNU/kFreeBSD like Linux 2010-03-19 12:16:37 +01:00
Sven Eckelmann
fec20a4fcc Export only functions which are part of the api
The g++ also exports symbols of implicit instantiations of templates. These
aren't part of the api and must not be accessed by any other part of
mupen64plus. We can use version-scripts to surpress these symbols without using
explicit instantiations of all templates we use.
2010-03-18 13:20:55 +01:00
Sven Eckelmann
742f7139d5 Make hidden symbols the default behavior of gcc 2010-03-18 12:23:40 +01:00