summaryrefslogtreecommitdiffstatshomepage
path: root/makefile (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Moved format handling and all formats to separate library [Miodrag Milanovic] Miodrag Milanovic2011-05-061-2/+5
|
* (Big tangle of changes that all happened as I was looking into the ROM Aaron Giles2011-04-131-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | loader rewrite, which is still in progress....) Replaced mamedriv.c with a new driver list mechanism that is generated by the build tools. The emulator core now expects the presence of a file called src/$(TARGET)/$(SUBTARGET).lst which is just a raw list of driver names, one per line. C and C++ comments are still permitted. This file is parsed by a new build tool makelist which extracts the driver names, sorts them, and generates a file called drivlist.c, which is consumed by the core. [Aaron Giles] Added new osdcore function osd_malloc_array() which is identical to osd_malloc() but obviously hints that the underlying allocation is for an array. Updated all callers to use the appropriate form. Modified the Windows allocator to only use guard pages for array-style allocations, allowing us to enable them once again in debug builds. [Aaron Giles] Created new static class driver_list to wrap accesses to the list of available drivers. Improved speed of driver lookups by relying on the presorting done by makelist. [Aaron Giles] Created helper class driver_enumerator as a helper for iterating through the list of drivers. This class supports basic filtering and iteration, and also serves as a temporary cache of machine_configs. [Aaron Giles] Created cli_frontend object to wrap all the CLI handling code in clifront.c. Updated/simplified all the code to take advantage of the driver_enumerator. [Aaron Giles] Created media_auditor object to wrap all the auditing functions in audit.c. Updated all users to the new interface. Note that the new auditing mechanism is slightly out of sync with the romload code in terms of finding ROMs owned by devices, so it may mis-report some issues until the new ROM loading code is in. [Aaron Giles] Added concept of a per-device searchpath. For most devices, their searchpath is just the short name of the device. For driver_devices, the searchpath is driver[;parent[;bios]]. This searchpath will eventually be used by the rom loader to find ROMs. For now it is used by the media auditor only. [Aaron Giles] Created info_xml_creator object to wrap all the info generation functions in info.c. Converted the file to C++ and cleaned up the input processing code. [Aaron Giles] (not for whatsnew ... Known issues: auditing of CHDs appears busted, and debug builds report unfreed memory if you use the built-in game picker)
* Delete symbols file if defined when invoking clean target. [Curt Coder] Curt Coder2011-02-121-0/+4
|
* NetBSD support [Thomas Klausner] R. Belmont2011-02-021-1/+5
| | | | | | | | | Not for whatsnew: I added -Wno-conversion unconditionally to disable the warnings Thomas reported. That setting is the default for GCC out-of-the-box but apparently not on NetBSD. As far as I know it shouldn't cause a problem with any GCC version back to at least 4.0.0 so we're safe even on PPC OSX, but do let me know if hilarity ensues.
* Silly. Andrew Gardner2010-12-301-2/+2
|
* plygonet.c : Fixed save state & device handler regressions. [Andrew Gardner] Andrew Gardner2010-12-301-2/+2
|
* Made depend creation target independent (no whatsnew) Miodrag Milanovic2010-09-281-1/+1
|
* New build tool makedep.c, derived from src2html.c (really!). Aaron Giles2010-09-141-5/+30
| | | | | | | | | | | Does basic dependency analysis and supports excluding paths. Makefile now supports a depend target which will run makedep on the src/$(TARGET) tree and create dependencies. It deliberately excludes the root of src/emu as well as the osd directories in order to keep the dependency file down to a reasonable size, so if a core header file changes, you still need to clean and build all.
* Created CPU-specific device types for all CPUs, using new macros Aaron Giles2010-07-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | DECLARE_LEGACY_CPU_DEVICE and DEFINE_LEGACY_CPU_DEVICE. Changed CPUs to be their own device types, rather than all of type CPU with a special internal subtype. Note that as part of this process I removed the CPU_ prefix from the ALL-CAPS device name, so CPU_Z80 is just plain old Z80 now. This required changing a couple of names like 8080 to I8080 so that there was an alphabetic first character. Added memory interfaces to the list of fast-access interfaces. To do this properly I had to add a separate method to devices which is called immediately after construction, when it is possible to perform dynamic_casts on fully-constructed objects. (This is just internal, no changes necessary to the devices themselves.) Some additional notes: * SH2 and SH4 had typedefs that conflicted with their CPU_-less names so I bulk renamed to structures to sh2_state and sh4_state; RB, feel free to choose alternate names if you don't like 'em * SCSP was caught doing something to the 3rd indexed CPU. Since several systems that use SCSP don't even have 3 CPUs, I had no idea what this was supposed to do, so I changed to it reference "audiocpu" assuming that stv was the assumed target. This is really gross and should be a configuration parameter, not a hard-coded assumption.
* Winmain cleanup: Aaron Giles2010-07-021-0/+9
| | | | | | | | | | | | * created dynamic_bind<> template class to handle dynamically binding to optionally-supported functions * wrapped stack walking code in a class * wrapped symbol lookup code in a class * added support for parsing objdump-produced symbol dumps which include non-global functions for much better stack dumps and profiling in gcc builds Also: modified makefile for win32 targets to automatically run objdump and produce a .sym file if SYMBOLS is enabled.
* Clean up profiling flags in the makefile. Removed GPROF flag, it is now just Aaron Giles2010-06-111-13/+25
| | | | | PROFILE. When enabled, automatically turn on basic symbols. Also added new SYMLEVEL option to control the symbols level (defaults to 2). [Aaron Giles]
* documentation: -march option core2 is in gcc since 4.3 Michaël Banaan Ananas2010-05-131-1/+1
|
* Added makefile PPC64 autodetection [Julian Sikorski] Phil Bennett2010-04-141-0/+3
|
* Added gprof support to the makefile. [Bryan Ischo] Aaron Giles2010-04-081-1/+16
| | | | | | | | | | | | | | | | Added a check for the OPTION_READCONFIG option before executing the code which would attempt to incorporate configuration file settings into the current configuration, because if OPTION_READCONFIG is set to false, then there is no reason to even try to do this as every single configuration file will be ignored (because config files have been turned off by OPTION_READCONFIG). [Bryan Ischo] Fixed small memory leak in mame.c. [Bryan Ischo] Fixed double-free error in render.c. [Bryan Ischo] Made core_strdup use osd_malloc instead of malloc. [Bryan Ischo]
* [#3792, #3793] SDL compile fixes [Christian MArillat] R. Belmont2010-03-241-0/+3
| | | | | - Autodetect FreeBSD variant - Altivec/VMX fixes for non-Mac PPC
* Add MAME-ified version of SoftFloat library [John R. Hauser] R. Belmont2010-03-021-3/+4
| | | | | | As previously discussed, this will be used for the MC680x0 FPU in order to handle high-precision floats portably. The license is included in README.txt and is MAME compatible.
* Fixed MT3698 (NOWERROR=1 casues -fno-strict-aliasing to be dropped). Couriersud2010-03-011-0/+1
| | | [couriersud]
* Fix for non-standard OS X builds [Scott Michel] R. Belmont2010-02-141-1/+14
|
* Fix os2 auto-detect [Credit: KO Myung-Hun] Couriersud2010-02-031-1/+1
|
* It's late, last fix for today to avoid introducing new ones. Couriersud2010-01-201-1/+1
|
* OpenBSD support in makefile/sdl.mak Couriersud2010-01-201-1/+6
| | | | Fix XBSD detection of PTR64 (uses amd64) Cosmetic change to sdlprefix.h
* Autodetection of PTR64 can be inhibited now by specifying PTR64=0. Couriersud2010-01-191-2/+2
| | | On mixed 32bit/64bit targets identifying themselves as 64bit this can be used to build a 32bit executable.
* Add OS/2 autodetect to makefile Couriersud2010-01-191-0/+6
|
* Allow that zlib and expat can be linked dynamically without changing the ↵ Couriersud2010-01-171-2/+2
| | | | | | | makefile by specifying "=0": make BUILD_ZLIB=0 BUILD_EXPAT=0 This was possible before as well but this is more what users (and myself) would expect.
* Added checkautodetect target to makefile delivering e.g. on linux 64 bit: Couriersud2010-01-171-0/+5
| | | | | | | TARGETOS=unix PTR64=1 BIGENDIAN= UNAME=Linux core 2.6.28-17-generic #58-Ubuntu SMP Tue Dec 1 21:27:25 UTC 2009 x86_64 GNU/Linux
* Autotest for BIGENDIAN. A bit hacked, though. Couriersud2010-01-161-1/+15
|
* Fix PTR64 autodetect for Windows Aaron Giles2010-01-161-0/+17
|
* - Fix TARGETOS detection on OS X. Couriersud2010-01-151-8/+23
| | | | - Do not try to check TARGETOS when cross-compiling - For non-windows targets, try to auto-detect PTR64
* SDLMAME: improved OS X and SDL 1.3 SVN support, try to autodetect SDLMAME ↵ R. Belmont2010-01-151-1/+17
| | | | targets [Couriersud]
* Makefile changes: Aaron Giles2010-01-131-2/+20
| | | | | | | | | | | | | | | | | | | | | | 1. If OSD is not defined, we look for the built-in Windows environment variable 'OS' and if it is set to 'Windows_NT', we assume OSD=windows; otherwise we assume OSD=sdl. 2. If TARGETOS is not defined, we look for the same variable and set TARGETOS=win32 if it is set to 'Windows_NT'. 3. Windows SDL builds have an 'sdl' prefix on the executable so they can live side-by-side. The upshot of this is that on Windows systems: make -> standard Windows build producing mame.exe make OSD=sdl -> SDL Windows builds producing sdlmame.exe On non-Windows systems: make -> SDL build by default (don't need to say OSD=sdl)
* Merge makefile with outstanding SDLMAME changes (no whatsnew) R. Belmont2010-01-131-2/+22
| | | | | This turns off -Werror on a few OSes and fixes multithreaded version.c building.
* Makefile changes: Aaron Giles2010-01-051-1/+1
| | | | | | | - Changed INLINE to map to "static inline" - (Windows only) Made -static-libgcc standard for both 32-bit and 64-bit - (Windows only) Some fixes for MSVC builds
* Changes to sync with new toolchain: Aaron Giles2010-01-031-24/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Removed CPP_COMPILE option. All files (except expat and zlib) are now compiled as C++ by default. For now, imagine nothing has changed. The goal is not to go hog-wild with C++isms, but to leverage it where it makes the most sense. 2. Mapped INLINE to plain old C++ inline now, fixing several cases where this was problematic. 3. Marked global const structures explicitly extern since consts are locally-scoped by default in C++. 4. Added new 'default' make target which just builds the emulator. Use 'make all' to build everything including the tools. 5. 64-bit builds now get a '64' suffix on them. We might want to just make this true for Windows builds, but it's on for everyone at the moment. 6. (Windows) Removed UNICODE option. UNICODE is enabled by default on all Windows builds now. The 32-bit version links against libunicows.a for continued Win9x compatibility. 7. (Windows) Removed hacks surrounding unicode handling of main(). They are no longer necessary with the new tools.
* Removed the various HAS_xxxx for sound cores. To select sound cores, Aaron Giles2010-01-021-1/+1
| | | | | just choose them in the make system. Further granularity is not necessary. This also means that the samples core is always required.
* Removed the global "includes" include and instead specify the "includes" ↵ Phil Bennett2009-12-211-1/+0
| | | | | | | | | | | | | | path in all #include occurences. [Oliver Stoneberg] ---------- Forwarded message ---------- From: Oliver Stöneberg <oliverst@online.de> Date: Sat, Dec 12, 2009 at 3:27 PM Subject: includes cleanup To: submit@mamedev.org This patch removes the global "includes" include and explcitly specifies the "includes" path in all #include occurances.
* Move MSVC clean out of core makefile and into windows.mak where it belongs. Aaron Giles2009-09-211-7/+1
|
* Added deletion of MSVC specific files to clean task. Curt Coder2009-09-161-0/+6
|
* Added infrastructure to compile universal standalone disassembler: Aaron Giles2009-08-221-1/+2
| | | | | | | | | | | - added unidasm to the tools build - split the disassemblers out of libcpu and into new libdasm - ensured the disassembly entry points for all disassemblers are in the source file for the disassembler (sometimes new generic versions were created) Still needs command line options and file loading, but the fundamentals are present, and it links.
* Now turn symbols and mapfile generation off... man, I'm dumb. (no whatsnew) Ryan Holtz2009-07-291-2/+2
|
* Turning debug flag back off in the makefile (no whatsnew) Ryan Holtz2009-07-291-3/+3
|
* Simplified Atomiswave's decryption routine & keys. [Andreas Naive] Andreas Naive2009-07-291-1/+1
| | | | | | ----- Furthermore, i have uploaded a new revision of the cracking tool to /encryption/aw_key_distiller.zip
* CPU cores are now enabled on a per cpu core family basis instead of per cpu ↵ Wilbert Pol2009-03-251-1/+1
| | | | core variant. As a result CPUDEFS is no longer needed in the makefile.
* Having decided to look at the MAME source again, I have a fairly minor patch: Aaron Giles2009-03-191-5/+0
| | | | | | | | | | | | | | | | | | | * Fix build of ldplayer on OS X. Since the CUSTOM sound module no longer exists, I arbitrarily changed it to WAVE, as ar gets upset if it has no input files. I also removed the -all_load flag for ldplayer from the main makefile as it upsets the linker on OS X. * Fix build for PPC64 Linux. (This slightly messes up static branch prediction hints on OS X and AIX, but OS X for PPC64 is dead, and no- one builds MAME for AIX, and it will still build, anyway.) * Paramaterise the arguments to check for NULL in the ATTR_NONNULL macro rather than just checking the first argument. This requires compiler support for C99 variadic macros (MSVC2005 and GCC4 have this AFAIK). Vas
* Modified the makefile to support experimental optional C++ Aaron Giles2009-02-281-32/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compilation: - new option CPP_COMPILE to trigger this (off by default) - split CFLAGS into common, C-only, and C++-only flags - when enabled, CPP_COMPILE causes 'pp' to be appended to the target name NOTE THAT THE SYSTEM CANNOT ACTUALLY BE COMPILED THIS WAY YET. IT IS JUST AN EXPERIMENT. Modified lib.mak to always build zlib/expat as C regardless of CPP_COMPILE. Modified windows.mak to fix warnings with MAXOPT=1, and to leverage the new CFLAGs definitions. Modified vconv.c to do appropriate conversions for new C++ options. Updated sources so that libutil, libocore (Windows), and libosd (Windows) can be cleanly compiled as C or C++. This was mostly adding some casts against void *. Fixed a few more general obvious problems at random locations in the source: - device->class is now device->devclass - TYPES_COMPATIBLE uses typeid() when compiled for C++ - some functions with reserved names ('xor' in particular) were renamed - nested enums and structs were pulled out into separate definitions (under C++ these would need to be scoped to be referenced) - TOKEN_VALUE cannot use .field=x initialization in C++ :(
* Removed DEBUGGER flag from makefile and ENABLE_DEBUGGER Aaron Giles2008-06-261-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macro from the source code. All MAME builds now include the debugger, and it is enabled/disabled exclusively by the runtime command-line/ini settings. This is a minor speed hit for now, but will be further optimized going forward. Changed the 'd' suffix in the makefile to apply to DEBUG builds (versus DEBUGGER builds as it did before). Changed machine->debug_mode to machine->debug_flags. These flags now indicate several things, such as whether debugging is enabled, whether CPU cores should call the debugger on each instruction, and whether there are live watchpoints on each address space. Redesigned a significant portion of debugcpu.c around the concept of maintaining these flags globally and a similar, more complete set of flags internally for each CPU. All previous functionality should work as designed but should be more robust and faster to work with. Added new debugger hooks for starting/stopping CPU execution. This allows the debugger to decide whether or not a given CPU needs to call the debugger on each instruction during the coming timeslice. Added new debugger hook for reporting exceptions. Proper exception breakpoints are not yet implemented. Added new module debugger.c which is where global debugger functions live.
* PowerPC dynamic recompiler: [Aaron Giles] Aaron Giles2008-06-051-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - rewrote PowerPC implementation as a dynamic recompiler on top of the universal recompiler engine - wrote a front-end to analyze PowerPC code paths and register usage - wrote a common shared module with C implementations of tricky CPU behaviors - added separate CPU types for the variants supported, instead of relying on a hidden model enum - rewrote the serial port emulation for the 4xx series to be more accurate and not rely on separate DMA handlers - rewrote the MMU handling to implement a software TLB that faults in pages and handles changed bits appropriately - implemented emulation of the PowerPC 603's software TLB, which allows the model 3 games to run without a hack to disable the MMU Updated the PowerPC disassembler to share constants with the rest of the core, and to more aggressively use simplified mnemonics, especially for branches. [Aaron Giles] Universal recompiler: - fixed frontend to handle opcode widths different from bus width - added several new opcodes: * (D)GETFLGS - copies the UML flags to a destination operand * FDRNDS - rounds a double precision value to single precision - renamed several opcodes: * SETC -> CARRY * XTRACT -> ROLAND * INSERT -> ROLINS - consolidated the following opcodes: * LOAD?U -> LOAD * LOAD?S -> LOADS * STORE? -> STORE * READ?U -> READ * READ?M -> READM * WRITE? -> WRITE * WRITM? -> WRITEM * SEXT? -> SEXT * FTOI?? -> FTOINT * FFRI? -> FFRINT * FFRF? -> FFRFLT - removed some opcodes: * FLAGS - can be done with GETFLGS/LOAD4/ROLINS * ZEXT - can be achieved with AND * READ?S - can be achieved with READ/SEXT - updated C, x86, and x64 back-ends to support these opcode changes - updated disassembler to support these opcode changes MIPS3 dynamic recompiler: - updated to use new/changed opcode forms - changed context switch so that it only swaps a single pointer Konami Hornet changes: [Aaron Giles] - updated to new PowerPC configurations - updated some memory handlers to be native 8-bit handlers - cleaned up JVS implementation to work with new serial code - added fast RAM for the work RAM to give a small speed boost Konami GTI Club changes: [Aaron Giles] - updated to new PowerPC configurations - updated some memory handlers to be native 8-bit handlers Konami Viper/ZR107 changes: [Aaron Giles] - updated to new PowerPC configurations Sega Model 3 changes: [Aaron Giles] - updated to new PowerPC configurations - reimplemented/centralized interrupt handling - these games are broken for the moment Fixed crasher due to some Konami games using 8 layers in the K056832 implementation, even though it was only written for 4. [Aaron Giles] Added fisttp opcode to i386 disassembler. [Aaron Giles]
* New universal dynamic recompiler system. The central module Aaron Giles2008-05-111-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | is drcuml.c, which defines a universal machine language syntax that can be generated by a frontend recompiler and then retargeted via a generic backend interface to any of a number of different architectures. A disassembler for the UML is also included to allow examination of the generated UML code. Currently supported backend architectures include 32-bit x86, 64-bit x86, and a platform-neutral interpreted C backend that can be used as a fallback for platforms without native support. The C backend also performs additional validation to ensure assumptions are met. Along with the new architecture is a new MIPS III/IV recompiler frontend. This frontend has been rewritten from the old x64-specific recompiler to generate UML opcodes instead. This means that the single recompiler can be used to target multiple backend architectures and should in theory produce identical results across all of them. The old 32-bit and 64-bit MIPS recompilers are now officially retired. The new system provides similar performance (within 5% generally) to the old system and has similar compatibility. The only currently known issues are some problems with the two Gauntlet 3D games.
* From: Marc Sandusky Aaron Giles2008-04-021-0/+8
| | | | | | | | | | | | | | | Subject: Minor patch submission - verbose build information for development in IDE I am submitting this minor patch that adds verbose build information to the build output when the "VERBOSE" flag is set to "1", rather than the simple output normally seen, by adding the "-v" flag to the CFLAGS variable. This is most useful for those that like to use an IDE (Eclipse in my case) for source browsing and development. The IDE usually will parse the build information, which is currently not available, to determine include file locations, build definitions, etc. and will use that information to provide more advanced navigation features.
* Followup to r767: Couriersud2008-02-221-0/+14
| | | * submit changes to makefile omitted in r767
* Changed debugger-related code to be based off a new makefile define ↵ Aaron Giles2008-02-021-3/+11
| | | | | | | | | | | | | (DEBUGGER) which sets a new compile-time define (ENABLE_DEBUGGER). This means that MAME_DEBUG no longer means "enable debugger", it simply enables debugging features such as assertions and debug code in drivers. Also removed the various levels of opbase protection in memory.h and always just turned on full bounds checking. Fixed build break due to missing ampoker.lay -> ampoker2.lay renaming.